Main plumed object.
More...
#include <PlumedMain.h>
Public Member Functions | |
std::string | cite (const std::string &) |
Add a citation, returning a string containing the reference number, something like "[10]". More... | |
unsigned | getNumThreads () const |
Get number of threads that can be used by openmp. More... | |
template<typename T > | |
unsigned | getGoodNumThreads (const T *x, unsigned s) const |
Get a reasonable number of threads so as to access to an array of size s located at x. More... | |
template<typename T > | |
unsigned | getGoodNumThreads (const std::vector< T > &v) const |
Get a reasonable number of threads so as to access to vector v;. More... | |
PlumedMain () | |
void | cmd (const std::string &key, void *val=NULL) |
cmd method, accessible with standard Plumed.h interface. More... | |
~PlumedMain () | |
void | readInputFile (std::string str) |
Read an input file. More... | |
void | readInputWords (const std::vector< std::string > &str) |
Read an input string. More... | |
void | readInputLine (const std::string &str) |
Read an input string. More... | |
void | init () |
Initialize the object. More... | |
void | prepareCalc () |
Prepare the calculation. More... | |
void | prepareDependencies () |
Prepare the list of active Actions and needed atoms. More... | |
void | shareData () |
Share the needed atoms. More... | |
void | performCalc () |
Perform the calculation. More... | |
void | performCalcNoUpdate () |
Perform the calculation without update() Shortcut for: waitData() + justCalculate() + backwardPropagate() More... | |
void | calc () |
Complete PLUMED calculation. More... | |
void | waitData () |
Scatters the needed atoms. More... | |
void | justCalculate () |
Perform the forward loop on active actions. More... | |
void | justApply () |
Backward propagate and update. More... | |
void | backwardPropagate () |
Perform the backward loop on active actions. More... | |
void | update () |
Call the update() method. More... | |
void | runJobsAtEndOfCalculation () |
If there are calculations that need to be done at the very end of the calculations this makes sures they are done. More... | |
Atoms & | getAtoms () |
Reference to atoms object. More... | |
const ActionSet & | getActionSet () const |
Reference to the list of Action's. More... | |
Log & | getLog () |
Referenge to the log stream. More... | |
long int | getStep () const |
Return the number of the step. More... | |
void | exit (int c=0) |
Stop the run. More... | |
void | load (const std::string &) |
Load a shared library. More... | |
const std::string & | getSuffix () const |
Get the suffix string. More... | |
void | setSuffix (const std::string &) |
Set the suffix string. More... | |
double | getBias () const |
get the value of the bias More... | |
double | getWork () const |
get the value of the work More... | |
FILE * | fopen (const char *path, const char *mode) |
Opens a file. More... | |
int | fclose (FILE *fp) |
Closes a file opened with PlumedMain::fopen() More... | |
void | insertFile (FileBase &) |
Insert a file. More... | |
void | eraseFile (FileBase &) |
Erase a file. More... | |
void | fflush () |
Flush all files. More... | |
bool | getRestart () const |
Check if restarting. More... | |
void | setRestart (bool f) |
Set restart flag. More... | |
bool | getCPT () const |
Check if checkpointing. More... | |
void | setExchangeStep (bool f) |
Set exchangeStep flag. More... | |
bool | getExchangeStep () const |
Get exchangeStep flag. More... | |
void | stop () |
Stop the calculation cleanly (both the MD code and plumed) More... | |
void | resetActive (bool active) |
Enforce active flag. More... | |
ExchangePatterns & | getExchangePatterns () |
Access to exchange patterns. More... | |
void | updateFlagsPush (bool) |
Push a state to update flags. More... | |
void | updateFlagsPop () |
Pop a state from update flags. More... | |
bool | updateFlagsTop () |
Get top of update flags. More... | |
void | cmd (const std::string &key, const void *val) |
Const val version, which indeed just overrides the const and call the virtual method. More... | |
virtual void | cmd (const std::string &key, void *val=NULL)=0 |
This has to be implemented in daughter classes. More... | |
void | cmd (const std::string &key, const void *val) |
Const val version, which indeed just overrides the const and call the virtual method. More... | |
Public Attributes | |
Communicator & | comm |
Communicator for plumed. More... | |
Communicator & | multi_sim_comm |
bool | novirial |
Flag to switch off virial calculation (for debug and MD codes with no barostat) More... | |
bool | detailedTimers |
Flag to switch on detailed timers. More... | |
Private Types | |
typedef std::set< FileBase * >::iterator | files_iterator |
Private Attributes | |
DLLoader & | dlloader |
WithCmd * | cltool |
Stopwatch & | stopwatch |
WithCmd * | grex |
bool | initialized |
Flag to avoid double initialization. More... | |
std::string | MDEngine |
Name of MD engine. More... | |
Log & | log |
Log stream. More... | |
Citations & | citations |
tools/Citations.holder More... | |
long int | step |
Present step number. More... | |
bool | active |
Condition for plumed to be active. More... | |
std::string | plumedDat |
Name of the input file. More... | |
Atoms & | atoms |
Object containing information about atoms (such as positions,...). More... | |
ActionSet & | actionSet |
Set of actions found in plumed.dat file. More... | |
std::vector< ActionPilot * > | pilots |
Set of Pilot actions. More... | |
std::string | suffix |
Suffix string for file opening, useful for multiple simulations in the same directory. More... | |
double | bias |
The total bias (=total energy of the restraints) More... | |
double | work |
The total work. More... | |
ExchangePatterns & | exchangePatterns |
Class of possible exchange patterns, used for BIASEXCHANGE but also for future parallel tempering. More... | |
bool | exchangeStep |
Set to true if on an exchange step. More... | |
bool | restart |
Flag for restart. More... | |
bool | doCheckPoint |
Flag for checkpointig. More... | |
std::set< FileBase * > | files |
int * | stopFlag |
Stuff to make plumed stop the MD code cleanly. More... | |
bool | stopNow |
std::stack< bool > | updateFlags |
Stack for update flags. More... | |
Main plumed object.
In MD engines this object is not manipulated directly but it is wrapped in plumed or PLMD::Plumed objects. Its main method is cmd(), which defines completely the external plumed interface. It does not contain any static data.
|
private |
PLMD::PlumedMain::PlumedMain | ( | ) |
PLMD::PlumedMain::~PlumedMain | ( | ) |
void PLMD::PlumedMain::backwardPropagate | ( | ) |
Perform the backward loop on active actions.
Needed to apply the forces back.
void PLMD::PlumedMain::calc | ( | ) |
Complete PLUMED calculation.
Shortcut for prepareCalc() + performCalc()
std::string PLMD::PlumedMain::cite | ( | const std::string & | item | ) |
Add a citation, returning a string containing the reference number, something like "[10]".
|
inlineinherited |
Const val version, which indeed just overrides the const and call the virtual method.
|
inline |
Const val version, which indeed just overrides the const and call the virtual method.
virtual void PLMD::WithCmd::cmd |
This has to be implemented in daughter classes.
|
virtual |
cmd method, accessible with standard Plumed.h interface.
key | The name of the command to be executed. |
val | The argument of the command to be executed. It is called as plumed_cmd() or as PLMD::Plumed::cmd() It is the interpreter for plumed commands. It basically contains the definition of the plumed interface. If you want to add a new functionality to the interface between plumed and an MD engine, this is the right place Notice that this interface should always keep retro-compatibility |
Implements PLMD::WithCmd.
void PLMD::PlumedMain::eraseFile | ( | FileBase & | f | ) |
Erase a file.
void PLMD::PlumedMain::exit | ( | int | c = 0 | ) |
Stop the run.
int PLMD::PlumedMain::fclose | ( | FILE * | fp | ) |
Closes a file opened with PlumedMain::fopen()
void PLMD::PlumedMain::fflush | ( | ) |
Flush all files.
FILE * PLMD::PlumedMain::fopen | ( | const char * | path, |
const char * | mode | ||
) |
Opens a file.
Similar to plain fopen, but, if it finds an error in opening the file, it also tries with path+suffix. This trick is useful for multiple replica simulations.
|
inline |
Reference to the list of Action's.
|
inline |
Reference to atoms object.
double PLMD::PlumedMain::getBias | ( | ) | const |
get the value of the bias
|
inline |
Check if checkpointing.
|
inline |
Access to exchange patterns.
|
inline |
Get exchangeStep flag.
unsigned PLMD::PlumedMain::getGoodNumThreads | ( | const T * | x, |
unsigned | s | ||
) | const |
Get a reasonable number of threads so as to access to an array of size s located at x.
unsigned PLMD::PlumedMain::getGoodNumThreads | ( | const std::vector< T > & | v | ) | const |
Get a reasonable number of threads so as to access to vector v;.
Log & PLMD::PlumedMain::getLog | ( | ) |
Referenge to the log stream.
unsigned PLMD::PlumedMain::getNumThreads | ( | ) | const |
Get number of threads that can be used by openmp.
|
inline |
Check if restarting.
|
inline |
Return the number of the step.
|
inline |
Get the suffix string.
double PLMD::PlumedMain::getWork | ( | ) | const |
get the value of the work
void PLMD::PlumedMain::init | ( | ) |
Initialize the object.
Should be called once.
void PLMD::PlumedMain::insertFile | ( | FileBase & | f | ) |
Insert a file.
void PLMD::PlumedMain::justApply | ( | ) |
Backward propagate and update.
Shortcut for backwardPropagate() + update() I leave it here for backward compatibility
void PLMD::PlumedMain::justCalculate | ( | ) |
Perform the forward loop on active actions.
void PLMD::PlumedMain::load | ( | const std::string & | ss | ) |
Load a shared library.
void PLMD::PlumedMain::performCalc | ( | ) |
Perform the calculation.
Shortcut for waitData() + justCalculate() + justApply(). Equivalently: waitData() + justCalculate() + backwardPropagate() + update().
void PLMD::PlumedMain::performCalcNoUpdate | ( | ) |
Perform the calculation without update() Shortcut for: waitData() + justCalculate() + backwardPropagate()
void PLMD::PlumedMain::prepareCalc | ( | ) |
Prepare the calculation.
Here it is checked which are the active Actions and communication of the relevant atoms is initiated. Shortcut for prepareDependencies() + shareData()
void PLMD::PlumedMain::prepareDependencies | ( | ) |
Prepare the list of active Actions and needed atoms.
Scan the Actions to see which are active and which are not, so as to prepare a list of the atoms needed at this step.
void PLMD::PlumedMain::readInputFile | ( | std::string | str | ) |
Read an input file.
str | name of the file |
void PLMD::PlumedMain::readInputLine | ( | const std::string & | str | ) |
Read an input string.
str | name of the string At variance with readInputWords(), this is splitting the string into words |
void PLMD::PlumedMain::readInputWords | ( | const std::vector< std::string > & | str | ) |
Read an input string.
str | name of the string |
|
inline |
Enforce active flag.
This is a (bit dirty) hack to solve a bug. When there is no active ActionPilot, several shortcuts are used. However, these shortcuts can block GREX module. This function allows to enforce active plumed when doing exchanges, thus fixing the bug.
void PLMD::PlumedMain::runJobsAtEndOfCalculation | ( | ) |
If there are calculations that need to be done at the very end of the calculations this makes sures they are done.
|
inline |
Set exchangeStep flag.
|
inline |
Set restart flag.
|
inline |
Set the suffix string.
void PLMD::PlumedMain::shareData | ( | ) |
Share the needed atoms.
In asynchronous implementations, this method sends the required atoms to all the plumed processes, without waiting for the communication to complete.
void PLMD::PlumedMain::stop | ( | ) |
Stop the calculation cleanly (both the MD code and plumed)
void PLMD::PlumedMain::update | ( | ) |
Call the update() method.
|
inline |
Pop a state from update flags.
|
inline |
Push a state to update flags.
|
inline |
Get top of update flags.
void PLMD::PlumedMain::waitData | ( | ) |
Scatters the needed atoms.
In asynchronous implementations, this method waits for the communications started in shareData() to be completed. Otherwise, just send around needed atoms.
|
private |
Set of actions found in plumed.dat file.
|
private |
Condition for plumed to be active.
At every step, PlumedMain is checking if there are Action's requiring some work. If at least one Action requires some work, this variable is set to true.
|
private |
Object containing information about atoms (such as positions,...).
|
private |
The total bias (=total energy of the restraints)
|
private |
tools/Citations.holder
|
private |
Communicator& PLMD::PlumedMain::comm |
Communicator for plumed.
Includes all the processors used by plumed.
bool PLMD::PlumedMain::detailedTimers |
Flag to switch on detailed timers.
|
private |
|
private |
Flag for checkpointig.
|
private |
Class of possible exchange patterns, used for BIASEXCHANGE but also for future parallel tempering.
|
private |
Set to true if on an exchange step.
|
private |
|
private |
|
private |
Flag to avoid double initialization.
|
private |
Name of MD engine.
Communicator& PLMD::PlumedMain::multi_sim_comm |
bool PLMD::PlumedMain::novirial |
Flag to switch off virial calculation (for debug and MD codes with no barostat)
|
private |
Set of Pilot actions.
These are the action the, if they are Pilot::onStep(), can trigger execution
|
private |
Name of the input file.
|
private |
Flag for restart.
|
private |
Present step number.
|
private |
Stuff to make plumed stop the MD code cleanly.
|
private |
|
private |
|
private |
Suffix string for file opening, useful for multiple simulations in the same directory.
|
private |
Stack for update flags.
Store information used in class generic::UpdateIf
|
private |
The total work.
This computed by accumulating the change in external potentials.
Hosted by GitHub | 1.8.14 |