Skip to content

Commit d825c09

Browse files
authored
Merge pull request #90 from ax3l/topic-bnd-sm
Field Boundaries: Silver-Mueller
2 parents 79bee4d + 3070637 commit d825c09

File tree

1 file changed

+72
-24
lines changed

1 file changed

+72
-24
lines changed

PICMI_Python/fields.py

Lines changed: 72 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,10 @@ class PICMI_Cartesian1DGrid(_ClassWithInit):
205205
Position of the node at the upper bound [m]
206206
207207
lower_boundary_conditions: vector of strings
208-
Conditions at lower boundaries, periodic, open, dirichlet, or neumann
208+
Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
209209
210210
upper_boundary_conditions: vector of strings
211-
Conditions at upper boundaries, periodic, open, dirichlet, or neumann
211+
Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
212212
213213
nx: integer
214214
Number of cells along X (number of nodes=nx+1)
@@ -220,10 +220,10 @@ class PICMI_Cartesian1DGrid(_ClassWithInit):
220220
Position of last node along X [m]
221221
222222
bc_xmin: vector of strings
223-
Boundary condition at min X: One of periodic, open, dirichlet, or neumann
223+
Boundary condition at min X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
224224
225225
bc_xmax: vector of strings
226-
Boundary condition at max X: One of periodic, open, dirichlet, or neumann
226+
Boundary condition at max X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
227227
228228
moving_window_velocity: vector of floats, optional
229229
Moving frame velocity [m/s]
@@ -263,6 +263,18 @@ class PICMI_Cartesian1DGrid(_ClassWithInit):
263263
264264
pml_cells: vector of integers, optional
265265
Number of Perfectly Matched Layer (PML) cells along each direction
266+
267+
References
268+
----------
269+
- absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle.
270+
Based on the Silver-Mueller Radiation Condition, e.g., in
271+
- A. K. Belhora and L. Pichon, "Maybe Efficient Absorbing Boundary Conditions for the Finite Element Solution of 3D Scattering Problems," 1995,
272+
https://doi.org/10.1109/20.376322
273+
- B Engquist and A. Majdat, "Absorbing boundary conditions for numerical simulation of waves," 1977,
274+
https://doi.org/10.1073/pnas.74.5.1765
275+
- R. Lehe, "Electromagnetic wave propagation in Particle-In-Cell codes," 2016,
276+
US Particle Accelerator School (USPAS) Summer Session, Self-Consistent Simulations of Beam and Plasma Systems
277+
https://people.nscl.msu.edu/~lund/uspas/scs_2016/lec_adv/A1b_EM_Waves.pdf
266278
"""
267279
# Note for implementations, as a matter of convenience and flexibility, the user interface allows
268280
# specifying various quantities using either the individual named attributes (such as nx) or a
@@ -397,10 +409,10 @@ class PICMI_CylindricalGrid(_ClassWithInit):
397409
Position of the node at the upper bound [m]
398410
399411
lower_boundary_conditions: vector of strings
400-
Conditions at lower boundaries, periodic, open, dirichlet, or neumann
412+
Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
401413
402414
upper_boundary_conditions: vector of strings
403-
Conditions at upper boundaries, periodic, open, dirichlet, or neumann
415+
Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
404416
405417
nr: integer
406418
Number of cells along R (number of nodes=nr+1)
@@ -424,16 +436,16 @@ class PICMI_CylindricalGrid(_ClassWithInit):
424436
Position of last node along Z [m]
425437
426438
bc_rmin: vector of strings
427-
Boundary condition at min R: One of open, dirichlet, or neumann
439+
Boundary condition at min R: One of open, dirichlet, absorbing_silver_mueller, or neumann
428440
429441
bc_rmax: vector of strings
430-
Boundary condition at max R: One of open, dirichlet, or neumann
442+
Boundary condition at max R: One of open, dirichlet, absorbing_silver_mueller, or neumann
431443
432444
bc_zmin: vector of strings
433-
Boundary condition at min Z: One of periodic, open, dirichlet, or neumann
445+
Boundary condition at min Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
434446
435447
bc_zmax: vector of strings
436-
Boundary condition at max Z: One of periodic, open, dirichlet, or neumann
448+
Boundary condition at max Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
437449
438450
moving_window_velocity: vector of floats, optional
439451
Moving frame velocity [m/s]
@@ -485,6 +497,18 @@ class PICMI_CylindricalGrid(_ClassWithInit):
485497
486498
pml_cells: vector of integers, optional
487499
Number of Perfectly Matched Layer (PML) cells along each direction
500+
501+
References
502+
----------
503+
- absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle.
504+
Based on the Silver-Mueller Radiation Condition, e.g., in
505+
- A. K. Belhora and L. Pichon, "Maybe Efficient Absorbing Boundary Conditions for the Finite Element Solution of 3D Scattering Problems," 1995,
506+
https://doi.org/10.1109/20.376322
507+
- B Engquist and A. Majdat, "Absorbing boundary conditions for numerical simulation of waves," 1977,
508+
https://doi.org/10.1073/pnas.74.5.1765
509+
- R. Lehe, "Electromagnetic wave propagation in Particle-In-Cell codes," 2016,
510+
US Particle Accelerator School (USPAS) Summer Session, Self-Consistent Simulations of Beam and Plasma Systems
511+
https://people.nscl.msu.edu/~lund/uspas/scs_2016/lec_adv/A1b_EM_Waves.pdf
488512
"""
489513
# Note for implementations, as a matter of convenience and flexibility, the user interface allows
490514
# specifying various quantities using either the individual named attributes (such as nr and nz) or a
@@ -620,10 +644,10 @@ class PICMI_Cartesian2DGrid(_ClassWithInit):
620644
Position of the node at the upper bound [m]
621645
622646
lower_boundary_conditions: vector of strings
623-
Conditions at lower boundaries, periodic, open, dirichlet, or neumann
647+
Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
624648
625649
upper_boundary_conditions: vector of strings
626-
Conditions at upper boundaries, periodic, open, dirichlet, or neumann
650+
Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
627651
628652
nx: integer
629653
Number of cells along X (number of nodes=nx+1)
@@ -644,16 +668,16 @@ class PICMI_Cartesian2DGrid(_ClassWithInit):
644668
Position of last node along Y [m]
645669
646670
bc_xmin: vector of strings
647-
Boundary condition at min X: One of periodic, open, dirichlet, or neumann
671+
Boundary condition at min X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
648672
649673
bc_xmax: vector of strings
650-
Boundary condition at max X: One of periodic, open, dirichlet, or neumann
674+
Boundary condition at max X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
651675
652676
bc_ymin: vector of strings
653-
Boundary condition at min Y: One of periodic, open, dirichlet, or neumann
677+
Boundary condition at min Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
654678
655679
bc_ymax: vector of strings
656-
Boundary condition at max Y: One of periodic, open, dirichlet, or neumann
680+
Boundary condition at max Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
657681
658682
moving_window_velocity: vector of floats, optional
659683
Moving frame velocity [m/s]
@@ -705,6 +729,18 @@ class PICMI_Cartesian2DGrid(_ClassWithInit):
705729
706730
pml_cells: vector of integers, optional
707731
Number of Perfectly Matched Layer (PML) cells along each direction
732+
733+
References
734+
----------
735+
- absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle.
736+
Based on the Silver-Mueller Radiation Condition, e.g., in
737+
- A. K. Belhora and L. Pichon, "Maybe Efficient Absorbing Boundary Conditions for the Finite Element Solution of 3D Scattering Problems," 1995,
738+
https://doi.org/10.1109/20.376322
739+
- B Engquist and A. Majdat, "Absorbing boundary conditions for numerical simulation of waves," 1977,
740+
https://doi.org/10.1073/pnas.74.5.1765
741+
- R. Lehe, "Electromagnetic wave propagation in Particle-In-Cell codes," 2016,
742+
US Particle Accelerator School (USPAS) Summer Session, Self-Consistent Simulations of Beam and Plasma Systems
743+
https://people.nscl.msu.edu/~lund/uspas/scs_2016/lec_adv/A1b_EM_Waves.pdf
708744
"""
709745
# Note for implementations, as a matter of convenience and flexibility, the user interface allows
710746
# specifying various quantities using either the individual named attributes (such as nx and ny) or a
@@ -841,10 +877,10 @@ class PICMI_Cartesian3DGrid(_ClassWithInit):
841877
Position of the node at the upper bound [m]
842878
843879
lower_boundary_conditions: vector of strings
844-
Conditions at lower boundaries, periodic, open, dirichlet, or neumann
880+
Conditions at lower boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
845881
846882
upper_boundary_conditions: vector of strings
847-
Conditions at upper boundaries, periodic, open, dirichlet, or neumann
883+
Conditions at upper boundaries, periodic, open, dirichlet, absorbing_silver_mueller, or neumann
848884
849885
nx: integer
850886
Number of cells along X (number of nodes=nx+1)
@@ -874,22 +910,22 @@ class PICMI_Cartesian3DGrid(_ClassWithInit):
874910
Position of last node along Z [m]
875911
876912
bc_xmin: string
877-
Boundary condition at min X: One of periodic, open, dirichlet, or neumann
913+
Boundary condition at min X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
878914
879915
bc_xmax: string
880-
Boundary condition at max X: One of periodic, open, dirichlet, or neumann
916+
Boundary condition at max X: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
881917
882918
bc_ymin: string
883-
Boundary condition at min Y: One of periodic, open, dirichlet, or neumann
919+
Boundary condition at min Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
884920
885921
bc_ymax: string
886-
Boundary condition at max Y: One of periodic, open, dirichlet, or neumann
922+
Boundary condition at max Y: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
887923
888924
bc_zmin: string
889-
Boundary condition at min Z: One of periodic, open, dirichlet, or neumann
925+
Boundary condition at min Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
890926
891927
bc_zmax: string
892-
Boundary condition at max Z: One of periodic, open, dirichlet, or neumann
928+
Boundary condition at max Z: One of periodic, open, dirichlet, absorbing_silver_mueller, or neumann
893929
894930
moving_window_velocity: vector of floats, optional
895931
Moving frame velocity [m/s]
@@ -953,6 +989,18 @@ class PICMI_Cartesian3DGrid(_ClassWithInit):
953989
954990
pml_cells: vector of integers, optional
955991
Number of Perfectly Matched Layer (PML) cells along each direction
992+
993+
References
994+
----------
995+
- absorbing_silver_mueller: A local absorbing boundary condition that works best under normal incidence angle.
996+
Based on the Silver-Mueller Radiation Condition, e.g., in
997+
- A. K. Belhora and L. Pichon, "Maybe Efficient Absorbing Boundary Conditions for the Finite Element Solution of 3D Scattering Problems," 1995,
998+
https://doi.org/10.1109/20.376322
999+
- B Engquist and A. Majdat, "Absorbing boundary conditions for numerical simulation of waves," 1977,
1000+
https://doi.org/10.1073/pnas.74.5.1765
1001+
- R. Lehe, "Electromagnetic wave propagation in Particle-In-Cell codes," 2016,
1002+
US Particle Accelerator School (USPAS) Summer Session, Self-Consistent Simulations of Beam and Plasma Systems
1003+
https://people.nscl.msu.edu/~lund/uspas/scs_2016/lec_adv/A1b_EM_Waves.pdf
9561004
"""
9571005
# Note for implementations, as a matter of convenience and flexibility, the user interface allows
9581006
# specifying various quantities using either the individual named attributes (such as nx, ny, and nz) or a

0 commit comments

Comments
 (0)