Loading...
Searching...
No Matches
PLMD::Atoms Class Reference

Class containing atom related quantities from the MD code. More...

#include <Atoms.h>

Classes

class  DomainDecomposition

Public Member Functions

 Atoms (PlumedMain &plumed)
 ~Atoms ()
void add (ActionAtomistic *)
AtomNumber addVirtualAtom (ActionWithVirtualAtom *)
bool boxWasSet () const
bool chargesWereSet () const
void clearFullList ()
void createFullList (const TypesafePtr &)
void double2MD (const double &d, const TypesafePtr &m) const
const long long int & getDdStep () const
double getEnergy () const
double getExtraCV (const std::string &name)
void getFullList (const TypesafePtr &)
const std::vector< int > & getGatindex () const
double getKBoltzmann () const
double getKbT () const
void getLocalForces (std::vector< Vector > &)
void getLocalMasses (std::vector< double > &)
void getLocalMDForces (std::vector< Vector > &)
void getLocalPositions (std::vector< Vector > &)
double getMDKBoltzmann () const
const UnitsgetMDUnits ()
int getNatoms () const
int getNVirtualAtoms () const
const PbcgetPbc () const
int getRealPrecision () const
double getTimeStep () const
const UnitsgetUnits ()
const TensorgetVirial () const
ActionWithVirtualAtomgetVirtualAtomsAction (AtomNumber) const
void init ()
void insertGroup (const std::string &name, const std::vector< AtomNumber > &a)
bool isEnergyNeeded () const
bool isExtraCVNeeded (const std::string &name) const
bool isVirtualAtom (AtomNumber) const
void MD2double (const TypesafePtr &m, double &d) const
void readBinary (std::istream &)
void remove (ActionAtomistic *)
void removeGroup (const std::string &name)
void removeVirtualAtom (ActionWithVirtualAtom *)
void resetExtraCVNeeded ()
void setAtomsContiguous (int)
void setAtomsGatindex (const TypesafePtr &, bool)
void setAtomsNlocal (int)
void setBox (const TypesafePtr &)
void setCharges (const TypesafePtr &)
void setCollectEnergy (bool b)
void setDomainDecomposition (Communicator &)
void setEnergy (const TypesafePtr &)
void setExtraCV (const std::string &name, const TypesafePtr &p)
void setExtraCVForce (const std::string &name, const TypesafePtr &p)
void setExtraCVNeeded (const std::string &name, bool needed=true)
void setForces (const TypesafePtr &)
void setForces (const TypesafePtr &, int)
void setKbT (const TypesafePtr &)
void setMasses (const TypesafePtr &)
void setMDChargeUnits (double d)
void setMDEnergyUnits (double d)
void setMDLengthUnits (double d)
void setMDMassUnits (double d)
void setMDNaturalUnits (bool n)
void setMDTimeUnits (double d)
void setNatoms (int)
void setNaturalUnits (bool n)
void setPositions (const TypesafePtr &)
void setPositions (const TypesafePtr &, int)
void setRealPrecision (int)
void setTimeStep (const TypesafePtr &)
void setUnits (const Units &u)
void setVirial (const TypesafePtr &)
void share ()
void shareAll ()
void startStep ()
void updateExtraCVForce (const std::string &name, double f)
void updateForces ()
void updateUnits ()
bool usingNaturalUnits () const
void wait ()
void writeBinary (std::ostream &) const

Private Member Functions

void resizeVectors (unsigned)
void share (const std::vector< AtomNumber > &)

Private Attributes

std::vector< ActionAtomistic * > actions
bool asyncSent
bool atomsNeeded
Tensor box
bool boxHasBeenSet
std::vector< double > charges
bool chargesHaveBeenSet
bool collectEnergy
bool dataCanBeSet
DomainDecomposition dd
long long int ddStep
double energy
bool energyHasBeenSet
double forceOnEnergy
std::vector< Vectorforces
unsigned forcesHaveBeenSet
std::vector< int > fullList
std::vector< int > g2l
 Map global indexes to local indexes E.g.
std::vector< int > gatindex
std::map< std::string, std::vector< AtomNumber > > groups
double kbT
bool massAndChargeOK
std::vector< double > masses
bool massesHaveBeenSet
double md_energy
std::unique_ptr< MDAtomsBasemdatoms
bool MDnaturalUnits
Units MDUnits
int natoms
bool naturalUnits
Pbcpbc =*pbc_fwd
ForwardDecl< Pbcpbc_fwd
PlumedMainplumed
std::vector< Vectorpositions
unsigned positionsHaveBeenSet
unsigned shuffledAtoms
double timestep
std::vector< unsigned > uniq_index
std::vector< AtomNumberunique
bool unique_serial =false
Units units
Tensor virial
bool virialHasBeenSet
std::vector< ActionWithVirtualAtom * > virtualAtomsActions
bool zeroallforces
 if set to true, all the forces in the global array are zeroes at every step.

Friends

class ActionAtomistic
class ActionWithVirtualAtom

Detailed Description

Class containing atom related quantities from the MD code.

IT IS STILL UNDOCUMENTED. IT PROBABLY NEEDS A STRONG CLEANUP

Constructor & Destructor Documentation

◆ Atoms()

PLMD::Atoms::Atoms ( PlumedMain & plumed)
explicit

◆ ~Atoms()

PLMD::Atoms::~Atoms ( )

Member Function Documentation

◆ add()

void PLMD::Atoms::add ( ActionAtomistic * a)

◆ addVirtualAtom()

AtomNumber PLMD::Atoms::addVirtualAtom ( ActionWithVirtualAtom * a)

◆ boxWasSet()

bool PLMD::Atoms::boxWasSet ( ) const
inline

◆ chargesWereSet()

bool PLMD::Atoms::chargesWereSet ( ) const
inline

◆ clearFullList()

void PLMD::Atoms::clearFullList ( )

◆ createFullList()

void PLMD::Atoms::createFullList ( const TypesafePtr & n)

◆ double2MD()

void PLMD::Atoms::double2MD ( const double & d,
const TypesafePtr & m ) const

◆ getDdStep()

const long long int & PLMD::Atoms::getDdStep ( ) const
inline

◆ getEnergy()

double PLMD::Atoms::getEnergy ( ) const
inline

◆ getExtraCV()

double PLMD::Atoms::getExtraCV ( const std::string & name)

◆ getFullList()

void PLMD::Atoms::getFullList ( const TypesafePtr & x)

◆ getGatindex()

const std::vector< int > & PLMD::Atoms::getGatindex ( ) const
inline

◆ getKBoltzmann()

double PLMD::Atoms::getKBoltzmann ( ) const

◆ getKbT()

double PLMD::Atoms::getKbT ( ) const

◆ getLocalForces()

void PLMD::Atoms::getLocalForces ( std::vector< Vector > & localForces)

◆ getLocalMasses()

void PLMD::Atoms::getLocalMasses ( std::vector< double > & localMasses)

◆ getLocalMDForces()

void PLMD::Atoms::getLocalMDForces ( std::vector< Vector > & localForces)

◆ getLocalPositions()

void PLMD::Atoms::getLocalPositions ( std::vector< Vector > & localPositions)

◆ getMDKBoltzmann()

double PLMD::Atoms::getMDKBoltzmann ( ) const

◆ getMDUnits()

const Units & PLMD::Atoms::getMDUnits ( )
inline

◆ getNatoms()

int PLMD::Atoms::getNatoms ( ) const
inline

◆ getNVirtualAtoms()

int PLMD::Atoms::getNVirtualAtoms ( ) const
inline

◆ getPbc()

const Pbc & PLMD::Atoms::getPbc ( ) const
inline

◆ getRealPrecision()

int PLMD::Atoms::getRealPrecision ( ) const

◆ getTimeStep()

double PLMD::Atoms::getTimeStep ( ) const

◆ getUnits()

const Units & PLMD::Atoms::getUnits ( )
inline

◆ getVirial()

const Tensor & PLMD::Atoms::getVirial ( ) const
inline

◆ getVirtualAtomsAction()

ActionWithVirtualAtom * PLMD::Atoms::getVirtualAtomsAction ( AtomNumber i) const
inline

◆ init()

void PLMD::Atoms::init ( )

◆ insertGroup()

void PLMD::Atoms::insertGroup ( const std::string & name,
const std::vector< AtomNumber > & a )

◆ isEnergyNeeded()

bool PLMD::Atoms::isEnergyNeeded ( ) const
inline

◆ isExtraCVNeeded()

bool PLMD::Atoms::isExtraCVNeeded ( const std::string & name) const

◆ isVirtualAtom()

bool PLMD::Atoms::isVirtualAtom ( AtomNumber i) const
inline

◆ MD2double()

void PLMD::Atoms::MD2double ( const TypesafePtr & m,
double & d ) const

◆ readBinary()

void PLMD::Atoms::readBinary ( std::istream & i)

◆ remove()

void PLMD::Atoms::remove ( ActionAtomistic * a)

◆ removeGroup()

void PLMD::Atoms::removeGroup ( const std::string & name)

◆ removeVirtualAtom()

void PLMD::Atoms::removeVirtualAtom ( ActionWithVirtualAtom * a)

◆ resetExtraCVNeeded()

void PLMD::Atoms::resetExtraCVNeeded ( )

◆ resizeVectors()

void PLMD::Atoms::resizeVectors ( unsigned n)
private

◆ setAtomsContiguous()

void PLMD::Atoms::setAtomsContiguous ( int start)

◆ setAtomsGatindex()

void PLMD::Atoms::setAtomsGatindex ( const TypesafePtr & g,
bool fortran )

◆ setAtomsNlocal()

void PLMD::Atoms::setAtomsNlocal ( int n)

◆ setBox()

void PLMD::Atoms::setBox ( const TypesafePtr & p)

◆ setCharges()

void PLMD::Atoms::setCharges ( const TypesafePtr & p)

◆ setCollectEnergy()

void PLMD::Atoms::setCollectEnergy ( bool b)
inline

◆ setDomainDecomposition()

void PLMD::Atoms::setDomainDecomposition ( Communicator & comm)

◆ setEnergy()

void PLMD::Atoms::setEnergy ( const TypesafePtr & p)

◆ setExtraCV()

void PLMD::Atoms::setExtraCV ( const std::string & name,
const TypesafePtr & p )

◆ setExtraCVForce()

void PLMD::Atoms::setExtraCVForce ( const std::string & name,
const TypesafePtr & p )

◆ setExtraCVNeeded()

void PLMD::Atoms::setExtraCVNeeded ( const std::string & name,
bool needed = true )

◆ setForces() [1/2]

void PLMD::Atoms::setForces ( const TypesafePtr & p)

◆ setForces() [2/2]

void PLMD::Atoms::setForces ( const TypesafePtr & p,
int i )

◆ setKbT()

void PLMD::Atoms::setKbT ( const TypesafePtr & p)

◆ setMasses()

void PLMD::Atoms::setMasses ( const TypesafePtr & p)

◆ setMDChargeUnits()

void PLMD::Atoms::setMDChargeUnits ( double d)
inline

◆ setMDEnergyUnits()

void PLMD::Atoms::setMDEnergyUnits ( double d)
inline

◆ setMDLengthUnits()

void PLMD::Atoms::setMDLengthUnits ( double d)
inline

◆ setMDMassUnits()

void PLMD::Atoms::setMDMassUnits ( double d)
inline

◆ setMDNaturalUnits()

void PLMD::Atoms::setMDNaturalUnits ( bool n)
inline

◆ setMDTimeUnits()

void PLMD::Atoms::setMDTimeUnits ( double d)
inline

◆ setNatoms()

void PLMD::Atoms::setNatoms ( int n)

◆ setNaturalUnits()

void PLMD::Atoms::setNaturalUnits ( bool n)
inline

◆ setPositions() [1/2]

void PLMD::Atoms::setPositions ( const TypesafePtr & p)

◆ setPositions() [2/2]

void PLMD::Atoms::setPositions ( const TypesafePtr & p,
int i )

◆ setRealPrecision()

void PLMD::Atoms::setRealPrecision ( int p)

◆ setTimeStep()

void PLMD::Atoms::setTimeStep ( const TypesafePtr & p)

◆ setUnits()

void PLMD::Atoms::setUnits ( const Units & u)
inline

◆ setVirial()

void PLMD::Atoms::setVirial ( const TypesafePtr & p)

◆ share() [1/2]

void PLMD::Atoms::share ( )

◆ share() [2/2]

void PLMD::Atoms::share ( const std::vector< AtomNumber > & unique)
private

◆ shareAll()

void PLMD::Atoms::shareAll ( )

◆ startStep()

void PLMD::Atoms::startStep ( )

◆ updateExtraCVForce()

void PLMD::Atoms::updateExtraCVForce ( const std::string & name,
double f )

◆ updateForces()

void PLMD::Atoms::updateForces ( )

◆ updateUnits()

void PLMD::Atoms::updateUnits ( )

◆ usingNaturalUnits()

bool PLMD::Atoms::usingNaturalUnits ( ) const
inline

◆ wait()

void PLMD::Atoms::wait ( )

◆ writeBinary()

void PLMD::Atoms::writeBinary ( std::ostream & o) const

◆ ActionAtomistic

friend class ActionAtomistic
friend

◆ ActionWithVirtualAtom

friend class ActionWithVirtualAtom
friend

Member Data Documentation

◆ actions

std::vector<ActionAtomistic*> PLMD::Atoms::actions
private

◆ asyncSent

bool PLMD::Atoms::asyncSent
private

◆ atomsNeeded

bool PLMD::Atoms::atomsNeeded
private

◆ box

Tensor PLMD::Atoms::box
private

◆ boxHasBeenSet

bool PLMD::Atoms::boxHasBeenSet
private

◆ charges

std::vector<double> PLMD::Atoms::charges
private

◆ chargesHaveBeenSet

bool PLMD::Atoms::chargesHaveBeenSet
private

◆ collectEnergy

bool PLMD::Atoms::collectEnergy
private

◆ dataCanBeSet

bool PLMD::Atoms::dataCanBeSet
private

◆ dd

DomainDecomposition PLMD::Atoms::dd
private

◆ ddStep

long long int PLMD::Atoms::ddStep
private

◆ energy

double PLMD::Atoms::energy
private

◆ energyHasBeenSet

bool PLMD::Atoms::energyHasBeenSet
private

◆ forceOnEnergy

double PLMD::Atoms::forceOnEnergy
private

◆ forces

std::vector<Vector> PLMD::Atoms::forces
private

◆ forcesHaveBeenSet

unsigned PLMD::Atoms::forcesHaveBeenSet
private

◆ fullList

std::vector<int> PLMD::Atoms::fullList
private

◆ g2l

std::vector<int> PLMD::Atoms::g2l
private

Map global indexes to local indexes E.g.

g2l[i] is the position of atom i in the array passed from the MD engine. Called "global to local" since originally it was used to map global indexes to local ones used in domain decomposition. However, it is now also used for the NAMD-like interface, where only a small number of atoms is passed to plumed.

◆ gatindex

std::vector<int> PLMD::Atoms::gatindex
private

◆ groups

std::map<std::string,std::vector<AtomNumber> > PLMD::Atoms::groups
private

◆ kbT

double PLMD::Atoms::kbT
private

◆ massAndChargeOK

bool PLMD::Atoms::massAndChargeOK
private

◆ masses

std::vector<double> PLMD::Atoms::masses
private

◆ massesHaveBeenSet

bool PLMD::Atoms::massesHaveBeenSet
private

◆ md_energy

double PLMD::Atoms::md_energy
private

◆ mdatoms

std::unique_ptr<MDAtomsBase> PLMD::Atoms::mdatoms
private

◆ MDnaturalUnits

bool PLMD::Atoms::MDnaturalUnits
private

◆ MDUnits

Units PLMD::Atoms::MDUnits
private

◆ natoms

int PLMD::Atoms::natoms
private

◆ naturalUnits

bool PLMD::Atoms::naturalUnits
private

◆ pbc

Pbc& PLMD::Atoms::pbc =*pbc_fwd
private

◆ pbc_fwd

ForwardDecl<Pbc> PLMD::Atoms::pbc_fwd
private

◆ plumed

PlumedMain& PLMD::Atoms::plumed
private

◆ positions

std::vector<Vector> PLMD::Atoms::positions
private

◆ positionsHaveBeenSet

unsigned PLMD::Atoms::positionsHaveBeenSet
private

◆ shuffledAtoms

unsigned PLMD::Atoms::shuffledAtoms
private

◆ timestep

double PLMD::Atoms::timestep
private

◆ uniq_index

std::vector<unsigned> PLMD::Atoms::uniq_index
private

◆ unique

std::vector<AtomNumber> PLMD::Atoms::unique
private

◆ unique_serial

bool PLMD::Atoms::unique_serial =false
private

◆ units

Units PLMD::Atoms::units
private

◆ virial

Tensor PLMD::Atoms::virial
private

◆ virialHasBeenSet

bool PLMD::Atoms::virialHasBeenSet
private

◆ virtualAtomsActions

std::vector<ActionWithVirtualAtom*> PLMD::Atoms::virtualAtomsActions
private

◆ zeroallforces

bool PLMD::Atoms::zeroallforces
private

if set to true, all the forces in the global array are zeroes at every step.

It should not be necessary in general, but it is for actions accessing to modifyGlobalForce() (e.g. FIT_TO_TEMPLATE).


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