 docs | Build system and source code for various documentation items |
  doxygen | Doxygen build system and general documentation content |
   directories.cpp | Doxygen documentation file for directories in the source tree |
   misc.cpp | Doxygen documentation file for group declarations etc |
 share | Directory that contains installed data files |
  template | Template code for writing analysis programs |
   template.cpp | Template code for writing analysis programs |
 src | Main source code directory |
  gromacs | Source code for building the libgromacs library |
   analysisdata | Parallelizable Handling of Output Data (analysisdata) |
    modules | |
     average.cpp | Implements gmx::AnalysisDataAverageModule |
     average.h | Declares gmx::AnalysisDataAverageModule |
     displacement.cpp | Implements gmx::AnalysisDataDisplacementModule |
     displacement.h | Declares gmx::AnalysisDataDisplacementModule |
     frameaverager.cpp | Implements gmx::AnalysisDataFrameAverager |
     frameaverager.h | Declares gmx::AnalysisDataFrameAverager |
     histogram.cpp | Implements classes in histogram.h |
     histogram.h | Declares analysis data modules for calculating histograms |
     lifetime.cpp | Implements gmx::AnalysisDataLifetimeModule |
     lifetime.h | Declares gmx::AnalysisDataLifetimeModule |
     plot.cpp | Implements classes in plot.h |
     plot.h | Declares gmx::AnalysisDataPlotModule for plotting data (into a file) |
    tests | Unit tests for Parallelizable Handling of Output Data (analysisdata) |
     analysisdata.cpp | Tests for analysis data functionality |
     arraydata.cpp | Tests for gmx::AnalysisArrayData functionality |
     average.cpp | Tests for functionality of analysis data averaging modules |
     datatest.cpp | Implements classes in datatest.h |
     datatest.h | Helper classes for testing classes that derive from AbstractAnalysisData |
     histogram.cpp | Tests for functionality of analysis data histogram modules |
     lifetime.cpp | Tests for functionality of analysis data lifetime module |
     mock_datamodule.cpp | Implements classes in mock_datamodule.h |
     mock_datamodule.h | Declares mock implementation of gmx::IAnalysisDataModule |
    abstractdata.cpp | Implements gmx::AbstractAnalysisData |
    abstractdata.h | Declares gmx::AbstractAnalysisData |
    analysisdata.cpp | Implements classes in analysisdata.h |
    analysisdata.h | Declares gmx::AnalysisData and gmx::AnalysisDataHandle |
    arraydata.cpp | Implements classes in arraydata.h |
    arraydata.h | Declares gmx::AbstractAnalysisArrayData and gmx::AnalysisArrayData |
    dataframe.cpp | Implements classes in dataframe.h |
    dataframe.h | Declares classes for accessing data frame information |
    datamodule.cpp | Implements classes from datamodule.h |
    datamodule.h | Declares gmx::IAnalysisDataModule and related convenience classes |
    datamodulemanager.cpp | Implements gmx::AnalysisDataModuleManager |
    datamodulemanager.h | Declares gmx::AnalysisDataModuleManager |
    dataproxy.cpp | Implements gmx::AnalysisDataProxy |
    dataproxy.h | Declares gmx::AnalysisDataProxy |
    datastorage.cpp | Implements classes in datastorage.h and paralleloptions.h |
    datastorage.h | Declares gmx::AnalysisDataStorage |
    framelocaldata.h | Defines gmx::AnalysisDataFrameLocalData and supporting types |
    paralleloptions.h | Declares gmx::AnalysisDataParallelOptions |
   applied-forces | |
    tests | |
     electricfield.cpp | Tests for functionality of the "angle" trajectory analysis module |
    electricfield.cpp | Declares data structure and utilities for electric fields |
   awh | |
    awh.cpp | Implements the Awh class |
    awh.h | Declares the Awh class |
    bias.cpp | Implements the Bias class |
    bias.h | Declares the Bias class |
    biasparams.cpp | Implements the initialization of the BiasParams class |
    biasparams.h | Declares the BiasParams class |
    biassharing.cpp | Implements bias sharing checking functionality |
    biassharing.h | Declares functions to check bias sharing properties |
    biasstate.cpp | Implements the BiasState class |
    biasstate.h | Declares the BiasState class |
    biaswriter.h | This file contains the BiasWriter class that prepares and writes data of a Bias to an energy file |
    coordstate.cpp | Implements the CoordState class |
    coordstate.h | Declares the CoordState class |
    correlationgrid.cpp | Implements the CorrelationGrid class to collect correlation statistics on a grid, using several block lengths |
    correlationgrid.h | Declares the CorrelationGrid class to collect correlation statistics on a grid, using several block lengths |
    correlationhistory.cpp | Implements helper functions for checkpointing the AWH state and observables history |
    correlationhistory.h | Contains datatypes and function declarations needed by AWH to have its force correlation data checkpointed |
    correlationtensor.cpp | Implements the CorrelationTensor class for correlation tensor statistics |
    correlationtensor.h | Declares the CorrelationTensor class for correlation tensor statistics |
    dimparams.h | Declares the DimParams struct and AWH vector types |
    grid.cpp | Implements functions in grid.h |
    grid.h | This file contains datatypes and function declarations necessary for AWH to interface with the grid code |
    histogramsize.cpp | Implements the HistogramSize class |
    histogramsize.h | Declares the HistogramSize class |
    pointstate.cpp | Implements the one method of the PointState class called only for one point per step |
    pointstate.h | Declares and defines the PointState class |
    read-params.h | Declares functions needed for reading, initializing and setting the AWH parameter data types |
   commandline | Command Line Program Management (commandline) |
    tests | Unit tests for Command Line Program Management (commandline) |
     cmdlinehelpmodule.cpp | Tests gmx::CommandLineHelpModule through gmx::CommandLineModuleManager |
     cmdlinehelpwriter.cpp | Tests gmx::CommandLineHelpWriter |
     cmdlinemodulemanager.cpp | Tests gmx::CommandLineModuleManager |
     cmdlinemodulemanagertest.cpp | Implements classes from cmdlinemodulemanagertest.h |
     cmdlinemodulemanagertest.h | Test fixture and helper classes for tests using gmx::CommandLineModuleManager |
     cmdlineparser.cpp | Tests gmx::CommandLineParser |
     cmdlineprogramcontext.cpp | Tests for gmx::CommandLineProgramContext |
     pargs.cpp | Tests parse_common_args() |
    cmdlinehelpcontext.cpp | Implements gmx::CommandLineHelpContext |
    cmdlinehelpcontext.h | Declares gmx::CommandLineHelpContext |
    cmdlinehelpmodule.cpp | Implements gmx::CommandLineHelpModule |
    cmdlinehelpmodule.h | Declares gmx::CommandLineHelpModule |
    cmdlinehelpwriter.cpp | Implements gmx::CommandLineHelpWriter |
    cmdlinehelpwriter.h | Declares gmx::CommandLineHelpWriter |
    cmdlineinit.cpp | Implements functions from cmdlineinit.h |
    cmdlineinit.h | Declares functions for initializing the GROMACS library for command line use |
    cmdlinemodule.cpp | Implements classes from cmdlinemodule.h |
    cmdlinemodule.h | Declares gmx::ICommandLineModule and supporting classes |
    cmdlinemodulemanager-impl.h | Declares implementation types for gmx::CommandLineModuleManager |
    cmdlinemodulemanager.cpp | Implements gmx::CommandLineModuleManager |
    cmdlinemodulemanager.h | Declares gmx::CommandLineModuleManager |
    cmdlineoptionsmodule.cpp | Implements supporting routines for gmx::ICommandLineOptionsModule |
    cmdlineoptionsmodule.h | Declares gmx::ICommandLineOptionsModule and supporting routines |
    cmdlineparser.cpp | Implements gmx::CommandLineParser |
    cmdlineparser.h | Declares gmx::CommandLineParser |
    cmdlineprogramcontext.cpp | Implements gmx::CommandLineProgramContext |
    cmdlineprogramcontext.h | Declares gmx::CommandLineProgramContext |
    filenm.h | Declares t_filenm for old-style command-line parsing of file name options |
    pargs.h | Declares t_pargs , parse_common_args() and related methods |
    shellcompletions.cpp | Implements gmx::ShellCompletionWriter |
    shellcompletions.h | Declares gmx::ShellCompletionWriter |
    viewit.h | Provides function to open output files automatically (with some X11 programs) |
   compat | C++ standard library compatibility helpers. |
    tests | Tests for C++ standard library compatibility helpers. |
     make_unique.cpp | Tests for gmx::compat::make_unique |
    make_unique.h | Provides template gmx::compat::make_unique |
   correlationfunctions | |
    tests | |
     autocorr.cpp | Implements test of autocorrelation function routines |
     correlationdataset.cpp | Implements helper class for autocorrelation tests |
     correlationdataset.h | Declares helper class for autocorrelation tests |
     expfit.cpp | Implements test of exponential fitting routines |
     manyautocorrelation.cpp | Implements low level test of manyautocorrelation routines |
    autocorr.cpp | Implements function to compute many autocorrelation functions |
    autocorr.h | Declares routine for computing autocorrelation functions |
    crosscorr.cpp | Implements routine for computing a cross correlation between two data sets |
    crosscorr.h | Declares routine for computing a cross correlation between two data sets |
    expfit.cpp | Implements routine for fitting a data set to a curve |
    expfit.h | Declares routine for fitting a data set to a curve |
    gmx_lmcurve.cpp | Defines a driver routine for lmfit, and a callback for it to use |
    gmx_lmcurve.h | Declares a driver routine for lmfit |
    integrate.h | Declares routines for integrating a data set |
    manyautocorrelation.cpp | Implements function to compute many autocorrelation functions |
    manyautocorrelation.h | Declares routine for computing many correlation functions using OpenMP |
    polynomials.cpp | Implements help function to compute Legendre polynomials |
    polynomials.h | Declares routine for computing a Legendre polynomial |
   domdec | |
    dlbtiming.h | This file declares functions for timing the load imbalance due to domain decomposition |
    domdec.h | This file declares functions for mdrun to call to manage the details of its domain decomposition |
    domdec_box.cpp | This file defines functions used by the domdec module for (bounding) box and pbc information generation |
    domdec_constraints.cpp | This file implements functions for domdec to use while managing inter-atomic constraints |
    domdec_constraints.h | This file declares functions for domdec to use while managing inter-atomic constraints |
    domdec_internal.h | Declares implementation functions and types for the domain decomposition module |
    domdec_network.cpp | This file defines functions for (mostly) the domdec module to use MPI functionality |
    domdec_network.h | This file declares functions for (mostly) the domdec module to use MPI functionality |
    domdec_setup.cpp | This file defines functions used by the domdec module in its initial setup phase |
    domdec_specatomcomm.cpp | This file implements functions for domdec to use while managing inter-atomic constraints |
    domdec_specatomcomm.h | This file declares functions for domdec to use while managing communication of atoms required for special purposes |
    domdec_struct.h | Declares structures related to domain decomposition |
    domdec_topology.cpp | This file defines functions used by the domdec module while managing the construction, use and error checking for topologies local to a DD rank |
    domdec_vsite.cpp | This file implements functions for domdec to use while managing inter-atomic constraints |
    domdec_vsite.h | This file declares functions for domdec to use while managing virtual sites |
    ga2la.h | Defines structures and functions for mapping from global to local atom indices. The functions are performance critical and should be inlined |
    hash.h | This file declares functions for a simple hash map used by domain decomposition |
   energyanalysis | |
    tests | |
     legacyenergy.cpp | Tests for gmx energy |
   essentialdynamics | |
    edsam.h | Declares functions to calculate both essential dynamics constraints as well as flooding potentials and forces |
   ewald | |
    tests | |
     pmebsplinetest.cpp | Implements PME B-spline moduli computation tests |
     pmegathertest.cpp | Implements PME force gathering tests |
     pmesolvetest.cpp | Implements PME solving tests |
     pmesplinespreadtest.cpp | Implements PME spline computation and charge spreading tests |
     pmetestcommon.cpp | Implements common routines for PME tests |
     pmetestcommon.h | Describes common routines and types for PME tests |
     testhardwarecontexts.cpp | Implements test environment class which performs hardware enumeration for unit tests |
     testhardwarecontexts.h | Describes test environment class which performs hardware enumeration for unit tests |
    ewald-utils.h | Declares utility functions related to Ewald |
    ewald.cpp | This file contains function definitions necessary for computing energies and forces for the plain-Ewald long-ranged part, and the correction for overall system charge for all Ewald-family methods |
    ewald.h | This file contains function declarations necessary for computing energies and forces for the plain-Ewald long-ranged part, and the correction for overall system charge for all Ewald-family methods |
    long-range-correction.h | This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ) |
    pme-gpu-internal.cpp | This file contains internal function implementations for performing the PME calculations on GPU |
    pme-gpu-internal.h | This file contains internal function definitions for performing the PME calculations on GPU. These are not meant to be exposed outside of the PME GPU code. As of now, their bodies are still in the common pme-gpu.cpp files |
    pme-gpu-types.h | Defines the GPU-agnostic PME GPU data structures (the host-side PME GPU data, and the GPU function parameters) |
    pme-gpu.cpp | Implements high-level PME GPU functions which do not require GPU framework-specific code |
    pme-internal.h | This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ) |
    pme-load-balancing.cpp | This file contains function definitions necessary for managing automatic load balance of PME calculations (Coulomb and LJ) |
    pme-load-balancing.h | This file contains function declarations necessary for managing automatic load balance of PME calculations (Coulomb and LJ) |
    pme-pp-communication.h | This file contains declarations and constants necessary for coordinating the communication for the offload of long-ranged PME work to separate MPI rank, for computing energies and forces (Coulomb and LJ) |
    pme-pp.cpp | This file contains function definitions necessary for managing the offload of long-ranged PME work to separate MPI rank, for computing energies and forces (Coulomb and LJ) |
    pme.cpp | This file contains function definitions necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ) |
    pme.h | This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ) |
   fft | |
    tests | |
     fft.cpp | Tests utilities for fft calculations |
    fft.h | Fast Fourier Transforms |
   fileio | |
    tests | |
     confio.cpp | Tests for reading/writing different structure file formats |
     readinp.cpp | Tests utilities for routines that parse fields e.g. from grompp input |
     tngio.cpp | Tests for file I/O routines |
    gmxfio-impl.h | Internal definitions shared by gmxfio*.c files |
   gmxana | |
    tests | |
     gmx_traj.cpp | Tests for gmx traj |
     gmx_trjconv.cpp | Tests for gmx trjconv |
    gmx_awh.cpp | Tool for extracting AWH (Accelerated Weight Histogram) data from energy files |
    gmx_wham.cpp | Implementation of the Weighted Histogram Analysis Method (WHAM) |
   gmxpreprocess | |
    tests | |
     genconf.cpp | Tests for genconf |
     insert-molecules.cpp | Tests for insertion of molecules |
     readir.cpp | Test routines that parse mdp fields from grompp input and writes mdp back out |
     solvate.cpp | Tests for solvation |
    keyvaluetreemdpwriter.cpp | Defines a function to write a flat key-value tree to look like old-style mdp output |
    keyvaluetreemdpwriter.h | Declares a function to write a flat key-value tree to look like old-style mdp output |
   gpu_utils | |
    tests | |
     devicetransfers.cpp | Defines helper functionality for device transfers for tests for GPU host allocator |
     devicetransfers.h | Declares helper functionality for device transfers for tests for GPU host allocator |
     devicetransfers_ocl.cpp | Defines helper functionality for device transfers for tests for GPU host allocator |
     gputest.cpp | Tests utilities for GPU device allocation and free |
     gputest.h | Declares test fixture testing GPU utility components |
     hostallocator.cpp | Tests for GPU host allocator |
     pinnedmemorychecker.cpp | Tests for GPU memory status checker isHostMemoryPinned() being correct |
    gmxopencl.h | Wraps the complexity of including OpenCL in Gromacs |
    gpu_utils.cpp | Function definitions for non-GPU builds |
    gpu_utils.h | Declare functions for detection and initialization for GPU devices |
    gpu_utils_ocl.cpp | Define functions for detection and initialization for OpenCL devices |
    gpuregiontimer.h | Defines the GPU region timer implementation/wrapper classes. The implementations live in gpuregiontimer.cuh for CUDA and gpuregiontimer_ocl.h for OpenCL |
    gpuregiontimer_ocl.h | Implements the GPU region timer for OpenCL |
    hostallocator.cpp | Implements gmx::HostAllocationPolicy for allocating memory suitable for e.g. GPU transfers on CUDA |
    hostallocator.h | Declares gmx::HostAllocationPolicy, gmx::HostAllocator, and gmx::HostVector, which are used to make/be standard library containers that can allocate memory suitable for transfers. Currently the only supported transfers using pinned memory are to CUDA GPUs, but other possibilities exist in future |
    ocl_caching.cpp | Define infrastructure for OpenCL JIT compilation for Gromacs |
    ocl_caching.h | Declare infrastructure for managing caching of OpenCL JIT-ted binaries |
    ocl_compiler.cpp | Define infrastructure for OpenCL JIT compilation for Gromacs |
    ocl_compiler.h | Declare infrastructure for OpenCL JIT compilation |
    oclutils.cpp | Define utility routines for OpenCL |
    oclutils.h | Declare utility routines for OpenCL |
    pinning.h | Declares functions for pinning memory to be suitable for efficient GPU transfers on CUDA |
    pmalloc_cuda.h | Declare functions for host-side memory handling when using CUDA devices |
   hardware | |
    tests | |
     cpuinfo.cpp | Tests for gmx::CpuInfo |
     hardwaretopology.cpp | Tests for gmx::HardwareTopology |
    architecture.h | Declares and defines architecture booleans to minimize preprocessed code |
    cpuinfo.cpp | Implements gmx::CpuInfo |
    cpuinfo.h | Declares gmx::CpuInfo |
    hardwaretopology.cpp | Implements gmx::HardwareTopology |
    hardwaretopology.h | Declares gmx::HardwareTopology |
    identifyavx512fmaunits.cpp | Implements a routine to check the number of AVX512 fma units |
    identifyavx512fmaunits.h | Defines a routine to check the number of AVX512 fma units |
   imd | |
    imd.cpp | Implements functions of imd.h |
    imd.h | This file contains datatypes and function declarations necessary for mdrun to interface with VMD via the interactive molecular dynamics protocol |
    imdsocket.cpp | Implements functions of imdsocket.h |
    imdsocket.h | Implements the parts of the vmdsock.h interface needed for IMD communication |
   linearalgebra | |
    gmx_arpack.h | Selected routines from ARPACK |
    gmx_blas.h | Header definitions for the standard BLAS library |
    gmx_lapack.h | Header definitions for the standard LAPACK library |
   listed-forces | |
    tests | |
     bonded.cpp | Implements test of bonded force routines |
    bonded.cpp | This file defines low-level functions necessary for computing energies and forces for listed interactions |
    bonded.h | This file contains declarations necessary for low-level functions for computing energies and forces for bonded interactions |
    disre.h | Declares functions for handling distance restraints |
    listed-forces.cpp | This file defines high-level functions for mdrun to compute energies and forces for listed interactions |
    listed-forces.h | This file contains declarations of high-level functions used by mdrun to compute energies and forces for listed interactions |
    listed-internal.cpp | This file defines functions needed internally by the module |
    listed-internal.h | This file contains declarations for functions needed internally by the module |
    manage-threading.cpp | This file defines functions for managing threading of listed interactions |
    manage-threading.h | Declares functions for managing threading of listed forces |
    orires.h | Declares functions for handling orientation restraints |
    pairs.cpp | This file defines functions for "pair" interactions (i.e. listed non-bonded interactions, e.g. 1-4 interactions) |
    pairs.h | This file declares functions for "pair" interactions (i.e. listed non-bonded interactions, e.g. 1-4 interactions) |
    position-restraints.cpp | This file defines low-level functions necessary for computing energies and forces for position restraints |
    position-restraints.h | This file contains declarations necessary for low-level functions for computing energies and forces for position restraints |
    restcbt.cpp | This file contains function definitions necessary for computations of forces due to restricted angle, restricted dihedral and combined bending-torsion potentials |
    restcbt.h | This file contains function declarations necessary for computations of forces due to restricted angle, restricted dihedral and combined bending-torsion potentials |
   math | |
    tests | |
     functions.cpp | Tests for simple math functions |
     invertmatrix.cpp | Tests matrix inversion routines |
     vectypes.cpp | Tests various corners of gmx::RVec implementation |
    functions.cpp | Implements simple math functions |
    functions.h | Declares simple math functions |
    invertmatrix.cpp | Routines to invert 3x3 matrices |
    invertmatrix.h | Declares routines to invert 3x3 matrices |
    paddedvector.h | Declares gmx::PaddedRVecVector |
   mdlib | |
    nbnxn_cuda | |
     nbnxn_cuda.h | Declares nbnxn cuda cache and texture helper functions |
     nbnxn_cuda_types.h | Data types used internally in the nbnxn_cuda module |
    nbnxn_kernels | |
     simd_2xnn | |
      nbnxn_kernel_simd_2xnn_prune.h | Declares the SIMD 2xNN pruning only kernel |
     simd_4xn | |
      nbnxn_kernel_simd_4xn_prune.h | Declares the SIMD 4xN pruning only kernel |
     nbnxn_kernel_common.h | Declares the nbnxn pair interaction kernel function types and kind counts, also declares utility functions used in nbnxn_kernel.cpp |
     nbnxn_kernel_cpu.h | Declares the nbnxn pair interaction kernel dispatcher |
     nbnxn_kernel_prune.h | Declares the pair-list pruning kernel wrapper function |
     nbnxn_kernel_ref_prune.h | Declares the C reference pruning only kernel |
    nbnxn_ocl | |
     nbnxn_ocl.cpp | Define OpenCL implementation of nbnxn_gpu.h |
     nbnxn_ocl_data_mgmt.cpp | Define OpenCL implementation of nbnxn_gpu_data_mgmt.h |
     nbnxn_ocl_internal.h | Internal API of the OpenCL non-bonded module |
     nbnxn_ocl_jit_support.cpp | Defines functions that support JIT compilation (e.g. for OpenCL) |
     nbnxn_ocl_types.h | Data types used internally in the nbnxn_ocl module |
    tests | |
     calc_verletbuf.cpp | Tests for the Verlet buffer calculation algorithm |
     simulationsignal.cpp | Tests for the mdrun signalling functionality |
    broadcaststructs.h | Convenience wrappers for broadcasting structs |
    groupcoord.h | Assemble atomic positions of a (small) subset of atoms and distribute to all nodes |
    mdrun.h | This file declares types and functions for initializing an MD run |
    minimize.cpp | This file defines integrators for energy minimization |
    nb_verlet.h | This file contains the public interface of the non-bonded Verlet module that implements the NxN cluster non-bonded algorithm to efficiently compute pair forces |
    nbnxn_gpu.h | Declare interface for GPU execution for NBNXN module |
    nbnxn_gpu_common.h | Common functions for the different NBNXN GPU implementations |
    nbnxn_gpu_common_utils.h | Implements common util routines for different NBNXN GPU implementations |
    nbnxn_gpu_data_mgmt.h | Declare interface for GPU data transfer for NBNXN module |
    nbnxn_gpu_jit_support.h | Declares functions that support JIT compilation (e.g. for OpenCL) |
    nbnxn_gpu_types_common.h | Implements common internal types for different NBNXN GPU implementations |
    nbnxn_tuning.cpp | Implements functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels |
    nbnxn_tuning.h | Declares functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels |
    simulationsignal.cpp | This file defines functions for inter- and intra-simulation signalling by mdrun |
    simulationsignal.h | This file declares functions for inter-rank signalling by mdrun |
    tpi.cpp | This file defines the integrator for test particle insertion |
   mdrunutility | |
    handlerestart.cpp | This file declares functions for mdrun to call to manage the details of doing a restart (ie. reading checkpoints, appending output files) |
    handlerestart.h | This file declares functions for mdrun to call to manage the details of doing a restart (ie. reading checkpoints, appending output files) |
    mdmodules.h | Declares gmx::MDModules |
    threadaffinity.h | Declares functions for managing mdrun thread affinity |
   mdtypes | |
    awh-correlation-history.h | Contains datatypes and function declarations needed by AWH to have its force correlation data checkpointed |
    awh-history.h | Contains datatypes and function declarations needed by AWH to have its data checkpointed |
    awh-params.h | Declares AWH parameter data types |
    energyhistory.h | This file contains datatypes for energy statistics history |
    forceoutput.h | This file contains the definition of a container for force and virial output |
    iforceprovider.cpp | Implements classes from iforceprovider.h |
    iforceprovider.h | Declares gmx::IForceProvider and ForceProviders |
    imdmodule.h | Declares gmx::IMDModule |
    imdoutputprovider.h | Declares gmx::IMDOutputProvider |
    imdpoptionprovider.h | Declares gmx::IMdpOptionProvider |
    md_enums.h | Declares enumerated types used throughout the code |
    observableshistory.h | This file contains the definition of a container for history data for simulation observables |
    pull-params.h | This file contains datatypes for the mdp options used by the pull code |
    state.h | This file contains the definition of the microstate of the simulated system |
   onlinehelp | Help Formatting for Online Help (onlinehelp) |
    tests | Unit tests for Help Formatting for Online Help (onlinehelp) |
     helpformat.cpp | Tests for help string formatting functions and classes |
     helpmanager.cpp | Tests for help topic management and help topic formatting |
     helpwritercontext.cpp | Tests for help text formatting |
     mock_helptopic.cpp | Implements classes in mock_helptopic.h |
     mock_helptopic.h | Declares mock implementation of gmx::IHelpTopic |
    helpformat.cpp | Implements functions in helpformat.h |
    helpformat.h | Declares common string formatting routines for online help |
    helpmanager.cpp | Implements gmx::HelpManager |
    helpmanager.h | Declares gmx::HelpManager |
    helptopic.cpp | Implements classes and functions from helptopic.h |
    helptopic.h | Declares helper classes for implementing gmx::IHelpTopic |
    helpwritercontext.cpp | Implements gmx::HelpWriterContext |
    helpwritercontext.h | Declares gmx::HelpWriterContext |
    ihelptopic.h | Declares gmx::IHelpTopic |
    rstparser.cpp | Implements classes from rstparser.h |
    rstparser.h | Declares classes for (partial) parsing of reStructuredText |
   options | Extensible Handling of Options (options) |
    tests | Unit tests for Extensible Handling of Options (options) |
     abstractoptionstorage.cpp | Tests proper handling of option storage |
     filenameoption.cpp | Tests basic file name option implementation |
     filenameoptionmanager.cpp | Tests file name option implementation dependent on gmx::FileNameOptionManager |
     option.cpp | Tests creation of basic option types |
     optionsassigner.cpp | Tests option assignment |
     repeatingsection.cpp | Tests functionality related to repeating sections |
     timeunitmanager.cpp | Tests handling of time units with gmx::TimeUnitManager and gmx::TimeUnitBehavior |
     treesupport.cpp | Tests option support for operations on KeyValueTree |
    abstractoption.cpp | Implements classes in abstractoption.h and abstractoptionstorage.h |
    abstractoption.h | Defines gmx::AbstractOption, gmx::OptionTemplate and gmx::OptionInfo |
    abstractoptionstorage.h | Declares gmx::AbstractOptionStorage |
    abstractsection.cpp | Implements classes from abstractsection.h |
    abstractsection.h | Declares base classes for declaring option sections |
    basicoptions.cpp | Implements classes in basicoptions.h and basicoptionstorage.h |
    basicoptions.h | Declares option objects for basic option types |
    basicoptionstorage.h | Declares storage classes for basic option types |
    behaviorcollection.cpp | Implements gmx::OptionsBehaviorCollection |
    behaviorcollection.h | Declares gmx::OptionsBehaviorCollection |
    filenameoption.cpp | Implements classes in filenameoption.h and filenameoptionstorage.h |
    filenameoption.h | Declares gmx::FileNameOption and gmx::FileNameOptionInfo |
    filenameoptionmanager.cpp | Implements gmx::FileNameOptionManager |
    filenameoptionmanager.h | Declares gmx::FileNameOptionManager |
    filenameoptionstorage.h | Declares gmx::FileNameOptionStorage |
    ioptionsbehavior.h | Declares gmx::IOptionsBehavior |
    ioptionscontainer.h | Declares gmx::IOptionsContainer |
    ioptionscontainerwithsections.h | Declares gmx::IOptionsContainerWithSections |
    isectionstorage.h | Declares gmx::IOptionSectionStorage |
    ivaluestore.h | Declares gmx::IOptionValueStore |
    optionfiletype.h | Defines an enumeration type for specifying file types for options |
    optionflags.h | Defines flags used in option implementation |
    optionmanagercontainer.h | Declares gmx::OptionManagerContainer |
    options-impl.h | Declares private implementation class for gmx::Options |
    options.cpp | Implements gmx::Options |
    options.h | Declares gmx::Options |
    optionsassigner.cpp | Implements gmx::OptionsAssigner |
    optionsassigner.h | Declares gmx::OptionsAssigner |
    optionsection.h | Declares gmx::OptionSection and gmx::OptionSectionInfo |
    optionstoragetemplate.h | Defines gmx::OptionStorageTemplate template |
    optionsvisitor.cpp | Implements classes in optionsvisitor.h |
    optionsvisitor.h | Declares gmx::OptionsVisitor interface and supporting classes |
    repeatingsection.h | Declares gmx::RepeatingOptionSection and related classes |
    timeunitmanager.cpp | Implements gmx::TimeUnitManager |
    timeunitmanager.h | Declares gmx::TimeUnitManager |
    treesupport.cpp | Implements functions from treesupport.h |
    treesupport.h | Declares functions for using keyvaluetree.h with Options |
    valueconverter.h | Provides gmx::OptionValueConverterSimple |
    valuestore.h | Declares implementations for IOptionValueStore |
   pbcutil | |
    boxutilities.cpp | Implements routines in boxutilities.h |
    pbc-simd.cpp | This file defines a low-level function for SIMD PBC calculation |
    pbc-simd.h | This file contains a definition, declaration and inline function for SIMD accelerated PBC calculations |
    pbc.cpp | Implements routines in pbc.h |
   pulling | |
    tests | |
     pull.cpp | Implements test of some pulling routines |
    pull.h | This file contains datatypes and function declarations necessary for mdrun to interface with the pull code |
    pull_internal.h | This file contains datatypes and function declarations for internal use in the pull code |
    pull_rotation.h | Declares functions to enforce rotational motion upon a group of particles |
   random | |
    tests | |
     exponentialdistribution.cpp | Tests for GROMACS exponential distribution |
     gammadistribution.cpp | Tests for GROMACS gamma distribution |
     normaldistribution.cpp | Tests for GROMACS normal distribution |
     seed.cpp | Tests for random seed functions |
     tabulatednormaldistribution.cpp | Tests for GROMACS tabulated normal distribution |
     threefry.cpp | Tests for the ThreeFry random engine |
     uniformintdistribution.cpp | Tests for GROMACS uniform integer distribution |
     uniformrealdistribution.cpp | Tests for GROMACS uniform real distribution |
    exponentialdistribution.h | The exponential distribution |
    gammadistribution.h | The gamma distribution |
    normaldistribution.h | The normal distribution |
    seed.h | Random seed and domain utilities |
    tabulatednormaldistribution.h | Tabulated normal distribution |
    threefry.h | Implementation of the 2x64 ThreeFry random engine |
    uniformintdistribution.h | The uniform integer distribution |
    uniformrealdistribution.h | The uniform real distribution |
   selection | Parsing and Evaluation of Analysis Selections (selection) |
    tests | Unit tests for Parsing and Evaluation of Analysis Selections (selection) |
     indexutil.cpp | Tests the index group handling in the selection engine |
     nbsearch.cpp | Tests selection neighborhood searching |
     poscalc.cpp | Tests the position mapping engine |
     selectioncollection.cpp | Tests selection parsing and compilation |
     selectionoption.cpp | Tests handling of selection options |
     toputils.cpp | Implements test helper routines from toputils.h |
     toputils.h | Helper routines for constructing topologies for tests |
    centerofmass.cpp | Implements functions in centerofmass.h |
    centerofmass.h | API for calculation of centers of mass/geometry |
    compiler.cpp | Selection compilation and optimization |
    compiler.h | Declares gmx::SelectionCompiler |
    evaluate.cpp | Implements functions in evaluate.h |
    evaluate.h | Evaluation functions for sel_evalfunc() |
    indexutil.cpp | Implements functions in indexutil.h |
    indexutil.h | API for handling index files and index groups |
    keywords.h | Definitions of generic keyword evaluation structures |
    mempool.cpp | Implements functions in mempool.h |
    mempool.h | Declarations for memory pooling functions |
    nbsearch.cpp | Implements neighborhood searching for analysis (from nbsearch.h) |
    nbsearch.h | API for neighborhood searching for analysis |
    params.cpp | Implements functions in selparam.h |
    parser_internal.h | Helper functions for the selection parser |
    parsetree.cpp | Implements functions in parsetree.h |
    parsetree.h | Handling of intermediate selection parser data |
    poscalc.cpp | Implements gmx::PositionCalculationCollection and functions in poscalc.h |
    poscalc.h | API for structured and optimized calculation of positions |
    position.cpp | Implements functions in position.h |
    position.h | API for handling positions |
    scanner.h | Parser/scanner interaction functions |
    scanner_internal.cpp | Helper functions for the selection tokenizer |
    scanner_internal.h | Internal header file used by the selection tokenizer |
    selection.cpp | Implements classes in selection.h |
    selection.h | Declares gmx::Selection and supporting classes |
    selectioncollection-impl.h | Declares private implementation class for gmx::SelectionCollection |
    selectioncollection.cpp | Implements gmx::SelectionCollection |
    selectioncollection.h | Declares gmx::SelectionCollection |
    selectionenums.h | Declares common types used in selections |
    selectionfileoption.h | Declares gmx::SelectionFileOption and gmx::SelectionFileOptionInfo |
    selectionfileoptionstorage.h | Declares gmx::SelectionFileOptionStorage |
    selectionoption.cpp | Implements classes in selectionoption.h and selectionoptionstorage.h |
    selectionoption.h | Declares gmx::SelectionOption and gmx::SelectionOptionInfo |
    selectionoptionbehavior.cpp | Implements gmx::SelectionOptionBehavior |
    selectionoptionbehavior.h | Declares gmx::SelectionOptionBehavior |
    selectionoptionmanager.cpp | Implements gmx::SelectionOptionManager |
    selectionoptionmanager.h | Declares gmx::SelectionOptionManager |
    selectionoptionstorage.h | Declares gmx::SelectionOptionStorage |
    selelem.cpp | Implements functions in selelem.h |
    selelem.h | Declares gmx::SelectionTreeElement and related things |
    selhelp.cpp | Implements functions in selhelp.h |
    selhelp.h | Functions for initializing online help for selections |
    selmethod.cpp | Implements functions in selmethod.h |
    selmethod.h | API for handling selection methods |
    selparam.h | API for handling parameters used in selections |
    selvalue.cpp | Implements functions in selvalue.h |
    selvalue.h | Declares gmx_ana_selvalue_t |
    sm_compare.cpp | Implements internal selection method for comparison expressions |
    sm_distance.cpp | Implements distance-based selection methods |
    sm_insolidangle.cpp | Implements the insolidangle selection method |
    sm_keywords.cpp | Implements internal selection methods for numeric and string keyword evaluation |
    sm_merge.cpp | Implements the merge and plus selection modifiers |
    sm_permute.cpp | Implements the permute selection modifier |
    sm_position.cpp | Implements position evaluation selection methods |
    sm_same.cpp | Implements the same selection method |
    sm_simple.cpp | Implements simple keyword selection methods |
    symrec.cpp | Implements classes in symrec.h |
    symrec.h | Handling of selection parser symbol table |
   simd | SIMD intrinsics interface (simd) |
    impl_reference | |
     impl_reference.h | Reference SIMD implementation, including SIMD documentation |
     impl_reference_definitions.h | Reference SIMD implementation, including SIMD documentation |
     impl_reference_general.h | Reference SIMD implementation, general utility functions |
     impl_reference_simd4_double.h | Reference implementation, SIMD4 single precision |
     impl_reference_simd4_float.h | Reference implementation, SIMD4 single precision |
     impl_reference_simd_double.h | Reference implementation, SIMD double precision |
     impl_reference_simd_float.h | Reference implementation, SIMD single precision |
     impl_reference_util_double.h | Reference impl., higher-level double prec. SIMD utility functions |
     impl_reference_util_float.h | Reference impl., higher-level single prec. SIMD utility functions |
    scalar | |
     scalar.h | Scalar float functions corresponding to GROMACS SIMD functions |
     scalar_math.h | Scalar math functions mimicking GROMACS SIMD math functions |
     scalar_util.h | Scalar utility functions mimicking GROMACS SIMD utility functions |
    tests | Unit tests for SIMD intrinsics interface (simd) |
     base.h | Declares common base class for testing SIMD and SIMD4 |
     bootstrap_loadstore.cpp | Separate test of SIMD load/store, before we use them in the SIMD test classes |
     data.h | Common test data constants for SIMD, SIMD4 and scalar tests |
     simd.h | Declares fixture for testing of normal SIMD (not SIMD4) functionality |
     simd4.h | Declares fixture for testing of SIMD4 functionality |
     simd_memory.cpp | Tests for gmx::ArrayRef for SIMD types |
    simd.h | Definitions, capabilities, and wrappers for SIMD module |
    simd_math.h | Math functions for SIMD datatypes |
    simd_memory.h | Declares SimdArrayRef |
    support.cpp | Implements SIMD architecture support query routines |
    support.h | Functions to query compiled and supported SIMD architectures |
    vector_operations.h | SIMD operations corresponding to Gromacs rvec datatypes |
   statistics | |
    statistics.h | Declares simple statistics toolbox |
   swap | |
    swapcoords.cpp | Implements functions in swapcoords.h |
    swapcoords.h | The "Computational Electrophysiology" protocol for ion/water position swapping |
   tables | |
    tests | |
     splinetable.cpp | Tests for simple math functions.eval |
    cubicsplinetable.cpp | Implements classes for cubic spline table functions |
    cubicsplinetable.h | Declares classes for cubic spline table |
    forcetable.h | Old routines for table generation (will eventually be replaced) |
    quadraticsplinetable.cpp | Implements classes for quadratic spline table functions |
    quadraticsplinetable.h | Declares classes for quadratic spline table |
    splineutil.cpp | Implements internal utility functions for spline tables |
    splineutil.h | Declares internal utility functions for spline tables |
    tableinput.h | Declares structures for analytical or numerical input data to construct tables |
   taskassignment | |
    tests | |
     usergpuids.cpp | Tests for NonbondedOnGpuFromUser |
    decidegpuusage.cpp | Defines functionality for deciding whether tasks will run on GPUs |
    decidegpuusage.h | Declares functionality for deciding whether tasks will run on GPUs |
    findallgputasks.cpp | Defines routine for collecting all GPU tasks found on ranks of a node |
    findallgputasks.h | Declares routine for collecting all GPU tasks found on ranks of a node |
    reportgpuusage.cpp | Defines routine for reporting GPU usage |
    reportgpuusage.h | Declares routine for reporting GPU usage |
    resourcedivision.cpp | Defines utility functionality for dividing resources and checking for consistency and usefulness |
    resourcedivision.h | Declares utility functionality for dividing resources and checking for consistency and usefulness |
    taskassignment.cpp | Defines helper and factory functionality for task assignment |
    taskassignment.h | Declares high-level functionality for managing assigning tasks on ranks of a node to hardware on that node, and the factory function to build the correct flavours of gmx::INodeTaskAssigner required to implement the user's requirements |
    usergpuids.cpp | Defines routines for handling user-specified GPU IDs |
    usergpuids.h | Declares routines for handling user-specified GPU IDs |
   timing | |
    cyclecounter.h | High-resolution timestamp or CPU clock cycle counters |
    gpu_timing.h | Declares data types for GPU timing |
   topology | |
    atomsbuilder.cpp | Implements classes from atomsbuilder.h |
    atomsbuilder.h | Utility classes for manipulating t_atoms structures |
    mtop_lookup.h | This file contains inline functions to look up atom information using the global atom index |
   trajectoryanalysis | Framework for Trajectory Analysis (trajectoryanalysis) |
    modules | |
     angle.cpp | Implements gmx::analysismodules::Angle |
     angle.h | Declares trajectory analysis module for angle calculations |
     distance.cpp | Implements gmx::analysismodules::Distance |
     distance.h | Declares trajectory analysis module for distance calculations |
     freevolume.cpp | Implements gmx::analysismodules::Freevolume |
     freevolume.h | Declares trajectory analysis module for free volume calculations |
     pairdist.cpp | Implements gmx::analysismodules::PairDistance |
     pairdist.h | Declares trajectory analysis module for pairwise distance calculations |
     rdf.cpp | Implements gmx::analysismodules::Rdf |
     rdf.h | Declares trajectory analysis module for RDF calculations |
     sasa.cpp | Implements gmx::analysismodules::Sasa |
     sasa.h | Declares trajectory analysis module for surface area calculations |
     select.cpp | Implements gmx::analysismodules::Select |
     select.h | Declares trajectory analysis module for basic selection information |
     trajectory.cpp | Implements gmx::analysismodules::Trajectory |
     trajectory.h | Declares trajectory analysis module for basic trajectory information |
     unionfind.h | Implements gmx::UnionFinder and gmx::MappedUnionFinder |
    tests | Unit tests for Framework for Trajectory Analysis (trajectoryanalysis) |
     angle.cpp | Tests for functionality of the "angle" trajectory analysis module |
     clustsize.cpp | Tests for gmx clustsize |
     cmdlinerunner.cpp | Tests for general functionality in gmx::TrajectoryAnalysisCommandLineRunner |
     distance.cpp | Tests for functionality of the "distance" trajectory analysis module |
     freevolume.cpp | Tests for functionality of the "angle" trajectory analysis module |
     moduletest.cpp | Implements classes in moduletest.h |
     moduletest.h | Declares test fixture for TrajectoryAnalysisModule subclasses |
     pairdist.cpp | Tests for functionality of the "pairdist" trajectory analysis module |
     rdf.cpp | Tests for functionality of the "rdf" trajectory analysis module |
     sasa.cpp | Tests for functionality of the "sasa" trajectory analysis module |
     select.cpp | Tests for functionality of the "select" trajectory analysis module |
     surfacearea.cpp | Tests for the surface area calculation used by the sasa analysis module |
     test_selection.cpp | Testing/debugging tool for the selection engine |
     trajectory.cpp | Tests for functionality of the "trajectory" trajectory analysis module |
     unionfind.cpp | Tests for the union-find implementation in unionfind.h |
    analysismodule.cpp | Implements classes in analysismodule.h |
    analysismodule.h | Declares gmx::TrajectoryAnalysisModule and gmx::TrajectoryAnalysisModuleData |
    analysissettings-impl.h | Declares private implementation class for gmx::TrajectoryAnalysisSettings |
    analysissettings.cpp | Implements classes in analysissettings.h |
    analysissettings.h | Declares gmx::TrajectoryAnalysisSettings and gmx::TopologyInformation |
    cmdlinerunner.cpp | Implements gmx::TrajectoryAnalysisCommandLineRunner |
    cmdlinerunner.h | Declares gmx::TrajectoryAnalysisCommandLineRunner |
    modules.cpp | Implements registerTrajectoryAnalysisModules() |
    modules.h | Generic interface for accessing trajectory analysis modules |
    runnercommon.cpp | Implements gmx::TrajectoryAnalysisRunnerCommon |
    runnercommon.h | Declares gmx::TrajectoryAnalysisRunnerCommon |
   utility | Low-Level Utilities (utility) |
    tests | Unit tests for Low-Level Utilities (utility) |
     alignedallocator-impl.h | Tests for allocators that offer a minimum alignment |
     alignedallocator.cpp | Tests for gmx::AlignedAllocator and gmx::PageAlignedAllocator |
     arrayref.cpp | Tests for gmx::ArrayRef |
     bitmask.h | Tests for bitmask functionality |
     mutex.cpp | Tests for gmx::Mutex |
     path.cpp | Tests for (some) functions in path.h |
     stringutil.cpp | Tests for string utility functions and classes |
     textreader.cpp | Tests for gmx::TextReader |
     textwriter.cpp | Tests for gmx::TextWriter |
    alignedallocator.cpp | Implements AlignedAllocator |
    alignedallocator.h | Declares allocation policy classes and allocators that are used to make library containers compatible with alignment requirements of particular hardware, e.g. memory operations for SIMD or accelerators |
    allocator.h | Declares gmx::Allocator template whose allocation functionality is configured both by type of object allocated and a policy class that configures the necessary matching malloc and free operation |
    arrayref.h | Declares gmx::ArrayRef |
    arraysize.h | Provides asize() macro for calculating the static size of an array |
    basedefinitions.h | Basic types and macros used throughout GROMACS |
    basenetwork.h | Utility functions for basic MPI and network functionality |
    baseversion-gen.h | Declares variables that hold generated version information |
    baseversion.h | Declares functions to get basic version information |
    binaryinformation.cpp | Implements functionality for printing information about the currently running binary |
    binaryinformation.h | Helper functionality for information about the currently running binary |
    bitmask.h | Declares gmx_bitmask_t and associated functions |
    classhelpers.h | Declares common utility classes and macros |
    compare.h | Utilities for comparing data structures (for gmx check) |
    coolstuff.cpp | Functionality for printing cool strings |
    coolstuff.h | Functionality for printing cool strings |
    cstringutil.h | Generic C string handling functions |
    current_function.h | Declares GMX_CURRENT_FUNCTION for getting the current function name |
    datafilefinder.cpp | Implements gmx::DataFileFinder |
    datafilefinder.h | Declares gmx::DataFileFinder and related classes |
    dir_separator.h | Provides OS-specific directory-name separator |
    directoryenumerator.cpp | Implements gmx::DirectoryEnumerator |
    directoryenumerator.h | Declares gmx::DirectoryEnumerator |
    errorcodes.cpp | Implements functions in errorcodes.h |
    errorcodes.h | Declares error codes and related functions for fatal error handling |
    errorformat.cpp | Implements functions declared in errorformat.h |
    errorformat.h | Declares an internal helper function for formatting standard error messages |
    exceptions.cpp | Implements classes and functions in exceptions.h |
    exceptions.h | Declares common exception classes and macros for fatal error handling |
    fatalerror.h | Declares fatal error handling and debugging routines for C code |
    fileredirector.cpp | Implements classes and functions from fileredirector.h |
    fileredirector.h | Declares gmx::IFileOutputRedirector |
    filestream.cpp | Implements classes from filestream.h |
    filestream.h | Declares implementations for textstream.h interfaces for file input/output |
    flags.h | Declares gmx::FlagsTemplate |
    futil.h | Low-level wrappers for OS-specific file handling with some GROMACS customizations |
    gmxassert.cpp | Implements assertion handlers |
    gmxassert.h | Defines assert macros customized for Gromacs |
    gmxmpi.h | Wraps mpi.h usage in Gromacs |
    gmxomp.cpp | Implements functions from gmxomp.h |
    gmxomp.h | Declares OpenMP wrappers to avoid conditional compilation |
    gmxregex.cpp | Implements regular expression wrappers |
    gmxregex.h | Declares simple wrapper for regular expression functionality |
    ikeyvaluetreeerror.h | Declares an error handling interface for key-value tree operations |
    init.cpp | Implements functions from init.h |
    init.h | Declares functions for initializing the GROMACS library |
    inmemoryserializer.h | Declares gmx::ISerializer implementation for in-memory serialization |
    int64_to_int.h | Low-level utility for converting 64 bit int to int (the size of which is hardware dependent), printing a warning if an overflow will occur |
    iserializer.h | Declares a generic serialization interface that supports both directions |
    keyvaluetree.h | Declares a data structure for JSON-like structured key-value mapping |
    keyvaluetreebuilder.h | Declares classes for building the data structures in keyvaluetree.h |
    keyvaluetreeserializer.h | Declares serialization routines for KeyValueTree objects |
    keyvaluetreetransform.h | Declares utilities for transforming key-value trees |
    logger.h | Declares functionality for logging |
    loggerbuilder.h | Declares functionality for initializing logging |
    messagestringcollector.cpp | Implements gmx::MessageStringCollector |
    messagestringcollector.h | Declares gmx::MessageStringCollector |
    mutex.h | Declares C++11-style basic threading primitives (gmx::Mutex, gmx::lock_guard) |
    niceheader.cpp | Implements functions from niceheader.h |
    niceheader.h | Declares function for printing a nice header for text output files |
    nodelete.h | Declares no_delete deleter for std::shared_ptr |
    path.cpp | Implements functions in path.h |
    path.h | Declares functions for OS-independent path handling |
    pleasecite.h | Declares please_cite() for printing out literature references |
    programcontext.cpp | Implements gmx::IProgramContext and related methods |
    programcontext.h | Declares gmx::IProgramContext and related methods |
    qsort_threadsafe.h | Portable implementation of threadsafe quicksort |
    real.h | Declares real and related constants |
    smalloc.h | C memory allocation routines for GROMACS |
    snprintf.h | Provide snprintf symbol on all OS (for internal Gromacs use) |
    strconvert.cpp | Implements functions in strconvert.h |
    strconvert.h | Declares common utility functions for conversions to and from strings |
    strdb.h | Declares C functions for reading files with a list of strings |
    stringcompare.h | Declares utility functionst for string comparison |
    stringstream.cpp | Implements classes from stringstream.h |
    stringstream.h | Declares implementations for textstream.h interfaces for input/output to in-memory strings |
    stringutil.cpp | Implements functions and classes in stringutil.h |
    stringutil.h | Declares common string utility and formatting routines |
    sysinfo.cpp | Implements functions from sysinfo.h |
    sysinfo.h | Declares functions that wrap platform-specific calls for obtaining information about the operating environment and the current process |
    textreader.cpp | Implements gmx::TextReader |
    textreader.h | Declares gmx::TextReader |
    textstream.h | Declares interfaces for simple input/output streams |
    textwriter.cpp | Implements gmx::TextWriter |
    textwriter.h | Declares gmx::TextWriter |
    txtdump.h | Declares helper functions for dumping basic data structures as text |
    typetraits.h | Declares type traits |
    unique_cptr.h | Declares gmx::unique_cptr and gmx::sfree_guard |
    variant.cpp | Implements functionality from variant.h |
    variant.h | Declares gmx::Variant |
   analysisdata.h | Public API convenience header for analysis data handling |
   commandline.h | Public API convenience header for managing command line programs |
   onlinehelp-doc.h | Dummy header for Help Formatting for Online Help (onlinehelp) documentation |
   options.h | Public API convenience header for handling of options |
   random.h | Public API convenience header for random engines and distributions |
   selection.h | Public API convenience header for selection handling |
   trajectoryanalysis.h | Public API convenience header for trajectory analysis framework |
   utility.h | Public API convenience header for low-level utilities |
  programs | Source code for building executables, see Wrapper binary implementation |
   mdrun | Source code specific to mdrun |
    tests | |
     compressed_x_output.cpp | Tests for the mdrun -x functionality |
     domain_decomposition.cpp | Tests special cases in domain decomposition |
     energyreader.cpp | Implementions of related classes for tests that want to inspect energies produced by mdrun |
     energyreader.h | Interfaces of related classes for tests that want to inspect energies produced by mdrun |
     grompp.cpp | Tests for basic grompp functionality |
     initialconstraints.cpp | This implements basic initial constrains test (using single-rank mdrun) |
     interactiveMD.cpp | Tests utilities for interactive molecular dynamics (IMD) setups |
     mdruncomparisonfixture.cpp | Implements classes in mdruncomparisonfixture.h |
     moduletest.cpp | Implements classes in moduletest.h |
     moduletest.h | Declares test fixtures for general mdrun functionality |
     multisim.cpp | Tests for the mdrun multi-simulation functionality |
     multisimtest.cpp | Tests for the mdrun multi-simulation functionality |
     multisimtest.h | Declares test fixture for the mdrun multi-simulation functionality |
     pmetest.cpp | This implements basic PME sanity tests. It runs the input system with PME for several steps (on CPU and GPU, if available), and checks the reciprocal and conserved energies. As part of mdrun-test, this will always run single rank PME simulation. As part of mdrun-mpi-test, this will run same as above when a single rank is requested, or a simulation with a single separate PME rank ("-npme 1") when multiple ranks are requested |
     replicaexchange.cpp | Tests for the mdrun replica-exchange functionality |
     rerun.cpp | Tests for the mdrun -rerun functionality |
     swapcoords.cpp | Tests utilities for "Computational Electrophysiology" setups |
     tabulated_bonded_interactions.cpp | Tests for tabulated bonded interactions |
     termination.cpp | Tests for the mdrun termination functionality |
     terminationhelper.cpp | Defines functionality used to test mdrun termination functionality under different conditions |
     terminationhelper.h | Declares functionality used to test mdrun termination functionality under different conditions |
     trajectory_writing.cpp | Tests for the .mdp nst*out functionality |
     trajectoryreader.cpp | Implementions of related classes for tests that want to inspect trajectories produced by mdrun |
     trajectoryreader.h | Declares interface of a class for tests that want to inspect trajectories produced by mdrun |
    md.h | Declares the integrators for molecular dynamics simulations |
    mdrun.cpp | This file implements mdrun |
    runner.cpp | Implements the MD runner routine calling all integrators |
    runner.h | Declares the routine running the inetgrators |
   view | Source code specific to gmx view , including all X11-dependent code |
  testutils | Testing Utilities (testutils) |
   tests | Unit tests for Testing Utilities (testutils) |
    interactivetest.cpp | Self-tests for interactive test helpers |
    mpitest.cpp | Tests for infrastructure for running tests under MPI |
    refdata_tests.cpp | Tests utilities for test reference data |
    testasserts_tests.cpp | Tests GROMACS-specific test assertions |
    xvgtest_tests.cpp | Tests utilities for testing xvg files |
   cmdlinetest.cpp | Implements classes from cmdlinetest.h |
   cmdlinetest.h | Declares utilities testing command-line programs |
   conftest.cpp | Implements routine to check the content of conf files |
   conftest.h | Declares function to add the content of a conf file to a checker |
   filematchers.cpp | Implements classes from filematchers.h |
   filematchers.h | Declares utility classes for testing file contents |
   interactivetest.cpp | Implements classes from interactivetest.h |
   interactivetest.h | Provides helper classes for testing interactive prompts |
   loggertest.cpp | Implements gmx::test::LoggerTestHelper |
   loggertest.h | Declares gmx::test::LoggerTestHelper |
   mpi-printer.h | Declares gmx::test::initMPIOutput() |
   mpitest.cpp | Implements functions in mpitest.h |
   mpitest.h | Helper functions for MPI tests to make thread-MPI look like real MPI |
   refdata-checkers.h | Declares internal helper classes for the reference data framework to check reference data values of different types |
   refdata-impl.h | Declares internal data structures for the reference data framework |
   refdata-xml.cpp | Implements reference data XML persistence |
   refdata-xml.h | Declares functions for reference data XML persistence |
   refdata.cpp | Implements classes and functions from refdata.h |
   refdata.h | Functionality for writing tests that can produce their own reference data |
   stdiohelper.cpp | Implements classes in stdiohelper.h |
   stdiohelper.h | Declares gmx::test::StdioTestHelper |
   stringtest.cpp | Implements gmx::test::StringTestBase |
   stringtest.h | Declares gmx::test::StringTestBase |
   testasserts.cpp | Implements floating-point comparison routines from testasserts.h |
   testasserts.h | Extra assertions for unit tests |
   testexceptions.h | Exception classes for errors in tests |
   testfilemanager.cpp | Implements gmx::test::TestFileManager |
   testfilemanager.h | Declares gmx::test::TestFileManager |
   testfileredirector.cpp | Implements classes from testfileredirector.h |
   testfileredirector.h | Declares generic mock implementations for interfaces in fileredirector.h |
   testinit.cpp | Implements functions in testinit.h |
   testinit.h | Functions for initialing GROMACS unit test executables |
   testoptions.cpp | Implements functions in testoptions.h |
   testoptions.h | Functions for accessing test command-line options |
   testutils-doc.h | Dummy header for Testing Utilities (testutils) documentation |
   textblockmatchers.cpp | Implements classes from textblockmatchers.h |
   textblockmatchers.h | Declares utility classes for testing multi-line strings against reference data |
   unittest_main.cpp | Main() for unit tests that use Testing Utilities (testutils) |
   xvgtest.cpp | Implements routine to check the content of xvg files |
   xvgtest.h | Declares function to add the content of an xvg file to a checker |
  gmxpre.h | Prerequisite header file for GROMACS build |