ls1-MarDyn
ls1-MarDyn molecular dynamics code
CavityWriter.h
1#ifndef CAVITYWRITER_H_
2#define CAVITYWRITER_H_
3
4#include <string>
5
6#include "plugins/PluginBase.h"
7
9
13class CavityWriter final : public PluginBase {
14public:
16 CavityWriter() = default;
17
18 ~~CavityWriter() final = default;
19
53 void readXML(XMLfileUnits &xmlconfig) final;
54
65 void init(ParticleContainer *particleContainer,
66 DomainDecompBase *domainDecomp, Domain *domain) final;
67
72 ParticleContainer *particleContainer, DomainDecompBase *domainDecomp,
73 unsigned long simstep
74 ) final;
75
82 void afterForces(
83 ParticleContainer *particleContainer, DomainDecompBase *domainDecomp,
84 unsigned long simstep
85 ) final;
86
96 void endStep(
97 ParticleContainer *particleContainer,
98 DomainDecompBase *domainDecomp, Domain *domain,
99 unsigned long simstep
100 ) final;
101
110 void finish(ParticleContainer *particleContainer,
111 DomainDecompBase *domainDecomp, Domain *domain);
112
113 std::string getPluginName() final {
114 return std::string("CavityWriter");
115 }
116
117 static PluginBase *createInstance() { return new CavityWriter(); }
118
119 std::map<unsigned, CavityEnsemble *> getMcav() { return _mcav; }
120
121private:
122 std::string _outputPrefix;
123 unsigned long _writeFrequency;
124 bool _appendTimestamp;
125 bool _incremental;
126 int _Nx = 0, _Ny = 0, _Nz = 0;
127 int _maxNeighbors = 0;
128 float _radius = 0.0f;
129 std::map<unsigned, CavityEnsemble *> _mcav;
130 double _controlVolume[6];
131};
132
133#endif /* CAVITYWRITER_H_ */
Definition: CavityEnsemble.h:20
IO-plugin: Used to create instances of CavityEnsemble and output the corresponding files containing t...
Definition: CavityWriter.h:13
void endStep(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep) final
Output the sampled cavity information from all ensembles to file.
Definition: CavityWriter.cpp:176
void afterForces(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) final
Method afterForces will be called after forcefields have been applied no sitewise Forces can be appli...
Definition: CavityWriter.cpp:160
CavityWriter()=default
Initialisation of all necessary field is done in readXML and init.
void finish(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain)
Nothing done here. Necessary for inheritance from PluginBase.
Definition: CavityWriter.cpp:239
std::string getPluginName() final
return the name of the plugin
Definition: CavityWriter.h:113
void readXML(XMLfileUnits &xmlconfig) final
reads in parameters for CavityEnsemble and output writefrequency: output timestep frequency AFTER i...
Definition: CavityWriter.cpp:18
void init(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) final
Set all necessary variables for each CavityEnsemble. One is used per Component. Ensembles are assigne...
Definition: CavityWriter.cpp:113
void beforeEventNewTimestep(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) final
Method will be called first thing in a new timestep. If the writeFrequency is reached and this is the...
Definition: CavityWriter.cpp:148
handle boundary region and multiple processes
Definition: DomainDecompBase.h:51
This class is used to read in the phasespace and to handle macroscopic values.
Definition: Domain.h:47
This Interface is used to get access to particles and pairs of particles.
Definition: ParticleContainer.h:69
The PluginBase class provides the interface for any kind of output/plugin classes - called "(output) ...
Definition: PluginBase.h:47
XML file with unit attributes abstraction.
Definition: xmlfileUnits.h:25
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: vtk-punstructured.h:270