#include <ActionWithMatrix.h>
Public Types | |
typedef std::vector< Action * > | Dependencies |
Public Member Functions | |
ActionWithMatrix (const ActionOptions &) | |
virtual | ~ActionWithMatrix () |
virtual bool | actionHasForces () |
bool | actionInChain () const |
Are we running this command in a chain. More... | |
virtual void | activate () |
Set action to active. More... | |
void | addComponent (const std::string &name, const std::vector< unsigned > &shape=std::vector< unsigned >()) |
Add a value with a name like label.name. More... | |
virtual void | addComponentWithDerivatives (const std::string &name, const std::vector< unsigned > &shape=std::vector< unsigned >()) |
Add a value with a name like label.name that has derivatives. More... | |
void | addDependency (Action *) |
Specify that this Action depends on another one. More... | |
void | addForce (const std::pair< std::size_t, std::size_t > &a, const Vector &f) |
Add force to an atom. More... | |
void | addForcesOnArguments (const unsigned &argstart, const std::vector< double > &forces, unsigned &ind, const std::string &c) |
Add forces to arguments (used in apply) More... | |
void | addValue (const std::vector< unsigned > &shape=std::vector< unsigned >()) |
Add a value with the name label. More... | |
virtual void | addValueWithDerivatives (const std::vector< unsigned > &shape=std::vector< unsigned >()) |
Add a value with the name label that has derivatives. More... | |
virtual void | apply () |
Apply the forces on this data. More... | |
virtual void | areAllTasksRequired (std::vector< ActionWithVector * > &task_reducing_actions) |
Do we always need to do all the tasks for this action. More... | |
virtual void | beforeUpdate () |
Before Update. More... | |
double | bringBackInPbc (int i, double d1) const |
Takes one value and brings it back into the pbc of argument i. More... | |
virtual void | calculate () override |
Run the calculation. More... | |
void | calculateAtomicNumericalDerivatives (ActionWithValue *a, const unsigned &startnum) |
Numerical derivative routine to use when using Actions that inherit from BOTH ActionWithArguments and ActionAtomistic. More... | |
virtual bool | calculateConstantValues (const bool &have_atoms) |
Used to calculate constant values in startup. More... | |
void | calculateFromPDB (const PDB &) |
Calculate the action given a pdb file as input. More... | |
void | calculateNumericalDerivatives (ActionWithValue *av) override |
N.B. More... | |
virtual bool | calculateOnUpdate () |
This is used to check if we run calculate during the update step. More... | |
virtual bool | canBeAfterInChain (ActionWithVector *av) |
Check if we can be after another ActionWithVector. More... | |
ActionAtomistic * | castToActionAtomistic () noexcept final |
virtual ActionForInterface * | castToActionForInterface () noexcept |
virtual ActionShortcut * | castToActionShortcut () noexcept |
virtual ActionToGetData * | castToActionToGetData () noexcept |
virtual ActionToPutData * | castToActionToPutData () noexcept |
virtual ActionWithArguments * | castToActionWithArguments () noexcept |
ActionWithArguments * | castToActionWithArguments () noexcept final |
virtual ActionWithValue * | castToActionWithValue () noexcept |
Specialized casts, to make PlumedMain run faster. More... | |
ActionWithValue * | castToActionWithValue () noexcept final |
Specialized casts, to make PlumedMain run faster. More... | |
virtual ActionWithVirtualAtom * | castToActionWithVirtualAtom () noexcept |
virtual DomainDecomposition * | castToDomainDecomposition () noexcept |
virtual PbcAction * | castToPbcAction () noexcept |
void | changeBox (const Tensor &newbox) |
Change the box shape. More... | |
virtual void | checkFieldsAllowed () |
bool | checkForDependency (Action *) |
Check that this action does not depend on the action in the argument. More... | |
bool | checkForTaskForce (const unsigned &itask, const Value *myval) const override |
Check if there are forces we need to account for on this task. More... | |
virtual bool | checkNeedsGradients () const |
Check if the action needs gradient. More... | |
virtual bool | checkNumericalDerivatives () const |
Check if numerical derivatives should be performed. More... | |
bool | checkNumericalDerivatives () const override |
Check if numerical derivatives should be used. More... | |
void | checkRead () |
Check if Action was properly read. More... | |
virtual int | checkTaskStatus (const unsigned &taskno, int &flag) const |
Check the status of the ith task. More... | |
bool | checkUpdate () const |
Check if action should be updated. More... | |
std::string | cite (const std::string &s) |
Cite a paper see PlumedMain::cite. More... | |
void | clearDependencies () |
Clear the dependence list for this Action. More... | |
void | clearDerivatives (const bool &force=false) override |
We override clearDerivatives here to prevent data in streams from being deleted. More... | |
void | clearInputForces (const bool &force=false) override |
We override clearInputForces here to ensure that forces are deleted from all values. More... | |
virtual void | clearOptions () |
void | componentIsNotPeriodic (const std::string &name) |
Set your value component to have no periodicity. More... | |
void | componentIsPeriodic (const std::string &name, const std::string &min, const std::string &max) |
Set the value to be periodic with a particular domain. More... | |
Value * | copyOutput (const std::string &name) const |
Return a pointer to the value with name (this is used to retrieve values in other PLMD::Actions) You should NEVER use this routine to refer to the components of your PLMD::Action. More... | |
Value * | copyOutput (const unsigned &n) const |
Return a pointer to the value with this number (this is used to retrieve values in other PLMD::Actions) You should NEVER use this routine to refer to the components of your PLMD::Action. More... | |
virtual void | deactivate () |
Set action to inactive. More... | |
double | difference (int, double, double) const |
Takes the difference taking into account pbc for arg i. More... | |
virtual bool | doNotCalculateDerivatives () const |
Are we not calculating derivatives. More... | |
void | doNotForce () |
Skip atom forces - use with care. More... | |
void | doNotRetrieve () |
Skip atom retrieval - use with care. More... | |
void | error (const std::string &msg) const |
Crash calculation and print documentation. More... | |
bool | exists (const std::string &name) const |
Check if a value with a particular name is present. More... | |
void | exit (int c=0) |
Exit with error code c. More... | |
int | fclose (FILE *fp) |
Closes a file opened with Action::fclose(). More... | |
void | fflush () |
Tell to the Action to flush open files. More... | |
void | finishChainBuild (ActionWithVector *act) |
This is overwritten within ActionWithMatrix and is used to build the chain of just matrix actions. More... | |
void | finishComputations (const std::vector< double > &buf) |
This is to transfer data from the buffer to the final value. More... | |
FILE * | fopen (const char *path, const char *mode) |
Opens a file. More... | |
void | gatherForcesOnStoredValue (const Value *myval, const unsigned &itask, const MultiValue &myvals, std::vector< double > &forces) const override |
This gathers the force on a particular value. More... | |
void | gatherProcesses (std::vector< double > &buffer) override |
Gather all the data from the MPI processes. More... | |
void | gatherStoredValue (const unsigned &valindex, const unsigned &code, const MultiValue &myvals, const unsigned &bufstart, std::vector< double > &buffer) const override |
Gather a row of the matrix. More... | |
void | gatherThreads (const unsigned &nt, const unsigned &bufsize, const std::vector< double > &omp_buffer, std::vector< double > &buffer, MultiValue &myvals) override |
Gather all the data from the threads. More... | |
AtomNumber | getAbsoluteIndex (int i) const |
Get the absolute index of an atom. More... | |
virtual const std::vector< AtomNumber > & | getAbsoluteIndexes () const |
Get the vector of absolute indexes. More... | |
virtual void | getAdditionalTasksRequired (ActionWithVector *action, std::vector< unsigned > &atasks) |
Get the additional tasks that are required here. More... | |
void | getAllActionLabelsInChain (std::vector< std::string > &mylabels) const |
Get every the label of every value that is calculated in this chain. More... | |
void | getAllActionLabelsInMatrixChain (std::vector< std::string > &mylabels) const override |
This is overridden in ActionWithMatrix. More... | |
double | getArgument (const unsigned n) const |
Returns the value of an argument. More... | |
virtual const std::vector< Value * > & | getArguments () const |
Returns an array of pointers to the arguments. More... | |
const Tensor & | getBox () const |
Get box shape. More... | |
double | getCharge (int i) const |
Get charge of i-th atom. More... | |
std::string | getComponentsList () const |
get a string that contains all the available components More... | |
std::vector< std::string > | getComponentsVector () const |
get a vector that contains the label for all the components More... | |
bool | getCPT () const |
Return true if we are doing at a checkpoint step. More... | |
std::string | getDefaultString () const |
Get the defaults. More... | |
const Dependencies & | getDependencies () const |
Return dependencies. More... | |
const double & | getEnergy () const |
Get energy. More... | |
bool | getExchangeStep () const |
Check if we are on an exchange step. More... | |
ActionWithVector * | getFirstActionInChain () |
const ActionWithVector * | getFirstActionInChain () const |
Return a pointer to the first action in the chain. More... | |
const ActionWithMatrix * | getFirstMatrixInChain () const |
Get the first matrix in this chain. More... | |
Vector | getForce (const std::pair< std::size_t, std::size_t > &a) const |
Get the force acting on a particular atom. More... | |
Vector | getGlobalPosition (const std::pair< std::size_t, std::size_t > &) const |
Get position of i-th atom (access by absolute AtomNumber). More... | |
void | getGradient (const unsigned &ind, Vector &deriv, std::map< AtomNumber, Vector > &gradients) const |
Transfer the gradients. More... | |
double | getkBT () |
Get the value of kBT by either reading the TEMP keyword and multiplying the temperature by Boltzmann's constant or get it fro the MD code. More... | |
std::string | getKeyword (const std::string &key) |
Just read one of the keywords and return the whole thing as a string. More... | |
const std::string & | getLabel () const |
Returns the label. More... | |
double | getMass (int i) const |
Get mass of i-th atom. More... | |
virtual void | getMatrixColumnTitles (std::vector< std::string > &argnames) const |
Get the titles to use for the columns of the matrix. More... | |
const std::string & | getName () const |
Returns the name. More... | |
virtual unsigned | getNumberOfArguments () const |
Returns the number of arguments. More... | |
unsigned | getNumberOfAtoms () const |
Get number of available atoms. More... | |
virtual unsigned | getNumberOfColumns () const =0 |
This should return the number of columns to help with sparse storage of matrices. More... | |
int | getNumberOfComponents () const |
Returns the number of values defined. More... | |
virtual unsigned | getNumberOfDerivatives ()=0 |
void | getNumberOfStreamedDerivatives (unsigned &nderivatives, Value *stopat) |
Get the number of derivatives in the stream. More... | |
virtual void | getNumberOfTasks (unsigned &ntasks) |
Find out how many tasks we need to perform in this loop. More... | |
virtual std::string | getOutputComponentDescription (const std::string &cname, const Keywords &keys) const |
Get the description of this component. More... | |
double | getOutputQuantity (const std::string &name) const |
Get the value with a specific name (N.B. if there is no such value this returns zero) More... | |
double | getOutputQuantity (const unsigned j) const |
Get the value of one of the components of the PLMD::Action. More... | |
const Pbc & | getPbc () const |
Get reference to Pbc. More... | |
Value * | getPntrToArgument (const unsigned n) const |
Return a pointer to specific argument. More... | |
const Vector & | getPosition (int) const |
Get position of i-th atom (access by relative index) More... | |
const std::vector< Vector > & | getPositions () const |
Get the array of all positions. More... | |
double | getProjection (unsigned i, unsigned j) const |
Get the scalar product between the gradients of two variables. More... | |
bool | getRestart () const |
Return true if we are doing a restart. More... | |
long long int | getStep () const |
Return the present timestep. More... | |
double | getTime () const |
Return the present time. More... | |
double | getTimeStep () const |
Return the timestep. More... | |
unsigned | getTotAtoms () const |
Get total number of atoms, including virtual ones. More... | |
const std::vector< AtomNumber > & | getUnique () const |
const std::vector< AtomNumber > & | getUniqueLocal () const |
Tensor | getVirial () const |
Get the virial that is acting. More... | |
bool | hasStoredArguments () const |
Check if there are any stored values in arguments. More... | |
void | interpretAtomList (std::vector< std::string > &strings, std::vector< AtomNumber > &t) |
Interpret the atom selection. Just a wrapper to the static function with four arguments called interpretAtomList that passes xpos and this. More... | |
bool | isActive () const |
Check if action is active. More... | |
virtual bool | isAdjacencyMatrix () const |
virtual bool | isInSubChain (unsigned &nder) |
Check if we are in a subchain. More... | |
bool | isOptionOn (const std::string &s) const |
Check if an option is on. More... | |
void | lockRequests () override |
void | makeWhole () |
Make atoms whole, assuming they are in the proper order. More... | |
double & | modifyForceOnEnergy () |
Get a reference to force on energy. More... | |
template<class T > | |
void | parse (const std::string &key, T &t) |
Parse one keyword as generic type. More... | |
bool | parseArgumentList (const std::string &key, int i, std::vector< Value * > &args) |
Parse a numbered list of arguments. More... | |
void | parseArgumentList (const std::string &key, std::vector< Value * > &args) |
Parse a list of arguments. More... | |
void | parseAtomList (const std::string &key, const int num, std::vector< AtomNumber > &t) |
Parse an list of atom with a numbred keyword. More... | |
void | parseAtomList (const std::string &key, std::vector< AtomNumber > &t) |
Parse a list of atoms without a numbered keyword. More... | |
void | parseFlag (const std::string &key, bool &t) |
Parse one keyword as boolean flag. 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 > | |
bool | parseNumberedVector (const std::string &key, const int no, std::vector< T > &t) |
Parse a vector with a number. More... | |
template<class T > | |
void | parseVector (const std::string &key, std::vector< T > &t) |
Parse one keyword as std::vector. More... | |
void | pbcApply (std::vector< Vector > &dlist, unsigned max_index=0) const |
Applies PBCs to a seriens of positions or distances. More... | |
Vector | pbcDistance (const Vector &, const Vector &) const |
Compute the pbc distance between two positions. More... | |
virtual void | performTask (const std::string &controller, const unsigned &index1, const unsigned &index2, MultiValue &myvals) const =0 |
This is the virtual that will do the calculation of the task for a particular matrix element. More... | |
void | performTask (const unsigned &task_index, MultiValue &myvals) const override |
Run over one row of the matrix. More... | |
virtual void | prepare () override |
Prepare an Action for calculation This can be used by Action if they need some special preparation before calculation. More... | |
void | readAtomsFromPDB (const PDB &pdb) override |
Read in an input file containing atom positions and calculate the action for the atomic configuration therin. More... | |
void | requestArguments (const std::vector< Value * > &arg) |
Setup the dependencies. More... | |
void | requestAtoms (const std::vector< AtomNumber > &a, const bool clearDep=true) |
Request an array of atoms. More... | |
void | requestExtraDependencies (const std::vector< Value * > &extra) |
void | resetStoredTimestep () |
Set the timestep that is stored in the action to the correct value. More... | |
void | retrieveAtoms (const bool &force=false) override |
virtual void | runEndOfRowJobs (const unsigned &ival, const std::vector< unsigned > &indices, MultiValue &myvals) const =0 |
This is the jobs that need to be done when we have run all the jobs in a row of the matrix. More... | |
virtual void | runFinalJobs () |
RunFinalJobs This method is called once at the very end of the calculation. More... | |
void | setForcesOnAtoms (const std::vector< double > &forcesToApply, unsigned &ind) |
Add the forces to the atoms. More... | |
void | setForcesOnCell (const double *forcesToApply, std::size_t size, unsigned &ind) |
Add the virial forces (span-like syntax) More... | |
void | setForcesOnCell (const std::vector< double > &forcesToApply, unsigned &ind) |
Add the virial forces. More... | |
void | setGlobalPosition (const std::pair< std::size_t, std::size_t > &, const Vector &pos) |
Modify position of i-th atom (access by absolute AtomNumber). More... | |
void | setGradients (Value *myval, unsigned &start) const |
Get the gradient for this action. More... | |
virtual void | setGradientsIfNeeded () |
Calculate the gradients and store them for all the values (need for projections) More... | |
void | setNotPeriodic () |
Set your default value to have no periodicity. More... | |
virtual void | setOption (const std::string &s) |
void | setPeriodic (const std::string &min, const std::string &max) |
Set the value to be periodic with a particular domain. More... | |
void | setupConstantValues (const bool &have_atoms) |
This calculates any values that are constant and ensures that we don't calculate these actions on every timestep. More... | |
virtual void | setupForTask (const unsigned &task_index, std::vector< unsigned > &indices, MultiValue &myvals) const =0 |
void | setupStreamedComponents (const std::string &headstr, unsigned &nquants, unsigned &nmat, unsigned &maxcol, unsigned &nbookeeping) override |
This requires some thought. More... | |
void | setValue (Value *, double) |
Set the value. More... | |
virtual void | switchTaskReduction (const bool &task_reduction, ActionWithVector *aselect) |
Can be used to reduce the number of tasks that are performed when you use an ation from elsewhere. More... | |
virtual void | turnOnDerivatives () |
Activate the calculation of derivatives. More... | |
void | unlockRequests () override |
virtual void | update () |
Update. More... | |
virtual void | updateAdditionalIndices (const unsigned &ostrn, MultiValue &myvals) const |
This is used to ensure that all indices are updated when you do local average. More... | |
virtual void | updateForceTasksFromValue (const Value *myval, std::vector< unsigned > &force_tasks) const |
Get the force tasks that are active for this action. More... | |
virtual void | updateNeighbourList () |
This is overwritten in Adjacency matrix where we have a neighbour list. More... | |
void | useNumericalDerivatives () |
This forces the class to use numerical derivatives. More... | |
void | warning (const std::string &msg) |
Issue a warning. More... | |
virtual std::string | writeInGraph () const |
Get the info on what to calculate. More... | |
Static Public Member Functions | |
static void | getAtomValuesFromPlumedObject (const PlumedMain &plumed, std::vector< Value * > &xpos, std::vector< Value * > &ypos, std::vector< Value * > &zpos, std::vector< Value * > &masv, std::vector< Value * > &chargev) |
This gets std::vector that contain the PLMD::Value objects that contain xpositions, ypositions, zpositions, masses and charges. More... | |
static void | interpretArgumentList (const std::vector< std::string > &c, const ActionSet &as, Action *action, std::vector< Value * > &arg) |
Convert a list of argument names into a list of pointers to the values. More... | |
static void | interpretAtomList (std::vector< std::string > &strings, const std::vector< Value * > &xpos, Action *action, std::vector< AtomNumber > &t) |
Convert a set of read in strings into an atom list (this is used in parseAtomList) More... | |
static void | noAnalyticalDerivatives (Keywords &keys) |
Insist that numerical derivatives should always be used for an action and make this fact appear in the manual. More... | |
static void | registerKeywords (Keywords &keys) |
static void | useCustomisableComponents (Keywords &keys) |
The components in the action will depend on the user. More... | |
Public Attributes | |
Communicator & | comm |
std::set< FILE * > | files |
const Keywords & | keywords |
Log & | log |
Reference to the log stream. More... | |
Communicator & | multi_sim_comm |
PlumedMain & | plumed |
Reference to main plumed object. More... | |
Protected Member Functions | |
void | addDerivativeOnMatrixArgument (const bool &inchain, const unsigned &ival, const unsigned &jarg, const unsigned &irow, const unsigned &jcol, const double &der, MultiValue &myvals) const |
Add derivatives given the derative wrt to the input matrix element as input. More... | |
void | addDerivativeOnVectorArgument (const bool &inchain, const unsigned &ival, const unsigned &jarg, const unsigned &jelem, const double &der, MultiValue &myvals) const |
Add derivatives given the derivative wrt to the input vector element as input. More... | |
bool | argumentDependsOn (const std::string &headstr, ActionWithVector *faction, Value *thearg) |
Check if the arguments of this action depend on thearg. More... | |
unsigned | buildArgumentStore (const unsigned &argstart) |
This sets up the arguments at the start of the calculation. More... | |
bool | checkForForces () |
Accumulate the forces from the Values. More... | |
void | expandArgKeywordInPDB (const PDB &pdb) |
This changes the arg keyword in the pdb file. More... | |
double | getArgumentElement (const unsigned &ic, const unsigned &jelem, const MultiValue &myvals) const |
This returns the jelem th element of argument ic. More... | |
const Value * | getConstPntrToComponent (int i) const |
Get a const pointer to the ith component. More... | |
double | getElementOfMatrixArgument (const unsigned &imat, const unsigned &irow, const unsigned &jcol, const MultiValue &myvals) const |
This returns an element of a matrix that is passed an argument. More... | |
const std::vector< double > & | getForcesToApply () const |
Get the forces to apply. More... | |
double | getKBoltzmann () const |
Get the value of Boltzmann's constant. More... | |
std::vector< unsigned > & | getListOfActiveTasks (ActionWithVector *action) |
Get the list of tasks that are active. More... | |
Value * | getPntrToComponent (const std::string &name) |
Return a pointer to the value by name. More... | |
Value * | getPntrToComponent (int i) |
Return a pointer to the component by index. More... | |
Value * | getPntrToValue () |
Get a pointer to the default value. More... | |
const Units & | getUnits () const |
Get the units that we are operating in. More... | |
std::pair< std::size_t, std::size_t > | getValueIndices (const AtomNumber &i) const |
Used to interpret whether this index is a virtual atom or a real atom. More... | |
bool | matrixChainContinues () const |
Does the matrix chain continue on from this action. More... | |
void | runAllTasks () |
Run all the tasks in the list. More... | |
bool | runInSerial () const |
Run all calculations in serial. More... | |
void | setExtraCV (const std::string &name) |
void | setValue (const double &d) |
Set the default value (the one without name) More... | |
void | updateTaskListReductionStatus () |
This updates whether or not we are using all the task reduction stuff. More... | |
bool | usingNaturalUnits () const |
Are we using natural units. More... | |
Protected Attributes | |
std::vector< unsigned > | arg_deriv_starts |
A vector that contains the start point for the argument derivatives. More... | |
bool | chargesWereSet |
bool | clearOnEachCycle |
This turns off derivative clearing for contact matrix if we are not storing derivatives. More... | |
bool | done_in_chain |
Assert if this action is part of a chain. More... | |
bool | massesWereSet |
Private Member Functions | |
bool | addActionToChain (const std::vector< std::string > &alabels, ActionWithVector *act) |
Add this action to the recursive chain. More... | |
void | addForcesToInput (const std::vector< double > &forcesToApply, unsigned &ind) |
Add the gathered forces to the inputs across the whole chain. More... | |
void | broadcastThatTasksAreReduced (ActionWithVector *aselect) |
Send information to arguments that tasks are reduced in depedent actions. More... | |
void | canReduceTasks (std::vector< ActionWithVector * > &task_reducing_actions) |
Check if this ation can reduce the number of tasks we perform. More... | |
bool | checkChainForNonScalarForces () const |
Check the chain for non scalar forces. More... | |
bool | checkComponentsForForce () const |
Check if a force has been added on one of the components of this action. More... | |
bool | checkForGrids (unsigned &nder) const |
Check if there are any grids in the stream. More... | |
void | clearMatrixElements (MultiValue &myvals) const |
This is used to clear up the matrix elements. More... | |
void | gatherAccumulators (const unsigned &taskCode, const MultiValue &myvals, std::vector< double > &buffer) const |
Gather the values that we intend to store in the buffer. More... | |
void | gatherForces (const unsigned &i, const MultiValue &myvals, std::vector< double > &forces) const |
Gather the forces on non-scalar quantities. More... | |
ActionWithVector * | getActionWithDerivatives (ActionWithVector *depaction) |
Work backwards through the chain to find an action that has either stored arguments or derivatives. More... | |
int | getComponent (const std::string &name) const |
Return the index for the component named name. More... | |
void | getForceTasks (std::vector< unsigned > &force_tasks) const |
Get the tasks that we need for forces. More... | |
bool | getNumberOfStoredValues (Value *startat, unsigned &nvals, const unsigned &astart, const std::vector< Value * > &stopat) |
Get the number of stored values in the stream. More... | |
void | getNumberOfStreamedQuantities (const std::string &headstr, unsigned &nquants, unsigned &nmat, unsigned &maxcol, unsigned &nbookeeping) |
Get the number of quantities in the stream. More... | |
void | getSizeOfBuffer (const unsigned &nactive_tasks, unsigned &bufsize) |
Get the size of the buffer array that holds the data we are gathering over the MPI loop. More... | |
void | getTotalMatrixBookeeping (unsigned &stashsize) |
This is used to find the total amount of space we need for storing matrix elements. More... | |
unsigned | reallyBuildArgumentStore (const unsigned &argstart) |
This is used to build the argument store when we cannot use the chain. More... | |
void | runTask (const std::string &controller, const unsigned ¤t, const unsigned colno, MultiValue &myvals) const |
This does the calculation of a particular matrix element. More... | |
void | taskIsActive (const unsigned ¤t, int &flag) const |
Check if a particular task is active at this time. More... | |
void | transferNonZeroMatrixElementsToValues (unsigned &nval, const std::vector< unsigned > &matbook) |
This transfers the non-zero elements to the Value. More... | |
void | updateAllNeighbourLists () |
Update all the neighbour lists in the chain. More... | |
void | updateTaskReductionFlag (bool &head_reduce_tasks) |
Turn on task reduction flag in dependent actions. More... | |
void | updateUniqueLocal (const bool &useunique, const std::vector< int > &g2l) |
Private Attributes | |
ActionWithVector * | action_to_do_after |
Actions that must be done after this one. More... | |
ActionWithVector * | action_to_do_before |
Action that must be done before this one. More... | |
bool | active |
Switch to activate Action on this step. More... | |
std::vector< unsigned > | active_tasks |
The list of active tasks. More... | |
Dependencies | after |
Actions on which this Action depends. More... | |
std::vector< Value * > | arguments |
std::vector< std::pair< std::size_t, std::size_t > > | atom_value_ind |
std::vector< std::pair< std::size_t, std::vector< std::size_t > > > | atom_value_ind_grouped |
bool | atomsWereRetrieved |
Were the atoms retrieved in some earlier action. More... | |
Value * | boxValue |
std::vector< double > | buffer |
The buffer that we use (we keep a copy here to avoid resizing) More... | |
std::vector< double > | charges |
std::vector< Value * > | chargev |
std::string | defaults |
The set of default arguments that we are using. More... | |
bool | doCheckPoint |
bool | donotforce |
bool | donotretrieve |
double | energy |
bool | firststep |
This finishes setup on first step to check if actions are calculated during update. More... | |
double | forceOnEnergy |
double | forceOnExtraCV |
std::vector< Vector > | forces |
std::vector< double > | forcesForApply |
A vector that is used to hold the forces that we will apply on the input quantities. More... | |
std::vector< AtomNumber > | indexes |
std::string | label |
Label of the Action, as set with LABEL= in the plumed.dat file. More... | |
std::vector< std::string > | line |
Directive line. More... | |
bool | lockRequestArguments |
bool | lockRequestAtoms |
std::vector< double > | masses |
std::vector< Value * > | masv |
std::vector< unsigned > | matrix_bookeeping |
This holds the bookeeping arrays for sparse matrices. More... | |
ActionWithMatrix * | matrix_to_do_after |
ActionWithMatrix * | matrix_to_do_before |
const std::string | name |
Name of the directive in the plumed.dat file. More... | |
bool | never_activate |
bool | never_reduce_tasks |
This is turned on if there is some action that needs all the tasks. More... | |
ActionWithMatrix * | next_action_in_chain |
bool | noderiv |
Are we skipping the calculation of the derivatives. More... | |
bool | numericalDerivatives |
Are we using numerical derivatives to differentiate. More... | |
std::set< std::string > | options |
Option that you might have enabled. More... | |
Pbc & | pbc =*pbc_fwd |
ForwardDecl< Pbc > | pbc_fwd |
std::vector< Vector > | positions |
bool | reduce_tasks |
Are we allowed to reduce the number of tasks being performed. More... | |
int | replica_index |
bool | restart |
bool | serial |
Is the calculation to be done in serial. More... | |
std::vector< ActionWithVector * > | task_control_list |
This is the list of actions that control the tasks that we do here. More... | |
double | timestep |
Save the timestep here. More... | |
std::vector< AtomNumber > | unique |
unique should be an ordered set since we later create a vector containing the corresponding indexes More... | |
std::vector< AtomNumber > | unique_local |
bool | unique_local_needs_update |
unique_local should be an ordered set since we later create a vector containing the corresponding indexes More... | |
double | update_from |
Update only after this time. More... | |
double | update_until |
Update only until this time. More... | |
std::vector< unsigned > | valsToForce |
std::vector< std::size_t > | value_depends |
std::vector< std::unique_ptr< Value > > | values |
An array containing the values for this action. More... | |
std::vector< Value * > | xpos |
Values that hold information about atom positions and charges. More... | |
std::vector< Value * > | ypos |
std::vector< Value * > | zpos |
|
inherited |
|
explicit |
|
virtual |
|
virtualinherited |
|
inlineinherited |
Are we running this command in a chain.
|
virtualinherited |
Set action to active.
|
privateinherited |
Add this action to the recursive chain.
|
inherited |
Add a value with a name like label.name.
|
virtualinherited |
Add a value with a name like label.name that has derivatives.
Reimplemented in PLMD::colvar::MultiColvarTemplate< T >.
|
inherited |
Specify that this Action depends on another one.
|
inlineprotected |
Add derivatives given the derative wrt to the input matrix element as input.
|
inlineprotected |
Add derivatives given the derivative wrt to the input vector element as input.
|
inlineinherited |
Add force to an atom.
|
inherited |
Add forces to arguments (used in apply)
|
privateinherited |
Add the gathered forces to the inputs across the whole chain.
|
inherited |
Add a value with the name label.
|
virtualinherited |
Add a value with the name label that has derivatives.
Reimplemented in PLMD::colvar::MultiColvarTemplate< T >.
|
virtualinherited |
Apply the forces on this data.
Implements PLMD::Action.
Reimplemented in PLMD::dimred::ProjectPoints, PLMD::gridtools::FunctionOfGrid< T >, and PLMD::colvar::RMSDVector.
|
inlinevirtualinherited |
Do we always need to do all the tasks for this action.
Reimplemented in PLMD::gridtools::KDE, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::volumes::ActionVolume, PLMD::contour::FindContour, and PLMD::function::FunctionOfVector< T >.
|
protectedinherited |
Check if the arguments of this action depend on thearg.
|
inlinevirtualinherited |
Before Update.
This is a special method that is called just before the update() method. It can be used by actions that want to do something irrespectively of the fact that update() is active or not. In other words, this is always called, even when action is not active.
Reimplemented in PLMD::generic::UpdateIf.
|
inlineinherited |
Takes one value and brings it back into the pbc of argument i.
|
privateinherited |
Send information to arguments that tasks are reduced in depedent actions.
|
protectedinherited |
This sets up the arguments at the start of the calculation.
|
overridevirtual |
Run the calculation.
Implements PLMD::Action.
|
inherited |
Numerical derivative routine to use when using Actions that inherit from BOTH ActionWithArguments and ActionAtomistic.
|
virtualinherited |
Used to calculate constant values in startup.
Reimplemented in PLMD::generic::Accumulate, and PLMD::generic::Collect.
|
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
|
overridevirtualinherited |
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::ActionAtomistic.
|
virtualinherited |
This is used to check if we run calculate during the update step.
Reimplemented in PLMD::generic::Accumulate, and PLMD::generic::Collect.
|
inlinevirtualinherited |
Check if we can be after another ActionWithVector.
Reimplemented in PLMD::adjmat::Neighbors.
|
privateinherited |
Check if this ation can reduce the number of tasks we perform.
|
inlinefinalvirtualnoexceptinherited |
Reimplemented from PLMD::Action.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::ActionForInterface.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::ActionShortcut.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::ActionToGetData.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::ActionToPutData.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::ActionWithArguments.
|
inlinefinalvirtualnoexceptinherited |
Reimplemented from PLMD::Action.
|
inlinevirtualnoexceptinherited |
Specialized casts, to make PlumedMain run faster.
Reimplemented in PLMD::ActionWithValue.
|
inlinefinalvirtualnoexceptinherited |
Specialized casts, to make PlumedMain run faster.
Reimplemented from PLMD::Action.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::ActionWithVirtualAtom.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::DomainDecomposition.
|
inlinevirtualnoexceptinherited |
Reimplemented in PLMD::PbcAction.
|
inherited |
Change the box shape.
|
privateinherited |
Check the chain for non scalar forces.
|
privateinherited |
Check if a force has been added on one of the components of this action.
|
inlinevirtualinherited |
Reimplemented in PLMD::colvar::ContactMap, and PLMD::piv::PIV.
|
inherited |
Check that this action does not depend on the action in the argument.
|
protectedinherited |
Accumulate the forces from the Values.
|
privateinherited |
Check if there are any grids in the stream.
|
overridevirtual |
Check if there are forces we need to account for on this task.
Reimplemented from PLMD::ActionWithVector.
|
inlinevirtualinherited |
Check if the action needs gradient.
Reimplemented in PLMD::bias::MetaD, PLMD::bias::PBMetaD, and PLMD::generic::DumpProjections.
|
inlinevirtualinherited |
Check if numerical derivatives should be performed.
Reimplemented in PLMD::ActionWithValue.
|
inlineoverridevirtualinherited |
Check if numerical derivatives should be used.
Reimplemented from PLMD::Action.
|
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
|
inlinevirtualinherited |
Check the status of the ith task.
Reimplemented in PLMD::gridtools::KDE, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::volumes::ActionVolume, and PLMD::contour::FindContour.
|
inherited |
Check if action should be updated.
|
inherited |
Cite a paper see PlumedMain::cite.
|
inherited |
Clear the dependence list for this Action.
|
overridevirtualinherited |
We override clearDerivatives here to prevent data in streams from being deleted.
Reimplemented from PLMD::ActionWithValue.
|
overridevirtualinherited |
We override clearInputForces here to ensure that forces are deleted from all values.
Reimplemented from PLMD::ActionWithValue.
|
private |
This is used to clear up the matrix elements.
|
virtualinherited |
|
inherited |
Set your value component to have no periodicity.
|
inherited |
Set the value to be periodic with a particular domain.
|
inherited |
Return a pointer to the value with name (this is used to retrieve values in other PLMD::Actions) You should NEVER use this routine to refer to the components of your PLMD::Action.
Use getPntrToComponent instead.
|
inherited |
Return a pointer to the value with this number (this is used to retrieve values in other PLMD::Actions) You should NEVER use this routine to refer to the components of your PLMD::Action.
Use getPntrToComponent instead.
|
inlinevirtualinherited |
Set action to inactive.
|
inlineinherited |
Takes the difference taking into account pbc for arg i.
|
inlinevirtualinherited |
Are we not calculating derivatives.
|
inlineinherited |
Skip atom forces - use with care.
If this function is called during initialization, then forces are not going to be propagated. Can be used for optimization.
|
inlineinherited |
Skip atom retrieval - use with care.
If this function is called during initialization, then atoms are not going to be retrieved. Can be used for optimization. Notice that calling getPosition(int) in an Action where DoNotRetrieve() was called might lead to undefined behavior.
|
inherited |
Crash calculation and print documentation.
|
inherited |
Check if a value with a particular name is present.
This is only used in PLMD::ActionWithArguments. You should not use it when manipulating components.
|
inherited |
Exit with error code c.
|
protectedinherited |
This changes the arg keyword in the pdb file.
|
inherited |
Closes a file opened with Action::fclose().
|
inherited |
Tell to the Action to flush open files.
|
virtual |
This is overwritten within ActionWithMatrix and is used to build the chain of just matrix actions.
Reimplemented from PLMD::ActionWithVector.
|
inherited |
This is to transfer data from the buffer to the final value.
|
inherited |
Opens a file.
This is similar to plain fopen, but with some extra functionality.
|
privateinherited |
Gather the values that we intend to store in the buffer.
|
privateinherited |
Gather the forces on non-scalar quantities.
|
overridevirtual |
This gathers the force on a particular value.
Reimplemented from PLMD::ActionWithVector.
|
overridevirtual |
Gather all the data from the MPI processes.
Reimplemented from PLMD::ActionWithVector.
|
overridevirtual |
Gather a row of the matrix.
Reimplemented from PLMD::ActionWithVector.
Reimplemented in PLMD::matrixtools::Voronoi.
|
overridevirtual |
Gather all the data from the threads.
Reimplemented from PLMD::ActionWithVector.
|
inlineinherited |
Get the absolute index of an atom.
|
inlinevirtualinherited |
Get the vector of absolute indexes.
|
privateinherited |
Work backwards through the chain to find an action that has either stored arguments or derivatives.
|
virtualinherited |
Get the additional tasks that are required here.
Reimplemented in PLMD::adjmat::AdjacencyMatrixBase, and PLMD::matrixtools::MatrixTimesMatrix.
|
inherited |
Get every the label of every value that is calculated in this chain.
|
overridevirtual |
This is overridden in ActionWithMatrix.
Reimplemented from PLMD::ActionWithVector.
|
inlineinherited |
Returns the value of an argument.
|
inlineprotected |
This returns the jelem th element of argument ic.
|
inlinevirtualinherited |
Returns an array of pointers to the arguments.
|
staticinherited |
This gets std::vector that contain the PLMD::Value objects that contain xpositions, ypositions, zpositions, masses and charges.
|
inlineinherited |
Get box shape.
|
inlineinherited |
Get charge of i-th atom.
|
privateinherited |
Return the index for the component named name.
|
inherited |
get a string that contains all the available components
|
inherited |
get a vector that contains the label for all the components
|
protectedinherited |
Get a const pointer to the ith component.
|
inherited |
Return true if we are doing at a checkpoint step.
|
inlineinherited |
Get the defaults.
|
inlineinherited |
Return dependencies.
|
inlineprotected |
This returns an element of a matrix that is passed an argument.
|
inlineinherited |
Get energy.
|
inherited |
Check if we are on an exchange step.
|
inherited |
|
inherited |
Return a pointer to the first action in the chain.
const ActionWithMatrix * PLMD::ActionWithMatrix::getFirstMatrixInChain | ( | ) | const |
Get the first matrix in this chain.
|
inlineinherited |
Get the force acting on a particular atom.
|
inlineprotectedinherited |
Get the forces to apply.
|
privateinherited |
Get the tasks that we need for forces.
|
inlineinherited |
Get position of i-th atom (access by absolute AtomNumber).
With direct access to the global atom array.
|
inherited |
Transfer the gradients.
|
protectedinherited |
Get the value of Boltzmann's constant.
|
inherited |
Get the value of kBT by either reading the TEMP keyword and multiplying the temperature by Boltzmann's constant or get it fro the MD code.
|
inherited |
Just read one of the keywords and return the whole thing as a string.
|
inlineinherited |
Returns the label.
|
protectedinherited |
Get the list of tasks that are active.
|
inlineinherited |
Get mass of i-th atom.
|
virtualinherited |
Get the titles to use for the columns of the matrix.
Reimplemented in PLMD::valtools::VStack, and PLMD::valtools::SelectWithMask.
|
inlineinherited |
Returns the name.
|
inlinevirtualinherited |
Returns the number of arguments.
|
inlineinherited |
Get number of available atoms.
|
pure virtual |
This should return the number of columns to help with sparse storage of matrices.
Implemented in PLMD::function::FunctionOfMatrix< T >, PLMD::matrixtools::MatrixTimesMatrix, PLMD::adjmat::AdjacencyMatrixBase, PLMD::crystdistrib::QuaternionBondProductMatrix, PLMD::matrixtools::OuterProduct, PLMD::valtools::VStack, PLMD::adjmat::TorsionsMatrix, PLMD::matrixtools::MatrixTimesVector, PLMD::adjmat::Neighbors, PLMD::crystdistrib::QuaternionProductMatrix, and PLMD::matrixtools::Voronoi.
|
inlineinherited |
Returns the number of values defined.
|
pure virtualinherited |
Implemented in PLMD::isdb::EMMI, PLMD::isdb::MetainferenceBase, PLMD::generic::FitToTemplate, PLMD::ves::Optimizer, PLMD::generic::Plumed, PLMD::metatensor::MetatensorPlumedAction, PLMD::contour::FindSphericalContour, PLMD::generic::Read, PLMD::contour::FindContourSurface, PLMD::clusters::ClusterDistribution, PLMD::gridtools::KDE, PLMD::fourier::FourierTransform, PLMD::Colvar, PLMD::generic::Constant, PLMD::gridtools::InterpolateGrid, PLMD::gridtools::ReadGridInSetup, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::dimred::ArrangePoints, PLMD::bias::Bias, PLMD::function::FunctionOfVector< T >, PLMD::contour::DistanceFromContourBase, PLMD::function::FunctionOfMatrix< T >, PLMD::gridtools::FindGridOptimum, PLMD::clusters::ClusterWeights, PLMD::opes::ExpansionCVs, PLMD::adjmat::AdjacencyMatrixBase, PLMD::vatom::ArgsToVatom, PLMD::ActionForInterface, PLMD::function::Function, PLMD::generic::Time, PLMD::valtools::Concatenate, PLMD::valtools::SelectWithMask, PLMD::clusters::ClusteringBase, PLMD::generic::CreateMask, PLMD::matrixtools::DiagonalizeMatrix, PLMD::matrixtools::InvertMatrix, PLMD::symfunc::ThreeBodyGFunctions, PLMD::valtools::Flatten, PLMD::landmarks::FarthestPointSampling, PLMD::mapping::GeometricPath, PLMD::valtools::VStack, PLMD::colvar::MultiColvarTemplate< T >, PLMD::colvar::RMSDVector, PLMD::adjmat::Neighbors, PLMD::gridtools::FunctionOfGrid< T >, PLMD::matrixtools::TransposeMatrix, PLMD::matrixtools::Voronoi, PLMD::refdist::MatrixProductDiagonal, PLMD::bias::ReweightBase, PLMD::contour::FindContour, PLMD::wham::Wham, PLMD::ActionWithVirtualAtom, PLMD::matrixtools::MatrixTimesMatrix, PLMD::volumes::ActionVolume, PLMD::dimred::ProjectPoints, PLMD::generic::Accumulate, PLMD::generic::Collect, PLMD::mapping::PathDisplacements, PLMD::crystdistrib::QuaternionBondProductMatrix, PLMD::generic::GatherReplicas, PLMD::matrixtools::MatrixTimesVector, PLMD::matrixtools::OuterProduct, PLMD::adjmat::TorsionsMatrix, and PLMD::crystdistrib::QuaternionProductMatrix.
|
privateinherited |
Get the number of stored values in the stream.
|
inherited |
Get the number of derivatives in the stream.
|
privateinherited |
Get the number of quantities in the stream.
|
virtualinherited |
Find out how many tasks we need to perform in this loop.
Reimplemented in PLMD::gridtools::KDE, PLMD::volumes::ActionVolume, and PLMD::contour::FindContour.
|
virtualinherited |
Get the description of this component.
Reimplemented in PLMD::generic::Read, PLMD::colvar::PropertyMap, PLMD::function::LocalEnsemble, PLMD::function::Ensemble, PLMD::function::FunctionOfVector< T >, PLMD::opes::ExpansionCVs, PLMD::function::FunctionOfScalar< T >, PLMD::colvar::ColvarFake, PLMD::matrixtools::MatrixTimesVector, PLMD::symfunc::ThreeBodyGFunctions, and PLMD::contour::FindContour.
|
inlineinherited |
Get the value with a specific name (N.B. if there is no such value this returns zero)
|
inlineinherited |
Get the value of one of the components of the PLMD::Action.
|
inlineinherited |
Return a pointer to specific argument.
|
protectedinherited |
Return a pointer to the value by name.
|
protectedinherited |
Return a pointer to the component by index.
|
inlineprotectedinherited |
Get a pointer to the default value.
|
inlineinherited |
Get position of i-th atom (access by relative index)
|
inlineinherited |
Get the array of all positions.
|
inherited |
Get the scalar product between the gradients of two variables.
|
inlineinherited |
Return true if we are doing a restart.
|
privateinherited |
Get the size of the buffer array that holds the data we are gathering over the MPI loop.
|
inherited |
Return the present timestep.
|
inherited |
Return the present time.
|
inherited |
Return the timestep.
|
private |
This is used to find the total amount of space we need for storing matrix elements.
|
inherited |
Get total number of atoms, including virtual ones.
Can be used to make a loop on modifyGlobalPosition or getGlobalPosition.
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |
Get the units that we are operating in.
|
protectedinherited |
Used to interpret whether this index is a virtual atom or a real atom.
|
inherited |
Get the virial that is acting.
|
inherited |
Check if there are any stored values in arguments.
|
staticinherited |
Convert a list of argument names into a list of pointers to the values.
|
staticinherited |
Convert a set of read in strings into an atom list (this is used in parseAtomList)
|
inherited |
Interpret the atom selection. Just a wrapper to the static function with four arguments called interpretAtomList that passes xpos and this.
|
inlineinherited |
Check if action is active.
|
inlinevirtual |
Reimplemented in PLMD::adjmat::AdjacencyMatrixBase.
|
inlinevirtualinherited |
Check if we are in a subchain.
Reimplemented in PLMD::volumes::ActionVolume, and PLMD::matrixtools::MatrixTimesVector.
|
inlineinherited |
Check if an option is on.
|
overridevirtualinherited |
Reimplemented from PLMD::ActionAtomistic.
|
inherited |
Make atoms whole, assuming they are in the proper order.
|
inlineprotected |
Does the matrix chain continue on from this action.
|
inlineinherited |
Get a reference to force on energy.
|
staticinherited |
Insist that numerical derivatives should always be used for an action and make this fact appear in the manual.
|
inherited |
Parse one keyword as generic type.
|
inherited |
Parse a numbered list of arguments.
|
inherited |
Parse a list of arguments.
|
inherited |
Parse an list of atom with a numbred keyword.
|
inherited |
Parse a list of atoms without a numbered keyword.
|
inherited |
Parse one keyword as boolean flag.
|
inherited |
Parse one numbered keyword as generic type.
|
inherited |
Parse a vector with a number.
|
inherited |
Parse one keyword as std::vector.
|
inherited |
Applies PBCs to a seriens of positions or distances.
|
inlineinherited |
Compute the pbc distance between two positions.
|
pure virtual |
This is the virtual that will do the calculation of the task for a particular matrix element.
Implemented in PLMD::function::FunctionOfMatrix< T >, PLMD::adjmat::AdjacencyMatrixBase, PLMD::matrixtools::MatrixTimesMatrix, PLMD::valtools::VStack, PLMD::crystdistrib::QuaternionBondProductMatrix, PLMD::matrixtools::MatrixTimesVector, PLMD::matrixtools::OuterProduct, PLMD::adjmat::TorsionsMatrix, PLMD::adjmat::Neighbors, PLMD::crystdistrib::QuaternionProductMatrix, and PLMD::matrixtools::Voronoi.
|
overridevirtual |
Run over one row of the matrix.
Implements PLMD::ActionWithVector.
|
overridevirtualinherited |
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 from PLMD::Action.
Reimplemented in PLMD::function::FunctionOfVector< T >, PLMD::function::FunctionOfMatrix< T >, PLMD::adjmat::AdjacencyMatrixBase, PLMD::matrixtools::MatrixTimesMatrix, PLMD::dimred::ProjectPoints, PLMD::matrixtools::MatrixTimesVector, PLMD::matrixtools::OuterProduct, PLMD::valtools::VStack, and PLMD::matrixtools::Voronoi.
|
overridevirtualinherited |
Read in an input file containing atom positions and calculate the action for the atomic configuration therin.
Reimplemented from PLMD::Action.
|
privateinherited |
This is used to build the argument store when we cannot use the chain.
|
static |
|
inherited |
Setup the dependencies.
|
inherited |
Request an array of atoms.
This method is used to ask for a list of atoms. Atoms should be asked for by number. If this routine is called during the simulation, atoms will be available at the next step MAYBE WE HAVE TO FIND SOMETHING MORE CLEAR FOR DYNAMIC LISTS OF ATOMS
|
inherited |
|
inherited |
Set the timestep that is stored in the action to the correct value.
|
overridevirtualinherited |
Reimplemented from PLMD::ActionAtomistic.
|
protectedinherited |
Run all the tasks in the list.
|
pure virtual |
This is the jobs that need to be done when we have run all the jobs in a row of the matrix.
Implemented in PLMD::adjmat::AdjacencyMatrixBase, PLMD::matrixtools::MatrixTimesMatrix, PLMD::valtools::VStack, PLMD::crystdistrib::QuaternionBondProductMatrix, PLMD::matrixtools::OuterProduct, PLMD::adjmat::TorsionsMatrix, PLMD::adjmat::Neighbors, PLMD::crystdistrib::QuaternionProductMatrix, PLMD::matrixtools::Voronoi, PLMD::function::FunctionOfMatrix< T >, and PLMD::matrixtools::MatrixTimesVector.
|
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.
|
inlineprotectedinherited |
Run all calculations in serial.
|
private |
This does the calculation of a particular matrix element.
|
protectedinherited |
|
inherited |
Add the forces to the atoms.
|
inherited |
Add the virial forces (span-like syntax)
|
inherited |
Add the virial forces.
|
inlineinherited |
Modify position of i-th atom (access by absolute AtomNumber).
|
inherited |
Get the gradient for this action.
|
virtualinherited |
Calculate the gradients and store them for all the values (need for projections)
Reimplemented in PLMD::ActionForInterface.
|
inherited |
Set your default value to have no periodicity.
|
virtualinherited |
|
inherited |
Set the value to be periodic with a particular domain.
|
inherited |
This calculates any values that are constant and ensures that we don't calculate these actions on every timestep.
|
pure virtual |
Implemented in PLMD::valtools::VStack, PLMD::matrixtools::Voronoi, PLMD::function::FunctionOfMatrix< T >, PLMD::matrixtools::MatrixTimesMatrix, PLMD::crystdistrib::QuaternionBondProductMatrix, PLMD::matrixtools::MatrixTimesVector, PLMD::matrixtools::OuterProduct, PLMD::adjmat::TorsionsMatrix, PLMD::adjmat::Neighbors, PLMD::crystdistrib::QuaternionProductMatrix, and PLMD::adjmat::AdjacencyMatrixBase.
|
overridevirtual |
This requires some thought.
Reimplemented from PLMD::ActionWithVector.
Reimplemented in PLMD::function::FunctionOfMatrix< T >.
|
inlineprotectedinherited |
Set the default value (the one without name)
|
inherited |
Set the value.
|
inlinevirtualinherited |
Can be used to reduce the number of tasks that are performed when you use an ation from elsewhere.
|
privateinherited |
Check if a particular task is active at this time.
|
private |
This transfers the non-zero elements to the Value.
|
virtualinherited |
Activate the calculation of derivatives.
Reimplemented in PLMD::isdb::EMMI, PLMD::isdb::MetainferenceBase, PLMD::generic::Read, PLMD::function::FunctionOfVector< T >, PLMD::function::FunctionOfMatrix< T >, PLMD::function::FunctionOfScalar< T >, PLMD::adjmat::Neighbors, PLMD::eds::EDS, and PLMD::fisst::FISST.
|
overridevirtualinherited |
Reimplemented from PLMD::ActionAtomistic.
|
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::isdb::CS2Backbone, PLMD::isdb::SAXS, PLMD::bias::PBMetaD, PLMD::ves::VesLinearExpansion, PLMD::isdb::Metainference, PLMD::opes::OPESmetad< mode >, PLMD::isdb::RDC, PLMD::ves::Optimizer, PLMD::gridtools::DumpGrid, PLMD::ves::TargetDistribution, PLMD::opes::OPESexpanded, PLMD::ves::VesDeltaF, PLMD::generic::Plumed, PLMD::bias::MaxEnt, PLMD::generic::DumpAtoms, PLMD::volumes::VolumeTetrapore, PLMD::volumes::VolumeCavity, PLMD::generic::EffectiveEnergyDrift, PLMD::bias::ExtendedLagrangian, PLMD::ves::OutputFesBias, PLMD::isdb::JCoupling, PLMD::generic::Read, PLMD::generic::DumpMassCharge, PLMD::generic::Print, PLMD::isdb::PRE, PLMD::isdb::NOE, PLMD::generic::Flush, PLMD::generic::DumpDerivatives, PLMD::generic::DumpForces, PLMD::generic::DumpPDB, PLMD::generic::DumpProjections, PLMD::generic::PrintNDX, PLMD::generic::Accumulate, PLMD::generic::Collect, PLMD::generic::DumpVector, PLMD::contour::DumpContour, PLMD::logmfd::LogMFD, PLMD::eds::EDS, PLMD::fisst::FISST, PLMD::mapping::PathReparameterization, and PLMD::mapping::PathDisplacements.
|
inlinevirtualinherited |
This is used to ensure that all indices are updated when you do local average.
Reimplemented in PLMD::matrixtools::MatrixTimesVector.
|
private |
Update all the neighbour lists in the chain.
|
virtualinherited |
Get the force tasks that are active for this action.
Reimplemented in PLMD::gridtools::KDE.
|
inlinevirtual |
This is overwritten in Adjacency matrix where we have a neighbour list.
Reimplemented in PLMD::adjmat::AdjacencyMatrixBase.
|
protectedinherited |
This updates whether or not we are using all the task reduction stuff.
|
privateinherited |
Turn on task reduction flag in dependent actions.
|
privateinherited |
|
staticinherited |
The components in the action will depend on the user.
|
inlineinherited |
This forces the class to use numerical derivatives.
|
protectedinherited |
Are we using natural units.
|
inherited |
Issue a warning.
|
virtualinherited |
Get the info on what to calculate.
Reimplemented in PLMD::generic::Print, PLMD::adjmat::ContactMatrix, PLMD::function::FunctionOfVector< T >, PLMD::function::FunctionOfMatrix< T >, PLMD::generic::PrintNDX, PLMD::function::FunctionOfScalar< T >, and PLMD::gridtools::FunctionOfGrid< T >.
|
privateinherited |
Actions that must be done after this one.
|
privateinherited |
Action that must be done before this one.
|
privateinherited |
Switch to activate Action on this step.
|
privateinherited |
The list of active tasks.
|
privateinherited |
Actions on which this Action depends.
|
protectedinherited |
A vector that contains the start point for the argument derivatives.
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
Were the atoms retrieved in some earlier action.
|
privateinherited |
|
privateinherited |
The buffer that we use (we keep a copy here to avoid resizing)
|
privateinherited |
|
protectedinherited |
|
privateinherited |
|
protected |
This turns off derivative clearing for contact matrix if we are not storing derivatives.
|
inherited |
|
privateinherited |
The set of default arguments that we are using.
|
privateinherited |
|
protectedinherited |
Assert if this action is part of a chain.
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
inherited |
|
privateinherited |
This finishes setup on first step to check if actions are calculated during update.
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
A vector that is used to hold the forces that we will apply on the input quantities.
|
privateinherited |
|
inherited |
|
privateinherited |
Label of the Action, as set with LABEL= in the plumed.dat file.
|
privateinherited |
Directive line.
This line is progressively erased during Action construction so as to check if all the present keywords are correct.
|
privateinherited |
|
privateinherited |
|
inherited |
Reference to the log stream.
|
privateinherited |
|
protectedinherited |
|
privateinherited |
|
private |
This holds the bookeeping arrays for sparse matrices.
|
private |
|
private |
|
inherited |
|
privateinherited |
Name of the directive in the plumed.dat file.
|
privateinherited |
|
privateinherited |
This is turned on if there is some action that needs all the tasks.
|
private |
|
privateinherited |
Are we skipping the calculation of the derivatives.
|
privateinherited |
Are we using numerical derivatives to differentiate.
|
privateinherited |
Option that you might have enabled.
|
privateinherited |
|
inherited |
Reference to main plumed object.
|
privateinherited |
|
privateinherited |
Are we allowed to reduce the number of tasks being performed.
|
privateinherited |
|
privateinherited |
|
privateinherited |
Is the calculation to be done in serial.
|
privateinherited |
This is the list of actions that control the tasks that we do here.
|
privateinherited |
Save the timestep here.
|
privateinherited |
unique should be an ordered set since we later create a vector containing the corresponding indexes
|
privateinherited |
|
privateinherited |
unique_local should be an ordered set since we later create a vector containing the corresponding indexes
|
privateinherited |
Update only after this time.
|
privateinherited |
Update only until this time.
|
privateinherited |
|
privateinherited |
|
privateinherited |
An array containing the values for this action.
|
privateinherited |
Values that hold information about atom positions and charges.
|
privateinherited |
|
privateinherited |
Hosted by GitHub | 1.8.17 |