Gromacs  2025.0-dev-20241009-5c23d5f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "gromacs/math/multidimarray.h"
#include "gromacs/mdspan/extensions.h"
#include "gromacs/utility/arrayref.h"
#include "dimparams.h"
+ Include dependency graph for biasgrid.h:
+ This graph shows which files directly or indirectly include this file:

Description

This file contains datatypes and function declarations necessary for AWH to interface with the grid code.

The grid organizes spatial properties of the AWH coordinate points. This includes traversing points in a specific order, locating neighboring points and calculating distances. Multiple dimensions as well as periodic dimensions are supported.

Todo:
: Replace this by a more generic grid class once that is available.
Author
Viveca Lindahl
Berk Hess hess@.nosp@m.kth..nosp@m.se

Classes

class  gmx::GridAxis
 An axis, i.e. dimension, of the grid. More...
 
struct  gmx::GridPoint
 A point in the grid. More...
 
class  gmx::BiasGrid
 The grid for a single bias, generally multidimensional and periodic. More...
 

Functions

int gmx::multiDimGridIndexToLinear (const BiasGrid &grid, const awh_ivec indexMulti)
 Convert a multidimensional grid point index to a linear one. More...
 
int gmx::multiDimArrayIndexToLinear (const awh_ivec indexMulti, int numDim, const awh_ivec numPointsDim)
 Convert multidimensional array index to a linear one. More...
 
void gmx::linearGridindexToMultiDim (const BiasGrid &grid, int indexLinear, awh_ivec indexMulti)
 Convert a linear grid point index to a multidimensional one. More...
 
void gmx::linearArrayIndexToMultiDim (int indexLinear, int ndim, const awh_ivec numPointsDim, awh_ivec indexMulti)
 Convert a linear array index to a multidimensional one. More...
 
bool gmx::advancePointInSubgrid (const BiasGrid &grid, const awh_ivec subgridOrigin, const awh_ivec subgridNpoints, int *gridPointIndex)
 Find the next grid point in the sub-part of the grid given a starting point. More...
 
void gmx::mapGridToDataGrid (std::vector< int > *gridpointToDatapoint, const MultiDimArray< std::vector< double >, dynamicExtents2D > &data, int numDataPoints, const std::string &dataFilename, const BiasGrid &grid, const std::string &correctFormatMessage)
 Maps each point in the grid to a point in the data grid. More...
 
double gmx::getDeviationFromPointAlongGridAxis (const BiasGrid &grid, int dimIndex, int pointIndex, double value)
 Get the deviation along one dimension from the given value to a point in the grid. More...
 
double gmx::getDeviationFromPointAlongGridAxis (const BiasGrid &grid, int dimIndex, int pointIndex1, int pointIndex2)
 Get the deviation from one point to another along one dimension in the grid. More...
 
bool gmx::pointsAlongLambdaAxis (const BiasGrid &grid, int pointIndex1, int pointIndex2)
 Checks whether two points are along a free energy lambda state axis. More...
 
bool gmx::pointsHaveDifferentLambda (const BiasGrid &grid, int pointIndex1, int pointIndex2)
 Checks whether two points are different in the free energy lambda state dimension (if any). More...