Gromacs
2026.0-dev-20241204-d69d709
|
Generic GROMACS namespace.
Functionality for testing whether calls to mdrun produce the same energy and force quantities when they should do so.
Declares registerLegacyModules().
Registers command-line modules for pre-5.0 binaries.
Implements the gmx wrapper binary.
Defines function for computing Lennard-Jones interaction using SIMD.
Defines classes for accumulating Coulomb and VdW energy contributions.
Implements classes for accumulating Coulomb and VdW energy contributions.
Defines a class for masking (sub-) diagonal interactions in an cluster pair.
Defines function for computing Coulomb interaction using SIMD.
Declares the integrators for energy minimization and NMA.
Encapsulates membed methods.
Declares the simulator interface for mdrun.
Defines the dispatch function for the .mdp integrator field.
Convenience macro to help us avoid ifdefs each time we use sysconf.
Declarations of low-level utility functions for working with H5MD HDF5 files.
Declares the i/o interface to H5MD HDF5 files.
I/o interface to H5MD HDF5 files.
The philosophy is as follows. The flavor of Coulomb interactions types is set using constexpr variables. This is then used to select the appropriate templated class with functions in this files through template specialization. Functions in this file take C-style arrays of SIMD of size nR
registers as arguments, indicated by a suffix with the letter 'V', which are a list of registers with one for each i-particle (4xM kernels) or pair of i-particles (2xMM kernels) that have LJ interactions. Note that we do not use functions for single SIMD registers because this limits the instruction parallelism that compilers can extract.
Declares and defines a templated class DiagonalMasker with a maskArray function which sets diagonal and sub-diagonal entries of a cluster-pair mask array to false when the i- and j-cluster index combination falls on the diagonal.
There is class for no energy output which does nothing, but is useful for avoiding lots of conditionals in the kernel. The classes for a single and multiple energy groups should be used with the following call sequence:
The philosophy is as follows. The different flavors of LJ interactions types and calculating energies or not are set using constexpr variables. These are then used to select the appropriate templated functions in this files through template specialization. Functions in this file take C-style arrays of SIMD of size nR
registers as arguments, indicated by a suffix with the letter 'V', which are a list of registers with one for each i-particle (4xM kernels) or pair of i-particles (2xMM kernels) that have LJ interactions. This can be half the number of total registers when only part of the i-atoms have LJ. Note that we do not use functions for single SIMD registers because this limits the instruction parallelism that compilers can extract.
A specialized templated LennardJonesCalculator class is used. For each cluster pair, forceC612()
or forceSigmaEpsilon()
is called, depending on the combination rule. Additionaly addLennardJonesEwaldCorrections()
needs to be called when using Ewald for Lennard-Jones.
Note that when atoms can get very close to each other, which we assume only happens when atoms are excluded, the masking template parameter should be set to true to avoid overflows when calculating r^-6.
Note that only plain or potential-shifted LJ interactions are supported with Lorentz-Berthelot combination rules. For switched LJ interactions choose no combination rule.
Classes | |
class | AnalysisDataModuleManager |
Encapsulates handling of data modules attached to AbstractAnalysisData. More... | |
class | AnalysisDataProxy |
Internal implementation class used to implement column modules. More... | |
class | AnalysisDataStorageFrame |
Allows assigning values for a data frame in AnalysisDataStorage. More... | |
class | AnalysisDataStorage |
Helper class that implements storage of data. More... | |
class | ArrayRef |
STL-like interface to a C array of T (or part of a std container of T). More... | |
class | AnalysisDataFrameLocalDataSetHandle |
Handle to a single data set within frame-local data array. More... | |
class | AnalysisDataFrameLocalDataHandle |
Handle to a single frame data within frame-local data array. More... | |
class | AnalysisDataFrameLocalData |
Container for an array of frame-local values that supports parallel data processing. More... | |
class | AnalysisDataFrameAverager |
Helper class for modules that average values over frames. More... | |
class | AnalysisDataParallelOptions |
Parallelization options for analysis data objects. More... | |
struct | BiasCoupledToSystem |
A bias and its coupling to the system. More... | |
class | Awh |
Coupling of the accelerated weight histogram method (AWH) with the system. More... | |
class | Bias |
A bias acting on a multidimensional coordinate. More... | |
class | GridAxis |
An axis, i.e. dimension, of the grid. More... | |
struct | GridPoint |
A point in the grid. More... | |
class | BiasGrid |
The grid for a single bias, generally multidimensional and periodic. More... | |
class | BiasParams |
Constant parameters for the bias. More... | |
class | BiasState |
The state of a bias. More... | |
class | AwhEnergyBlock |
AWH output data block that can be written to an energy file block. More... | |
class | BiasWriter |
Class organizing the output data storing and writing of an AWH bias. More... | |
class | CoordState |
Keeps track of the current coordinate value, grid index and umbrella location. More... | |
class | CorrelationGrid |
BiasGrid of local correlation tensors. More... | |
class | CorrelationBlockData |
Correlation block averaging weight-only data. More... | |
class | CorrelationTensor |
Correlation data for computing the correlation tensor of one grid point. More... | |
struct | DimParams |
Constant parameters for each dimension of the coordinate. More... | |
class | HistogramSize |
Tracks global size related properties of the bias histogram. More... | |
class | PointState |
The state of a coordinate point. More... | |
class | ColvarProxyGromacs |
Implements a GROMACS version of colvarproxy. This class hold for the communication between colvars and GROMACS. 2 child class will inherit from this one: one during pre processing (ColvarsPreProcessor) and one during the simulation (ColvarsForceProvider). Most of the work needed for the communication will be implemented in this class. More... | |
struct | ColvarsForceProviderState |
Parameters defining the internal colvars force provider state. More... | |
class | ColvarsForceProvider |
Implements IForceProvider for colvars. Override the ColvarProxyGromacs generic class for the communication. More... | |
struct | ColvarsModuleInfo |
Information about the colvars module. More... | |
class | ColvarsOptions |
Input data storage for colvars. More... | |
class | ColvarsPreProcessor |
Class that read a colvars configuration file during pre-processing and retrieve the colvars atoms coordinates to be stored in tpr KVT. More... | |
class | ColvarsSimulationsParameters |
Collect colvars parameters only available during simulation setup. More... | |
struct | DensityFittingModuleInfo |
Information about the density fitting module. More... | |
class | DensityFittingAmplitudeLookup |
Class that translates atom properties into amplitudes. More... | |
struct | DensityFittingForceProviderState |
Parameters defining the internal density fitting force provider state. More... | |
class | DensityFittingForceProvider |
Implements IForceProvider for density-fitting forces. More... | |
class | DensityFittingOptions |
Input data storage for density fitting. More... | |
class | DensityFittingOutputProvider |
Handle file output for density guided simulations. More... | |
struct | DensityFittingParameters |
Holding all directly user-provided parameters for density fitting. More... | |
struct | NNPotModuleInfo |
Information about the NNPot module. More... | |
class | NNPotForceProvider |
class | INNPotModel |
NNPot Module. More... | |
struct | NNPotParameters |
class | NNPotTopologyPreprocessor |
Class responsible for all modifications of the topology during input pre-processing. More... | |
class | TorchModel |
Class responsible for loading and evaluating a TorchScript-compiled neural network model. Inherits from NNPotModel. More... | |
class | PlumedForceProvider |
Implements IForceProvider for PLUMED. More... | |
struct | PlumedModuleInfo |
Information about the PLUMED module. More... | |
struct | QMMMModuleInfo |
Information about the QM/MM module. More... | |
class | QMMMForceProvider |
Implements IForceProvider for QM/MM. More... | |
class | QMMMInputGenerator |
Class that takes QMMMParameters, Coordinates, Point charges, Box dimensions, pbcType. Generates QM/MM sample input parameters and pdb-style coordinates for CP2K. Input are generated as std::string objects which can be stored in tpr KVT and/or flushed into the files. More... | |
class | QMMMOptions |
Input data storage for QM/MM. More... | |
struct | QMMMTopologyInfo |
Contains various information about topology modifications Used for statistics during topology pre-processing within QMMMTopologyPreprocessor class. More... | |
class | QMMMTopologyPreprocessor |
Class implementing gmx_mtop_t QMMM modifications during preprocessing 1) Split QM-containing molecules from other molecules in blocks 2) Nullify charges on all virtual sites consisting of QM only atoms 3) Nullifies charges on all QM atoms 4) Excludes LJ interactions between QM atoms 5) Builds vector with atomic numbers of all atoms 6) Makes F_CONNBOND between atoms within QM region 7) Removes angles and settles containing 2 or more QM atoms 8) Removes dihedrals containing 3 or more QM atoms 9) Builds vector containing pairs of bonded QM - MM atoms (Link frontier) More... | |
struct | LinkFrontier |
Helper structure with indexes of broken bonds between QM and MM Used to determine and store pair of QM and MM atoms between which chemical bond is broken. More... | |
struct | QMMMParameters |
Holding all parameters needed for QM/MM simulation. Also used for setting all default parameter values. More... | |
class | CommandLineHelpContext |
Context information for writing out command-line help. More... | |
class | GlobalCommandLineHelpContext |
Helper for passing CommandLineHelpContext into parse_common_args(). More... | |
class | CommandLineHelpModule |
Command-line module for producing help. More... | |
class | CommandLineHelpWriter |
Writes help information for Options. More... | |
class | CommandLineModuleSettings |
Settings to pass information between a module and the general runner. More... | |
class | ICommandLineModule |
Module that can be run from command line using CommandLineModuleManager. More... | |
class | CommandLineModuleManager |
Implements a wrapper command-line interface for multiple modules. More... | |
class | CommandLineModuleGroup |
Handle to add content to a group added with CommandLineModuleManager::addModuleGroup(). More... | |
class | CommandLineModuleGroupData |
Internal data for a CommandLineModuleManager module group. More... | |
class | CommandLineCommonOptionsHolder |
Encapsulates some handling of common options to the wrapper binary. More... | |
class | ICommandLineOptionsModuleSettings |
Settings to pass information between a CommandLineOptionsModule and generic code that runs it. More... | |
class | ICommandLineOptionsModule |
Module that can be run from a command line and uses gmx::Options for argument processing. More... | |
class | CommandLineParser |
Implements command-line parsing for Options objects. More... | |
class | IExecutableEnvironment |
Allows customization of the way various directories are found by CommandLineProgramContext. More... | |
class | CommandLineProgramContext |
Program context implementation for command line programs. More... | |
class | TrajectoryFileOpener |
Low level method to take care of only file opening and closing. More... | |
class | TrajectoryFrameWriter |
Writes coordinate frames to a sink, e.g. a trajectory file. More... | |
class | ProcessFrameConversion |
ProcessFrameConversion class for handling the running of several analysis steps. More... | |
class | IFrameConverter |
IFrameConverter interface for manipulating coordinate information. More... | |
class | IOutputAdapter |
OutputAdapter class for handling trajectory file flag setting and processing. More... | |
class | OutputAdapterContainer |
Storage for output adapters that modify the state of a t_trxframe object. More... | |
class | OutputSelector |
OutputSelector class controls setting which coordinates are actually written. More... | |
class | SetAtoms |
SetAtoms class controls availability of atoms data. More... | |
class | SetBox |
Allows changing box information when writing a coordinate file. More... | |
class | SetForces |
SetForces class allows changing writing of forces to file. More... | |
class | SetPrecision |
SetPrecision class allows changing file writing precision. More... | |
class | SetStartTime |
SetStartTime class allows changing trajectory time information. More... | |
class | SetTimeStep |
SetTimeStep class allows changing trajectory time information. More... | |
class | SetVelocities |
SetVelocities class allows changing writing of velocities to file. More... | |
class | OutputRequirementOptionDirector |
Container for the user input values that will be used by the builder to determine which OutputAdapters should/could/will be registered to the coordinate file writer. More... | |
struct | OutputRequirements |
Finalized version of requirements after processing. More... | |
class | DomainDecompositionBuilder |
Builds a domain decomposition management object. More... | |
class | DomainCommBackward |
Setup for selecting halo atoms to be sent and sending coordinates to another domain. More... | |
class | DomainCommForward |
Setup for receiving halo coordinates from another domain and sending halo forces. More... | |
class | DomainPairComm |
Setup for communication between pairs of domains, both backward and forward along the DD grid. More... | |
class | FixedCapacityVector |
Vector that behaves likes std::vector but has fixed capacity. More... | |
class | HashedMap |
Unordered key to value mapping. More... | |
struct | gmx_domdec_zone_size_t |
Triclinic corners and the Cartesian bounding box. More... | |
class | DomdecZones |
Class for handling atom ranges and dimensions of domain decomposition zones. More... | |
class | GpuHaloExchange |
Manages GPU Halo Exchange object. More... | |
struct | nvshmemHaloExchangeOps |
Struct encapsulating data for NVSHMEM Enabled GPU Halo Exchange. More... | |
struct | HaloMpiRequests |
Storage for MPI request for halo MPI receive and send operations. More... | |
class | HaloExchange |
Handles the halo communication of coordinates and forces. More... | |
class | LocalAtomSet |
A local atom set collects local, global and collective indices of the home atoms on a rank. The indices of the home atoms are automatically updated during domain decomposition, thus gmx::LocalAtomSet::localIndex enables iteration over local atoms properties like coordinates or forces. TODO: add a LocalAtomSet iterator. More... | |
class | LocalAtomSetManager |
Hands out handles to local atom set indices and triggers index recalculation for all sets upon domain decomposition if run in parallel. More... | |
class | LocalTopologyChecker |
Has responsibility for checking that the local topology distributed across domains describes a total number of bonded interactions that matches the system topology. More... | |
struct | DomdecOptions |
Structure containing all (command line) options for the domain decomposition. More... | |
class | EnergyAnalysisFrame |
Class describing an energy frame, that is the all the data stored for one energy term at one time step in an energy file. More... | |
class | EnergyTerm |
Class describing the whole time series of an energy term. More... | |
struct | EnergyNameUnit |
Convenience structure for keeping energy name and unit together. More... | |
class | IEnergyAnalysis |
Interface class overloaded by the separate energy modules. More... | |
class | SeparatePmeRanksPermitted |
Class for managing usage of separate PME-only ranks. More... | |
struct | PpCommManager |
Object to manage communications with a specific PP rank. More... | |
class | PmeForceSenderGpu |
Manages sending forces from PME-only ranks to their PP ranks. More... | |
struct | CacheLineAlignedFlag |
Class with interfaces and data for CUDA version of PME Force sending functionality. More... | |
struct | PpForceCommManager |
Object to manage communications with a specific PP rank. More... | |
class | PmePpCommGpu |
Manages communication related to GPU buffers between this PME rank and its PP rank. More... | |
class | Gpu3dFft |
A 3D FFT class for performing R2C/C2R transforms. More... | |
class | RocfftInitializer |
Provides RAII-style initialization of rocFFT library. More... | |
struct | RocfftPlan |
All the persistent data for planning an executing a 3D FFT. More... | |
struct | PlanSetupData |
Helper struct to reduce repetitive code setting up a 3D FFT plan. More... | |
struct | MDModulesCheckpointReadingDataOnMain |
Provides the MDModules with the checkpointed data on the main rank. More... | |
struct | MDModulesCheckpointReadingBroadcast |
Provides the MDModules with the communication record to broadcast. More... | |
struct | MDModulesWriteCheckpointData |
Writing the MDModules data to a checkpoint file. More... | |
class | FileIOXdrSerializer |
Serializer to read/write XDR data. More... | |
class | H5md |
Manager of an H5MD filehandle. The class is designed to read/write data according to de Buyl et al., 2014 (https://doi.org/10.1016/j.cpc.2014.01.018) and https://www.nongnu.org/h5md/h5md.html. More... | |
class | MrcDensityMapOfFloatReader |
Read an mrc/ccp4 file that contains float values. More... | |
class | MrcDensityMapOfFloatFromFileReader |
Read an mrc density map from a given file. More... | |
class | MrcDensityMapOfFloatWriter |
Write an mrc/ccp4 file that contains float values. More... | |
struct | MrcDataStatistics |
Statistics about mrc data arrays. More... | |
struct | MrcDensitySkewData |
Skew matrix and translation. As named in "EMDB Map Distribution Format Description Version 1.01 (c) emdatabank.org 2014". More... | |
struct | CrystallographicLabels |
Crystallographic labels for mrc data. More... | |
struct | MrcDensityMapHeader |
A container for the data in mrc density map file formats. More... | |
class | ArrayRefWithPadding |
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 | ListOfLists |
A list of lists, optimized for performance. More... | |
class | ClfftInitializer |
Handle clFFT library init and tear down in RAII style also with mutual exclusion. More... | |
class | DeviceStreamManager |
Device stream and context manager. More... | |
class | HostAllocationPolicy |
Policy class for configuring gmx::Allocator, to manage allocations of memory that may be needed for e.g. GPU transfers. More... | |
struct | OpenClTraits |
Stub for OpenCL type traits. More... | |
struct | OpenClTraitsBase |
Implements common trait infrastructure for OpenCL types. More... | |
struct | OpenClTraits< cl_context > |
Implements traits for cl_context. More... | |
struct | OpenClTraits< cl_command_queue > |
Implements traits for cl_command_queue. More... | |
struct | OpenClTraits< cl_program > |
Implements traits for cl_program. More... | |
struct | OpenClTraits< cl_kernel > |
Implements traits for cl_kernel. More... | |
class | ClHandle |
Wrapper of OpenCL type cl_type to implement RAII. More... | |
class | CpuInfo |
Detect CPU capabilities and basic logical processor info. More... | |
struct | DeviceDetectionResult |
Convenience macro to help us avoid ifdefs each time we use sysconf. More... | |
class | HardwareTopology |
Information about packages, cores, processing units, numa, caches. More... | |
struct | IMDEnergyBlock |
IMD (interactive molecular dynamics) energy record. More... | |
struct | IMDHeader |
IMD (interactive molecular dynamics) communication structure. More... | |
class | InteractiveMolecularDynamics |
Implement interactive molecular dynamics. More... | |
struct | IMDSocket |
IMD (interactive molecular dynamics) socket structure. More... | |
struct | EnumerationArray |
Wrapper for a C-style array with size and indexing defined by an enum. Useful for declaring arrays of enum names for debug or other printing. An ArrayRef<DataType> may be constructed from an object of this type. More... | |
struct | HostInteractionList |
Version of InteractionList that supports pinning. More... | |
class | TranslateAndScale |
Transform coordinates in three dimensions by first translating, then scaling them. More... | |
class | AffineTransformation |
Affine transformation of three-dimensional coordinates. More... | |
class | DensitySimilarityMeasure |
Measure similarity and gradient between densities. More... | |
class | DensityFittingForce |
Manages evaluation of density-fitting forces for particles that were spread with a kernel. More... | |
struct | ExponentialMovingAverageState |
Store the state of exponential moving averages. More... | |
class | ExponentialMovingAverage |
Evaluate the exponential moving average with bias correction. More... | |
class | GaussianOn1DLattice |
Provide result of Gaussian function evaluation on a one-dimensional lattice. More... | |
struct | GaussianSpreadKernelParameters |
Parameters for density spreading kernels. More... | |
class | GaussTransform3D |
Sums Gaussian values at three dimensional lattice coordinates. The Gaussian is defined as . More... | |
class | IntegerBox |
A 3-orthotope over integer intervals. More... | |
class | OuterProductEvaluator |
Evaluate the outer product of two number ranges. Keeps the memory for the outer product allocated. More... | |
class | MultiDimArray |
Multidimensional array that manages its own memory. More... | |
struct | RealFunctionvalueAtCoordinate |
Tie together coordinate and function value at this coordinate. More... | |
class | NelderMeadSimplex |
The simplex for the Nelder-Mead algorithm. More... | |
struct | OptimisationResult |
Compiles results of an a function optimisation. More... | |
class | PaddedVector |
PaddedVector is a container of elements in contiguous storage that allocates extra memory for safe SIMD-style loads for operations used in GROMACS. More... | |
class | CheckpointHandler |
Class handling the checkpoint signal. More... | |
class | Constraints |
Handles constraints. More... | |
class | EnergyDriftTracker |
Class for tracking and printing the drift in the conserved energy quantity. More... | |
struct | PTCouplingArrays |
Arrays connected to Pressure and Temperature coupling. More... | |
class | GpuForceReduction |
Manages the force reduction directly in GPU memory. More... | |
struct | cellInfo |
structure to hold cell information for any nbat-format forces More... | |
class | Lincs |
Data for LINCS algorithm. More... | |
struct | LincsDeviations |
Status information about how well LINCS satisfied the constraints in this domain. More... | |
struct | AtomPair |
A pair of atoms indexes. More... | |
class | LincsGpu |
Class with interfaces and data for GPU version of LINCS. More... | |
class | MDAtoms |
Contains a C-style t_mdatoms while managing some of its memory with C++ vectors with allocators. More... | |
class | ResetHandler |
Class handling the reset of counters. More... | |
class | SettleData |
Data for executing SETTLE constraining. More... | |
class | SettleGpu |
Class with interfaces and data for GPU version of SETTLE. More... | |
struct | shakedata |
Working data for the SHAKE algorithm. More... | |
struct | DipoleData |
Data structure to hold dipole-related data and staging arrays. More... | |
class | SimulationSignal |
POD-style object used by mdrun ranks to set and receive signals within and between simulations. More... | |
class | SimulationSignaller |
Object used by mdrun ranks to signal to each other at this step. More... | |
class | StopHandler |
Class handling the stop signal. More... | |
class | StopConditionSignal |
Class setting the stop signal based on gmx_get_stop_condition() More... | |
class | StopConditionTime |
Class setting the stop signal based on maximal run time. More... | |
class | StopHandlerBuilder |
Class preparing the creation of a StopHandler. More... | |
class | Update |
Contains data for update phase. More... | |
struct | ScalingMatrix |
Scaling matrix struct. More... | |
struct | AtomIndexExtremes |
Struct for returning an atom range. More... | |
class | UpdateGroups |
Owns the update grouping and related data. More... | |
class | Range |
Defines a range of integer numbers and accompanying operations. More... | |
class | UpdateGroupsCog |
Class for managing and computing centers of geometry of update groups. More... | |
struct | DomainInfo |
Information on PBC and domain decomposition for virtual sites. More... | |
struct | AtomIndex |
List of atom indices belonging to a task. More... | |
struct | InterdependentTask |
Data structure for thread tasks that use constructing atoms outside their own atom range. More... | |
struct | VsiteThread |
Vsite thread task data structure. More... | |
class | ThreadingInfo |
Information on how the virtual site work is divided over thread tasks. More... | |
class | VirtualSitesHandler |
Class that handles construction of vsites and spreading of vsite forces. More... | |
class | WholeMoleculeTransform |
This class manages a coordinate buffer with molecules not split over periodic boundary conditions for use in force calculations which require whole molecules. More... | |
class | ISimulator |
The Simulator interface. More... | |
class | LegacySimulatorData |
The legacy simulator data. More... | |
class | LegacyMdrunOptions |
This class provides the same command-line option functionality to both CLI and API sessions. More... | |
class | LegacySimulator |
Struct to handle setting up and running the different simulation types. More... | |
class | MDModules |
Manages the collection of all modules used for mdrun. More... | |
class | MembedHolder |
Membed SimulatorBuilder parameter type. More... | |
class | Mdrunner |
Runner object for supporting setup and execution of mdrun. More... | |
class | MdrunnerBuilder |
Build a gmx::Mdrunner. More... | |
class | SimulationContext |
Simulation environment and configuration. More... | |
class | SimulationInputHandle |
Owning handle to a SimulationInput object. More... | |
struct | SimulatorConfig |
Simulation configuation settings. More... | |
struct | SimulatorStateData |
Data for a specific simulation state. More... | |
class | SimulatorEnv |
Collection of environmental information for a simulation. More... | |
class | Profiling |
Collection of profiling information. More... | |
class | ConstraintsParam |
Collection of constraint parameters. More... | |
class | LegacyInput |
Collection of legacy input information. More... | |
class | InteractiveMD |
SimulatorBuilder parameter type for InteractiveMD. More... | |
class | IonSwapping |
Parameter type for IonSwapping SimulatorBuilder component. More... | |
class | TopologyData |
Collection of handles to topology information. More... | |
class | BoxDeformationHandle |
Handle to information about the box. More... | |
class | SimulatorBuilder |
Class preparing the creation of Simulator objects. More... | |
class | TestParticleInsertion |
Class for performing test particle insertions into trajectory frames. More... | |
class | MDModulesNotifier |
Organizes notifications about an event of interest to modules. More... | |
struct | BuildMDModulesNotifier |
Aide to avoid nested MDModulesNotifier definition. More... | |
struct | BuildMDModulesNotifier<> |
Template specialization to end parameter unpacking recursion. More... | |
struct | BuildMDModulesNotifier< CurrentCallParameter, CallParameter...> |
Template specialization to assemble MDModulesNotifier. More... | |
struct | MDModulesAtomsRedistributedSignal |
Notification that atoms may have been redistributed. More... | |
struct | MDModulesEnergyOutputToDensityFittingRequestChecker |
Check if module outputs energy to a specific field. More... | |
struct | MDModulesEnergyOutputToQMMMRequestChecker |
Check if QMMM module outputs energy to a specific field. More... | |
class | EnergyCalculationFrequencyErrors |
Collect errors for the energy calculation frequency. More... | |
struct | SimulationTimeStep |
Provides the simulation time step in ps. More... | |
struct | CoordinatesAndBoxPreprocessed |
Provides coordinates and simulation box. More... | |
struct | MdRunInputFilename |
Mdrun input filename. More... | |
struct | EdrOutputFilename |
Energy trajectory output filename from Mdrun. More... | |
struct | QMInputFileName |
Notification for QM program input filename provided by user as command-line argument for grompp. More... | |
struct | PlumedInputFilename |
Notification for the optianal plumed input filename provided by user as command-line argument for mdrun. More... | |
struct | EnsembleTemperature |
Provides the constant ensemble temperature. More... | |
struct | MDModulesNotifiers |
Group of notifers to organize that MDModules can receive callbacks they subscribe to. More... | |
class | accessor_basic |
The most basic memory access model for mdspan. More... | |
class | extents |
Multidimensional extents with static and dynamic dimensions. More... | |
class | layout_right |
Right-aligned array layout indexer. Carries the mapping class performing the translation from multidimensional index to one-dimensional number. More... | |
class | basic_mdspan |
Multidimensional array indexing and memory access with flexible mapping and access model. More... | |
struct | AtomInfoWithinMoleculeBlock |
Contains information about each atom in a molecule block of the global topology. More... | |
class | CheckpointData |
} More... | |
class | AwhParams |
Structure holding parameter information for AWH. More... | |
struct | IsSerializableType |
Struct allowing to check if data is serializable through the KeyValueTree serializer. More... | |
struct | IsSerializableEnum |
Struct allowing to check if enum has a serializable underlying type. More... | |
class | ReadCheckpointDataHolder |
Holder for read checkpoint data. More... | |
class | WriteCheckpointDataHolder |
Holder for write checkpoint data. More... | |
class | ForceBuffersView |
A view of the force buffer. More... | |
class | ForceBuffers |
Object that holds the force buffers. More... | |
class | ForceWithShiftForces |
Container for force and virial for algorithms that compute shift forces for virial calculation. More... | |
class | ForceWithVirial |
Container for force and virial for algorithms that provide their own virial tensor contribution. More... | |
class | ForceOutputs |
Force and virial output buffers for use in force computation. More... | |
class | ForceProviderInput |
Helper struct that bundles data for passing it over to the force providers. More... | |
class | ForceProviderOutput |
Helper struct bundling the output data of a force provider. More... | |
class | IForceProvider |
Interface for a component that provides forces during MD. More... | |
class | ForceProviders |
Evaluates forces from a collection of gmx::IForceProvider. More... | |
class | IMDModule |
Extension module for GROMACS simulations. More... | |
class | IMDOutputProvider |
Interface for handling additional output files during a simulation. More... | |
class | IMdpOptionProvider |
Interface for handling mdp/tpr input to a mdrun module. More... | |
struct | CheckpointOptions |
Options for writing checkpoint files. More... | |
struct | TimingOptions |
Options for timing (parts of) mdrun. More... | |
struct | ImdOptions |
Options for IMD. More... | |
struct | MdrunOptions |
Collection of all options of mdrun that are not processed separately. More... | |
struct | MtsLevel |
Setting for a single level for multiple time step integration. More... | |
struct | GromppMtsOpts |
Struct for passing the MTS mdp options to setupMtsLevels() More... | |
class | ObservablesReducerBuilder |
Builder for ObservablesReducer. More... | |
class | ObservablesReducer |
Manage reduction of observables for registered subscribers. More... | |
class | StepWorkload |
Describes work done on this domain by the current rank that may change per-step. More... | |
class | DomainLifetimeWorkload |
Describes work done on this domain on every step of its lifetime, but which might change after the next domain partitioning. More... | |
class | SimulationWorkload |
Manage what computation is required during the simulation. More... | |
struct | NvshmemPpCommData |
Struct of comm data for NVSHMEM Enabled PP Halo Exchange. More... | |
class | ThreadForceBuffer |
Object that holds force and energies buffers plus a mask for a thread. More... | |
class | ThreadedForceBuffer |
Class for accumulating and reducing forces and energies on threads in parallel. More... | |
class | MimicCommunicator |
Class-wrapper around MiMiC communication library It uses GROMACS' unit conversion to switch from GROMACS' units to a.u. More... | |
class | AndersenTemperatureCoupling |
Element implementing the Andersen thermostat. More... | |
class | CheckpointHelper |
Checkpoint helper. More... | |
class | CheckpointHelperBuilder |
Builder for the checkpoint helper. More... | |
class | CompositeSimulatorElement |
Composite simulator element. More... | |
class | ComputeGlobalsElement |
Encapsulate the calls to compute_globals More... | |
class | ConstraintsElement |
Constraints element. More... | |
class | DomDecHelper |
Infrastructure element responsible for domain decomposition. More... | |
class | DomDecHelperBuilder |
Builder for DomDecHelper. More... | |
class | EnergyData |
Data class managing energies. More... | |
class | ExpandedEnsembleElement |
The expanded ensemble element. More... | |
class | FirstOrderPressureCoupling |
Element performing first-order pressure coupling. More... | |
class | ForceElement |
Force element. More... | |
class | FreeEnergyPerturbationData |
The free energy perturbation data. More... | |
class | FepStateSetting |
Allows external clients to specify how to change the FEP state. More... | |
class | ModularSimulator |
The modular simulator. More... | |
class | SignallerBuilder |
Builder for signallers. More... | |
class | ISimulatorElement |
The general interface for elements of the modular simulator. More... | |
class | ISignaller |
The general Signaller interface. More... | |
class | INeighborSearchSignallerClient |
Interface for clients of the NeighborSearchSignaller. More... | |
class | ILastStepSignallerClient |
Interface for clients of the LastStepSignaller. More... | |
class | ILoggingSignallerClient |
Interface for clients of the LoggingSignaller. More... | |
class | IEnergySignallerClient |
Interface for clients of the EnergySignaller. More... | |
class | ITrajectorySignallerClient |
Interface for signaller clients of the TrajectoryElement. More... | |
class | ITrajectoryWriterClient |
Interface for writer clients of the TrajectoryElement. More... | |
class | ITopologyHolderClient |
Client requiring read access to the local topology. More... | |
class | ICheckpointHelperClient |
Client that needs to store data during checkpointing. More... | |
class | ElementNotFoundError |
Exception class signalling that a requested element was not found. More... | |
class | MissingElementConnectionError |
Exception class signalling that elements were not connected properly. More... | |
class | SimulationAlgorithmSetupError |
Exception class signalling that the ModularSimulatorAlgorithm was set up in an incompatible way. More... | |
class | CheckpointError |
Exception class signalling an error in reading or writing modular checkpoints. More... | |
struct | PropagatorTag |
Strong type used to name propagators. More... | |
struct | TimeStep |
Strong type used to denote propagation time steps. More... | |
struct | Offset |
Strong type used to denote scheduling offsets. More... | |
struct | PropagatorConnection |
Information needed to connect a propagator to a temperature and / or pressure coupling element. More... | |
class | IDomDecHelperClient |
Client interface of the DomDecHelper class. More... | |
struct | MttkPropagatorConnectionDetails |
Struct collecting the propagator tags and offsets used by the MTTK pressure coupling. More... | |
class | MttkData |
Class holding the extra dof and parameters used by the MTTK algorithm. More... | |
class | MttkPropagatorConnection |
Object holding the callbacks and scaling views for the connection of MTTKElement objects to propagators. More... | |
class | MttkElement |
Element propagating the MTTK degree of freedom. More... | |
class | MttkBoxScaling |
This element scales the box based on the MTTK dof. More... | |
class | NoseHooverGroup |
The current state of the Nose-Hoover chain degree of freedom for a temperature group. More... | |
class | NoseHooverChainsData |
Class holding data used by the Nose-Hoover chains. More... | |
class | NoseHooverChainsElement |
Element propagating the Nose-Hoover chains. More... | |
class | ParrinelloRahmanBarostat |
Element implementing the Parrinello-Rahman barostat. More... | |
class | PmeLoadBalanceHelper |
Infrastructure element responsible for PME load balancing. More... | |
class | Propagator |
Propagator element. More... | |
class | PullElement |
Element calling pull functionality. More... | |
class | ReferenceTemperatureManager |
Object managing reference temperature changes. More... | |
class | NeighborSearchSignaller |
Element signalling a neighbor search step. More... | |
class | LastStepSignaller |
Element signalling the last step. More... | |
class | LoggingSignaller |
Element signalling a logging step. More... | |
class | TrajectorySignaller |
Element signalling trajectory writing. More... | |
class | EnergySignaller |
Element signalling energy related special steps. More... | |
class | ModularSimulatorAlgorithm |
The modular simulator. More... | |
class | GlobalCommunicationHelper |
Helper container with data connected to global communication. More... | |
class | ModularSimulatorAlgorithmBuilderHelper |
Helper for element addition. More... | |
class | ModularSimulatorAlgorithmBuilder |
Builder for ModularSimulatorAlgorithm objects. More... | |
class | StatePropagatorData |
StatePropagatorData and associated data. More... | |
class | TopologyHolder |
Object holding the topology. More... | |
class | TrajectoryElement |
Trajectory element signals and handles trajectory writing. More... | |
class | TrajectoryElementBuilder |
Build the TrajectoryElement More... | |
struct | TemperatureCouplingData |
Data used by the concrete temperature coupling implementations. More... | |
class | ITemperatureCouplingImpl |
Interface for temperature coupling implementations. More... | |
class | VRescaleTemperatureCoupling |
Implements v-rescale temperature coupling. More... | |
class | BerendsenTemperatureCoupling |
Implements Berendsen temperature coupling. More... | |
class | NoseHooverTemperatureCoupling |
Implements the Nose-Hoover temperature coupling. More... | |
class | VelocityScalingTemperatureCoupling |
Element implementing the a velocity-scaling thermostat. More... | |
class | EnergyAccumulator |
Base energy accumulator class, only specializations are used. More... | |
struct | nbnxn_atomdata_output_t |
Struct that holds force and energy output buffers. More... | |
struct | nbnxn_atomdata_t |
Struct that stores atom related data for the nbnxn module. More... | |
struct | NbnxmKernelBenchOptions |
The options for the kernel benchmarks. More... | |
struct | BenchmarkSystem |
Description of the system used for benchmarking. More... | |
struct | BoundingBox |
Bounding box for a nbnxm atom cluster. More... | |
struct | NbnxmGpu |
Main data structure for CUDA nonbonded force calculations. More... | |
class | FreeEnergyDispatch |
Temporary data and methods for handling dispatching of the nbnxm free-energy kernels. More... | |
struct | NBStagingData |
Staging area for temporary data downloaded from the GPU. More... | |
struct | NBAtomDataGpu |
Nonbonded atom data - both inputs and outputs. More... | |
struct | NBParamGpu |
Parameters required for the GPU nonbonded calculations. More... | |
struct | GpuTimers |
GPU region timers used for timing GPU kernels and H2D/D2H transfers. More... | |
class | GpuPairlistSorting |
Sorted pair list on GPU and data required for performing the sorting. More... | |
class | GpuPairlist |
GPU pair list structure. More... | |
struct | EnergyFunctionProperties |
Set of boolean constants mimicking preprocessor macros. More... | |
struct | BoundingBox1D |
Bounding box for one dimension of a grid cell. More... | |
struct | GridDimensions |
The physical dimensions of a grid. More... | |
class | Grid |
A pair-search grid object for one domain decomposition zone. More... | |
class | GridSet |
Holds a set of search grids for the local + non-local DD zones. More... | |
struct | GridSetData |
Struct that holds grid data that is shared over all grids. More... | |
struct | GridWork |
Working arrays for constructing a grid. More... | |
struct | nonbonded_verlet_t |
Top-level non-bonded data structure for the Verlet-type cut-off scheme. More... | |
struct | cl_nbparam_params |
Data structure shared between the OpenCL device code and OpenCL host code. More... | |
struct | gmx_cache_protect_t |
Cache-line protection buffer. More... | |
struct | nbnxn_cj_t |
This is the actual cluster-pair list j-entry. More... | |
class | JClusterList |
Simple j-cluster list. More... | |
struct | nbnxn_ci_t |
Simple pair-list i-unit. More... | |
struct | nbnxn_sci_t |
Grouped pair-list i-unit. More... | |
struct | nbnxn_im_ei_t |
Interaction data for a j-group for one warp. More... | |
struct | nbnxn_cj_packed_t |
Packed j-cluster list element. More... | |
class | PackedJClusterList |
Packed j-cluster list. More... | |
struct | nbnxn_excl_t |
Struct for storing the atom-pair interaction bits for a cluster pair in a GPU pairlist. More... | |
struct | NbnxnPairlistCpu |
Cluster pairlist type for use on CPUs. More... | |
struct | CalcVerletBufferParameters |
Struct with references for most parameters for calling calcVerletBufferSize() More... | |
struct | PairlistParams |
The setup for generating and pruning the nbnxn pair list. More... | |
class | PairlistSet |
An object that holds the local or non-local pairlists. More... | |
class | PairlistSets |
Contains sets of pairlists. More... | |
struct | NbnxmPairlistCpuWork |
Working data for the actual i-supercell during pair search. More... | |
class | nbnxn_cycle_t |
Local cycle count struct for profiling. More... | |
struct | SearchCycleCounting |
Struct for collecting detailed cycle counts for the search. More... | |
struct | PairsearchWork |
Thread-local work struct, contains working data for Grid. More... | |
class | PairSearch |
Main pair-search struct, contains the grid(s), not the pair-list(s) More... | |
class | CoulombCalculator |
Base Coulomb calculator class, only specializations are used. More... | |
class | CoulombCalculator< KernelCoulombType::RF > |
Specialized calculator for RF. More... | |
class | CoulombCalculator< KernelCoulombType::EwaldAnalytical > |
Specialized calculator for Ewald using an analytic approximation. More... | |
class | CoulombCalculator< KernelCoulombType::EwaldTabulated > |
Specialized calculator for Ewald using tabulated functions. More... | |
class | DiagonalMasker |
Base Coulomb calculator class, only specializations are used. More... | |
class | DiagonalMasker< nR, kernelLayout, KernelLayoutClusterRatio::JSizeEqualsISize > |
Specialized masker for JSizeEqualsISize. More... | |
class | DiagonalMasker< nR, kernelLayout, KernelLayoutClusterRatio::JSizeIsDoubleISize > |
Specialized masker for JSizeIsDoubleISize. More... | |
class | DiagonalMasker< nR, kernelLayout, KernelLayoutClusterRatio::JSizeIsHalfISize > |
Specialized masker for JSizeIsHalfISize. More... | |
class | EnergyAccumulator< useEnergyGroups, false > |
Specialized energy accumulator class for no energy calculation. More... | |
class | EnergyAccumulator< false, true > |
Specialized energy accumulator class for energy accumulation without energy groups. More... | |
class | EnergyAccumulator< true, true > |
Specialized energy accumulator class for energy accumulation with energy groups. More... | |
class | EnergyGroupsPerCluster |
Holds energy group indices for use in EnergyAccumulator<true, true> More... | |
class | LennardJonesCalculator |
Base LJ calculator class, only specializations are used. More... | |
class | LennardJonesCalculator< false, InteractionModifiers::PotShift > |
Specialized calculator for LJ with potential shift and no energy calculation. More... | |
class | LennardJonesCalculator< true, InteractionModifiers::PotShift > |
Specialized calculator for LJ with potential shift and energy calculation. More... | |
class | LennardJonesCalculator< calculateEnergies, InteractionModifiers::ForceSwitch > |
Specialized calculator for LJ with force switch. More... | |
class | LennardJonesCalculator< calculateEnergies, InteractionModifiers::PotSwitch > |
Specialized calculator for LJ with potential switch. More... | |
class | ExclusivePrefixSum |
SYCL kernel name. More... | |
class | NbnxmKernel |
Class name for NBNXM kernel. More... | |
class | NbnxmKernelPruneOnly |
Class name for NBNXM prune-only kernel. More... | |
class | TextTableFormatter |
Formats rows of a table for text output. More... | |
class | HelpManager |
Helper for providing interactive online help. More... | |
class | AbstractSimpleHelpTopic |
Abstract base class for help topics that have simple text and no subtopics. More... | |
class | AbstractCompositeHelpTopic |
Abstract base class for help topics that have simple text and subtopics. More... | |
class | SimpleHelpTopic |
Template for simple implementation of AbstractSimpleHelpTopic. More... | |
class | CompositeHelpTopic |
Template for simple implementation of AbstractCompositeHelpTopic. More... | |
class | HelpLinks |
Hyperlink data for writing out help. More... | |
class | HelpWriterContext |
Context information for writing out help. More... | |
class | IHelpTopic |
Provides a single online help topic. More... | |
class | RstParagraphIterator |
Iterator over reStructuredText paragraphs. More... | |
class | AbstractOptionStorage |
Abstract base class for converting, validating, and storing option values. More... | |
class | AbstractOptionSection |
Base class for specifying option section properties. More... | |
class | AbstractOptionSectionHandle |
Base class for handles to option sections. More... | |
class | BooleanOptionStorage |
Converts, validates, and stores boolean values. More... | |
class | IntegerOptionStorage |
Converts, validates, and stores integer values. More... | |
class | Int64OptionStorage |
Converts, validates, and stores integer values. More... | |
class | DoubleOptionStorage |
Converts, validates, and stores floating-point (double) values. More... | |
class | FloatOptionStorage |
Converts, validates, and stores floating-point (float) values. More... | |
class | StringOptionStorage |
Converts, validates, and stores string values. More... | |
class | EnumOptionStorage |
Converts, validates, and stores enum values. More... | |
class | OptionsBehaviorCollection |
Container for IOptionsBehavior objects. More... | |
class | FileNameOptionStorage |
Converts, validates, and stores file names. More... | |
class | IOptionSectionStorage |
Provides behavior specific to a certain option section type. More... | |
class | OptionManagerContainer |
Container to keep managers added with Options::addManager() and pass them to options. More... | |
class | OptionsAssigner |
Decorator class for assigning values to Options. More... | |
class | OptionSection |
Declares a simple option section. More... | |
class | OptionSectionHandle |
Allows adding options to an OptionSection. More... | |
class | OptionStorageTemplate |
Templated base class for constructing option value storage classes. More... | |
class | OptionStorageTemplateSimple |
Simplified option storage template for options that have one-to-one value conversion. More... | |
class | OptionsVisitor |
Pure interface for visiting options in a Options object. More... | |
class | OptionsTypeVisitor |
Abstract base class for visiting options of a particular type. More... | |
class | OptionsIterator |
Decorator class for visiting options in a Options object. More... | |
class | OptionsModifyingVisitor |
Pure interface for visiting options in a Options object, allowing modifications. More... | |
class | OptionsModifyingTypeVisitor |
Abstract base class for visiting options of a particular type, allowing modifications. More... | |
class | OptionsModifyingIterator |
Decorator class for visiting options in a Options object, allowing changes. More... | |
class | RepeatingOptionSectionHandle |
Allows adding options to an RepeatingOptionSection. More... | |
class | RepeatingOptionSectionStorage |
Implements handling of the structures that stores per-section values. More... | |
class | RepeatingOptionSection |
Declares an option section that creates a structure for each instance. More... | |
class | OptionValueConverterSimple |
Helper for converting from Any to a given type. More... | |
class | OptionValueStoreNull |
Value storage that does not store anywhere. More... | |
class | PullCoordExpressionParser |
Class with a mathematical expression and parser. More... | |
class | ExponentialDistribution |
Exponential distribution. More... | |
class | GammaDistribution |
Gamma distribution. More... | |
class | NormalDistribution |
Normal distribution. More... | |
class | TabulatedNormalDistribution |
Tabulated normal random distribution. More... | |
class | ThreeFry2x64General |
General implementation class for ThreeFry counter-based random engines. More... | |
class | ThreeFry2x64 |
ThreeFry2x64 random engine with 20 iteractions. More... | |
class | ThreeFry2x64Fast |
ThreeFry2x64 random engine with 13 iteractions. More... | |
class | UniformIntDistribution |
Uniform integer distribution. More... | |
class | UniformRealDistribution |
Uniform real distribution. More... | |
class | RestraintManager |
Manage the Restraint potentials available for Molecular Dynamics. More... | |
class | RestraintMDModule |
MDModule wrapper for Restraint implementations. More... | |
class | Site |
Abstraction for a restraint interaction site. More... | |
class | RestraintForceProvider |
Provide IForceProvider for RestraintMDModuleImpl. More... | |
class | RestraintMDModuleImpl |
IMDModule implementation for RestraintMDModule. More... | |
class | SelectionParserValue |
Describes a parsed value, possibly resulting from expression evaluation. More... | |
class | SelectionParserParameter |
Describes a parsed method parameter. More... | |
class | PositionCalculationCollection |
Collection of gmx_ana_poscalc_t structures for the same topology. More... | |
class | SelectionEvaluator |
Implements selection evaluation. More... | |
class | SelectionFileOption |
Specifies a special option that provides selections from a file. More... | |
class | SelectionFileOptionInfo |
Wrapper class for accessing and modifying selection file option information. More... | |
class | SelectionFileOptionStorage |
Implementation for a special option for reading selections from files. More... | |
class | SelectionOptionStorage |
Converts, validates, and stores selection values. More... | |
struct | SelectionLocation |
Stores the location of a selection element in the selection text. More... | |
class | SelectionTreeElement |
Represents an element of a selection expression. More... | |
struct | SelMethodEvalContext |
Evaluation context for selection methods. More... | |
class | SelectionParserSymbol |
Single symbol for the selection parser. More... | |
class | SelectionParserSymbolIterator |
Forward iterator for iterating symbols of a given type. More... | |
class | SelectionParserSymbolTable |
Symbol table for the selection parser. More... | |
class | Simd4Double |
SIMD4 double type. More... | |
class | Simd4DBool |
SIMD4 variable type to use for logical comparisons on doubles. More... | |
class | Simd4Float |
SIMD4 float type. More... | |
class | Simd4FBool |
SIMD4 variable type to use for logical comparisons on floats. More... | |
class | SimdDouble |
Double SIMD variable. Available if GMX_SIMD_HAVE_DOUBLE is 1. More... | |
class | SimdDInt32 |
Integer SIMD variable type to use for conversions to/from double. More... | |
class | SimdDBool |
Boolean type for double SIMD data. More... | |
class | SimdDIBool |
Boolean type for integer datatypes corresponding to double SIMD. More... | |
class | SimdFloat |
Float SIMD variable. Available if GMX_SIMD_HAVE_FLOAT is 1. More... | |
class | SimdFInt32 |
Integer SIMD variable type to use for conversions to/from float. More... | |
class | SimdFBool |
Boolean type for float SIMD data. More... | |
class | SimdFIBool |
Boolean type for integer datatypes corresponding to float SIMD. More... | |
struct | SimdFloatTag |
Tag type to select to load SimdFloat with simdLoad(U) More... | |
struct | SimdDoubleTag |
Tag type to select to load SimdDouble with simdLoad(U) More... | |
struct | SimdFInt32Tag |
Tag type to select to load SimdFInt32 with simdLoad(U) More... | |
struct | SimdDInt32Tag |
Tag type to select to load SimdDInt32 with simdLoad(U) More... | |
struct | AlignedArray< float, N > |
Identical to std::array with GMX_SIMD_FLOAT_WIDTH alignment. Should not be deleted through base pointer (destructor is non-virtual). More... | |
struct | AlignedArray< double, N > |
Identical to std::array with GMX_SIMD_DOUBLE_WIDTH alignment. Should not be deleted through base pointer (destructor is non-virtual). More... | |
class | SimdSetZeroProxy |
Proxy object to enable setZero() for SIMD and real types. More... | |
class | SwapCoordinates |
Implement Computational Electrophysiology swapping. More... | |
class | CubicSplineTable |
Cubic spline interpolation table. More... | |
class | QuadraticSplineTable |
Quadratic spline interpolation table. More... | |
struct | AnalyticalSplineTableInput |
Specification for analytical table function (name, function, derivative) More... | |
struct | NumericalSplineTableInput |
Specification for vector table function (name, function, derivative, spacing) More... | |
struct | DevelopmentFeatureFlags |
Structure that holds boolean flags corresponding to the development features present enabled through environment variables. More... | |
struct | GpuTaskMapping |
Specifies the GPU deviceID_ available for task_ to use. More... | |
class | GpuTaskAssignmentsBuilder |
Builder for the GpuTaskAssignments for all ranks on this node. More... | |
class | GpuTaskAssignments |
Contains the GPU task assignment for all ranks on this physical node. More... | |
class | ConvertTprInfo |
Declares gmx convert-tpr. More... | |
struct | ExclusionBlock |
Describes exclusions for a single atom. More... | |
class | EnergyFrame |
Contains the content of an .edr frame read by an EnergyFrameReader. More... | |
class | SansDebye |
Derrived class for computing SANS scattering. More... | |
struct | pairHash |
Hash function to allow use of pair in unordered_map. More... | |
class | SaxsDebye |
Derrived class for computing neutron scattering. More... | |
struct | PairDistValue |
structure to store pair dist units More... | |
class | ComputeDebyeScattering |
Base class for computing SANS and SAXS using Debye Method. More... | |
struct | CromerMannParameters |
Cromer-Mann scattering factor parameters to compute structure factor dependent on Q. More... | |
struct | AtomicStructureFactor |
Neutron scattering factor parameters for an atom type. More... | |
class | SurfaceAreaCalculator |
Computes surface areas for a group of atoms/spheres. More... | |
class | UnionFinder |
Union-find data structure for keeping track of disjoint sets. More... | |
class | MappedUnionFinder |
Extension of UnionFind that supports non-consecutive integer indices as items. More... | |
class | TrajectoryAnalysisRunnerCommon |
Implements common trajectory analysis runner functionality. More... | |
class | AlignedAllocationPolicy |
Policy class for configuring gmx::Allocator, to manage allocations of aligned memory for SIMD code. More... | |
class | PageAlignedAllocationPolicy |
Policy class for configuring gmx::Allocator, to manage allocations of page-aligned memory that can be locked for asynchronous transfer to GPU devices. More... | |
class | Allocator |
Policy-based memory allocator. More... | |
class | Any |
Represents a dynamically typed value of an arbitrary type - deprecated. More... | |
class | BinaryInformationSettings |
Settings for printBinaryInformation(). More... | |
struct | BoolType |
A clone of a bool as a workaround on the template specialization of std::vector<bool> that is incompatible with ArrayRef. More... | |
class | DataFileOptions |
Search parameters for DataFileFinder. More... | |
struct | DataFileInfo |
Information about a data file found by DataFileFinder::enumerateFiles(). More... | |
class | DataFileFinder |
Searches data files from a set of paths. More... | |
class | DefaultInitializationAllocator |
Allocator adaptor that interposes construct() calls to convert value initialization into default initialization. More... | |
class | DirectoryEnumerator |
Lists files in a directory. More... | |
class | IFileInputRedirector |
Allows overriding file existence checks from code that supports it. More... | |
class | IFileOutputRedirector |
Allows capturing stdout and file output from code that supports it. More... | |
class | StandardInputStream |
Text input stream implementation for reading from stdin . More... | |
class | TextInputFile |
Text input stream implementation for reading from a file. More... | |
class | TextOutputFile |
Text output stream implementation for writing to a file. More... | |
class | ISerializer |
Interface for types that convert standard data types into a form suitable for storage or transfer. More... | |
class | KeyValueTreePath |
Identifies an entry in a key-value tree. More... | |
class | KeyValueTreeBuilder |
Root builder for creating trees that have an object at the root. More... | |
class | KeyValueTreeValueBuilder |
Builder for KeyValueTreeValue objects. More... | |
class | KeyValueTreeUniformArrayBuilder |
Builder for KeyValueTreeArray objects where all elements are of type T . More... | |
class | KeyValueTreeObjectArrayBuilder |
Builder for KeyValueTreeArray objects where all elements are KeyValueTreeObject objects. More... | |
class | KeyValueTreeObjectBuilder |
Builder for KeyValueTreeObject objects. More... | |
class | IKeyValueTreeTransformRules |
Interface to declare rules for transforming key-value trees. More... | |
class | KeyValueTreeTransformRulesScoped |
Helper object returned from IKeyValueTreeTransformRules::scopedTransform(). More... | |
class | KeyValueTreeTransformRuleBuilder |
Provides methods to specify one transformation rule. More... | |
class | ILogTarget |
Target where log output can be written. More... | |
class | LogEntryWriter |
Helper class for creating log entries with GMX_LOG. More... | |
class | LogWriteHelper |
Helper class for implementing GMX_LOG. More... | |
class | LogLevelHelper |
Represents a single logging level. More... | |
class | MDLogger |
Declares a logging interface. More... | |
class | LoggerBuilder |
Initializes loggers. More... | |
class | LoggerOwner |
Manages memory for a logger built with LoggerBuilder. More... | |
class | MessageStringCollector |
Helper class for collecting message strings, optionally with context. More... | |
class | MessageStringContext |
Convenience class for creating a message context. More... | |
class | PhysicalNodeCommunicator |
Holds a communicator for the physical node of this rank. More... | |
class | StringCompare |
Compare object for std::string STL containers and algorithms that supports run-time decision on how to compare. More... | |
class | StringOutputStream |
Text output stream implementation for writing to an in-memory string. More... | |
class | StringInputStream |
Helper class to convert static string data to a stream. More... | |
class | StringToEnumValueConverter |
A class to convert a string to an enum value of type EnumType . More... | |
class | TextReader |
Reads text from a TextInputStream. More... | |
class | TextInputStream |
Interface for reading text. More... | |
class | TextOutputStream |
Interface for writing text. More... | |
class | TextWriter |
Writes text into a TextOutputStream. More... | |
struct | isIntegralConstant |
Is true if type is a std::integral_constant. More... | |
struct | no_delete |
Deleter for std::shared_ptr that does nothing. More... | |
class | NonbondedBenchmarkInfo |
Declares gmx nonbonded-bench. More... | |
class | BasicVector |
C++ class for 3D vectors. More... | |
class | AbstractAnalysisData |
Abstract base class for all objects that provide data. More... | |
class | AnalysisData |
Parallelizable data container for raw data. More... | |
class | AnalysisDataHandle |
Handle for inserting data into AnalysisData. More... | |
class | AbstractAnalysisArrayData |
Abstract base class for data objects that present in-memory data. More... | |
class | AnalysisArrayData |
Simple in-memory data array. More... | |
class | AnalysisDataValue |
Value type for representing a single value in analysis data objects. More... | |
class | AnalysisDataFrameHeader |
Value type for storing frame-level information for analysis data. More... | |
class | AnalysisDataPointSetRef |
Value type wrapper for non-mutable access to a set of data column values. More... | |
class | AnalysisDataFrameRef |
Value type wrapper for non-mutable access to a data frame. More... | |
class | IAnalysisDataModule |
Interface for a module that gets notified whenever data is added. More... | |
class | AnalysisDataModuleSerial |
Convenience base class for serial analysis data modules. More... | |
class | AnalysisDataModuleParallel |
Convenience base class for parallel analysis data modules. More... | |
class | AnalysisDataAverageModule |
Data module for independently averaging each column in input data. More... | |
class | AnalysisDataFrameAverageModule |
Data module for averaging of columns for each frame. More... | |
class | AnalysisDataDisplacementModule |
Data module for calculating displacements. More... | |
class | AnalysisHistogramSettingsInitializer |
Provides "named parameter" idiom for constructing histograms. More... | |
class | AnalysisHistogramSettings |
Contains parameters that specify histogram bin locations. More... | |
class | AbstractAverageHistogram |
Base class for representing histograms averaged over frames. More... | |
class | AnalysisDataSimpleHistogramModule |
Data module for per-frame histograms. More... | |
class | AnalysisDataWeightedHistogramModule |
Data module for per-frame weighted histograms. More... | |
class | AnalysisDataBinAverageModule |
Data module for bin averages. More... | |
class | AnalysisDataLifetimeModule |
Data module for computing lifetime histograms for columns in input data. More... | |
class | AnalysisDataPlotSettings |
Common settings for data plots. More... | |
class | AbstractPlotModule |
Abstract data module for writing data into a file. More... | |
class | AnalysisDataPlotModule |
Plotting module for straightforward plotting of data. More... | |
class | AnalysisDataVectorPlotModule |
Plotting module specifically for data consisting of vectors. More... | |
struct | StaticLog2 |
Evaluate log2(n) for integer n statically at compile time. More... | |
struct | StaticLog2< 1 > |
Specialization of StaticLog2<n> for n==1. More... | |
struct | StaticLog2< 0 > |
Specialization of StaticLog2<n> for n==0. More... | |
class | AbstractOption |
Abstract base class for specifying option properties. More... | |
class | OptionTemplate |
Templated base class for constructing concrete option settings classes. More... | |
class | OptionInfo |
Gives information and allows modifications to an option after creation. More... | |
class | BooleanOption |
Specifies an option that provides boolean values. More... | |
class | IntegerOption |
Specifies an option that provides integer values. More... | |
class | Int64Option |
Specifies an option that provides 64-bit integer values. More... | |
class | DoubleOption |
Specifies an option that provides floating-point (double) values. More... | |
class | FloatOption |
Specifies an option that provides floating-point (float) values. More... | |
class | StringOption |
Specifies an option that provides string values. More... | |
class | EnumOption |
Specifies an option that accepts an EnumerationArray of string values and writes the selected index into an enum variable. More... | |
class | LegacyEnumOption |
Specifies an option that accepts enumerated string values and writes the selected index into an enum variable. More... | |
class | BooleanOptionInfo |
Wrapper class for accessing boolean option information. More... | |
class | IntegerOptionInfo |
Wrapper class for accessing integer option information. More... | |
class | Int64OptionInfo |
Wrapper class for accessing 64-bit integer option information. More... | |
class | DoubleOptionInfo |
Wrapper class for accessing floating-point option information. More... | |
class | FloatOptionInfo |
Wrapper class for accessing floating-point option information. More... | |
class | StringOptionInfo |
Wrapper class for accessing string option information. More... | |
class | EnumOptionInfo |
Wrapper class for accessing enum option information. More... | |
class | FileNameOption |
Specifies an option that provides file names. More... | |
class | FileNameOptionInfo |
Wrapper class for accessing file name option information. More... | |
class | FileNameOptionManager |
Handles interaction of file name options with global options. More... | |
class | IOptionsBehavior |
Interface to provide extension points for options parsing. More... | |
class | IOptionsContainer |
Interface for adding input options. More... | |
class | IOptionsContainerWithSections |
Interface for adding input options with sections. More... | |
class | IOptionValueStore |
Represents the final storage location of option values. More... | |
class | IOptionManager |
Base class for option managers. More... | |
class | Options |
Collection of options. More... | |
class | TimeUnitManager |
Provides common functionality for time unit conversions. More... | |
class | TimeUnitBehavior |
Options behavior to add a time unit option. More... | |
class | PotentialPointData |
Structure to hold the results of IRestraintPotential::evaluate(). More... | |
class | IRestraintPotential |
Interface for Restraint potentials. More... | |
class | IndexGroupsAndNames |
Bundle index groups with their names. More... | |
class | AnalysisNeighborhoodPositions |
Input positions for neighborhood searching. More... | |
class | AnalysisNeighborhood |
Neighborhood searching for analysis tools. More... | |
class | AnalysisNeighborhoodPair |
Value type to represent a pair of positions found in neighborhood searching. More... | |
class | AnalysisNeighborhoodSearch |
Initialized neighborhood search with a fixed set of reference positions. More... | |
class | AnalysisNeighborhoodPairSearch |
Initialized neighborhood pair search with a fixed set of positions. More... | |
class | Selection |
Provides access to a single selection. More... | |
class | SelectionPosition |
Provides access to information about a single selected position. More... | |
class | SelectionCollection |
Collection of selections. More... | |
struct | SelectionTopologyProperties |
Describes topology properties required for selection evaluation. More... | |
class | SelectionOption |
Specifies an option that provides selection(s). More... | |
class | SelectionOptionInfo |
Wrapper class for accessing and modifying selection option information. More... | |
class | ITopologyProvider |
Provides topology information to SelectionOptionBehavior. More... | |
class | SelectionOptionBehavior |
Options behavior to allow using SelectionOptions. More... | |
class | SelectionOptionManager |
Handles interaction of selection options with other options and user input. More... | |
class | RangePartitioning |
Division of a range of indices into consecutive blocks. More... | |
class | TrajectoryFrame |
Contains a valid trajectory frame. More... | |
class | TrajectoryAnalysisModuleData |
Base class for thread-local data storage during trajectory analysis. More... | |
class | TrajectoryAnalysisModule |
Base class for trajectory analysis modules. More... | |
class | TrajectoryAnalysisSettings |
Trajectory analysis module configuration object. More... | |
class | TrajectoryAnalysisCommandLineRunner |
Runner for command-line trajectory analysis tools. More... | |
class | TopologyInformation |
Topology information available to a trajectory analysis module. More... | |
class | EnumerationIterator |
Allows iterating sequential enumerators. More... | |
class | EnumerationWrapper |
Allows constructing iterators for looping over sequential enumerators. More... | |
class | EnumClassSuitsEnumerationArray |
Helper class to determine whether a template type that is an enum class has a Count field. More... | |
class | ExceptionInfo |
Stores additional context information for exceptions. More... | |
struct | ThrowLocation |
Stores the location from which an exception was thrown. More... | |
class | ExceptionInitializer |
Provides information for Gromacs exception constructors. More... | |
class | GromacsException |
Base class for all exception objects in Gromacs. More... | |
class | FileIOError |
Exception class for file I/O errors. More... | |
class | UserInputError |
Exception class for user input errors. More... | |
class | InvalidInputError |
Exception class for situations where user input cannot be parsed/understood. More... | |
class | InconsistentInputError |
Exception class for situations where user input is inconsistent. More... | |
class | ToleranceError |
Exception class when a specified tolerance cannot be achieved. More... | |
class | SimulationInstabilityError |
Exception class for simulation instabilities. More... | |
class | InternalError |
Exception class for internal errors. More... | |
class | APIError |
Exception class for incorrect use of an API. More... | |
class | RangeError |
Exception class for out-of-range values or indices. More... | |
class | NotImplementedError |
Exception class for use of an unimplemented feature. More... | |
class | ParallelConsistencyError |
Exception class for use when ensuring that MPI ranks to throw in a coordinated fashion. More... | |
class | ModularSimulatorError |
Exception class for modular simulator. More... | |
class | FlagsTemplate |
Template class for typesafe handling of combination of flags. More... | |
struct | InstallationPrefixInfo |
Provides information about installation prefix (see IProgramContext::installationPrefix()). More... | |
class | IProgramContext |
Provides context information about the program that is calling the library. More... | |
class | StringFormatter |
Function object that wraps a call to formatString() that expects a single conversion argument, for use with algorithms. More... | |
class | IdentityFormatter |
Function object to implement the same interface as StringFormatter to use with strings that should not be formatted further. More... | |
class | EqualCaseInsensitive |
Function object for comparisons with equalCaseInsensitive . More... | |
class | TextLineWrapperSettings |
Stores settings for line wrapping. More... | |
class | TextLineWrapper |
Wraps lines to a predefined length. More... | |
struct | CompileTimeStringJoin |
Combines string literals at compile time to final string. More... | |
struct | functor_wrapper |
wrap function into functor to be used as deleter More... | |
Typedefs | |
typedef double | awh_dvec [c_biasMaxNumDim] |
A real vector in AWH coordinate space. | |
typedef int | awh_ivec [c_biasMaxNumDim] |
An integer vector in AWH coordinate space. | |
typedef int | force_env_t |
Type for CP2K force environment handle. | |
typedef std::unique_ptr < ICommandLineModule > | CommandLineModulePointer |
Smart pointer type for managing a ICommandLineModule. | |
typedef std::map< std::string, CommandLineModulePointer > | CommandLineModuleMap |
Container type for mapping module names to module objects. | |
typedef std::unique_ptr < CommandLineModuleGroupData > | CommandLineModuleGroupDataPointer |
Smart pointer type for managing a CommandLineModuleGroup. | |
typedef std::vector < CommandLineModuleGroupDataPointer > | CommandLineModuleGroupList |
Container type for keeping a list of module groups. | |
typedef std::unique_ptr < ICommandLineOptionsModule > | ICommandLineOptionsModulePointer |
Smart pointer to manage an ICommandLineOptionsModule. | |
typedef std::unique_ptr < IExecutableEnvironment > | ExecutableEnvironmentPointer |
Shorthand for a smart pointer to IExecutableEnvironment. | |
using | TrajectoryFrameWriterPointer = std::unique_ptr< TrajectoryFrameWriter > |
Smart pointer to manage the TrajectoryFrameWriter object. | |
using | ProcessFrameConversionPointer = std::unique_ptr< ProcessFrameConversion > |
Smart pointer to manage the analyse object. | |
using | FrameConverterPointer = std::unique_ptr< IFrameConverter > |
Typedef to have direct access to the individual FrameConverter modules. | |
using | OutputAdapterPointer = std::unique_ptr< IOutputAdapter > |
Smart pointer to manage the frame adapter object. | |
using | OutputSelectorPointer = std::unique_ptr< OutputSelector > |
Smart pointer to manage the object. | |
using | SetAtomsPointer = std::unique_ptr< SetAtoms > |
Smart pointer to manage the object. | |
using | SetBoxPointer = std::unique_ptr< SetBox > |
Smart pointer to manage the object. | |
using | SetForcesPointer = std::unique_ptr< SetForces > |
Smart pointer to manage the object. | |
using | SetPrecisionPointer = std::unique_ptr< SetPrecision > |
Smart pointer to manage the outputselector object. | |
using | SetStartTimePointer = std::unique_ptr< SetStartTime > |
Smart pointer to manage the object. | |
using | SetTimeStepPointer = std::unique_ptr< SetTimeStep > |
Smart pointer to manage the object. | |
using | SetVelocitiesPointer = std::unique_ptr< SetVelocities > |
Smart pointer to manage the object. | |
using | EnergyAnalysisFrameIterator = std::vector< EnergyAnalysisFrame >::const_iterator |
Typedef for looping over EnergyFrame. | |
using | IEnergyAnalysisPointer = std::unique_ptr< IEnergyAnalysis > |
Pointer to the EnergyAnalysisModule classes. | |
typedef struct gmx::CacheLineAlignedFlag | CacheLineAlignedFlag |
Class with interfaces and data for CUDA version of PME Force sending functionality. More... | |
typedef int64_t | hid_t |
typedef int | herr_t |
template<class T > | |
using | HostAllocator = Allocator< T, HostAllocationPolicy > |
Memory allocator that uses HostAllocationPolicy. More... | |
template<class T > | |
using | HostVector = std::vector< T, HostAllocator< T >> |
Convenience alias for std::vector that uses HostAllocator. | |
template<class T > | |
using | PaddedHostVector = PaddedVector< T, HostAllocator< T >> |
Convenience alias for PaddedVector that uses HostAllocator. | |
template<typename T > | |
using | AlignedVector = std::vector< T, AlignedAllocator< T >> |
Convenience type for vector with aligned memory. | |
using | mode = sycl::access_mode |
template<class ElementType > | |
using | BasicMatrix3x3 = MultiDimArray< std::array< ElementType, 3 *3 >, extents< 3, 3 >> |
Three-by-three matrix of ElementType. More... | |
using | Matrix3x3 = BasicMatrix3x3< real > |
Three-by-three real number matrix. More... | |
using | Matrix3x3Span = Matrix3x3::view_type |
Convenience alias for a matrix view. | |
using | Matrix3x3ConstSpan = Matrix3x3::const_view_type |
Convenience alias for a const matrix view. | |
typedef std::array < SimulationSignal, eglsNR > | SimulationSignals |
Convenience typedef for the group of signals used. | |
using | VirialHandling = VirtualSitesHandler::VirialHandling |
VirialHandling is often used outside VirtualSitesHandler class members. | |
typedef std::array < std::vector< int > , c_ftypeVsiteEnd-c_ftypeVsiteStart > | VsitePbc |
Type for storing PBC atom information for all vsite types in the system. | |
using | SimulatorFunctionType ) = void( |
Function type for simulator code. | |
using | LogFilePtr = std::unique_ptr< t_fileio, functor_wrapper< t_fileio, closeLogFile >> |
Simple guard pointer See unique_cptr for details. | |
using | dynamicExtents2D = extents< dynamic_extent, dynamic_extent > |
Convenience type for often-used two dimensional extents. | |
using | dynamicExtents3D = extents< dynamic_extent, dynamic_extent, dynamic_extent > |
Convenience type for often-used three dimensional extents. | |
template<class T , ptrdiff_t... Indices> | |
using | mdspan = basic_mdspan< T, extents< Indices...>, layout_right, accessor_basic< T >> |
basic_mdspan with wrapped indices, basic_accessor policiy and right-aligned memory layout. | |
using | ReadCheckpointData = CheckpointData< CheckpointDataOperation::Read > |
Convenience shortcut for reading checkpoint data. | |
using | WriteCheckpointData = CheckpointData< CheckpointDataOperation::Write > |
Convenience shortcut for writing checkpoint data. | |
using | Step = int64_t |
Step number. | |
typedef std::function< void()> | CheckBondedInteractionsCallback |
The function type allowing to request a check of the number of bonded interactions. | |
using | EnergyContribution = std::function< real(Step, Time)> |
Function type for elements contributing energy. | |
using | Time = double |
Simulation time. | |
typedef std::function< void()> | SimulatorRunFunction |
The function type that can be scheduled to be run during the simulator run. | |
typedef std::function< void(SimulatorRunFunction)> | RegisterRunFunction |
The function type that allows to register run functions. | |
typedef std::function< void(Step, Time, const RegisterRunFunction &)> | SchedulingFunction |
The function type scheduling run functions for a step / time using a RegisterRunFunction reference. | |
typedef std::function< void(Step, Time)> | SignallerCallback |
The function type that can be registered to signallers for callback. | |
typedef std::function< void(gmx_mdoutf *, Step, Time, bool, bool)> | ITrajectoryWriterCallback |
Function type for trajectory writing clients. | |
typedef std::function< void(Step)> | PropagatorCallback |
Generic callback to the propagator. | |
typedef std::function< void()> | DomDecCallback |
Callback used by the DomDecHelper object to inform clients about system re-partitioning. | |
using | ReferenceTemperatureCallback = std::function< void(ArrayRef< const real >, ReferenceTemperatureChangeAlgorithm algorithm)> |
Callback updating the reference temperature. | |
using | GpuPairlistByLocality = EnumerationArray< InteractionLocality, std::unique_ptr< GpuPairlist >> |
typedef struct gmx::cl_nbparam_params | cl_nbparam_params_t |
Data structure shared between the OpenCL device code and OpenCL host code. More... | |
typedef SimdReal | SimdBitMask |
Define SimdBitMask as a real SIMD register. | |
using | FCiFloat3 = Float3 |
typedef std::unique_ptr < AbstractCompositeHelpTopic > | CompositeHelpTopicPointer |
Smart pointer type to manage a AbstractCompositeHelpTopic object. | |
typedef std::unique_ptr < IHelpTopic > | HelpTopicPointer |
Smart pointer type to manage a IHelpTopic object. | |
typedef std::shared_ptr < IOptionsBehavior > | OptionsBehaviorPointer |
Smart pointer for behaviors stored in OptionsBehaviorCollection. | |
typedef std::random_device | RandomDevice |
Random device. More... | |
typedef ThreeFry2x64Fast | DefaultRandomEngine |
Default fast and accurate random engine in Gromacs. More... | |
typedef std::list < SelectionParserValue > | SelectionParserValueList |
Container for a list of SelectionParserValue objects. | |
typedef std::unique_ptr < SelectionParserValueList > | SelectionParserValueListPointer |
Smart pointer type for managing a SelectionParserValueList. | |
typedef std::list < SelectionParserParameter > | SelectionParserParameterList |
Container for a list of SelectionParserParameter objects. | |
typedef std::unique_ptr < SelectionParserParameterList > | SelectionParserParameterListPointer |
Smart pointer type for managing a SelectionParserParameterList. | |
typedef std::unique_ptr < internal::SelectionData > | SelectionDataPointer |
Smart pointer for managing an internal selection data object. | |
typedef std::vector < SelectionDataPointer > | SelectionDataList |
Container for storing a list of selections internally. | |
typedef std::shared_ptr < SelectionTreeElement > | SelectionTreeElementPointer |
Smart pointer type for selection tree element pointers. | |
typedef void(* | sel_evalfunc )(struct gmx_sel_evaluate_t *data, const SelectionTreeElementPointer &sel, gmx_ana_index_t *g) |
Function pointer for evaluating a gmx::SelectionTreeElement. | |
using | GpuTasksOnRanks = std::vector< std::vector< GpuTask >> |
Container of compute tasks suitable to run on a GPU e.g. on each rank of a node. | |
using | GpuTaskAssignment = std::vector< GpuTaskMapping > |
Container of GPU tasks on a rank, specifying the task type and GPU device ID, e.g. potentially ready for consumption by the modules on that rank. | |
template<class T > | |
using | AlignedAllocator = Allocator< T, AlignedAllocationPolicy > |
Aligned memory allocator. More... | |
template<class T > | |
using | PageAlignedAllocator = Allocator< T, PageAlignedAllocationPolicy > |
PageAligned memory allocator. More... | |
template<typename T > | |
using | FastVector = std::vector< T, DefaultInitializationAllocator< T >> |
Convenience type for vector that avoids initialization at resize() | |
using | MPI_Comm_ptr = gmx::unique_cptr< MPI_Comm, MPI_Comm_free_wrapper > |
Make a smart pointer for MPI communicators. | |
typedef std::shared_ptr < TextInputStream > | TextInputStreamPointer |
Shorthand for a smart pointer to a TextInputStream. | |
typedef std::shared_ptr < TextOutputStream > | TextOutputStreamPointer |
Shorthand for a smart pointer to a TextOutputStream. | |
typedef std::shared_ptr < IAnalysisDataModule > | AnalysisDataModulePointer |
Smart pointer for managing a generic analysis data module. | |
typedef ArrayRef< const AnalysisDataValue > | AnalysisDataValuesRef |
Shorthand for reference to an array of data values. | |
typedef std::shared_ptr < AnalysisDataAverageModule > | AnalysisDataAverageModulePointer |
Smart pointer to manage an AnalysisDataAverageModule object. | |
typedef std::shared_ptr < AnalysisDataFrameAverageModule > | AnalysisDataFrameAverageModulePointer |
Smart pointer to manage an AnalysisDataFrameAverageModule object. | |
typedef std::shared_ptr < AnalysisDataDisplacementModule > | AnalysisDataDisplacementModulePointer |
Smart pointer to manage an AnalysisDataDisplacementModule object. | |
typedef std::unique_ptr < AbstractAverageHistogram > | AverageHistogramPointer |
Smart pointer to manage an AbstractAverageHistogram object. | |
typedef std::shared_ptr < AnalysisDataSimpleHistogramModule > | AnalysisDataSimpleHistogramModulePointer |
Smart pointer to manage an AnalysisDataSimpleHistogramModule object. | |
typedef std::shared_ptr < AnalysisDataWeightedHistogramModule > | AnalysisDataWeightedHistogramModulePointer |
Smart pointer to manage an AnalysisDataWeightedHistogramModule object. | |
typedef std::shared_ptr < AnalysisDataBinAverageModule > | AnalysisDataBinAverageModulePointer |
Smart pointer to manage an AnalysisDataBinAverageModule object. | |
typedef std::shared_ptr < AnalysisDataLifetimeModule > | AnalysisDataLifetimeModulePointer |
Smart pointer to manage an AnalysisDataLifetimeModule object. | |
typedef std::shared_ptr < AnalysisDataPlotModule > | AnalysisDataPlotModulePointer |
Smart pointer to manage an AnalysisDataPlotModule object. | |
typedef std::shared_ptr < AnalysisDataVectorPlotModule > | AnalysisDataVectorPlotModulePointer |
Smart pointer to manage an AnalysisDataVectorPlotModule object. | |
typedef BasicVector< real > | RVec |
Shorthand for C++ rvec -equivalent type. | |
typedef BasicVector< double > | DVec |
Shorthand for C++ dvec -equivalent type. | |
typedef BasicVector< int > | IVec |
Shorthand for C++ ivec -equivalent type. | |
typedef FloatOption | RealOption |
Typedef for either DoubleOption or FloatOption, depending on precision. More... | |
typedef FloatOptionInfo | RealOptionInfo |
Typedef for either DoubleOptionInfo or FloatOptionInfo, depending on precision. More... | |
typedef FlagsTemplate< OptionFlag > | OptionFlags |
Holds a combination of OptionFlag values. | |
using | Vector = ::gmx::RVec |
Provide a vector type name with a more stable interface than RVec and a more stable implementation than vec3<>. More... | |
typedef std::vector< Selection > | SelectionList |
Container of selections used in public selection interfaces. | |
typedef FlagsTemplate < SelectionFlag > | SelectionFlags |
Holds a collection of SelectionFlag values. | |
using | BoxMatrix = std::array< std::array< real, DIM >, DIM > |
A 3x3 matrix data type useful for simulation boxes. More... | |
typedef std::unique_ptr < TrajectoryAnalysisModuleData > | TrajectoryAnalysisModuleDataPointer |
Smart pointer to manage a TrajectoryAnalysisModuleData object. | |
typedef std::unique_ptr < TrajectoryAnalysisModule > | TrajectoryAnalysisModulePointer |
Smart pointer to manage a TrajectoryAnalysisModule. | |
using | Index = std::ptrdiff_t |
Integer type for indexing into arrays or vectors. More... | |
typedef ExceptionInfo< struct ExceptionInfoErrno_, int > | ExceptionInfoErrno |
Stores errno value that triggered the exception. | |
typedef ExceptionInfo< struct ExceptionInfoApiFunc_, const char * > | ExceptionInfoApiFunction |
Stores the function name that returned the errno in ExceptionInfoErrno. | |
typedef ExceptionInfo< struct ExceptionInfoLocation_, ThrowLocation > | ExceptionInfoLocation |
Stores the location where the exception was thrown. | |
using | FilePtr = std::unique_ptr< FILE, functor_wrapper< FILE, fclose_wrapper >> |
Simple guard pointer which calls fclose. See unique_cptr for details. | |
template<typename T , void D = sfree_wrapper> | |
using | unique_cptr = std::unique_ptr< T, functor_wrapper< T, D >> |
unique_ptr which takes function pointer (has to return void) as template argument | |
typedef unique_cptr< void > | sfree_guard |
Simple guard which calls sfree. See unique_cptr for details. | |
using | ClContext = ClHandle< cl_context > |
Convenience declarations. | |
using | ClCommandQueue = ClHandle< cl_command_queue > |
using | ClProgram = ClHandle< cl_program > |
using | ClKernel = ClHandle< cl_kernel > |
Enumerations | |
enum | AwhOutputEntryType { AwhOutputEntryType::MetaData, AwhOutputEntryType::CoordValue, AwhOutputEntryType::Pmf, AwhOutputEntryType::Bias, AwhOutputEntryType::Visits, AwhOutputEntryType::Weights, AwhOutputEntryType::Target, AwhOutputEntryType::SharedForceCorrelationVolume, AwhOutputEntryType::SharedFrictionTensor } |
Enum with the AWH variables to write. More... | |
enum | AwhOutputMetaData { AwhOutputMetaData::NumBlock, AwhOutputMetaData::TargetError, AwhOutputMetaData::ScaledSampleWeight, AwhOutputMetaData::Count } |
Enum with the types of metadata to write. More... | |
enum | Normalization { Normalization::None, Normalization::Coordinate, Normalization::FreeEnergy, Normalization::Distribution } |
Enum with different ways of normalizing the output. More... | |
enum | DensityFittingAmplitudeMethod : int { DensityFittingAmplitudeMethod::Unity, DensityFittingAmplitudeMethod::Mass, DensityFittingAmplitudeMethod::Charge, Count } |
The methods that determine how amplitudes are spread on a grid in density guided simulations. More... | |
enum | QMMMQMMethod { QMMMQMMethod::PBE, QMMMQMMethod::BLYP, QMMMQMMethod::INPUT, Count } |
Enumerator for supported QM methods Also could be INPUT which means external input file provided with the name determined by QMMMParameters::qminputfilename_. More... | |
enum | ShellCompletionFormat { eShellCompletionFormat_Bash } |
Output format for ShellCompletionWriter. More... | |
enum | CoordinateFileFlags : unsigned long { CoordinateFileFlags::Base = 1 << 0, CoordinateFileFlags::RequireForceOutput = 1 << 1, CoordinateFileFlags::RequireVelocityOutput = 1 << 2, CoordinateFileFlags::RequireAtomConnections = 1 << 3, CoordinateFileFlags::RequireAtomInformation = 1 << 4, CoordinateFileFlags::RequireChangedOutputPrecision = 1 << 5, CoordinateFileFlags::RequireNewFrameStartTime = 1 << 6, CoordinateFileFlags::RequireNewFrameTimeStep = 1 << 7, CoordinateFileFlags::RequireNewBox = 1 << 8, CoordinateFileFlags::RequireCoordinateSelection = 1 << 9, CoordinateFileFlags::Count } |
The enums here define the flags specifying the requirements of different outputadapter modules. More... | |
enum | ChangeSettingType : int { PreservedIfPresent, Always, Never, Count } |
Enum class for setting basic flags in a t_trxframe. | |
enum | ChangeAtomsType { PreservedIfPresent, AlwaysFromStructure, Never, Always, Count } |
Enum class for t_atoms settings. | |
enum | ChangeFrameInfoType { PreservedIfPresent, Always, Count } |
Enum class for setting fields new or not. | |
enum | ChangeFrameTimeType { PreservedIfPresent, StartTime, TimeStep, Both, Count } |
Enum class for setting frame time from user input. | |
enum | FrameConverterFlags : unsigned long { FrameConverterFlags::NoGuarantee = 1 << 0, FrameConverterFlags::MoleculesAreWhole = 1 << 1, FrameConverterFlags::NoPBCJumps = 1 << 2, FrameConverterFlags::MoleculeCOMInBox = 1 << 3, FrameConverterFlags::ResidueCOMInBox = 1 << 4, FrameConverterFlags::AtomsInBox = 1 << 5, FrameConverterFlags::UnitCellIsRectangular = 1 << 6, FrameConverterFlags::UnitCellIsTriclinic = 1 << 7, FrameConverterFlags::UnitCellIsCompact = 1 << 8, FrameConverterFlags::SystemIsCenteredInBox = 1 << 9, FrameConverterFlags::FitToReferenceRotTrans = 1 << 10, FrameConverterFlags::FitToReferenceRotTransXY = 1 << 11, FrameConverterFlags::FitToReferenceTranslation = 1 << 12, FrameConverterFlags::FitToReferenceTranslationXY = 1 << 13, FrameConverterFlags::FitToReferenceProgressive = 1 << 14, FrameConverterFlags::NewSystemCenter = 1 << 15, FrameConverterFlags::Count } |
The enums here define the guarantees provided by frameconverters concerning the modifications they provide. More... | |
enum | HaloMpiTag { HaloMpiTag::X, HaloMpiTag::F, GridCounts, HaloMpiTag::GridColumns, HaloMpiTag::GridDimensions, HaloMpiTag::AtomIndices } |
MPI tags for non-blocking x and f communication. More... | |
enum | HaloType { Coordinates, Forces } |
Whether the halo exchange is of coordinates or forces. | |
enum | DdRankOrder { DdRankOrder::select, DdRankOrder::interleave, DdRankOrder::pp_pme, DdRankOrder::cartesian, DdRankOrder::Count } |
The options for the domain decomposition MPI task ordering. More... | |
enum | DlbOption { DlbOption::select, DlbOption::turnOnWhenUseful, DlbOption::no, DlbOption::yes, DlbOption::Count } |
The options for the dynamic load balancing. More... | |
enum | DDBondedChecking : bool { DDBondedChecking::ExcludeZeroLimit = false, DDBondedChecking::All = true } |
Options for checking bonded interactions. More... | |
enum | DirectionX : int { Up = 0, Down, Center, Count } |
Direction of neighbouring rank in X-dimension relative to current rank. Used in GPU implementation of PME halo exchange. | |
enum | DirectionY : int { Left = 0, Right, Center, Count } |
Direction of neighbouring rank in Y-dimension relative to current rank. Used in GPU implementation of PME halo exchange. | |
enum | FftBackend { FftBackend::Cufft, FftBackend::OclVkfft, FftBackend::Ocl, FftBackend::CuFFTMp, FftBackend::HeFFTe_CUDA, FftBackend::HeFFTe_Sycl_OneMkl, FftBackend::HeFFTe_Sycl_Rocfft, FftBackend::HeFFTe_Sycl_cuFFT, FftBackend::SyclMkl, FftBackend::SyclOneMkl, FftBackend::SyclRocfft, FftBackend::SyclVkfft, FftBackend::SyclBbfft, FftBackend::Sycl, FftBackend::HipVkfft, FftBackend::HipRocfft, Count } |
Enum specifying all GPU FFT backends supported by GROMACS Some of the backends support only single GPU, some only multi-node, multi-GPU. More... | |
enum | FftDirection : int { RealToComplex, ComplexToReal, Count } |
Model the kinds of 3D FFT implemented. | |
enum | H5mdFileMode : char { Read = 'r', H5mdFileMode::Write = 'w', H5mdFileMode::Append = 'a' } |
enum | SpaceGroup : int32_t { SpaceGroup::P1 = 1 } |
Space group in three dimensions. More... | |
enum | MrcDataMode : int32_t { MrcDataMode::uInt8 = 0, MrcDataMode::int16 = 1, MrcDataMode::float32 = 2, MrcDataMode::complexInt32 = 3, MrcDataMode::complexFloat64 = 4 } |
The type of density data stored in an mrc file. As named in "EMDB Map Distribution Format Description Version 1.01 (c) emdatabank.org 2014" Modes 0-4 are defined by the standard. NOTE only mode 2 is currently implemented and used. More... | |
enum | DeviceStreamType : int { DeviceStreamType::NonBondedLocal, DeviceStreamType::NonBondedNonLocal, DeviceStreamType::Pme, DeviceStreamType::PmePpTransfer, DeviceStreamType::UpdateAndConstraints, DeviceStreamType::Count } |
Class enum to describe the different logical streams used for GPU work. More... | |
enum | PinningPolicy : int { CannotBePinned, PinnedIfSupported } |
Helper enum for pinning policy of the allocation of HostAllocationPolicy. More... | |
enum | Architecture { Architecture::Unknown, Architecture::X86, Architecture::Arm, Architecture::PowerPC, Architecture::RiscV32, Architecture::RiscV64, Architecture::Loongarch64 } |
Enum for GROMACS CPU hardware detection support. More... | |
enum | SimdType { SimdType::None, SimdType::Reference, SimdType::Generic, SimdType::X86_Sse2, SimdType::X86_Sse4_1, SimdType::X86_Avx128Fma, SimdType::X86_Avx, SimdType::X86_Avx2, SimdType::X86_Avx2_128, SimdType::X86_Avx512, SimdType::X86_Avx512Knl, SimdType::Arm_NeonAsimd, SimdType::Arm_Sve, SimdType::Ibm_Vsx } |
Enumerated options for SIMD architectures. More... | |
enum | IMDMessageType : int { IMDMessageType::Disconnect, IMDMessageType::Energies, IMDMessageType::FCoords, IMDMessageType::Go, IMDMessageType::Handshake, IMDMessageType::Kill, IMDMessageType::Mdcomm, IMDMessageType::Pause, IMDMessageType::TRate, IMDMessageType::IOerror, IMDMessageType::Count } |
Enum for types of IMD messages. More... | |
enum | DensitySimilarityMeasureMethod : int { DensitySimilarityMeasureMethod::innerProduct, DensitySimilarityMeasureMethod::relativeEntropy, DensitySimilarityMeasureMethod::crossCorrelation, Count } |
The methods that determine how two densities are compared to one another. More... | |
enum | CheckpointSignal { noSignal = 0, doCheckpoint = 1 } |
Checkpoint signals. More... | |
enum | ConstraintVariable : int { Positions, Velocities, Derivative, Deriv_FlexCon, Force, ForceDispl } |
Describes supported flavours of constrained updates. | |
enum | FlexibleConstraintTreatment { FlexibleConstraintTreatment::Include, FlexibleConstraintTreatment::Exclude } |
Tells make_at2con how to treat flexible constraints. More... | |
enum | NumTempScaleValues { NumTempScaleValues::None = 0, NumTempScaleValues::Single = 1, NumTempScaleValues::Multiple = 2, NumTempScaleValues::Count = 3 } |
Sets the number of different temperature coupling values. More... | |
enum | GraphState : int { GraphState::Invalid, GraphState::Recording, GraphState::Recorded, GraphState::Instantiated, GraphState::Count } |
State of graph. More... | |
enum | ResetSignal { noSignal = 0, doResetCounters = 1 } |
Reset signals. More... | |
enum | StopSignal : int { noSignal = 0, stopAtNextNSStep = 1, stopImmediately = -1 } |
Stop signals. More... | |
enum | IncompatibilityReasons { FlexibleConstraint, IncompatibleVsite, VsiteConstructingAtomsSplit, ConstrainedAtomOrder, NoCentralConstraintAtom, Count } |
Reasons why the system can be incompatible with update groups. | |
enum | VSiteCalculatePosition { Yes, No } |
Whether we're calculating the virtual site position. | |
enum | VSiteCalculateVelocity { Yes, No } |
Whether we're calculating the virtual site velocity. | |
enum | PbcMode { PbcMode::all, PbcMode::none } |
PBC modes for vsite construction and spreading. More... | |
enum | VSiteOperation { VSiteOperation::Positions, VSiteOperation::Velocities, VSiteOperation::PositionsAndVelocities, VSiteOperation::Count } |
Whether we calculate vsite positions, velocities, or both. More... | |
enum | VirtualSiteVirialHandling : int { VirtualSiteVirialHandling::None, VirtualSiteVirialHandling::Pbc, VirtualSiteVirialHandling::NonLinear } |
Tells how to handle virial contributions due to virtual sites. More... | |
enum | StartingBehavior : int { StartingBehavior::RestartWithAppending, StartingBehavior::RestartWithoutAppending, StartingBehavior::NewSimulation, StartingBehavior::Count } |
Enumeration for describing how mdrun is (re)starting. More... | |
enum | : std::ptrdiff_t { dynamic_extent = -1 } |
Define constant that signals dynamic extent. | |
enum | AwhTargetType : int { Constant, Cutoff, Boltzmann, LocalBoltzmann, Count, Default = Constant } |
Target distribution enum. | |
enum | AwhHistogramGrowthType : int { ExponentialLinear, Linear, Count, Default = ExponentialLinear } |
Weight histogram growth enum. | |
enum | AwhPotentialType : int { Convolved, Umbrella, Count, Default = Convolved } |
AWH potential type enum. | |
enum | AwhCoordinateProviderType : int { Pull, FreeEnergyLambda, Count, Default = Pull } |
AWH bias reaction coordinate provider. | |
enum | CheckpointDataOperation { Read, Write, Count } |
The operations on CheckpointData. More... | |
enum | AtomLocality : int { AtomLocality::Local = 0, AtomLocality::NonLocal = 1, AtomLocality::All = 2, AtomLocality::Count = 3 } |
Atom locality indicator: local, non-local, all. More... | |
enum | InteractionLocality : int { InteractionLocality::Local = 0, InteractionLocality::NonLocal = 1, InteractionLocality::Count = 2 } |
Interaction locality indicator: local, non-local, all. More... | |
enum | AppendingBehavior { AppendingBehavior::Auto, AppendingBehavior::Appending, AppendingBehavior::NoAppending } |
Enumeration for mdrun appending behavior. More... | |
enum | MtsForceGroups : int { MtsForceGroups::LongrangeNonbonded, MtsForceGroups::Nonbonded, MtsForceGroups::Pair, MtsForceGroups::Dihedral, MtsForceGroups::Angle, MtsForceGroups::Pull, MtsForceGroups::Awh, MtsForceGroups::Count } |
Force group available for selection for multiple time step integration. More... | |
enum | ReductionRequirement : int { ReductionRequirement::Soon, ReductionRequirement::Eventually } |
Control whether reduction is required soon. More... | |
enum | ObservablesReducerStatus : int { ObservablesReducerStatus::ReadyToReduce, ObservablesReducerStatus::AlreadyReducedThisStep } |
Report whether the reduction has happened this step. More... | |
enum | ComputeGlobalsAlgorithm { LeapFrog, VelocityVerlet } |
The different global reduction schemes we know about. | |
enum | EnergySignallerEvent { EnergyCalculationStep, VirialCalculationStep, FreeEnergyCalculationStep } |
The energy events signalled by the EnergySignaller. | |
enum | TrajectoryEvent { StateWritingStep, EnergyWritingStep } |
The trajectory writing events. | |
enum | ModularSimulatorBuilderState { AcceptingClientRegistrations, NotAcceptingClientRegistrations } |
Enum allowing builders to store whether they can accept client registrations. | |
enum | ReportPreviousStepConservedEnergy { Yes, No, Count } |
Enum describing whether an element is reporting conserved energy from the previous step. | |
enum | ScheduleOnInitStep { ScheduleOnInitStep::Yes, ScheduleOnInitStep::No, ScheduleOnInitStep::Count } |
Whether the element does schedule on the initial step. More... | |
enum | NhcUsage { NhcUsage::System, NhcUsage::Barostat, NhcUsage::Count } |
The usages of Nose-Hoover chains. More... | |
enum | ScaleVelocities { PreStepOnly, PreStepAndPostStep } |
Which velocities the thermostat scales. | |
enum | IntegrationStage { IntegrationStage::PositionsOnly, IntegrationStage::VelocitiesOnly, IntegrationStage::LeapFrog, IntegrationStage::VelocityVerletPositionsAndVelocities, IntegrationStage::ScaleVelocities, IntegrationStage::ScalePositions, IntegrationStage::Count } |
The different integration types we know about. More... | |
enum | NumPositionScalingValues { NumPositionScalingValues::None, NumPositionScalingValues::Single, NumPositionScalingValues::Multiple, NumPositionScalingValues::Count } |
Sets the number of different position scaling values. More... | |
enum | NumVelocityScalingValues { NumVelocityScalingValues::None, NumVelocityScalingValues::Single, NumVelocityScalingValues::Multiple, Count } |
Sets the number of different velocity scaling values. More... | |
enum | ParrinelloRahmanVelocityScaling { ParrinelloRahmanVelocityScaling::No, ParrinelloRahmanVelocityScaling::Diagonal, ParrinelloRahmanVelocityScaling::Anisotropic, Count } |
Describes the properties of the Parrinello-Rahman pressure scaling matrix. More... | |
enum | ReferenceTemperatureChangeAlgorithm |
The algorithm changing the reference temperature. More... | |
enum | EnergySignallerVirialMode { EnergySignallerVirialMode::Off, EnergySignallerVirialMode::OnStep, EnergySignallerVirialMode::OnStepAndNext, EnergySignallerVirialMode::Count } |
When we calculate virial. More... | |
enum | UseFullStepKE { Yes, No, Count } |
Enum describing whether the thermostat is using full or half step kinetic energy. | |
enum | { nbatXYZ, nbatXYZQ, nbatX4, nbatX8 } |
enum | LJCombinationRule : int { LJCombinationRule::Geometric, LJCombinationRule::LorentzBerthelot, LJCombinationRule::None, LJCombinationRule::Count } |
LJ combination rules. More... | |
enum | NbnxmBenchMarkKernels : int { SimdAuto, SimdNo, Simd4XM, Simd2XMM, Count } |
Enum for selecting the SIMD kernel type for benchmarks. | |
enum | NbnxmBenchMarkCombRule : int { RuleGeom, RuleLB, RuleNone, Count } |
Enum for selecting the combination rule for kernel benchmarks. | |
enum | NbnxmBenchMarkCoulomb : int { Pme, ReactionField, Count } |
Enum for selecting coulomb type for kernel benchmarks. | |
enum | ClusterDistanceKernelType : int { ClusterDistanceKernelType::CpuPlainC_4x4, ClusterDistanceKernelType::CpuSimd_4xM, ClusterDistanceKernelType::CpuSimd_2xMM, ClusterDistanceKernelType::Gpu, ClusterDistanceKernelType::CpuPlainC_1x1 } |
The types of kernel for calculating the distance between pairs of atom clusters. More... | |
enum | { vdwktLJCUT_COMBGEOM, vdwktLJCUT_COMBLB, vdwktLJCUT_COMBNONE, vdwktLJFORCESWITCH, vdwktLJPOTSWITCH, vdwktLJEWALDCOMBGEOM, vdwktLJEWALDCOMBLB, vdwktNR = vdwktLJEWALDCOMBLB, vdwktNR_ref } |
Kinds of Van der Waals treatments in NBNxM SIMD kernels. More... | |
enum | { enbvClearFNo, enbvClearFYes } |
Flag to tell the nonbonded kernels whether to clear the force output buffers. | |
enum | ElecType : int { ElecType::Cut, ElecType::RF, ElecType::EwaldTab, ElecType::EwaldTabTwin, ElecType::EwaldAna, ElecType::EwaldAnaTwin, ElecType::Count } |
Nbnxm electrostatic GPU kernel flavors. More... | |
enum | VdwType : int { VdwType::Cut, VdwType::CutCombGeom, VdwType::CutCombLB, VdwType::FSwitch, VdwType::PSwitch, VdwType::EwaldGeom, VdwType::EwaldLB, VdwType::Count } |
Nbnxm VdW GPU kernel flavors. More... | |
enum | NbnxmKernelType : int { NotSet = 0, Cpu4x4_PlainC, Cpu4xN_Simd_4xN, Cpu4xN_Simd_2xNN, Gpu8x8x8, Cpu8x8x8_PlainC, Cpu1x1_PlainC, Count } |
Nonbonded NxN kernel types: plain C, CPU SIMD, GPU, GPU emulation. | |
enum | EwaldExclusionType : int { NotSet = 0, Table, Analytical, DecidedByGpuModule } |
Ewald exclusion types. | |
enum | PairlistType : int { Simple4x2, Simple4x4, Simple4x8, Hierarchical8x8x8, Simple1x1, Count } |
The available pair list types. | |
enum | CoulombKernelType : int { ReactionField, Table, TableTwin, Ewald, EwaldTwin, Count } |
Kinds of electrostatic treatments in SIMD Verlet kernels. | |
enum | NonbondedResource : int { Cpu, Gpu, EmulateGpu } |
Resources that can be used to execute non-bonded kernels on. | |
enum | { enbsCCgrid, enbsCCsearch, enbsCCcombine, enbsCCnr } |
Local cycle count enum for profiling different parts of search. | |
enum | KernelCoulombType { KernelCoulombType::RF, KernelCoulombType::EwaldAnalytical, KernelCoulombType::EwaldTabulated } |
List of type of Nbnxm kernel coulomb type implementations. More... | |
enum | ILJInteractions { ILJInteractions::All, ILJInteractions::Half, ILJInteractions::None } |
The fraction of i-particles for which LJ interactions need to be computed. More... | |
enum | HelpOutputFormat { eHelpOutputFormat_Console, eHelpOutputFormat_Rst, eHelpOutputFormat_Other, eHelpOutputFormat_NR } |
Output format for help writing. More... | |
enum | COMShiftType : int { Residue, Molecule, Count } |
How COM shifting should be applied. | |
enum | CenteringType : int { Triclinic, Rectangular, Zero, Count } |
Helper enum class to define centering types. | |
enum | UnitCellType : int { Triclinic, Rectangular, Compact, Count } |
Helper enum class to define Unit cell representation types. | |
enum | RandomDomain { RandomDomain::Other = 0x00000000, RandomDomain::MaxwellVelocities = 0x00001000, RandomDomain::TestParticleInsertion = 0x00002000, RandomDomain::UpdateCoordinates = 0x00003000, RandomDomain::UpdateConstraints = 0x00004000, RandomDomain::Thermostat = 0x00005000, RandomDomain::Barostat = 0x00006000, RandomDomain::ReplicaExchange = 0x00007000, RandomDomain::ExpandedEnsemble = 0x00008000, RandomDomain::AwhBiasing = 0x00009000 } |
Enumerated values for fixed part of random seed (domain) More... | |
enum | SelectionStringMatchType { eStringMatchType_Auto, eStringMatchType_Exact, eStringMatchType_Wildcard, eStringMatchType_RegularExpression } |
String matching mode for string keyword expressions. More... | |
enum | TaskTarget : int { Auto, Cpu, Gpu } |
Record where a compute task is targetted. | |
enum | EmulateGpuNonbonded : bool { EmulateGpuNonbonded::No, EmulateGpuNonbonded::Yes } |
Help pass GPU-emulation parameters with type safety. More... | |
enum | GpuTask : int { GpuTask::Nonbonded, GpuTask::Pme, GpuTask::Count } |
Types of compute tasks that can be run on a GPU. More... | |
enum | Isotope { H, D, He, Li, Be, B, C, N, O, F, Ne, Na, Mg, Al, Si, P, S, Cl, Ar, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Ga, Ge, As, Se, Br, Kr, Rb, Sr, Y, Zr, Nb, Mo, Tc, Ru, Rh, Pd, Ag, Cd, In, Sn, Sb, Te, I, Xe, Cs, Ba, La, Ce, Pr, Nd, Pm, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Tl, Pb, Bi, Po, At, Rn, Fr, Ra, Ac, Th, Pa, U, Np, Pu, Am, Cm, Bk, Cf, Es, Fm, Md, No, Lr, Rf, Db, Sg, Bh, Hs, Mt, Count } |
isotopes | |
enum | ErrorCode { eeOK, eeOutOfMemory, eeFileNotFound, eeFileIO, eeInvalidInput, eeInconsistentInput, eeTolerance, eeInstability, eeNotImplemented, eeInvalidValue, eeInvalidCall, eeInternalError, eeAPIError, eeRange, eeParallelConsistency, eeModularSimulator, eeUnknownError } |
Possible error return codes from Gromacs functions. More... | |
enum | EndianSwapBehavior : int { EndianSwapBehavior::DoNotSwap, EndianSwapBehavior::Swap, EndianSwapBehavior::SwapIfHostIsBigEndian, EndianSwapBehavior::SwapIfHostIsLittleEndian, EndianSwapBehavior::Count } |
Specify endian swapping behavoir. More... | |
enum | GpuAwareMpiStatus : int { GpuAwareMpiStatus::NotSupported = 0, GpuAwareMpiStatus::Forced, GpuAwareMpiStatus::Supported } |
Enum describing GPU-aware support in underlying MPI library. More... | |
enum | StringCompareType { StringCompareType::Exact, StringCompareType::CaseInsensitive, StringCompareType::CaseAndDashInsensitive } |
Specifies how strings should be compared in various contexts. More... | |
enum | StripStrings : int { StripStrings::No, StripStrings::Yes } |
Enum class for whether StringToEnumValueConverter will strip strings of leading and trailing whitespace before comparison. More... | |
enum | TimeUnit : int { Femtoseconds, Picoseconds, Nanoseconds, Microseconds, Milliseconds, Seconds, Count, Default = Picoseconds } |
Time values for TimeUnitManager and legacy oenv module. | |
enum | OptionFileType : int { Topology, RunInput, Trajectory, Energy, PDB, AtomIndex, Plot, GenericData, Csv, QMInput, Count } |
Purpose of file(s) provided through an option. | |
enum | OptionFlag : uint64_t { efOption_Set = 1 << 0, efOption_HasDefaultValue = 1 << 1, efOption_ExplicitDefaultValue = 1 << 2, efOption_ClearOnNextSet = 1 << 3, efOption_Required = 1 << 4, efOption_MultipleTimes = 1 << 5, efOption_Hidden = 1 << 6, efOption_Vector = 1 << 8, efOption_DefaultValueIfSetExists = 1 << 11, efOption_NoDefaultValue = 1 << 9, efOption_DontCheckMinimumCount = 1 << 10 } |
Flags for options. More... | |
enum | SelectionFlag : uint64_t { efSelection_OnlyStatic = 1 << 0, efSelection_OnlyAtoms = 1 << 1, efSelection_OnlySorted = 1 << 2, efSelection_DynamicMask = 1 << 3, efSelection_DisallowEmpty = 1 << 4, efSelection_EvaluateVelocities = 1 << 5, efSelection_EvaluateForces = 1 << 6 } |
Flags for options. More... | |
Functions | |
static bool | anyDimUsesProvider (const AwhBiasParams &awhBiasParams, const AwhCoordinateProviderType awhCoordProvider) |
Checks whether any dimension uses the given coordinate provider type. More... | |
static bool | anyDimUsesProvider (const AwhParams &awhParams, const AwhCoordinateProviderType awhCoordProvider) |
Checks whether any dimension uses the given coordinate provider type. More... | |
static bool | anyBiasIsScaledByMetric (const AwhParams &awhParams) |
Checks whether any bias scales the target distribution based on the AWH friction metric. More... | |
std::unique_ptr< Awh > | prepareAwhModule (FILE *fplog, const t_inputrec &inputRecord, t_state *stateGlobal, const t_commrec *commRecord, const gmx_multisim_t *multiSimRecord, bool startingFromCheckpoint, bool usingShellParticles, const std::string &biasInitFilename, pull_t *pull_work) |
Makes an Awh and prepares to use it if the user input requests that. More... | |
static int64_t | countSamples (ArrayRef< const PointState > pointState) |
Count the total number of samples / sample weight over all grid points. More... | |
static void | ensureStateAndRunConsistency (const BiasParams ¶ms, const BiasState &state) |
Check if the state (loaded from checkpoint) and the run are consistent. More... | |
double | 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 | 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 | pointsAlongLambdaAxis (const BiasGrid &grid, int pointIndex1, int pointIndex2) |
Checks whether two points are along a free energy lambda state axis. More... | |
bool | pointsHaveDifferentLambda (const BiasGrid &grid, int pointIndex1, int pointIndex2) |
Checks whether two points are different in the free energy lambda state dimension (if any). More... | |
void | linearArrayIndexToMultiDim (int indexLinear, int ndim, const awh_ivec numPointsDim, awh_ivec indexMulti) |
Convert a linear array index to a multidimensional one. More... | |
void | linearGridindexToMultiDim (const BiasGrid &grid, int indexLinear, awh_ivec indexMulti) |
Convert a linear grid point index to a multidimensional one. More... | |
int | multiDimArrayIndexToLinear (const awh_ivec indexMulti, int numDim, const awh_ivec numPointsDim) |
Convert multidimensional array index to a linear one. More... | |
int | multiDimGridIndexToLinear (const BiasGrid &grid, const awh_ivec indexMulti) |
Convert a multidimensional grid point index to a linear one. More... | |
bool | 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... | |
static int | pointDistanceAlongAxis (const GridAxis &axis, double x, double x0) |
Returns the point distance between from value x to value x0 along the given axis. More... | |
static bool | valueIsInGrid (const awh_dvec value, ArrayRef< const GridAxis > axis) |
Query if a value is in range of the grid. More... | |
static int | getNearestIndexInGrid (const awh_dvec value, ArrayRef< const GridAxis > axis) |
Map a value to the nearest point in the grid. More... | |
void | 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... | |
template<typename T > | |
void | sumOverSimulations (ArrayRef< T > data, MPI_Comm multiSimComm, const bool broadcastWithinSimulation, const t_commrec &commRecord) |
Sum an array over all simulations on main ranks or all ranks of each simulation. More... | |
bool | haveBiasSharingWithinSimulation (const AwhParams &awhParams) |
Returns if any bias is sharing within a simulation. More... | |
void | biasesAreCompatibleForSharingBetweenSimulations (const AwhParams &awhParams, ArrayRef< const size_t > pointSize, const BiasSharing &biasSharing) |
Checks whether biases are compatible for sharing between simulations, throws when not. More... | |
static void | normalizeFreeEnergyAndPmfSum (std::vector< PointState > *pointState) |
Normalizes the free energy and PMF sum. More... | |
static int | countTrailingZeroRows (const MultiDimArray< std::vector< double >, dynamicExtents2D > &data, int numRows, int numColumns) |
Count trailing data rows containing only zeros. More... | |
static void | readUserPmfAndTargetDistribution (ArrayRef< const DimParams > dimParams, const BiasGrid &grid, const std::string &filename, int numBias, int biasIndex, std::vector< PointState > *pointState) |
Initializes the PMF and target with data read from an input table. More... | |
static void | normalizeBlock (AwhEnergyBlock *block, const Bias &bias) |
Normalizes block data for output. More... | |
void | initCorrelationGridHistory (CorrelationGridHistory *correlationGridHistory, int numCorrelationTensors, int tensorSize, int blockDataListSize) |
Initialize correlation grid history, sets all sizes. More... | |
CorrelationGridHistory | initCorrelationGridHistoryFromState (const CorrelationGrid &corrGrid) |
Allocate a correlation grid history with the same structure as the given correlation grid. More... | |
void | updateCorrelationGridHistory (CorrelationGridHistory *corrGridHist, const CorrelationGrid &corrGrid) |
Update the correlation grid history for checkpointing. More... | |
void | restoreCorrelationGridStateFromHistory (const CorrelationGridHistory &corrGridHist, CorrelationGrid *corrGrid) |
Restores the correlation grid state from the correlation grid history. More... | |
double | getSqrtDeterminant (gmx::ArrayRef< const double > correlationIntegral) |
Returns the volume element of the correlation metric. More... | |
const char * | enumValueToString (AwhTargetType enumValue) |
String for target distribution. | |
const char * | enumValueToString (AwhHistogramGrowthType enumValue) |
String for weight histogram growth. | |
const char * | enumValueToString (AwhPotentialType enumValue) |
String for AWH potential type. | |
const char * | enumValueToString (AwhCoordinateProviderType enumValue) |
String for AWH bias reaction coordinate provider. | |
static double | get_pull_coord_period (const t_pull_coord &pullCoordParams, const t_pbc &pbc, const real intervalLength) |
Gets the period of a pull coordinate. More... | |
static bool | intervalIsInPeriodicInterval (double origin, double end, double period) |
Checks if the given interval is defined in the correct periodic interval. More... | |
static bool | valueIsInInterval (double origin, double end, double period, double value) |
Checks if a value is within an interval. More... | |
static void | checkInputConsistencyInterval (const AwhParams &awhParams, WarningHandler *wi) |
Check if the starting configuration is consistent with the given interval. More... | |
static void | setStateDependentAwhPullDimParams (AwhDimParams *dimParams, const int biasIndex, const int dimIndex, const pull_params_t &pull_params, pull_t *pull_work, const t_pbc &pbc, const tensor &compressibility, WarningHandler *wi) |
Sets AWH parameters, for one AWH pull dimension. More... | |
void | setStateDependentAwhParams (AwhParams *awhParams, const pull_params_t &pull_params, pull_t *pull_work, const matrix box, PbcType pbcType, const tensor &compressibility, const t_inputrec &inputrec, real initLambda, const gmx_mtop_t &mtop, WarningHandler *wi) |
Sets AWH parameters that need state parameters such as the box vectors. More... | |
void | checkAwhParams (const AwhParams &awhParams, const t_inputrec &inputrec, WarningHandler *wi) |
Check the AWH parameters. More... | |
bool | awhHasFepLambdaDimension (const AwhParams &awhParams) |
Returns true when AWH has a bias with a free energy lambda state dimension. | |
bool | operator== (const DensityFittingParameters &lhs, const DensityFittingParameters &rhs) |
Check if two structs holding density fitting parameters are equal. More... | |
bool | operator!= (const DensityFittingParameters &lhs, const DensityFittingParameters &rhs) |
Check if two structs holding density fitting parameters are not equal. More... | |
std::unique_ptr< IMDModule > | createElectricFieldModule () |
Creates a module for an external electric field. More... | |
atomNumbers_ (params_.numAtoms_,-1) | |
idxLookup_ (params_.numAtoms_,-1) | |
logger_ (logger) | |
cr_ (params_.cr_) | |
template<class ToType , class TransformWithFunctionType > | |
void | NNPotMdpTransformFromString (IKeyValueTreeTransformRules *rules, TransformWithFunctionType transformationFunction, const std::string &optionTag) |
static std::string | recordToString (std::tuple< at::DataPtr, size_t > data) |
RVec | computeQMBoxVec (const RVec &a, const RVec &b, const RVec &c, real h, real minNorm, real maxNorm) |
Transforms vector a such as distance from it to the plane defined by vectors b and c will be h minimum length will be milL and maximum length maxL. More... | |
CommandLineProgramContext & | initForCommandLine (int *argc, char ***argv) |
Initializes the GROMACS library for command-line use. More... | |
void | finalizeForCommandLine () |
Deinitializes the GROMACS library after initForCommandLine(). More... | |
int | processExceptionAtExitForCommandLine (const std::exception &ex) |
Handles an exception and deinitializes after initForCommandLine. More... | |
int | runCommandLineModule (int argc, char *argv[], ICommandLineModule *module) |
Implements a main() method that runs a single module. More... | |
int | runCommandLineModule (int argc, char *argv[], const char *name, const char *description, std::function< std::unique_ptr< ICommandLineOptionsModule >()> factory) |
Implements a main() method that runs a single module. More... | |
void | writeCommandLineHelpCMain (const CommandLineHelpContext &context, const char *name, int(*mainFunction)(int argc, char *argv[])) |
Helper to implement ICommandLineModule::writeHelp() with a C-like main() function that calls parse_common_args(). More... | |
static int | getFileType (const std::string &filename) |
Get the internal file type from the filename . More... | |
static unsigned long | getSupportedOutputAdapters (int filetype) |
Get the flag representing the requirements for a given file output. More... | |
static OutputAdapterContainer | addOutputAdapters (const OutputRequirements &requirements, AtomsDataPtr atoms, const Selection &sel, unsigned long abilities) |
Creates a new container object with the user requested IOutputAdapter derived methods attached to it. More... | |
std::unique_ptr < TrajectoryFrameWriter > | createTrajectoryFrameWriter (const gmx_mtop_t *top, const Selection &sel, const std::string &filename, AtomsDataPtr atoms, OutputRequirements requirements) |
Factory function for TrajectoryFrameWriter. More... | |
static void | deepCopy_t_trxframe (const t_trxframe &input, t_trxframe *copy, RVec *xvec, RVec *vvec, RVec *fvec, int *indexvec) |
Create a deep copy of a t_trxframe input into copy . More... | |
static t_trxstatus * | openTNG (const std::string &name, const Selection &sel, const gmx_mtop_t *mtop) |
Method to open TNG file. More... | |
unsigned long | convertFlag (CoordinateFileFlags flag) |
Conversion of flag to its corresponding unsigned long value. | |
unsigned long | convertFlag (FrameConverterFlags flag) |
Conversion of flag to its corresponding unsigned long value. | |
static void | adjustAtomInformation (t_atoms *atoms, t_atoms *selectionAtoms, const Selection &sel) |
Modify atoms information in coordinate frame to fit output selection. More... | |
template<bool usePbc> | |
static auto | packSendBufKernel (Float3 *__restrict__ gm_dataPacked, const Float3 *__restrict__ gm_data, const int *__restrict__ gm_map, int mapSize, Float3 coordinateShift) |
template<bool accumulate> | |
static auto | unpackRecvBufKernel (Float3 *__restrict__ gm_data, const Float3 *__restrict__ gm_dataPacked, const int *__restrict__ gm_map, int mapSize) |
unpack non-local force data buffer on the GPU using pre-populated "map" containing index information. More... | |
template<bool usePbc, class... Args> | |
static void | launchPackSendBufKernel (const DeviceStream &deviceStream, int xSendSize, Args &&...args) |
template<bool accumulateForces, class... Args> | |
static void | launchUnpackRecvBufKernel (const DeviceStream &deviceStream, int fRecvSize, Args &&...args) |
static void | flagInteractionsForType (const int ftype, const InteractionList &il, const reverse_ilist_t &ril, const Range< int > &atomRange, const int numAtomsPerMolecule, ArrayRef< const int > globalAtomIndices, ArrayRef< int > isAssigned) |
Checks whether interactions have been assigned for one function type. More... | |
static std::string | printMissingInteractionsMolblock (const t_commrec *cr, const gmx_reverse_top_t &rt, const char *moltypename, const reverse_ilist_t &ril, const Range< int > &atomRange, const int numAtomsPerMolecule, const int numMolecules, const InteractionDefinitions &idef) |
Help print error output when interactions are missing in a molblock. More... | |
static void | printMissingInteractionsAtoms (const MDLogger &mdlog, const t_commrec *cr, const gmx_mtop_t &mtop, const InteractionDefinitions &idef) |
Help print error output when interactions are missing. | |
static void | dd_print_missing_interactions (const MDLogger &mdlog, const t_commrec *cr, const int numBondedInteractionsOverAllDomains, const int expectedNumGlobalBondedInteractions, const gmx_mtop_t &top_global, const gmx_localtop_t &top_local, ArrayRef< const RVec > x, const matrix box) |
Print error output when interactions are missing. | |
static int | computeExpectedNumGlobalBondedInteractions (const gmx_mtop_t &mtop, const DDBondedChecking ddBondedChecking, const bool useUpdateGroups) |
Compute the total bonded interaction count. More... | |
void | mdAlgorithmsSetupAtomData (const t_commrec *cr, const t_inputrec &inputrec, const gmx_mtop_t &top_global, gmx_localtop_t *top, t_forcerec *fr, ForceBuffers *force, MDAtoms *mdAtoms, Constraints *constr, VirtualSitesHandler *vsite, gmx_shellfc_t *shellfc) |
Sets atom data for several MD algorithms. More... | |
void | make_local_shells (const t_commrec *cr, const t_mdatoms &md, gmx_shellfc_t *shfc) |
Gets the local shell with domain decomposition. More... | |
bool | check_grid_jump (int64_t step, const gmx_domdec_t *dd, real cutoff, const gmx_ddbox_t *ddbox, bool bFatal) |
Check whether the DD grid has moved too far for correctness. | |
void | print_dd_statistics (const t_commrec *cr, const t_inputrec &inputrec, FILE *fplog) |
Print statistics for domain decomposition communication. | |
void | dd_partition_system (FILE *fplog, const gmx::MDLogger &mdlog, int64_t step, const t_commrec *cr, bool bMainState, t_state *state_global, const gmx_mtop_t &top_global, const t_inputrec &inputrec, const MDModulesNotifiers &mdModulesNotifiers, gmx::ImdSession *imdSession, pull_t *pull_work, t_state *state_local, gmx::ForceBuffers *f, gmx::MDAtoms *mdAtoms, gmx_localtop_t *top_local, t_forcerec *fr, gmx::VirtualSitesHandler *vsite, gmx::Constraints *constr, t_nrnb *nrnb, gmx_wallcycle *wcycle, bool bVerbose) |
TODO Remove fplog when group scheme and charge groups are gone. More... | |
static void | handleCufftError (cufftResult_t status, const char *msg) |
makePlan ("complex-to-real", rocfft_transform_type_real_inverse, PlanSetupData{rocfft_array_type_hermitian_interleaved, makeComplexStrides(complexGridSizePadded), computeTotalSize(complexGridSizePadded)}, PlanSetupData{rocfft_array_type_real, makeRealStrides(realGridSizePadded), computeTotalSize(realGridSizePadded)}, std::vector< size_t >{size_t(realGridSize[ZZ]), size_t(realGridSize[YY]), size_t(realGridSize[XX])})} | |
realGrid_ | pmeStream_ (pmeStream) |
static void | handleClfftError (clfftStatus status, const char *msg) |
Throws the exception on clFFT error. | |
makePlan ("complex-to-real", rocfft_transform_type_real_inverse, PlanSetupData{rocfft_array_type_hermitian_interleaved, makeComplexStrides(complexGridSizePadded), computeTotalSize(complexGridSizePadded)}, PlanSetupData{rocfft_array_type_real, makeRealStrides(realGridSizePadded), computeTotalSize(realGridSizePadded)}, std::vector< size_t >{size_t(realGridSize[ZZ]), size_t(realGridSize[YY]), size_t(realGridSize[XX])}, pmeStream) | |
realGrid_ * | realGrid ()),{GMX_RELEASE_ASSERT(performOutOfPlaceFFT,"Only out-of-place FFT is implemented in hipSYCL" |
GMX_RELEASE_ASSERT (allocateRealGrid==false,"Grids need to be pre-allocated") | |
GMX_RELEASE_ASSERT (gridSizesInXForEachRank.size()==1 &&gridSizesInYForEachRank.size()==1,"FFT decomposition not implemented with the SYCL rocFFT backend") | |
template<typename NativeQueue > | |
static void | launchVkFft (const DeviceBuffer< float > &realGrid, const DeviceBuffer< float > &complexGrid, NativeQueue queue, gmx_fft_direction fftDirection, VkFFTApplication *application, VkFFTLaunchParams *launchParams) |
void | handleRocFftError (rocfft_status result, const std::string &msg) |
Helper for consistent error handling. | |
void | handleRocFftError (rocfft_status result, const std::string &direction, const std::string &msg) |
Helper for consistent error handling. | |
std::array< size_t, DIM > | makeRealStrides (ivec realGridSizePadded) |
Compute the stride through the real 1D array. | |
std::array< size_t, DIM > | makeComplexStrides (ivec complexGridSizePadded) |
Compute the stride through the complex 1D array. | |
size_t | computeTotalSize (ivec gridSize) |
Compute total grid size. | |
template<typename ValueType > | |
void | readKvtCheckpointValue (compat::not_null< ValueType * > value, const std::string &name, const std::string &identifier, const KeyValueTreeObject &kvt) |
Read to a key-value-tree value used for checkpointing. More... | |
template void | readKvtCheckpointValue (compat::not_null< std::int64_t * > value, const std::string &name, const std::string &identifier, const KeyValueTreeObject &kvt) |
Read to a key-value-tree value used for checkpointing. More... | |
template void | readKvtCheckpointValue (compat::not_null< real * > value, const std::string &name, const std::string &identifier, const KeyValueTreeObject &kvt) |
Read to a key-value-tree value used for checkpointing. More... | |
template<typename ValueType > | |
void | writeKvtCheckpointValue (const ValueType &value, const std::string &name, const std::string &identifier, KeyValueTreeObjectBuilder kvtBuilder) |
Write to a key-value-tree used for checkpointing. More... | |
template void | writeKvtCheckpointValue (const std::int64_t &value, const std::string &name, const std::string &identifier, KeyValueTreeObjectBuilder kvtBuilder) |
Write to a key-value-tree used for checkpointing. More... | |
template void | writeKvtCheckpointValue (const real &value, const std::string &name, const std::string &identifier, KeyValueTreeObjectBuilder kvtBuilder) |
Write to a key-value-tree used for checkpointing. More... | |
void | printHdf5ErrorsDebug () |
Helper function for printing debug statements. More... | |
void | throwUponH5mdError (const bool errorExists, const std::string &message) |
hid_t | createGroup (const hid_t container, const char *name) |
Create an H5MD group, and intermediate groups if they do not exist. More... | |
hid_t | openOrCreateGroup (const hid_t container, const char *name) |
Open an existing HDF5 group or create it if it did not exist already. More... | |
void | setAttribute (const hid_t container, const char *name, const char *value) |
Set a string attribute value in a group or data set. More... | |
std::optional< std::string > | getAttribute (const hid_t container, const char *name) |
Get a string attribute value from a group or data set. More... | |
size_t | numberOfExpectedDataItems (const MrcDensityMapHeader &header) |
Return the number of density data items that are expected to follow this header. More... | |
TranslateAndScale | getCoordinateTransformationToLattice (const MrcDensityMapHeader &header) |
Extract the transformation into lattice coordinates. More... | |
dynamicExtents3D | getDynamicExtents3D (const MrcDensityMapHeader &header) |
Extract the extents of the density data. More... | |
bool | mrcHeaderIsSane (const MrcDensityMapHeader &header) |
Checks if the values in the header are sane. More... | |
void | serializeMrcDensityMapHeader (ISerializer *serializer, const MrcDensityMapHeader &mrcHeader) |
Serializes an MrcDensityMapHeader from a given serializer. More... | |
MrcDensityMapHeader | deserializeMrcDensityMapHeader (ISerializer *serializer) |
Deserializes an MrcDensityMapHeader from a given serializer. More... | |
static real | smallestAtomMass (const gmx_mtop_t &mtop) |
void | repartitionAtomMasses (gmx_mtop_t *mtop, bool useFep, real massFactor, WarningHandler *wi) |
Scales the smallest masses in the system by up to massFactor . More... | |
template<typename Queue , typename CommandGroupFunc > | |
static void | syclSubmitWithoutEvent (Queue &&queue, CommandGroupFunc &&cgf) |
Helper function to submit a SYCL operation without returning an event. More... | |
template<typename CommandGroupFunc > | |
static void | syclEnqueueCustomOp (sycl::handler &cgh, CommandGroupFunc &&cgf) |
Helper function to add a custom operation to the SYCL handler. More... | |
template<typename T > | |
static Float3 * | asGenericFloat3Pointer (T *in) |
Reinterpret-cast any pointer in to Float3 , checking the type compatibility. | |
template<typename T > | |
static const Float3 * | asGenericFloat3Pointer (const T *in) |
Reinterpret-cast any const pointer in to Float3 , checking the type compatibility. | |
template<typename C > | |
static Float3 * | asGenericFloat3Pointer (C &in) |
Reinterpret-cast any container in to Float3 , checking the type compatibility. | |
template<typename C > | |
static const Float3 * | asGenericFloat3Pointer (const C &in) |
Reinterpret-cast any const container in to Float3 , checking the type compatibility. | |
std::string | getDeviceErrorString (const hipError_t deviceError) |
Add the API information on the specific error to the error message. More... | |
void | checkDeviceError (const hipError_t deviceError, const std::string &errorMessage) |
Check if API returned an error and throw an exception with information on it. More... | |
void | ensureNoPendingDeviceError (const std::string &errorMessage) |
Helper function to ensure no pending error silently disrupts error handling. More... | |
template<typename PinnableVector > | |
void | changePinningPolicy (PinnableVector *v, PinningPolicy pinningPolicy) |
Helper function for changing the pinning policy of a pinnable vector. More... | |
void | doDeviceTransfers (const DeviceContext &deviceContext, ArrayRef< const char > input, ArrayRef< char > output) |
Helper function for GPU test code to be platform agnostic. More... | |
bool | cpuIsX86Nehalem (const CpuInfo &cpuInfo) |
Return true if the CPU is an Intel x86 Nehalem. More... | |
bool | cpuIsAmdZen1 (const CpuInfo &cpuInfo) |
Return true if the CPU is a first generation AMD Zen (produced by AMD or Hygon) More... | |
static DeviceDetectionResult | detectAllDeviceInformation (const PhysicalNodeCommunicator &physicalNodeComm) |
Detect GPUs when that makes sense to attempt. More... | |
static void | gmx_collect_hardware_mpi (const gmx::CpuInfo &cpuInfo, const PhysicalNodeCommunicator &physicalNodeComm, gmx_hw_info_t *hardwareInfo, [[maybe_unused]] MPI_Comm world) |
Reduce the locally collected hardwareInfo over MPI ranks. | |
std::unique_ptr< gmx_hw_info_t > | gmx_detect_hardware (const PhysicalNodeCommunicator &physicalNodeComm, MPI_Comm libraryCommWorld) |
Run detection and make correct and consistent hardware information available on all ranks. More... | |
void | logHardwareDetectionWarnings (const gmx::MDLogger &mdlog, const gmx_hw_info_t &hardwareInformation) |
Issue warnings to mdlog that were decided during detection. More... | |
static bool | runningOnCompatibleOSForAmd () |
Return true if executing on compatible OS for AMD OpenCL. More... | |
static bool | runningOnCompatibleHWForNvidia (const DeviceInformation &deviceInfo) |
Return true if executing on compatible GPU for NVIDIA OpenCL. More... | |
static FixedCapacityVector < int, 10 > | fillSupportedSubGroupSizes (const cl_device_id devId, const DeviceVendor deviceVendor) |
Return the list of sub-group sizes supported by the device. More... | |
static bool | runningOnCompatibleHWForAmd (const DeviceInformation &deviceInfo) |
Return true if executing on compatible GPU for AMD OpenCL. More... | |
static DeviceStatus | isDeviceFunctional (const DeviceInformation &deviceInfo) |
Checks that device deviceInfo is compatible with GROMACS. More... | |
std::string | makeOpenClInternalErrorString (const char *message, cl_int status) |
Make an error string following an OpenCL API call. More... | |
static bool | isDeviceFunctional (const DeviceInformation &deviceInfo, std::string *errorMessage) |
Checks that device deviceInfo is sane (ie can run a kernel). More... | |
static DeviceStatus | checkGpu (size_t deviceId, const DeviceInformation &deviceInfo) |
Check whether the ocl_gpu_device is suitable for use by mdrun. More... | |
int | identifyAvx512FmaUnits () |
Test whether machine has dual AVX512 FMA units. More... | |
static const std::string & | simdString (SimdType s) |
SimdType | simdSuggested (const CpuInfo &c) |
Return the SIMD type that would fit this hardware best. | |
static SimdType | simdCompiled () |
bool | simdCheck (const CpuInfo &cpuInfo, SimdType wanted, FILE *log, bool warnToStdErr) |
Check if binary was compiled with the provided SIMD type. More... | |
std::unique_ptr< IMDModule > | createInteractiveMolecularDynamicsModule () |
Creates a module for interactive molecular dynamics. | |
static const char * | enumValueToString (IMDMessageType enumValue) |
Names of the IMDType for error messages. | |
static void | fill_header (IMDHeader *header, IMDMessageType type, int32_t length) |
Fills the header with message and the length argument. | |
static void | swap_header (IMDHeader *header) |
Swaps the endianess of the header. | |
static int32_t | imd_read_multiple (IMDSocket *socket, char *datptr, int32_t toread) |
Reads multiple bytes from socket. | |
static int32_t | imd_write_multiple (IMDSocket *socket, const char *datptr, int32_t towrite) |
Writes multiple bytes to socket in analogy to imd_read_multiple. | |
static int | imd_handshake (IMDSocket *socket) |
Handshake with IMD client. | |
static int | imd_send_energies (IMDSocket *socket, const IMDEnergyBlock *energies, char *buffer) |
Send energies using the energy block and the send buffer. | |
static IMDMessageType | imd_recv_header (IMDSocket *socket, int32_t *length) |
Receive IMD header from socket, sets the length and returns the IMD message. | |
static bool | imd_recv_mdcomm (IMDSocket *socket, int32_t nforces, int32_t *forcendx, float *forces) |
Receive force indices and forces. More... | |
void | write_IMDgroup_to_file (bool bIMD, t_inputrec *ir, const t_state *state, const gmx_mtop_t &sys, int nfile, const t_filenm fnm[]) |
Writes out the group of atoms selected for interactive manipulation. More... | |
static int | imd_send_rvecs (IMDSocket *socket, int nat, rvec *x, char *buffer) |
Send positions from rvec. More... | |
static bool | rvecs_differ (const rvec v1, const rvec v2) |
Returns true if any component of the two rvecs differs. | |
static void | shift_positions (const matrix box, rvec x[], const ivec is, int nr) |
Copied and modified from groupcoord.c shift_positions_group(). | |
static void | imd_check_integrator_parallel (const t_inputrec *ir, const t_commrec *cr) |
Check for non-working integrator / parallel options. | |
std::unique_ptr< ImdSession > | makeImdSession (const t_inputrec *ir, const t_commrec *cr, gmx_wallcycle *wcycle, gmx_enerdata_t *enerd, const gmx_multisim_t *ms, const gmx_mtop_t &top_global, const MDLogger &mdlog, gmx::ArrayRef< const gmx::RVec > coords, int nfile, const t_filenm fnm[], const gmx_output_env_t *oenv, const ImdOptions &options, StartingBehavior startingBehavior) |
Makes and returns an initialized IMD session, which may be inactive. More... | |
int | imdsock_winsockinit () |
Define a function to initialize winsock. More... | |
static void | print_IMD_error (const char *file, int line, char *msg) |
Print a nice error message on UNIX systems, using errno.h. | |
IMDSocket * | imdsock_create () |
Create an IMD main socket. More... | |
void | imd_sleep (unsigned int seconds) |
Portability wrapper around sleep function. | |
int | imdsock_bind (IMDSocket *sock, int port) |
Bind the IMD socket to address and port. More... | |
int | imd_sock_listen (IMDSocket *sock) |
Set socket to listening state. More... | |
IMDSocket * | imdsock_accept (IMDSocket *sock) |
Accept incoming connection and redirect to client socket. More... | |
int | imdsock_getport (IMDSocket *sock, int *port) |
Get the port number used for IMD connection. More... | |
int | imd_htonl (int src) |
Portability wrapper around system htonl function. | |
int | imd_ntohl (int src) |
Portability wrapper around system ntohl function. | |
int | imdsock_write (IMDSocket *sock, const char *buffer, int length) |
Write to socket. More... | |
int | imdsock_read (IMDSocket *sock, char *buffer, int length) |
Read from socket. More... | |
void | imdsock_shutdown (IMDSocket *sock) |
Shutdown the socket. More... | |
int | imdsock_destroy (IMDSocket *sock) |
Close the socket and free the sock struct memory. More... | |
int | imdsock_tryread (IMDSocket *sock, int timeoutsec, int timeoutusec) |
Try to read from the socket. More... | |
bool | buildSupportsListedForcesGpu (std::string *error) |
Checks whether the GROMACS build allows to compute bonded interactions on a GPU. More... | |
bool | inputSupportsListedForcesGpu (const t_inputrec &ir, const gmx_mtop_t &mtop, std::string *error) |
Checks whether the input system allows to compute bonded interactions on a GPU. More... | |
static bool | someInteractionsCanRunOnGpu (const InteractionLists &ilists) |
Returns whether there are any interactions in ilists suitable for a GPU. | |
static bool | bondedInteractionsCanRunOnGpu (const gmx_mtop_t &mtop) |
Returns whether there are any bonded interactions in the global topology suitable for a GPU. | |
static int | chooseSubGroupSizeForDevice (const DeviceInformation &deviceInfo) |
static bool | fTypeHasPerturbedEntries (const InteractionDefinitions &idef, int fType) |
Return whether function type fType in idef has perturbed interactions. | |
static void | convertIlistToNbnxnOrder (const InteractionList &src, HostInteractionList *dest, int numAtomsPerInteraction, ArrayRef< const int > nbnxnAtomOrder) |
Converts src with atom indices in state order to dest in nbnxn order. | |
static int | roundUpToFactor (const int input, const int factor) |
Returns input rounded up to the closest multiple of factor . | |
template<bool calcVir, bool calcEner> | |
auto | bondedKernel (sycl::handler &cgh, const BondedGpuKernelParameters &kernelParams, const DeviceBuffer< t_iatom > gm_iatoms_[numFTypesOnGpu], float *__restrict__ gm_vTot, const t_iparams *__restrict__ gm_forceParams_, const sycl::float4 *__restrict__ gm_xq_, Float3 *__restrict__ gm_f_, Float3 *__restrict__ gm_fShift_) |
static void | PrintTo (const RVec &value, std::ostream *os) |
Print an RVec to os . | |
static void | PrintTo (const PaddedVector< RVec > &vector, std::ostream *os) |
Print a padded vector of RVec to os . | |
void | normalizeSumPositiveValuesToUnity (ArrayRef< float > data) |
Divide all values of a view by a constant so that the sum of all its positive values is one. More... | |
void | exponentialMovingAverageStateAsKeyValueTree (KeyValueTreeObjectBuilder builder, const ExponentialMovingAverageState &state) |
Convert the exponential moving average state as key-value-tree object. | |
ExponentialMovingAverageState | exponentialMovingAverageStateFromKeyValueTree (const KeyValueTreeObject &object) |
Sets the exponential moving average state from a key-value-tree object. More... | |
unsigned int | log2I (std::uint32_t x) |
Compute floor of logarithm to base 2, 32 bit unsigned argument. More... | |
unsigned int | log2I (std::uint64_t x) |
Compute floor of logarithm to base 2, 64 bit unsigned argument. More... | |
unsigned int | log2I (std::int32_t x) |
Compute floor of logarithm to base 2, 32 bit signed argument. More... | |
unsigned int | log2I (std::int64_t x) |
Compute floor of logarithm to base 2, 64 bit signed argument. More... | |
std::int64_t | greatestCommonDivisor (std::int64_t p, std::int64_t q) |
Find greatest common divisor of two numbers. More... | |
double | erfinv (double x) |
Inverse error function, double precision. More... | |
float | erfinv (float x) |
Inverse error function, single precision. More... | |
IntegerBox | spreadRangeWithinLattice (const IVec ¢er, dynamicExtents3D extent, IVec range) |
Construct a box that holds all indices that are not more than a given range remote from center coordinates and still within a given lattice extent. More... | |
static void | assertMatrixIsBoxMatrix (const Matrix3x3 gmx_used_in_debug &m) |
Assert that the matrix m describes a simulation box. More... | |
static void | assertMatrixIsBoxMatrix (const matrix gmx_used_in_debug m) |
Assert that the matrix m describes a simulation box. More... | |
static void | multiplyVectorByTransposeOfBoxMatrix (const Matrix3x3 &m, const rvec v, rvec result) |
Multiply vector v by the transpose of the box matrix m , relying on the fact that the upper triangle of the matrix is zero. | |
static RVec | multiplyVectorByTransposeOfBoxMatrix (const Matrix3x3 &m, const RVec &v) |
Multiply vector v by the transpose of the box matrix m , relying on the fact that the upper triangle of the matrix is zero. | |
static Matrix3x3 | multiplyBoxMatrices (const Matrix3x3 &a, const Matrix3x3 &b) |
Multiply box matrices, relying on the fact that their upper triangle is zero. | |
static Matrix3x3 | multiplyBoxMatrices (const Matrix3x3 &a, const matrix b) |
Multiply box matrices, relying on the fact that their upper triangle is zero. | |
static Matrix3x3 | invertBoxMatrix (const Matrix3x3 &src) |
Invert a simulation-box matrix. More... | |
static void | invertBoxMatrix (const matrix src, matrix dest) |
Invert a simulation-box matrix in src , return in dest . More... | |
void | invertMatrix (const matrix src, matrix dest) |
Invert a general 3x3 matrix in src , return in dest . More... | |
constexpr real | determinant (Matrix3x3ConstSpan matrix) |
Determinant of a 3x3 matrix. | |
constexpr real | trace (Matrix3x3ConstSpan matrixView) |
Calculates the trace of a 3x3 matrix view. | |
template<typename ElementType , int N, int M = N> | |
MultiDimArray< std::array < ElementType, N *M >, extents < N, M > > | diagonalMatrix (const ElementType value) |
Create a diagonal matrix of ElementType with N * M elements. More... | |
template<typename ElementType , int N, int M = N> | |
MultiDimArray< std::array < ElementType, N *M >, extents < N, M > > | identityMatrix () |
Create an identity matrix of ElementType with N * M elements. More... | |
Matrix3x3 | transpose (Matrix3x3ConstSpan matrixView) |
Calculate the transpose of a 3x3 matrix, from its view. | |
void | matrixVectorMultiply (Matrix3x3ConstSpan matrix, RVec *v) |
Multiply matrix with vector. | |
static Matrix3x3 | createMatrix3x3FromLegacyMatrix (const matrix legacyMatrix) |
Create new matrix type from legacy type. | |
static void | fillLegacyMatrix (Matrix3x3ConstSpan newMatrix, matrix legacyMatrix) |
Fill legacy matrix from new matrix type. | |
template<typename ElementType > | |
BasicVector< ElementType > | multiplyVectorByMatrix (const BasicMatrix3x3< ElementType > &m, const rvec v) |
Return the product of multiplying the vector v by the 3x3 matrix m . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | operator+ (const BasicMatrix3x3< ElementType > &a, const BasicMatrix3x3< ElementType > &b) |
Return the sum of two 3x3 matrices a and b . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | operator- (const BasicMatrix3x3< ElementType > &a, const BasicMatrix3x3< ElementType > &b) |
Return the difference between two 3x3 matrices a and b . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | operator- (const BasicMatrix3x3< ElementType > &a) |
Return the negative 3x3 matrix from matrix a . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | inner (const BasicMatrix3x3< ElementType > &a, const BasicMatrix3x3< ElementType > &b) |
Return the inner product of multiplication of two 3x3 matrices a and b . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | operator* (const BasicMatrix3x3< ElementType > &a, const BasicMatrix3x3< ElementType > &b) |
Return the inner product of multiplication of two 3x3 matrices a and b . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | operator* (const BasicMatrix3x3< ElementType > &m, const ElementType s) |
Return the product of multiplying the 3x3 matrix m by the scalar s . | |
template<typename ElementType > | |
BasicMatrix3x3< ElementType > | operator* (const ElementType s, const BasicMatrix3x3< ElementType > &m) |
Return the product of multiplying the 3x3 matrix m by the scalar s . | |
template<typename ElementType > | |
BasicVector< ElementType > | diagonal (const BasicMatrix3x3< ElementType > &m) |
Return a vector that is the diagonal of the 3x3 matrix m . | |
template<class TContainer , class Extents > | |
constexpr MultiDimArray < TContainer, Extents > ::const_iterator | begin (const MultiDimArray< TContainer, Extents > &multiDimArray) |
Free MultiDimArray begin function addressing its contiguous memory. | |
template<class TContainer , class Extents > | |
constexpr MultiDimArray < TContainer, Extents > ::iterator | begin (MultiDimArray< TContainer, Extents > &multiDimArray) |
Free MultiDimArray begin function addressing its contiguous memory. | |
template<class TContainer , class Extents > | |
constexpr MultiDimArray < TContainer, Extents > ::const_iterator | end (const MultiDimArray< TContainer, Extents > &multiDimArray) |
Free MultiDimArray end function addressing its contiguous memory. | |
template<class TContainer , class Extents > | |
constexpr MultiDimArray < TContainer, Extents > ::iterator | end (MultiDimArray< TContainer, Extents > &multiDimArray) |
Free MultiDimArray end function addressing its contiguous memory. | |
template<class TContainer , class Extents > | |
void | swap (MultiDimArray< TContainer, Extents > &a, MultiDimArray< TContainer, Extents > &b) noexcept |
Swap function. | |
OptimisationResult | nelderMead (const std::function< real(ArrayRef< const real >)> &functionToMinimize, ArrayRef< const real > initialGuess, real minimumRelativeSimplexLength=1e-8, int maxSteps=10'000) |
Derivative-free downhill simplex optimisation. More... | |
std::unique_ptr< BoxDeformation > | buildBoxDeformation (const Matrix3x3 &initialBox, DDRole ddRole, NumRanks numRanks, MPI_Comm communicator, const t_inputrec &inputrec) |
Factory function for box deformation module. More... | |
void | setBoxDeformationFlowMatrix (const matrix boxDeformationVelocity, const matrix box, matrix flowMatrix) |
Set a matrix for computing the flow velocity at coordinates. More... | |
static CheckpointSignal | convertToCheckpointSignal (signed char sig) |
Convert signed char (as used by SimulationSignal) to CheckpointSignal enum. More... | |
static void | clear_constraint_quantity_nonlocal (const gmx_domdec_t &dd, ArrayRef< RVec > q) |
Clears constraint quantities for atoms in nonlocal region. | |
void | too_many_constraint_warnings (ConstraintAlgorithm eConstrAlg, int warncount) |
Generate a fatal error because of too many LINCS/SETTLE warnings. | |
static void | write_constr_pdb (const char *fn, const char *title, const gmx_mtop_t &mtop, int start, int homenr, const t_commrec *cr, ArrayRef< const RVec > x, const matrix box) |
Writes out coordinates. | |
static void | dump_confs (FILE *log, int64_t step, const gmx_mtop_t &mtop, int start, int homenr, const t_commrec *cr, ArrayRef< const RVec > x, ArrayRef< const RVec > xprime, const matrix box) |
Writes out domain contents to help diagnose crashes. | |
FlexibleConstraintTreatment | flexibleConstraintTreatment (bool haveDynamicsIntegrator) |
Returns the flexible constraint treatment depending on whether the integrator is dynamic. | |
static ListOfLists< int > | makeAtomsToConstraintsList (int numAtoms, ArrayRef< const InteractionList > ilists, ArrayRef< const t_iparams > iparams, FlexibleConstraintTreatment flexibleConstraintTreatment) |
Returns a block struct to go from atoms to constraints. More... | |
ListOfLists< int > | 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... | |
ListOfLists< int > | 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... | |
int | countFlexibleConstraints (ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > iparams) |
Return the number of flexible constraints in the ilist and iparams . | |
static std::vector< int > | make_at2settle (int natoms, const InteractionList &ilist) |
Returns the index of the settle to which each atom belongs. | |
static std::vector < ListOfLists< int > > | makeAtomToConstraintMappings (const gmx_mtop_t &mtop, FlexibleConstraintTreatment flexibleConstraintTreatment) |
Makes a per-moleculetype container of mappings from atom indices to constraint indices. More... | |
bool | hasTriangleConstraints (const gmx_mtop_t &mtop, FlexibleConstraintTreatment flexibleConstraintTreatment) |
Returns True if there is at least one triangular constraint. | |
void | 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 | constrain_velocities (gmx::Constraints *constr, bool computeRmsd, int64_t step, t_state *state, real *dhdlambda, bool computeVirial, tensor constraintsVirial) |
Constrain the velocities only. More... | |
void | constrain_coordinates (gmx::Constraints *constr, bool computeRmsd, int64_t step, t_state *state, ArrayRefWithPadding< RVec > xp, real *dhdlambda, bool computeVirial, tensor constraintsVirial) |
Constrain the coordinates. More... | |
static bool | isConstraintFlexible (ArrayRef< const t_iparams > iparams, int iparamsIndex) |
Returns whether constraint with parameter iparamsIndex is a flexible constraint. | |
const int * | 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. | |
static void | constr_recur (const ListOfLists< int > &at2con, const InteractionLists &ilist, gmx::ArrayRef< const t_iparams > iparams, gmx_bool bTopB, int at, int depth, int nc, ArrayRef< int > path, real r0, real r1, real *r2max, int *count) |
Recursing function to help find all adjacent constraints. | |
static real | constr_r_max_moltype (const gmx_moltype_t *molt, gmx::ArrayRef< const t_iparams > iparams, const t_inputrec *ir) |
Find the interaction radius needed for constraints for this molecule type. | |
real | constr_r_max (const MDLogger &mdlog, const gmx_mtop_t *mtop, const t_inputrec *ir) |
Returns an estimate of the maximum distance between atoms required for LINCS. | |
real | calculateAcceptanceWeight (LambdaWeightCalculation calculationMode, real lambdaEnergyDifference) |
Calculates the acceptance weight for a lambda state transition. More... | |
void | do_force (FILE *log, const t_commrec *cr, const gmx_multisim_t *ms, const t_inputrec &inputrec, const MDModulesNotifiers &mdModulesNotifiers, Awh *awh, gmx_enfrot *enforcedRotation, ImdSession *imdSession, pull_t *pull_work, int64_t step, t_nrnb *nrnb, gmx_wallcycle *wcycle, const gmx_localtop_t *top, const matrix box, ArrayRefWithPadding< RVec > coordinates, ArrayRef< RVec > velocities, const history_t *hist, ForceBuffersView *force, tensor vir_force, const t_mdatoms *mdatoms, gmx_enerdata_t *enerd, ArrayRef< const real > lambda, t_forcerec *fr, const MdrunScheduleWorkload &runScheduleWork, VirtualSitesHandler *vsite, rvec mu_tot, double t, gmx_edsam *ed, CpuPpLongRangeNonbondeds *longRangeNonbondeds, const DDBalanceRegionHandler &ddBalanceRegionHandler) |
gmx::EnumerationArray < FreeEnergyPerturbationCouplingType, real > | currentLambdas (int64_t step, const t_lambda &fepvals, int currentLambdaState) |
Evaluate the current lambdas. More... | |
void | launchForceReductionKernel (int numAtoms, int atomStart, bool addRvecForce, bool accumulate, const DeviceBuffer< Float3 > d_nbnxmForceToAdd, const DeviceBuffer< Float3 > d_rvecForceToAdd, DeviceBuffer< Float3 > d_baseForce, DeviceBuffer< int > d_cell, const DeviceStream &deviceStream, DeviceBuffer< uint64_t > d_forcesReadyNvshmemFlags, const uint64_t forcesReadyNvshmemFlagsCounter) |
Backend-specific function to launch GPU Force Reduction kernel. More... | |
template<bool addRvecForce, bool accumulateForce> | |
static auto | reduceKernel (const Float3 *__restrict__ gm_nbnxmForce, const Float3 *__restrict__ gm_rvecForceToAdd, Float3 *__restrict__ gm_forceTotal, const int *__restrict__ gm_cell, const int atomStart) |
Function returning the force reduction kernel lambda. | |
template<bool addRvecForce, bool accumulateForce> | |
static void | launchReductionKernel_ (const int numAtoms, const int atomStart, const DeviceBuffer< Float3 > &d_nbnxmForce, const DeviceBuffer< Float3 > &d_rvecForceToAdd, DeviceBuffer< Float3 > &d_forceTotal, const DeviceBuffer< int > &d_cell, const DeviceStream &deviceStream) |
Force reduction SYCL kernel launch code. | |
void | launchLeapFrogKernel (int numAtoms, DeviceBuffer< Float3 > d_x, DeviceBuffer< Float3 > d_x0, DeviceBuffer< Float3 > d_v, DeviceBuffer< Float3 > d_f, DeviceBuffer< float > d_inverseMasses, float dt, bool doTemperatureScaling, int numTempScaleValues, DeviceBuffer< unsigned short > d_tempScaleGroups, DeviceBuffer< float > d_lambdas, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, Float3 prVelocityScalingMatrixDiagonal, const DeviceStream &deviceStream) |
Backend-specific function to launch GPU Leap Frog kernel. More... | |
template<NumTempScaleValues numTempScaleValues, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling> | |
auto | leapFrogKernel (Float3 *__restrict__ gm_x, Float3 *__restrict__ gm_x0, Float3 *__restrict__ gm_v, const Float3 *__restrict__ gm_f, const float *__restrict__ gm_inverseMasses, float dt, const float *__restrict__ gm_lambdas, const unsigned short *__restrict__ gm_tempScaleGroups, Float3 prVelocityScalingMatrixDiagonal) |
Main kernel for the Leap-Frog integrator. More... | |
template<NumTempScaleValues numTempScaleValues, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, class... Args> | |
static void | launchLeapFrogKernel (const DeviceStream &deviceStream, int numAtoms, Args &&...args) |
Leap Frog SYCL kernel launch code. | |
static NumTempScaleValues | getTempScalingType (bool doTemperatureScaling, int numTempScaleValues) |
Convert doTemperatureScaling and numTempScaleValues to NumTempScaleValues. | |
template<class... Args> | |
static void | launchLeapFrogKernel (NumTempScaleValues tempScalingType, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, Args &&...args) |
Select templated kernel and launch it. | |
real | lincs_rmsd (const Lincs *lincsd) |
Return the RMSD of the constraint. | |
static void | lincs_matrix_expand (const Lincs &lincsd, const Task &li_task, gmx::ArrayRef< const real > blcc, gmx::ArrayRef< real > rhs1, gmx::ArrayRef< real > rhs2, gmx::ArrayRef< real > sol) |
Do a set of nrec LINCS matrix multiplications. More... | |
static void | lincs_update_atoms_noind (int ncons, gmx::ArrayRef< const AtomPair > atoms, real preFactor, gmx::ArrayRef< const real > fac, gmx::ArrayRef< const gmx::RVec > r, gmx::ArrayRef< const real > invmass, rvec *x) |
Update atomic coordinates when an index is not required. | |
static void | lincs_update_atoms_ind (gmx::ArrayRef< const int > ind, gmx::ArrayRef< const AtomPair > atoms, real preFactor, gmx::ArrayRef< const real > fac, gmx::ArrayRef< const gmx::RVec > r, gmx::ArrayRef< const real > invmass, rvec *x) |
Update atomic coordinates when an index is required. | |
static void | lincs_update_atoms (Lincs *li, int th, real preFactor, gmx::ArrayRef< const real > fac, gmx::ArrayRef< const gmx::RVec > r, gmx::ArrayRef< const real > invmass, rvec *x) |
Update coordinates for atoms. | |
static void | do_lincsp (ArrayRefWithPadding< const RVec > xPadded, ArrayRefWithPadding< RVec > fPadded, ArrayRef< RVec > fp, t_pbc *pbc, Lincs *lincsd, int th, ArrayRef< const real > invmass, ConstraintVariable econq, bool bCalcDHDL, bool bCalcVir, tensor rmdf) |
LINCS projection, works on derivatives of the coordinates. | |
static gmx_unused void | calc_dist_iter (int b0, int b1, gmx::ArrayRef< const AtomPair > atoms, const rvec *gmx_restrict xp, const real *gmx_restrict bllen, const real *gmx_restrict blc, const t_pbc *pbc, real wfac, real *gmx_restrict rhs, real *gmx_restrict sol, bool *bWarn) |
Determine the distances and right-hand side for the next iteration. | |
static void | do_lincs (ArrayRefWithPadding< const RVec > xPadded, ArrayRefWithPadding< RVec > xpPadded, const matrix box, t_pbc *pbc, Lincs *lincsd, int th, ArrayRef< const real > invmass, const t_commrec *cr, bool bCalcDHDL, real wangle, bool *bWarn, real invdt, ArrayRef< RVec > vRef, bool bCalcVir, tensor vir_r_m_dr, gmx_wallcycle *wcycle) |
Implements LINCS constraining. | |
static void | set_lincs_matrix_task (Lincs *li, Task *li_task, ArrayRef< const real > invmass, int *ncc_triangle, int *nCrossTaskTriangles) |
Sets the elements in the LINCS matrix for task task. | |
static void | set_lincs_matrix (Lincs *li, ArrayRef< const real > invmass, real lambda) |
Sets the elements in the LINCS matrix. | |
int | count_triangle_constraints (const InteractionLists &ilist, const ListOfLists< int > &at2con) |
Counts the number of constraint triangles, i.e. triplets of atoms connected by three constraints. More... | |
static bool | more_than_two_sequential_constraints (const InteractionLists &ilist, const ListOfLists< int > &at2con) |
Finds sequences of sequential constraints. | |
Lincs * | init_lincs (FILE *fplog, const gmx_mtop_t &mtop, int nflexcon_global, ArrayRef< const ListOfLists< int >> atomsToConstraintsPerMolType, bool bPLINCS, int nIter, int nProjOrder, ObservablesReducerBuilder *observablesReducerBuilder) |
Initializes and returns the lincs data struct. | |
void | done_lincs (Lincs *li) |
Destructs the lincs object when it is not nullptr. | |
static void | lincs_thread_setup (Lincs *li, int natoms) |
Sets up the work division over the threads. | |
static void | assign_constraint (Lincs *li, int constraint_index, int a1, int a2, real lenA, real lenB, const ListOfLists< int > &at2con) |
Assign a constraint. | |
static void | check_assign_connected (Lincs *li, gmx::ArrayRef< const int > iatom, const InteractionDefinitions &idef, bool bDynamics, int a1, int a2, const ListOfLists< int > &at2con) |
Check if constraint with topology index constraint_index is connected to other constraints, and if so add those connected constraints to our task. | |
static void | check_assign_triangle (Lincs *li, gmx::ArrayRef< const int > iatom, const InteractionDefinitions &idef, bool bDynamics, int constraint_index, int a1, int a2, const ListOfLists< int > &at2con) |
Check if constraint with topology index constraint_index is involved in a constraint triangle, and if so add the other two constraints in the triangle to our task. | |
static void | set_matrix_indices (Lincs *li, const Task &li_task, const ListOfLists< int > &at2con, bool bSortMatrix) |
Sets matrix indices. | |
void | set_lincs (const InteractionDefinitions &idef, int numAtoms, ArrayRef< const real > invmass, real lambda, bool bDynamics, const t_commrec *cr, Lincs *li) |
Initialize lincs stuff. | |
static void | lincs_warning (gmx_domdec_t *dd, ArrayRef< const RVec > x, ArrayRef< const RVec > xprime, t_pbc *pbc, int ncons, gmx::ArrayRef< const AtomPair > atoms, gmx::ArrayRef< const real > bllen, real wangle, int maxwarn, int *warncount) |
Issues a warning when LINCS constraints cannot be satisfied. | |
static LincsDeviations | makeLincsDeviations (const Lincs &lincsd, ArrayRef< const RVec > x, const t_pbc *pbc) |
Determine how well the constraints have been satisfied. | |
bool | constrain_lincs (bool computeRmsd, const t_inputrec &ir, int64_t step, Lincs *lincsd, ArrayRef< const real > invmass, const t_commrec *cr, const gmx_multisim_t *ms, ArrayRefWithPadding< const RVec > x, ArrayRefWithPadding< RVec > xprime, ArrayRef< RVec > min_proj, const matrix box, t_pbc *pbc, bool hasMassPerturbed, real lambda, real *dvdlambda, real invdt, ArrayRef< RVec > v, bool bCalcVir, tensor vir_r_m_dr, ConstraintVariable econq, t_nrnb *nrnb, int maxwarn, int *warncount, gmx_wallcycle *wcycle) |
Applies LINCS constraints. More... | |
void | addWithCoupled (ArrayRef< const int > iatoms, const int stride, const gmx::ListOfLists< AtomsAdjacencyListElement > &atomsAdjacencyList, ArrayRef< int > splitMap, const int c, int *currentMapIndex) |
Add constraint to splitMap with all constraints coupled to it. More... | |
void | launchLincsGpuKernel (LincsGpuKernelParameters *kernelParams, const DeviceBuffer< Float3 > &d_x, DeviceBuffer< Float3 > d_xp, bool updateVelocities, DeviceBuffer< Float3 > d_v, real invdt, bool computeVirial, const DeviceStream &deviceStream) |
Backend-specific function to launch LINCS kernel. More... | |
template<bool updateVelocities, bool computeVirial, bool haveCoupledConstraints> | |
auto | lincsKernel (sycl::handler &cgh, const int numConstraintsThreads, const AtomPair *__restrict__ gm_constraints, const float *__restrict__ gm_constraintsTargetLengths, const int *__restrict__ gm_coupledConstraintsCounts, const int *__restrict__ gm_coupledConstraintsIndices, const float *__restrict__ gm_massFactors, float *__restrict__ gm_matrixA, const float *__restrict__ gm_inverseMasses, const int numIterations, const int expansionOrder, const Float3 *__restrict__ gm_x, Float3 *__restrict__ gm_xp, const float invdt, Float3 *__restrict__ gm_v, float *__restrict__ gm_virialScaled, PbcAiuc pbcAiuc) |
Main kernel for LINCS constraints. More... | |
template<bool updateVelocities, bool computeVirial, bool haveCoupledConstraints, class... Args> | |
static void | launchLincsKernel (const DeviceStream &deviceStream, const int numConstraintsThreads, Args &&...args) |
template<class... Args> | |
static void | launchLincsKernel (bool updateVelocities, bool computeVirial, bool haveCoupledConstraints, Args &&...args) |
Select templated kernel and launch it. | |
template<typename... Args> | |
std::unique_ptr< Constraints > | makeConstraints (const gmx_mtop_t &mtop, const t_inputrec &ir, pull_t *pull_work, bool havePullConstraintsWork, bool doEssentialDynamics, Args &&...args) |
Factory function for Constraints. More... | |
std::unique_ptr< MDAtoms > | makeMDAtoms (FILE *fp, const gmx_mtop_t &mtop, const t_inputrec &ir, bool useGpuForPme) |
Builder function for MdAtomsWrapper. More... | |
static ResetSignal | convertToResetSignal (signed char sig) |
Convert signed char (as used by SimulationSignal) to ResetSignal enum. More... | |
static void | initializeProjectionMatrix (const real invmO, const real invmH, const real dOH, const real dHH, matrix inverseCouplingMatrix) |
Initializes a projection matrix. More... | |
SettleParameters | settleParameters (real mO, real mH, real invmO, real invmH, real dOH, real dHH) |
Computes and returns settle parameters. More... | |
void | settle_proj (const SettleData &settled, ConstraintVariable econq, int nsettle, const int iatoms[], const t_pbc *pbc,ArrayRef< const RVec > x, ArrayRef< RVec > der, ArrayRef< RVec > derp, int CalcVirAtomEnd, tensor vir_r_m_dder) |
Analytical algorithm to subtract the components of derivatives of coordinates working on settle type constraint. | |
template<typename T , typename TypeBool , int packSize, typename TypePbc , bool bCorrectVelocity, bool bCalcVirial> | |
static void | settleTemplate (const SettleData &settled, int settleStart, int settleEnd, const TypePbc pbc, const real *x, real *xprime, real invdt, real *gmx_restrict v, tensor vir_r_m_dr, bool *bErrorHasOccurred) |
The actual settle code, templated for real/SimdReal and for optimization. | |
template<typename T , typename TypeBool , int packSize, typename TypePbc > | |
static void | settleTemplateWrapper (const SettleData &settled, int nthread, int thread, TypePbc pbc, const real x[], real xprime[], real invdt, real *v, bool bCalcVirial, tensor vir_r_m_dr, bool *bErrorHasOccurred) |
Wrapper template function that divides the settles over threads and instantiates the core template with instantiated booleans. | |
void | csettle (const SettleData &settled,int nthread,int thread,const t_pbc *pbc,ArrayRefWithPadding< const RVec > x,ArrayRefWithPadding< RVec > xprime,real invdt,ArrayRefWithPadding< RVec > v,bool bCalcVirial,tensor vir_r_m_dr,bool *bErrorHasOccurred) |
Constrain coordinates using SETTLE. Can be called on any number of threads. | |
void | launchSettleGpuKernel (int numSettles, const DeviceBuffer< WaterMolecule > &d_atomIds, const SettleParameters &settleParameters, const DeviceBuffer< Float3 > &d_x, DeviceBuffer< Float3 > d_xp, bool updateVelocities, DeviceBuffer< Float3 > d_v, real invdt, bool computeVirial, DeviceBuffer< float > d_virialScaled, const PbcAiuc &pbcAiuc, const DeviceStream &deviceStream) |
Apply SETTLE. More... | |
template<bool updateVelocities, bool computeVirial> | |
auto | settleKernel (sycl::handler &cgh, const int numSettles, const WaterMolecule *__restrict__ gm_settles, SettleParameters pars, const Float3 *__restrict__ gm_x, Float3 *__restrict__ gm_xp, float invdt, Float3 *__restrict__ gm_v, float *__restrict__ gm_virialScaled, PbcAiuc pbcAiuc) |
Function returning the SETTLE kernel lambda. | |
template<bool updateVelocities, bool computeVirial, class... Args> | |
static void | launchSettleKernel (const DeviceStream &deviceStream, int numSettles, Args &&...args) |
SETTLE SYCL kernel launch code. | |
template<class... Args> | |
static void | launchSettleKernel (bool updateVelocities, bool computeVirial, Args &&...args) |
Select templated kernel and launch it. | |
static int | pcomp (const void *p1, const void *p2) |
Compares sort blocks. | |
static void | pr_sortblock (FILE *fp, const char *title, gmx::ArrayRef< const t_sortblock > sb) |
Prints sortblocks. | |
static void | resizeLagrangianData (shakedata *shaked, int ncons) |
Reallocates a vector. | |
void | make_shake_sblock_serial (shakedata *shaked, InteractionDefinitions *idef, int numAtoms) |
Make SHAKE blocks when not using DD. | |
void | make_shake_sblock_dd (shakedata *shaked, const InteractionList &ilcon) |
Make SHAKE blocks when using DD. | |
void | cshake (const int iatom[], int ncon, int *nnit, int maxnit, ArrayRef< const real > constraint_distance_squared, ArrayRef< RVec > positions, const t_pbc *pbc, ArrayRef< const RVec > initial_displacements, ArrayRef< const real > half_of_reduced_mass, real omega, ArrayRef< const real > invmass, ArrayRef< const real > distance_squared_tolerance, ArrayRef< real > scaled_lagrange_multiplier, int *nerror) |
Inner kernel for SHAKE constraints. More... | |
static void | crattle (const int iatom[], int ncon, int *nnit, int maxnit, ArrayRef< const real > constraint_distance_squared, ArrayRef< RVec > vp, ArrayRef< const RVec > rij, ArrayRef< const real > m2, real omega, ArrayRef< const real > invmass, ArrayRef< const real > distance_squared_tolerance, ArrayRef< real > scaled_lagrange_multiplier, int *nerror, real invdt) |
Implements RATTLE (ie. SHAKE for velocity verlet integrators) | |
static int | vec_shakef (FILE *fplog, shakedata *shaked, ArrayRef< const real > invmass, int ncon, ArrayRef< const t_iparams > ip, const int *iatom, real tol, ArrayRef< const RVec > x, ArrayRef< RVec > prime, const t_pbc *pbc, real omega, bool bFEP, real lambda, ArrayRef< real > scaled_lagrange_multiplier, real invdt, ArrayRef< RVec > v, bool bCalcVir, tensor vir_r_m_dr, ConstraintVariable econq) |
Applies SHAKE. | |
static void | check_cons (FILE *log, int nc, ArrayRef< const RVec > x, ArrayRef< const RVec > prime, ArrayRef< const RVec > v, const t_pbc *pbc, ArrayRef< const t_iparams > ip, const int *iatom, ArrayRef< const real > invmass, ConstraintVariable econq) |
Check that constraints are satisfied. | |
static bool | bshakef (FILE *log, shakedata *shaked, ArrayRef< const real > invmass, const InteractionDefinitions &idef, const t_inputrec &ir, ArrayRef< const RVec > x_s, ArrayRef< RVec > prime, const t_pbc *pbc, t_nrnb *nrnb, real lambda, real *dvdlambda, real invdt, ArrayRef< RVec > v, bool bCalcVir, tensor vir_r_m_dr, bool bDumpOnError, ConstraintVariable econq) |
Applies SHAKE. | |
bool | constrain_shake (FILE *log,shakedata *shaked,gmx::ArrayRef< const real > invmass,const InteractionDefinitions &idef,const t_inputrec &ir,ArrayRef< const RVec > x_s,ArrayRef< RVec > xprime,ArrayRef< RVec > vprime,const t_pbc *pbc,t_nrnb *nrnb,real lambda,real *dvdlambda,real invdt,ArrayRef< RVec > v,bool bCalcVir,tensor vir_r_m_dr,bool bDumpOnError,ConstraintVariable econq) |
Shake all the atoms blockwise. It is assumed that all the constraints in the idef->shakes field are sorted, to ascending block nr. The sblock array points into the idef->shakes.iatoms field, with block 0 starting at sblock[0] and running to ( < ) sblock[1], block n running from sblock[n] to sblock[n+1]. Array sblock should be large enough. Return TRUE when OK, FALSE when shake-error. | |
static void | sum_forces (ArrayRef< RVec > f, ArrayRef< const RVec > forceToAdd) |
static void | calc_virial (int start, int homenr, const rvec x[], const ForceWithShiftForces &forceWithShiftForces, tensor vir_part, const matrix box, t_nrnb *nrnb, const t_forcerec *fr, PbcType pbcType) |
static void | pull_potential_wrapper (const t_commrec *cr, const t_inputrec &ir, const matrix box, ArrayRef< const RVec > x, const t_mdatoms *mdatoms, gmx_enerdata_t *enerd, pull_t *pull_work, const real *lambda, double t, gmx_wallcycle *wcycle) |
static void | pme_receive_force_ener (t_forcerec *fr, const t_commrec *cr, ForceWithVirial *forceWithVirial, gmx_enerdata_t *enerd, bool useGpuPmePpComms, bool receivePmeForceToGpu, gmx_wallcycle *wcycle) |
static void | print_large_forces (FILE *fp, const t_mdatoms *md, const t_commrec *cr, int64_t step, real forceTolerance, ArrayRef< const RVec > x, ArrayRef< const RVec > f) |
static void | postProcessForceWithShiftForces (t_nrnb *nrnb, gmx_wallcycle *wcycle, const matrix box, ArrayRef< const RVec > x, ForceOutputs *forceOutputs, tensor vir_force, const t_mdatoms &mdatoms, const t_forcerec &fr, VirtualSitesHandler *vsite, const StepWorkload &stepWork) |
When necessary, spreads forces on vsites and computes the virial for forceOutputs->forceWithShiftForces() | |
static void | postProcessForces (const t_commrec *cr, int64_t step, t_nrnb *nrnb, gmx_wallcycle *wcycle, const matrix box, ArrayRef< const RVec > x, ForceOutputs *forceOutputs, tensor vir_force, const t_mdatoms *mdatoms, const t_forcerec *fr, VirtualSitesHandler *vsite, const StepWorkload &stepWork) |
Spread, compute virial for and sum forces, when necessary. | |
static void | do_nb_verlet (t_forcerec *fr, const interaction_const_t *ic, gmx_enerdata_t *enerd, const StepWorkload &stepWork, const InteractionLocality ilocality, const int clearF, const int64_t step, t_nrnb *nrnb, gmx_wallcycle *wcycle) |
static void | clearRVecs (ArrayRef< RVec > v, const bool useOpenmpThreading) |
static real | averageKineticEnergyEstimate (const t_grpopts &groupOptions) |
Return an estimate of the average kinetic energy or 0 when unreliable. More... | |
static void | checkPotentialEnergyValidity (int64_t step, const gmx_enerdata_t &enerd, const t_inputrec &inputrec) |
This routine checks that the potential energy is finite. More... | |
static void | computeSpecialForces (FILE *fplog, const t_commrec *cr, const t_inputrec &inputrec, Awh *awh, gmx_enfrot *enforcedRotation, ImdSession *imdSession, pull_t *pull_work, int64_t step, double t, gmx_wallcycle *wcycle, ForceProviders *forceProviders, const matrix box, ArrayRef< const RVec > x, const t_mdatoms *mdatoms, ArrayRef< const real > lambda, const StepWorkload &stepWork, ForceWithVirial *forceWithVirialMtsLevel0, ForceWithVirial *forceWithVirialMtsLevel1, gmx_enerdata_t *enerd, gmx_edsam *ed, bool didNeighborSearch) |
Compute forces and/or energies for special algorithms. More... | |
static void | launchPmeGpuSpread (gmx_pme_t *pmedata, const matrix box, const StepWorkload &stepWork, GpuEventSynchronizer *xReadyOnDevice, const real lambdaQ, bool useMdGpuGraph, gmx_wallcycle *wcycle) |
Launch the prepare_step and spread stages of PME GPU. More... | |
static void | launchPmeGpuFftAndGather (gmx_pme_t *pmedata, const real lambdaQ, gmx_wallcycle *wcycle, const StepWorkload &stepWork) |
Launch the FFT and gather stages of PME GPU. More... | |
static void | pmeGpuWaitAndReduce (gmx_pme_t *pme, const StepWorkload &stepWork, gmx_wallcycle *wcycle, ForceWithVirial *forceWithVirial, gmx_enerdata_t *enerd, const real lambdaQ) |
Blocks until PME GPU tasks are completed, and gets the output forces and virial/energy (if they were to be computed). More... | |
static void | alternatePmeNbGpuWaitReduce (nonbonded_verlet_t *nbv, gmx_pme_t *pmedata, ForceOutputs *forceOutputsNonbonded, ForceOutputs *forceOutputsPme, gmx_enerdata_t *enerd, const real lambdaQ, const StepWorkload &stepWork, gmx_wallcycle *wcycle) |
Polling wait for either of the PME or nonbonded GPU tasks. More... | |
static ForceOutputs | setupForceOutputs (ForceHelperBuffers *forceHelperBuffers, ArrayRefWithPadding< RVec > force, const DomainLifetimeWorkload &domainWork, const StepWorkload &stepWork, const bool havePpDomainDecomposition, gmx_wallcycle *wcycle) |
Set up the different force buffers; also does clearing. More... | |
static void | launchGpuEndOfStepTasks (nonbonded_verlet_t *nbv, ListedForcesGpu *listedForcesGpu, gmx_pme_t *pmedata, gmx_enerdata_t *enerd, const MdrunScheduleWorkload &runScheduleWork, int64_t step, gmx_wallcycle *wcycle) |
static int | getExpectedLocalXReadyOnDeviceConsumptionCount (const SimulationWorkload &simulationWork, const StepWorkload &stepWork, const DomainLifetimeWorkload &domainWork, bool pmeSendCoordinatesFromGpu) |
Compute the number of times the "local coordinates ready on device" GPU event will be used as a synchronization point. More... | |
static int | getExpectedLocalFReadyOnDeviceConsumptionCount (const SimulationWorkload &simulationWork, const DomainLifetimeWorkload &domainWork, const StepWorkload &stepWork, bool useOrEmulateGpuNb, bool alternateGpuWait) |
Compute the number of times the "local forces ready on device" GPU event will be used as a synchronization point. More... | |
static void | reduceAndUpdateMuTot (DipoleData *dipoleData, const t_commrec *cr, const bool haveFreeEnergy, ArrayRef< const real > lambda, rvec muTotal, const DDBalanceRegionHandler &ddBalanceRegionHandler) |
static void | combineMtsForces (const int numAtoms, ArrayRef< RVec > forceMtsLevel0, ArrayRef< RVec > forceMts, const real mtsFactor) |
Combines MTS level0 and level1 force buffers into a full and MTS-combined force buffer. More... | |
static void | setupLocalGpuForceReduction (const MdrunScheduleWorkload &runScheduleWork, nonbonded_verlet_t *nbv, StatePropagatorDataGpu *stateGpu, GpuForceReduction *gpuForceReduction, PmePpCommGpu *pmePpCommGpu, const gmx_pme_t *pmedata, const gmx_domdec_t *dd) |
Setup for the local GPU force reduction: reinitialization plus the registration of forces and dependencies. More... | |
static void | setupNonLocalGpuForceReduction (const MdrunScheduleWorkload &runScheduleWork, nonbonded_verlet_t *nbv, StatePropagatorDataGpu *stateGpu, GpuForceReduction *gpuForceReduction, const gmx_domdec_t *dd) |
Setup for the non-local GPU force reduction: reinitialization plus the registration of forces and dependencies. More... | |
static int | getLocalAtomCount (const gmx_domdec_t *dd, const t_mdatoms &mdatoms, bool havePPDomainDecomposition) |
Return the number of local atoms. | |
static void | doPairSearch (const t_commrec *cr, const t_inputrec &inputrec, const MDModulesNotifiers &mdModulesNotifiers, int64_t step, t_nrnb *nrnb, gmx_wallcycle *wcycle, const gmx_localtop_t &top, const matrix box, ArrayRefWithPadding< RVec > x, ArrayRef< RVec > v, const t_mdatoms &mdatoms, t_forcerec *fr, const MdrunScheduleWorkload &runScheduleWork) |
Does pair search and closely related activities required on search steps. | |
static StopSignal | convertToStopSignal (signed char sig) |
Convert signed char (as used by SimulationSignal) to StopSignal enum. More... | |
void | launchScaleCoordinatesKernel (int numAtoms, DeviceBuffer< Float3 > d_coordinates, const ScalingMatrix &mu, const DeviceStream &deviceStream) |
Launches positions of velocities scaling kernel. More... | |
static auto | scaleKernel (Float3 *gm_x, const ScalingMatrix &scalingMatrix) |
Function returning the scaling kernel lambda. | |
static bool | hasFlexibleConstraints (const gmx_moltype_t &moltype, gmx::ArrayRef< const t_iparams > iparams) |
Returns whether moltype contains flexible constraints. | |
static bool | hasIncompatibleVsites (const gmx_moltype_t &moltype, gmx::ArrayRef< const t_iparams > iparams) |
Returns whether moltype has incompatible vsites. More... | |
static InteractionList | jointConstraintList (const gmx_moltype_t &moltype) |
Returns a merged list with constraints of all types. | |
static AtomIndexExtremes | vsiteConstructRange (int a, const gmx_moltype_t &moltype) |
Returns the range of constructing atom for vsite with atom index a . | |
static AtomIndexExtremes | constraintAtomRange (int a, const ListOfLists< int > &at2con, const InteractionList &ilistConstraints) |
Returns the range of atoms constrained to atom a (including a itself) | |
static std::vector< bool > | buildIsParticleVsite (const gmx_moltype_t &moltype) |
Returns a list that tells whether atoms in moltype are vsites. | |
static std::variant< int, IncompatibilityReasons > | detectGroup (int firstAtom, const gmx_moltype_t &moltype, const ListOfLists< int > &at2con, const InteractionList &ilistConstraints) |
Returns the size of the update group starting at firstAtom or an incompatibility reason. | |
static std::variant < RangePartitioning, IncompatibilityReasons > | makeUpdateGroupingsPerMoleculeType (const gmx_moltype_t &moltype, gmx::ArrayRef< const t_iparams > iparams) |
Returns a list of update groups for moltype or an incompatibility reason. | |
std::variant< std::vector < RangePartitioning > , std::string > | makeUpdateGroupingsPerMoleculeType (const gmx_mtop_t &mtop) |
Returns a vector with update groups for each moleculetype in mtop or an error string when the criteria (see below) are not satisfied. More... | |
static std::unordered_multimap < int, int > | getAngleIndices (const gmx_moltype_t &moltype) |
Returns a map of angles ilist.iatoms indices with the middle atom as key. | |
template<int numPartnerAtoms> | |
static real | constraintGroupRadius (const gmx_moltype_t &moltype, gmx::ArrayRef< const t_iparams > iparams, const int centralAtom, const ListOfLists< int > &at2con, const std::unordered_multimap< int, int > &angleIndices, const real constraintLength, const real temperature) |
When possible, computes the maximum radius of constrained atom in an update group. More... | |
static real | computeMaxUpdateGroupRadius (const gmx_moltype_t &moltype, gmx::ArrayRef< const t_iparams > iparams, const RangePartitioning &updateGrouping, real temperature) |
Returns the maximum update group radius for moltype . | |
real | computeMaxUpdateGroupRadius (const gmx_mtop_t &mtop, ArrayRef< const RangePartitioning > updateGroupingPerMoleculeType, real temperature) |
Returns the maximum update group radius. More... | |
bool | systemHasConstraintsOrVsites (const gmx_mtop_t &mtop) |
Returns whether mtop contains any constraints and/or vsites. More... | |
UpdateGroups | makeUpdateGroups (const gmx::MDLogger &mdlog, std::vector< RangePartitioning > &&updateGroupingPerMoleculeType, real maxUpdateGroupRadius, bool doRerun, bool useDomainDecomposition, bool systemHasConstraintsOrVsites, real cutoffMargin) |
Builder for update groups. More... | |
static int | vsiteIlistNrCount (ArrayRef< const InteractionList > ilist) |
Returns the sum of the vsite ilist sizes over all vsite types. More... | |
static int | pbc_rvec_sub (const t_pbc *pbc, const rvec xi, const rvec xj, rvec dx) |
Computes the distance between xi and xj, pbc is used when pbc!=nullptr. | |
static real | inverseNorm (const rvec x) |
Returns the 1/norm(x) | |
static PbcMode | getPbcMode (const t_pbc *pbcPtr) |
Returns the PBC mode based on the system PBC and vsite properties. More... | |
template<VSiteCalculatePosition calculatePosition, VSiteCalculateVelocity calculateVelocity> | |
static void | construct_vsites_thread (ArrayRef< RVec > x, ArrayRef< RVec > v, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const t_pbc *pbc_null) |
Executes the vsite construction task for a single thread. More... | |
template<VSiteCalculatePosition calculatePosition, VSiteCalculateVelocity calculateVelocity> | |
static void | construct_vsites (const ThreadingInfo *threadingInfo, ArrayRef< RVec > x, ArrayRef< RVec > v, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const DomainInfo &domainInfo, const matrix box) |
Dispatch the vsite construction tasks for all threads. More... | |
void | constructVirtualSites (ArrayRef< RVec > x, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist) |
Create positions of vsite atoms based for the local system. More... | |
static int | vsite_count (ArrayRef< const InteractionList > ilist, int ftype) |
Returns the number of virtual sites in the interaction list, for VSITEN the number of atoms. | |
template<VirialHandling virialHandling> | |
static void | spreadForceForThread (ArrayRef< const RVec > x, ArrayRef< RVec > f, ArrayRef< RVec > fshift, matrix dxdf, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const t_pbc *pbc_null) |
Executes the force spreading task for a single thread. | |
static void | spreadForceWrapper (ArrayRef< const RVec > x, ArrayRef< RVec > f, const VirialHandling virialHandling, ArrayRef< RVec > fshift, matrix dxdf, const bool clearDxdf, ArrayRef< const t_iparams > ip, ArrayRef< const InteractionList > ilist, const t_pbc *pbc_null) |
Wrapper function for calling the templated thread-local spread function. | |
static void | clearTaskForceBufferUsedElements (InterdependentTask *idTask) |
Clears the task force buffer elements that are written by task idTask. | |
static std::vector< int > | makeAtomToGroupMapping (const gmx::RangePartitioning &grouping) |
Returns the an array with group indices for each atom. More... | |
int | countNonlinearVsites (const gmx_mtop_t &mtop) |
Return the number of non-linear virtual site constructions in the system. | |
int | countInterUpdategroupVsites (const gmx_mtop_t &mtop, ArrayRef< const RangePartitioning > updateGroupingsPerMoleculeType) |
Return the number of virtual sites that cross update groups. More... | |
std::unique_ptr < VirtualSitesHandler > | makeVirtualSitesHandler (const gmx_mtop_t &mtop, const t_commrec *cr, PbcType pbcType, ArrayRef< const RangePartitioning > updateGroupingPerMoleculeType) |
Create the virtual site handler. More... | |
iparams_ (mtop.ffparams.iparams) | |
static void | flagAtom (InterdependentTask *idTask, const int atom, const int numThreads, const int numAtomsPerThread) |
Flag that atom atom which is home in another task, if it has not already been added before. | |
static void | assignVsitesToThread (VsiteThread *tData, int thread, int nthread, int natperthread, gmx::ArrayRef< int > taskIndex, ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > ip, ArrayRef< const ParticleType > ptype) |
Here we try to assign all vsites that are in our local range. More... | |
static void | assignVsitesToSingleTask (VsiteThread *tData, int task, gmx::ArrayRef< const int > taskIndex, ArrayRef< const InteractionList > ilist, ArrayRef< const t_iparams > ip) |
Assign all vsites with taskIndex[]==task to task tData. | |
void | constructVirtualSitesGlobal (const gmx_mtop_t &mtop, ArrayRef< RVec > x) |
Create positions of vsite atoms for the whole system assuming all molecules are wholex. More... | |
static bool | is_multisim_option_set (int argc, const char *const argv[]) |
Return whether the command-line parameter that will trigger a multi-simulation is set. | |
static DevelopmentFeatureFlags | manageDevelopmentFeatures (const gmx::MDLogger &mdlog, const PmeRunMode pmeRunMode, const int numRanksPerSimulation, const int numPmeRanksPerSimulation, gmx::GpuAwareMpiStatus gpuAwareMpiStatus) |
Manage any development feature flag variables encountered. More... | |
static void | threadMpiMdrunnerAccessBarrier () |
Barrier for safe simultaneous thread access to mdrunner data. More... | |
static void | mdrunner_start_fn (const void *arg) |
The callback used for running on spawned threads. More... | |
static bool | gpuAccelerationOfNonbondedIsUseful (const MDLogger &mdlog, const t_inputrec &ir, const bool issueWarning, const bool doRerun) |
Return whether GPU acceleration of nonbondeds is supported with the given settings. More... | |
static gmx::LoggerOwner | buildLogger (FILE *fplog, const bool isSimulationMainRank) |
Initializes the logger for mdrun. | |
static TaskTarget | findTaskTarget (const char *optionString) |
Make a TaskTarget from an mdrun argument string. | |
static void | finish_run (FILE *fplog, const gmx::MDLogger &mdlog, const t_commrec *cr, const t_inputrec &inputrec, t_nrnb nrnb[], gmx_wallcycle *wcycle, gmx_walltime_accounting_t walltime_accounting, nonbonded_verlet_t *nbv, const gmx_pme_t *pme, gmx_bool bWriteStat) |
Finish run, aggregate data to print performance info. | |
static bool | localStateHasFillerParticles (const gmx_mtop_t &mtop, const t_inputrec &inputrec, const bool useDomainDecomposition, const bool haveSinglePPRank, const bool useGpuDirectHalo) |
Returns whether the run conditions permit the local state to have filler particles. | |
void | applyLocalState (const SimulationInput &simulationInput, t_fileio *logfio, const t_commrec *cr, int *dd_nc, t_inputrec *ir, t_state *state, ObservablesHistory *observablesHistory, bool reproducibilityRequested, const MDModulesNotifiers ¬ifiers, gmx::ReadCheckpointDataHolder *modularSimulatorCheckpointData, bool useModularSimulator) |
Initialize local stateful simulation data. More... | |
SimulationInputHandle | makeSimulationInput (const LegacyMdrunOptions &options) |
Direct the construction of a SimulationInput. More... | |
static void | global_max (t_commrec *cr, int *n) |
Global max algorithm. | |
static real | reactionFieldExclusionCorrection (gmx::ArrayRef< const gmx::RVec > x, const t_mdatoms &mdatoms, const interaction_const_t &ic, const int beginAtom) |
Computes and returns the RF exclusion energy for the last molecule starting at beginAtom . | |
int | computeFepPeriod (const t_inputrec &inputrec, const ReplicaExchangeParameters &replExParams) |
Compute the period at which FEP calculation is performed. More... | |
std::tuple< StartingBehavior, LogFilePtr > | handleRestart (bool isSimulationMain, MPI_Comm communicator, const gmx_multisim_t *ms, AppendingBehavior appendingBehavior, int nfile, t_filenm fnm[]) |
Handle startup of mdrun, particularly regarding -cpi and -append. More... | |
static void | prepareLogFile (BinaryInformationSettings settings, FILE *fplog) |
Implements aspects of logfile handling common to opening either for writing or appending. | |
LogFilePtr | openLogFile (const char *lognm, bool appendFiles) |
Open the log file for writing/appending. More... | |
void | prepareLogAppending (FILE *fplog) |
Prepare to use the open log file when appending. More... | |
void | closeLogFile (t_fileio *logfio) |
Close the log file. | |
template<class BasicMdspan > | |
constexpr std::enable_if_t < BasicMdspan::is_always_contiguous(), typename BasicMdspan::pointer > | begin (const BasicMdspan &basicMdspan) |
Free begin function addressing memory of a contiguously laid out basic_mdspan. More... | |
template<class BasicMdspan > | |
constexpr std::enable_if_t < BasicMdspan::is_always_contiguous(), typename BasicMdspan::pointer > | end (const BasicMdspan &basicMdspan) |
Free end function addressing memory of a contiguously laid out basic_mdspan. More... | |
template<class BasicMdspan > | |
constexpr BasicMdspan | addElementwise (const BasicMdspan &span1, const BasicMdspan &span2) |
Elementwise addition. | |
template<class BasicMdspan > | |
constexpr BasicMdspan | subtractElementwise (const BasicMdspan &span1, const BasicMdspan &span2) |
Elementwise subtraction - left minus right. | |
template<class BasicMdspan > | |
constexpr BasicMdspan | multiplyElementwise (const BasicMdspan &span1, const BasicMdspan &span2) |
Elementwise multiplication. | |
template<class BasicMdspan > | |
constexpr BasicMdspan | divideElementwise (const BasicMdspan &span1, const BasicMdspan &span2) |
Elementwise division - left / right. | |
template<std::ptrdiff_t... LHS, std::ptrdiff_t... RHS> | |
constexpr bool | operator== (const extents< LHS...> &lhs, const extents< RHS...> &rhs) noexcept |
Comparison operator. More... | |
template<std::ptrdiff_t... LHS, std::ptrdiff_t... RHS> | |
constexpr bool | operator!= (const extents< LHS...> &lhs, const extents< RHS...> &rhs) noexcept |
Check for non-equality. More... | |
template<CheckpointDataOperation operation, typename T > | |
ArrayRef< std::conditional_t < operation==CheckpointDataOperation::Write||std::is_const_v < T >, const typename T::value_type, typename T::value_type > > | makeCheckpointArrayRef (T &container) |
Get an ArrayRef whose const-ness is defined by the checkpointing operation. More... | |
template<CheckpointDataOperation operation, typename T > | |
ArrayRef< std::conditional_t < operation==CheckpointDataOperation::Write||std::is_const_v < T >, const T, T > > | makeCheckpointArrayRefFromArray (T *begin, size_t size) |
Get an ArrayRef to a C array whose const-ness is defined by the checkpointing operation. More... | |
template<typename VersionEnum > | |
VersionEnum | checkpointVersion (const ReadCheckpointData *checkpointData, const std::string &key, const VersionEnum programVersion) |
Read a checkpoint version enum variable. More... | |
template<typename VersionEnum > | |
VersionEnum | checkpointVersion (WriteCheckpointData *checkpointData, const std::string &key, const VersionEnum programVersion) |
Write the current code checkpoint version enum variable. More... | |
forceMtsCombined_ ({}) | |
view_ ({},{}, false) | |
useForceMtsCombined_ (false) | |
template<class T > | |
T & | makeRefFromPointer (T *ptr) |
Take pointer, check if valid, return reference. | |
static const char * | enumValueToString (AtomLocality enumValue) |
Get the human-friendly name for atom localities. More... | |
static const char * | enumValueToString (InteractionLocality enumValue) |
Get the human-friendly name for interaction localities. More... | |
static InteractionLocality | atomToInteractionLocality (const AtomLocality atomLocality) |
Convert atom locality to interaction locality. More... | |
int | nonbondedMtsFactor (const t_inputrec &ir) |
Returns the interval in steps at which the non-bonded pair forces are calculated. More... | |
std::vector< MtsLevel > | setupMtsLevels (const GromppMtsOpts &mtsOpts, std::vector< std::string > *errorMessages) |
Sets up and returns the MTS levels and checks requirements of MTS. More... | |
bool | haveValidMtsSetup (const t_inputrec &ir) |
Returns whether we use MTS and the MTS setup is internally valid. More... | |
std::vector< std::string > | checkMtsRequirements (const t_inputrec &ir) |
Checks whether the MTS requirements on other algorithms and output frequencies are met. More... | |
static int | forceGroupMtsLevel (ArrayRef< const MtsLevel > mtsLevels, const MtsForceGroups mtsForceGroup) |
Returns the MTS level at which a force group is to be computed. More... | |
bool | needStateGpu (SimulationWorkload simulationWorkload) |
If StatePropagatorDataGpu object is needed. More... | |
conservedEnergyContribution_ (0) | |
previousStepConservedEnergyContribution_ (0) | |
conservedEnergyContributionStep_ (-1) | |
reportPreviousStepConservedEnergy_ (reportPreviousStepConservedEnergy) | |
statePropagatorData_ (statePropagatorData) | |
energyData_ (energyData) | |
fplog_ (fplog) | |
inputrec_ (inputrec) | |
mdAtoms_ (mdAtoms) | |
nrnb_ (nrnb) | |
identifier_ ("FirstOrderPressureCoupling-"+std::string(enumValueToString(pressureCouplingType_))) | |
template<typename... Ts> | |
auto | checkUseModularSimulator (Ts &&...args) -> decltype(ModularSimulator::isInputCompatible(std::forward< Ts >(args)...)) |
Whether or not to use the ModularSimulator. More... | |
numDegreesOfFreedom_ (numDegreesOfFreedom) | |
simulationTimeStep_ (simulationTimeStep) | |
ensembleTemperature_ (ensembleTemperature) | |
mttkPropagatorConnection_ (mttkPropagatorConnection) | |
nextEnergyCalculationStep_ (-1) | |
mdlog_ (mdlog) | |