Gromacs
2025.0
|
#include "gmxpre.h"
#include "msd.h"
#include <cinttypes>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <functional>
#include <limits>
#include <memory>
#include <numeric>
#include <optional>
#include <string>
#include <vector>
#include "gromacs/analysisdata/analysisdata.h"
#include "gromacs/analysisdata/modules/average.h"
#include "gromacs/analysisdata/modules/plot.h"
#include "gromacs/analysisdata/paralleloptions.h"
#include "gromacs/fileio/oenv.h"
#include "gromacs/fileio/trxio.h"
#include "gromacs/math/functions.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/options/basicoptions.h"
#include "gromacs/options/filenameoption.h"
#include "gromacs/options/ioptionscontainer.h"
#include "gromacs/options/optionfiletype.h"
#include "gromacs/pbcutil/pbc.h"
#include "gromacs/selection/indexutil.h"
#include "gromacs/selection/selection.h"
#include "gromacs/selection/selectionoption.h"
#include "gromacs/statistics/statistics.h"
#include "gromacs/trajectory/trajectoryframe.h"
#include "gromacs/trajectoryanalysis/analysissettings.h"
#include "gromacs/trajectoryanalysis/topologyinformation.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/enumerationhelpers.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/real.h"
#include "gromacs/utility/stringutil.h"
Defines the trajectory analysis module for mean squared displacement calculations.
Classes | |
class | gmx::analysismodules::anonymous_namespace{msd.cpp}::MsdData |
Mean Squared Displacement data accumulator. More... | |
class | gmx::analysismodules::anonymous_namespace{msd.cpp}::MsdData::MsdColumnProxy |
Proxy to a MsdData tau column vector. Supports only push_back. More... | |
struct | gmx::analysismodules::anonymous_namespace{msd.cpp}::MoleculeData |
Holds data needed for MSD calculations for a single molecule, if requested. More... | |
class | gmx::analysismodules::anonymous_namespace{msd.cpp}::MsdCoordinateManager |
Handles coordinate operations for MSD calculations. More... | |
struct | gmx::analysismodules::anonymous_namespace{msd.cpp}::MsdGroupData |
Holds per-group coordinates, analysis, and results. More... | |
class | gmx::analysismodules::Msd |
Implements the gmx msd module. More... | |
Enumerations | |
enum | gmx::analysismodules::anonymous_namespace{msd.cpp}::SingleDimDiffType : int { X = 0, Y, Z, Unused, Count } |
Describes 1D MSDs, in the given dimension. | |
enum | gmx::analysismodules::anonymous_namespace{msd.cpp}::TwoDimDiffType : int { NormalToX = 0, NormalToY, NormalToZ, Unused, Count } |
Describes 2D MSDs, in the plane normal to the given dimension. | |
Functions | |
template<bool x, bool y, bool z> | |
double | gmx::analysismodules::anonymous_namespace{msd.cpp}::calcSingleSquaredDistance (const DVec &firstCoords, const DVec &secondCoords) |
Calculates 1,2, or 3D distance for two vectors. More... | |
template<bool x, bool y, bool z> | |
double | gmx::analysismodules::anonymous_namespace{msd.cpp}::calcAverageDisplacement (ArrayRef< const DVec > c1, ArrayRef< const DVec > c2) |
Calculate average displacement between sets of points. More... | |
void | gmx::analysismodules::anonymous_namespace{msd.cpp}::removePbcJumps (ArrayRef< DVec > currentCoords, ArrayRef< const DVec > previousCoords, t_pbc *pbc) |
Removes jumps across periodic boundaries for currentFrame, based on the positions in previousFrame. Updates currentCoords in place. | |
static size_t | gmx::analysismodules::calculateFitIndex (const int userFitTau, const double defaultTauFraction, const int numTaus, const double dt) |
Calculate the tau index for fitting. If userFitTau < 0, uses the default fraction of max tau. | |
Variables | |
constexpr double | gmx::analysismodules::anonymous_namespace{msd.cpp}::c_diffusionConversionFactor = 1000.0 |
Convert nm^2/ps to 10e-5 cm^2/s. | |
constexpr double | gmx::analysismodules::anonymous_namespace{msd.cpp}::c_3DdiffusionDimensionFactor = 6.0 |
Three dimensional diffusion coefficient multiplication constant. | |
constexpr double | gmx::analysismodules::anonymous_namespace{msd.cpp}::c_2DdiffusionDimensionFactor = 4.0 |
Two dimensional diffusion coefficient multiplication constant. | |
constexpr double | gmx::analysismodules::anonymous_namespace{msd.cpp}::c_1DdiffusionDimensionFactor = 2.0 |
One dimensional diffusion coefficient multiplication constant. | |