aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/ParticleIO.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2021-10-01 08:42:39 -0700
committerGravatar GitHub <noreply@github.com> 2021-10-01 08:42:39 -0700
commitb6144ad478f0791ea5df36b19b941ca84bfaa47d (patch)
treedc593bf2bfd6e7c15fc867bddf388c51269164af /Source/Diagnostics/ParticleIO.cpp
parent217f301f9ce107cd945331b1abd87ced700e609c (diff)
downloadWarpX-b6144ad478f0791ea5df36b19b941ca84bfaa47d.tar.gz
WarpX-b6144ad478f0791ea5df36b19b941ca84bfaa47d.tar.zst
WarpX-b6144ad478f0791ea5df36b19b941ca84bfaa47d.zip
Fix restart for rigid injected particles (#2363)
* Activate rigid injected species in restart tests * Fix reading of injection position and velocity * Update checksum * Update Examples/Tests/restart/analysis_restart.py
Diffstat (limited to 'Source/Diagnostics/ParticleIO.cpp')
-rw-r--r--Source/Diagnostics/ParticleIO.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/Source/Diagnostics/ParticleIO.cpp b/Source/Diagnostics/ParticleIO.cpp
index a226bb590..a7b389d78 100644
--- a/Source/Diagnostics/ParticleIO.cpp
+++ b/Source/Diagnostics/ParticleIO.cpp
@@ -41,9 +41,10 @@ using namespace amrex;
void
RigidInjectedParticleContainer::ReadHeader (std::istream& is)
{
- is >> charge >> mass;
- WarpX::GotoNextLine(is);
+ // Call parent class
+ WarpXParticleContainer::ReadHeader( is );
+ // Read quantities that are specific to rigid-injected species
int nlevs;
is >> nlevs;
WarpX::GotoNextLine(is);
@@ -52,24 +53,29 @@ RigidInjectedParticleContainer::ReadHeader (std::istream& is)
for (int i = 0; i < nlevs; ++i)
{
- int zinject_plane_tmp;
+ amrex::Real zinject_plane_tmp;
is >> zinject_plane_tmp;
zinject_plane_levels.push_back(zinject_plane_tmp);
WarpX::GotoNextLine(is);
}
+ is >> vzbeam_ave_boosted;
+ WarpX::GotoNextLine(is);
}
void
RigidInjectedParticleContainer::WriteHeader (std::ostream& os) const
{
- // no need to write species_id
- os << charge << " " << mass << "\n";
+ // Call parent class
+ WarpXParticleContainer::WriteHeader( os );
+
+ // Write quantities that are specific to the rigid-injected species
int nlevs = zinject_plane_levels.size();
os << nlevs << "\n";
for (int i = 0; i < nlevs; ++i)
{
os << zinject_plane_levels[i] << "\n";
}
+ os << vzbeam_ave_boosted << "\n";
}
void