 docs | Build system and source code for various documentation items |
  doxygen | Doxygen build system and general documentation content |
 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.h | Declares gmx::AnalysisDataAverageModule |
     displacement.h | Declares gmx::AnalysisDataDisplacementModule |
     histogram.h | Declares analysis data modules for calculating histograms |
     lifetime.h | Declares gmx::AnalysisDataLifetimeModule |
     plot.h | Declares gmx::AnalysisDataPlotModule for plotting data (into a file) |
    tests | Unit tests for Parallelizable Handling of Output Data (analysisdata) |
     datatest.h | Helper classes for testing classes that derive from AbstractAnalysisData |
     mock_datamodule.h | Declares mock implementation of gmx::IAnalysisDataModule |
    abstractdata.h | Declares gmx::AbstractAnalysisData |
    analysisdata.h | Declares gmx::AnalysisData and gmx::AnalysisDataHandle |
    arraydata.h | Declares gmx::AbstractAnalysisArrayData and gmx::AnalysisArrayData |
    dataframe.h | Declares classes for accessing data frame information |
    datamodule.h | Declares gmx::IAnalysisDataModule and related convenience classes |
    datamodulemanager.h | Declares gmx::AnalysisDataModuleManager |
    datastorage.h | Declares gmx::AnalysisDataStorage |
    paralleloptions.h | Declares gmx::AnalysisDataParallelOptions |
   awh | |
    awh.h | Declares the Awh 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) |
    cmdlinehelpcontext.h | Declares gmx::CommandLineHelpContext |
    cmdlinehelpwriter.h | Declares gmx::CommandLineHelpWriter |
    cmdlineinit.h | Declares functions for initializing the GROMACS library for command line use |
    cmdlinemodule.h | Declares gmx::ICommandLineModule and supporting classes |
    cmdlinemodulemanager.h | Declares gmx::CommandLineModuleManager |
    cmdlineoptionsmodule.h | Declares gmx::ICommandLineOptionsModule and supporting routines |
    cmdlineparser.h | Declares gmx::CommandLineParser |
    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 |
    viewit.h | Provides function to open output files automatically (with some X11 programs) |
   compat | C++ standard library compatibility helpers. |
    make_unique.h | Provides template gmx::compat::make_unique |
   correlationfunctions | |
    autocorr.h | Declares routine for computing autocorrelation functions |
    crosscorr.h | Declares routine for computing a cross correlation between two data sets |
    expfit.h | Declares routine for fitting a data set to a curve |
    gmx_lmcurve.h | Declares a driver routine for lmfit |
    integrate.h | Declares routines for integrating a data set |
    manyautocorrelation.h | Declares routine for computing many correlation functions using OpenMP |
    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_network.h | This file declares functions for (mostly) the domdec module to use MPI functionality |
    domdec_struct.h | Declares structures related to domain decomposition |
    ga2la.h | Defines structures and functions for mapping from global to local atom indices. The functions are performance critical and should be inlined |
   essentialdynamics | |
    edsam.h | Declares functions to calculate both essential dynamics constraints as well as flooding potentials and forces |
   ewald | |
    ewald-utils.h | Declares utility functions related to Ewald |
    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-types.h | Defines the GPU-agnostic PME GPU data structures (the host-side PME GPU data, and the GPU function parameters) |
    pme-load-balancing.h | This file contains function declarations necessary for managing automatic load balance of PME calculations (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 | |
    fft.h | Fast Fourier Transforms |
   gmxpreprocess | |
    keyvaluetreemdpwriter.h | Declares a function to write a flat key-value tree to look like old-style mdp output |
   gpu_utils | |
    gmxopencl.h | Wraps the complexity of including OpenCL in Gromacs |
    gpu_utils.h | Declare functions for detection and initialization for GPU 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.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_compiler.h | Declare infrastructure for OpenCL JIT compilation |
    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 | |
    cpuinfo.h | Declares gmx::CpuInfo |
    hardwaretopology.h | Declares gmx::HardwareTopology |
    identifyavx512fmaunits.h | Defines a routine to check the number of AVX512 fma units |
   imd | |
    imd.h | This file contains datatypes and function declarations necessary for mdrun to interface with VMD via the interactive molecular dynamics protocol |
    imdsocket.h | Implements the parts of the vmdsock.h interface needed for IMD communication |
   listed-forces | |
    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.h | This file contains declarations of high-level functions used by mdrun to compute energies and forces for listed interactions |
    manage-threading.h | Declares functions for managing threading of listed forces |
    orires.h | Declares functions for handling orientation restraints |
    pairs.h | This file declares functions for "pair" interactions (i.e. listed non-bonded interactions, e.g. 1-4 interactions) |
    position-restraints.h | This file contains declarations necessary for low-level functions for computing energies and forces for position restraints |
   math | |
    functions.h | Declares simple math functions |
    invertmatrix.h | Declares routines to invert 3x3 matrices |
    paddedvector.h | Declares gmx::PaddedRVecVector |
   mdlib | |
    nbnxn_kernels | |
     nbnxn_kernel_cpu.h | Declares the nbnxn pair interaction kernel dispatcher |
     nbnxn_kernel_prune.h | Declares the pair-list pruning kernel wrapper function |
    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 |
    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_data_mgmt.h | Declare interface for GPU data transfer for NBNXN module |
    nbnxn_tuning.h | Declares functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels |
    simulationsignal.h | This file declares functions for inter-rank signalling by mdrun |
   mdrunutility | |
    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.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) |
     mock_helptopic.h | Declares mock implementation of gmx::IHelpTopic |
    helpformat.h | Declares common string formatting routines for online help |
    helpmanager.h | Declares gmx::HelpManager |
    helptopic.h | Declares helper classes for implementing gmx::IHelpTopic |
    helpwritercontext.h | Declares gmx::HelpWriterContext |
    ihelptopic.h | Declares gmx::IHelpTopic |
   options | Extensible Handling of Options (options) |
    tests | Unit tests for Extensible Handling of Options (options) |
    abstractoption.h | Defines gmx::AbstractOption, gmx::OptionTemplate and gmx::OptionInfo |
    abstractoptionstorage.h | Declares gmx::AbstractOptionStorage |
    abstractsection.h | Declares base classes for declaring option sections |
    basicoptions.h | Declares option objects for basic option types |
    behaviorcollection.h | Declares gmx::OptionsBehaviorCollection |
    filenameoption.h | Declares gmx::FileNameOption and gmx::FileNameOptionInfo |
    filenameoptionmanager.h | Declares gmx::FileNameOptionManager |
    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.h | Declares gmx::Options |
    optionsassigner.h | Declares gmx::OptionsAssigner |
    optionsection.h | Declares gmx::OptionSection and gmx::OptionSectionInfo |
    optionstoragetemplate.h | Defines gmx::OptionStorageTemplate template |
    optionsvisitor.h | Declares gmx::OptionsVisitor interface and supporting classes |
    repeatingsection.h | Declares gmx::RepeatingOptionSection and related classes |
    timeunitmanager.h | Declares gmx::TimeUnitManager |
    treesupport.h | Declares functions for using keyvaluetree.h with Options |
    valueconverter.h | Provides gmx::OptionValueConverterSimple |
    valuestore.h | Declares implementations for IOptionValueStore |
   pbcutil | |
    pbc-simd.h | This file contains a definition, declaration and inline function for SIMD accelerated PBC calculations |
   pulling | |
    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 | |
    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.h | API for handling index files and index groups |
    nbsearch.h | API for neighborhood searching for analysis |
    position.h | API for handling positions |
    selection.h | Declares gmx::Selection and supporting classes |
    selectioncollection.h | Declares gmx::SelectionCollection |
    selectionenums.h | Declares common types used in selections |
    selectionfileoption.h | Declares gmx::SelectionFileOption and gmx::SelectionFileOptionInfo |
    selectionoption.h | Declares gmx::SelectionOption and gmx::SelectionOptionInfo |
    selectionoptionbehavior.h | Declares gmx::SelectionOptionBehavior |
    selectionoptionmanager.h | Declares gmx::SelectionOptionManager |
    selhelp.h | Functions for initializing online help for selections |
   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) |
    simd.h | Definitions, capabilities, and wrappers for SIMD module |
    simd_math.h | Math functions for SIMD datatypes |
    simd_memory.h | Declares SimdArrayRef |
    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.h | The "Computational Electrophysiology" protocol for ion/water position swapping |
   tables | |
    cubicsplinetable.h | Declares classes for cubic spline table |
    forcetable.h | Old routines for table generation (will eventually be replaced) |
    quadraticsplinetable.h | Declares classes for quadratic spline table |
    tableinput.h | Declares structures for analytical or numerical input data to construct tables |
   taskassignment | |
    decidegpuusage.h | Declares functionality for deciding whether tasks will run on GPUs |
    resourcedivision.h | Declares utility functionality for dividing resources and checking for consistency and usefulness |
    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.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.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 | |
     unionfind.h | Implements gmx::UnionFinder and gmx::MappedUnionFinder |
    tests | Unit tests for Framework for Trajectory Analysis (trajectoryanalysis) |
    analysismodule.h | Declares gmx::TrajectoryAnalysisModule and gmx::TrajectoryAnalysisModuleData |
    analysissettings.h | Declares gmx::TrajectoryAnalysisSettings and gmx::TopologyInformation |
    cmdlinerunner.h | Declares gmx::TrajectoryAnalysisCommandLineRunner |
    modules.h | Generic interface for accessing trajectory analysis modules |
   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.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.h | Declares functions to get basic version information |
    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.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.h | Declares gmx::DataFileFinder and related classes |
    dir_separator.h | Provides OS-specific directory-name separator |
    directoryenumerator.h | Declares gmx::DirectoryEnumerator |
    errorcodes.h | Declares error codes and related functions for fatal error handling |
    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.h | Declares gmx::IFileOutputRedirector |
    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.h | Defines assert macros customized for Gromacs |
    gmxmpi.h | Wraps mpi.h usage in Gromacs |
    gmxomp.h | Declares OpenMP wrappers to avoid conditional compilation |
    gmxregex.h | Declares simple wrapper for regular expression functionality |
    ikeyvaluetreeerror.h | Declares an error handling interface for key-value tree operations |
    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.h | Declares gmx::MessageStringCollector |
    mutex.h | Declares C++11-style basic threading primitives (gmx::Mutex, gmx::lock_guard) |
    niceheader.h | Declares function for printing a nice header for text output files |
    nodelete.h | Declares no_delete deleter for std::shared_ptr |
    path.h | Declares functions for OS-independent path handling |
    pleasecite.h | Declares please_cite() for printing out literature references |
    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.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.h | Declares implementations for textstream.h interfaces for input/output to in-memory strings |
    stringutil.h | Declares common string utility and formatting routines |
    sysinfo.h | Declares functions that wrap platform-specific calls for obtaining information about the operating environment and the current process |
    textreader.h | Declares gmx::TextReader |
    textstream.h | Declares interfaces for simple input/output streams |
    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.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 |
   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 |
    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) |
   cmdlinetest.h | Declares utilities testing command-line programs |
   conftest.h | Declares function to add the content of a conf file to a checker |
   filematchers.h | Declares utility classes for testing file contents |
   interactivetest.h | Provides helper classes for testing interactive prompts |
   loggertest.h | Declares gmx::test::LoggerTestHelper |
   mpitest.h | Helper functions for MPI tests to make thread-MPI look like real MPI |
   refdata.h | Functionality for writing tests that can produce their own reference data |
   stdiohelper.h | Declares gmx::test::StdioTestHelper |
   stringtest.h | Declares gmx::test::StringTestBase |
   testasserts.h | Extra assertions for unit tests |
   testexceptions.h | Exception classes for errors in tests |
   testfilemanager.h | Declares gmx::test::TestFileManager |
   testfileredirector.h | Declares generic mock implementations for interfaces in fileredirector.h |
   testoptions.h | Functions for accessing test command-line options |
   textblockmatchers.h | Declares utility classes for testing multi-line strings against reference data |
   xvgtest.h | Declares function to add the content of an xvg file to a checker |
  gmxpre.h | Prerequisite header file for GROMACS build |