ls1-MarDyn
ls1-MarDyn molecular dynamics code
MaxWriter.h
1#ifndef MAXWRITER_H_
2#define MAXWRITER_H_
3
4#include <fstream>
5#include <string>
6#include <cstdint>
7#include <limits>
8#include <vector>
9
10#include "plugins/PluginBase.h"
11
12#define FORMAT_SCI_MAX_DIGITS std::setw(24) << std::scientific << std::setprecision(std::numeric_limits<double>::digits10)
13
17class MaxWriter : public PluginBase
18{
19public:
20 MaxWriter();
21 ~~MaxWriter();
22
27 virtual void readXML(XMLfileUnits& xmlconfig);
28
29 void init(ParticleContainer *particleContainer,
30 DomainDecompBase *domainDecomp, Domain *domain);
31
32 void endStep(
33 ParticleContainer *particleContainer,
34 DomainDecompBase *domainDecomp, Domain *domain,
35 unsigned long simstep
36 );
37
38 void finish(ParticleContainer *particleContainer,
39 DomainDecompBase *domainDecomp, Domain *domain);
40
42 return std::string("MaxWriter");
43 }
44 static PluginBase* createInstance() { return new MaxWriter(); }
45
46private:
47 void initDataStructures();
48 void doSampling(ParticleContainer* particleContainer);
49 void calculateGlobalValues(DomainDecompBase *domainDecomp);
50 void resetLocalValues();
51 void writeData(DomainDecompBase* domainDecomp);
52
53private:
54 uint64_t _writeFrequency;
55 std::string _outputPrefix;
56 std::vector<double> _dMaxValuesLocal;
57 std::vector<double> _dMaxValuesGlobal;
58 uint32_t _numQuantities;
59 uint32_t _numValsPerQuantity;
60 uint32_t _numValsPerComponent;
61 uint32_t _numComponents;
62 uint32_t _numVals;
63};
64
65#endif /*MAXWRITER_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
Writes max values of velocity angular momentum and force to a file.
Definition: MaxWriter.h:18
void endStep(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep)
Method endStep will be called at the end of each time step.
Definition: MaxWriter.cpp:117
void init(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain)
Method init will be called at the begin of the simulation.
Definition: MaxWriter.cpp:49
void finish(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain)
Method finish will be called at the end of the simulation.
Definition: MaxWriter.cpp:131
virtual void readXML(XMLfileUnits &xmlconfig)
Read in XML configuration for MaxWriter and all its included objects.
Definition: MaxWriter.cpp:33
std::string getPluginName()
return the name of the plugin
Definition: MaxWriter.h:41
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