Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
73183c61
Commit
73183c61
authored
May 31, 2016
by
ChayaSt
Browse files
resolved conflict
parents
0e218233
32e08b87
Changes
267
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
204 additions
and
86 deletions
+204
-86
openmmapi/include/openmm/HarmonicAngleForce.h
openmmapi/include/openmm/HarmonicAngleForce.h
+8
-5
openmmapi/include/openmm/HarmonicBondForce.h
openmmapi/include/openmm/HarmonicBondForce.h
+8
-4
openmmapi/include/openmm/MonteCarloAnisotropicBarostat.h
openmmapi/include/openmm/MonteCarloAnisotropicBarostat.h
+24
-15
openmmapi/include/openmm/MonteCarloBarostat.h
openmmapi/include/openmm/MonteCarloBarostat.h
+21
-12
openmmapi/include/openmm/MonteCarloMembraneBarostat.h
openmmapi/include/openmm/MonteCarloMembraneBarostat.h
+19
-10
openmmapi/include/openmm/PeriodicTorsionForce.h
openmmapi/include/openmm/PeriodicTorsionForce.h
+8
-4
openmmapi/include/openmm/RBTorsionForce.h
openmmapi/include/openmm/RBTorsionForce.h
+8
-4
openmmapi/include/openmm/internal/OSRngSeed.h
openmmapi/include/openmm/internal/OSRngSeed.h
+1
-1
openmmapi/src/CMAPTorsionForce.cpp
openmmapi/src/CMAPTorsionForce.cpp
+10
-2
openmmapi/src/ContextImpl.cpp
openmmapi/src/ContextImpl.cpp
+8
-3
openmmapi/src/CustomAngleForce.cpp
openmmapi/src/CustomAngleForce.cpp
+10
-2
openmmapi/src/CustomBondForce.cpp
openmmapi/src/CustomBondForce.cpp
+10
-2
openmmapi/src/CustomCentroidBondForce.cpp
openmmapi/src/CustomCentroidBondForce.cpp
+10
-2
openmmapi/src/CustomCompoundBondForce.cpp
openmmapi/src/CustomCompoundBondForce.cpp
+10
-2
openmmapi/src/CustomIntegrator.cpp
openmmapi/src/CustomIntegrator.cpp
+3
-3
openmmapi/src/CustomIntegratorUtilities.cpp
openmmapi/src/CustomIntegratorUtilities.cpp
+5
-5
openmmapi/src/CustomTorsionForce.cpp
openmmapi/src/CustomTorsionForce.cpp
+10
-2
openmmapi/src/HarmonicAngleForce.cpp
openmmapi/src/HarmonicAngleForce.cpp
+10
-2
openmmapi/src/HarmonicBondForce.cpp
openmmapi/src/HarmonicBondForce.cpp
+9
-1
openmmapi/src/LocalEnergyMinimizer.cpp
openmmapi/src/LocalEnergyMinimizer.cpp
+12
-5
No files found.
openmmapi/include/openmm/HarmonicAngleForce.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-201
2
Stanford University and the Authors. *
* Portions copyright (c) 2008-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -102,20 +102,23 @@ public:
...
@@ -102,20 +102,23 @@ public:
* in a angle cannot be changed, nor can new angles be added.
* in a angle cannot be changed, nor can new angles be added.
*/
*/
void
updateParametersInContext
(
Context
&
context
);
void
updateParametersInContext
(
Context
&
context
);
/**
* Set whether this force should apply periodic boundary conditions when calculating displacements.
* Usually this is not appropriate for bonded forces, but there are situations when it can be useful.
*/
void
setUsesPeriodicBoundaryConditions
(
bool
periodic
);
/**
/**
* Returns whether or not this force makes use of periodic boundary
* Returns whether or not this force makes use of periodic boundary
* conditions.
* conditions.
*
*
* @returns true if force uses PBC and false otherwise
* @returns true if force uses PBC and false otherwise
*/
*/
bool
usesPeriodicBoundaryConditions
()
const
{
bool
usesPeriodicBoundaryConditions
()
const
;
protected
:
return
false
;
}
protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
class
AngleInfo
;
class
AngleInfo
;
std
::
vector
<
AngleInfo
>
angles
;
std
::
vector
<
AngleInfo
>
angles
;
bool
usePeriodic
;
};
};
/**
/**
...
...
openmmapi/include/openmm/HarmonicBondForce.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-201
2
Stanford University and the Authors. *
* Portions copyright (c) 2008-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -99,20 +99,24 @@ public:
...
@@ -99,20 +99,24 @@ public:
* in a bond cannot be changed, nor can new bonds be added.
* in a bond cannot be changed, nor can new bonds be added.
*/
*/
void
updateParametersInContext
(
Context
&
context
);
void
updateParametersInContext
(
Context
&
context
);
/**
* Set whether this force should apply periodic boundary conditions when calculating displacements.
* Usually this is not appropriate for bonded forces, but there are situations when it can be useful.
*/
void
setUsesPeriodicBoundaryConditions
(
bool
periodic
);
/**
/**
* Returns whether or not this force makes use of periodic boundary
* Returns whether or not this force makes use of periodic boundary
* conditions.
* conditions.
*
*
* @returns true if force uses PBC and false otherwise
* @returns true if force uses PBC and false otherwise
*/
*/
bool
usesPeriodicBoundaryConditions
()
const
{
bool
usesPeriodicBoundaryConditions
()
const
;
return
false
;
}
protected:
protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
class
BondInfo
;
class
BondInfo
;
std
::
vector
<
BondInfo
>
bonds
;
std
::
vector
<
BondInfo
>
bonds
;
bool
usePeriodic
;
};
};
/**
/**
...
...
openmmapi/include/openmm/MonteCarloAnisotropicBarostat.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010-201
3
Stanford University and the Authors. *
* Portions copyright (c) 2010-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman, Lee-Ping Wang *
* Authors: Peter Eastman, Lee-Ping Wang *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -81,17 +81,25 @@ public:
...
@@ -81,17 +81,25 @@ public:
static
const
std
::
string
key
=
"MonteCarloPressureZ"
;
static
const
std
::
string
key
=
"MonteCarloPressureZ"
;
return
key
;
return
key
;
}
}
/**
* This is the name of the parameter which stores the current temperature at which the
* system is being maintained (in Kelvin)
*/
static
const
std
::
string
&
Temperature
()
{
static
const
std
::
string
key
=
"AnisotropicMonteCarloTemperature"
;
return
key
;
}
/**
/**
* Create a MonteCarloAnisotropicBarostat.
* Create a MonteCarloAnisotropicBarostat.
*
*
* @param defaultPressure The default pressure acting on each axis (in bar)
* @param defaultPressure
The default pressure acting on each axis (in bar)
* @param
t
emperature
the
temperature at which the system is being maintained (in Kelvin)
* @param
defaultT
emperature
the default
temperature at which the system is being maintained (in Kelvin)
* @param scaleX whether to allow the X dimension of the periodic box to change size
* @param scaleX
whether to allow the X dimension of the periodic box to change size
* @param scaleY whether to allow the Y dimension of the periodic box to change size
* @param scaleY
whether to allow the Y dimension of the periodic box to change size
* @param scaleZ whether to allow the Z dimension of the periodic box to change size
* @param scaleZ
whether to allow the Z dimension of the periodic box to change size
* @param frequency the frequency at which Monte Carlo pressure changes should be attempted (in time steps)
* @param frequency
the frequency at which Monte Carlo pressure changes should be attempted (in time steps)
*/
*/
MonteCarloAnisotropicBarostat
(
const
Vec3
&
defaultPressure
,
double
t
emperature
,
bool
scaleX
=
true
,
bool
scaleY
=
true
,
bool
scaleZ
=
true
,
int
frequency
=
25
);
MonteCarloAnisotropicBarostat
(
const
Vec3
&
defaultPressure
,
double
defaultT
emperature
,
bool
scaleX
=
true
,
bool
scaleY
=
true
,
bool
scaleZ
=
true
,
int
frequency
=
25
);
/**
/**
* Get the default pressure (in bar).
* Get the default pressure (in bar).
*
*
...
@@ -142,18 +150,19 @@ public:
...
@@ -142,18 +150,19 @@ public:
frequency
=
freq
;
frequency
=
freq
;
}
}
/**
/**
* Get the temperature at which the system is being maintained, measured in Kelvin.
* Get the
default
temperature at which the system is being maintained, measured in Kelvin.
*/
*/
double
getTemperature
()
const
{
double
get
Default
Temperature
()
const
{
return
t
emperature
;
return
defaultT
emperature
;
}
}
/**
/**
* Set the temperature at which the system is being maintained.
* Set the default temperature at which the system is being maintained. This will affect any new Contexts you create,
* but not ones that already exist.
*
*
* @param temp the system temperature, measured in Kelvin.
* @param temp the system temperature, measured in Kelvin.
*/
*/
void
setTemperature
(
double
temp
)
{
void
set
Default
Temperature
(
double
temp
)
{
t
emperature
=
temp
;
defaultT
emperature
=
temp
;
}
}
/**
/**
* Get the random number seed. See setRandomNumberSeed() for details.
* Get the random number seed. See setRandomNumberSeed() for details.
...
@@ -188,7 +197,7 @@ protected:
...
@@ -188,7 +197,7 @@ protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
Vec3
defaultPressure
;
Vec3
defaultPressure
;
double
t
emperature
;
double
defaultT
emperature
;
bool
scaleX
,
scaleY
,
scaleZ
;
bool
scaleX
,
scaleY
,
scaleZ
;
int
frequency
,
randomNumberSeed
;
int
frequency
,
randomNumberSeed
;
};
};
...
...
openmmapi/include/openmm/MonteCarloBarostat.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010 Stanford University and the Authors.
*
* Portions copyright (c) 2010
-2016
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -58,14 +58,22 @@ public:
...
@@ -58,14 +58,22 @@ public:
static
const
std
::
string
key
=
"MonteCarloPressure"
;
static
const
std
::
string
key
=
"MonteCarloPressure"
;
return
key
;
return
key
;
}
}
/**
* This is the name of the parameter which stores the current temperature at which the
* system is being maintained (in Kelvin)
*/
static
const
std
::
string
&
Temperature
()
{
static
const
std
::
string
key
=
"MonteCarloTemperature"
;
return
key
;
}
/**
/**
* Create a MonteCarloBarostat.
* Create a MonteCarloBarostat.
*
*
* @param defaultPressure the default pressure acting on the system (in bar)
* @param defaultPressure
the default pressure acting on the system (in bar)
* @param
t
emperature
the
temperature at which the system is being maintained (in Kelvin)
* @param
defaultT
emperature
the default
temperature at which the system is being maintained (in Kelvin)
* @param frequency the frequency at which Monte Carlo pressure changes should be attempted (in time steps)
* @param frequency
the frequency at which Monte Carlo pressure changes should be attempted (in time steps)
*/
*/
MonteCarloBarostat
(
double
defaultPressure
,
double
t
emperature
,
int
frequency
=
25
);
MonteCarloBarostat
(
double
defaultPressure
,
double
defaultT
emperature
,
int
frequency
=
25
);
/**
/**
* Get the default pressure acting on the system (in bar).
* Get the default pressure acting on the system (in bar).
*
*
...
@@ -98,18 +106,19 @@ public:
...
@@ -98,18 +106,19 @@ public:
frequency
=
freq
;
frequency
=
freq
;
}
}
/**
/**
* Get the temperature at which the system is being maintained, measured in Kelvin.
* Get the
default
temperature at which the system is being maintained, measured in Kelvin.
*/
*/
double
getTemperature
()
const
{
double
get
Default
Temperature
()
const
{
return
t
emperature
;
return
defaultT
emperature
;
}
}
/**
/**
* Set the temperature at which the system is being maintained.
* Set the default temperature at which the system is being maintained. This will affect any new Contexts you create,
* but not ones that already exist.
*
*
* @param temp the system temperature, measured in Kelvin.
* @param temp the system temperature, measured in Kelvin.
*/
*/
void
setTemperature
(
double
temp
)
{
void
set
Default
Temperature
(
double
temp
)
{
t
emperature
=
temp
;
defaultT
emperature
=
temp
;
}
}
/**
/**
* Get the random number seed. See setRandomNumberSeed() for details.
* Get the random number seed. See setRandomNumberSeed() for details.
...
@@ -143,7 +152,7 @@ public:
...
@@ -143,7 +152,7 @@ public:
protected:
protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
double
defaultPressure
,
t
emperature
;
double
defaultPressure
,
defaultT
emperature
;
int
frequency
,
randomNumberSeed
;
int
frequency
,
randomNumberSeed
;
};
};
...
...
openmmapi/include/openmm/MonteCarloMembraneBarostat.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010-201
4
Stanford University and the Authors. *
* Portions copyright (c) 2010-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -111,17 +111,25 @@ public:
...
@@ -111,17 +111,25 @@ public:
static
const
std
::
string
key
=
"MembraneMonteCarloSurfaceTension"
;
static
const
std
::
string
key
=
"MembraneMonteCarloSurfaceTension"
;
return
key
;
return
key
;
}
}
/**
* This is the name of the parameter which stores the current temperature at which the
* system is being maintained (in Kelvin)
*/
static
const
std
::
string
&
Temperature
()
{
static
const
std
::
string
key
=
"MembraneMonteCarloTemperature"
;
return
key
;
}
/**
/**
* Create a MonteCarloMembraneBarostat.
* Create a MonteCarloMembraneBarostat.
*
*
* @param defaultPressure the default pressure acting on the system (in bar)
* @param defaultPressure the default pressure acting on the system (in bar)
* @param defaultSurfaceTension the default surface tension acting on the system (in bar*nm)
* @param defaultSurfaceTension the default surface tension acting on the system (in bar*nm)
* @param
t
emperature
the temperature at which the system is being maintained (in Kelvin)
* @param
defaultT
emperature the
default
temperature at which the system is being maintained (in Kelvin)
* @param xymode the mode specifying the behavior of the X and Y axes
* @param xymode the mode specifying the behavior of the X and Y axes
* @param zmode the mode specifying the behavior of the Z axis
* @param zmode the mode specifying the behavior of the Z axis
* @param frequency the frequency at which Monte Carlo volume changes should be attempted (in time steps)
* @param frequency the frequency at which Monte Carlo volume changes should be attempted (in time steps)
*/
*/
MonteCarloMembraneBarostat
(
double
defaultPressure
,
double
defaultSurfaceTension
,
double
t
emperature
,
XYMode
xymode
,
ZMode
zmode
,
int
frequency
=
25
);
MonteCarloMembraneBarostat
(
double
defaultPressure
,
double
defaultSurfaceTension
,
double
defaultT
emperature
,
XYMode
xymode
,
ZMode
zmode
,
int
frequency
=
25
);
/**
/**
* Get the default pressure acting on the system (in bar).
* Get the default pressure acting on the system (in bar).
*
*
...
@@ -171,18 +179,19 @@ public:
...
@@ -171,18 +179,19 @@ public:
frequency
=
freq
;
frequency
=
freq
;
}
}
/**
/**
* Get the temperature at which the system is being maintained, measured in Kelvin.
* Get the
default
temperature at which the system is being maintained, measured in Kelvin.
*/
*/
double
getTemperature
()
const
{
double
get
Default
Temperature
()
const
{
return
t
emperature
;
return
defaultT
emperature
;
}
}
/**
/**
* Set the temperature at which the system is being maintained.
* Set the default temperature at which the system is being maintained. This will affect any new Contexts you create,
* but not ones that already exist.
*
*
* @param temp the system temperature, measured in Kelvin.
* @param temp the system temperature, measured in Kelvin.
*/
*/
void
setTemperature
(
double
temp
)
{
void
set
Default
Temperature
(
double
temp
)
{
t
emperature
=
temp
;
defaultT
emperature
=
temp
;
}
}
/**
/**
* Get the mode specifying the behavior of the X and Y axes.
* Get the mode specifying the behavior of the X and Y axes.
...
@@ -240,7 +249,7 @@ public:
...
@@ -240,7 +249,7 @@ public:
protected:
protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
double
defaultPressure
,
defaultSurfaceTension
,
t
emperature
;
double
defaultPressure
,
defaultSurfaceTension
,
defaultT
emperature
;
XYMode
xymode
;
XYMode
xymode
;
ZMode
zmode
;
ZMode
zmode
;
int
frequency
,
randomNumberSeed
;
int
frequency
,
randomNumberSeed
;
...
...
openmmapi/include/openmm/PeriodicTorsionForce.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-201
2
Stanford University and the Authors. *
* Portions copyright (c) 2008-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -108,20 +108,24 @@ public:
...
@@ -108,20 +108,24 @@ public:
* in a torsion cannot be changed, nor can new torsions be added.
* in a torsion cannot be changed, nor can new torsions be added.
*/
*/
void
updateParametersInContext
(
Context
&
context
);
void
updateParametersInContext
(
Context
&
context
);
/**
* Set whether this force should apply periodic boundary conditions when calculating displacements.
* Usually this is not appropriate for bonded forces, but there are situations when it can be useful.
*/
void
setUsesPeriodicBoundaryConditions
(
bool
periodic
);
/**
/**
* Returns whether or not this force makes use of periodic boundary
* Returns whether or not this force makes use of periodic boundary
* conditions.
* conditions.
*
*
* @returns true if force uses PBC and false otherwise
* @returns true if force uses PBC and false otherwise
*/
*/
bool
usesPeriodicBoundaryConditions
()
const
{
bool
usesPeriodicBoundaryConditions
()
const
;
return
false
;
}
protected:
protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
class
PeriodicTorsionInfo
;
class
PeriodicTorsionInfo
;
std
::
vector
<
PeriodicTorsionInfo
>
periodicTorsions
;
std
::
vector
<
PeriodicTorsionInfo
>
periodicTorsions
;
bool
usePeriodic
;
};
};
/**
/**
...
...
openmmapi/include/openmm/RBTorsionForce.h
View file @
73183c61
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-201
2
Stanford University and the Authors. *
* Portions copyright (c) 2008-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -117,20 +117,24 @@ public:
...
@@ -117,20 +117,24 @@ public:
* in a torsion cannot be changed, nor can new torsions be added.
* in a torsion cannot be changed, nor can new torsions be added.
*/
*/
void
updateParametersInContext
(
Context
&
context
);
void
updateParametersInContext
(
Context
&
context
);
/**
* Set whether this force should apply periodic boundary conditions when calculating displacements.
* Usually this is not appropriate for bonded forces, but there are situations when it can be useful.
*/
void
setUsesPeriodicBoundaryConditions
(
bool
periodic
);
/**
/**
* Returns whether or not this force makes use of periodic boundary
* Returns whether or not this force makes use of periodic boundary
* conditions.
* conditions.
*
*
* @returns true if force uses PBC and false otherwise
* @returns true if force uses PBC and false otherwise
*/
*/
bool
usesPeriodicBoundaryConditions
()
const
{
bool
usesPeriodicBoundaryConditions
()
const
;
return
false
;
}
protected:
protected:
ForceImpl
*
createImpl
()
const
;
ForceImpl
*
createImpl
()
const
;
private:
private:
class
RBTorsionInfo
;
class
RBTorsionInfo
;
std
::
vector
<
RBTorsionInfo
>
rbTorsions
;
std
::
vector
<
RBTorsionInfo
>
rbTorsions
;
bool
usePeriodic
;
};
};
/**
/**
...
...
openmmapi/include/openmm/internal/OSRngSeed.h
View file @
73183c61
#
ifndef
OPENMM_OSRNGSEED_H_
#ifndef OPENMM_OSRNGSEED_H_
#define OPENMM_OSRNGSEED_H_
#define OPENMM_OSRNGSEED_H_
...
...
openmmapi/src/CMAPTorsionForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010-201
5
Stanford University and the Authors. *
* Portions copyright (c) 2010-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
using
namespace
OpenMM
;
using
namespace
OpenMM
;
CMAPTorsionForce
::
CMAPTorsionForce
()
{
CMAPTorsionForce
::
CMAPTorsionForce
()
:
usePeriodic
(
false
)
{
}
}
int
CMAPTorsionForce
::
addMap
(
int
size
,
const
std
::
vector
<
double
>&
energy
)
{
int
CMAPTorsionForce
::
addMap
(
int
size
,
const
std
::
vector
<
double
>&
energy
)
{
...
@@ -99,3 +99,11 @@ ForceImpl* CMAPTorsionForce::createImpl() const {
...
@@ -99,3 +99,11 @@ ForceImpl* CMAPTorsionForce::createImpl() const {
void
CMAPTorsionForce
::
updateParametersInContext
(
Context
&
context
)
{
void
CMAPTorsionForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
CMAPTorsionForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
CMAPTorsionForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
CMAPTorsionForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
CMAPTorsionForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/ContextImpl.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-201
3
Stanford University and the Authors. *
* Portions copyright (c) 2008-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -84,15 +84,20 @@ ContextImpl::ContextImpl(Context& owner, const System& system, Integrator& integ
...
@@ -84,15 +84,20 @@ ContextImpl::ContextImpl(Context& owner, const System& system, Integrator& integ
// Validate the list of properties.
// Validate the list of properties.
const
vector
<
string
>&
platformProperties
=
platform
->
getPropertyNames
();
const
vector
<
string
>&
platformProperties
=
platform
->
getPropertyNames
();
map
<
string
,
string
>
validatedProperties
;
for
(
map
<
string
,
string
>::
const_iterator
iter
=
properties
.
begin
();
iter
!=
properties
.
end
();
++
iter
)
{
for
(
map
<
string
,
string
>::
const_iterator
iter
=
properties
.
begin
();
iter
!=
properties
.
end
();
++
iter
)
{
string
property
=
iter
->
first
;
if
(
platform
->
deprecatedPropertyReplacements
.
find
(
property
)
!=
platform
->
deprecatedPropertyReplacements
.
end
())
property
=
platform
->
deprecatedPropertyReplacements
[
property
];
bool
valid
=
false
;
bool
valid
=
false
;
for
(
int
i
=
0
;
i
<
(
int
)
platformProperties
.
size
();
i
++
)
for
(
int
i
=
0
;
i
<
(
int
)
platformProperties
.
size
();
i
++
)
if
(
platformProperties
[
i
]
==
iter
->
first
)
{
if
(
platformProperties
[
i
]
==
property
)
{
valid
=
true
;
valid
=
true
;
break
;
break
;
}
}
if
(
!
valid
)
if
(
!
valid
)
throw
OpenMMException
(
"Illegal property name: "
+
iter
->
first
);
throw
OpenMMException
(
"Illegal property name: "
+
iter
->
first
);
validatedProperties
[
property
]
=
iter
->
second
;
}
}
// Find the list of kernels required.
// Find the list of kernels required.
...
@@ -139,7 +144,7 @@ ContextImpl::ContextImpl(Context& owner, const System& system, Integrator& integ
...
@@ -139,7 +144,7 @@ ContextImpl::ContextImpl(Context& owner, const System& system, Integrator& integ
for
(
int
i
=
candidatePlatforms
.
size
()
-
1
;
i
>=
0
;
i
--
)
{
for
(
int
i
=
candidatePlatforms
.
size
()
-
1
;
i
>=
0
;
i
--
)
{
try
{
try
{
this
->
platform
=
platform
=
candidatePlatforms
[
i
].
second
;
this
->
platform
=
platform
=
candidatePlatforms
[
i
].
second
;
platform
->
contextCreated
(
*
this
,
p
roperties
);
platform
->
contextCreated
(
*
this
,
validatedP
roperties
);
break
;
break
;
}
}
catch
(...)
{
catch
(...)
{
...
...
openmmapi/src/CustomAngleForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010 Stanford University and the Authors.
*
* Portions copyright (c) 2010
-2016
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -44,7 +44,7 @@ using std::string;
...
@@ -44,7 +44,7 @@ using std::string;
using
std
::
stringstream
;
using
std
::
stringstream
;
using
std
::
vector
;
using
std
::
vector
;
CustomAngleForce
::
CustomAngleForce
(
const
string
&
energy
)
:
energyExpression
(
energy
)
{
CustomAngleForce
::
CustomAngleForce
(
const
string
&
energy
)
:
energyExpression
(
energy
)
,
usePeriodic
(
false
)
{
}
}
const
string
&
CustomAngleForce
::
getEnergyFunction
()
const
{
const
string
&
CustomAngleForce
::
getEnergyFunction
()
const
{
...
@@ -123,3 +123,11 @@ ForceImpl* CustomAngleForce::createImpl() const {
...
@@ -123,3 +123,11 @@ ForceImpl* CustomAngleForce::createImpl() const {
void
CustomAngleForce
::
updateParametersInContext
(
Context
&
context
)
{
void
CustomAngleForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
CustomAngleForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
CustomAngleForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
CustomAngleForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
CustomAngleForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/CustomBondForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-20
09
Stanford University and the Authors. *
* Portions copyright (c) 2008-20
16
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -44,7 +44,7 @@ using std::string;
...
@@ -44,7 +44,7 @@ using std::string;
using
std
::
stringstream
;
using
std
::
stringstream
;
using
std
::
vector
;
using
std
::
vector
;
CustomBondForce
::
CustomBondForce
(
const
string
&
energy
)
:
energyExpression
(
energy
)
{
CustomBondForce
::
CustomBondForce
(
const
string
&
energy
)
:
energyExpression
(
energy
)
,
usePeriodic
(
false
)
{
}
}
const
string
&
CustomBondForce
::
getEnergyFunction
()
const
{
const
string
&
CustomBondForce
::
getEnergyFunction
()
const
{
...
@@ -121,3 +121,11 @@ ForceImpl* CustomBondForce::createImpl() const {
...
@@ -121,3 +121,11 @@ ForceImpl* CustomBondForce::createImpl() const {
void
CustomBondForce
::
updateParametersInContext
(
Context
&
context
)
{
void
CustomBondForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
CustomBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
CustomBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
CustomBondForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
CustomBondForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/CustomCentroidBondForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2015 Stanford University and the Authors.
*
* Portions copyright (c) 2015
-2016
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -48,7 +48,7 @@ using std::string;
...
@@ -48,7 +48,7 @@ using std::string;
using
std
::
stringstream
;
using
std
::
stringstream
;
using
std
::
vector
;
using
std
::
vector
;
CustomCentroidBondForce
::
CustomCentroidBondForce
(
int
numGroups
,
const
string
&
energy
)
:
groupsPerBond
(
numGroups
),
energyExpression
(
energy
)
{
CustomCentroidBondForce
::
CustomCentroidBondForce
(
int
numGroups
,
const
string
&
energy
)
:
groupsPerBond
(
numGroups
),
energyExpression
(
energy
)
,
usePeriodic
(
false
)
{
}
}
CustomCentroidBondForce
::~
CustomCentroidBondForce
()
{
CustomCentroidBondForce
::~
CustomCentroidBondForce
()
{
...
@@ -173,3 +173,11 @@ ForceImpl* CustomCentroidBondForce::createImpl() const {
...
@@ -173,3 +173,11 @@ ForceImpl* CustomCentroidBondForce::createImpl() const {
void
CustomCentroidBondForce
::
updateParametersInContext
(
Context
&
context
)
{
void
CustomCentroidBondForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
CustomCentroidBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
CustomCentroidBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
CustomCentroidBondForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
CustomCentroidBondForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/CustomCompoundBondForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-201
4
Stanford University and the Authors. *
* Portions copyright (c) 2008-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -48,7 +48,7 @@ using std::string;
...
@@ -48,7 +48,7 @@ using std::string;
using
std
::
stringstream
;
using
std
::
stringstream
;
using
std
::
vector
;
using
std
::
vector
;
CustomCompoundBondForce
::
CustomCompoundBondForce
(
int
numParticles
,
const
string
&
energy
)
:
particlesPerBond
(
numParticles
),
energyExpression
(
energy
)
{
CustomCompoundBondForce
::
CustomCompoundBondForce
(
int
numParticles
,
const
string
&
energy
)
:
particlesPerBond
(
numParticles
),
energyExpression
(
energy
)
,
usePeriodic
(
false
)
{
}
}
...
@@ -176,3 +176,11 @@ ForceImpl* CustomCompoundBondForce::createImpl() const {
...
@@ -176,3 +176,11 @@ ForceImpl* CustomCompoundBondForce::createImpl() const {
void
CustomCompoundBondForce
::
updateParametersInContext
(
Context
&
context
)
{
void
CustomCompoundBondForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
CustomCompoundBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
CustomCompoundBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
CustomCompoundBondForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
CustomCompoundBondForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/CustomIntegrator.cpp
View file @
73183c61
...
@@ -248,21 +248,21 @@ int CustomIntegrator::addUpdateContextState() {
...
@@ -248,21 +248,21 @@ int CustomIntegrator::addUpdateContextState() {
int
CustomIntegrator
::
beginIfBlock
(
const
string
&
expression
)
{
int
CustomIntegrator
::
beginIfBlock
(
const
string
&
expression
)
{
if
(
owner
!=
NULL
)
if
(
owner
!=
NULL
)
throw
OpenMMException
(
"The integrator cannot be modified after it is bound to a context"
);
throw
OpenMMException
(
"The integrator cannot be modified after it is bound to a context"
);
computations
.
push_back
(
ComputationInfo
(
Begin
IfBlock
,
""
,
expression
));
computations
.
push_back
(
ComputationInfo
(
IfBlock
Start
,
""
,
expression
));
return
computations
.
size
()
-
1
;
return
computations
.
size
()
-
1
;
}
}
int
CustomIntegrator
::
beginWhileBlock
(
const
string
&
expression
)
{
int
CustomIntegrator
::
beginWhileBlock
(
const
string
&
expression
)
{
if
(
owner
!=
NULL
)
if
(
owner
!=
NULL
)
throw
OpenMMException
(
"The integrator cannot be modified after it is bound to a context"
);
throw
OpenMMException
(
"The integrator cannot be modified after it is bound to a context"
);
computations
.
push_back
(
ComputationInfo
(
Begin
WhileBlock
,
""
,
expression
));
computations
.
push_back
(
ComputationInfo
(
WhileBlock
Start
,
""
,
expression
));
return
computations
.
size
()
-
1
;
return
computations
.
size
()
-
1
;
}
}
int
CustomIntegrator
::
endBlock
()
{
int
CustomIntegrator
::
endBlock
()
{
if
(
owner
!=
NULL
)
if
(
owner
!=
NULL
)
throw
OpenMMException
(
"The integrator cannot be modified after it is bound to a context"
);
throw
OpenMMException
(
"The integrator cannot be modified after it is bound to a context"
);
computations
.
push_back
(
ComputationInfo
(
End
Block
,
""
,
""
));
computations
.
push_back
(
ComputationInfo
(
Block
End
,
""
,
""
));
return
computations
.
size
()
-
1
;
return
computations
.
size
()
-
1
;
}
}
...
...
openmmapi/src/CustomIntegratorUtilities.cpp
View file @
73183c61
...
@@ -87,7 +87,7 @@ void CustomIntegratorUtilities::analyzeComputations(const ContextImpl& context,
...
@@ -87,7 +87,7 @@ void CustomIntegratorUtilities::analyzeComputations(const ContextImpl& context,
for
(
int
step
=
0
;
step
<
numSteps
;
step
++
)
{
for
(
int
step
=
0
;
step
<
numSteps
;
step
++
)
{
string
expression
;
string
expression
;
integrator
.
getComputationStep
(
step
,
stepType
[
step
],
stepVariable
[
step
],
expression
);
integrator
.
getComputationStep
(
step
,
stepType
[
step
],
stepVariable
[
step
],
expression
);
if
(
stepType
[
step
]
==
CustomIntegrator
::
Begin
IfBlock
||
stepType
[
step
]
==
CustomIntegrator
::
Begin
WhileBlock
)
{
if
(
stepType
[
step
]
==
CustomIntegrator
::
IfBlock
Start
||
stepType
[
step
]
==
CustomIntegrator
::
WhileBlock
Start
)
{
// This step involves a condition.
// This step involves a condition.
string
lhs
,
rhs
;
string
lhs
,
rhs
;
...
@@ -158,9 +158,9 @@ void CustomIntegratorUtilities::analyzeComputations(const ContextImpl& context,
...
@@ -158,9 +158,9 @@ void CustomIntegratorUtilities::analyzeComputations(const ContextImpl& context,
vector
<
int
>
blockStart
;
vector
<
int
>
blockStart
;
blockEnd
.
resize
(
numSteps
,
-
1
);
blockEnd
.
resize
(
numSteps
,
-
1
);
for
(
int
step
=
0
;
step
<
numSteps
;
step
++
)
{
for
(
int
step
=
0
;
step
<
numSteps
;
step
++
)
{
if
(
stepType
[
step
]
==
CustomIntegrator
::
Begin
IfBlock
||
stepType
[
step
]
==
CustomIntegrator
::
Begin
WhileBlock
)
if
(
stepType
[
step
]
==
CustomIntegrator
::
IfBlock
Start
||
stepType
[
step
]
==
CustomIntegrator
::
WhileBlock
Start
)
blockStart
.
push_back
(
step
);
blockStart
.
push_back
(
step
);
else
if
(
stepType
[
step
]
==
CustomIntegrator
::
End
Block
)
{
else
if
(
stepType
[
step
]
==
CustomIntegrator
::
Block
End
)
{
if
(
blockStart
.
size
()
==
0
)
{
if
(
blockStart
.
size
()
==
0
)
{
stringstream
error
(
"CustomIntegrator: Unexpected end of block at computation "
);
stringstream
error
(
"CustomIntegrator: Unexpected end of block at computation "
);
error
<<
step
;
error
<<
step
;
...
@@ -207,7 +207,7 @@ void CustomIntegratorUtilities::enumeratePaths(int firstStep, vector<int> steps,
...
@@ -207,7 +207,7 @@ void CustomIntegratorUtilities::enumeratePaths(int firstStep, vector<int> steps,
jumps
[
step
]
=
-
1
;
jumps
[
step
]
=
-
1
;
step
=
nextStep
;
step
=
nextStep
;
}
}
else
if
(
stepType
[
step
]
==
CustomIntegrator
::
Begin
IfBlock
)
{
else
if
(
stepType
[
step
]
==
CustomIntegrator
::
IfBlock
Start
)
{
// Consider skipping the block.
// Consider skipping the block.
enumeratePaths
(
blockEnd
[
step
]
+
1
,
steps
,
jumps
,
blockEnd
,
stepType
,
needsForces
,
needsEnergy
,
invalidatesForces
,
forceGroup
,
computeBoth
);
enumeratePaths
(
blockEnd
[
step
]
+
1
,
steps
,
jumps
,
blockEnd
,
stepType
,
needsForces
,
needsEnergy
,
invalidatesForces
,
forceGroup
,
computeBoth
);
...
@@ -216,7 +216,7 @@ void CustomIntegratorUtilities::enumeratePaths(int firstStep, vector<int> steps,
...
@@ -216,7 +216,7 @@ void CustomIntegratorUtilities::enumeratePaths(int firstStep, vector<int> steps,
step
++
;
step
++
;
}
}
else
if
(
stepType
[
step
]
==
CustomIntegrator
::
Begin
WhileBlock
&&
jumps
[
step
]
!=
-
2
)
{
else
if
(
stepType
[
step
]
==
CustomIntegrator
::
WhileBlock
Start
&&
jumps
[
step
]
!=
-
2
)
{
// Consider skipping the block.
// Consider skipping the block.
enumeratePaths
(
blockEnd
[
step
]
+
1
,
steps
,
jumps
,
blockEnd
,
stepType
,
needsForces
,
needsEnergy
,
invalidatesForces
,
forceGroup
,
computeBoth
);
enumeratePaths
(
blockEnd
[
step
]
+
1
,
steps
,
jumps
,
blockEnd
,
stepType
,
needsForces
,
needsEnergy
,
invalidatesForces
,
forceGroup
,
computeBoth
);
...
...
openmmapi/src/CustomTorsionForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010 Stanford University and the Authors.
*
* Portions copyright (c) 2010
-2016
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -44,7 +44,7 @@ using std::string;
...
@@ -44,7 +44,7 @@ using std::string;
using
std
::
stringstream
;
using
std
::
stringstream
;
using
std
::
vector
;
using
std
::
vector
;
CustomTorsionForce
::
CustomTorsionForce
(
const
string
&
energy
)
:
energyExpression
(
energy
)
{
CustomTorsionForce
::
CustomTorsionForce
(
const
string
&
energy
)
:
energyExpression
(
energy
)
,
usePeriodic
(
false
)
{
}
}
const
string
&
CustomTorsionForce
::
getEnergyFunction
()
const
{
const
string
&
CustomTorsionForce
::
getEnergyFunction
()
const
{
...
@@ -125,3 +125,11 @@ ForceImpl* CustomTorsionForce::createImpl() const {
...
@@ -125,3 +125,11 @@ ForceImpl* CustomTorsionForce::createImpl() const {
void
CustomTorsionForce
::
updateParametersInContext
(
Context
&
context
)
{
void
CustomTorsionForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
CustomTorsionForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
CustomTorsionForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
CustomTorsionForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
CustomTorsionForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/HarmonicAngleForce.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2008-20
09
Stanford University and the Authors. *
* Portions copyright (c) 2008-20
16
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
using
namespace
OpenMM
;
using
namespace
OpenMM
;
HarmonicAngleForce
::
HarmonicAngleForce
()
{
HarmonicAngleForce
::
HarmonicAngleForce
()
:
usePeriodic
(
false
)
{
}
}
int
HarmonicAngleForce
::
addAngle
(
int
particle1
,
int
particle2
,
int
particle3
,
double
angle
,
double
k
)
{
int
HarmonicAngleForce
::
addAngle
(
int
particle1
,
int
particle2
,
int
particle3
,
double
angle
,
double
k
)
{
...
@@ -70,3 +70,11 @@ ForceImpl* HarmonicAngleForce::createImpl() const {
...
@@ -70,3 +70,11 @@ ForceImpl* HarmonicAngleForce::createImpl() const {
void
HarmonicAngleForce
::
updateParametersInContext
(
Context
&
context
)
{
void
HarmonicAngleForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
HarmonicAngleForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
HarmonicAngleForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
HarmonicAngleForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
HarmonicAngleForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/HarmonicBondForce.cpp
View file @
73183c61
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
using
namespace
OpenMM
;
using
namespace
OpenMM
;
HarmonicBondForce
::
HarmonicBondForce
()
{
HarmonicBondForce
::
HarmonicBondForce
()
:
usePeriodic
(
false
)
{
}
}
int
HarmonicBondForce
::
addBond
(
int
particle1
,
int
particle2
,
double
length
,
double
k
)
{
int
HarmonicBondForce
::
addBond
(
int
particle1
,
int
particle2
,
double
length
,
double
k
)
{
...
@@ -68,3 +68,11 @@ ForceImpl* HarmonicBondForce::createImpl() const {
...
@@ -68,3 +68,11 @@ ForceImpl* HarmonicBondForce::createImpl() const {
void
HarmonicBondForce
::
updateParametersInContext
(
Context
&
context
)
{
void
HarmonicBondForce
::
updateParametersInContext
(
Context
&
context
)
{
dynamic_cast
<
HarmonicBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
dynamic_cast
<
HarmonicBondForceImpl
&>
(
getImplInContext
(
context
)).
updateParametersInContext
(
getContextImpl
(
context
));
}
}
void
HarmonicBondForce
::
setUsesPeriodicBoundaryConditions
(
bool
periodic
)
{
usePeriodic
=
periodic
;
}
bool
HarmonicBondForce
::
usesPeriodicBoundaryConditions
()
const
{
return
usePeriodic
;
}
openmmapi/src/LocalEnergyMinimizer.cpp
View file @
73183c61
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* *
* Portions copyright (c) 2010-201
2
Stanford University and the Authors. *
* Portions copyright (c) 2010-201
6
Stanford University and the Authors. *
* Authors: Peter Eastman *
* Authors: Peter Eastman *
* Contributors: *
* Contributors: *
* *
* *
...
@@ -108,7 +108,8 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
...
@@ -108,7 +108,8 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
if
(
x
==
NULL
)
if
(
x
==
NULL
)
throw
OpenMMException
(
"LocalEnergyMinimizer: Failed to allocate memory"
);
throw
OpenMMException
(
"LocalEnergyMinimizer: Failed to allocate memory"
);
double
constraintTol
=
context
.
getIntegrator
().
getConstraintTolerance
();
double
constraintTol
=
context
.
getIntegrator
().
getConstraintTolerance
();
double
k
=
tolerance
/
constraintTol
;
double
workingConstraintTol
=
max
(
1e-4
,
constraintTol
);
double
k
=
tolerance
/
workingConstraintTol
;
// Initialize the minimizer.
// Initialize the minimizer.
...
@@ -121,7 +122,7 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
...
@@ -121,7 +122,7 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
// Make sure the initial configuration satisfies all constraints.
// Make sure the initial configuration satisfies all constraints.
context
.
applyConstraints
(
c
onstraintTol
);
context
.
applyConstraints
(
workingC
onstraintTol
);
// Record the initial positions and determine a normalization constant for scaling the tolerance.
// Record the initial positions and determine a normalization constant for scaling the tolerance.
...
@@ -162,14 +163,14 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
...
@@ -162,14 +163,14 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
if
(
error
>
maxError
)
if
(
error
>
maxError
)
maxError
=
error
;
maxError
=
error
;
}
}
if
(
maxError
<=
c
onstraintTol
)
if
(
maxError
<=
workingC
onstraintTol
)
break
;
// All constraints are satisfied.
break
;
// All constraints are satisfied.
context
.
setPositions
(
initialPos
);
context
.
setPositions
(
initialPos
);
if
(
maxError
>=
prevMaxError
)
if
(
maxError
>=
prevMaxError
)
break
;
// Further tightening the springs doesn't seem to be helping, so just give up.
break
;
// Further tightening the springs doesn't seem to be helping, so just give up.
prevMaxError
=
maxError
;
prevMaxError
=
maxError
;
k
*=
10
;
k
*=
10
;
if
(
maxError
>
100
*
c
onstraintTol
)
{
if
(
maxError
>
100
*
workingC
onstraintTol
)
{
// We've gotten far enough from a valid state that we might have trouble getting
// We've gotten far enough from a valid state that we might have trouble getting
// back, so reset to the original positions.
// back, so reset to the original positions.
...
@@ -181,5 +182,11 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
...
@@ -181,5 +182,11 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
}
}
}
}
lbfgs_free
(
x
);
lbfgs_free
(
x
);
// If necessary, do a final constraint projection to make sure they are satisfied
// to the full precision requested by the user.
if
(
constraintTol
<
workingConstraintTol
)
context
.
applyConstraints
(
workingConstraintTol
);
}
}
Prev
1
2
3
4
5
6
…
14
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment