Gromacs  2025.0-dev-20241011-013a99c
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes | Static Public Attributes
t_oriresdata Struct Reference

#include <gromacs/mdtypes/fcdata.h>

+ Collaboration diagram for t_oriresdata:

Description

Orientation restraining stuff.

Public Member Functions

 t_oriresdata (FILE *fplog, const gmx_mtop_t &mtop, const t_inputrec &ir, const gmx_multisim_t *ms, t_state *globalState, gmx::LocalAtomSetManager *localAtomSetManager)
 Constructor. More...
 
 ~t_oriresdata ()
 Destructor.
 
const gmx::LocalAtomSetfitLocalAtomSet () const
 Returns the local atom set for fitting.
 
gmx::ArrayRef< const gmx::RVecreferenceCoordinates () const
 Returns the list of reference coordinates.
 
gmx::ArrayRef< const realfitMasses () const
 Returns the list of masses for fitting.
 
gmx::ArrayRef< gmx::RVecxTmp ()
 Returns the list of coordinates for temporary use, size matches referenceCoordinates.
 
real timeAveragingInitFactor () const
 Returns the factor for initializing the time averaging.
 
gmx::ArrayRef< const realDTensorsTimeAveragedHistory () const
 Returns a const view on the time averaged D tensor history.
 
void updateHistory ()
 Updates the history with the current values.
 
 GMX_DISALLOW_COPY_AND_ASSIGN (t_oriresdata)
 

Public Attributes

real fc
 Force constant for the restraints.
 
real edt
 Multiplication factor for time averaging.
 
real edt_1
 1 - edt
 
real exp_min_t_tau
 Factor for slowly switching on the force.
 
const int numRestraints
 The number of orientation restraints.
 
int numExperiments
 The number of experiments.
 
int typeMin
 The minimum iparam type index for restraints.
 
matrix rotationMatrix
 Rotation matrix to rotate to the reference coordinates.
 
tensor * orderTensors = nullptr
 Array of order tensors, one for each experiment.
 
rvec5 * DTensors = nullptr
 The order tensor D for all restraints.
 
rvec5 * DTensorsEnsembleAv = nullptr
 The ensemble averaged D for all restraints.
 
rvec5 * DTensorsTimeAndEnsembleAv = nullptr
 The time and ensemble averaged D restraints.
 
std::vector< realorientations
 The calculated instantaneous orientations.
 
gmx::ArrayRef< realorientationsEnsembleAv
 The calculated emsemble averaged orientations.
 
std::vector< realorientationsEnsembleAvBuffer
 Buffer for the calculated emsemble averaged orientations, only used with ensemble averaging.
 
gmx::ArrayRef< realorientationsTimeAndEnsembleAv
 The calculated time and ensemble averaged orientations.
 
std::vector< realorientationsTimeAndEnsembleAvBuffer
 The weighted (using kfac) RMS deviation.
 
real rmsdev
 Buffer for the weighted (using kfac) RMS deviation, only used with time averaging.
 
std::vector< OriresMatEq > tmpEq
 An temporary array of matrix + rhs.
 
std::vector< realeigenOutput
 Eigenvalues/vectors, for output only (numExperiments x 12)
 
std::array< gmx::DVec, DIM > M
 Tensor to diagonalize.
 
std::array< double, DIM > eig_diag
 Eigenvalues.
 
std::array< gmx::DVec, DIM > v
 Eigenvectors.
 

Static Public Attributes

static constexpr int c_numEigenRealsPerExperiment = 12
 The number of eigenvalues + eigenvectors per experiment.
 

Constructor & Destructor Documentation

t_oriresdata::t_oriresdata ( FILE *  fplog,
const gmx_mtop_t &  mtop,
const t_inputrec &  ir,
const gmx_multisim_t ms,
t_state globalState,
gmx::LocalAtomSetManager localAtomSetManager 
)

Constructor.

Parameters
[in]fplogLog file, can be nullptr
[in]mtopThe global topology
[in]irThe input record
[in]msThe multisim communicator, pass nullptr to avoid ensemble averaging
[in]globalStateThe global state, references are set to members
[in,out]localAtomSetManagerThe local atom set manager
Exceptions
InvalidInputErrorwhen there is domain decomposition, fewer than 5 restraints, periodic molecules or more than 1 molecule for a moleculetype with restraints.

The documentation for this struct was generated from the following files: