The openPMD plugin is not writing particle attributes e.g. mass, charge, ... for particles.
The attribute particle pusher is pinned to the iteration instead of the particle species.
I just ran the openPMD-validator and the issue appears to be worse than just a few attributes:
openPMD_check_h5 -i simData_000000.h5
Found 1 iteration(s)
Iteration 0 : found 6 meshes
Iteration 0 : found 1 particle species
Error: Attribute timeOffset in `/data/0/particles/e/momentum` is not of type '<map object at 0x2aaac3cdb390>' (is 'float32')!
Error: Attribute timeOffset in `/data/0/particles/e/position` is not of type '<map object at 0x2aaac3cdb358>' (is 'float32')!
Error: Attribute timeOffset in `/data/0/particles/e/positionOffset` is not of type '<map object at 0x2aaac3cdb240>' (is 'float32')!
Error: Attribute timeOffset in `/data/0/particles/e/weighting` is not of type '<map object at 0x2aaac3cdb2b0>' (is 'float32')!
Result: 4 Errors and 0 Warnings.
Even for version 0.4.2 using the libSplash output, we missed the charge attribute for ions:
openPMD_check_h5 -i simData_0.h5
Found 1 iteration(s)
Iteration 0 : found 29 meshes
Iteration 0 : found 9 particle species
Error: Key charge (required) does NOT exist in `/data/0/particles/H`!
Error: Key charge (required) does NOT exist in `/data/0/particles/HeI`!
Error: Key charge (required) does NOT exist in `/data/0/particles/n`!
Result: 3 Errors and 0 Warnings.
This is not related to the issue, but to openPMD plugin. It seems that scalar particle attributes are output using openPMD scalar mesh attribute tag. Maybe it is internally the same, but I guess this may need to be fixed, or at least looked at.
I just saw the draft PR and it could re-use the old code logic if more ED-PIC extension parts are needed. It's quite compact:
The particle species attributes are declared in speciesAttributes.unitless.
With additional conversions for openPMD namings in picongpu/traits/PICToOpenPMD.tpp.
Notes:
macroWeighted = 1 in PIConGPU.constant record component for charge for species that do not change the charge state.This can be closed with #3389 being merged.