diff options
Diffstat (limited to 'Python')
-rw-r--r-- | Python/pywarpx/Boundary.py | 9 | ||||
-rw-r--r-- | Python/pywarpx/WarpX.py | 3 | ||||
-rw-r--r-- | Python/pywarpx/__init__.py | 1 | ||||
-rw-r--r-- | Python/pywarpx/picmi.py | 27 |
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): |