Continuous2DFunction

class OpenMM::Continuous2DFunction : public OpenMM::TabulatedFunction

This is a TabulatedFunction that computes a continuous two dimensional function.

Public Functions

Continuous2DFunction(int xsize, int ysize, const std::vector<double> &values, double xmin, double xmax, double ymin, double ymax, bool periodic = false)

Create a Continuous2DFunction f(x,y) based on a set of tabulated values.

Parameters
  • values – the tabulated values of the function f(x,y) at xsize uniformly spaced values of x between xmin and xmax, and ysize values of y between ymin and ymax. A natural cubic spline is used to interpolate between the tabulated values. The function is assumed to be zero when x or y is outside its specified range. The values should be ordered so that values[i+xsize*j] = f(x_i,y_j), where x_i is the i’th uniformly spaced value of x. This must be of length xsize*ysize.

  • xsize – the number of table elements along the x direction

  • ysize – the number of table elements along the y direction

  • xmin – the value of x corresponding to the first element of values

  • xmax – the value of x corresponding to the last element of values

  • ymin – the value of y corresponding to the first element of values

  • ymax – the value of y corresponding to the last element of values

  • periodic – whether the interpolated function is periodic

void getFunctionParameters(int &xsize, int &ysize, std::vector<double> &values, double &xmin, double &xmax, double &ymin, double &ymax) const

Get the parameters for the tabulated function.

Parameters
  • values[out] the tabulated values of the function f(x,y) at xsize uniformly spaced values of x between xmin and xmax, and ysize values of y between ymin and ymax. A natural cubic spline is used to interpolate between the tabulated values. The function is assumed to be zero when x or y is outside its specified range. The values should be ordered so that values[i+xsize*j] = f(x_i,y_j), where x_i is the i’th uniformly spaced value of x. This must be of length xsize*ysize.

  • xsize[out] the number of table elements along the x direction

  • ysize[out] the number of table elements along the y direction

  • xmin[out] the value of x corresponding to the first element of values

  • xmax[out] the value of x corresponding to the last element of values

  • ymin[out] the value of y corresponding to the first element of values

  • ymax[out] the value of y corresponding to the last element of values

void setFunctionParameters(int xsize, int ysize, const std::vector<double> &values, double xmin, double xmax, double ymin, double ymax)

Set the parameters for the tabulated function.

Parameters
  • values – the tabulated values of the function f(x,y) at xsize uniformly spaced values of x between xmin and xmax, and ysize values of y between ymin and ymax. A natural cubic spline is used to interpolate between the tabulated values. The function is assumed to be zero when x or y is outside its specified range. The values should be ordered so that values[i+xsize*j] = f(x_i,y_j), where x_i is the i’th uniformly spaced value of x. This must be of length xsize*ysize.

  • xsize – the number of table elements along the x direction

  • ysize – the number of table elements along the y direction

  • xmin – the value of x corresponding to the first element of values

  • xmax – the value of x corresponding to the last element of values

  • ymin – the value of y corresponding to the first element of values

  • ymax – the value of y corresponding to the last element of values

virtual Continuous2DFunction *Copy() const

Create a deep copy of the tabulated function

Deprecated:

This will be removed in a future release.