aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/picmi.py
diff options
context:
space:
mode:
authorGravatar Edoardo Zoni <59625522+EZoni@users.noreply.github.com> 2021-11-05 09:59:37 -0700
committerGravatar GitHub <noreply@github.com> 2021-11-05 09:59:37 -0700
commitbb0a9e38f461b89cd8370485a9bc4d83d74e2ae8 (patch)
treec3586458aab6ed045319611a2c5010c2922da5c7 /Python/pywarpx/picmi.py
parent3684af17bbbe04fdc6dd84ff2a646c8a77076b73 (diff)
downloadWarpX-bb0a9e38f461b89cd8370485a9bc4d83d74e2ae8.tar.gz
WarpX-bb0a9e38f461b89cd8370485a9bc4d83d74e2ae8.tar.zst
WarpX-bb0a9e38f461b89cd8370485a9bc4d83d74e2ae8.zip
PICMI: Add max_grid_size, blocking_factor in (x,y,z) (#2524)
* PICMI: Add amr.max_grid_size_<x,y,z> * Set All Flags in Python * PICMI: Add amr.blocking_factor_<x,y,z>
Diffstat (limited to '')
-rw-r--r--Python/pywarpx/picmi.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py
index 741ae6e6e..460b21602 100644
--- a/Python/pywarpx/picmi.py
+++ b/Python/pywarpx/picmi.py
@@ -403,7 +403,11 @@ class CylindricalGrid(picmistandard.PICMI_CylindricalGrid):
"""
def init(self, kw):
self.max_grid_size = kw.pop('warpx_max_grid_size', 32)
+ self.max_grid_size_x = kw.pop('warpx_max_grid_size_x', None)
+ self.max_grid_size_y = kw.pop('warpx_max_grid_size_y', None)
self.blocking_factor = kw.pop('warpx_blocking_factor', None)
+ self.blocking_factor_x = kw.pop('warpx_blocking_factor_x', None)
+ self.blocking_factor_y = kw.pop('warpx_blocking_factor_y', None)
self.potential_xmin = None
self.potential_xmax = None
@@ -418,7 +422,11 @@ class CylindricalGrid(picmistandard.PICMI_CylindricalGrid):
# Maximum allowable size of each subdomain in the problem domain;
# this is used to decompose the domain for parallel calculations.
pywarpx.amr.max_grid_size = self.max_grid_size
+ pywarpx.amr.max_grid_size_x = self.max_grid_size_x
+ pywarpx.amr.max_grid_size_y = self.max_grid_size_y
pywarpx.amr.blocking_factor = self.blocking_factor
+ pywarpx.amr.blocking_factor_x = self.blocking_factor_x
+ pywarpx.amr.blocking_factor_y = self.blocking_factor_y
assert self.lower_bound[0] >= 0., Exception('Lower radial boundary must be >= 0.')
assert self.bc_rmin != 'periodic' and self.bc_rmax != 'periodic', Exception('Radial boundaries can not be periodic')
@@ -458,7 +466,11 @@ class CylindricalGrid(picmistandard.PICMI_CylindricalGrid):
class Cartesian2DGrid(picmistandard.PICMI_Cartesian2DGrid):
def init(self, kw):
self.max_grid_size = kw.pop('warpx_max_grid_size', 32)
+ self.max_grid_size_x = kw.pop('warpx_max_grid_size_x', None)
+ self.max_grid_size_y = kw.pop('warpx_max_grid_size_y', None)
self.blocking_factor = kw.pop('warpx_blocking_factor', None)
+ self.blocking_factor_x = kw.pop('warpx_blocking_factor_x', None)
+ self.blocking_factor_y = kw.pop('warpx_blocking_factor_y', None)
self.potential_xmin = kw.pop('warpx_potential_lo_x', None)
self.potential_xmax = kw.pop('warpx_potential_hi_x', None)
@@ -473,7 +485,11 @@ class Cartesian2DGrid(picmistandard.PICMI_Cartesian2DGrid):
# Maximum allowable size of each subdomain in the problem domain;
# this is used to decompose the domain for parallel calculations.
pywarpx.amr.max_grid_size = self.max_grid_size
+ pywarpx.amr.max_grid_size_x = self.max_grid_size_x
+ pywarpx.amr.max_grid_size_y = self.max_grid_size_y
pywarpx.amr.blocking_factor = self.blocking_factor
+ pywarpx.amr.blocking_factor_x = self.blocking_factor_x
+ pywarpx.amr.blocking_factor_y = self.blocking_factor_y
# Geometry
pywarpx.geometry.coord_sys = 0 # Cartesian
@@ -509,7 +525,13 @@ class Cartesian2DGrid(picmistandard.PICMI_Cartesian2DGrid):
class Cartesian3DGrid(picmistandard.PICMI_Cartesian3DGrid):
def init(self, kw):
self.max_grid_size = kw.pop('warpx_max_grid_size', 32)
+ self.max_grid_size_x = kw.pop('warpx_max_grid_size_x', None)
+ self.max_grid_size_y = kw.pop('warpx_max_grid_size_y', None)
+ self.max_grid_size_z = kw.pop('warpx_max_grid_size_z', None)
self.blocking_factor = kw.pop('warpx_blocking_factor', None)
+ self.blocking_factor_x = kw.pop('warpx_blocking_factor_x', None)
+ self.blocking_factor_y = kw.pop('warpx_blocking_factor_y', None)
+ self.blocking_factor_z = kw.pop('warpx_blocking_factor_z', None)
self.potential_xmin = kw.pop('warpx_potential_lo_x', None)
self.potential_xmax = kw.pop('warpx_potential_hi_x', None)
@@ -524,7 +546,13 @@ class Cartesian3DGrid(picmistandard.PICMI_Cartesian3DGrid):
# Maximum allowable size of each subdomain in the problem domain;
# this is used to decompose the domain for parallel calculations.
pywarpx.amr.max_grid_size = self.max_grid_size
+ pywarpx.amr.max_grid_size_x = self.max_grid_size_x
+ pywarpx.amr.max_grid_size_y = self.max_grid_size_y
+ pywarpx.amr.max_grid_size_z = self.max_grid_size_z
pywarpx.amr.blocking_factor = self.blocking_factor
+ pywarpx.amr.blocking_factor_x = self.blocking_factor_x
+ pywarpx.amr.blocking_factor_y = self.blocking_factor_y
+ pywarpx.amr.blocking_factor_z = self.blocking_factor_z
# Geometry
pywarpx.geometry.coord_sys = 0 # Cartesian