Commit 51b7f9e2 authored by Robert McGibbon's avatar Robert McGibbon
Browse files

Merge master

parents 85bfd73c be0387b6
...@@ -73,6 +73,7 @@ matrix: ...@@ -73,6 +73,7 @@ matrix:
CUDA=false CUDA=false
CC=clang CC=clang
CXX=clang++ CXX=clang++
DOCS_DEPLOY=true
CMAKE_FLAGS="" CMAKE_FLAGS=""
- sudo: false - sudo: false
...@@ -98,11 +99,11 @@ before_install: ...@@ -98,11 +99,11 @@ before_install:
# but this is a fast way to get an apparently functional precompiled # but this is a fast way to get an apparently functional precompiled
# build of swig that's more modern than what's in apt. # build of swig that's more modern than what's in apt.
- if [[ "$OPENCL" == "false" && "$CUDA" == "false" && "$TRAVIS_OS_NAME" == "linux" ]]; then - if [[ "$OPENCL" == "false" && "$CUDA" == "false" && "$TRAVIS_OS_NAME" == "linux" ]]; then
wget https://anaconda.org/anaconda/swig/3.0.2/download/linux-64/swig-3.0.2-0.tar.bz2; wget https://anaconda.org/omnia/swig/3.0.7/download/linux-64/swig-3.0.7-0.tar.bz2;
mkdir $HOME/swig; mkdir $HOME/swig;
tar -xjvf swig-3.0.2-0.tar.bz2 -C $HOME/swig; tar -xjvf swig-3.0.7-0.tar.bz2 -C $HOME/swig;
export PATH=$HOME/swig/bin:$PATH; export PATH=$HOME/swig/bin:$PATH;
export SWIG_LIB=$HOME/swig/share/swig/3.0.2; export SWIG_LIB=$HOME/swig/share/swig/3.0.7;
fi fi
- if [[ "$CUDA" == "true" ]]; then - if [[ "$CUDA" == "true" ]]; then
...@@ -140,3 +141,25 @@ script: ...@@ -140,3 +141,25 @@ script:
- if [ -s Testing/Temporary/LastTestsFailed.log ]; then - if [ -s Testing/Temporary/LastTestsFailed.log ]; then
ctest -I FailedTests.log; ctest -I FailedTests.log;
fi fi
- if [[ ! -z "${DOCS_DEPLOY}" && "${DOCS_DEPLOY}" = "true" ]]; then
pip install sphinx numpydoc;
make DoxygenApiDocs PythonApiDocs;
mkdir -p api-docs;
mv api-python api-docs;
mv api-c++ api-docs;
fi
deploy:
- provider: s3
access_key_id:
secure: "AjE3nuj6kVuf21mOf0aZydW/3S/uCWsaoXC/huRxkxrmsNlnHBNGHZ9N48san1IxZAQM5pyaf7Yo9gkHur9obgq+e3lNgGvPp2mfkNXtLYcLJ46JF4kYliAtutjLWskrLg25Gu3xzF4EQkqSe0Le/oWldWWbTgvvH+KRq/vTHzI="
secret_access_key:
secure: "ISDQNSG2t0666PULtffo4wsKLFdu622EzuZxmiTxvLkjQGQlqm5+qn1Gd5UMLk7Ts2E0psdnmSrf6LVVCfrrQO/hcZHiJw3ZslMPDBBlRr8Epwdldn98ULhVoyQKtjXjCPzroa2UZCl1RFs4Nwb/VdDlI490XV0Lp4Woj1AT8tY="
bucket: "docs.openmm.org"
skip_cleanup: true
region: us-west-1
local_dir: api-docs/
upload_dir: development
on:
branch: master
condition: '! -z "${DOCS_DEPLOY}" && "${DOCS_DEPLOY}" = "true"'
...@@ -65,6 +65,11 @@ ELSE(WIN32) ...@@ -65,6 +65,11 @@ ELSE(WIN32)
ENDIF(NOT OPENMM_INSTALL_PREFIX) ENDIF(NOT OPENMM_INSTALL_PREFIX)
ENDIF(WIN32) ENDIF(WIN32)
IF(WIN32)
ADD_DEFINITIONS(-DWIN32)
ENDIF(WIN32)
# Include CPU-Features for Android # Include CPU-Features for Android
IF (ANDROID) IF (ANDROID)
INCLUDE_DIRECTORIES(${ANDROID_NDK}/sources/cpufeatures) INCLUDE_DIRECTORIES(${ANDROID_NDK}/sources/cpufeatures)
...@@ -119,7 +124,7 @@ IF (APPLE AND (NOT PNACL)) ...@@ -119,7 +124,7 @@ IF (APPLE AND (NOT PNACL))
SET (CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "The processor architectures to build for" FORCE) SET (CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "The processor architectures to build for" FORCE)
ENDIF (NOT CMAKE_OSX_ARCHITECTURES) ENDIF (NOT CMAKE_OSX_ARCHITECTURES)
IF (NOT CMAKE_OSX_SYSROOT) IF (NOT CMAKE_OSX_SYSROOT)
EXECUTE_PROCESS(COMMAND "xcrun" "--show-sdk-path" OUTPUT_VARIABLE XCRUN_OSX_SYSROOT RESULT_VARIABLE XCRUN_OSX_SYSROOT_STATUS) EXECUTE_PROCESS(COMMAND "xcrun" "--show-sdk-path" OUTPUT_VARIABLE XCRUN_OSX_SYSROOT RESULT_VARIABLE XCRUN_OSX_SYSROOT_STATUS OUTPUT_STRIP_TRAILING_WHITESPACE)
IF (XCRUN_OSX_SYSROOT_STATUS EQUAL 0) IF (XCRUN_OSX_SYSROOT_STATUS EQUAL 0)
SET (CMAKE_OSX_SYSROOT "${XCRUN_OSX_SYSROOT}" CACHE STRING "SDK Path" FORCE) SET (CMAKE_OSX_SYSROOT "${XCRUN_OSX_SYSROOT}" CACHE STRING "SDK Path" FORCE)
ENDIF (XCRUN_OSX_SYSROOT_STATUS EQUAL 0) ENDIF (XCRUN_OSX_SYSROOT_STATUS EQUAL 0)
......
...@@ -20,7 +20,7 @@ install: ...@@ -20,7 +20,7 @@ install:
- "set PATH=C:\\fftw;%PATH%" - "set PATH=C:\\fftw;%PATH%"
# Download and install some OpenMM build dependencies (doxygen, swig) # Download and install some OpenMM build dependencies (doxygen, swig)
- choco install -y doxygen.portable swig - choco install -y doxygen.portable swig > null
# Set CMake options # Set CMake options
- ps: $env:CMAKE_FLAGS='-DOPENMM_BUILD_PME_PLUGIN=ON -DFFTW_LIBRARY=C:/fftw/libfftw3f-3.lib -DFFTW_INCLUDES=C:/fftw -DCMAKE_BUILD_TYPE=Release -DOPENMM_BUILD_EXAMPLES=OFF -DCMAKE_CXX_FLAGS_RELEASE="/MD /Od /Ob0 /D NDEBUG"' - ps: $env:CMAKE_FLAGS='-DOPENMM_BUILD_PME_PLUGIN=ON -DFFTW_LIBRARY=C:/fftw/libfftw3f-3.lib -DFFTW_INCLUDES=C:/fftw -DCMAKE_BUILD_TYPE=Release -DOPENMM_BUILD_EXAMPLES=OFF -DCMAKE_CXX_FLAGS_RELEASE="/MD /Od /Ob0 /D NDEBUG"'
......
...@@ -1125,6 +1125,13 @@ perform integration on a modified potential energy surface to allow much faster ...@@ -1125,6 +1125,13 @@ perform integration on a modified potential energy surface to allow much faster
sampling of conformations. For details on how to use them, consult the API sampling of conformations. For details on how to use them, consult the API
documentation. documentation.
Compound Integrator
-------------------
The :class:`CompoundIntegrator` class is useful for cases where you want to use
multiple integration algorithms within a single simulation. It allows you to
create multiple integrators, then switch back and forth between them. For
details on how to use it, consult the API documentation.
Temperature Coupling Temperature Coupling
==================== ====================
......
...@@ -121,6 +121,9 @@ ...@@ -121,6 +121,9 @@
#endif #endif
#if _MSC_VER >= 1900
#include <ctime>
#else
/* Windows doesn't have this, so declare it ourselves. */ /* Windows doesn't have this, so declare it ourselves. */
struct timespec struct timespec
{ {
...@@ -128,6 +131,7 @@ struct timespec ...@@ -128,6 +131,7 @@ struct timespec
long long tv_sec; long long tv_sec;
long long tv_nsec; long long tv_nsec;
}; };
#endif
typedef struct _pthread_cleanup _pthread_cleanup; typedef struct _pthread_cleanup _pthread_cleanup;
struct _pthread_cleanup struct _pthread_cleanup
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "openmm/BrownianIntegrator.h" #include "openmm/BrownianIntegrator.h"
#include "openmm/CMAPTorsionForce.h" #include "openmm/CMAPTorsionForce.h"
#include "openmm/CMMotionRemover.h" #include "openmm/CMMotionRemover.h"
#include "openmm/CompoundIntegrator.h"
#include "openmm/CustomBondForce.h" #include "openmm/CustomBondForce.h"
#include "openmm/CustomCentroidBondForce.h" #include "openmm/CustomCentroidBondForce.h"
#include "openmm/CustomCompoundBondForce.h" #include "openmm/CustomCompoundBondForce.h"
......
...@@ -85,8 +85,8 @@ public: ...@@ -85,8 +85,8 @@ public:
* Get the energy values of a map. * Get the energy values of a map.
* *
* @param index the index of the map for which to get energy values * @param index the index of the map for which to get energy values
* @param size the size of the map along each dimension * @param[out] size the size of the map along each dimension
* @param energy the energy values for the map. This must be of length size*size. * @param[out] energy the energy values for the map. This must be of length size*size.
* The element energy[i+size*j] contains the energy when the first * The element energy[i+size*j] contains the energy when the first
* torsion angle equals i*2*PI/size and the second torsion angle * torsion angle equals i*2*PI/size and the second torsion angle
* equals j*2*PI/size. * equals j*2*PI/size.
...@@ -122,15 +122,15 @@ public: ...@@ -122,15 +122,15 @@ public:
* Get the force field parameters for a CMAP torsion term. * Get the force field parameters for a CMAP torsion term.
* *
* @param index the index of the torsion for which to get parameters * @param index the index of the torsion for which to get parameters
* @param map the index of the map to use for this term * @param[out] map the index of the map to use for this term
* @param a1 the index of the first particle forming the first torsion * @param[out] a1 the index of the first particle forming the first torsion
* @param a2 the index of the second particle forming the first torsion * @param[out] a2 the index of the second particle forming the first torsion
* @param a3 the index of the third particle forming the first torsion * @param[out] a3 the index of the third particle forming the first torsion
* @param a4 the index of the fourth particle forming the first torsion * @param[out] a4 the index of the fourth particle forming the first torsion
* @param b1 the index of the first particle forming the second torsion * @param[out] b1 the index of the first particle forming the second torsion
* @param b2 the index of the second particle forming the second torsion * @param[out] b2 the index of the second particle forming the second torsion
* @param b3 the index of the third particle forming the second torsion * @param[out] b3 the index of the third particle forming the second torsion
* @param b4 the index of the fourth particle forming the second torsion * @param[out] b4 the index of the fourth particle forming the second torsion
*/ */
void getTorsionParameters(int index, int& map, int& a1, int& a2, int& a3, int& a4, int& b1, int& b2, int& b3, int& b4) const; void getTorsionParameters(int index, int& map, int& a1, int& a2, int& a3, int& a4, int& b1, int& b2, int& b3, int& b4) const;
/** /**
......
#ifndef OPENMM_COMPOUNDINTEGRATOR_H_
#define OPENMM_COMPOUNDINTEGRATOR_H_
/* -------------------------------------------------------------------------- *
* OpenMM *
* -------------------------------------------------------------------------- *
* This is part of the OpenMM molecular simulation toolkit originating from *
* Simbios, the NIH National Center for Physics-Based Simulation of *
* Biological Structures at Stanford, funded under the NIH Roadmap for *
* Medical Research, grant U54 GM072970. See https://simtk.org. *
* *
* Portions copyright (c) 2015 Stanford University and the Authors. *
* Authors: Peter Eastman *
* Contributors: *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the "Software"), *
* to deal in the Software without restriction, including without limitation *
* the rights to use, copy, modify, merge, publish, distribute, sublicense, *
* and/or sell copies of the Software, and to permit persons to whom the *
* Software is furnished to do so, subject to the following conditions: *
* *
* The above copyright notice and this permission notice shall be included in *
* all copies or substantial portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *
* THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
* USE OR OTHER DEALINGS IN THE SOFTWARE. *
* -------------------------------------------------------------------------- */
#include "Integrator.h"
#include "openmm/Kernel.h"
#include "internal/windowsExport.h"
namespace OpenMM {
/**
* This class allows you to use multiple integration algorithms within a single simulation,
* switching back and forth between them. To use it, create whatever other Integrators
* you need, then add all of them to a CustomIntegrator:
*
* <tt><pre>
* CompoundIntegrator compoundIntegrator;
* compoundIntegrator.addIntegrator(new VerletIntegrator(0.001));
* compoundIntegrator.addIntegrator(new LangevinIntegrator(300.0, 1.0, 0.001));
* </pre></tt>
*
* Next create a Context, specifying the CompoundIntegrator as the Integrator to use for
* the Context:
*
* <tt><pre>
* Context context(system, compoundIntegrator);
* </pre></tt>
*
* Finally, call setCurrentIntegrator() to set which Integrator is active. That one will
* be used for all calls to step() until the next time you change it.
*
* <tt><pre>
* compoundIntegrator.setCurrentIntegrator(0);
* compoundIntegrator.step(1000); // Take 1000 steps of Verlet dynamics
* compoundIntegrator.setCurrentIntegrator(1);
* compoundIntegrator.step(1000); // Take 1000 steps of Langevin dynamics
* </pre></tt>
*
* When switching between integrators, it is important to make sure they are compatible with
* each other, and that they will interpret the positions and velocities in the same way.
* Remember that leapfrog style integrators assume the positions and velocities are offset
* from each other by half a time step. When switching between a leapfrog and non-leapfrog
* integrator, you must first adjust the velocities to avoid introducing error. This is also
* true when switching between two leapfrog integrators that use different step sizes,
* since they will interpret the velocities as corresponding to different times.
*/
class OPENMM_EXPORT CompoundIntegrator : public Integrator {
public:
/**
* Create a CompoundIntegrator.
*/
explicit CompoundIntegrator();
~CompoundIntegrator();
/**
* Get the number of Integrators that have been added to this CompoundIntegrator.
*/
int getNumIntegrators() const;
/**
* Add an Integrator to this CompoundIntegrator. The Integrator object should have
* been created on the heap with the "new" operator. The CompoundIntegrator takes over
* ownership of it, and deletes it when the CompoundIntegrator itself is deleted.
* All Integrators must be added before the Context is created.
*
* @param integrator the Integrator to add
* @return the index of the Integrator that was added
*/
int addIntegrator(Integrator* integrator);
/**
* Get a reference to one of the Integrators that have been added to this CompoundIntegrator.
*
* @param index the index of the Integrator to get
*/
Integrator& getIntegrator(int index);
/**
* Get a const reference to one of the Integrators that have been added to this CompoundIntegrator.
*
* @param index the index of the Integrator to get
*/
const Integrator& getIntegrator(int index) const;
/**
* Get the index of the current Integrator.
*/
int getCurrentIntegrator() const;
/**
* Set the current Integrator.
*
* @param index the index of the Integrator to use
*/
void setCurrentIntegrator(int index);
/**
* Get the size of each time step, in picoseconds. This method calls getStepSize() on
* whichever Integrator has been set as current.
*
* @return the step size, measured in ps
*/
double getStepSize() const;
/**
* Set the size of each time step, in picoseconds. This method calls setStepSize() on
* whichever Integrator has been set as current.
*
* @param size the step size, measured in ps
*/
void setStepSize(double size);
/**
* Get the distance tolerance within which constraints are maintained, as a fraction of the constrained distance.
* This method calls getConstraintTolerance() on whichever Integrator has been set as current.
*/
double getConstraintTolerance() const;
/**
* Set the distance tolerance within which constraints are maintained, as a fraction of the constrained distance.
* This method calls setConstraintTolerance() on whichever Integrator has been set as current.
*/
void setConstraintTolerance(double tol);
/**
* Advance a simulation through time by taking a series of time steps. This method
* calls step() on whichever Integrator has been set as current.
*
* @param steps the number of time steps to take
*/
void step(int steps);
protected:
/**
* This will be called by the Context when it is created. It informs the Integrator
* of what context it will be integrating, and gives it a chance to do any necessary initialization.
* It will also get called again if the application calls reinitialize() on the Context.
*
* The implementation calls initialize() on each Integrator that has been added to this CompoundIntegrator.
*/
void initialize(ContextImpl& context);
/**
* This will be called by the Context when it is destroyed to let the Integrator do any necessary
* cleanup. It will also get called again if the application calls reinitialize() on the Context.
*
* The implementation calls cleanup() on each Integrator that has been added to this CompoundIntegrator.
*/
void cleanup();
/**
* Get the names of all Kernels used by this Integrator.
*
* The implementation returns the union of all kernel names required by all Integrators that have been added.
*/
std::vector<std::string> getKernelNames();
/**
* Compute the kinetic energy of the system at the current time.
*
* The implementation calls computeKineticEnergy() on whichever Integrator has been set as current.
*/
double computeKineticEnergy();
private:
int currentIntegrator;
std::vector<Integrator*> integrators;
};
} // namespace OpenMM
#endif /*OPENMM_COMPOUNDINTEGRATOR_H_*/
...@@ -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-2013 Stanford University and the Authors. * * Portions copyright (c) 2008-2015 Stanford University and the Authors. *
* Authors: Peter Eastman * * Authors: Peter Eastman *
* Contributors: * * Contributors: *
* * * *
...@@ -165,6 +165,11 @@ public: ...@@ -165,6 +165,11 @@ public:
* @param randomSeed the random number seed to use when selecting velocities * @param randomSeed the random number seed to use when selecting velocities
*/ */
void setVelocitiesToTemperature(double temperature, int randomSeed=osrngseed()); void setVelocitiesToTemperature(double temperature, int randomSeed=osrngseed());
/**
* Get all adjustable parameters that have been defined by Force objects in the System, along
* with their current values.
*/
const std::map<std::string, double>& getParameters() const;
/** /**
* Get the value of an adjustable parameter defined by a Force object in the System. * Get the value of an adjustable parameter defined by a Force object in the System.
* *
......
...@@ -159,7 +159,7 @@ public: ...@@ -159,7 +159,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -176,10 +176,10 @@ public: ...@@ -176,10 +176,10 @@ public:
* Get the force field parameters for an angle term. * Get the force field parameters for an angle term.
* *
* @param index the index of the angle for which to get parameters * @param index the index of the angle for which to get parameters
* @param particle1 the index of the first particle connected by the angle * @param[out] particle1 the index of the first particle connected by the angle
* @param particle2 the index of the second particle connected by the angle * @param[out] particle2 the index of the second particle connected by the angle
* @param particle3 the index of the third particle connected by the angle * @param[out] particle3 the index of the third particle connected by the angle
* @param parameters the list of parameters for the angle * @param[out] parameters the list of parameters for the angle
*/ */
void getAngleParameters(int index, int& particle1, int& particle2, int& particle3, std::vector<double>& parameters) const; void getAngleParameters(int index, int& particle1, int& particle2, int& particle3, std::vector<double>& parameters) const;
/** /**
......
...@@ -159,7 +159,7 @@ public: ...@@ -159,7 +159,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -175,9 +175,9 @@ public: ...@@ -175,9 +175,9 @@ public:
* Get the force field parameters for a bond term. * Get the force field parameters for a bond term.
* *
* @param index the index of the bond for which to get parameters * @param index the index of the bond for which to get parameters
* @param particle1 the index of the first particle connected by the bond * @param[out] particle1 the index of the first particle connected by the bond
* @param particle2 the index of the second particle connected by the bond * @param[out] particle2 the index of the second particle connected by the bond
* @param parameters the list of parameters for the bond * @param[out] parameters the list of parameters for the bond
*/ */
void getBondParameters(int index, int& particle1, int& particle2, std::vector<double>& parameters) const; void getBondParameters(int index, int& particle1, int& particle2, std::vector<double>& parameters) const;
/** /**
......
...@@ -226,7 +226,7 @@ public: ...@@ -226,7 +226,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -242,8 +242,8 @@ public: ...@@ -242,8 +242,8 @@ public:
* Get the properties of a group. * Get the properties of a group.
* *
* @param index the index of the group to get * @param index the index of the group to get
* @param particles the indices of the particles in the group * @param[out] particles the indices of the particles in the group
* @param weights the weight used for each particle when computing the center position. * @param[out] weights the weight used for each particle when computing the center position.
* If no weights were specified, this vector will be empty indicating that particle * If no weights were specified, this vector will be empty indicating that particle
* masses should be used as weights. * masses should be used as weights.
*/ */
...@@ -269,8 +269,8 @@ public: ...@@ -269,8 +269,8 @@ public:
* Get the properties of a bond. * Get the properties of a bond.
* *
* @param index the index of the bond to get * @param index the index of the bond to get
* @param groups the indices of the groups in the bond * @param[out] groups the indices of the groups in the bond
* @param parameters the list of per-bond parameter values for the bond * @param[out] parameters the list of per-bond parameter values for the bond
*/ */
void getBondParameters(int index, std::vector<int>& groups, std::vector<double>& parameters) const; void getBondParameters(int index, std::vector<int>& groups, std::vector<double>& parameters) const;
/** /**
......
...@@ -209,7 +209,7 @@ public: ...@@ -209,7 +209,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -224,8 +224,8 @@ public: ...@@ -224,8 +224,8 @@ public:
* Get the properties of a bond. * Get the properties of a bond.
* *
* @param index the index of the bond to get * @param index the index of the bond to get
* @param particles the indices of the particles in the bond * @param[out] particles the indices of the particles in the bond
* @param parameters the list of per-bond parameter values for the bond * @param[out] parameters the list of per-bond parameter values for the bond
*/ */
void getBondParameters(int index, std::vector<int>& particles, std::vector<double>& parameters) const; void getBondParameters(int index, std::vector<int>& particles, std::vector<double>& parameters) const;
/** /**
......
...@@ -170,7 +170,7 @@ public: ...@@ -170,7 +170,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -185,8 +185,8 @@ public: ...@@ -185,8 +185,8 @@ public:
* Get the force field parameters for a force field term. * Get the force field parameters for a force field term.
* *
* @param index the index of the particle term for which to get parameters * @param index the index of the particle term for which to get parameters
* @param particle the index of the particle this term is applied to * @param[out] particle the index of the particle this term is applied to
* @param parameters the list of parameters for the force field term * @param[out] parameters the list of parameters for the force field term
*/ */
void getParticleParameters(int index, int& particle, std::vector<double>& parameters) const; void getParticleParameters(int index, int& particle, std::vector<double>& parameters) const;
/** /**
......
...@@ -309,7 +309,7 @@ public: ...@@ -309,7 +309,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -324,7 +324,7 @@ public: ...@@ -324,7 +324,7 @@ public:
* Get the nonbonded force parameters for a particle. * Get the nonbonded force parameters for a particle.
* *
* @param index the index of the particle for which to get parameters * @param index the index of the particle for which to get parameters
* @param parameters the list of parameters for the specified particle * @param[out] parameters the list of parameters for the specified particle
*/ */
void getParticleParameters(int index, std::vector<double>& parameters) const; void getParticleParameters(int index, std::vector<double>& parameters) const;
/** /**
...@@ -355,8 +355,8 @@ public: ...@@ -355,8 +355,8 @@ public:
* Get the properties of a computed value. * Get the properties of a computed value.
* *
* @param index the index of the computed value for which to get parameters * @param index the index of the computed value for which to get parameters
* @param name the name of the value * @param[out] name the name of the value
* @param expression an algebraic expression to evaluate when calculating the computed value. If the * @param[out] expression an algebraic expression to evaluate when calculating the computed value. If the
* ComputationType is SingleParticle, the expression is evaluated independently * ComputationType is SingleParticle, the expression is evaluated independently
* for each particle, and may depend on its x, y, and z coordinates, as well as the per-particle * for each particle, and may depend on its x, y, and z coordinates, as well as the per-particle
* parameters and previous computed values for that particle. If the ComputationType is ParticlePair * parameters and previous computed values for that particle. If the ComputationType is ParticlePair
...@@ -366,7 +366,7 @@ public: ...@@ -366,7 +366,7 @@ public:
* the per-particle parameters and previous computed values for each of them. * the per-particle parameters and previous computed values for each of them.
* Append "1" to a variable name to indicate the parameter for the particle whose * Append "1" to a variable name to indicate the parameter for the particle whose
* value is being calculated, and "2" to indicate the particle it is interacting with. * value is being calculated, and "2" to indicate the particle it is interacting with.
* @param type the method to use for computing this value * @param[out] type the method to use for computing this value
*/ */
void getComputedValueParameters(int index, std::string& name, std::string& expression, ComputationType& type) const; void getComputedValueParameters(int index, std::string& name, std::string& expression, ComputationType& type) const;
/** /**
...@@ -407,7 +407,7 @@ public: ...@@ -407,7 +407,7 @@ public:
* Get the properties of a term to the energy computation. * Get the properties of a term to the energy computation.
* *
* @param index the index of the term for which to get parameters * @param index the index of the term for which to get parameters
* @param expression an algebraic expression to evaluate when calculating the energy. If the * @param[out] expression an algebraic expression to evaluate when calculating the energy. If the
* ComputationType is SingleParticle, the expression is evaluated once * ComputationType is SingleParticle, the expression is evaluated once
* for each particle, and may depend on its x, y, and z coordinates, as well as the per-particle * for each particle, and may depend on its x, y, and z coordinates, as well as the per-particle
* parameters and computed values for that particle. If the ComputationType is ParticlePair or * parameters and computed values for that particle. If the ComputationType is ParticlePair or
...@@ -417,7 +417,7 @@ public: ...@@ -417,7 +417,7 @@ public:
* the per-particle parameters and computed values for each of them. * the per-particle parameters and computed values for each of them.
* Append "1" to a variable name to indicate the parameter for the first particle * Append "1" to a variable name to indicate the parameter for the first particle
* in the pair and "2" to indicate the second particle in the pair. * in the pair and "2" to indicate the second particle in the pair.
* @param type the method to use for computing this value * @param[out] type the method to use for computing this value
*/ */
void getEnergyTermParameters(int index, std::string& expression, ComputationType& type) const; void getEnergyTermParameters(int index, std::string& expression, ComputationType& type) const;
/** /**
...@@ -449,8 +449,8 @@ public: ...@@ -449,8 +449,8 @@ public:
* Get the particles in a pair whose interaction should be excluded. * Get the particles in a pair whose interaction should be excluded.
* *
* @param index the index of the exclusion for which to get particle indices * @param index the index of the exclusion for which to get particle indices
* @param particle1 the index of the first particle in the pair * @param[out] particle1 the index of the first particle in the pair
* @param particle2 the index of the second particle in the pair * @param[out] particle2 the index of the second particle in the pair
*/ */
void getExclusionParticles(int index, int& particle1, int& particle2) const; void getExclusionParticles(int index, int& particle1, int& particle2) const;
/** /**
......
...@@ -282,7 +282,7 @@ public: ...@@ -282,7 +282,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -301,12 +301,12 @@ public: ...@@ -301,12 +301,12 @@ public:
* Get the properties of a donor group. * Get the properties of a donor group.
* *
* @param index the index of the donor group to get * @param index the index of the donor group to get
* @param d1 the index of the first particle for this donor group * @param[out] d1 the index of the first particle for this donor group
* @param d2 the index of the second particle for this donor group. If the group only * @param[out] d2 the index of the second particle for this donor group. If the group only
* includes one particle, this will be -1. * includes one particle, this will be -1.
* @param d3 the index of the third particle for this donor group. If the group includes * @param[out] d3 the index of the third particle for this donor group. If the group includes
* less than three particles, this will be -1. * less than three particles, this will be -1.
* @param parameters the list of per-donor parameter values for the donor * @param[out] parameters the list of per-donor parameter values for the donor
*/ */
void getDonorParameters(int index, int& d1, int& d2, int& d3, std::vector<double>& parameters) const; void getDonorParameters(int index, int& d1, int& d2, int& d3, std::vector<double>& parameters) const;
/** /**
...@@ -337,12 +337,12 @@ public: ...@@ -337,12 +337,12 @@ public:
* Get the properties of an acceptor group. * Get the properties of an acceptor group.
* *
* @param index the index of the acceptor group to get * @param index the index of the acceptor group to get
* @param a1 the index of the first particle for this acceptor group * @param[out] a1 the index of the first particle for this acceptor group
* @param a2 the index of the second particle for this acceptor group. If the group only * @param[out] a2 the index of the second particle for this acceptor group. If the group only
* includes one particle, this will be -1. * includes one particle, this will be -1.
* @param a3 the index of the third particle for this acceptor group. If the group includes * @param[out] a3 the index of the third particle for this acceptor group. If the group includes
* less than three particles, this will be -1. * less than three particles, this will be -1.
* @param parameters the list of per-acceptor parameter values for the acceptor * @param[out] parameters the list of per-acceptor parameter values for the acceptor
*/ */
void getAcceptorParameters(int index, int& a1, int& a2, int& a3, std::vector<double>& parameters) const; void getAcceptorParameters(int index, int& a1, int& a2, int& a3, std::vector<double>& parameters) const;
/** /**
...@@ -369,16 +369,16 @@ public: ...@@ -369,16 +369,16 @@ public:
* Get the donor and acceptor in a pair whose interaction should be excluded. * Get the donor and acceptor in a pair whose interaction should be excluded.
* *
* @param index the index of the exclusion for which to get donor and acceptor indices * @param index the index of the exclusion for which to get donor and acceptor indices
* @param particle1 the index of the donor * @param[out] particle1 the index of the donor
* @param particle2 the index of the acceptor * @param[out] particle2 the index of the acceptor
*/ */
void getExclusionParticles(int index, int& donor, int& acceptor) const; void getExclusionParticles(int index, int& donor, int& acceptor) const;
/** /**
* Get the donor and acceptor in a pair whose interaction should be excluded. * Get the donor and acceptor in a pair whose interaction should be excluded.
* *
* @param index the index of the exclusion for which to get donor and acceptor indices * @param index the index of the exclusion for which to get donor and acceptor indices
* @param particle1 the index of the donor * @param donor the index of the donor
* @param particle2 the index of the acceptor * @param acceptor the index of the acceptor
*/ */
void setExclusionParticles(int index, int donor, int acceptor); void setExclusionParticles(int index, int donor, int acceptor);
/** /**
......
...@@ -371,7 +371,7 @@ public: ...@@ -371,7 +371,7 @@ public:
* Get the value of a per-DOF variable, specified by name. * Get the value of a per-DOF variable, specified by name.
* *
* @param name the name of the variable to get * @param name the name of the variable to get
* @param values the values of the variable for all degrees of freedom * @param[out] values the values of the variable for all degrees of freedom
* are stored into this * are stored into this
*/ */
void getPerDofVariableByName(const std::string& name, std::vector<Vec3>& values) const; void getPerDofVariableByName(const std::string& name, std::vector<Vec3>& values) const;
...@@ -446,7 +446,7 @@ public: ...@@ -446,7 +446,7 @@ public:
/** /**
* Add a step which begins a new "if" block. * Add a step which begins a new "if" block.
* *
* @param expression a mathematical expression involving a comparison operator * @param condition a mathematical expression involving a comparison operator
* and global variables. All steps between this one and * and global variables. All steps between this one and
* the end of the block are executed only if the condition * the end of the block are executed only if the condition
* is true. * is true.
...@@ -457,7 +457,7 @@ public: ...@@ -457,7 +457,7 @@ public:
/** /**
* Add a step which begins a new "while" block. * Add a step which begins a new "while" block.
* *
* @param expression a mathematical expression involving a comparison operator * @param condition a mathematical expression involving a comparison operator
* and global variables. All steps between this one and * and global variables. All steps between this one and
* the end of the block are executed repeatedly as long as * the end of the block are executed repeatedly as long as
* the condition remains true. * the condition remains true.
...@@ -476,12 +476,13 @@ public: ...@@ -476,12 +476,13 @@ public:
* Get the details of a computation step that has been added to the integration algorithm. * Get the details of a computation step that has been added to the integration algorithm.
* *
* @param index the index of the computation step to get * @param index the index of the computation step to get
* @param type on exit, the type of computation this step performs * @param[out] type the type of computation this step performs
* @param variable on exit, the variable into which this step stores its result. If this * @param[out] variable the variable into which this step stores its
* step does not store a result in a variable, this will be an * result. If this step does not store a result in
* empty string. * a variable, this will be an empty string.
* @param expression on exit, the expression this step evaluates. If this step does not * @param[out] expression the expression this step evaluates. If
* evaluate an expression, this will be an empty string. * this step does not evaluate an expression, this
* will be an empty string.
*/ */
void getComputationStep(int index, ComputationType& type, std::string& variable, std::string& expression) const; void getComputationStep(int index, ComputationType& type, std::string& variable, std::string& expression) const;
/** /**
......
...@@ -337,7 +337,7 @@ public: ...@@ -337,7 +337,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -353,8 +353,8 @@ public: ...@@ -353,8 +353,8 @@ public:
* Get the nonbonded force parameters for a particle. * Get the nonbonded force parameters for a particle.
* *
* @param index the index of the particle for which to get parameters * @param index the index of the particle for which to get parameters
* @param parameters the list of parameters for the specified particle * @param[out] parameters the list of parameters for the specified particle
* @param type the type of the specified particle * @param[out] type the type of the specified particle
*/ */
void getParticleParameters(int index, std::vector<double>& parameters, int& type) const; void getParticleParameters(int index, std::vector<double>& parameters, int& type) const;
/** /**
...@@ -379,8 +379,8 @@ public: ...@@ -379,8 +379,8 @@ public:
* Get the particles in a pair whose interaction should be excluded. * Get the particles in a pair whose interaction should be excluded.
* *
* @param index the index of the exclusion for which to get particle indices * @param index the index of the exclusion for which to get particle indices
* @param particle1 the index of the first particle in the pair * @param[out] particle1 the index of the first particle in the pair
* @param particle2 the index of the second particle in the pair * @param[out] particle2 the index of the second particle in the pair
*/ */
void getExclusionParticles(int index, int& particle1, int& particle2) const; void getExclusionParticles(int index, int& particle1, int& particle2) const;
/** /**
...@@ -406,7 +406,7 @@ public: ...@@ -406,7 +406,7 @@ public:
* regardless of the type of the specified particle. * regardless of the type of the specified particle.
* *
* @param index the index of the particle within the interaction (between 0 and getNumParticlesPerSet()) * @param index the index of the particle within the interaction (between 0 and getNumParticlesPerSet())
* @param types the allowed types for the specified particle * @param[out] types the allowed types for the specified particle
*/ */
void getTypeFilter(int index, std::set<int>& types) const; void getTypeFilter(int index, std::set<int>& types) const;
/** /**
......
...@@ -318,7 +318,7 @@ public: ...@@ -318,7 +318,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -333,7 +333,7 @@ public: ...@@ -333,7 +333,7 @@ public:
* Get the nonbonded force parameters for a particle. * Get the nonbonded force parameters for a particle.
* *
* @param index the index of the particle for which to get parameters * @param index the index of the particle for which to get parameters
* @param parameters the list of parameters for the specified particle * @param[out] parameters the list of parameters for the specified particle
*/ */
void getParticleParameters(int index, std::vector<double>& parameters) const; void getParticleParameters(int index, std::vector<double>& parameters) const;
/** /**
...@@ -357,8 +357,8 @@ public: ...@@ -357,8 +357,8 @@ public:
* Get the particles in a pair whose interaction should be excluded. * Get the particles in a pair whose interaction should be excluded.
* *
* @param index the index of the exclusion for which to get particle indices * @param index the index of the exclusion for which to get particle indices
* @param particle1 the index of the first particle in the pair * @param[out] particle1 the index of the first particle in the pair
* @param particle2 the index of the second particle in the pair * @param[out] particle2 the index of the second particle in the pair
*/ */
void getExclusionParticles(int index, int& particle1, int& particle2) const; void getExclusionParticles(int index, int& particle1, int& particle2) const;
/** /**
...@@ -441,8 +441,8 @@ public: ...@@ -441,8 +441,8 @@ public:
* Get the parameters for an interaction group. * Get the parameters for an interaction group.
* *
* @param index the index of the interaction group for which to get parameters * @param index the index of the interaction group for which to get parameters
* @param set1 the first set of particles forming the interaction group * @param[out] set1 the first set of particles forming the interaction group
* @param set2 the second set of particles forming the interaction group * @param[out] set2 the second set of particles forming the interaction group
*/ */
void getInteractionGroupParameters(int index, std::set<int>& set1, std::set<int>& set2) const; void getInteractionGroupParameters(int index, std::set<int>& set1, std::set<int>& set2) const;
/** /**
......
...@@ -159,7 +159,7 @@ public: ...@@ -159,7 +159,7 @@ public:
* Set the default value of a global parameter. * Set the default value of a global parameter.
* *
* @param index the index of the parameter for which to set the default value * @param index the index of the parameter for which to set the default value
* @param name the default value of the parameter * @param defaultValue the default value of the parameter
*/ */
void setGlobalParameterDefaultValue(int index, double defaultValue); void setGlobalParameterDefaultValue(int index, double defaultValue);
/** /**
...@@ -177,11 +177,11 @@ public: ...@@ -177,11 +177,11 @@ public:
* Get the force field parameters for a torsion term. * Get the force field parameters for a torsion term.
* *
* @param index the index of the torsion for which to get parameters * @param index the index of the torsion for which to get parameters
* @param particle1 the index of the first particle connected by the torsion * @param[out] particle1 the index of the first particle connected by the torsion
* @param particle2 the index of the second particle connected by the torsion * @param[out] particle2 the index of the second particle connected by the torsion
* @param particle3 the index of the third particle connected by the torsion * @param[out] particle3 the index of the third particle connected by the torsion
* @param particle4 the index of the fourth particle connected by the torsion * @param[out] particle4 the index of the fourth particle connected by the torsion
* @param parameters the list of parameters for the torsion * @param[out] parameters the list of parameters for the torsion
*/ */
void getTorsionParameters(int index, int& particle1, int& particle2, int& particle3, int& particle4, std::vector<double>& parameters) const; void getTorsionParameters(int index, int& particle1, int& particle2, int& particle3, int& particle4, std::vector<double>& parameters) const;
/** /**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment