Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Enumerations | Functions
constr.h File Reference
#include <cstdio>
#include <memory>
#include "gromacs/math/vectypes.h"
#include "gromacs/topology/idef.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for constr.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares interface to constraint code.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Classes

class  gmx::ArrayRefWithPadding< typename >
 Interface to a C array of T (or part of a std container of T), that includes padding that is suitable for the kinds of SIMD operations GROMACS uses. More...
 
class  gmx::ListOfLists< typename >
 A list of lists, optimized for performance. More...
 
class  gmx::Constraints
 Handles constraints. More...
 

Enumerations

enum  gmx::ConstraintVariable : int {
  Positions, Velocities, Derivative, Deriv_FlexCon,
  Force, ForceDispl
}
 Describes supported flavours of constrained updates.
 
enum  gmx::FlexibleConstraintTreatment { gmx::FlexibleConstraintTreatment::Include, gmx::FlexibleConstraintTreatment::Exclude }
 Tells make_at2con how to treat flexible constraints. More...
 

Functions

void gmx::too_many_constraint_warnings (ConstraintAlgorithm eConstrAlg, int warncount)
 Generate a fatal error because of too many LINCS/SETTLE warnings.
 
static bool gmx::isConstraintFlexible (ArrayRef< const t_iparams > iparams, int iparamsIndex)
 Returns whether constraint with parameter iparamsIndex is a flexible constraint.
 
FlexibleConstraintTreatment gmx::flexibleConstraintTreatment (bool haveDynamicsIntegrator)
 Returns the flexible constraint treatment depending on whether the integrator is dynamic.
 
ListOfLists< int > gmx::make_at2con (const gmx_moltype_t &moltype, gmx::ArrayRef< const t_iparams > iparams, FlexibleConstraintTreatment flexibleConstraintTreatment)
 Returns a ListOfLists object to go from atoms to constraints. More...
 
ListOfLists< int > gmx::make_at2con (int numAtoms, ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > iparams, FlexibleConstraintTreatment flexibleConstraintTreatment)
 Returns a ListOfLists object to go from atoms to constraints. More...
 
int gmx::countFlexibleConstraints (ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > iparams)
 Return the number of flexible constraints in the ilist and iparams.
 
const int * gmx::constr_iatomptr (gmx::ArrayRef< const int > iatom_constr, gmx::ArrayRef< const int > iatom_constrnc, int con)
 Returns the constraint iatoms for a constraint number con which comes from a list where F_CONSTR and F_CONSTRNC constraints are concatenated.
 
void gmx::do_constrain_first (FILE *log, gmx::Constraints *constr, const t_inputrec *inputrec, int numAtoms, int numHomeAtoms, ArrayRefWithPadding< RVec > x, ArrayRefWithPadding< RVec > v, const matrix box, real lambda)
 Constrain the initial coordinates and velocities.
 
void gmx::constrain_velocities (gmx::Constraints *constr, bool do_log, bool do_ene, int64_t step, t_state *state, real *dvdlambda, bool computeVirial, tensor constraintsVirial)
 Constrain velocities only. More...
 
void gmx::constrain_coordinates (gmx::Constraints *constr, bool do_log, bool do_ene, int64_t step, t_state *state, ArrayRefWithPadding< RVec > xp, real *dvdlambda, bool computeVirial, tensor constraintsVirial)
 Constraint coordinates. More...
 
bool gmx::hasTriangleConstraints (const gmx_mtop_t &mtop, FlexibleConstraintTreatment flexibleConstraintTreatment)
 Returns True if there is at least one triangular constraint.