aboutsummaryrefslogtreecommitdiff
path: root/Examples/Tests/openpmd_rz/analysis_openpmd_rz.py
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/Tests/openpmd_rz/analysis_openpmd_rz.py')
-rwxr-xr-xExamples/Tests/openpmd_rz/analysis_openpmd_rz.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/Examples/Tests/openpmd_rz/analysis_openpmd_rz.py b/Examples/Tests/openpmd_rz/analysis_openpmd_rz.py
index 4cd48a2c6..247c4ac61 100755
--- a/Examples/Tests/openpmd_rz/analysis_openpmd_rz.py
+++ b/Examples/Tests/openpmd_rz/analysis_openpmd_rz.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
+import numpy as np
import openpmd_api as io
series = io.Series("LaserAccelerationRZ_opmd_plt/openpmd_%T.h5", io.Access.read_only)
@@ -8,7 +9,7 @@ assert len(series.iterations) == 3, 'improper number of iterations stored'
ii = series.iterations[20]
-assert len(ii.meshes) == 7, 'improper number of meshes'
+assert len(ii.meshes) == 8, 'improper number of meshes'
# select j_t
jt = ii.meshes['j']['t']
@@ -22,3 +23,25 @@ assert Nz == 512, 'Wrong number of z points stored or possible incorrect orderin
assert ii.meshes['part_per_grid'][io.Mesh_Record_Component.SCALAR].shape == [512,64], 'problem with part_per_grid'
assert ii.meshes['rho_electrons'][io.Mesh_Record_Component.SCALAR].shape == [3, 512, 64], 'problem with rho_electrons'
+
+
+### test that openpmd+RZ
+### 1. creates rho per species correctly
+### 2. orders these appropriately
+rhoe_mesh = ii.meshes['rho_electrons']
+rhob_mesh = ii.meshes['rho_beam']
+dz, dr = rhoe_mesh.grid_spacing
+zmin, rmin = rhoe_mesh.grid_global_offset
+
+rhoe = rhoe_mesh[io.Mesh_Record_Component.SCALAR][:]
+rhob = rhob_mesh[io.Mesh_Record_Component.SCALAR][:]
+series.flush()
+nm, nz, nr = rhoe.shape
+zlist = zmin + dz * np.arange(nz)
+rhoe0 = rhoe[0] # 0 mode
+rhob0 = rhob[0] # 0 mode
+
+electron_meanz = np.sum(np.dot(zlist, rhoe0))/ np.sum(rhoe0)
+beam_meanz = np.sum(np.dot(zlist, rhob0))/ np.sum(rhob0)
+
+assert ((electron_meanz > 0) and (beam_meanz < 0)), 'problem with openPMD+RZ. Maybe openPMD+RZ mixed up the order of rho_<species> diagnostics?'