ls1-MarDyn
ls1-MarDyn molecular dynamics code
PosNegComp.h
1/*
2 * PosNegComp.h
3 *
4 * Created on: 03.12.2018
5 * Author: mheinen
6 */
7
8#ifndef POSNEGCOMP_H_
9#define POSNEGCOMP_H_
10
11#include "plugins/PluginBase.h"
12#include <cstdint>
13
16class Domain;
18class CavityEnsemble;
19class PosNegComp : public PluginBase
20{
21public:
22 // constructor and destructor
23 PosNegComp();
24 ~~PosNegComp();
25
36 void readXML(XMLfileUnits& xmlconfig) override;
37
38 void init(ParticleContainer *particleContainer,
39 DomainDecompBase *domainDecomp, Domain *domain) override;
40
41 void beforeForces(
42 ParticleContainer* particleContainer, DomainDecompBase* domainDecomp,
43 unsigned long simstep
44 ) override;
45
50 void afterForces(
51 ParticleContainer* particleContainer, DomainDecompBase* domainDecomp,
52 unsigned long simstep
53 ) override;
54
55 void endStep(
56 ParticleContainer *particleContainer,
57 DomainDecompBase *domainDecomp, Domain *domain,
58 unsigned long simstep) override {}
59
60 void finish(ParticleContainer *particleContainer,
61 DomainDecompBase *domainDecomp, Domain *domain) override {}
62
63 std::string getPluginName() override {return std::string("PosNegComp");}
64 static PluginBase* createInstance() {return new PosNegComp();}
65
66private:
67 void changeComponents(ParticleContainer* particleContainer);
68
69private:
70 struct CompIDS {
71 uint32_t pos;
72 uint32_t neg;
73 uint32_t ignore;
74 } _cid_ub; // ub: unity based
75 struct LimitY {
76 double left, right;
77 } _limitY;
78};
79
80
81
82#endif /* POSNEGCOMP_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
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
Definition: PosNegComp.h:20
std::string getPluginName() override
return the name of the plugin
Definition: PosNegComp.h:63
void afterForces(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
Method afterForces will be called after forcefields have been applied.
Definition: PosNegComp.cpp:50
void beforeForces(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
Method beforeForces will be called before forcefields have been applied no alterations w....
Definition: PosNegComp.cpp:42
void init(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
Method init will be called at the begin of the simulation.
Definition: PosNegComp.cpp:37
void finish(ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
Method finish will be called at the end of the simulation.
Definition: PosNegComp.h:60
void readXML(XMLfileUnits &xmlconfig) override
Read in XML configuration for PosNegComp and all its included objects.
Definition: PosNegComp.cpp:24
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: PosNegComp.h:55
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
Definition: FakedOptFFT.h:23