aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ryan Sandberg <RSandberg@lbl.gov> 2023-02-27 13:04:58 -0800
committerGravatar GitHub <noreply@github.com> 2023-02-27 21:04:58 +0000
commit3ac71fef9b83a3c3f94a93b492aec58329b546cc (patch)
tree53393c94f21b046bf777efeee1c55dc632c6956e
parentce188a26a22c99f5c4b297c9ffab6fc3c5c0e180 (diff)
downloadWarpX-3ac71fef9b83a3c3f94a93b492aec58329b546cc.tar.gz
WarpX-3ac71fef9b83a3c3f94a93b492aec58329b546cc.tar.zst
WarpX-3ac71fef9b83a3c3f94a93b492aec58329b546cc.zip
Change plotfile RZ allowed diags to r,t from x,y (#3663)
* change plotfile RZ allowed diag to r,t from x,y * Change labeling in checksums * add rz silver mueller analysis script * make analysis_silver_mueller_rz.py executable * change x,y fields to r,t in more tests * x->r in MR RZ checksums * correct analysis for plotfiles saved as 'boxlib' * add self to creator list * change rz diags in PICMI * correct PICMI changes * another y->t in an rz test * update picmi plotfile rz btd names * review suggestion to condense analysis * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> --------- Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
-rw-r--r--.zenodo.json5
-rw-r--r--Docs/source/usage/parameters.rst5
-rw-r--r--Examples/Physics_applications/laser_acceleration/inputs_rz2
-rwxr-xr-xExamples/Tests/electrostatic_sphere/analysis_electrostatic_sphere.py7
-rw-r--r--Examples/Tests/electrostatic_sphere/inputs_rz2
-rwxr-xr-xExamples/Tests/electrostatic_sphere_eb/analysis_rz.py2
-rw-r--r--Examples/Tests/electrostatic_sphere_eb/inputs_rz2
-rw-r--r--Examples/Tests/electrostatic_sphere_eb/inputs_rz_mr2
-rwxr-xr-xExamples/Tests/langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py2
-rwxr-xr-xExamples/Tests/langmuir/analysis_langmuir_multi_rz.py4
-rw-r--r--Examples/Tests/langmuir/inputs_2d_multi_rz_rt2
-rwxr-xr-xExamples/Tests/magnetostatic_eb/PICMI_inputs_rz.py2
-rw-r--r--Examples/Tests/multi_j/inputs_rz2
-rwxr-xr-xExamples/Tests/nci_psatd_stability/analysis_galilean.py8
-rw-r--r--Examples/Tests/nci_psatd_stability/inputs_rz2
-rwxr-xr-xExamples/Tests/pml/analysis_pml_psatd_rz.py2
-rw-r--r--Examples/Tests/pml/inputs_rz2
-rw-r--r--Examples/Tests/scraping/inputs_rz2
-rwxr-xr-xExamples/Tests/silver_mueller/analysis_silver_mueller.py26
-rw-r--r--Python/pywarpx/picmi.py69
-rw-r--r--Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ.json2
-rw-r--r--Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ_MR.json4
-rw-r--r--Regression/Checksum/benchmarks_json/Langmuir_multi_rz.json6
-rw-r--r--Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd.json6
-rw-r--r--Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd_current_correction.json6
-rw-r--r--Regression/Checksum/benchmarks_json/LaserAccelerationRZ.json12
-rw-r--r--Regression/Checksum/benchmarks_json/Python_Langmuir_rz_multimode.json6
-rw-r--r--Regression/Checksum/benchmarks_json/Python_LaserAccelerationRZ.json12
-rw-r--r--Regression/Checksum/benchmarks_json/Python_magnetostatic_eb_rz.json4
-rw-r--r--Regression/Checksum/benchmarks_json/collisionRZ.json12
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_rz_psatd.json8
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json8
-rw-r--r--Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction_psb.json8
-rw-r--r--Regression/Checksum/benchmarks_json/multi_J_rz_psatd.json6
-rw-r--r--Regression/Checksum/benchmarks_json/pml_psatd_rz.json8
-rw-r--r--Regression/Checksum/benchmarks_json/scraping.json4
-rw-r--r--Regression/Checksum/benchmarks_json/silver_mueller_rz_z.json12
-rw-r--r--Regression/WarpX-tests.ini2
-rw-r--r--Source/Diagnostics/Diagnostics.cpp2
-rw-r--r--Source/Diagnostics/FullDiagnostics.cpp62
40 files changed, 203 insertions, 137 deletions
diff --git a/.zenodo.json b/.zenodo.json
index f26af9677..43af64573 100644
--- a/.zenodo.json
+++ b/.zenodo.json
@@ -149,6 +149,11 @@
"orcid": "0000-0003-2406-1273"
},
{
+ "affiliation": "Lawrence Berkeley National Laboratory",
+ "name": "Sandberg, Ryan T.",
+ "orcid": "0000-0001-7680-8733"
+ },
+ {
"affiliation": "Modern Electron",
"name": "Scherpelz, Peter",
"orcid": "0000-0001-8185-3387"
diff --git a/Docs/source/usage/parameters.rst b/Docs/source/usage/parameters.rst
index 5a9b9f175..a5914fbc3 100644
--- a/Docs/source/usage/parameters.rst
+++ b/Docs/source/usage/parameters.rst
@@ -2157,12 +2157,9 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a
Possible scalar fields: ``part_per_cell`` ``rho`` ``phi`` ``F`` ``part_per_grid`` ``divE`` ``divB`` and ``rho_<species_name>``, where ``<species_name>`` must match the name of one of the available particle species. Note that ``phi`` will only be written out when do_electrostatic==labframe. Also, note that for ``<diag_name>.diag_type = BackTransformed``, the only scalar field currently supported is ``rho``.
Possible vector field components in Cartesian geometry: ``Ex`` ``Ey`` ``Ez`` ``Bx`` ``By`` ``Bz`` ``jx`` ``jy`` ``jz``.
Possible vector field components in RZ geometry: ``Er`` ``Et`` ``Ez`` ``Br`` ``Bt`` ``Bz`` ``jr`` ``jt`` ``jz``.
- Default is ``<diag_name>.fields_to_plot = Ex Ey Ez Bx By Bz jx jy jz``,
- unless in RZ geometry with ``<diag_name>.format == openpmd``,
- then default is ``<diag_name>.fields_to_plot = Er Et Ez Br Bt Bz jr jt jz``.
+ The default is ``<diag_name>.fields_to_plot = Ex Ey Ez Bx By Bz jx jy jz`` in Cartesian geometry and ``<diag_name>.fields_to_plot = Er Et Ez Br Bt Bz jr jt jz`` in RZ geometry.
When the special value ``none`` is specified, no fields are written out.
Note that the fields are averaged on the cell centers before they are written to file.
- Also, when ``<diag_name>.format = openpmd``, the RZ modes for all fields are written.
Otherwise, we reconstruct a 2D Cartesian slice of the fields for output at :math:`\theta=0`.
* ``<diag_name>.dump_rz_modes`` (`0` or `1`) optional (default `0`)
diff --git a/Examples/Physics_applications/laser_acceleration/inputs_rz b/Examples/Physics_applications/laser_acceleration/inputs_rz
index 443508821..7365523b5 100644
--- a/Examples/Physics_applications/laser_acceleration/inputs_rz
+++ b/Examples/Physics_applications/laser_acceleration/inputs_rz
@@ -88,6 +88,6 @@ laser1.wavelength = 0.8e-6 # The wavelength of the laser (in m)
diagnostics.diags_names = diag1
diag1.intervals = 10
diag1.diag_type = Full
-diag1.fields_to_plot = Ex Ey Ez Bx By Bz jx jy jz rho
+diag1.fields_to_plot = Er Et Ez Br Bt Bz jr jt jz rho
diag1.electrons.variables = w ux uy uz orig_x orig_z
diag1.beam.variables = w ux uy uz
diff --git a/Examples/Tests/electrostatic_sphere/analysis_electrostatic_sphere.py b/Examples/Tests/electrostatic_sphere/analysis_electrostatic_sphere.py
index c718c1a42..cbb424ffe 100755
--- a/Examples/Tests/electrostatic_sphere/analysis_electrostatic_sphere.py
+++ b/Examples/Tests/electrostatic_sphere/analysis_electrostatic_sphere.py
@@ -84,11 +84,12 @@ data = ds.covering_grid(level=0,
dims=ds.domain_dimensions)
# Extract the E field along the axes
-if ndims == 2:
- Ex = data[('mesh','Ex')].to_ndarray()
+# if ndims == 2:
+if ds.parameters['geometry.dims'] == 'RZ':
+ Ex = data[('boxlib','Er')].to_ndarray()
Ex_axis = Ex[:,iz0,0]
Ey_axis = Ex_axis
- Ez = data[('mesh','Ez')].to_ndarray()
+ Ez = data[('boxlib','Ez')].to_ndarray()
Ez_axis = Ez[ix0,:,0]
else:
Ex = data[('mesh','Ex')].to_ndarray()
diff --git a/Examples/Tests/electrostatic_sphere/inputs_rz b/Examples/Tests/electrostatic_sphere/inputs_rz
index 11d86575a..58f31046d 100644
--- a/Examples/Tests/electrostatic_sphere/inputs_rz
+++ b/Examples/Tests/electrostatic_sphere/inputs_rz
@@ -33,4 +33,4 @@ electron.momentum_distribution_type = at_rest
diagnostics.diags_names = diag1
diag1.intervals = 30
diag1.diag_type = Full
-diag1.fields_to_plot = Ex Ey Ez rho
+diag1.fields_to_plot = Er Et Ez rho
diff --git a/Examples/Tests/electrostatic_sphere_eb/analysis_rz.py b/Examples/Tests/electrostatic_sphere_eb/analysis_rz.py
index bb170f921..11c04d5c7 100755
--- a/Examples/Tests/electrostatic_sphere_eb/analysis_rz.py
+++ b/Examples/Tests/electrostatic_sphere_eb/analysis_rz.py
@@ -32,7 +32,7 @@ ds = yt.load( fn )
all_data_level_0 = ds.covering_grid(level=0,left_edge=ds.domain_left_edge, dims=ds.domain_dimensions)
phi = all_data_level_0['boxlib', 'phi'].v.squeeze()
-Er = all_data_level_0['boxlib', 'Ex'].v.squeeze()
+Er = all_data_level_0['boxlib', 'Er'].v.squeeze()
Dx = ds.domain_width/ds.domain_dimensions
dr = Dx[0]
diff --git a/Examples/Tests/electrostatic_sphere_eb/inputs_rz b/Examples/Tests/electrostatic_sphere_eb/inputs_rz
index af5f7fcbf..28ebadb1c 100644
--- a/Examples/Tests/electrostatic_sphere_eb/inputs_rz
+++ b/Examples/Tests/electrostatic_sphere_eb/inputs_rz
@@ -26,4 +26,4 @@ algo.field_gathering = momentum-conserving
diagnostics.diags_names = diag1
diag1.intervals = 1
diag1.diag_type = Full
-diag1.fields_to_plot = Ex phi
+diag1.fields_to_plot = Er phi
diff --git a/Examples/Tests/electrostatic_sphere_eb/inputs_rz_mr b/Examples/Tests/electrostatic_sphere_eb/inputs_rz_mr
index 0501760f3..3bea63d76 100644
--- a/Examples/Tests/electrostatic_sphere_eb/inputs_rz_mr
+++ b/Examples/Tests/electrostatic_sphere_eb/inputs_rz_mr
@@ -29,4 +29,4 @@ algo.field_gathering = momentum-conserving
diagnostics.diags_names = diag1
diag1.intervals = 1
diag1.diag_type = Full
-diag1.fields_to_plot = Ex phi
+diag1.fields_to_plot = Er phi
diff --git a/Examples/Tests/langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py b/Examples/Tests/langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py
index a515797e3..018303a96 100755
--- a/Examples/Tests/langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py
+++ b/Examples/Tests/langmuir/PICMI_inputs_langmuir_rz_multimode_analyze.py
@@ -104,7 +104,7 @@ solver = picmi.ElectromagneticSolver(grid=grid, cfl=1.)
field_diag1 = picmi.FieldDiagnostic(name = 'diag1',
grid = grid,
period = diagnostic_intervals,
- data_list = ['Ex', 'Ez', 'By', 'Jx', 'Jz', 'part_per_cell'],
+ data_list = ['Er', 'Ez', 'Bt', 'Jr', 'Jz', 'part_per_cell'],
write_dir = '.',
warpx_file_prefix = 'Python_Langmuir_rz_multimode_plt')
diff --git a/Examples/Tests/langmuir/analysis_langmuir_multi_rz.py b/Examples/Tests/langmuir/analysis_langmuir_multi_rz.py
index b87fa385b..e5ae21941 100755
--- a/Examples/Tests/langmuir/analysis_langmuir_multi_rz.py
+++ b/Examples/Tests/langmuir/analysis_langmuir_multi_rz.py
@@ -89,13 +89,13 @@ zz = zmin + (coords[1] + 0.5)*dz
# Check the validity of the fields
overall_max_error = 0
-Er_sim = data[('mesh','Ex')].to_ndarray()[:,:,0]
+Er_sim = data[('boxlib','Er')].to_ndarray()[:,:,0]
Er_th = Er(zz, rr, epsilon, k0, w0, wp, t0)
max_error = abs(Er_sim-Er_th).max()/abs(Er_th).max()
print('Er: Max error: %.2e' %(max_error))
overall_max_error = max( overall_max_error, max_error )
-Ez_sim = data[('mesh','Ez')].to_ndarray()[:,:,0]
+Ez_sim = data[('boxlib','Ez')].to_ndarray()[:,:,0]
Ez_th = Ez(zz, rr, epsilon, k0, w0, wp, t0)
max_error = abs(Ez_sim-Ez_th).max()/abs(Ez_th).max()
print('Ez: Max error: %.2e' %(max_error))
diff --git a/Examples/Tests/langmuir/inputs_2d_multi_rz_rt b/Examples/Tests/langmuir/inputs_2d_multi_rz_rt
index c97d3aaa0..534296759 100644
--- a/Examples/Tests/langmuir/inputs_2d_multi_rz_rt
+++ b/Examples/Tests/langmuir/inputs_2d_multi_rz_rt
@@ -85,7 +85,7 @@ ions.momentum_distribution_type = at_rest
diagnostics.diags_names = diag1 diag_parser_filter diag_uniform_filter diag_random_filter
diag1.intervals = max_step/2
diag1.diag_type = Full
-diag1.fields_to_plot = jx jz Ex Ez By
+diag1.fields_to_plot = jr jz Er Ez Bt
## diag_parser_filter is a diag used to test the particle filter function.
diag_parser_filter.intervals = max_step:max_step:
diff --git a/Examples/Tests/magnetostatic_eb/PICMI_inputs_rz.py b/Examples/Tests/magnetostatic_eb/PICMI_inputs_rz.py
index 2ddd0c39e..693bc1b88 100755
--- a/Examples/Tests/magnetostatic_eb/PICMI_inputs_rz.py
+++ b/Examples/Tests/magnetostatic_eb/PICMI_inputs_rz.py
@@ -114,7 +114,7 @@ field_diag = picmi.FieldDiagnostic(
name = 'diag1',
grid = grid,
period = 1,
- data_list = ['Ex', 'By', 'Az', 'Jz', 'phi', 'rho'],
+ data_list = ['Er', 'Bt', 'Az', 'Jz', 'phi', 'rho'],
write_dir = '.',
warpx_file_prefix = 'Python_magnetostatic_eb_rz_plt'
)
diff --git a/Examples/Tests/multi_j/inputs_rz b/Examples/Tests/multi_j/inputs_rz
index 2310e58a1..054c91d67 100644
--- a/Examples/Tests/multi_j/inputs_rz
+++ b/Examples/Tests/multi_j/inputs_rz
@@ -113,5 +113,5 @@ plasma_p.do_continuous_injection = 1
diagnostics.diags_names = diag1
diag1.intervals = 50
diag1.diag_type = Full
-diag1.fields_to_plot = Ex Ez By jx jz rho rho_driver rho_plasma_e rho_plasma_p
+diag1.fields_to_plot = Er Ez Bt jr jz rho rho_driver rho_plasma_e rho_plasma_p
diag1.species = driver plasma_e plasma_p
diff --git a/Examples/Tests/nci_psatd_stability/analysis_galilean.py b/Examples/Tests/nci_psatd_stability/analysis_galilean.py
index 9fe6bab72..1ec43b08e 100755
--- a/Examples/Tests/nci_psatd_stability/analysis_galilean.py
+++ b/Examples/Tests/nci_psatd_stability/analysis_galilean.py
@@ -51,8 +51,12 @@ ds = yt.load(filename)
if 'force_periodicity' in dir(ds): ds.force_periodicity()
all_data = ds.covering_grid(level=0, left_edge=ds.domain_left_edge, dims=ds.domain_dimensions)
-Ex = all_data['boxlib', 'Ex'].squeeze().v
-Ey = all_data['boxlib', 'Ey'].squeeze().v
+if dims == 'RZ':
+ Ex = all_data['boxlib', 'Er'].squeeze().v
+ Ey = all_data['boxlib', 'Et'].squeeze().v
+else:
+ Ex = all_data['boxlib', 'Ex'].squeeze().v
+ Ey = all_data['boxlib', 'Ey'].squeeze().v
Ez = all_data['boxlib', 'Ez'].squeeze().v
# Set reference energy values, and tolerances for numerical stability and charge conservation
diff --git a/Examples/Tests/nci_psatd_stability/inputs_rz b/Examples/Tests/nci_psatd_stability/inputs_rz
index 772711ddc..3f1871c00 100644
--- a/Examples/Tests/nci_psatd_stability/inputs_rz
+++ b/Examples/Tests/nci_psatd_stability/inputs_rz
@@ -75,4 +75,4 @@ ions.uz_th = 0.0001
diagnostics.diags_names = diag1
diag1.intervals = 100
diag1.diag_type = Full
-diag1.fields_to_plot = Ex Ey Ez By jx jz rho divE
+diag1.fields_to_plot = Er Et Ez Bt jr jz rho divE
diff --git a/Examples/Tests/pml/analysis_pml_psatd_rz.py b/Examples/Tests/pml/analysis_pml_psatd_rz.py
index b905d938b..d4f1ff42a 100755
--- a/Examples/Tests/pml/analysis_pml_psatd_rz.py
+++ b/Examples/Tests/pml/analysis_pml_psatd_rz.py
@@ -36,7 +36,7 @@ if 'force_periodicity' in dir(ds): ds.force_periodicity()
# Check that the field is low enough
ad0 = ds.covering_grid(level=0, left_edge=ds.domain_left_edge, dims=ds.domain_dimensions)
-Ex_array = ad0['boxlib', 'Ex'].to_ndarray()
+Ex_array = ad0['boxlib', 'Er'].to_ndarray()
Ez_array = ad0['boxlib', 'Ez'].to_ndarray()
max_Ex = np.abs(Ex_array).max()
max_Ez = np.abs(Ez_array).max()
diff --git a/Examples/Tests/pml/inputs_rz b/Examples/Tests/pml/inputs_rz
index 9ca7e4894..f5e23fe03 100644
--- a/Examples/Tests/pml/inputs_rz
+++ b/Examples/Tests/pml/inputs_rz
@@ -45,5 +45,5 @@ electron.single_particle_weight = 1.
#################################
diagnostics.diags_names = diag1
diag1.intervals = 500
-diag1.fields_to_plot = By Ex Ez jx jy jz rho
+diag1.fields_to_plot = Bt Er Ez jr jt jz rho
diag1.diag_type = Full
diff --git a/Examples/Tests/scraping/inputs_rz b/Examples/Tests/scraping/inputs_rz
index 875480fa7..0dab9ebed 100644
--- a/Examples/Tests/scraping/inputs_rz
+++ b/Examples/Tests/scraping/inputs_rz
@@ -46,7 +46,7 @@ diagnostics.diags_names = diag1 diag2 diag3
diag1.intervals = 1
diag1.diag_type = Full
-diag1.fields_to_plot = Ex
+diag1.fields_to_plot = Er
diag2.intervals = 1
diag2.diag_type = Full
diff --git a/Examples/Tests/silver_mueller/analysis_silver_mueller.py b/Examples/Tests/silver_mueller/analysis_silver_mueller.py
index 9fa7dc9f1..bfab40aa9 100755
--- a/Examples/Tests/silver_mueller/analysis_silver_mueller.py
+++ b/Examples/Tests/silver_mueller/analysis_silver_mueller.py
@@ -12,6 +12,7 @@ test check that the reflected field at the boundary is negligible.
"""
import os
+import re
import sys
import numpy as np
@@ -24,15 +25,28 @@ filename = sys.argv[1]
ds = yt.load( filename )
all_data_level_0 = ds.covering_grid(level=0,left_edge=ds.domain_left_edge, dims=ds.domain_dimensions)
-Ex = all_data_level_0['boxlib', 'Ex'].v.squeeze()
-Ey = all_data_level_0['boxlib', 'Ey'].v.squeeze()
-Ez = all_data_level_0['boxlib', 'Ez'].v.squeeze()
+warpx_used_inputs = open('./warpx_used_inputs', 'r').read()
+geom_RZ = re.search('geometry.dims = RZ', warpx_used_inputs)
+if geom_RZ:
+ Er = all_data_level_0['boxlib', 'Er'].v.squeeze()
+ Et = all_data_level_0['boxlib', 'Et'].v.squeeze()
+ Ez = all_data_level_0['boxlib', 'Ez'].v.squeeze()
+else:
+ Ex = all_data_level_0['boxlib', 'Ex'].v.squeeze()
+ Ey = all_data_level_0['boxlib', 'Ey'].v.squeeze()
+ Ez = all_data_level_0['boxlib', 'Ez'].v.squeeze()
# The peak of the initial laser pulse is on the order of 6 V/m
# Check that the amplitude after reflection is less than 0.01 V/m
max_reflection_amplitude = 0.01
-assert np.all( abs(Ex) < max_reflection_amplitude )
-assert np.all( abs(Ey) < max_reflection_amplitude )
-assert np.all( abs(Ez) < max_reflection_amplitude )
+
+if geom_RZ:
+ assert np.all( abs(Er) < max_reflection_amplitude )
+ assert np.all( abs(Et) < max_reflection_amplitude )
+ assert np.all( abs(Ez) < max_reflection_amplitude )
+else:
+ assert np.all( abs(Ex) < max_reflection_amplitude )
+ assert np.all( abs(Ey) < max_reflection_amplitude )
+ assert np.all( abs(Ez) < max_reflection_amplitude )
test_name = os.path.split(os.getcwd())[1]
checksumAPI.evaluate_checksum(test_name, filename)
diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py
index 45dfaa3dd..ce82ea5c9 100644
--- a/Python/pywarpx/picmi.py
+++ b/Python/pywarpx/picmi.py
@@ -1746,27 +1746,39 @@ class FieldDiagnostic(picmistandard.PICMI_FieldDiagnostic, WarpXDiagnosticBase):
# --- Use a set to ensure that fields don't get repeated.
fields_to_plot = set()
+ if pywarpx.geometry.dims == 'RZ':
+ E_fields_list = ['Er', 'Et', 'Ez']
+ B_fields_list = ['Br', 'Bt', 'Bz']
+ J_fields_list = ['Jr', 'Jt', 'Jz']
+ A_fields_list = ['Ar', 'At', 'Az']
+ else:
+ E_fields_list = ['Ex', 'Ey', 'Ez']
+ B_fields_list = ['Bx', 'By', 'Bz']
+ J_fields_list = ['Jx', 'Jy', 'Jz']
+ A_fields_list = ['Ax', 'Ay', 'Az']
if self.data_list is not None:
for dataname in self.data_list:
if dataname == 'E':
- fields_to_plot.add('Ex')
- fields_to_plot.add('Ey')
- fields_to_plot.add('Ez')
+ for field_name in E_fields_list:
+ fields_to_plot.add(field_name)
elif dataname == 'B':
- fields_to_plot.add('Bx')
- fields_to_plot.add('By')
- fields_to_plot.add('Bz')
+ for field_name in B_fields_list:
+ fields_to_plot.add(field_name)
elif dataname == 'J':
- fields_to_plot.add('jx')
- fields_to_plot.add('jy')
- fields_to_plot.add('jz')
+ for field_name in J_fields_list:
+ fields_to_plot.add(field_name.lower())
elif dataname == 'A':
- fields_to_plot.add('Ax')
- fields_to_plot.add('Ay')
- fields_to_plot.add('Az')
- elif dataname in ['Ex', 'Ey', 'Ez', 'Bx', 'By', 'Bz', 'Ax', 'Ay', 'Az', 'rho', 'phi', 'F', 'proc_number', 'part_per_cell']:
+ for field_name in A_fields_list:
+ fields_to_plot.add(field_name)
+ elif dataname in E_fields_list:
+ fields_to_plot.add(dataname)
+ elif dataname in B_fields_list:
+ fields_to_plot.add(dataname)
+ elif dataname in A_fields_list:
fields_to_plot.add(dataname)
- elif dataname in ['Jx', 'Jy', 'Jz']:
+ elif dataname in ['rho', 'phi', 'F', 'proc_number', 'part_per_cell']:
+ fields_to_plot.add(dataname)
+ elif dataname in J_fields_list:
fields_to_plot.add(dataname.lower())
elif dataname.startswith('rho_'):
# Adds rho_species diagnostic
@@ -2015,23 +2027,30 @@ class LabFrameFieldDiagnostic(picmistandard.PICMI_LabFrameFieldDiagnostic,
# --- Use a set to ensure that fields don't get repeated.
fields_to_plot = set()
+ if pywarpx.geometry.dims == 'RZ':
+ E_fields_list = ['Er', 'Et', 'Ez']
+ B_fields_list = ['Br', 'Bt', 'Bz']
+ J_fields_list = ['Jr', 'Jt', 'Jz']
+ else:
+ E_fields_list = ['Ex', 'Ey', 'Ez']
+ B_fields_list = ['Bx', 'By', 'Bz']
+ J_fields_list = ['Jx', 'Jy', 'Jz']
if self.data_list is not None:
for dataname in self.data_list:
if dataname == 'E':
- fields_to_plot.add('Ex')
- fields_to_plot.add('Ey')
- fields_to_plot.add('Ez')
+ for field_name in E_fields_list:
+ fields_to_plot.add(field_name)
elif dataname == 'B':
- fields_to_plot.add('Bx')
- fields_to_plot.add('By')
- fields_to_plot.add('Bz')
+ for field_name in B_fields_list:
+ fields_to_plot.add(field_name)
elif dataname == 'J':
- fields_to_plot.add('jx')
- fields_to_plot.add('jy')
- fields_to_plot.add('jz')
- elif dataname in ['Ex', 'Ey', 'Ez', 'Bx', 'By', 'Bz', 'rho']:
+ for field_name in J_fields_list:
+ fields_to_plot.add(field_name.lower())
+ elif dataname in E_fields_list:
+ fields_to_plot.add(dataname)
+ elif dataname in B_fields_list:
fields_to_plot.add(dataname)
- elif dataname in ['Jx', 'Jy', 'Jz']:
+ elif dataname in J_fields_list:
fields_to_plot.add(dataname.lower())
elif dataname.startswith('rho_'):
# Adds rho_species diagnostic
diff --git a/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ.json b/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ.json
index 05e6102a8..ac137cb37 100644
--- a/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ.json
+++ b/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ.json
@@ -1,6 +1,6 @@
{
"lev=0": {
- "Ex": 8497.669853722688,
+ "Er": 8497.669853722688,
"phi": 2035.6618484435153
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ_MR.json b/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ_MR.json
index 05854b9ad..74996f211 100644
--- a/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ_MR.json
+++ b/Regression/Checksum/benchmarks_json/ElectrostaticSphereEB_RZ_MR.json
@@ -1,10 +1,10 @@
{
"lev=0": {
- "Ex": 8497.669853733625,
+ "Er": 8497.669853733625,
"phi": 2035.6618484451055
},
"lev=1": {
- "Ex": 19546.08010855407,
+ "Er": 19546.08010855407,
"phi": 3290.7266050322164
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/Langmuir_multi_rz.json b/Regression/Checksum/benchmarks_json/Langmuir_multi_rz.json
index 0d1688291..ee9116ddc 100644
--- a/Regression/Checksum/benchmarks_json/Langmuir_multi_rz.json
+++ b/Regression/Checksum/benchmarks_json/Langmuir_multi_rz.json
@@ -18,10 +18,10 @@
"particle_weight": 81147583679.15044
},
"lev=0": {
- "By": 11.642563224192484,
- "Ex": 1290320281608.1401,
+ "Bt": 11.642563224192484,
+ "Er": 1290320281608.1401,
"Ez": 1798383207925.8538,
- "jx": 252864052683984.7,
+ "jr": 252864052683984.7,
"jz": 347280901370211.1
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd.json b/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd.json
index 628395995..691bd21cc 100644
--- a/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd.json
+++ b/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd.json
@@ -18,10 +18,10 @@
"particle_weight": 81147583679.15044
},
"lev=0": {
- "By": 6.6384663612214645,
- "Ex": 482850037231.61694,
+ "Bt": 6.6384663612214645,
+ "Er": 482850037231.61694,
"Ez": 665616861726.1171,
- "jx": 894824890894158.4,
+ "jr": 894824890894158.4,
"jz": 1250754371134122.0
}
}
diff --git a/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd_current_correction.json b/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd_current_correction.json
index ce0c2cd72..8ac5beb34 100644
--- a/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd_current_correction.json
+++ b/Regression/Checksum/benchmarks_json/Langmuir_multi_rz_psatd_current_correction.json
@@ -18,11 +18,11 @@
"particle_weight": 81147583679.15044
},
"lev=0": {
- "By": 6.632261581212596,
- "Ex": 478937338832.8708,
+ "Bt": 6.632261581212596,
+ "Er": 478937338832.8708,
"Ez": 662607529111.851,
"divE": 4.355808435163315e+17,
- "jx": 893968704248372.8,
+ "jr": 893968704248372.8,
"jz": 1251505252231279.2,
"rho": 3856714.596151368
}
diff --git a/Regression/Checksum/benchmarks_json/LaserAccelerationRZ.json b/Regression/Checksum/benchmarks_json/LaserAccelerationRZ.json
index e543b9ada..976a3bdee 100644
--- a/Regression/Checksum/benchmarks_json/LaserAccelerationRZ.json
+++ b/Regression/Checksum/benchmarks_json/LaserAccelerationRZ.json
@@ -26,8 +26,8 @@
"Btheta_0_real": 1297.3299824026299,
"Btheta_1_imag": 105725.25637121125,
"Btheta_1_real": 141.25524413452112,
- "Bx": 104965.6138283532,
- "By": 1296.2727613183374,
+ "Br": 104965.6138283532,
+ "Bt": 1296.2727613183374,
"Bz": 5076.743764997268,
"Bz_0_real": 0.46038147543152824,
"Bz_1_imag": 1.007452397747621,
@@ -38,8 +38,8 @@
"Etheta_0_real": 112249661.08828562,
"Etheta_1_imag": 33602739100.133934,
"Etheta_1_real": 39016517445019.95,
- "Ex": 273570655229.63535,
- "Ey": 39016542452492.57,
+ "Er": 273570655229.63535,
+ "Et": 39016542452492.57,
"Ez": 511653044133.8529,
"Ez_0_real": 496845145101.94775,
"Ez_1_imag": 1245709559726.1033,
@@ -53,8 +53,8 @@
"Jz_0_real": 1832469154489130.8,
"Jz_1_imag": 556484676782123.3,
"Jz_1_real": 602703174081284.9,
- "jx": 1750423139263.8418,
- "jy": 2.176637920803457e+17,
+ "jr": 1750423139263.8418,
+ "jt": 2.176637920803457e+17,
"jz": 1954078914516329.2,
"rho": 39314213.383921936,
"rho_0_real": 38889619.16177814,
diff --git a/Regression/Checksum/benchmarks_json/Python_Langmuir_rz_multimode.json b/Regression/Checksum/benchmarks_json/Python_Langmuir_rz_multimode.json
index 4a1fcc4dc..c926cc19a 100644
--- a/Regression/Checksum/benchmarks_json/Python_Langmuir_rz_multimode.json
+++ b/Regression/Checksum/benchmarks_json/Python_Langmuir_rz_multimode.json
@@ -9,10 +9,10 @@
"particle_weight": 81147583679.15047
},
"lev=0": {
- "By": 2.496097613843332,
- "Ex": 879037494036.5272,
+ "Bt": 2.496097613843332,
+ "Er": 879037494036.5272,
"Ez": 1707659987719.488,
- "jx": 210208682137002.0,
+ "jr": 210208682137002.0,
"jz": 407196102143353.38,
"part_per_cell": 1472000.0
}
diff --git a/Regression/Checksum/benchmarks_json/Python_LaserAccelerationRZ.json b/Regression/Checksum/benchmarks_json/Python_LaserAccelerationRZ.json
index 05707ff44..1c75b69dc 100644
--- a/Regression/Checksum/benchmarks_json/Python_LaserAccelerationRZ.json
+++ b/Regression/Checksum/benchmarks_json/Python_LaserAccelerationRZ.json
@@ -24,8 +24,8 @@
"Btheta_0_real": 1299.8816721733124,
"Btheta_1_imag": 143318.04456658955,
"Btheta_1_real": 155.37774833024366,
- "Bx": 142258.01319076555,
- "By": 1301.5695263567557,
+ "Br": 142258.01319076555,
+ "Bt": 1301.5695263567557,
"Bz": 5993.640969075834,
"Bz_0_real": 0.4737412745527051,
"Bz_1_imag": 1.1409956493384725,
@@ -36,8 +36,8 @@
"Etheta_0_real": 135868121.7945822,
"Etheta_1_imag": 36802874200.20133,
"Etheta_1_real": 47328835452079.97,
- "Ex": 278531658643.55005,
- "Ey": 47328876227481.125,
+ "Er": 278531658643.55005,
+ "Et": 47328876227481.125,
"Ez": 514006664374.9789,
"Ez_0_real": 499008075334.7451,
"Ez_1_imag": 1565161989236.6174,
@@ -51,8 +51,8 @@
"Jz_0_real": 1832470462501306.8,
"Jz_1_imag": 621924149855721.0,
"Jz_1_real": 660909646259030.1,
- "jx": 2109207014985.481,
- "jy": 2.1766370884715638e+17,
+ "jr": 2109207014985.481,
+ "jt": 2.1766370884715638e+17,
"jz": 1954236712029783.0,
"rho": 39480730.556067616,
"rho_0_real": 39055926.50167212,
diff --git a/Regression/Checksum/benchmarks_json/Python_magnetostatic_eb_rz.json b/Regression/Checksum/benchmarks_json/Python_magnetostatic_eb_rz.json
index f60b93861..6cdbea79f 100644
--- a/Regression/Checksum/benchmarks_json/Python_magnetostatic_eb_rz.json
+++ b/Regression/Checksum/benchmarks_json/Python_magnetostatic_eb_rz.json
@@ -1,8 +1,8 @@
{
"lev=0": {
"Az": 1.730556994029862,
- "By": 15.521137246668234,
- "Ex": 4333723928.147758,
+ "Bt": 15.521137246668234,
+ "Er": 4333723928.147758,
"jz": 207219729.96381122,
"phi": 479458089.21137255,
"rho": 0.6946928324123767
diff --git a/Regression/Checksum/benchmarks_json/collisionRZ.json b/Regression/Checksum/benchmarks_json/collisionRZ.json
index d24938471..d0dee71a4 100644
--- a/Regression/Checksum/benchmarks_json/collisionRZ.json
+++ b/Regression/Checksum/benchmarks_json/collisionRZ.json
@@ -1,13 +1,13 @@
{
"lev=0": {
- "Bx": 0.0,
- "By": 0.0,
+ "Br": 0.0,
+ "Bt": 0.0,
"Bz": 0.0,
- "Ex": 0.0,
- "Ey": 0.0,
+ "Er": 0.0,
+ "Et": 0.0,
"Ez": 0.0,
- "jx": 0.0,
- "jy": 0.0,
+ "jr": 0.0,
+ "jt": 0.0,
"jz": 0.0
}
} \ No newline at end of file
diff --git a/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json b/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json
index 1424b2999..4540ae060 100644
--- a/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json
+++ b/Regression/Checksum/benchmarks_json/galilean_rz_psatd.json
@@ -18,12 +18,12 @@
"particle_weight": 1.0261080645329302e+20
},
"lev=0": {
- "By": 0.001562883692638829,
- "Ex": 472898.8472557917,
- "Ey": 130009.60500031436,
+ "Bt": 0.001562883692638829,
+ "Er": 472898.8472557917,
+ "Et": 130009.60500031436,
"Ez": 34040.513530879995,
"divE": 1111671.6764975644,
- "jx": 155.77453032437285,
+ "jr": 155.77453032437285,
"jz": 50412.34038191459,
"rho": 9.849864169336992e-06
}
diff --git a/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json b/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json
index 3dd8810fa..1e853c0b1 100644
--- a/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json
+++ b/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction.json
@@ -18,12 +18,12 @@
"particle_weight": 1.0261080645329302e+20
},
"lev=0": {
- "By": 0.0017182252289440264,
- "Ex": 518347.23478549306,
- "Ey": 137106.07262027927,
+ "Bt": 0.0017182252289440264,
+ "Er": 518347.23478549306,
+ "Et": 137106.07262027927,
"Ez": 35918.446653926556,
"divE": 1227626.4690642208,
- "jx": 159.1245447865701,
+ "jr": 159.1245447865701,
"jz": 49252.95943703725,
"rho": 1.0869618748586227e-05
}
diff --git a/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction_psb.json b/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction_psb.json
index 73cd09635..f16fc8dad 100644
--- a/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction_psb.json
+++ b/Regression/Checksum/benchmarks_json/galilean_rz_psatd_current_correction_psb.json
@@ -18,12 +18,12 @@
"particle_weight": 1.0261080645329302e+20
},
"lev=0": {
- "By": 0.0017275299193154866,
- "Ex": 520734.8193541992,
- "Ey": 130008.65587120061,
+ "Bt": 0.0017275299193154866,
+ "Er": 520734.8193541992,
+ "Et": 130008.65587120061,
"Ez": 36540.80980315481,
"divE": 1228895.3465882093,
- "jx": 103.9586429924576,
+ "jr": 103.9586429924576,
"jz": 3245.258754763504,
"rho": 1.088087020096811e-05
}
diff --git a/Regression/Checksum/benchmarks_json/multi_J_rz_psatd.json b/Regression/Checksum/benchmarks_json/multi_J_rz_psatd.json
index 2a9620903..eb145b631 100644
--- a/Regression/Checksum/benchmarks_json/multi_J_rz_psatd.json
+++ b/Regression/Checksum/benchmarks_json/multi_J_rz_psatd.json
@@ -9,10 +9,10 @@
"particle_weight": 6241484108.424456
},
"lev=0": {
- "By": 24045.34926330333,
- "Ex": 4530500183998.0205,
+ "Bt": 24045.34926330333,
+ "Er": 4530500183998.0205,
"Ez": 4297045713383.818,
- "jx": 361149490291532.8,
+ "jr": 361149490291532.8,
"jz": 1805428826325930.2,
"rho": 4895064.444869195,
"rho_driver": 6288266.101815153,
diff --git a/Regression/Checksum/benchmarks_json/pml_psatd_rz.json b/Regression/Checksum/benchmarks_json/pml_psatd_rz.json
index ff7c8f75e..6772ed0ba 100644
--- a/Regression/Checksum/benchmarks_json/pml_psatd_rz.json
+++ b/Regression/Checksum/benchmarks_json/pml_psatd_rz.json
@@ -1,10 +1,10 @@
{
"lev=0": {
- "By": 3.268846294905577e-06,
- "Ex": 1317.2337418101645,
+ "Bt": 3.268846294905577e-06,
+ "Er": 1317.2337418101645,
"Ez": 1156.1377910176307,
- "jx": 0.0,
- "jy": 0.0,
+ "jr": 0.0,
+ "jt": 0.0,
"jz": 0.0,
"rho": 0.0
}
diff --git a/Regression/Checksum/benchmarks_json/scraping.json b/Regression/Checksum/benchmarks_json/scraping.json
index ffffaa632..8f85b956b 100644
--- a/Regression/Checksum/benchmarks_json/scraping.json
+++ b/Regression/Checksum/benchmarks_json/scraping.json
@@ -1,8 +1,8 @@
{
"lev=0": {
- "Ex": 0.0
+ "Er": 0.0
},
"lev=1": {
- "Ex": 0.0
+ "Er": 0.0
}
}
diff --git a/Regression/Checksum/benchmarks_json/silver_mueller_rz_z.json b/Regression/Checksum/benchmarks_json/silver_mueller_rz_z.json
index 10105cc14..7515ac7e3 100644
--- a/Regression/Checksum/benchmarks_json/silver_mueller_rz_z.json
+++ b/Regression/Checksum/benchmarks_json/silver_mueller_rz_z.json
@@ -1,13 +1,13 @@
{
"lev=0": {
- "Bx": 1.477460729891479e-08,
- "By": 1.510559316787155e-08,
+ "Br": 1.477460729891479e-08,
+ "Bt": 1.510559316787155e-08,
"Bz": 5.811173045189853e-09,
- "Ex": 4.115800746189268,
- "Ey": 3.996703230466946,
+ "Er": 4.115800746189268,
+ "Et": 3.996703230466946,
"Ez": 1.535198100311953,
- "jx": 0.0,
- "jy": 3.872879366838377e-62,
+ "jr": 0.0,
+ "jt": 3.872879366838377e-62,
"jz": 0.0
}
} \ No newline at end of file
diff --git a/Regression/WarpX-tests.ini b/Regression/WarpX-tests.ini
index e8ce81c4a..d71c0193a 100644
--- a/Regression/WarpX-tests.ini
+++ b/Regression/WarpX-tests.ini
@@ -976,7 +976,7 @@ aux1File = Regression/PostProcessingUtils/post_processing_utils.py
[Langmuir_multi_rz_psatd_current_correction]
buildDir = .
inputFile = Examples/Tests/langmuir/inputs_2d_multi_rz_rt
-runtime_params = algo.maxwell_solver=psatd diag1.electrons.variables=w ux uy uz diag1.ions.variables=w ux uy uz diag1.dump_rz_modes=0 algo.current_deposition=direct warpx.do_dive_cleaning=0 amr.max_grid_size=128 psatd.periodic_single_box_fft=1 psatd.current_correction=1 diag1.fields_to_plot=jx jz Ex Ez By rho divE electrons.random_theta=0 ions.random_theta=0
+runtime_params = algo.maxwell_solver=psatd diag1.electrons.variables=w ux uy uz diag1.ions.variables=w ux uy uz diag1.dump_rz_modes=0 algo.current_deposition=direct warpx.do_dive_cleaning=0 amr.max_grid_size=128 psatd.periodic_single_box_fft=1 psatd.current_correction=1 diag1.fields_to_plot=jr jz Er Ez Bt rho divE electrons.random_theta=0 ions.random_theta=0
dim = 2
addToCompileString = USE_RZ=TRUE USE_PSATD=TRUE BLAS_LIB=-lblas LAPACK_LIB=-llapack
cmakeSetupOpts = -DWarpX_DIMS=RZ -DWarpX_PSATD=ON
diff --git a/Source/Diagnostics/Diagnostics.cpp b/Source/Diagnostics/Diagnostics.cpp
index 91505b520..277510f03 100644
--- a/Source/Diagnostics/Diagnostics.cpp
+++ b/Source/Diagnostics/Diagnostics.cpp
@@ -64,7 +64,7 @@ Diagnostics::BaseReadParameters ()
// Query list of grid fields to write to output
bool varnames_specified = pp_diag_name.queryarr("fields_to_plot", m_varnames_fields);
if (!varnames_specified){
- if( dims == "RZ" and m_format == "openpmd" ) {
+ if( dims == "RZ" ) {
m_varnames_fields = {"Er", "Et", "Ez", "Br", "Bt", "Bz", "jr", "jt", "jz"};
}
else {
diff --git a/Source/Diagnostics/FullDiagnostics.cpp b/Source/Diagnostics/FullDiagnostics.cpp
index a4ed6018e..99e28a7f8 100644
--- a/Source/Diagnostics/FullDiagnostics.cpp
+++ b/Source/Diagnostics/FullDiagnostics.cpp
@@ -588,28 +588,12 @@ FullDiagnostics::InitializeFieldFunctors (int lev)
m_all_field_functors[lev].resize(ntot);
// Fill vector of functors for all components except individual cylindrical modes.
for (int comp=0; comp<nvar; comp++){
- if ( m_varnames[comp] == "Ex" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 0), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "Ey" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 1), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "Ez" ){
+ if ( m_varnames[comp] == "Ez" ){
m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 2), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "Bx" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 0), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "By" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 1), lev, m_crse_ratio);
} else if ( m_varnames[comp] == "Bz" ){
m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 2), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "jx" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 0), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "jy" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 1), lev, m_crse_ratio);
} else if ( m_varnames[comp] == "jz" ){
m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 2), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "Ax" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 0), lev, m_crse_ratio);
- } else if ( m_varnames[comp] == "Ay" ){
- m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 1), lev, m_crse_ratio);
} else if ( m_varnames[comp] == "Az" ){
m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 2), lev, m_crse_ratio);
} else if ( m_varnames[comp] == "rho" ){
@@ -635,7 +619,49 @@ FullDiagnostics::InitializeFieldFunctors (int lev)
m_all_field_functors[lev][comp] = std::make_unique<DivEFunctor>(warpx.get_array_Efield_aux(lev), lev, m_crse_ratio);
}
else {
- amrex::Abort(Utils::TextMsg::Err(m_varnames[comp] + " is not a known field output type"));
+
+#ifdef WARPX_DIM_RZ
+ if ( m_varnames[comp] == "Er" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Et" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 1), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Br" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Bt" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 1), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "jr" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "jt" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 1), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Ar" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "At" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 1), lev, m_crse_ratio);
+ } else {
+ amrex::Abort(Utils::TextMsg::Err(m_varnames[comp] + " is not a known field output type for RZ geometry"));
+ }
+#else
+ // Valid transverse fields in Cartesian coordinates
+ if ( m_varnames[comp] == "Ex" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Ey" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Efield_aux(lev, 1), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Bx" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "By" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_Bfield_aux(lev, 1), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "jx" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "jy" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_current_fp(lev, 1), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Ax" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 0), lev, m_crse_ratio);
+ } else if ( m_varnames[comp] == "Ay" ){
+ m_all_field_functors[lev][comp] = std::make_unique<CellCenterFunctor>(warpx.get_pointer_vector_potential_fp(lev, 1), lev, m_crse_ratio);
+ } else {
+ amrex::Abort(Utils::TextMsg::Err(m_varnames[comp] + " is not a known field output type for this geometry"));
+ }
+#endif
}
}
// Add functors for average particle data for each species