aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/picmi.py
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-11-06 16:22:41 -0800
committerGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-11-07 09:38:01 -0800
commitbdef308e6c5b4aeed8190b6ecdb25b00a51ca5f9 (patch)
tree6a8cefd9f739813a0378b21e24cebb5b193fe349 /Python/pywarpx/picmi.py
parent1b4eaecb0dcc77b4f6cc13ab521140aafc1b97c7 (diff)
downloadWarpX-bdef308e6c5b4aeed8190b6ecdb25b00a51ca5f9.tar.gz
WarpX-bdef308e6c5b4aeed8190b6ecdb25b00a51ca5f9.tar.zst
WarpX-bdef308e6c5b4aeed8190b6ecdb25b00a51ca5f9.zip
Implement space-charge initialization (non-relativistic, single-level)
Diffstat (limited to 'Python/pywarpx/picmi.py')
-rw-r--r--Python/pywarpx/picmi.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py
index c4e6803d5..6e9c9153b 100644
--- a/Python/pywarpx/picmi.py
+++ b/Python/pywarpx/picmi.py
@@ -56,7 +56,7 @@ class Species(picmistandard.PICMI_Species):
if self.mass is None:
self.mass = element.mass*periodictable.constants.atomic_mass_constant
- def initialize_inputs(self, layout):
+ def initialize_inputs(self, layout, initialize_self_fields=False):
self.species_number = pywarpx.particles.nspecies
pywarpx.particles.nspecies += 1
@@ -68,7 +68,8 @@ class Species(picmistandard.PICMI_Species):
else:
pywarpx.particles.species_names += ' ' + self.name
- self.species = pywarpx.Bucket.Bucket(self.name, mass=self.mass, charge=self.charge, injection_style = 'python')
+ self.species = pywarpx.Bucket.Bucket(self.name, mass=self.mass, charge=self.charge,
+ injection_style = 'python', initialize_self_fields=int(initialize_self_fields))
pywarpx.Particles.particles_list.append(self.species)
if self.initial_distribution is not None:
@@ -77,9 +78,9 @@ class Species(picmistandard.PICMI_Species):
picmistandard.PICMI_MultiSpecies.Species_class = Species
class MultiSpecies(picmistandard.PICMI_MultiSpecies):
- def initialize_inputs(self, layout):
+ def initialize_inputs(self, layout, initialize_self_fields=False):
for species in self.species_instances_list:
- species.initialize_inputs(layout)
+ species.initialize_inputs(layout, initialize_self_fields)
class GaussianBunchDistribution(picmistandard.PICMI_GaussianBunchDistribution):
@@ -544,8 +545,7 @@ class Simulation(picmistandard.PICMI_Simulation):
self.solver.initialize_inputs()
for i in range(len(self.species)):
- assert not self.initialize_self_fields[i], Exception('WarpX does not support initializing self fields')
- self.species[i].initialize_inputs(self.layouts[i])
+ self.species[i].initialize_inputs(self.layouts[i], self.initialize_self_fields[i])
for i in range(len(self.lasers)):
self.lasers[i].initialize_inputs()