8 #ifndef WARPX_OPEN_PMD_H_
9 #define WARPX_OPEN_PMD_H_
28 #ifdef WARPX_USE_OPENPMD
29 # include <openPMD/openPMD.hpp>
59 unsigned long long& offset,
60 unsigned long long& sum)
const ;
72 #ifdef WARPX_USE_OPENPMD
94 const std::string& filetype,
95 const std::string& operator_type,
96 const std::map< std::string, std::string >& operator_parameters,
97 const std::string& engine_type,
98 const std::map< std::string, std::string >& engine_parameters,
99 const std::vector<bool>& fieldPMLdirections,
100 const std::string& authors);
114 void SetStep (
int ts,
const std::string& dirPrefix,
int file_min_digits,
121 void CloseStep (
bool isBTD =
false,
bool isLastBTDFlush =
false);
126 bool use_pinned_pc =
false,
128 bool isLastBTDFlush =
false);
143 const std::vector<std::string>& varnames,
173 return m_Series->iterations[iteration];
175 return m_Series->writeIterations()[iteration];
192 std::string
const& comp_name,
193 std::string
const& field_name,
195 bool var_in_theta_mode
212 const std::string& varname,
213 std::string& field_name,
214 std::string& comp_name,
215 bool var_in_theta_mode
226 const unsigned long long& np,
240 const unsigned long long& np,
241 amrex::ParticleReal charge,
242 amrex::ParticleReal mass);
261 unsigned long long np,
bool isBTD =
false)
const;
275 unsigned long long offset,
297 const std::string&
name,
303 amrex::ParticleReal charge,
304 amrex::ParticleReal mass,
306 bool isLastBTDFlush =
false);
Definition: WarpXOpenPMD.H:77
void SetupPos(openPMD::ParticleSpecies &currSpecies, const unsigned long long &np, bool isBTD=false)
Definition: WarpXOpenPMD.cpp:979
typename amrex::ParConstIterSoA< PIdx::nattribs, 0, amrex::PinnedArenaAllocator > ParticleIter
Definition: WarpXOpenPMD.H:80
openPMD::IterationEncoding m_Encoding
Definition: WarpXOpenPMD.H:335
std::unique_ptr< openPMD::Series > m_Series
Definition: WarpXOpenPMD.H:318
void CloseStep(bool isBTD=false, bool isLastBTDFlush=false)
Definition: WarpXOpenPMD.cpp:453
void SetConstParticleRecordsEDPIC(openPMD::ParticleSpecies &currSpecies, const unsigned long long &np, amrex::ParticleReal charge, amrex::ParticleReal mass)
Definition: WarpXOpenPMD.cpp:999
void Init(openPMD::Access access, bool isBTD)
Definition: WarpXOpenPMD.cpp:479
void DumpToFile(ParticleContainer *pc, const std::string &name, int iteration, const amrex::Vector< int > &write_real_comp, const amrex::Vector< int > &write_int_comp, const amrex::Vector< std::string > &real_comp_names, const amrex::Vector< std::string > &int_comp_names, amrex::ParticleReal charge, amrex::ParticleReal mass, bool isBTD=false, bool isLastBTDFlush=false)
Definition: WarpXOpenPMD.cpp:651
std::string GetFileName(std::string &filepath)
Definition: WarpXOpenPMD.cpp:409
WarpXOpenPMDPlot(WarpXOpenPMDPlot &&)=default
std::string m_OpenPMDFileType
Definition: WarpXOpenPMD.H:336
void SaveRealProperty(ParticleIter &pti, openPMD::ParticleSpecies &currSpecies, unsigned long long offset, const amrex::Vector< int > &write_real_comp, const amrex::Vector< std::string > &real_comp_names, const amrex::Vector< int > &write_int_comp, const amrex::Vector< std::string > &int_comp_names) const
Definition: WarpXOpenPMD.cpp:885
WarpXOpenPMDPlot & operator=(WarpXOpenPMDPlot const &)=delete
void SetStep(int ts, const std::string &dirPrefix, int file_min_digits, bool isBTD=false)
Definition: WarpXOpenPMD.cpp:430
void WriteOpenPMDFieldsAll(const std::vector< std::string > &varnames, const amrex::Vector< amrex::MultiFab > &mf, amrex::Vector< amrex::Geometry > &geom, int output_levels, int iteration, double time, bool isBTD=false, const amrex::Geometry &full_BTD_snapshot=amrex::Geometry()) const
Definition: WarpXOpenPMD.cpp:1319
openPMD::Iteration GetIteration(int const iteration, bool const isBTD) const
Definition: WarpXOpenPMD.H:169
int m_MPIRank
Definition: WarpXOpenPMD.H:332
WarpXOpenPMDPlot(openPMD::IterationEncoding ie, const std::string &filetype, const std::string &operator_type, const std::map< std::string, std::string > &operator_parameters, const std::string &engine_type, const std::map< std::string, std::string > &engine_parameters, const std::vector< bool > &fieldPMLdirections, const std::string &authors)
Definition: WarpXOpenPMD.cpp:378
std::string m_dirPrefix
Definition: WarpXOpenPMD.H:326
void SetupRealProperties(ParticleContainer const *pc, openPMD::ParticleSpecies &currSpecies, const amrex::Vector< int > &write_real_comp, const amrex::Vector< std::string > &real_comp_names, const amrex::Vector< int > &write_int_comp, const amrex::Vector< std::string > &int_comp_names, unsigned long long np, bool isBTD=false) const
Definition: WarpXOpenPMD.cpp:805
int m_CurrentStep
JSON option string for openPMD::Series constructor.
Definition: WarpXOpenPMD.H:338
int m_file_min_digits
Definition: WarpXOpenPMD.H:330
std::string OpenPMDFileType()
Definition: WarpXOpenPMD.H:153
int m_MPISize
Definition: WarpXOpenPMD.H:333
void SetupMeshComp(openPMD::Mesh &mesh, amrex::Geometry const &full_geom, std::string const &comp_name, std::string const &field_name, amrex::MultiFab const &mf, bool var_in_theta_mode) const
Definition: WarpXOpenPMD.cpp:1198
typename WarpXParticleContainer::ContainerLike< amrex::PinnedArenaAllocator > ParticleContainer
Definition: WarpXOpenPMD.H:79
void SetupFields(openPMD::Container< openPMD::Mesh > &meshes, amrex::Geometry &full_geom) const
Definition: WarpXOpenPMD.cpp:1117
~WarpXOpenPMDPlot()
Definition: WarpXOpenPMD.cpp:399
WarpXOpenPMDPlot(WarpXOpenPMDPlot const &)=delete
std::vector< bool > m_fieldPMLdirections
Definition: WarpXOpenPMD.H:341
void GetMeshCompNames(int meshLevel, const std::string &varname, std::string &field_name, std::string &comp_name, bool var_in_theta_mode) const
Definition: WarpXOpenPMD.cpp:1241
void WriteOpenPMDParticles(const amrex::Vector< ParticleDiag > &particle_diags, amrex::Real time, bool use_pinned_pc=false, bool isBTD=false, bool isLastBTDFlush=false)
Definition: WarpXOpenPMD.cpp:528
std::string m_OpenPMDoptions
MPI-parallel openPMD backend: bp or h5.
Definition: WarpXOpenPMD.H:337
std::string m_authors
Definition: WarpXOpenPMD.H:344
Definition: WarpXOpenPMD.H:41
typename WarpXParticleContainer::ContainerLike< amrex::PinnedArenaAllocator > ParticleContainer
Definition: WarpXOpenPMD.H:43
unsigned long long m_Total
Definition: WarpXOpenPMD.H:66
std::vector< unsigned long long > m_ParticleCounterByLevel
Definition: WarpXOpenPMD.H:68
unsigned long GetTotalNumParticles() const
Definition: WarpXOpenPMD.H:47
std::vector< unsigned long long > m_ParticleOffsetAtRank
Definition: WarpXOpenPMD.H:49
std::vector< unsigned long long > m_ParticleSizeAtRank
Definition: WarpXOpenPMD.H:50
WarpXParticleCounter(ParticleContainer *pc)
Definition: WarpXOpenPMD.cpp:1470
int m_MPIRank
Definition: WarpXOpenPMD.H:63
typename amrex::ParIterSoA< PIdx::nattribs, 0, amrex::PinnedArenaAllocator > ParticleIter
Definition: WarpXOpenPMD.H:44
void GetParticleOffsetOfProcessor(const long &numParticles, unsigned long long &offset, unsigned long long &sum) const
Definition: WarpXOpenPMD.cpp:1517
int m_MPISize
Definition: WarpXOpenPMD.H:64
ParticleContainer_impl< Particle< T_NStructReal, T_NStructInt >, T_NArrayReal, T_NArrayInt, Allocator, CellAssignor > ParticleContainer
name
Definition: run_automated.py:229