aboutsummaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/pywarpx/Boundary.py9
-rw-r--r--Python/pywarpx/WarpX.py3
-rw-r--r--Python/pywarpx/__init__.py1
-rw-r--r--Python/pywarpx/picmi.py27
4 files changed, 40 insertions, 0 deletions
diff --git a/Python/pywarpx/Boundary.py b/Python/pywarpx/Boundary.py
new file mode 100644
index 000000000..b7ebd17af
--- /dev/null
+++ b/Python/pywarpx/Boundary.py
@@ -0,0 +1,9 @@
+# Copyright 2021 Roelof Groenewald
+#
+# This file is part of WarpX.
+#
+# License: BSD-3-Clause-LBNL
+
+from .Bucket import Bucket
+
+boundary = Bucket('boundary')
diff --git a/Python/pywarpx/WarpX.py b/Python/pywarpx/WarpX.py
index ae48bfcf6..dc09ba241 100644
--- a/Python/pywarpx/WarpX.py
+++ b/Python/pywarpx/WarpX.py
@@ -9,6 +9,7 @@ from .Bucket import Bucket
from .Constants import my_constants
from .Amr import amr
from .Geometry import geometry
+from .Boundary import boundary
from .Algo import algo
from .Langmuirwave import langmuirwave
from .Interpolation import interpolation
@@ -30,6 +31,7 @@ class WarpX(Bucket):
argv += my_constants.attrlist()
argv += amr.attrlist()
argv += geometry.attrlist()
+ argv += boundary.attrlist()
argv += algo.attrlist()
argv += langmuirwave.attrlist()
argv += interpolation.attrlist()
@@ -89,6 +91,7 @@ class WarpX(Bucket):
def write_inputs(self, filename='inputs', **kw):
argv = self.create_argv_list()
+
with open(filename, 'w') as ff:
for k, v in kw.items():
diff --git a/Python/pywarpx/__init__.py b/Python/pywarpx/__init__.py
index ed2152c1d..918c300b2 100644
--- a/Python/pywarpx/__init__.py
+++ b/Python/pywarpx/__init__.py
@@ -7,6 +7,7 @@
from .WarpX import warpx
from .Constants import my_constants
from .Amr import amr
+from .Boundary import boundary
from .Geometry import geometry
from .Algo import algo
from .Langmuirwave import langmuirwave
diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py
index d93396a82..6d1ace18e 100644
--- a/Python/pywarpx/picmi.py
+++ b/Python/pywarpx/picmi.py
@@ -355,6 +355,13 @@ class CylindricalGrid(picmistandard.PICMI_CylindricalGrid):
self.max_grid_size = kw.pop('warpx_max_grid_size', 32)
self.blocking_factor = kw.pop('warpx_blocking_factor', None)
+ self.potential_xmin = None
+ self.potential_xmax = None
+ self.potential_ymin = None
+ self.potential_ymax = None
+ self.potential_zmin = kw.pop('warpx_potential_lo_z', None)
+ self.potential_zmax = kw.pop('warpx_potential_hi_z', None)
+
def initialize_inputs(self):
pywarpx.amr.n_cell = self.number_of_cells
@@ -398,6 +405,13 @@ class Cartesian2DGrid(picmistandard.PICMI_Cartesian2DGrid):
self.max_grid_size = kw.pop('warpx_max_grid_size', 32)
self.blocking_factor = kw.pop('warpx_blocking_factor', None)
+ self.potential_xmin = kw.pop('warpx_potential_lo_x', None)
+ self.potential_xmax = kw.pop('warpx_potential_hi_x', None)
+ self.potential_ymin = None
+ self.potential_ymax = None
+ self.potential_zmin = kw.pop('warpx_potential_lo_z', None)
+ self.potential_zmax = kw.pop('warpx_potential_hi_z', None)
+
def initialize_inputs(self):
pywarpx.amr.n_cell = self.number_of_cells
@@ -437,6 +451,13 @@ class Cartesian3DGrid(picmistandard.PICMI_Cartesian3DGrid):
self.max_grid_size = kw.pop('warpx_max_grid_size', 32)
self.blocking_factor = kw.pop('warpx_blocking_factor', None)
+ self.potential_xmin = kw.pop('warpx_potential_lo_x', None)
+ self.potential_xmax = kw.pop('warpx_potential_hi_x', None)
+ self.potential_ymin = kw.pop('warpx_potential_lo_y', None)
+ self.potential_ymax = kw.pop('warpx_potential_hi_y', None)
+ self.potential_zmin = kw.pop('warpx_potential_lo_z', None)
+ self.potential_zmax = kw.pop('warpx_potential_hi_z', None)
+
def initialize_inputs(self):
pywarpx.amr.n_cell = self.number_of_cells
@@ -545,6 +566,12 @@ class ElectrostaticSolver(picmistandard.PICMI_ElectrostaticSolver):
pywarpx.warpx.do_electrostatic = 'labframe'
pywarpx.warpx.self_fields_required_precision = self.required_precision
pywarpx.warpx.self_fields_max_iters = self.maximum_iterations
+ pywarpx.boundary.potential_lo_x = self.grid.potential_xmin
+ pywarpx.boundary.potential_lo_y = self.grid.potential_ymin
+ pywarpx.boundary.potential_lo_z = self.grid.potential_zmin
+ pywarpx.boundary.potential_hi_x = self.grid.potential_xmax
+ pywarpx.boundary.potential_hi_y = self.grid.potential_ymax
+ pywarpx.boundary.potential_hi_z = self.grid.potential_zmax
class GaussianLaser(picmistandard.PICMI_GaussianLaser):