All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
PLMD::ActionWithVirtualAtom Class Referenceabstract

Inherit from here if you are calculating the position of a virtual atom (eg a center of mass) More...

#include <ActionWithVirtualAtom.h>

Inheritance diagram for PLMD::ActionWithVirtualAtom:
Inheritance graph
[legend]

Public Types

typedef std::set< Action * > Dependencies
 
typedef std::set< FILE * >
::iterator 
files_iterator
 

Public Member Functions

void setGradients ()
 
const std::map< AtomNumber,
Tensor > & 
getGradients () const
 
AtomNumber getIndex () const
 Return the atom id of the corresponding virtual atom. More...
 
 ActionWithVirtualAtom (const ActionOptions &ao)
 
 ~ActionWithVirtualAtom ()
 
void setGradientsIfNeeded ()
 
const VectorgetPosition (int) const
 Get position of i-th atom. More...
 
const TensorgetBox () const
 Get position of i-th atom. More...
 
const std::vector< Vector > & getPositions () const
 Get the array of all positions. More...
 
const double & getEnergy () const
 Get energy. More...
 
double getMass (int i) const
 Get mass of i-th atom. More...
 
double getCharge (int i) const
 Get charge of i-th atom. More...
 
std::vector< Vector > & modifyForces ()
 Get a reference to forces array. More...
 
TensormodifyVirial ()
 Get a reference to virial array. More...
 
double & modifyForceOnEnergy ()
 Get a reference to force on energy. More...
 
unsigned getNumberOfAtoms () const
 Get number of available atoms. More...
 
Vector pbcDistance (const Vector &, const Vector &) const
 Compute the pbc distance between two positions. More...
 
const std::vector< AtomNumber > & getAbsoluteIndexes () const
 Get the vector of absolute indexes. More...
 
AtomNumber getAbsoluteIndex (int i) const
 Get the absolute index of an atom. More...
 
void parseAtomList (const std::string &key, std::vector< AtomNumber > &t)
 Parse a list of atoms without a numbered keyword. More...
 
void parseAtomList (const std::string &key, const int num, std::vector< AtomNumber > &t)
 Parse an list of atom with a numbred keyword. More...
 
const PbcgetPbc () const
 Get reference to Pbc. More...
 
void setForcesOnAtoms (const std::vector< double > &forcesToApply, unsigned ind=0)
 Add the forces to the atoms. More...
 
void clearOutputForces ()
 
virtual void calculateNumericalDerivatives (ActionWithValue *a=NULL)
 N.B. More...
 
void calculateAtomicNumericalDerivatives (ActionWithValue *a, const unsigned &startnum)
 Numerical derivative routine to use when using Actions that inherit from BOTH ActionWithArguments and ActionAtomistic. More...
 
void retrieveAtoms ()
 
void applyForces ()
 
void lockRequests ()
 
void unlockRequests ()
 
const std::set< AtomNumber > & getUnique () const
 
void readAtomsFromPDB (const PDB &pdb)
 Read in an input file containing atom positions and calculate the action for the atomic configuration therin. More...
 
void addDependency (Action *)
 Specify that this Action depends on another one. More...
 
void clearDependencies ()
 Clear the dependence list for this Action. More...
 
long int getStep () const
 Return the present timestep. More...
 
double getTime () const
 Return the present time. More...
 
double getTimeStep () const
 Return the timestep. More...
 
template<class T >
void parse (const std::string &key, T &t)
 Parse one keyword as generic type. More...
 
template<class T >
bool parseNumbered (const std::string &key, const int no, T &t)
 Parse one numbered keyword as generic type. More...
 
template<class T >
void parseVector (const std::string &key, std::vector< T > &t)
 Parse one keyword as std::vector. More...
 
template<class T >
bool parseNumberedVector (const std::string &key, const int no, std::vector< T > &t)
 Parse a vector with a number. More...
 
void parseFlag (const std::string &key, bool &t)
 Parse one keyword as boolean flag. More...
 
void error (const std::string &msg) const
 Crash calculation and print documentation. More...
 
void warning (const std::string &msg)
 Issue a warning. More...
 
void exit (int c=0)
 Exit with error code c. More...
 
void checkRead ()
 Check if Action was properly read. More...
 
virtual void prepare ()
 Prepare an Action for calculation This can be used by Action if they need some special preparation before calculation. More...
 
virtual void calculate ()=0
 Calculate an Action. More...
 
virtual void update ()
 Update. More...
 
virtual void runFinalJobs ()
 RunFinalJobs This method is called once at the very end of the calculation. More...
 
void fflush ()
 Tell to the Action to flush open files. More...
 
virtual std::string getDocumentation () const
 
const std::string & getLabel () const
 Returns the label. More...
 
const std::string & getName () const
 Returns the name. More...
 
virtual void activate ()
 Set action to active. More...
 
virtual void setOption (const std::string &s)
 
virtual void clearOptions ()
 
virtual void deactivate ()
 Set action to inactive. More...
 
bool isActive () const
 Check if action is active. More...
 
bool isOptionOn (const std::string &s) const
 Check if an option is on. More...
 
const DependenciesgetDependencies () const
 Return dependencies. More...
 
virtual bool checkNumericalDerivatives () const
 Check if numerical derivatives should be performed. More...
 
virtual bool checkNeedsGradients () const
 Check if the action needs gradient. More...
 
FILE * fopen (const char *path, const char *mode)
 Opens a file. More...
 
int fclose (FILE *fp)
 Closes a file opened with Action::fclose(). More...
 
void calculateFromPDB (const PDB &)
 Calculate the action given a pdb file as input. More...
 
bool getExchangeStep () const
 Check if we are on an exchange step. More...
 
std::string cite (const std::string &s)
 Cite a paper see PlumedMain::cite. More...
 

Static Public Member Functions

static void registerKeywords (Keywords &keys)
 

Public Attributes

PlumedMainplumed
 Reference to main plumed object. More...
 
Loglog
 Reference to the log stream. More...
 
std::set< FILE * > files
 
Communicatorcomm
 
Communicatormulti_sim_comm
 
const Keywordskeywords
 

Protected Member Functions

void setPosition (const Vector &)
 Set position of the virtual atom. More...
 
void setMass (double)
 Set its mass. More...
 
void setCharge (double)
 Set its charge. More...
 
void requestAtoms (const std::vector< AtomNumber > &a)
 Request atoms on which the calculation depends. More...
 
void setAtomsDerivatives (const std::vector< Tensor > &d)
 Set the derivatives of virtual atom coordinate wrt atoms on which it dependes. More...
 

Protected Attributes

Atomsatoms
 

Private Member Functions

void apply ()
 Apply an Action. More...
 

Private Attributes

AtomNumber index
 
std::vector< Tensorderivatives
 
std::map< AtomNumber, Tensorgradients
 

Detailed Description

Inherit from here if you are calculating the position of a virtual atom (eg a center of mass)

Class to add a single virtual atom to the system. (it might be extended to add multiple virtual atoms).

Definition at line 40 of file ActionWithVirtualAtom.h.

Member Typedef Documentation

typedef std::set<Action*> PLMD::Action::Dependencies
inherited

Definition at line 75 of file Action.h.

typedef std::set<FILE*>::iterator PLMD::Action::files_iterator
inherited

Definition at line 140 of file Action.h.

Constructor & Destructor Documentation

PLMD::ActionWithVirtualAtom::ActionWithVirtualAtom ( const ActionOptions ao)

Definition at line 35 of file ActionWithVirtualAtom.cpp.

PLMD::ActionWithVirtualAtom::~ActionWithVirtualAtom ( )

Definition at line 43 of file ActionWithVirtualAtom.cpp.

Member Function Documentation

void PLMD::Action::activate ( )
virtualinherited

Set action to active.

Definition at line 127 of file Action.cpp.

void PLMD::Action::addDependency ( Action action)
inherited

Specify that this Action depends on another one.

Definition at line 123 of file Action.cpp.

void PLMD::ActionWithVirtualAtom::apply ( )
privatevirtual

Apply an Action.

This method is called one time per step. The set of all Actions is applied in backward order.

Implements PLMD::Action.

Definition at line 47 of file ActionWithVirtualAtom.cpp.

void ActionAtomistic::applyForces ( )
inherited

Definition at line 218 of file ActionAtomistic.cpp.

virtual void PLMD::Action::calculate ( )
pure virtualinherited

Calculate an Action.

This method is called one or more times per step. The set of all Actions is calculated in forward order.

Implemented in PLMD::bias::MetaD, PLMD::function::FuncSumHills, PLMD::analysis::Analysis, PLMD::colvar::Distance, PLMD::bias::MovingRestraint, PLMD::function::FuncPathMSD, PLMD::multicolvar::ActionVolume, PLMD::bias::External, PLMD::generic::WholeMolecules, PLMD::generic::DumpAtoms, PLMD::bias::ABMD, PLMD::colvar::Angle, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::generic::Group, PLMD::bias::BiasValue, PLMD::colvar::DRMSD, PLMD::colvar::Gyration, PLMD::IMD, PLMD::colvar::ContactMap, PLMD::function::Matheval, PLMD::generic::RandomExchanges, PLMD::colvar::PathMSDBase, PLMD::generic::Read, PLMD::function::Piecewise, PLMD::bias::LWalls, PLMD::bias::UWalls, PLMD::multicolvar::MultiColvar, PLMD::generic::Include, PLMD::generic::Print, PLMD::vatom::Center, PLMD::function::Combine, PLMD::bias::Restraint, PLMD::generic::Flush, PLMD::colvar::Energy, PLMD::function::Sort, PLMD::multicolvar::MultiColvarFunction, PLMD::vatom::Ghost, PLMD::colvar::Constant, PLMD::colvar::Torsion, PLMD::generic::DumpDerivatives, PLMD::generic::DumpForces, PLMD::vatom::COM, PLMD::generic::Debug, PLMD::colvar::Dipole, PLMD::colvar::Cell, PLMD::colvar::ColvarFake, PLMD::colvar::Volume, PLMD::colvar::Template, PLMD::generic::Time, PLMD::function::Target, PLMD::generic::DumpProjections, PLMD::colvar::RMSD, PLMD::colvar::CoordinationBase, PLMD::manyrestraints::Sphere, and PLMD::ActionSetup.

void ActionAtomistic::calculateAtomicNumericalDerivatives ( ActionWithValue a,
const unsigned &  startnum 
)
inherited

Numerical derivative routine to use when using Actions that inherit from BOTH ActionWithArguments and ActionAtomistic.

Definition at line 87 of file ActionAtomistic.cpp.

void PLMD::Action::calculateFromPDB ( const PDB pdb)
inherited

Calculate the action given a pdb file as input.

This is used to initialize things like distance from a point in CV map space given a pdb as an input file

Definition at line 205 of file Action.cpp.

void ActionAtomistic::calculateNumericalDerivatives ( ActionWithValue a = NULL)
virtualinherited

N.B.

only pass an ActionWithValue to this routine if you know exactly what you are doing. The default will be correct for the vast majority of cases

Reimplemented from PLMD::Action.

Reimplemented in PLMD::multicolvar::ActionVolume, and PLMD::multicolvar::MultiColvarFunction.

Definition at line 83 of file ActionAtomistic.cpp.

virtual bool PLMD::Action::checkNeedsGradients ( ) const
inlinevirtualinherited

Check if the action needs gradient.

Reimplemented in PLMD::bias::MetaD, and PLMD::generic::DumpProjections.

Definition at line 230 of file Action.h.

virtual bool PLMD::Action::checkNumericalDerivatives ( ) const
inlinevirtualinherited

Check if numerical derivatives should be performed.

Reimplemented in PLMD::ActionWithValue.

Definition at line 227 of file Action.h.

void PLMD::Action::checkRead ( )
inherited

Check if Action was properly read.

This checks if Action::line is empty. It must be called after a final Action has been initialized

Definition at line 161 of file Action.cpp.

std::string PLMD::Action::cite ( const std::string &  s)
inherited

Cite a paper see PlumedMain::cite.

Definition at line 221 of file Action.cpp.

void PLMD::Action::clearDependencies ( )
inherited

Clear the dependence list for this Action.

Definition at line 153 of file Action.cpp.

void PLMD::Action::clearOptions ( )
virtualinherited

Definition at line 147 of file Action.cpp.

void PLMD::ActionAtomistic::clearOutputForces ( )
inlineinherited

Definition at line 183 of file ActionAtomistic.h.

void PLMD::Action::deactivate ( )
inlinevirtualinherited

Set action to inactive.

Definition at line 369 of file Action.h.

void PLMD::Action::error ( const std::string &  msg) const
inherited

Crash calculation and print documentation.

Definition at line 195 of file Action.cpp.

void PLMD::Action::exit ( int  c = 0)
inherited

Exit with error code c.

Definition at line 183 of file Action.cpp.

int PLMD::Action::fclose ( FILE *  fp)
inherited

Closes a file opened with Action::fclose().

Definition at line 93 of file Action.cpp.

void PLMD::Action::fflush ( )
inherited

Tell to the Action to flush open files.

Definition at line 98 of file Action.cpp.

FILE * PLMD::Action::fopen ( const char *  path,
const char *  mode 
)
inherited

Opens a file.

This is similar to plain fopen, but with some extra functionality.

  • When opened for writing, processors other than the one with rank 0 just open /dev/null
  • PlumedMain::fopen is used, so that other tricks may appear (see PlumedMain::fopen)

Definition at line 83 of file Action.cpp.

AtomNumber PLMD::ActionAtomistic::getAbsoluteIndex ( int  i) const
inlineinherited

Get the absolute index of an atom.

Definition at line 153 of file ActionAtomistic.h.

const std::vector< AtomNumber > & PLMD::ActionAtomistic::getAbsoluteIndexes ( ) const
inlineinherited

Get the vector of absolute indexes.

Definition at line 148 of file ActionAtomistic.h.

const Tensor & PLMD::ActionAtomistic::getBox ( ) const
inlineinherited

Get position of i-th atom.

Definition at line 168 of file ActionAtomistic.h.

double PLMD::ActionAtomistic::getCharge ( int  i) const
inlineinherited

Get charge of i-th atom.

Definition at line 142 of file ActionAtomistic.h.

const Dependencies& PLMD::Action::getDependencies ( ) const
inlineinherited

Return dependencies.

Definition at line 224 of file Action.h.

std::string PLMD::Action::getDocumentation ( ) const
virtualinherited

Definition at line 157 of file Action.cpp.

const double & PLMD::ActionAtomistic::getEnergy ( ) const
inlineinherited

Get energy.

Definition at line 163 of file ActionAtomistic.h.

bool PLMD::Action::getExchangeStep ( ) const
inherited

Check if we are on an exchange step.

Definition at line 217 of file Action.cpp.

const std::map< AtomNumber, Tensor > & PLMD::ActionWithVirtualAtom::getGradients ( ) const
inline

Definition at line 95 of file ActionWithVirtualAtom.h.

AtomNumber PLMD::ActionWithVirtualAtom::getIndex ( ) const
inline

Return the atom id of the corresponding virtual atom.

Definition at line 70 of file ActionWithVirtualAtom.h.

const std::string & PLMD::Action::getLabel ( ) const
inlineinherited

Returns the label.

Definition at line 263 of file Action.h.

double PLMD::ActionAtomistic::getMass ( int  i) const
inlineinherited

Get mass of i-th atom.

Definition at line 137 of file ActionAtomistic.h.

const std::string & PLMD::Action::getName ( ) const
inlineinherited

Returns the name.

Definition at line 268 of file Action.h.

unsigned PLMD::ActionAtomistic::getNumberOfAtoms ( ) const
inlineinherited

Get number of available atoms.

Definition at line 88 of file ActionAtomistic.h.

const Pbc & PLMD::ActionAtomistic::getPbc ( ) const
inlineinherited

Get reference to Pbc.

Definition at line 195 of file ActionAtomistic.h.

const Vector & PLMD::ActionAtomistic::getPosition ( int  i) const
inlineinherited

Get position of i-th atom.

Definition at line 132 of file ActionAtomistic.h.

const std::vector< Vector > & PLMD::ActionAtomistic::getPositions ( ) const
inlineinherited

Get the array of all positions.

Definition at line 158 of file ActionAtomistic.h.

long int PLMD::Action::getStep ( ) const
inherited

Return the present timestep.

Definition at line 169 of file Action.cpp.

double PLMD::Action::getTime ( ) const
inherited

Return the present time.

Definition at line 173 of file Action.cpp.

double PLMD::Action::getTimeStep ( ) const
inherited

Return the timestep.

Definition at line 177 of file Action.cpp.

const std::set< AtomNumber > & PLMD::ActionAtomistic::getUnique ( ) const
inlineinherited

Definition at line 210 of file ActionAtomistic.h.

bool PLMD::Action::isActive ( ) const
inlineinherited

Check if action is active.

Definition at line 375 of file Action.h.

bool PLMD::Action::isOptionOn ( const std::string &  s) const
inlineinherited

Check if an option is on.

Definition at line 380 of file Action.h.

void PLMD::ActionAtomistic::lockRequests ( )
inlinevirtualinherited

Reimplemented from PLMD::Action.

Definition at line 200 of file ActionAtomistic.h.

double & PLMD::ActionAtomistic::modifyForceOnEnergy ( )
inlineinherited

Get a reference to force on energy.

Definition at line 190 of file ActionAtomistic.h.

std::vector< Vector > & PLMD::ActionAtomistic::modifyForces ( )
inlineinherited

Get a reference to forces array.

Definition at line 173 of file ActionAtomistic.h.

Tensor & PLMD::ActionAtomistic::modifyVirial ( )
inlineinherited

Get a reference to virial array.

Definition at line 178 of file ActionAtomistic.h.

template<class T >
void PLMD::Action::parse ( const std::string &  key,
T &  t 
)
inherited

Parse one keyword as generic type.

Definition at line 273 of file Action.h.

void ActionAtomistic::parseAtomList ( const std::string &  key,
std::vector< AtomNumber > &  t 
)
inherited

Parse a list of atoms without a numbered keyword.

Definition at line 141 of file ActionAtomistic.cpp.

void ActionAtomistic::parseAtomList ( const std::string &  key,
const int  num,
std::vector< AtomNumber > &  t 
)
inherited

Parse an list of atom with a numbred keyword.

Definition at line 145 of file ActionAtomistic.cpp.

void PLMD::Action::parseFlag ( const std::string &  key,
bool &  t 
)
inherited

Parse one keyword as boolean flag.

Definition at line 104 of file Action.cpp.

template<class T >
bool PLMD::Action::parseNumbered ( const std::string &  key,
const int  no,
T &  t 
)
inherited

Parse one numbered keyword as generic type.

Definition at line 300 of file Action.h.

template<class T >
bool PLMD::Action::parseNumberedVector ( const std::string &  key,
const int  no,
std::vector< T > &  t 
)
inherited

Parse a vector with a number.

Definition at line 352 of file Action.h.

template<class T >
void PLMD::Action::parseVector ( const std::string &  key,
std::vector< T > &  t 
)
inherited

Parse one keyword as std::vector.

Definition at line 311 of file Action.h.

Vector ActionAtomistic::pbcDistance ( const Vector v1,
const Vector v2 
) const
inherited

Compute the pbc distance between two positions.

Definition at line 79 of file ActionAtomistic.cpp.

void PLMD::Action::prepare ( )
virtualinherited

Prepare an Action for calculation This can be used by Action if they need some special preparation before calculation.

Typical case is for collective variables which would like to change their list of requested atoms. By default (if not overridden) does nothing.

Reimplemented in PLMD::analysis::Analysis, PLMD::function::FuncPathMSD, PLMD::multicolvar::MultiColvarBase, PLMD::multicolvar::ActionVolume, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::generic::Read, PLMD::generic::Print, PLMD::colvar::Energy, and PLMD::colvar::CoordinationBase.

Definition at line 191 of file Action.cpp.

void ActionAtomistic::readAtomsFromPDB ( const PDB pdb)
virtualinherited

Read in an input file containing atom positions and calculate the action for the atomic configuration therin.

Reimplemented from PLMD::Action.

Definition at line 226 of file ActionAtomistic.cpp.

void PLMD::ActionWithVirtualAtom::registerKeywords ( Keywords keys)
static

Definition at line 29 of file ActionWithVirtualAtom.cpp.

void PLMD::ActionWithVirtualAtom::requestAtoms ( const std::vector< AtomNumber > &  a)
protected

Request atoms on which the calculation depends.

Definition at line 52 of file ActionWithVirtualAtom.cpp.

void ActionAtomistic::retrieveAtoms ( )
inherited

Definition at line 186 of file ActionAtomistic.cpp.

virtual void PLMD::Action::runFinalJobs ( )
inlinevirtualinherited

RunFinalJobs This method is called once at the very end of the calculation.

The set of all Actions in run for the final time in forward order.

Reimplemented in PLMD::analysis::Analysis.

Definition at line 193 of file Action.h.

void PLMD::ActionWithVirtualAtom::setAtomsDerivatives ( const std::vector< Tensor > &  d)
inlineprotected

Set the derivatives of virtual atom coordinate wrt atoms on which it dependes.

Definition at line 90 of file ActionWithVirtualAtom.h.

void PLMD::ActionWithVirtualAtom::setCharge ( double  c)
inlineprotected

Set its charge.

Definition at line 85 of file ActionWithVirtualAtom.h.

void ActionAtomistic::setForcesOnAtoms ( const std::vector< double > &  forcesToApply,
unsigned  ind = 0 
)
inherited

Add the forces to the atoms.

Definition at line 200 of file ActionAtomistic.cpp.

void PLMD::ActionWithVirtualAtom::setGradients ( )

Definition at line 57 of file ActionWithVirtualAtom.cpp.

void PLMD::ActionWithVirtualAtom::setGradientsIfNeeded ( )

Definition at line 75 of file ActionWithVirtualAtom.cpp.

void PLMD::ActionWithVirtualAtom::setMass ( double  m)
inlineprotected

Set its mass.

Definition at line 80 of file ActionWithVirtualAtom.h.

void PLMD::Action::setOption ( const std::string &  s)
virtualinherited

Definition at line 141 of file Action.cpp.

void PLMD::ActionWithVirtualAtom::setPosition ( const Vector pos)
inlineprotected

Set position of the virtual atom.

Definition at line 75 of file ActionWithVirtualAtom.h.

void PLMD::ActionAtomistic::unlockRequests ( )
inlinevirtualinherited

Reimplemented from PLMD::Action.

Definition at line 205 of file ActionAtomistic.h.

virtual void PLMD::Action::update ( )
inlinevirtualinherited

Update.

This method is called one time per step. The set of all Actions is updated in forward order.

Reimplemented in PLMD::bias::MetaD, PLMD::analysis::Analysis, PLMD::generic::DumpAtoms, PLMD::generic::Read, PLMD::generic::Print, PLMD::generic::DumpDerivatives, PLMD::generic::DumpForces, and PLMD::generic::DumpProjections.

Definition at line 188 of file Action.h.

void PLMD::Action::warning ( const std::string &  msg)
inherited

Issue a warning.

Definition at line 201 of file Action.cpp.

Member Data Documentation

Atoms& PLMD::ActionAtomistic::atoms
protectedinherited

Definition at line 59 of file ActionAtomistic.h.

Communicator& PLMD::Action::comm
inherited

Definition at line 158 of file Action.h.

std::vector<Tensor> PLMD::ActionWithVirtualAtom::derivatives
private

Definition at line 44 of file ActionWithVirtualAtom.h.

std::set<FILE*> PLMD::Action::files
inherited

Definition at line 139 of file Action.h.

std::map<AtomNumber,Tensor> PLMD::ActionWithVirtualAtom::gradients
private

Definition at line 45 of file ActionWithVirtualAtom.h.

AtomNumber PLMD::ActionWithVirtualAtom::index
private

Definition at line 43 of file ActionWithVirtualAtom.h.

const Keywords& PLMD::Action::keywords
inherited

Definition at line 161 of file Action.h.

Log& PLMD::Action::log
inherited

Reference to the log stream.

Definition at line 93 of file Action.h.

Communicator& PLMD::Action::multi_sim_comm
inherited

Definition at line 159 of file Action.h.

PlumedMain& PLMD::Action::plumed
inherited

Reference to main plumed object.

Definition at line 90 of file Action.h.


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