OpenMM
|
This is a Monte Carlo barostat designed specifically for membrane simulations. More...
#include <MonteCarloMembraneBarostat.h>
Public Types | |
enum | XYMode { XYIsotropic = 0, XYAnisotropic = 1 } |
This is an enumeration of the different behaviors for the X and Y axes. More... | |
enum | ZMode { ZFree = 0, ZFixed = 1, ConstantVolume = 2 } |
This is an enumeration of the different behaviors for Z axis. More... | |
Public Member Functions | |
MonteCarloMembraneBarostat (double defaultPressure, double defaultSurfaceTension, double temperature, XYMode xymode, ZMode zmode, int frequency=25) | |
Create a MonteCarloMembraneBarostat. More... | |
double | getDefaultPressure () const |
Get the default pressure acting on the system (in bar). More... | |
void | setDefaultPressure (double pressure) |
Set the default pressure acting on the system. More... | |
double | getDefaultSurfaceTension () const |
Get the default surface tension acting on the system (in bar*nm). More... | |
void | setDefaultSurfaceTension (double surfaceTension) |
Set the default surface tension acting on the system. More... | |
int | getFrequency () const |
Get the frequency (in time steps) at which Monte Carlo volume changes should be attempted. More... | |
void | setFrequency (int freq) |
Set the frequency (in time steps) at which Monte Carlo volume changes should be attempted. More... | |
double | getTemperature () const |
Get the temperature at which the system is being maintained, measured in Kelvin. More... | |
void | setTemperature (double temp) |
Set the temperature at which the system is being maintained. More... | |
XYMode | getXYMode () const |
Get the mode specifying the behavior of the X and Y axes. More... | |
void | setXYMode (XYMode mode) |
Set the mode specifying the behavior of the X and Y axes. More... | |
ZMode | getZMode () const |
Get the mode specifying the behavior of the Z axis. More... | |
void | setZMode (ZMode mode) |
Set the mode specifying the behavior of the Z axis. More... | |
int | getRandomNumberSeed () const |
Get the random number seed. More... | |
void | setRandomNumberSeed (int seed) |
Set the random number seed. More... | |
bool | usesPeriodicBoundaryConditions () const |
Returns whether or not this force makes use of periodic boundary conditions. More... | |
![]() | |
Force () | |
virtual | ~Force () |
int | getForceGroup () const |
Get the force group this Force belongs to. More... | |
void | setForceGroup (int group) |
Set the force group this Force belongs to. More... | |
Static Public Member Functions | |
static const std::string & | Pressure () |
This is the name of the parameter which stores the current pressure acting on the system (in bar). More... | |
static const std::string & | SurfaceTension () |
This is the name of the parameter which stores the current surface tension acting on the system (in bar*nm). More... | |
Protected Member Functions | |
ForceImpl * | createImpl () const |
When a Context is created, it invokes this method on each Force in the System. More... | |
![]() | |
ForceImpl & | getImplInContext (Context &context) |
Get the ForceImpl corresponding to this Force in a Context. More... | |
ContextImpl & | getContextImpl (Context &context) |
Get the ContextImpl corresponding to a Context. More... | |
This is a Monte Carlo barostat designed specifically for membrane simulations.
It assumes the membrane lies in the XY plane. The Monte Carlo acceptance criterion includes a term to model isotropic pressure, which depends on the volume of the periodic box, and a second term to model surface tension, which depends on the cross sectional area of the box in the XY plane. Note that pressure and surface tension are defined with opposite senses: a larger pressure tends to make the box smaller, but a larger surface tension tends to make the box larger.
There are options for configuring exactly how the various box dimensions are allowed to change:
This class assumes the simulation is also being run at constant temperature, and requires you to specify the system temperature (since it affects the acceptance probability for Monte Carlo moves). It does not actually perform temperature regulation, however. You must use another mechanism along with it to maintain the temperature, such as LangevinIntegrator or AndersenThermostat.
enum XYMode |
enum ZMode |
This is an enumeration of the different behaviors for Z axis.
MonteCarloMembraneBarostat | ( | double | defaultPressure, |
double | defaultSurfaceTension, | ||
double | temperature, | ||
XYMode | xymode, | ||
ZMode | zmode, | ||
int | frequency = 25 |
||
) |
Create a MonteCarloMembraneBarostat.
defaultPressure | the default pressure acting on the system (in bar) |
defaultSurfaceTension | the default surface tension acting on the system (in bar*nm) |
temperature | the temperature at which the system is being maintained (in Kelvin) |
xymode | the mode specifying the behavior of the X and Y axes |
zmode | the mode specifying the behavior of the Z axis |
frequency | the frequency at which Monte Carlo volume changes should be attempted (in time steps) |
|
protectedvirtual |
|
inline |
Get the default pressure acting on the system (in bar).
|
inline |
Get the default surface tension acting on the system (in bar*nm).
|
inline |
Get the frequency (in time steps) at which Monte Carlo volume changes should be attempted.
If this is set to 0, the barostat is disabled.
|
inline |
Get the random number seed.
See setRandomNumberSeed() for details.
|
inline |
Get the temperature at which the system is being maintained, measured in Kelvin.
|
inline |
Get the mode specifying the behavior of the X and Y axes.
|
inline |
Get the mode specifying the behavior of the Z axis.
|
inlinestatic |
This is the name of the parameter which stores the current pressure acting on the system (in bar).
|
inline |
Set the default pressure acting on the system.
This will affect any new Contexts you create, but not ones that already exist.
pressure | the default pressure acting on the system, measured in bar. |
|
inline |
Set the default surface tension acting on the system.
This will affect any new Contexts you create, but not ones that already exist.
surfaceTension | the default surface tension acting on the system, measured in bar. |
|
inline |
Set the frequency (in time steps) at which Monte Carlo volume changes should be attempted.
If this is set to 0, the barostat is disabled.
|
inline |
Set the random number seed.
It is guaranteed that if two simulations are run with different random number seeds, the sequence of Monte Carlo steps will be different. On the other hand, no guarantees are made about the behavior of simulations that use the same seed. In particular, Platforms are permitted to use non-deterministic algorithms which produce different results on successive runs, even if those runs were initialized identically.
If seed is set to 0 (which is the default value assigned), a unique seed is chosen when a Context is created from this Force. This is done to ensure that each Context receives unique random seeds without you needing to set them explicitly.
|
inline |
Set the temperature at which the system is being maintained.
temp | the system temperature, measured in Kelvin. |
|
inline |
Set the mode specifying the behavior of the X and Y axes.
|
inline |
Set the mode specifying the behavior of the Z axis.
|
inlinestatic |
This is the name of the parameter which stores the current surface tension acting on the system (in bar*nm).
|
inlinevirtual |
Returns whether or not this force makes use of periodic boundary conditions.
Reimplemented from Force.