44 for (
int i=0; i<m_NumRestraints; i++) {
45 delete m_ppRestraints[i];
47 delete []m_ppRestraints;
55 ASSERT( (Index>=0) && (Index<m_NumRestraints) );
56 return(m_ppRestraints[Index]);
67 if (m_NumRestraints == m_MaxNum) {
70 ppRestraints =
new pRestr[m_MaxNum];
72 memcpy(ppRestraints, m_ppRestraints,
sizeof(
ARestraint*)*m_NumRestraints);
74 delete []m_ppRestraints;
76 m_ppRestraints = ppRestraints;
80 m_ppRestraints[m_NumRestraints] = pRestraint;
92 for (
int i=0; i<m_NumRestraints; i++) {
106 for (i=0; i<m_NumRestraints; i++) {
109 for (j=0; j<NumCOMs; j++) {
125 for (
int i=0; i<m_NumRestraints; i++) {
136 for (
int i=0; i<m_NumRestraints; i++) {
137 if (m_ppRestraints[i]->IsForcing()) {
149 #if defined(_VERBOSE_PMF)
150 for (
int i=0; i<m_NumRestraints; i++) {
163 for (
int i=0; i<m_NumRestraints; i++) {
164 #if defined(_VERBOSE_PMF)
169 #if !defined(_VERBOSE_PMF)
179 #if defined(_VERBOSE_PMF)
180 for (
int i=0; i<m_NumRestraints; i++) {
181 if (m_ppRestraints[i]->IsForcing()) {
183 iout <<
"dU/dLambda = ";
198 sprintf(NumStr,
"%3d", Index+1);
199 iout <<
"FreeEnergy: " <<
"Restraint " << NumStr <<
": ";
void PrintPreInfo(int Index)
std::ostream & endi(std::ostream &s)
virtual void PrintInfo()=0
void Print_dU_dLambda_Info()
void Add(ARestraint *pRestraint)
virtual double GetEnergy()=0
virtual double Get_dU_dLambda()
void DistributeForce(int WhichGroup, AVector Force, GlobalMasterFreeEnergy &CFE)
void UpdateCOMs(GlobalMasterFreeEnergy &CFE)
void UpdateCOMs(GlobalMasterFreeEnergy &CFE)
void AddForces(GlobalMasterFreeEnergy &CFE)
Bool_t ThereIsAForcingRestraint()
ARestraint * operator[](int Index)
virtual void GetStr(char *Str)=0
void PrintRestraintInfo()
virtual AVector GetGradient(int WhichGroup)=0