Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Attributes
gmx::Lincs Class Reference
+ Collaboration diagram for gmx::Lincs:

Description

Data for LINCS algorithm.

Public Attributes

int ncg = 0
 The global number of constraints.
 
int ncg_flex = 0
 The global number of flexible constraints.
 
int ncg_triangle = 0
 The global number of constraints in triangles.
 
int nIter = 0
 The number of iterations.
 
int nOrder = 0
 The order of the matrix expansion.
 
int max_connect = 0
 The maximum number of constraints connected to a single atom.
 
int nc_real = 0
 The number of real constraints.
 
int nc = 0
 The number of constraints including padding for SIMD.
 
int ncc = 0
 The number of constraint connections.
 
real matlam = 0
 The FE lambda value used for filling blc and blmf.
 
std::vector< int > con_index
 mapping from topology to LINCS constraints.
 
std::vector< real,
AlignedAllocator< real > > 
bllen0
 The reference distance in topology A.
 
std::vector< real,
AlignedAllocator< real > > 
ddist
 The reference distance in top B - the r.d. in top A.
 
std::vector< AtomPairatoms
 The atom pairs involved in the constraints.
 
std::vector< real,
AlignedAllocator< real > > 
blc
 1/sqrt(invmass1 invmass2).
 
std::vector< real,
AlignedAllocator< real > > 
blc1
 As blc, but with all masses 1.
 
std::vector< int > blnr
 Index into blbnb and blmf.
 
std::vector< int > blbnb
 List of constraint connections.
 
int ntriangle = 0
 The local number of constraints in triangles.
 
int ncc_triangle = 0
 The number of constraint connections in triangles.
 
bool bCommIter = false
 Communicate before each LINCS interation.
 
std::vector< realblmf
 Matrix of mass factors for constraint connections.
 
std::vector< realblmf1
 As blmf, but with all masses 1.
 
std::vector< real,
AlignedAllocator< real > > 
bllen
 The reference bond length.
 
std::vector< int > nlocat
 The local atom count per constraint, can be NULL.
 
int ntask = 0
 The number of tasks used for LINCS work. More...
 
std::vector< Tasktask
 LINCS thread division.
 
std::vector< gmx_bitmask_tatf
 Atom flags for thread parallelization.
 
bool bTaskDep = false
 Are the LINCS tasks interdependent?
 
bool bTaskDepTri = false
 Are there triangle constraints that cross task borders?
 
std::vector< real,
AlignedAllocator< real > > 
mlambda
 The Lagrange multipliers times -1.
 
std::array< real, 2 > rmsdData = { { 0 } }
 Storage for the constraint RMS relative deviation output.
 
PaddedVector< gmx::RVectmpv
 Arrays for temporary storage in the LINCS algorithm.
 
std::vector< realtmpncc
 
std::vector< real,
AlignedAllocator< real > > 
tmp1
 
std::vector< real,
AlignedAllocator< real > > 
tmp2
 
std::vector< real,
AlignedAllocator< real > > 
tmp3
 
std::vector< real,
AlignedAllocator< real > > 
tmp4
 

Member Data Documentation

int gmx::Lincs::ntask = 0

The number of tasks used for LINCS work.

Todo:
This is mostly used to loop over task, which would be nicer to do with range-based for loops, but the thread index is used for constructing bit masks and organizing the virial output buffer, so other things need to change, first.

The documentation for this class was generated from the following file: