ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
WallPotential exerts the force of a Lennard-Jones potential on the Lennard-Jones centers of particles. More...
#include <WallPotential.h>
Public Member Functions | |
void | init (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, Domain *domain) override |
Method init will be called at the begin of the simulation. More... | |
void | readXML (XMLfileUnits &xmlconfig) override |
reads in configuration from config.xml. see class doc for example .xml 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... | |
void | initializeLJ93 (const vector< Component > *components, double in_rhoWall, double in_sigWall, double in_epsWall, vector< double > in_xi, vector< double > in_eta, double in_yOffWall, double in_yWallCut) |
initialize the LJ93 potential and calculate potential energy at cutoff More... | |
void | initializeLJ1043 (const vector< Component > *components, double in_rhoWall, double in_sigWall, double in_epsWall, vector< double > in_xi, vector< double > in_eta, double in_yOffWall, double in_yWallCut) |
initialize the LJ1043 potential and calculate potential energy at cutoff More... | |
void | calcTSLJ_9_3 (ParticleContainer *partContainer) |
Calculate and add forces to lennard-jones-sites. Also calculate new potential energy addition. More... | |
void | calcTSLJ_10_4 (ParticleContainer *partContainer) |
Calculate and add forces to lennard-jones-sites. Also calculate new potential energy addition. More... | |
void | siteWiseForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) override |
gets called during the force update step. calls the appropriate calculation function. More... | |
![]() | |
PluginBase () | |
Subclasses should use their constructur to pass parameters (e.g. filenames) | |
virtual void | beforeEventNewTimestep (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) |
Method will be called first thing in a new timestep. More... | |
virtual void | beforeForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) |
Method beforeForces will be called before forcefields have been applied no alterations w.r.t. Forces shall be made here. More... | |
virtual void | afterForces (ParticleContainer *particleContainer, DomainDecompBase *domainDecomp, unsigned long simstep) |
Method afterForces will be called after forcefields have been applied no sitewise Forces can be applied here. More... | |
virtual void | registerCallbacks (std::map< std::string, FunctionWrapper > &callbackMap) |
virtual void | accessAllCallbacks (const std::map< std::string, FunctionWrapper > &callbackMap) |
Static Public Member Functions | |
static PluginBase * | createInstance () |
WallPotential exerts the force of a Lennard-Jones potential on the Lennard-Jones centers of particles.
The user can choose between a 9-3 or 10-4 potential via the config.xml
All significant values of these potentials can also be set there.
Components to be considered can be set via <component>
Their individual xi and eta can also be set in xml-format
The Potential is applied once per simulation step in the Plugin::afterForces call
Usage:
void WallPotential::calcTSLJ_10_4 | ( | ParticleContainer * | partContainer | ) |
Calculate and add forces to lennard-jones-sites. Also calculate new potential energy addition.
partContainer |
LJ-10-4 potential applied in y-direction
void WallPotential::calcTSLJ_9_3 | ( | ParticleContainer * | partContainer | ) |
Calculate and add forces to lennard-jones-sites. Also calculate new potential energy addition.
partContainer |
LJ-9-3 potential applied in y-direction
|
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.
particleContainer | particle container storing the (local) molecules |
domainDecomp | domain decomposition in use |
domain |
Implements PluginBase.
|
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.
particleContainer | particle container storing the (local) molecules |
domainDecomp | domain decomposition in use |
domain |
Implements PluginBase.
|
inlineoverridevirtual |
return the name of the plugin
Implements PluginBase.
|
inlineoverridevirtual |
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.
particleContainer | particle container storing the (local) molecules |
domainDecomp | domain decomposition in use |
domain |
Implements PluginBase.
void WallPotential::initializeLJ1043 | ( | const vector< Component > * | components, |
double | in_rhoWall, | ||
double | in_sigWall, | ||
double | in_epsWall, | ||
std::vector< double > | in_xi, | ||
std::vector< double > | in_eta, | ||
double | in_yOffWall, | ||
double | in_yWallCut | ||
) |
initialize the LJ1043 potential and calculate potential energy at cutoff
components | vector of components |
in_rhoWall | density in wall |
in_sigWall | sigmal of wall |
in_epsWall | epsilon of wall |
in_xi | vector for xi of components |
in_eta | vector for eta of components |
in_yOffWall | y-offset for wall |
in_yWallCut | y-cutoff relative to wall |
void WallPotential::initializeLJ93 | ( | const vector< Component > * | components, |
double | in_rhoWall, | ||
double | in_sigWall, | ||
double | in_epsWall, | ||
std::vector< double > | in_xi, | ||
std::vector< double > | in_eta, | ||
double | in_yOffWall, | ||
double | in_yWallCut | ||
) |
initialize the LJ93 potential and calculate potential energy at cutoff
components | vector of components |
in_rhoWall | density in wall |
in_sigWall | sigmal of wall |
in_epsWall | epsilon of wall |
in_xi | vector for xi |
in_eta | vector for eta |
in_yOffWall | y-offset for wall |
in_yWallCut | y-cutoff relative to wall |
|
overridevirtual |
reads in configuration from config.xml. see class doc for example .xml
xmlconfig | config.xml |
Implements PluginBase.
|
overridevirtual |
gets called during the force update step. calls the appropriate calculation function.
particleContainer | |
domainDecomp | |
simstep |
Reimplemented from PluginBase.