aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/fields.py
diff options
context:
space:
mode:
authorGravatar Dave Grote <grote1@llnl.gov> 2019-12-12 13:00:02 -0800
committerGravatar Dave Grote <grote1@llnl.gov> 2019-12-12 13:00:02 -0800
commitf225e540585be9fdde0f0520215f5f01a5efe38d (patch)
tree335787bfbeb5e56af069603d4d630ea761cda9bb /Python/pywarpx/fields.py
parentc93e86954204542a73d978a41d0bda107dd7be54 (diff)
downloadWarpX-f225e540585be9fdde0f0520215f5f01a5efe38d.tar.gz
WarpX-f225e540585be9fdde0f0520215f5f01a5efe38d.tar.zst
WarpX-f225e540585be9fdde0f0520215f5f01a5efe38d.zip
Added Python wrapper for the PML fields
Diffstat (limited to 'Python/pywarpx/fields.py')
-rw-r--r--Python/pywarpx/fields.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/Python/pywarpx/fields.py b/Python/pywarpx/fields.py
index 225725331..920c109d6 100644
--- a/Python/pywarpx/fields.py
+++ b/Python/pywarpx/fields.py
@@ -622,3 +622,119 @@ def JzFPWrapper(level=0, include_ghosts=False):
get_lovects=_libwarpx.get_mesh_current_density_fp_lovects,
get_fabs=_libwarpx.get_mesh_current_density_fp,
level=level, include_ghosts=include_ghosts)
+def ExCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=0, overlaps=[0,1,1],
+ get_lovects=_libwarpx.get_mesh_electric_field_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_electric_field_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def EyCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=1, overlaps=[1,0,1],
+ get_lovects=_libwarpx.get_mesh_electric_field_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_electric_field_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def EzCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=2, overlaps=[1,1,0],
+ get_lovects=_libwarpx.get_mesh_electric_field_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_electric_field_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def BxCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=0, overlaps=[1,0,0],
+ get_lovects=_libwarpx.get_mesh_magnetic_field_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_magnetic_field_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def ByCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=1, overlaps=[0,1,0],
+ get_lovects=_libwarpx.get_mesh_magnetic_field_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_magnetic_field_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def BzCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=2, overlaps=[0,0,1],
+ get_lovects=_libwarpx.get_mesh_magnetic_field_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_magnetic_field_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def JxCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=0, overlaps=[0,1,1],
+ get_lovects=_libwarpx.get_mesh_current_density_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_current_density_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def JyCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=1, overlaps=[1,0,1],
+ get_lovects=_libwarpx.get_mesh_current_density_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_current_density_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def JzCPPMLWrapper(level=1, include_ghosts=False):
+ assert level>0, Exception('Coarse patch only available on levels > 0')
+ return _MultiFABWrapper(direction=2, overlaps=[1,1,0],
+ get_lovects=_libwarpx.get_mesh_current_density_cp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_current_density_cp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def ExFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=0, overlaps=[0,1,1],
+ get_lovects=_libwarpx.get_mesh_electric_field_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_electric_field_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def EyFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=1, overlaps=[1,0,1],
+ get_lovects=_libwarpx.get_mesh_electric_field_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_electric_field_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def EzFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=2, overlaps=[1,1,0],
+ get_lovects=_libwarpx.get_mesh_electric_field_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_electric_field_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def BxFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=0, overlaps=[1,0,0],
+ get_lovects=_libwarpx.get_mesh_magnetic_field_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_magnetic_field_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def ByFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=1, overlaps=[0,1,0],
+ get_lovects=_libwarpx.get_mesh_magnetic_field_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_magnetic_field_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def BzFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=2, overlaps=[0,0,1],
+ get_lovects=_libwarpx.get_mesh_magnetic_field_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_magnetic_field_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def JxFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=0, overlaps=[0,1,1],
+ get_lovects=_libwarpx.get_mesh_current_density_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_current_density_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def JyFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=1, overlaps=[1,0,1],
+ get_lovects=_libwarpx.get_mesh_current_density_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_current_density_fp_pml,
+ level=level, include_ghosts=include_ghosts)
+
+def JzFPPMLWrapper(level=0, include_ghosts=False):
+ return _MultiFABWrapper(direction=2, overlaps=[1,1,0],
+ get_lovects=_libwarpx.get_mesh_current_density_fp_lovects_pml,
+ get_fabs=_libwarpx.get_mesh_current_density_fp_pml,
+ level=level, include_ghosts=include_ghosts)