ls1-MarDyn
ls1-MarDyn molecular dynamics code
GammaWriter.h
1#ifndef SRC_IO_GAMMAWRITER_H_
2#define SRC_IO_GAMMAWRITER_H_
3
4#include "plugins/PluginBase.h"
5#include <string>
6#include <fstream>
7
10class Domain;
11
16class XMLfileUnits;
17class GammaWriter : public PluginBase {
18public:
19 GammaWriter() : _gammaStream(), _writeFrequency(1), _outputPrefix("mardyn"), _Gamma() {}
20 ~~GammaWriter() {}
21
32 void readXML(XMLfileUnits& xmlconfig);
34 void init(ParticleContainer *particleContainer,
35 DomainDecompBase *domainDecomp, Domain *domain);
37 void endStep(
38 ParticleContainer *particleContainer,
39 DomainDecompBase *domainDecomp, Domain *domain,
40 unsigned long simstep
41 );
43 void finish(ParticleContainer *particleContainer,
44 DomainDecompBase *domainDecomp, Domain *domain);
45
47 return std::string("GammaWriter");
48 }
49 static PluginBase* createInstance() { return new GammaWriter(); }
50
51private:
52 void calculateGamma(ParticleContainer* particleContainer, DomainDecompBase* domainDecom);
53 double getGamma(unsigned id, double globalLength[3]);
54 void resetGamma();
55
56 std::ofstream _gammaStream;
57 unsigned long _writeFrequency;
58 std::string _outputPrefix;
59 std::map<unsigned,double> _Gamma;
60};
61
62#endif // SRC_IO_GAMMAWRITER_H_
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
Definition: GammaWriter.h:17
void endStep(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep)
Definition: GammaWriter.cpp:33
void init(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain)
Definition: GammaWriter.cpp:21
void finish(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain)
Definition: GammaWriter.cpp:51
void readXML(XMLfileUnits &xmlconfig)
Read in XML configuration for GammaWriter.
Definition: GammaWriter.cpp:14
std::string getPluginName()
return the name of the plugin
Definition: GammaWriter.h:46
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