ls1-MarDyn
ls1-MarDyn molecular dynamics code
Classes | Public Member Functions | Static Public Member Functions | List of all members
MettDeamon Class Reference
Inheritance diagram for MettDeamon:
PluginBase

Public Member Functions

void readXML (XMLfileUnits &xmlconfig) override
 Read in XML configuration for MettDeamon and all its included objects. More...
 
void init (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
 Method init will be called at the begin of the simulation. More...
 
void beforeEventNewTimestep (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
 Method will be called first thing in a new timestep. More...
 
void beforeForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
 Method beforeForces will be called before forcefields have been applied no alterations w.r.t. Forces shall be made here. More...
 
void siteWiseForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
 Method siteWiseForces will be called before forcefields have been applied alterations to sitewise forces and fullMolecule forces can be made here. More...
 
void afterForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override
 Method afterForces will be called after forcefields have been applied no sitewise Forces can be applied here. More...
 
void endStep (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain, unsigned long simstep) override
 Method endStep will be called at the end of each time step. More...
 
void finish (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override
 Method finish will be called at the end of the simulation. More...
 
std::string getPluginName () override
 return the name of the plugin More...
 
uint64_t getnNumMoleculesDeleted (DomainDecompBase *domainDecomposition)
 
uint64_t getnNumMoleculesDeleted2 (DomainDecompBase *domainDecomposition)
 
uint8_t getMovingDirection ()
 
double getTransitionPlanePosY ()
 
void prepare_start (DomainDecompBase *domainDecomp, ParticleContainer *particleContainer, double cutoffRadius)
 
void init_positionMap (ParticleContainer *particleContainer)
 
void preForce_action (ParticleContainer *particleContainer, double cutoffRadius)
 
void postForce_action (ParticleContainer *particleContainer, DomainDecompBase *domainDecomposition)
 
uint32_t getFeedRateTargetComponentID ()
 
void IncrementInsertedMoleculesLocal ()
 
void IncrementDeletedMoleculesLocal ()
 
void IncrementChangedToMoleculesLocal ()
 
void IncrementChangedFromMoleculesLocal ()
 
void StoreDensity (const double &dVal)
 
void StoreValuesCV (const double &dDensity, const double &dVolume)
 
void setActualFeedrate (const double &feed_actual)
 
void setInitFeedrate (const double &feed_init)
 
double getInvDensityArea ()
 
- Public Member Functions inherited from PluginBase
 PluginBase ()
 Subclasses should use their constructur to pass parameters (e.g. filenames)
 
virtual void registerCallbacks (std::map< std::string, FunctionWrapper > &callbackMap)
 
virtual void accessAllCallbacks (const std::map< std::string, FunctionWrapper > &callbackMap)
 

Static Public Member Functions

static PluginBasecreateInstance ()
 

Member Function Documentation

◆ afterForces()

void MettDeamon::afterForces ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
unsigned long  simstep 
)
overridevirtual

Method afterForces will be called after forcefields have been applied no sitewise Forces can be applied here.

Reimplemented from PluginBase.

◆ beforeEventNewTimestep()

void MettDeamon::beforeEventNewTimestep ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
unsigned long  simstep 
)
overridevirtual

Method will be called first thing in a new timestep.

Reimplemented from PluginBase.

◆ beforeForces()

void MettDeamon::beforeForces ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
unsigned long  simstep 
)
overridevirtual

Method beforeForces will be called before forcefields have been applied no alterations w.r.t. Forces shall be made here.

Reimplemented from PluginBase.

◆ endStep()

void MettDeamon::endStep ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
Domain domain,
unsigned long  simstep 
)
inlineoverridevirtual

Method endStep will be called at the end of each time step.

This method will be called every time step passing the simstep as an additional parameter. It can be used e.g. to write per time step data to a file or perform additional computations.

Parameters
particleContainerparticle container storing the (local) molecules
domainDecompdomain decomposition in use
domain

Implements PluginBase.

◆ finish()

void MettDeamon::finish ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
Domain domain 
)
inlineoverridevirtual

Method finish will be called at the end of the simulation.

This method will be called once at the end of the simulation. It can be used e.g. to closing output files or writing final statistics.

Parameters
particleContainerparticle container storing the (local) molecules
domainDecompdomain decomposition in use
domain

Implements PluginBase.

◆ getPluginName()

std::string MettDeamon::getPluginName ( )
inlineoverridevirtual

return the name of the plugin

Implements PluginBase.

◆ init()

void MettDeamon::init ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
Domain domain 
)
overridevirtual

Method init will be called at the begin of the simulation.

This method will be called once at the begin of the simulation just right before the main time step loop. It can be used e.g. to open output files or initialize statistics.

Parameters
particleContainerparticle container storing the (local) molecules
domainDecompdomain decomposition in use
domain

Implements PluginBase.

◆ readXML()

void MettDeamon::readXML ( XMLfileUnits xmlconfig)
overridevirtual

Read in XML configuration for MettDeamon and all its included objects.

The following XML object structure is handled by this method:

<plugin name="MettDeamon">
<control>
<updatefreq>INT</updatefreq> <!-- time span in which deleted particles are counted to determine feed rate -->
<logfreqfeed>INT</logfreqfeed> <!-- frequency with that the feed rate is logged -->
<logfreqreleased>INT</logfreqreleased> <!-- frequency with that velocity vectors of released particles are logged -->
<writefreq>INT</writefreq> <!-- write frequency of restart info (checkpoint) -->
<numvals>INT</numvals> <!-- number of values collected to calculate an average feed rate -->
<feed>
<init>FLOAT</init> <!-- initial feed rate -->
<direction>INT</direction> <!-- 0: left --> right | 1: left <-- right -->
<method>INT</method> <!-- feed rate method 1:count deleted particles | 4: fix rate -->
<targetID>INT</targetID> <!-- component ID of particles feed rate determined from -->
<target>FLOAT</target> <!-- target value for feed rate, if method==4 -->
<release_velo>
<method>INT</method> <!-- choose method for release velocity -->
<fix_value>FLOAT</fix_value> <!-- velocity with that particles are released from reservoir -->
</release_velo>
</feed>
<z2method>1</z2method> <!-- choose zone2 method, 1:reset all i.e. also quaternion | 2:reset only y position od particles
<manipfree> <ymin>50</ymin> <ymax>100</ymax> </manipfree> <!-- range that is not affected with any manipulations -->
</control>
<reservoir update="1"> <!-- update="1": Update Reservoir's data structure before inserting new particles. This is mandatory when using kd-decomposition
<file type="binary">
<header>../../liq/run12/cp_binary-0.restart.header.xml</header> <!-- checkpoint header file used for reservoir -->
<data>../../liq/run12/cp_binary-0.restart.dat</data> <!-- checkpoint data file used for reservoir -->
</file>
<binwidth>FLOAT</binwidth> <!-- subdivision of reservoir phase into bins, overall reservoir width = 2*binwidth -->
<ins_percent>FLOAT</ins_percent> <!-- only the fraction ins_percent=FLOAT of reservoir particles will be inserted -->
</reservoir>
<restart>
<binindex>INT</binindex> <!-- index of last inserted (actual) reservoir bin -->
<deltaY>FLOAT</deltaY> <!-- last inserted (actual) reservoir bin was moved forward already by deltaY=FLOAT -->
</restart>
<changes>
<change> <from>INT</from> <to>INT</to> </change> <!-- change component ID of reservoir particles from (moving) INT to (freeze) INT -->
</changes>
</plugin>

Implements PluginBase.

◆ siteWiseForces()

void MettDeamon::siteWiseForces ( ParticleContainer particleContainer,
DomainDecompBase domainDecomp,
unsigned long  simstep 
)
inlineoverridevirtual

Method siteWiseForces will be called before forcefields have been applied alterations to sitewise forces and fullMolecule forces can be made here.

Reimplemented from PluginBase.


The documentation for this class was generated from the following files: