1 #ifndef OPENMM_CUSTOMHBONDFORCEIMPL_H_
2 #define OPENMM_CUSTOMHBONDFORCEIMPL_H_
35 #include "ForceImpl.h"
36 #include "openmm/CustomHbondForce.h"
37 #include "openmm/Kernel.h"
38 #include "lepton/CustomFunction.h"
39 #include "lepton/ExpressionTreeNode.h"
40 #include "lepton/ParsedExpression.h"
62 double calcForcesAndEnergy(
ContextImpl& context,
bool includeForces,
bool includeEnergy,
int groups);
63 std::map<std::string, double> getDefaultParameters();
64 std::vector<std::string> getKernelNames();
65 void updateParametersInContext(
ContextImpl& context);
81 static Lepton::ParsedExpression prepareExpression(
const CustomHbondForce& force,
const std::map<std::string, Lepton::CustomFunction*>& functions, std::map<std::string, std::vector<int> >& distances,
82 std::map<std::string, std::vector<int> >& angles, std::map<std::string, std::vector<int> >& dihedrals);
84 class FunctionPlaceholder;
85 static Lepton::ExpressionTreeNode replaceFunctions(
const Lepton::ExpressionTreeNode& node, std::map<std::string, int> atoms,
86 std::map<std::string, std::vector<int> >& distances, std::map<std::string, std::vector<int> >& angles,
87 std::map<std::string, std::vector<int> >& dihedrals);
This is the internal implementation of a Context.
Definition: ContextImpl.h:53
const CustomHbondForce & getOwner() const
Get the Force object from which this ForceImpl was created.
Definition: CustomHbondForceImpl.h:56
This class supports a wide variety of energy functions used to represent hydrogen bonding...
Definition: CustomHbondForce.h:98
This is the internal implementation of CustomHbondForce.
Definition: CustomHbondForceImpl.h:51
void updateContextState(ContextImpl &context)
This method is called at the beginning of each time step.
Definition: CustomHbondForceImpl.h:59
A Kernel encapsulates a particular implementation of a calculation that can be performed on the data ...
Definition: Kernel.h:58
A ForceImpl provides the internal implementation of a Force.
Definition: ForceImpl.h:57