ls1-MarDyn
ls1-MarDyn molecular dynamics code
ExtractPhase.h
1/*
2 * ExtractPhase.h
3 *
4 * Created on: 31.12.2019
5 * Author: mheinen
6 */
7
8#ifndef EXTRACT_PHASE_H_
9#define EXTRACT_PHASE_H_
10
11#include "plugins/PluginBase.h"
12#include <cstdint>
13
16class Domain;
18class CavityEnsemble;
20{
21public:
22 // constructor and destructor
25
54 void readXML(XMLfileUnits& xmlconfig) override;
55
56 void init(ParticleContainer *particleContainer,
57 DomainDecompBase *domainDecomp, Domain *domain) override;
58
59 void beforeForces(
60 ParticleContainer* particleContainer, DomainDecompBase* domainDecomp,
61 unsigned long simstep
62 ) override;
63
68 void afterForces(
69 ParticleContainer* particleContainer, DomainDecompBase* domainDecomp,
70 unsigned long simstep
71 ) override;
72
73 void endStep(
74 ParticleContainer *particleContainer,
75 DomainDecompBase *domainDecomp, Domain *domain,
76 unsigned long simstep) override {}
77
78 void finish(ParticleContainer *particleContainer,
79 DomainDecompBase *domainDecomp, Domain *domain) override {}
80
81 std::string getPluginName() override {return std::string("ExtractPhase");}
82 static PluginBase* createInstance() {return new ExtractPhase();}
83
84private:
85 struct ActionsDone {
87 } _bDone;
88
89 struct ComponentChange {
90 bool enabled;
91 uint32_t cid_ub;
92 } _compChange;
93
94 struct DensityTarget {
95 double value;
96 double percent;
97 double cutoff;
98 struct Range {
99 double left, right;
100 bool enabled;
101 } range;
102 } _densityTarget;
103
104 enum InterfaceType : uint16_t {
105 INTT_VAPOR_LIQUID = 1,
106 INTT_LIQUID_VAPOR = 2
107 };
108
109 struct InterfaceParams {
110 InterfaceType type;
111 struct Range {
112 double left, right;
113 } range;
114 } _interface;
115};
116
117#endif /* EXTRACT_PHASE_H_ */
Definition: CavityEnsemble.h:20
Definition: ChemicalPotential.h:16
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: ExtractPhase.h:20
std::string getPluginName() override
return the name of the plugin
Definition: ExtractPhase.h:81
void beforeForces(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
Method beforeForces will be called before forcefields have been applied no alterations w....
Definition: ExtractPhase.cpp:66
void init(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
Method init will be called at the begin of the simulation.
Definition: ExtractPhase.cpp:61
void endStep(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep) override
Method endStep will be called at the end of each time step.
Definition: ExtractPhase.h:73
void afterForces(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
Method afterForces will be called after forcefields have been applied.
Definition: ExtractPhase.cpp:102
void finish(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
Method finish will be called at the end of the simulation.
Definition: ExtractPhase.h:78
void readXML(XMLfileUnits &xmlconfig) override
Read in XML configuration for ExtractPhase and all its included objects.
Definition: ExtractPhase.cpp:26
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
typedef::xsd::cxx::tree::type type
C++ type corresponding to the anyType XML Schema built-in type.
Definition: vtk-punstructured.h:119
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: vtk-punstructured.h:270
Definition: ExtractPhase.h:98
Definition: ExtractPhase.h:111