aboutsummaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/pywarpx/picmi.py37
1 files changed, 34 insertions, 3 deletions
diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py
index c05bce211..28dde05e6 100644
--- a/Python/pywarpx/picmi.py
+++ b/Python/pywarpx/picmi.py
@@ -68,8 +68,12 @@ 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', initialize_self_fields=int(initialize_self_fields))
+ self.species = pywarpx.Bucket.Bucket(self.name,
+ mass = self.mass,
+ charge = self.charge,
+ injection_style = 'python',
+ initialize_self_fields = int(initialize_self_fields),
+ plot_vars = set())
pywarpx.Particles.particles_list.append(self.species)
if self.initial_distribution is not None:
@@ -675,10 +679,37 @@ class ParticleDiagnostic(picmistandard.PICMI_ParticleDiagnostic):
pywarpx.amr.check_consistency('plot_int', self.period, 'The period must be the same for all simulation frame diagnostics')
pywarpx.amr.plot_int = self.period
+ plot_vars = set()
for dataname in self.data_list:
- if dataname in ['part_per_cell', 'part_per_grid', 'part_per_proc']:
+ if dataname == 'position':
+ # --- The positions are alway written out anyway
+ pass
+ elif dataname == 'momentum':
+ plot_vars.add('ux')
+ plot_vars.add('uy')
+ plot_vars.add('uz')
+ elif dataname == 'weighting':
+ plot_vars.add('w')
+ elif dataname == 'fields':
+ plot_vars.add('Ex')
+ plot_vars.add('Ey')
+ plot_vars.add('Ez')
+ plot_vars.add('Bx')
+ plot_vars.add('By')
+ plot_vars.add('Bz')
+ elif dataname in ['ux', 'uy', 'uz', 'Ex', 'Ey', 'Ez', 'Bx', 'By', 'Bz']:
+ plot_vars.add(dataname)
+ elif dataname in ['part_per_cell', 'part_per_grid', 'part_per_proc']:
pywarpx.warpx.add_field_to_plot(dataname)
+ if plot_vars:
+ species = self.species
+ if not np.iterable(species):
+ species = [species]
+ for specie in species:
+ for var in plot_vars:
+ specie.species.plot_vars.add(var)
+
if self.write_dir is not None:
plot_file = self.write_dir + '/plotfiles/plt'
pywarpx.amr.check_consistency('plot_file', plot_file, 'The plot directory must be the same for all simulation frame diagnostics')