aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/PICMI.py
diff options
context:
space:
mode:
authorGravatar Dave Grote <grote1@llnl.gov> 2017-06-28 16:14:16 -0700
committerGravatar Dave Grote <grote1@llnl.gov> 2017-06-28 16:15:23 -0700
commitf6dd7a697a15ff568bfd33abed62066bbd2639c8 (patch)
tree9c73944e511d34ed2866fe9597b8bfef9705370c /Python/pywarpx/PICMI.py
parent6dcd85dd5a1adefc90fc186bba5768727b842a6d (diff)
downloadWarpX-f6dd7a697a15ff568bfd33abed62066bbd2639c8.tar.gz
WarpX-f6dd7a697a15ff568bfd33abed62066bbd2639c8.tar.zst
WarpX-f6dd7a697a15ff568bfd33abed62066bbd2639c8.zip
Various fixes to conform to Python PICMI standard
Diffstat (limited to 'Python/pywarpx/PICMI.py')
-rw-r--r--Python/pywarpx/PICMI.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/Python/pywarpx/PICMI.py b/Python/pywarpx/PICMI.py
index 95bb758dc..30957970e 100644
--- a/Python/pywarpx/PICMI.py
+++ b/Python/pywarpx/PICMI.py
@@ -4,6 +4,8 @@ from PICMI_Base import *
import numpy as np
from pywarpx import *
+codename = 'WarpX'
+
class Grid(PICMI_Grid):
def init(self, **kw):
@@ -20,8 +22,26 @@ class Grid(PICMI_Grid):
# Geometry
geometry.coord_sys = kw.get('coord_sys', 0) # 0: Cartesian
geometry.is_periodic = '%d %d %d'%(self.bcxmin=='periodic', self.bcymin=='periodic', self.bczmin=='periodic') # Is periodic?
- geometry.prob_lo = '%7.0e %7.0e %7.0e'%(self.xmin, self.ymin, self.zmin) # physical domain
- geometry.prob_hi = '%7.0e %7.0e %7.0e'%(self.xmax, self.ymax, self.zmax)
+ geometry.prob_lo = '%s %s %s'%(repr(self.xmin), repr(self.ymin), repr(self.zmin)) # physical domain
+ geometry.prob_hi = '%s %s %s'%(repr(self.xmax), repr(self.ymax), repr(self.zmax))
+
+ if self.moving_window_velocity is not None and np.any(self.moving_window_velocity != 0):
+ warpx.do_moving_window = 1
+ if self.moving_window_velocity[0] != 0.:
+ warpx.moving_window_dir = 'x'
+ warpx.moving_window_v = self.moving_window_velocity[0]/clight # in units of the speed of light
+ if self.moving_window_velocity[1] != 0.:
+ warpx.moving_window_dir = 'y'
+ warpx.moving_window_v = self.moving_window_velocity[1]/clight # in units of the speed of light
+ if self.moving_window_velocity[2] != 0.:
+ warpx.moving_window_dir = 'z'
+ warpx.moving_window_v = self.moving_window_velocity[2]/clight # in units of the speed of light
+
+ def getmins(self, **kw):
+ return np.array([warpx.getProbLo(0), warpx.getProbLo(1), warpx.getProbLo(2)])
+
+ def getmaxs(self, **kw):
+ return np.array([warpx.getProbHi(0), warpx.getProbHi(1), warpx.getProbHi(2)])
def getxmin(self):
return warpx.getProbLo(0)