Loading...
Searching...
No Matches
PLMD Namespace Reference

Namespaces

namespace  adjmat
namespace  analysis
namespace  bias
namespace  blas
namespace  cltools
namespace  colvar
namespace  config
namespace  crystallization
namespace  dimred
namespace  drr
namespace  eds
namespace  fisst
namespace  function
namespace  funnel
namespace  generic
namespace  gridtools
namespace  h36
 Tiny namespace for hybrid36 format.
namespace  isdb
namespace  lapack
namespace  lepton
namespace  logmfd
namespace  manyrestraints
namespace  mapping
namespace  maze
namespace  membranefusion
namespace  molfile
namespace  multicolvar
namespace  opes
namespace  pamm
namespace  piv
namespace  s2cm
namespace  sasa
namespace  secondarystructure
namespace  setup
namespace  vatom
namespace  ves
namespace  vesselbase
namespace  xdrfile

Classes

class  Action
 Base class for all the input Actions. More...
class  ActionAnyorder
 Action used to create a PLMD::Action that can go both before and after ActionSetup actions. More...
class  ActionAtomistic
 Action used to create objects that access the positions of the atoms from the MD code. More...
class  ActionOptions
 This class is used to bring the relevant information to the Action constructor. More...
class  ActionPilot
 This is used to create PLMD::Action objects that are run with some set frequency. More...
class  ActionRegister
 Register holding all the allowed keywords. More...
class  ActionSet
 std::vector containing the sequence of Action to be done. More...
class  ActionSetup
 Action used to create a PLMD::Action that do something during setup only e.g. More...
class  ActionShortcut
 Action used to create a command that expands to multiple PLMD::Action commands when read in during input. More...
class  ActionWithArguments
 This is used to create PLMD::Action objects that take the output from some other Action as input. More...
class  ActionWithValue
 Used to create a PLMD::Action that has some scalar or vectorial output that may or may not have some derivatives. More...
class  ActionWithVirtualAtom
 Inherit from here if you are calculating the position of a virtual atom (eg a center of mass). More...
class  Angle
 Class to compute angles. More...
class  ArgumentOnlyDistance
class  AtomNumber
 Simple class to store the index of an atom. More...
class  Atoms
 Class containing atom related quantities from the MD code. More...
class  BiasRepresentation
 this class implements a general purpose class that aims to provide a Grid/list transparently add gaussians to a bias More...
class  BiasWeight
class  Brent1DRootSearch
 A class for doing parabolic interpolation and minimisation of 1D functions using Brent's method. More...
class  Citations
 Class taking care of bibliography. More...
class  CLTool
 This is the abstract base class to use for implementing new command line tool, within it there is information as to how to go about implemneting a new tool. More...
class  CLToolMain
 Class providing cmd() access to command line tools. More...
class  CLToolOptions
class  CLToolRegister
 Same as ActionRegister, but for CLTools. More...
class  Colvar
 This is the abstract base class to use for implementing new collective variables, within it there is information as to how to go about implementing a new CV. More...
class  Communicator
 Class containing wrappers to MPI. More...
class  ConjugateGradient
class  DataFetchingObject
class  DataFetchingObjectTyped
class  Direction
class  DLLoader
 Class taking care of dynamic loading. More...
class  DotProductDistance
class  DRMSD
class  DynamicList
 A class for storing a list that changes which members are active as a function of time. More...
class  ERMSD
 A class that implements ERMSD calculations. More...
class  EuclideanDistance
class  Exception
 Class to deal with Plumed runtime errors. More...
class  ExceptionDebug
 Class representing a debug error (can only be thrown when using debug options). More...
class  ExceptionError
 Class representing a generic error. More...
class  ExceptionTypeError
 Class representing a type error in the PLMD::Plumed interface. More...
class  ExchangePatterns
class  F1dim
class  FakeFrame
class  FileBase
 Base class for dealing with files. More...
class  FlexibleBin
class  ForwardDecl
 Utility class for forward declaration of references. More...
class  GenericMolInfo
class  GREX
class  Grid
class  GridBase
class  HistogramBead
 A class for calculating whether or not values are within a given range using : \( \sum_i \int_a^b G( s_i, \sigma*(b-a) ) \). More...
class  IFile
 Class for input files. More...
class  IntermolecularDRMSD
class  IntramolecularDRMSD
class  KernelFunctions
class  Keywords
 This class holds the keywords and their documentation. More...
class  LatticeReduction
 Class implementing algorithms for lattice reduction. More...
class  LinkCells
 A class for doing link cells. More...
class  Log
 Class containing the log stream. More...
class  LoopUnroller
 Utiliy class for loop unrolling. More...
class  MahalanobisDistance
class  Matrix
 This class stores a full matrix and allows one to do some simple matrix operations. More...
class  MatrixSquareBracketsAccess
 Utility class to add [][] access. More...
class  MDAtomsBase
 Class containing interface to MDAtomsTyped. More...
class  MDAtomsTyped
 Class containing the pointers to the MD data It is templated so that single and double precision versions coexist IT IS STILL UNDOCUMENTED. More...
class  MetricRegister
class  Minimise1DBrent
 A class for doing parabolic interpolation and minimisation of 1D functions using Brent's method. More...
class  MinimiseBase
class  MolDataClass
 This class provides information on various kinds of molecules for instance the kinds of residues that are in a protein the atoms involved in the backbone of a particular residue etc. More...
class  MPI_Comm
 Surrogate of MPI_Comm when MPI library is not available. More...
class  MPI_Datatype
 Surrogate of MPI_Datatype when MPI library is not available. More...
class  MPI_Request
 Surrogate of MPI_Request when MPI library is not available. More...
class  MPI_Status
 Surrogate of MPI_Status when MPI library is not available. More...
class  MultiDomainRMSD
class  MultiValue
class  NeighborList
 A class that implements neighbor lists from two lists or a single list of atoms. More...
class  NormalizedEuclideanDistance
class  OFile
 Class for output files. More...
class  OpenMP
struct  OpenMPVars
class  OptimalRMSD
class  Pbc
class  PDB
 Minimalistic pdb parser. More...
class  PlumedHandle
 Tiny local class to load a PLUMED kernel. More...
class  PlumedMain
 Main plumed object. More...
class  ProbWeight
class  Random
class  ReferenceArguments
 In many applications (e.g. More...
class  ReferenceAtoms
 In many applications (e.g. More...
class  ReferenceConfiguration
 Abstract base class for calculating the distance from a reference configuration. More...
class  ReferenceConfigurationOptions
class  ReferenceValuePack
class  RMSD
 A class that implements RMSD calculations This is a class that implements the various infrastructure to calculate the RMSD or MSD respect a given frame. More...
class  RMSDBase
class  RMSDCoreData
 this is a class which is needed to share information across the various non-threadsafe routines so that the public function of rmsd are threadsafe while the inner core can safely share information More...
class  RootFindingBase
class  SimpleRMSD
class  SingleDomainRMSD
class  SparseGrid
class  Stopwatch
class  Subprocess
 Class managing a subprocess. More...
class  SubprocessPid
 Small utility class, used to avoid inclusion of unistd.h> in a header file. More...
class  SwitchingFunction
 Small class to compute switching functions. More...
class  TargetDist
class  TensorGeneric
 Class implementing fixed size matrices of doubles. More...
class  TensorGenericAux
 Small class to contain local utilities. More...
class  Tools
 Empty class which just contains several (static) tools. More...
class  Torsion
 Class to compute torsional angles. More...
class  Tree
class  TypesafePtr
 Class to deal with propoagation of typesafe pointers. More...
class  Units
 Small utility class that contains information about units. More...
class  Value
 A class for holding the value of a function together with its derivatives. More...
class  VectorGeneric
 Class implementing fixed size vectors of doubles. More...
class  WeightBase
class  WithCmd
 Base for classes with cmd() method. More...

Typedefs

typedef Tensor3d Tensor
typedef TensorGeneric< 1, 1 > Tensor1d
typedef TensorGeneric< 2, 2 > Tensor2d
typedef TensorGeneric< 3, 3 > Tensor3d
typedef TensorGeneric< 4, 4 > Tensor4d
typedef TensorGeneric< 5, 5 > Tensor5d
typedef Vector3d Vector
 Alias for three dimensional vectors.
typedef VectorGeneric< 1 > Vector1d
 Alias for one dimensional vectors.
typedef VectorGeneric< 2 > Vector2d
 Alias for two dimensional vectors.
typedef VectorGeneric< 3 > Vector3d
 Alias for three dimensional vectors.
typedef VectorGeneric< 4 > Vector4d
 Alias for four dimensional vectors.
typedef VectorGeneric< 5 > Vector5d
 Alias for five dimensional vectors.

Functions

ActionRegisteractionRegister ()
ActionRegisteractionRegister ()
 Function returning a reference to the ActionRegister.
void add (const Value &val1, Value *val2)
template<typename T>
void chol_elsolve (const Matrix< T > &M, const std::vector< T > &b, std::vector< T > &y)
template<typename T>
void cholesky (const Matrix< T > &A, Matrix< T > &B)
CLToolRegistercltoolRegister ()
CLToolRegistercltoolRegister ()
 Function returning a reference to the CLToolRegister.
void copy (const Value &val1, Value &val2)
void copy (const Value &val1, Value *val2)
VectorGeneric< 3 > crossProduct (const VectorGeneric< 3 > &v1, const VectorGeneric< 3 > &v2)
TensorGeneric< 3, 3 > dcrossDv1 (const VectorGeneric< 3 > &v1, const VectorGeneric< 3 > &v2)
TensorGeneric< 3, 3 > dcrossDv2 (const VectorGeneric< 3 > &v1, const VectorGeneric< 3 > &v2)
template<unsigned n>
VectorGeneric< n > delta (const VectorGeneric< n > &v1, const VectorGeneric< n > &v2)
TensorGeneric< 3, 3 > deriNorm (const VectorGeneric< 3 > &v1, const TensorGeneric< 3, 3 > &v2)
double determinant (const TensorGeneric< 3, 3 > &t)
template<typename T>
int diagMat (const Matrix< T > &A, std::vector< double > &eigenvals, Matrix< double > &eigenvecs)
template<unsigned n, unsigned m>
void diagMatSym (const TensorGeneric< n, n > &mat, VectorGeneric< m > &evals, TensorGeneric< m, n > &evec)
double distance (const Pbc &pbc, const std::vector< Value * > &vals, ReferenceConfiguration *ref1, ReferenceConfiguration *ref2, const bool &squared)
template<typename T>
dotProduct (const std::vector< T > &A, const std::vector< T > &B)
 Calculate the dot product between two vectors.
template<unsigned n>
double dotProduct (const VectorGeneric< n > &v1, const VectorGeneric< n > &v2)
const double dp2cutoff (6.25)
static bool dp2cutoffNoStretch ()
const double epsilon (std::numeric_limits< double >::epsilon())
 Very small non-zero number.
template<unsigned n, unsigned m>
TensorGeneric< n, m > extProduct (const VectorGeneric< n > &v1, const VectorGeneric< m > &v2)
static const char * getenvForceUnique () noexcept
 Use unique list of atoms to manipulate forces and positions.
static bool getenvMergeVectorsPriorityQueue () noexcept
 Use a priority_queue to merge unique vectors.
const std::map< std::string, std::string > & getModuleMap ()
static OpenMPVarsgetOpenMPVars ()
template<typename T>
static void getPointers (const TypesafePtr &p, const TypesafePtr &px, const TypesafePtr &py, const TypesafePtr &pz, unsigned maxel, T *&ppx, T *&ppy, T *&ppz, unsigned &stride)
bool indexed_lt (std::pair< Grid::index_t, double > const &x, std::pair< Grid::index_t, double > const &y)
TensorGeneric< 3, 3 > inverse (const TensorGeneric< 3, 3 > &t)
template<typename T>
int Invert (const Matrix< T > &A, Matrix< double > &inverse)
static bool isZero (const ExpressionTreeNode &node)
const double kBoltzmann (0.0083144621)
 Boltzman constant in kj/K.
template<typename T>
int logdet (const Matrix< T > &M, double &ldet)
template<unsigned n, unsigned m, unsigned l>
TensorGeneric< n, l > matmul (const TensorGeneric< n, m > &a, const TensorGeneric< m, l > &b)
template<unsigned n, unsigned m, unsigned l, unsigned i>
TensorGeneric< n, i > matmul (const TensorGeneric< n, m > &a, const TensorGeneric< m, l > &b, const TensorGeneric< l, i > &c)
template<unsigned n, unsigned m, unsigned l>
VectorGeneric< n > matmul (const TensorGeneric< n, m > &a, const TensorGeneric< m, l > &b, const VectorGeneric< l > &c)
template<unsigned n, unsigned m>
VectorGeneric< n > matmul (const TensorGeneric< n, m > &a, const VectorGeneric< m > &b)
template<unsigned n, unsigned m>
VectorGeneric< n > matmul (const VectorGeneric< m > &a, const TensorGeneric< m, n > &b)
template<unsigned n, unsigned m, unsigned l>
VectorGeneric< l > matmul (const VectorGeneric< n > &a, const TensorGeneric< n, m > &b, const TensorGeneric< m, l > &c)
template<unsigned n, unsigned m>
double matmul (const VectorGeneric< n > &a, const TensorGeneric< n, m > &b, const VectorGeneric< m > &c)
template<unsigned n_>
double matmul (const VectorGeneric< n_ > &a, const VectorGeneric< n_ > &b)
template<typename T>
void matrixOut (Log &ostr, const Matrix< T > &mat)
MetricRegistermetricRegister ()
template<unsigned n>
double modulo (const VectorGeneric< n > &v)
template<unsigned n>
double modulo2 (const VectorGeneric< n > &v)
template<typename U>
void mpi_gatherActiveMembers (Communicator &comm, std::vector< DynamicList< U > > &ll)
template<typename T>
void mult (const Matrix< T > &A, const Matrix< T > &B, Matrix< T > &C)
template<typename T>
void mult (const Matrix< T > &A, const std::vector< T > &B, std::vector< T > &C)
template<typename T>
void mult (const std::vector< T > &A, const Matrix< T > &B, std::vector< T > &C)
template<typename T>
norm (const std::vector< T > &A)
 Calculate the dot product between a vector and itself.
bool operator!= (const AtomNumber &a, const AtomNumber &b)
template<unsigned n, unsigned m>
TensorGeneric< n, m > operator* (const TensorGeneric< n, m > &t1, double s)
template<unsigned n>
VectorGeneric< n > operator* (const VectorGeneric< n > &v, double s)
template<unsigned n, unsigned m>
TensorGeneric< n, m > operator* (double s, const TensorGeneric< n, m > &t1)
template<unsigned n>
VectorGeneric< n > operator* (double s, const VectorGeneric< n > &v)
template<typename T>
Matrix< T > operator* (T &v, const Matrix< T > &m)
 Multiply matrix by scalar.
template<unsigned n, unsigned m>
TensorGeneric< n, m > operator+ (const TensorGeneric< n, m > &t1, const TensorGeneric< n, m > &t2)
template<unsigned n>
VectorGeneric< n > operator+ (const VectorGeneric< n > &v1, const VectorGeneric< n > &v2)
template<unsigned n, unsigned m>
TensorGeneric< n, m > operator- (const TensorGeneric< n, m > &t1, const TensorGeneric< n, m > &t2)
template<unsigned n>
VectorGeneric< n > operator- (const VectorGeneric< n > &v1, const VectorGeneric< n > &v2)
template<unsigned n, unsigned m>
TensorGeneric< n, m > operator/ (const TensorGeneric< n, m > &t1, double s)
template<unsigned n>
VectorGeneric< n > operator/ (const VectorGeneric< n > &v, double s)
bool operator< (const AtomNumber &a, const AtomNumber &b)
template<typename T>
Logoperator<< (Log &ostr, const Matrix< T > &mat)
Logoperator<< (Log &ostr, const PDB &pdb)
template<class T>
OFileoperator<< (OFile &of, const T &t)
 Write using << syntax.
std::ostream & operator<< (std::ostream &log, const ActionRegister &ar)
std::ostream & operator<< (std::ostream &log, const Citations &cit)
std::ostream & operator<< (std::ostream &log, const CLToolRegister &ar)
std::ostream & operator<< (std::ostream &os, const Stopwatch &sw)
template<unsigned n, unsigned m>
std::ostream & operator<< (std::ostream &os, const TensorGeneric< n, m > &t)
template<unsigned n>
std::ostream & operator<< (std::ostream &os, const VectorGeneric< n > &v)
template<class T>
Subprocessoperator<< (Subprocess &ep, const T &t)
bool operator<= (const AtomNumber &a, const AtomNumber &b)
bool operator== (const AtomNumber &a, const AtomNumber &b)
bool operator> (const AtomNumber &a, const AtomNumber &b)
bool operator>= (const AtomNumber &a, const AtomNumber &b)
const double pi (3.141592653589793238462643383279502884197169399375105820974944592307)
 PI.
void product (const Value &val1, const Value &val2, Value &valout)
template<typename T>
int pseudoInvert (const Matrix< T > &A, Matrix< double > &pseudoinverse)
void quotient (const Value &val1, const Value &val2, Value *valout)
static const std::string & StopwatchEmptyString () noexcept
 Return an empty string.
static bool SubprocessPidGetenvSignals () noexcept
 Retrieve PLUMED_ENABLE_SIGNALS.
static void testThrow (const char *what)
 Small utility just used in this file to throw arbitrary exceptions.
template<typename T>
void transpose (const Matrix< T > &A, Matrix< T > &AT)
template<unsigned n, unsigned m>
TensorGeneric< n, m > transpose (const TensorGeneric< m, n > &t)
template<class T>
std::size_t typesafePtrSizeof ()
template<>
std::size_t typesafePtrSizeof< const void > ()
template<>
std::size_t typesafePtrSizeof< void > ()
static bool typesafePtrSkipCheck ()
TensorGeneric< 3, 3 > VcrossTensor (const TensorGeneric< 3, 3 > &v2, const VectorGeneric< 3 > &v1)
TensorGeneric< 3, 3 > VcrossTensor (const VectorGeneric< 3 > &v1, const TensorGeneric< 3, 3 > &v2)

Variables

const double dp2cutoffA =1.00193418799744762399
const double dp2cutoffB =-.00193418799744762399
const double epsilon =1e-14
static const bool shareMassAndChargeOnlyAtFirstStep =true
 We assume that charges and masses are constant along the simulation Set this to false if you want to revert to the original (expensive) behavior.

Function Documentation

◆ actionRegister() [1/2]

ActionRegister & PLMD::actionRegister ( )
related

◆ add()

void PLMD::add ( const Value & val1,
Value * val2 )

◆ chol_elsolve()

template<typename T>
void PLMD::chol_elsolve ( const Matrix< T > & M,
const std::vector< T > & b,
std::vector< T > & y )

◆ cholesky()

template<typename T>
void PLMD::cholesky ( const Matrix< T > & A,
Matrix< T > & B )

◆ cltoolRegister() [1/2]

CLToolRegister & PLMD::cltoolRegister ( )
related

◆ copy() [1/2]

void PLMD::copy ( const Value & val1,
Value & val2 )

◆ copy() [2/2]

void PLMD::copy ( const Value & val1,
Value * val2 )

◆ crossProduct()

VectorGeneric< 3 > PLMD::crossProduct ( const VectorGeneric< 3 > & v1,
const VectorGeneric< 3 > & v2 )
inline

v2 Only available for size 3

◆ dcrossDv1()

TensorGeneric< 3, 3 > PLMD::dcrossDv1 ( const VectorGeneric< 3 > & v1,
const VectorGeneric< 3 > & v2 )
inline

◆ dcrossDv2()

TensorGeneric< 3, 3 > PLMD::dcrossDv2 ( const VectorGeneric< 3 > & v1,
const VectorGeneric< 3 > & v2 )
inline

◆ delta()

template<unsigned n>
VectorGeneric< n > PLMD::delta ( const VectorGeneric< n > & v1,
const VectorGeneric< n > & v2 )

◆ deriNorm()

TensorGeneric< 3, 3 > PLMD::deriNorm ( const VectorGeneric< 3 > & v1,
const TensorGeneric< 3, 3 > & v2 )
inline

◆ determinant()

double PLMD::determinant ( const TensorGeneric< 3, 3 > & t)
inline

◆ diagMat()

template<typename T>
int PLMD::diagMat ( const Matrix< T > & A,
std::vector< double > & eigenvals,
Matrix< double > & eigenvecs )

◆ diagMatSym()

template<unsigned n, unsigned m>
void PLMD::diagMatSym ( const TensorGeneric< n, n > & mat,
VectorGeneric< m > & evals,
TensorGeneric< m, n > & evec )

◆ distance()

double PLMD::distance ( const Pbc & pbc,
const std::vector< Value * > & vals,
ReferenceConfiguration * ref1,
ReferenceConfiguration * ref2,
const bool & squared )

◆ dotProduct() [1/2]

template<typename T>
T PLMD::dotProduct ( const std::vector< T > & A,
const std::vector< T > & B )

Calculate the dot product between two vectors.

◆ dotProduct() [2/2]

template<unsigned n>
double PLMD::dotProduct ( const VectorGeneric< n > & v1,
const VectorGeneric< n > & v2 )

◆ dp2cutoff()

const double PLMD::dp2cutoff ( 6. 25)

◆ dp2cutoffNoStretch()

bool PLMD::dp2cutoffNoStretch ( )
inlinestatic

◆ extProduct()

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::extProduct ( const VectorGeneric< n > & v1,
const VectorGeneric< m > & v2 )

◆ getenvForceUnique()

const char * PLMD::getenvForceUnique ( )
staticnoexcept

Use unique list of atoms to manipulate forces and positions.

A unique list of atoms is used to manipulate forces and positions in MPI parallel runs. In serial runs, this is done if convenient. The code currently contain some heuristic to decide if the unique list should be used or not. An env var can be used to override this decision. export PLUMED_FORCE_UNIQUE=yes # enforce using the unique list in serial runs export PLUMED_FORCE_UNIQUE=no # enforce not using the unique list in serial runs export PLUMED_FORCE_UNIQUE=auto # choose heuristically default: auto

◆ getenvMergeVectorsPriorityQueue()

bool PLMD::getenvMergeVectorsPriorityQueue ( )
staticnoexcept

Use a priority_queue to merge unique vectors.

export PLUMED_MERGE_VECTORS_PRIORITY_QUEUE=yes to use a priority_queue. Might be faster with some settings, but appears to not be in practice. This option is for testing and might be removed.

◆ getModuleMap()

const std::map< std::string, std::string > & PLMD::getModuleMap ( )

◆ getOpenMPVars()

OpenMPVars & PLMD::getOpenMPVars ( )
static

◆ getPointers()

template<typename T>
void PLMD::getPointers ( const TypesafePtr & p,
const TypesafePtr & px,
const TypesafePtr & py,
const TypesafePtr & pz,
unsigned maxel,
T *& ppx,
T *& ppy,
T *& ppz,
unsigned & stride )
static

◆ indexed_lt()

bool PLMD::indexed_lt ( std::pair< Grid::index_t, double > const & x,
std::pair< Grid::index_t, double > const & y )

◆ inverse()

TensorGeneric< 3, 3 > PLMD::inverse ( const TensorGeneric< 3, 3 > & t)
inline

◆ Invert()

template<typename T>
int PLMD::Invert ( const Matrix< T > & A,
Matrix< double > & inverse )

◆ isZero()

bool PLMD::isZero ( const ExpressionTreeNode & node)
static

◆ logdet()

template<typename T>
int PLMD::logdet ( const Matrix< T > & M,
double & ldet )

◆ matmul() [1/8]

template<unsigned n, unsigned m, unsigned l>
TensorGeneric< n, l > PLMD::matmul ( const TensorGeneric< n, m > & a,
const TensorGeneric< m, l > & b )

◆ matmul() [2/8]

template<unsigned n, unsigned m, unsigned l, unsigned i>
TensorGeneric< n, i > PLMD::matmul ( const TensorGeneric< n, m > & a,
const TensorGeneric< m, l > & b,
const TensorGeneric< l, i > & c )

◆ matmul() [3/8]

template<unsigned n, unsigned m, unsigned l>
VectorGeneric< n > PLMD::matmul ( const TensorGeneric< n, m > & a,
const TensorGeneric< m, l > & b,
const VectorGeneric< l > & c )

◆ matmul() [4/8]

template<unsigned n, unsigned m>
VectorGeneric< n > PLMD::matmul ( const TensorGeneric< n, m > & a,
const VectorGeneric< m > & b )

◆ matmul() [5/8]

template<unsigned n, unsigned m>
VectorGeneric< n > PLMD::matmul ( const VectorGeneric< m > & a,
const TensorGeneric< m, n > & b )

◆ matmul() [6/8]

template<unsigned n, unsigned m, unsigned l>
VectorGeneric< l > PLMD::matmul ( const VectorGeneric< n > & a,
const TensorGeneric< n, m > & b,
const TensorGeneric< m, l > & c )

◆ matmul() [7/8]

template<unsigned n, unsigned m>
double PLMD::matmul ( const VectorGeneric< n > & a,
const TensorGeneric< n, m > & b,
const VectorGeneric< m > & c )

◆ matmul() [8/8]

template<unsigned n_>
double PLMD::matmul ( const VectorGeneric< n_ > & a,
const VectorGeneric< n_ > & b )

◆ matrixOut()

template<typename T>
void PLMD::matrixOut ( Log & ostr,
const Matrix< T > & mat )

◆ metricRegister()

MetricRegister & PLMD::metricRegister ( )

◆ modulo()

template<unsigned n>
double PLMD::modulo ( const VectorGeneric< n > & v)

◆ modulo2()

template<unsigned n>
double PLMD::modulo2 ( const VectorGeneric< n > & v)

◆ mpi_gatherActiveMembers()

template<typename U>
void PLMD::mpi_gatherActiveMembers ( Communicator & comm,
std::vector< DynamicList< U > > & ll )

◆ mult() [1/3]

template<typename T>
void PLMD::mult ( const Matrix< T > & A,
const Matrix< T > & B,
Matrix< T > & C )

◆ mult() [2/3]

template<typename T>
void PLMD::mult ( const Matrix< T > & A,
const std::vector< T > & B,
std::vector< T > & C )

◆ mult() [3/3]

template<typename T>
void PLMD::mult ( const std::vector< T > & A,
const Matrix< T > & B,
std::vector< T > & C )

◆ norm()

template<typename T>
T PLMD::norm ( const std::vector< T > & A)

Calculate the dot product between a vector and itself.

◆ operator!=()

bool PLMD::operator!= ( const AtomNumber & a,
const AtomNumber & b )
inline

◆ operator*() [1/5]

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator* ( const TensorGeneric< n, m > & t1,
double s )

◆ operator*() [2/5]

template<unsigned n>
VectorGeneric< n > PLMD::operator* ( const VectorGeneric< n > & v,
double s )

◆ operator*() [3/5]

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator* ( double s,
const TensorGeneric< n, m > & t1 )

◆ operator*() [4/5]

template<unsigned n>
VectorGeneric< n > PLMD::operator* ( double s,
const VectorGeneric< n > & v )

◆ operator*() [5/5]

template<typename T>
Matrix< T > PLMD::operator* ( T & v,
const Matrix< T > & m )

Multiply matrix by scalar.

◆ operator+() [1/2]

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator+ ( const TensorGeneric< n, m > & t1,
const TensorGeneric< n, m > & t2 )

◆ operator+() [2/2]

template<unsigned n>
VectorGeneric< n > PLMD::operator+ ( const VectorGeneric< n > & v1,
const VectorGeneric< n > & v2 )

◆ operator-() [1/2]

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator- ( const TensorGeneric< n, m > & t1,
const TensorGeneric< n, m > & t2 )

◆ operator-() [2/2]

template<unsigned n>
VectorGeneric< n > PLMD::operator- ( const VectorGeneric< n > & v1,
const VectorGeneric< n > & v2 )

◆ operator/() [1/2]

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::operator/ ( const TensorGeneric< n, m > & t1,
double s )

◆ operator/() [2/2]

template<unsigned n>
VectorGeneric< n > PLMD::operator/ ( const VectorGeneric< n > & v,
double s )

◆ operator<()

bool PLMD::operator< ( const AtomNumber & a,
const AtomNumber & b )
inline

◆ operator<<() [1/10]

template<typename T>
Log & PLMD::operator<< ( Log & ostr,
const Matrix< T > & mat )

◆ operator<<() [2/10]

Log & PLMD::operator<< ( Log & ostr,
const PDB & pdb )

◆ operator<<() [3/10]

template<class T>
OFile & PLMD::operator<< ( OFile & of,
const T & t )

Write using << syntax.

Formatted output with << operator.

◆ operator<<() [4/10]

std::ostream & PLMD::operator<< ( std::ostream & log,
const ActionRegister & ar )

◆ operator<<() [5/10]

std::ostream & PLMD::operator<< ( std::ostream & log,
const Citations & cit )

It writes on the ostream the list of all the bibliographic items prefixed with their reference number

◆ operator<<() [6/10]

std::ostream & PLMD::operator<< ( std::ostream & log,
const CLToolRegister & ar )

◆ operator<<() [7/10]

std::ostream & PLMD::operator<< ( std::ostream & os,
const Stopwatch & sw )

◆ operator<<() [8/10]

template<unsigned n, unsigned m>
std::ostream & PLMD::operator<< ( std::ostream & os,
const TensorGeneric< n, m > & t )

◆ operator<<() [9/10]

template<unsigned n>
std::ostream & PLMD::operator<< ( std::ostream & os,
const VectorGeneric< n > & v )

◆ operator<<() [10/10]

template<class T>
Subprocess & PLMD::operator<< ( Subprocess & ep,
const T & t )

◆ operator<=()

bool PLMD::operator<= ( const AtomNumber & a,
const AtomNumber & b )
inline

◆ operator==()

bool PLMD::operator== ( const AtomNumber & a,
const AtomNumber & b )
inline

◆ operator>()

bool PLMD::operator> ( const AtomNumber & a,
const AtomNumber & b )
inline

◆ operator>=()

bool PLMD::operator>= ( const AtomNumber & a,
const AtomNumber & b )
inline

◆ product()

void PLMD::product ( const Value & val1,
const Value & val2,
Value & valout )
inline

◆ pseudoInvert()

template<typename T>
int PLMD::pseudoInvert ( const Matrix< T > & A,
Matrix< double > & pseudoinverse )

◆ quotient()

void PLMD::quotient ( const Value & val1,
const Value & val2,
Value * valout )
inline

◆ StopwatchEmptyString()

const std::string & PLMD::StopwatchEmptyString ( )
inlinestaticnoexcept

Return an empty string.

Inline static so that it can store a static variable (for quicker access) without adding a unique global symbol to a library including this header file.

◆ SubprocessPidGetenvSignals()

bool PLMD::SubprocessPidGetenvSignals ( )
inlinestaticnoexcept

Retrieve PLUMED_ENABLE_SIGNALS.

Inline static so that it can store a static variable (for quicker access) without adding a unique global symbol to a library including this header file.

◆ testThrow()

void PLMD::testThrow ( const char * what)
static

Small utility just used in this file to throw arbitrary exceptions.

◆ transpose() [1/2]

template<typename T>
void PLMD::transpose ( const Matrix< T > & A,
Matrix< T > & AT )

◆ transpose() [2/2]

template<unsigned n, unsigned m>
TensorGeneric< n, m > PLMD::transpose ( const TensorGeneric< m, n > & t)

◆ typesafePtrSizeof()

template<class T>
std::size_t PLMD::typesafePtrSizeof ( )

◆ typesafePtrSizeof< const void >()

template<>
std::size_t PLMD::typesafePtrSizeof< const void > ( )
inline

◆ typesafePtrSizeof< void >()

template<>
std::size_t PLMD::typesafePtrSizeof< void > ( )
inline

◆ typesafePtrSkipCheck()

bool PLMD::typesafePtrSkipCheck ( )
inlinestatic

◆ VcrossTensor() [1/2]

TensorGeneric< 3, 3 > PLMD::VcrossTensor ( const TensorGeneric< 3, 3 > & v2,
const VectorGeneric< 3 > & v1 )
inline

◆ VcrossTensor() [2/2]

TensorGeneric< 3, 3 > PLMD::VcrossTensor ( const VectorGeneric< 3 > & v1,
const TensorGeneric< 3, 3 > & v2 )
inline

Variable Documentation

◆ dp2cutoffA

const double PLMD::dp2cutoffA =1.00193418799744762399

◆ dp2cutoffB

const double PLMD::dp2cutoffB =-.00193418799744762399

◆ epsilon

const double PLMD::epsilon =1e-14

◆ shareMassAndChargeOnlyAtFirstStep

const bool PLMD::shareMassAndChargeOnlyAtFirstStep =true
static

We assume that charges and masses are constant along the simulation Set this to false if you want to revert to the original (expensive) behavior.