|
| 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 MpiComm &mpiComm, 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 MpiComm &mpiComm) |
| | 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.
|
| |
|
std::string | colvarsDescription () |
| | Returns information for describing the colvars support.
|
| |
| 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::string | torchDescription () |
| | Returns information for describing the Torch support.
|
| |
static std::tuple< std::vector
< RVec >, std::vector< real > > | getMMPositionsAndCharges (const std::unique_ptr< LocalAtomSet > &mmAtoms, ArrayRef< const RVec > positions, ArrayRef< const real > charges) |
| | Helper function to gather the positions of the NNP atoms from the input. More...
|
| |
| static void | centerAtomPositions (ArrayRef< RVec > nnPositions, ArrayRef< RVec > mmPositions, const matrix &box, const PbcType &pbcType) |
| |
|
static std::string | recordToString (std::tuple< at::DataPtr, size_t > data) |
| |
|
static void | loadModelExtensions (const std::string &ext_libs, const MDLogger &logger) |
| | load custom extensions used to compile the TorchScript model from extra_files
|
| |
static std::tuple< std::string,
std::optional< int > > | getMdrunActiveDevice () |
| |
| static torch::Device | determineDevice (const MDLogger &logger, const MpiComm &mpiComm) |
| | Determine which device to use depending on GMX_NN_DEVICE environment variable. More...
|
| |
|
std::string | plumedDescription () |
| | Returns information for describing the PLUMED support.
|
| |
|
std::string | qmmmDescription () |
| | Returns information for describing the CP2K QM/MM support.
|
| |
| 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::filesystem::path &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::filesystem::path &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::filesystem::path &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...
|
| |
|
static CommSetup | split_communicator (const MDLogger &mdlog, const MpiComm &mpiCommSimulation, const DdRankOrder ddRankOrder, const bool gmx_unused reorder, const DDRankSetup &ddRankSetup) |
| |
| static CommSetup | makeGroupCommunicators (const MDLogger &mdlog, const DDSettings &ddSettings, const DdRankOrder ddRankOrder, const DDRankSetup &ddRankSetup, const MpiComm &mpiCommSimulation) |
| | Makes the PP communicator and the PME communicator, when needed. More...
|
| |
| static void | setupGroupCommunication (const MDLogger &mdlog, const DDSettings &ddSettings, const int numAtomsInSystem, gmx_domdec_t *dd) |
| | For PP ranks, sets or makes the communicator. More...
|
| |
|
static std::vector< real > | get_slb_frac (const gmx::MDLogger &mdlog, const char *dir, int nc, const char *size_string) |
| |
|
HaloPlan | computeHaloPlan (const gmx_domdec_comm_t &comm, int dimIndex, int pulse, const MpiComm &mpiCommGroup, int sendRankX, int recvRankX) |
| |
|
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 InteractionFunction 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 MpiComm &mpiComm, const gmx_domdec_t &dd, 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 MpiComm &mpiComm, const gmx_domdec_t &dd, 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 MpiComm &mpiComm, const gmx_domdec_t &dd, 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 SimulationWorkload &simulationWork, gmx_domdec_t *dd, 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, shellfc_t *shellfc, StatePropagatorDataGpu *stateGpu, gmx_wallcycle *wcycle) |
| | Sets atom data for several MD algorithms. More...
|
| |
| void | make_local_shells (const gmx_domdec_t *dd, const t_mdatoms &md, 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 (gmx_domdec_t *dd, const t_inputrec &inputrec, FILE *fplog) |
| | Print statistics for domain decomposition communication.
|
| |
| void | dd_partition_system (FILE *fplog, const gmx::MDLogger &mdlog, const SimulationWorkload &simulationWork, int64_t step, gmx_domdec_t *dd, 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, StatePropagatorDataGpu *stateGpu, 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 | fit_to_reference (rvec *xcoll, rvec transvec, matrix rotmat, t_edpar *edi) |
| |
|
static void | translate_and_rotate (rvec *x, int nat, rvec transvec, matrix rotmat) |
| |
|
static real | rmsd_from_structure (rvec *x, struct gmx_edx *s) |
| |
|
static void | crosscheck_edi_file_vs_checkpoint (const edsam &ed, edsamhistory_t *EDstate) |
| |
|
static void | init_edsamstate (const edsam &ed, edsamhistory_t *EDstate) |
| |
|
static void | write_edo_legend (edsam *ed, int nED, const gmx_output_env_t *oenv) |
| |
|
static char | get_EDgroupChar (int nr_edi, int nED) |
| |
|
static void | project (rvec *x, t_edpar *edi) |
| |
|
static void | do_edfit (int natoms, rvec *xp, rvec *x, matrix R, t_edpar *edi) |
| |
|
static void | rmfit (int nat, rvec *xcoll, const rvec transvec, matrix rotmat) |
| |
|
static real | flood_energy (t_edpar *edi, int64_t step) |
| |
|
static void | flood_forces (t_edpar *edi) |
| |
|
static void | update_adaption (t_edpar *edi) |
| |
|
static void | do_single_flood (FILE *edo, gmx::ArrayRef< const gmx::RVec > coords, gmx::ArrayRef< gmx::RVec > force, t_edpar *edi, int64_t step, const matrix box, const gmx::MpiComm &mpiComm, gmx_bool bNS) |
| |
| void | do_flood (const MpiComm &mpiComm, const t_inputrec &ir, ArrayRef< const RVec > coords, ArrayRef< RVec > force, edsam *ed, const matrix box, int64_t step, bool bNS) |
| | Evaluate the flooding potential(s) and forces as requested in the .edi input file. More...
|
| |
|
static void | init_flood (t_edpar *edi, edsam *ed, real dt) |
| |
static std::unique_ptr
< gmx::EssentialDynamics > | ed_open (int natoms, ObservablesHistory *oh, const char *ediFileName, const char *edoFileName, const gmx::StartingBehavior startingBehavior, const gmx_output_env_t *oenv, const gmx::MpiComm &mpiComm) |
| |
|
static void | bc_ed_positions (const gmx::MpiComm &mpiComm, struct gmx_edx *s, EssentialDynamicsStructure stype) |
| |
|
static void | bc_ed_vecs (const gmx::MpiComm &mpiComm, t_eigvec *ev, int length) |
| |
|
static void | broadcast_ed_data (const gmx::MpiComm &mpiComm, edsam *ed) |
| |
|
static void | init_edi (const gmx_mtop_t &mtop, t_edpar *edi) |
| |
|
static void | check (const char *line, const char *label) |
| |
|
static int | read_checked_edint (FILE *file, const char *label) |
| |
|
static bool | read_checked_edbool (FILE *file, const char *label) |
| |
|
static int | read_edint (FILE *file, bool *bEOF) |
| |
|
static real | read_checked_edreal (FILE *file, const char *label) |
| |
|
static void | read_edx (FILE *file, int number, int *anrs, rvec *x) |
| |
|
static gmx_bool | check_if_same (struct gmx_edx sref, struct gmx_edx sav) |
| |
| void | dd_make_local_ed_indices (gmx_domdec_t *dd, edsam *ed) |
| | Make a selection of the home atoms for the ED groups. More...
|
| |
|
static void | ed_unshift_single_coord (const matrix box, const rvec x, const ivec is, rvec xu) |
| |
|
static void | do_radfix (rvec *xcoll, t_edpar *edi) |
| |
|
static void | do_radacc (rvec *xcoll, t_edpar *edi) |
| |
|
static void | do_radcon (rvec *xcoll, t_edpar *edi) |
| |
|
static void | ed_apply_constraints (rvec *xcoll, t_edpar *edi, int64_t step) |
| |
|
static bool | ed_constraints (EssentialDynamicsType edtype, const t_edpar &edi) |
| |
|
static void | copyEvecReference (t_eigvec *floodvecs, real *initialReferenceProjection) |
| |
|
static void | nice_legend (std::vector< std::string > *setname, std::string *LegendStr, const std::string &value, const std::string &unit, char EDgroupchar) |
| |
|
static void | nice_legend_evec (std::vector< std::string > *setname, std::string *LegendStr, t_eigvec *evec, char EDgroupChar, const std::string &EDtype) |
| |
std::unique_ptr
< gmx::EssentialDynamics > | init_edsam (const MDLogger &mdlog, const char *ediFileName, const char *edoFileName, const gmx_mtop_t &mtop, const t_inputrec &ir, const MpiComm &mpiComm, const gmx_domdec_t *dd, Constraints *constr, const t_state *globalState, ObservablesHistory *oh, const gmx_output_env_t *oenv, StartingBehavior startingBehavior) |
| | Initializes the essential dynamics and flooding module. More...
|
| |
| void | do_edsam (const t_inputrec *ir, int64_t step, const MpiComm &mpiComm, ArrayRef< RVec > coords, ArrayRef< RVec > velocities, const matrix box, edsam *ed) |
| | Applies essential dynamics constrains as defined in the .edi input file. More...
|
| |
|
static const char * | enumValueToString (PmeLoadBalancingLimit enumValue) |
| | Descriptive strings for PmeLoadBalancingLimit enumValue.
|
| |
|
bool | pmeTuningIsSupported (CoulombInteractionType coulombInteractionType, bool reproducibilityRequested, const SimulationWorkload &simulationWork) |
| | Returns whether PME tuning is supported.
|
| |
|
static Cutoffs | getCutoffs (const t_inputrec &ir, const matrix box, const interaction_const_t &ic, const nonbonded_verlet_t &nbv) |
| | Computes and returns initially set cutoffs and box.
|
| |
|
static int | numPmeGridPoints (const pme_setup_t &setup) |
| | Return product of the number of PME grid points in each dimension.
|
| |
|
static void | printGrid (FILE *fp_err, const MDLogger &mdlog, const char *pre, const char *desc, const pme_setup_t &set, double cycles) |
| | Print the PME grid.
|
| |
|
static void | printLoadBalLimited (FILE *fp_err, const MDLogger &mdlog, int64_t step, const PmeLoadBalancingLimit limited, const pme_setup_t &setup) |
| | Print descriptive string about what limits PME load balancing.
|
| |
| static void | applySetup (pme_setup_t *setup, gmx_pme_t *oldPmedata, const t_inputrec &ir, interaction_const_t *ic, nonbonded_verlet_t *nbv, gmx_domdec_t *dd, const PmePpComm *pmePpComm) |
| | Updates all the mdrun machinery for setup. More...
|
| |
| static bool | processCycles (FILE *fp_err, const MDLogger &mdlog, const double cycles, const int64_t step, const bool isInLastStage, pme_setup_t *set) |
| | Checks the cycles and adds them to *set. More...
|
| |
|
static void | printLoadBalSetup (const MDLogger &mdlog, const char *name, const pme_setup_t &setup) |
| | Print one load-balancing setting.
|
| |
|
static void | printLoadBalSettings (const PmeLoadBalancingLimit limited, const bool currentSetupIsLastSetup, const pme_setup_t ¤tSetup, const pme_setup_t &originalSetup, const bool useGpuForNonbondeds, const MDLogger &mdlog) |
| | Print all load-balancing settings.
|
| |
|
static void | waitForSentData (std::vector< MPI_Request > *requests) |
| | Wait for the pending data send requests to PME ranks to complete.
|
| |
| std::string | cpuFftDescription () |
| | Construct a string that describes the library that provides CPU FFT support to this build. More...
|
| |
| std::string | gpuFftDescription () |
| | Construct a string that describes the library that provides GPU FFT support to this build. More...
|
| |
| std::string | multiGpuFftDescription () |
| | Construct a string that describes the library (if any) that provides multi-GPU FFT support to this build. 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" |
| |
|
| 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 char *msg) |
| | Helper for consistent error handling.
|
| |
|
void | handleRocFftError (rocfft_status result, const char *direction, const char *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, std::string_view name, std::string_view 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, std::string_view name, std::string_view identifier, const KeyValueTreeObject &kvt) |
| | Read to a key-value-tree value used for checkpointing. More...
|
| |
| template void | readKvtCheckpointValue (compat::not_null< real * > value, std::string_view name, std::string_view identifier, const KeyValueTreeObject &kvt) |
| | Read to a key-value-tree value used for checkpointing. More...
|
| |
| template<typename ValueType > |
| void | writeKvtCheckpointValue (const ValueType &value, std::string_view name, std::string_view identifier, KeyValueTreeObjectBuilder kvtBuilder) |
| | Write to a key-value-tree used for checkpointing. More...
|
| |
| template void | writeKvtCheckpointValue (const std::int64_t &value, std::string_view name, std::string_view identifier, KeyValueTreeObjectBuilder kvtBuilder) |
| | Write to a key-value-tree used for checkpointing. More...
|
| |
| template void | writeKvtCheckpointValue (const real &value, std::string_view name, std::string_view identifier, KeyValueTreeObjectBuilder kvtBuilder) |
| | Write to a key-value-tree used for checkpointing. More...
|
| |
|
void | write_checkpoint_data (const std::filesystem::path &filename, CheckpointHeaderContents headerContents, gmx_bool bExpanded, LambdaWeightCalculation elamstats, t_state *state, ObservablesHistory *observablesHistory, const MDModulesNotifiers &mdModulesNotifiers, std::vector< gmx_file_position_t > *outputfiles, WriteCheckpointDataHolder *modularSimulatorCheckpointData) |
| | Low-level checkpoint writing function.
|
| |
|
static void | check_int (FILE *fplog, const char *type, int p, int f, gmx_bool *mm) |
| |
|
static void | check_string (FILE *fplog, const char *type, const char *p, const char *f, gmx_bool *mm) |
| |
|
static void | check_match (FILE *fplog, const CheckpointHeaderContents &headerContents, gmx_bool reproducibilityRequested) |
| |
|
static void | read_checkpoint (const std::filesystem::path &fn, t_fileio *logfio, const MpiComm &mpiCommSimulation, IntegrationAlgorithm eIntegrator, int *init_fep_state, CheckpointHeaderContents *headerContents, t_state *state, ObservablesHistory *observablesHistory, gmx_bool reproducibilityRequested, const MDModulesNotifiers &mdModulesNotifiers, ReadCheckpointDataHolder *modularSimulatorCheckpointData, bool useModularSimulator) |
| |
|
void | load_checkpoint (const std::filesystem::path &fn, t_fileio *logfio, const MpiComm &mpiCommSimulation, t_inputrec *ir, t_state *state, ObservablesHistory *observablesHistory, gmx_bool reproducibilityRequested, const MDModulesNotifiers &mdModulesNotifiers, ReadCheckpointDataHolder *modularSimulatorCheckpointData, bool useModularSimulator) |
| |
| void | read_checkpoint_part_and_step (const std::filesystem::path &filename, int *simulation_part, int64_t *step) |
| | Read simulation step and part from a checkpoint file. More...
|
| |
|
static CheckpointHeaderContents | read_checkpoint_data (XdrSerializer *serializer, t_state *state, std::vector< gmx_file_position_t > *outputfiles, ReadCheckpointDataHolder *modularSimulatorCheckpointData) |
| |
| void | read_checkpoint_trxframe (const std::filesystem::path &filename, t_trxframe *fr) |
| | Read everything that can be stored in t_trxframe from a checkpoint file. More...
|
| |
|
void | list_checkpoint (const std::filesystem::path &fn, FILE *out) |
| |
| CheckpointHeaderContents | read_checkpoint_simulation_part_and_filenames (const std::filesystem::path &filename, std::vector< gmx_file_position_t > *outputfiles) |
| | Return header information from an open checkpoint file. More...
|
| |
| H5md * | makeH5md (const std::filesystem::path &fileName, H5mdFileMode mode) |
| | Builder method to isolate creation from callers. More...
|
| |
| void | setupFileFromInput (H5md *h5md, const gmx_mtop_t &topology, const t_inputrec &inputRecord) |
| | Set up the file from input data. More...
|
| |
| void | setupFromExistingFileForAppending (H5md *h5md, int64_t restartingFromStep, int64_t numParticles) |
| | Set up from an existing h5md file for restarting with appending. More...
|
| |
| void | writeNextFrame (H5md *h5md, ArrayRef< const RVec > positions, ArrayRef< const RVec > velocities, ArrayRef< const RVec > forces, const matrix box, int64_t step, double time) |
| | Write input data as the next frame of the trajectory. More...
|
| |
|
void | destroyH5md (H5md *h5md) |
| | Deallocate h5md.
|
| |
|
void | flushH5md (H5md *h5md) |
| | Flush h5md file.
|
| |
| void | setStringAttributeByBuffer (hid_t container, const char *attributeName, size_t numberOfStrings, int maxStrLength, ArrayRef< const char > buffer) |
| | Low-level utility function to write a string-vector attribute via a character buffer. More...
|
| |
| template<typename ValueType > |
| std::optional< ValueType > | getAttribute (hid_t container, const char *attributeName) |
| | Read an attribute of a given data type. More...
|
| |
| template<> |
| std::optional< std::string > | getAttribute< std::string > (hid_t container, const char *attributeName) |
| | Read an attribute of a given data type. More...
|
| |
| template<typename ValueType > |
std::optional< std::vector
< ValueType > > | getAttributeVector (hid_t container, const char *attributeName) |
| | Read a vector-like attribute of a given data type. More...
|
| |
| template<> |
std::optional< std::vector
< std::string > > | getAttributeVector< std::string > (hid_t container, const char *attributeName) |
| | Read a vector-like attribute of a given data type. More...
|
| |
| template<typename ValueType > |
| void | setAttribute (hid_t container, const char *attributeName, const ValueType &value) |
| | Write a scalar attribute of a given data type. More...
|
| |
| void | setAttribute (hid_t container, const char *attributeName, const char *value) |
| | Write a scalar attribute of a given data type. More...
|
| |
| void | setAttribute (hid_t container, const char *attributeName, const std::string &value) |
| | Write a scalar attribute of a given data type. More...
|
| |
| template<typename ValueType > |
| void | setAttributeVector (hid_t container, const char *attributeName, ArrayRef< const ValueType > value) |
| | Write a vector-like attribute of a given data type. More...
|
| |
| void | setAttributeVector (hid_t container, const char *attributeName, ArrayRef< const std::string > values) |
| | Write a vector-like attribute of strings. More...
|
| |
| void | setAttributeVector (hid_t container, const char *attributeName, ArrayRef< const char *const > values) |
| | Write a vector-like attribute of C-strings. More...
|
| |
| template<typename Iterator > |
| std::vector< char > | setAttributeStringVector (hid_t container, const char *attributeName, std::vector< char > &&buffer, Iterator begin, Iterator end) |
| | Write a vector-like string attribute via iterators String data type is treated specially because of the HDF5 requirements for contiguous memory storage for fixed-length strings. A reusable character buffer is needed to avoid frequent memory allocations for multiple writing of different string attributes. More...
|
| |
|
template<typename ValueType > |
| static DataSetDims | primitiveDimsToValueTypeDims (const DataSetDims &dims) |
| | Return the dimensions of the templated ValueType for the primitive type data set dimensions.
|
| |
|
static hsize_t | numValuesInDataSet (const DataSetDims &dims) |
| | Return the number of values in a data set with templated type dimensions dims.
|
| |
|
static DataSetDims | getFullDims (const DataSetDims &dataSetDims) |
| |
|
static hsize_t | getNumValues (const DataSetDims &dims) |
| |
| hid_t | createGroup (hid_t container, const char *name) |
| | Create an H5MD group, and intermediate groups if they do not exist. More...
|
| |
| hid_t | openGroup (hid_t container, const char *name) |
| | Open an existing HDF5 group. More...
|
| |
| hid_t | openOrCreateGroup (hid_t container, const char *name) |
| | Open an existing HDF5 group or create it if it did not exist already. More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdGuard (hid_t object, H5mdCloseType unboundCloser) |
| | Helper function for guarding an HDF5 object with a closing function (H5Gclose, etc.). More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdGroupGuard (hid_t object) |
| | Helper function for guarding an HDF5 group with H5Gclose. More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdDataSetGuard (hid_t object) |
| | Helper function for guarding an HDF5 data set with H5Dclose. More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdDataSpaceGuard (hid_t object) |
| | Helper function for guarding an HDF5 data space with H5Sclose. More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdPropertyListGuard (hid_t object) |
| | Helper function for guarding an HDF5 property list with H5Pclose. More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdAttributeGuard (hid_t object) |
| | Helper function for guarding an HDF5 attribute with H5Aclose. More...
|
| |
| std::pair< hid_t, H5mdGuard > | makeH5mdTypeGuard (hid_t object) |
| | Helper function for guarding an HDF5 type with H5Tclose. More...
|
| |
| IndexMap | mapSelectionToInternalIndices (ArrayRef< const int32_t > selectedIndices) |
| | Map the selected atoms to local internal indices. More...
|
| |
| void | writeAtomicProperties (AtomRange &atomRange, hid_t baseContainer, const std::optional< IndexMap > &selectedAtomsIndexMap=std::nullopt) |
| | Write atomic properties to the H5MD file. More...
|
| |
| void | writeResidueInfo (AtomRange &atomRange, hid_t baseContainer, const std::optional< IndexMap > &selectedAtomsIndexMap=std::nullopt) |
| | Write residue and sequence information to the H5MD file. More...
|
| |
| void | writeBonds (const gmx_mtop_t &topology, hid_t baseContainer, const std::optional< IndexMap > &selectedAtomsIndexMap=std::nullopt) |
| | Write the covalent connectivity to the H5MD file. More...
|
| |
| void | writeDisulfideBonds (const gmx_mtop_t &topology, hid_t baseContainer, const std::optional< IndexMap > &selectedAtomsIndexMap=std::nullopt) |
| | Write the additional annotation of disulfide bonds to the H5MD file. More...
|
| |
| void | labelInternalTopologyVersion (hid_t baseContainer) |
| | Label the version of the internal topology module. More...
|
| |
| void | labelTopologyName (hid_t baseContainer, const char *topName) |
| | Label the name of the simulation system. More...
|
| |
| void | writeMoleculeTypes (hid_t baseContainer, ArrayRef< const gmx_moltype_t > molTypes) |
| | Write the internal representation of molecules molTypes to the HDF5 container baseContainer of GROMACS topology. More...
|
| |
| void | writeMoleculeBlocks (hid_t baseContainer, ArrayRef< const gmx_molblock_t > molBlocks, ArrayRef< const gmx_moltype_t > molTypes) |
| | Write the molecule block information to the HDF5 container of GROMACS topology. More...
|
| |
| template<typename ValueType > |
| hid_t | hdf5DataTypeFor () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| template<> |
| hid_t | hdf5DataTypeFor< int32_t > () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| template<> |
| hid_t | hdf5DataTypeFor< int64_t > () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| template<> |
| hid_t | hdf5DataTypeFor< float > () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| template<> |
| hid_t | hdf5DataTypeFor< double > () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| template<> |
| hid_t | hdf5DataTypeFor< uint32_t > () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| template<> |
| hid_t | hdf5DataTypeFor< uint64_t > () noexcept |
| | Return a handle to a native HDF5 type corresponding to the templated value type. More...
|
| |
| hid_t | hdf5DataTypeForFixedLengthString (const hsize_t maxStringLength) |
| | Return a handle to a HDF5 data type for fixed-length strings. More...
|
| |
|
hid_t | hdf5DataTypeForVariableLengthString () |
| | Return a handle to a HDF5 data type for variable-length strings.
|
| |
| template<typename ValueType > |
| bool | valueTypeIsDataType (const hid_t dataType) noexcept |
| | Return true if the template value type matches the HDF5 data type. More...
|
| |
| template<> |
| bool | valueTypeIsDataType< char * > (const hid_t dataType) noexcept |
| | Return true if the template value type matches the HDF5 data type. More...
|
| |
| template<> |
| bool | valueTypeIsDataType< const char * > (const hid_t dataType) noexcept |
| | Return true if the template value type matches the HDF5 data type. More...
|
| |
| template<> |
| bool | valueTypeIsDataType< std::string > (const hid_t dataType) noexcept |
| | Return true if the template value type matches the HDF5 data type. More...
|
| |
| template<typename ValueType > |
| bool | valueTypeIsDataType (const hid_t dataType, const ArrayRef< const ValueType > gmx_unused valueBuffer) noexcept |
| | Return true if the template value type matches the HDF5 data type. More...
|
| |
| bool | objectExists (const hid_t container, const char *name) noexcept |
| | Return whether object name exists in the given HDF5 container. More...
|
| |
| bool | handleIsValid (const hid_t handle) noexcept |
| | Return whether HDF5 handle is valid. More...
|
| |
| std::optional< std::string > | getHandlePath (const hid_t handle) |
| | Return the full name (HDF-path) of an HDF5 handle. More...
|
| |
| std::optional< std::string > | getHandleBaseName (const hid_t handle) |
| | Return the base name (last component of the HDF-path) of an HDF5 handle. More...
|
| |
| template<typename Iterator , typename Callback > |
| std::pair< size_t, size_t > | estimateBufferSize (Iterator begin, Iterator end, Callback cStringFromIterator) |
| | Iterate over a list of objects and calculate the maximum string length via a callback function. More...
|
| |
| template<typename Iterator , typename Callback > |
| std::vector< char > | packBufferViaIterator (Iterator begin, Iterator end, std::vector< char > &&packingBuffer, const size_t maxStrLength, Callback cStringFromIterator) |
| | Pack a string buffer from a range of iterators and a callback function. 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...
|
| |
|
const char * | enumValueToString (YesNoType enumValue) |
| | Strings for YesNoType.
|
| |
|
std::string | tngDescription () |
| | Returns information for describing the TNG support.
|
| |
| std::string | fmmBackendName (ActiveFmmBackend backend) |
| | Returns the string name for a given FMM backend. More...
|
| |
| std::string | fmmDirectProviderName (FmmDirectProvider directProvider) |
| | Returns the string name for a given FMM direct provider. More...
|
| |
| std::string | exaFmmTreeTypeName (ExaFmmTreeType treeType) |
| | Returns the string name for a given ExaFmm Tree Type. More...
|
| |
| void | add_param (InteractionsOfType *ps, int ai, int aj, ArrayRef< const real > c, const char *s) |
| | Adds an interaction to the list of interactions. More...
|
| |
| void | add_cmap_param (InteractionsOfType *ps, int ai, int aj, int ak, int al, int am, ArrayRef< const real > c, const char *s) |
| | Adds a CMAP interaction to the list of interactions. More...
|
| |
|
void | add_vsite2_param (InteractionsOfType *ps, int ai, int aj, int ak, real c0) |
| |
|
void | add_vsite3_param (InteractionsOfType *ps, int ai, int aj, int ak, int al, real c0, real c1) |
| |
|
void | add_vsite3_atoms (InteractionsOfType *ps, int ai, int aj, int ak, int al, bool bSwapParity) |
| |
|
void | add_vsite4_atoms (InteractionsOfType *ps, int ai, int aj, int ak, int al, int am) |
| |
|
int | search_jtype (const PreprocessResidue &localPpResidue, const char *name, bool bNterm) |
| |
|
static void | gen_waterhydrogen (int nh, rvec xa[], rvec xh[], int *l) |
| |
|
void | calc_h_pos (int nht, rvec xa[], rvec xh[], int *l) |
| |
|
static int | div_nsteps (int nsteps, int nst) |
| |
|
double | compute_io (const t_inputrec *ir, int natoms, const SimulationGroups &groups, int nrener, int nrepl) |
| | Return an estimate of the total output in MiB to be written from this simulation.
|
| |
|
static int | round_check (real r, int limit, InteractionFunction ftype, const char *name) |
| |
|
static void | set_ljparams (CombinationRule comb, double reppow, double v, double w, real *c6, real *c12) |
| |
|
static int | assign_param (InteractionFunction ftype, t_iparams *newparam, ArrayRef< const real > old, CombinationRule comb, double reppow) |
| |
|
static int | enter_params (gmx_ffparams_t *ffparams, InteractionFunction ftype, ArrayRef< const real > forceparams, CombinationRule comb, real reppow, int start, bool bAppend) |
| |
|
static void | append_interaction (InteractionList *ilist, int type, ArrayRef< const int > a) |
| |
|
static void | enter_function (const InteractionsOfType *p, InteractionFunction ftype, CombinationRule comb, real reppow, gmx_ffparams_t *ffparams, InteractionList *il, bool bNB, bool bAppend) |
| |
|
bool | shouldConvertInteractionType (InteractionFunction ftype) |
| | Whether interactions of type ftype should have parameters converted.
|
| |
| void | convertInteractionsOfType (int atnr, const EnumerationArray< InteractionFunction, InteractionsOfType > &nbtypes, ArrayRef< const MoleculeInformation > mi, const MoleculeInformation *intermolecular_interactions, CombinationRule comb, double reppow, real fudgeQQ, gmx_mtop_t *mtop) |
| | Convert the raw arrays of parameters read from the topology file to those which match the interaction type and fill into mtop. More...
|
| |
|
static real | calc_mass (t_atoms *atoms, gmx_bool bGetMass, AtomProperties *aps) |
| |
|
static real | calc_geom (int isize, const int *index, rvec *x, rvec geom_center, rvec minval, rvec maxval, gmx_bool bDiam) |
| |
|
static void | center_conf (int natom, rvec *x, rvec center, rvec geom_cent) |
| |
|
static void | scale_conf (int natom, rvec x[], matrix box, const rvec scale) |
| |
|
static void | read_bfac (const char *fn, int *n_bfac, double **bfac_val, int **bfac_nr) |
| |
|
static void | set_pdb_conf_bfac (int natoms, int nres, t_atoms *atoms, int n_bfac, double *bfac, int *bfac_nr, gmx_bool peratom) |
| |
|
static void | pdb_legend (FILE *out, int natoms, int nres, t_atoms *atoms, rvec x[]) |
| |
|
static void | visualize_images (const char *fn, PbcType pbcType, matrix box) |
| |
|
static void | visualize_box (FILE *out, int a0, int r0, matrix box, const rvec gridsize) |
| |
|
static void | calc_rotmatrix (rvec principal_axis, rvec targetvec, matrix rotmatrix) |
| |
|
static void | renum_resnr (t_atoms *atoms, int isize, const int *index, int resnr_start) |
| |
|
int | gmx_editconf (int argc, char *argv[]) |
| |
|
std::filesystem::path | fflib_forcefield_dir_ext () |
| |
|
std::filesystem::path | fflib_forcefield_itp () |
| |
|
std::filesystem::path | fflib_forcefield_doc () |
| |
|
std::filesystem::path | fflib_filename_base (const std::filesystem::path &filename) |
| |
std::vector
< std::filesystem::path > | fflib_search_file_end (const std::filesystem::path &ffdir, const char *file_end, bool bFatalError) |
| |
|
std::vector< DataFileInfo > | fflib_enumerate_forcefields () |
| | Enumerates forcefields in the data directories.
|
| |
|
bool | fflib_fexist (const std::filesystem::path &file) |
| |
|
FILE * | fflib_open (const std::filesystem::path &file) |
| |
|
static bool | was_dihedral_set_in_rtp (const InteractionOfType &dih) |
| |
|
static bool | acomp (const InteractionOfType &a1, const InteractionOfType &a2) |
| |
|
static bool | pcomp (const InteractionOfType &a1, const InteractionOfType &a2) |
| |
|
static bool | dcomp (const InteractionOfType &d1, const InteractionOfType &d2) |
| |
|
static bool | is_dihedral_on_same_bond (const InteractionOfType &p1, const InteractionOfType &p2) |
| |
|
static bool | preq (const InteractionOfType &p1, const InteractionOfType &p2) |
| |
|
static void | rm2par (std::vector< InteractionOfType > *p, peq eq) |
| |
|
static void | cppar (ArrayRef< const InteractionOfType > types, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, InteractionFunction ftype) |
| |
|
static bool | idcomp (const InteractionOfType &a, const InteractionOfType &b) |
| |
|
static void | sort_id (ArrayRef< InteractionOfType > ps) |
| |
|
static int | n_hydro (ArrayRef< const int > a, char ***atomname) |
| |
|
static bool | dihedralIsOnSameBondAsImproper (const InteractionOfType &dihedral, ArrayRef< const InteractionOfType > improperDihedrals) |
| |
static std::vector
< InteractionOfType > | clean_dih (ArrayRef< const InteractionOfType > originalDihedrals, ArrayRef< const InteractionOfType > improperDihedrals, t_atoms *atoms, bool bKeepAllGeneratedDihedrals, bool bRemoveDihedralIfWithImproper) |
| |
static std::vector
< InteractionOfType > | get_impropers (t_atoms *atoms, ArrayRef< MoleculePatchDatabase > globalPatches, bool bAllowMissing, ArrayRef< const int > cyclicBondsIndex, ArrayRef< const DisulfideBond > ssbonds) |
| |
|
static int | nb_dist (t_nextnb *nnb, int ai, int aj) |
| |
|
static bool | is_hydro (t_atoms *atoms, int ai) |
| |
|
static void | get_atomnames_min (int n, ArrayRef< std::string > anm, int resind, t_atoms *atoms, ArrayRef< const int > a) |
| |
|
static void | gen_excls (t_atoms *atoms, t_excls *excls, ArrayRef< MoleculePatchDatabase > globalPatches, bool bAllowMissing, ArrayRef< const int > cyclicBondsIndex) |
| |
|
static void | remove_excl (t_excls *excls, int remove) |
| |
|
static void | clean_excls (t_nextnb *nnb, int nrexcl, t_excls excls[]) |
| |
| void | gen_pad (t_atoms *atoms, ArrayRef< const PreprocessResidue > rtpFFDB, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, t_excls excls[], ArrayRef< MoleculePatchDatabase > globalPatches, bool bAllowMissing, ArrayRef< const int > cyclicBondsIndex, ArrayRef< const DisulfideBond > ssbonds) |
| | Generate pairs, angles and dihedrals from .rtp settings. More...
|
| |
|
static void | low_mspeed (real tempi, gmx_mtop_t *mtop, rvec v[], ThreeFry2x64<> *rng, const MDLogger &logger) |
| |
| void | maxwell_speed (real tempi, int seed, gmx_mtop_t *mtop, rvec v[], const MDLogger &logger) |
| | Generate Maxwellian velocities. More...
|
| |
|
static real | calc_cm (int natoms, const real mass[], rvec x[], rvec v[], rvec xcm, rvec vcm, rvec acm, matrix L) |
| |
|
void | stop_cm (const MDLogger gmx_unused &logger, int natoms, real mass[], rvec x[], rvec v[]) |
| |
| void | stop_cm (const MDLogger &logger, int natoms, real mass[], rvec x[], rvec v[]) |
| | Remove the center of mass motion in a set of coordinates. More...
|
| |
|
static int | ddb_name2dir (char *name) |
| |
|
static void | read_vsite_database (const std::filesystem::path &ddbname, std::vector< VirtualSiteConfiguration > *vsiteconflist, std::vector< VirtualSiteTopology > *vsitetoplist) |
| |
|
static int | nitrogen_is_planar (ArrayRef< const VirtualSiteConfiguration > vsiteconflist, const std::string &atomtype) |
| |
|
static std::string | get_dummymass_name (ArrayRef< const VirtualSiteConfiguration > vsiteconflist, const std::string &atom, const std::string &nextheavy) |
| |
|
static real | get_ddb_bond (ArrayRef< const VirtualSiteTopology > vsitetop, const std::string &res, const std::string &atom1, const std::string &atom2) |
| |
|
static real | get_ddb_angle (ArrayRef< const VirtualSiteTopology > vsitetop, const std::string &res, const std::string &atom1, const std::string &atom2, const std::string &atom3) |
| |
|
static void | count_bonds (int atom, InteractionsOfType *psb, char ***atomname, int *nrbonds, int *nrHatoms, int Hatoms[], int *Heavy, int *nrheavies, int heavies[]) |
| |
|
static void | print_bonds (FILE *fp, int o2n[], int nrHatoms, const int Hatoms[], int Heavy, int nrheavies, const int heavies[]) |
| |
|
static int | get_atype (int atom, t_atoms *at, ArrayRef< const PreprocessResidue > rtpFFDB, const ResidueTypeMap &residueTypeMap) |
| |
|
static int | vsite_nm2type (const char *name, PreprocessingAtomTypes *atype) |
| |
|
static real | get_amass (int atom, t_atoms *at, ArrayRef< const PreprocessResidue > rtpFFDB, const ResidueTypeMap &residueTypeMap) |
| |
|
static void | my_add_param (InteractionsOfType *plist, int ai, int aj, real b) |
| |
|
static void | add_vsites (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, ArrayRef< const VsiteTypeAndSign > vsite_type, int Heavy, int nrHatoms, int Hatoms[], int nrheavies, int heavies[]) |
| |
|
static int | gen_vsites_6ring (t_atoms *at, ArrayRef< VsiteTypeAndSign > vsite_type, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, int nrfound, int *ats, real bond_cc, real bond_ch, real xcom, bool bDoZ) |
| |
|
static int | gen_vsites_phe (t_atoms *at, ArrayRef< VsiteTypeAndSign > vsite_type, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, int nrfound, int *ats, ArrayRef< const VirtualSiteTopology > vsitetop) |
| |
|
static void | calc_vsite3_param (real xd, real yd, real xi, real yi, real xj, real yj, real xk, real yk, real *a, real *b) |
| |
|
static int | gen_vsites_trp (PreprocessingAtomTypes *atype, std::vector< RVec > *newx, t_atom *newatom[], char ***newatomname[], int *o2n[], std::vector< VsiteTypeAndSign > *newvsite_type, t_symtab *symtab, int *nadd, ArrayRef< const RVec > x, t_atoms *at, ArrayRef< VsiteTypeAndSign > vsite_type, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, int nrfound, int *ats, int add_shift, ArrayRef< const VirtualSiteTopology > vsitetop) |
| |
|
static int | gen_vsites_tyr (PreprocessingAtomTypes *atype, std::vector< RVec > *newx, t_atom *newatom[], char ***newatomname[], int *o2n[], std::vector< VsiteTypeAndSign > *newvsite_type, t_symtab *symtab, int *nadd, ArrayRef< const RVec > x, t_atoms *at, ArrayRef< VsiteTypeAndSign > vsite_type, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, int nrfound, int *ats, int add_shift, ArrayRef< const VirtualSiteTopology > vsitetop) |
| |
|
static int | gen_vsites_his (t_atoms *at, ArrayRef< VsiteTypeAndSign > vsite_type, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, int nrfound, int *ats, ArrayRef< const VirtualSiteTopology > vsitetop) |
| |
|
static bool | is_vsite (const std::optional< InteractionFunction > &vsiteType) |
| | Returns true when vsiteType is set and the value is an interaction type that is a vsite.
|
| |
|
void | do_vsites (ArrayRef< const PreprocessResidue > rtpFFDB, PreprocessingAtomTypes *atype, t_atoms *at, t_symtab *symtab, std::vector< RVec > *x, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, std::vector< VsiteTypeAndSign > *vsiteTypeAndSign, real mHmult, bool bVSiteAromatics, const std::filesystem::path &ffdir) |
| | Turn all hydrogens that can be turned into virtual sites into virtual sites.
|
| |
| void | do_h_mass (const InteractionsOfType &psb, ArrayRef< const VsiteTypeAndSign > vsiteType, t_atoms *at, real mHmult, bool deuterate) |
| | Optionally, change masses of hydrogens. More...
|
| |
|
static void | rand_rot (int natoms, rvec x[], rvec v[], vec4 xrot[], vec4 vrot[], DefaultRandomEngine *rng, const rvec max_rot) |
| |
|
int | gmx_genconf (int argc, char *argv[]) |
| |
|
static void | copy_atom (const t_atoms *atoms1, int a1, t_atoms *atoms2, int a2, t_symtab *symtab) |
| |
|
static std::optional< int > | pdbasearch_atom (const char *name, int resind, const t_atoms *pdba, const char *searchtype, bool bAllowMissing, ArrayRef< const int > cyclicBondsIndex) |
| |
|
static bool | hasNumericSuffixAfterStem (const std::string &atomName, const std::string &stem) |
| |
|
static int | numericSuffixAfterStem (const std::string &atomName, const std::string &stem) |
| |
|
static bool | shouldLookupHydrogenNameFromResidueTopology (const MoleculePatch &patch) |
| |
static std::optional< const
char * > | bondedAtomNameIfBondedToAttachmentAtom (const BondedInteraction &bond, const MoleculePatch &patch) |
| |
|
static bool | matchesHydrogenNameFromResidueTopology (const char *bondedAtomName, const MoleculePatch &patch) |
| |
|
static void | sortHydrogenNamesByNumericSuffix (std::vector< std::string > *names, const MoleculePatch &patch) |
| |
|
static std::vector< std::string > | findHydrogenAtomNamesInResidue (const PreprocessResidue &residueTopology, const MoleculePatch &patch) |
| |
|
static bool | patchAppliesToLocalAtom (const MoleculePatch &patch, const std::string &localAtomName) |
| |
| static void | hacksearch_atom (int *ii, int *jj, const char *name, ArrayRef< const std::vector< MoleculePatch >> patches, int resind, const t_atoms *pdba) |
| | Return the index of the first atom whose residue index matches and which has a patch with the given name. More...
|
| |
static std::vector
< MoleculePatchDatabase > | getMoleculePatchDatabases (const t_atoms *pdba, ArrayRef< const MoleculePatchDatabase > globalPatches, int nterpairs, ArrayRef< MoleculePatchDatabase *const > ntdb, ArrayRef< MoleculePatchDatabase *const > ctdb, ArrayRef< const int > rN, ArrayRef< const int > rC) |
| |
|
static void | expand_hackblocks_one (const MoleculePatchDatabase &newPatch, const std::string localAtomName, const PreprocessResidue &residueTopology, std::vector< MoleculePatch > *globalPatches, bool bN, bool bC) |
| |
|
static void | expand_hackblocks (const t_atoms *pdba, ArrayRef< const MoleculePatchDatabase > hb, ArrayRef< const PreprocessResidue > residueTopology, ArrayRef< std::vector< MoleculePatch >> patches, int nterpairs, ArrayRef< const int > rN, ArrayRef< const int > rC) |
| |
|
static int | check_atoms_present (const t_atoms *pdba, ArrayRef< std::vector< MoleculePatch >> patches, ArrayRef< const int > cyclicBondsIndex) |
| |
|
static void | calc_all_pos (const t_atoms *pdba, ArrayRef< const RVec > x, ArrayRef< std::vector< MoleculePatch >> patches, bool bCheckMissing, ArrayRef< const int > cyclicBondsIndex) |
| |
|
static int | add_h_low (t_atoms **initialAtoms, t_atoms **modifiedAtoms, std::vector< RVec > *xptr, ArrayRef< const MoleculePatchDatabase > globalPatches, ArrayRef< const PreprocessResidue > residueTopology, t_symtab *symtab, const int nterpairs, ArrayRef< MoleculePatchDatabase *const > ntdb, ArrayRef< MoleculePatchDatabase *const > ctdb, ArrayRef< const int > rN, ArrayRef< const int > rC, const bool bCheckMissing, ArrayRef< const int > cyclicBondsIndex) |
| |
| int | add_h (t_atoms **initialAtoms, t_atoms **localAtoms, std::vector< gmx::RVec > *xptr, gmx::ArrayRef< const MoleculePatchDatabase > globalPatches, gmx::ArrayRef< const PreprocessResidue > residueTopology, t_symtab *symtab, int nterpairs, gmx::ArrayRef< MoleculePatchDatabase *const > ntdb, gmx::ArrayRef< MoleculePatchDatabase *const > ctdb, gmx::ArrayRef< const int > rN, gmx::ArrayRef< const int > rC, bool bMissing, gmx::ArrayRef< const int > cyclicBondsIndex) |
| | Generate hydrogen atoms and N and C terminal patches. More...
|
| |
| static bool | groupsCloserThanCutoffWithPbc (t_pbc *pbc, rvec x[], ArrayRef< const int > smallerGroupIndices, ArrayRef< const int > largerGroupIndices, real minimumDistance) |
| | Return whether any atoms of two groups are below minimum distance. More...
|
| |
| static std::vector< int > | solventMoleculeIndices (int solventMoleculeNumber, int numberAtomsPerSolventMolecule, ArrayRef< const int > solventGroupIndex) |
| | Calculate the solvent molecule atom indices from molecule number. More...
|
| |
|
static void | insert_ion (int nsa, std::vector< int > *solventMoleculesForReplacement, int repl[], ArrayRef< const int > index, rvec x[], t_pbc *pbc, int sign, int q, const char *ionname, t_atoms *atoms, real rmin, std::vector< int > *notSolventGroup) |
| |
|
static char * | aname (const char *mname) |
| |
|
static void | sort_ions (int nsa, int nw, const int repl[], ArrayRef< const int > index, t_atoms *atoms, rvec x[], char **pptr, char **nptr, char **paptr, char **naptr) |
| |
|
static void | update_topol (const char *topinout, int p_num, int n_num, const char *p_name, const char *n_name, char *grpname) |
| |
| static std::vector< int > | invertIndexGroup (int nrAtoms, std::vector< int > indexGroup) |
| | Return all atom indices that do not belong to an index group. More...
|
| |
|
int | gmx_genion (int argc, char *argv[]) |
| |
|
int | gmx_genrestr (int argc, char *argv[]) |
| |
|
static bool | is_word_end (char c) |
| |
|
static const char * | strstrw (const char *buf, const char *word) |
| |
|
static bool | find_directive (const char *buf, std::string *name, std::string *val) |
| |
|
static bool | is_ifdeffed_out (ArrayRef< const int > ifdefs) |
| |
|
static void | add_include (std::vector< std::filesystem::path > *includes, const std::filesystem::path &includePath) |
| |
|
static void | add_define (std::vector< t_define > *defines, const std::string &name, const char *value) |
| |
|
static int | cpp_open_file (const std::filesystem::path &filenm, CPreProcessor_t *handle, char **cppopts, std::shared_ptr< std::vector< t_define >> *definesFromParent, std::shared_ptr< std::vector< std::filesystem::path >> *includesFromParent) |
| |
|
int | cpp_open_file (const std::filesystem::path &filenm, CPreProcessor_t *handle, char **cppopts) |
| |
|
static int | process_directive (CPreProcessor_t *handlep, const std::string &dname, const std::string &dval) |
| |
|
int | cpp_read_line (CPreProcessor_t *handlep, int n, char buf[]) |
| |
|
std::filesystem::path | cpp_cur_file (const CPreProcessor_t *handlep) |
| |
|
int | cpp_cur_linenr (const CPreProcessor_t *handlep) |
| |
|
int | cpp_close_file (CPreProcessor_t *handlep) |
| |
|
const std::string * | cpp_find_define (const CPreProcessor_t *handlep, const std::string &defineName) |
| |
|
void | cpp_done (CPreProcessor_t handle) |
| |
|
char * | cpp_error (CPreProcessor_t *handlep, int status) |
| |
|
std::string | checkAndWarnForUnusedDefines (const CPreProcessor &handle) |
| |
|
static int | search_atomtypes (const PreprocessingAtomTypes *ga, int *n, ArrayRef< int > typelist, int thistype, ArrayRef< const InteractionOfType > interactionTypes, InteractionFunction ftype) |
| |
|
static int | bond_sort (const void *a, const void *b) |
| |
|
static int | compare_int (const void *a, const void *b) |
| |
|
void | init_nnb (t_nextnb *nnb, int nr, int nrex) |
| |
|
static void | add_nnb (t_nextnb *nnb, int nre, int i, int j) |
| |
|
void | done_nnb (t_nextnb *nnb) |
| |
|
static void | nnb2excl (t_nextnb *nnb, ListOfLists< int > *excls) |
| |
| static bool | atom_is_present_in_nnb (const t_nextnb *nnb, int atom, int highest_order, int query) |
| | Return true of neighbor is already present in some exclusion level. More...
|
| |
|
static void | do_gen (int nrbonds, sortable *s, t_nextnb *nnb) |
| |
|
static void | add_b (InteractionsOfType *bonds, int *nrf, sortable *s) |
| |
|
void | gen_nnb (t_nextnb *nnb, EnumerationArray< InteractionFunction, InteractionsOfType > &plist) |
| |
|
static void | sort_and_purge_nnb (t_nextnb *nnb) |
| |
|
void | generate_excl (int nrexcl, int nratoms, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, ListOfLists< int > *excls) |
| |
| int | gmx_grompp (int argc, char *argv[]) |
| |
|
bool | is_int (double x) |
| |
|
void | print_ab (FILE *out, const MoleculePatch &hack, const char *nname) |
| |
|
void | read_ab (char *line, const std::filesystem::path &fn, MoleculePatch *hack) |
| |
|
static void | read_h_db_file (const std::filesystem::path &hfn, std::vector< MoleculePatchDatabase > *globalPatches) |
| |
| int | read_h_db (const std::filesystem::path &ffdir, std::vector< MoleculePatchDatabase > *globalPatches) |
| | Read the databse from hdb file(s). More...
|
| |
ArrayRef< const
MoleculePatchDatabase >
::iterator | search_h_db (ArrayRef< const MoleculePatchDatabase > globalPatches, const char *key) |
| | Search for an entry. More...
|
| |
|
const char * | enumValueToString (BondedTypes enumValue) |
| | Names for interaction type entries.
|
| |
|
int | enumValueToNumIAtoms (BondedTypes enumValue) |
| | Numbers for atoms in the interactions.
|
| |
| void | clearModificationBlock (MoleculePatchDatabase *globalPatches) |
| | Reset modification block. More...
|
| |
|
static bool | contains_char (const BondedInteraction &s, char c) |
| |
|
static int | rbonded_find_atoms_in_list (const BondedInteraction &b, ArrayRef< const BondedInteraction > blist, int natoms) |
| |
| bool | mergeBondedInteractionList (ArrayRef< const BondedInteractionList > s, ArrayRef< BondedInteractionList > d, bool bMin, bool bPlus) |
| | Add bond information in s to d. More...
|
| |
| void | copyPreprocessResidues (const PreprocessResidue &s, PreprocessResidue *d, t_symtab *symtab) |
| | Copy residue information. More...
|
| |
| void | mergeAtomModifications (const MoleculePatchDatabase &s, MoleculePatchDatabase *d) |
| | Add the individual modifications in s to d. More...
|
| |
| void | mergeAtomAndBondModifications (const MoleculePatchDatabase &s, MoleculePatchDatabase *d) |
| | Add the individual modifications in s to d. More...
|
| |
| void | copyModificationBlocks (const MoleculePatchDatabase &s, MoleculePatchDatabase *d) |
| | Copy all information from datastructure. More...
|
| |
|
static int | in_strings (char *key, int nstr, const char **str) |
| |
|
static bool | hbond (rvec x[], int i, int j, real distance) |
| |
|
static void | chk_allhb (t_atoms *pdba, rvec x[], t_blocka *hb, const bool donor[], const bool accept[], real dist) |
| |
|
static bool | chk_hbonds (int i, t_atoms *pdba, rvec x[], const bool ad[], bool hbond[], rvec xh, real angle, real dist) |
| |
|
static void | calc_ringh (rvec xattach, rvec xb, rvec xc, rvec xh) |
| |
|
void | set_histp (t_atoms *pdba, rvec *x, t_symtab *symtab, real angle, real dist) |
| |
|
static void | center_molecule (ArrayRef< RVec > x) |
| |
|
static void | generate_trial_conf (ArrayRef< RVec > xin, const rvec offset, RotationType enum_rot, DefaultRandomEngine *rng, std::vector< RVec > *xout) |
| |
|
static bool | isInsertionAllowed (AnalysisNeighborhoodSearch *search, const std::vector< real > &exclusionDistances, const std::vector< RVec > &x, const std::vector< real > &exclusionDistances_insrt, const t_atoms &atoms, const std::set< int > &removableAtoms, AtomsRemover *remover) |
| |
|
static void | insert_mols (int nmol_insrt, int ntry, int seed, real defaultDistance, real scaleFactor, t_atoms *atoms, t_symtab *symtab, std::vector< RVec > *x, const std::set< int > &removableAtoms, const t_atoms &atoms_insrt, ArrayRef< RVec > x_insrt, PbcType pbcType, matrix box, const std::string &posfn, const rvec deltaR, RotationType enum_rot) |
| |
| std::vector< real > | makeExclusionDistances (const t_atoms *a, AtomProperties *aps, real defaultDistance, real scaleFactor) |
| | Allocate and fill an array of inter-atomic half distances. 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...
|
| |
|
static void | rd_nm2type_file (const std::filesystem::path &filename, int *nnm, t_nm2type **nmp) |
| |
|
t_nm2type * | rd_nm2type (const std::filesystem::path &ffdir, int *nnm) |
| |
|
void | dump_nm2type (FILE *fp, int nnm, t_nm2type nm2t[]) |
| |
|
static int | match_str (const char *atom, const char *template_string) |
| |
|
int | nm2type (int nnm, t_nm2type nm2t[], t_atoms *atoms, PreprocessingAtomTypes *atype, int *nbonds, InteractionsOfType *bonds) |
| |
|
const char * | enumValueToString (HistidineStates enumValue) |
| |
|
static int | missing_atoms (const PreprocessResidue *rp, int resind, t_atoms *at, int i0, int i, const MDLogger &logger) |
| |
|
static std::filesystem::path | choose_ff_impl (const char *ffsel, char *forcefield, int ff_maxlen, const MDLogger &logger) |
| |
|
std::filesystem::path | choose_ff (const char *ffsel, char *forcefield, int ff_maxlen, const MDLogger &logger) |
| |
|
void | choose_watermodel (const char *wmsel, const std::filesystem::path &ffdir, char **watermodel, const MDLogger &logger) |
| |
|
static int | name2type (t_atoms *at, ArrayRef< const PreprocessResidue > usedPpResidues, const ResidueTypeMap &residueTypeMap, const MDLogger &logger) |
| |
|
static void | print_top_heavy_H (FILE *out, real mHmult) |
| |
|
void | print_top_comment (FILE *out, const std::filesystem::path &filename, const std::filesystem::path &ffdir, bool bITP) |
| |
|
void | print_top_header (FILE *out, const std::filesystem::path &filename, bool bITP, const std::filesystem::path &ffdir, real mHmult) |
| |
|
static void | print_top_posre (FILE *out, const std::filesystem::path &pr) |
| |
|
static void | print_top_water (FILE *out, const std::filesystem::path &ffdir, const char *water) |
| |
|
static void | print_top_system (FILE *out, const char *title) |
| |
|
void | print_top_mols (FILE *out, const char *title, const std::filesystem::path &ffdir, const char *water, ArrayRef< const std::filesystem::path > incls, ArrayRef< const t_mols > mols) |
| |
|
void | write_top (FILE *out, const std::filesystem::path &pr, const char *molname, t_atoms *at, bool bRTPresname, ArrayRef< const int > bts, const EnumerationArray< InteractionFunction, InteractionsOfType > &plist, t_excls excls[], PreprocessingAtomTypes *atype, int nrexcl) |
| |
|
static void | do_ssbonds (InteractionsOfType *ps, t_atoms *atoms, ArrayRef< const DisulfideBond > ssbonds, bool bAllowMissing) |
| |
|
static void | at2bonds (InteractionsOfType *psb, ArrayRef< MoleculePatchDatabase > globalPatches, t_atoms *atoms, ArrayRef< const RVec > x, real long_bond_dist, real short_bond_dist, ArrayRef< const int > cyclicBondsIndex, const MDLogger &logger) |
| |
|
static bool | pcompar (const InteractionOfType &a, const InteractionOfType &b) |
| |
|
static void | clean_bonds (InteractionsOfType *ps, const MDLogger &logger) |
| |
|
void | print_sums (const t_atoms *atoms, bool bSystem, const MDLogger &logger) |
| |
|
static void | check_restp_type (const char *name, int t1, int t2) |
| |
|
static void | check_restp_types (const PreprocessResidue &r0, const PreprocessResidue &r1) |
| |
|
static void | add_atom_to_restp (PreprocessResidue *usedPpResidues, t_symtab *symtab, int at_start, const MoleculePatch *patch) |
| |
|
void | get_hackblocks_rtp (std::vector< MoleculePatchDatabase > *globalPatches, std::vector< PreprocessResidue > *usedPpResidues, ArrayRef< const PreprocessResidue > rtpFFDB, int nres, t_resinfo *resinfo, int nterpairs, t_symtab *symtab, ArrayRef< MoleculePatchDatabase * > ntdb, ArrayRef< MoleculePatchDatabase * > ctdb, ArrayRef< const int > rn, ArrayRef< const int > rc, bool bAllowMissing, const MDLogger &logger) |
| |
|
static bool | atomname_cmp_nr (const char *anm, const MoleculePatch *patch, int *nr) |
| |
|
static bool | match_atomnames_with_rtp_atom (t_atoms *pdba, ArrayRef< RVec > x, t_symtab *symtab, int atind, PreprocessResidue *localPpResidue, const MoleculePatchDatabase &singlePatch, bool bVerbose, const MDLogger &logger) |
| |
|
void | match_atomnames_with_rtp (ArrayRef< PreprocessResidue > usedPpResidues, ArrayRef< MoleculePatchDatabase > globalPatches, t_atoms *pdba, t_symtab *symtab, ArrayRef< RVec > x, bool bVerbose, const MDLogger &logger) |
| |
|
static void | gen_cmap (InteractionsOfType *psb, ArrayRef< const PreprocessResidue > usedPpResidues, t_atoms *atoms, ArrayRef< const int > cyclicBondsIndex, const MDLogger &logger) |
| |
|
void | pdb2top (FILE *top_file, const std::filesystem::path &posre_fn, const char *molname, t_atoms *atoms, std::vector< RVec > *x, PreprocessingAtomTypes *atype, t_symtab *tab, ArrayRef< const PreprocessResidue > rtpFFDB, ArrayRef< PreprocessResidue > usedPpResidues, ArrayRef< MoleculePatchDatabase > globalPatches, bool bAllowMissing, bool bVsites, bool bVsiteAromatics, const std::filesystem::path &ffdir, real mHmult, ArrayRef< const DisulfideBond > ssbonds, real long_bond_dist, real short_bond_dist, bool bDeuterate, bool bCmap, bool bRenumRes, bool bRTPresname, ArrayRef< const int > cyclicBondsIndex, const MDLogger &logger) |
| |
|
static void | atom_not_found (int fatal_errno, const char *file, int line, const char *atomname, int resind, const char *resname, const char *bondtype, bool bAllowMissing) |
| |
| std::optional< int > | search_atom (const char *atomName, int start, const t_atoms *atoms, const char *bondtype, bool bAllowMissing, ArrayRef< const int > cyclicBondsIndex) |
| | Search for an atom named atomName in atoms. More...
|
| |
|
std::optional< int > | search_res_atom (const char *atomName, int resind, const t_atoms *atoms, const char *bondtype, bool bAllowMissing) |
| |
|
void | init_inputrec_strings () |
| | Initialise object to hold strings parsed from an .mdp file.
|
| |
|
void | done_inputrec_strings () |
| | Clean up object that holds strings parsed from an .mdp file.
|
| |
| void | check_ir (const char *mdparin, MDModules *mdModules, t_inputrec *ir, t_gromppopts *opts, WarningHandler *wi) |
| | Performs all validation on ir that can be done without index groups and topology. More...
|
| |
| void | get_ir (const char *mdparin, const char *mdparout, MDModules *mdModules, t_inputrec *ir, t_gromppopts *opts, WriteMdpHeader writeMdpHeader, WarningHandler *wi) |
| | Parse input, apply defaults, prepare mdp output. More...
|
| |
|
int | getGroupIndex (const std::string &s, ArrayRef< const IndexGroup > indexGroups) |
| | Returns the index of string s in indexGroups or exit with a verbose fatal error when not found.
|
| |
|
void | do_index (const char *mdparin, const std::optional< std::filesystem::path > &ndx, gmx_mtop_t *mtop, bool bVerbose, const MDModulesNotifiers &mdModulesNotifiers, t_inputrec *ir, WarningHandler *wi) |
| |
|
void | processConstantAcceleration (t_inputrec *ir, const gmx_mtop_t &sys) |
| | Processes constant acceleration options.
|
| |
|
void | triple_check (const char *mdparin, const t_inputrec &ir, const gmx_mtop_t &sys, WarningHandler *wi) |
| | Do checks that can only be done when a complete topology is available.
|
| |
|
void | double_check (t_inputrec *ir, matrix box, bool bHasNormalConstraints, bool bHasAnyConstraints, WarningHandler *wi) |
| | Do checks that are relevant when constraints are present.
|
| |
|
std::vector< std::string > | read_pullparams (std::vector< t_inpfile > *inp, pull_params_t *pull, WarningHandler *wi) |
| |
|
void | process_pull_groups (ArrayRef< t_pull_group > pullGroups, ArrayRef< const std::string > pullGroupNames, ArrayRef< const IndexGroup > indexGroups) |
| |
|
void | checkPullCoords (ArrayRef< const t_pull_group > pullGroups, ArrayRef< const t_pull_coord > pullCoords) |
| |
|
pull_t * | set_pull_init (t_inputrec *ir, const gmx_mtop_t &mtop, ArrayRef< const RVec > x, matrix box, real lambda, WarningHandler *wi) |
| |
|
std::vector< std::string > | read_rotparams (std::vector< t_inpfile > *inp, t_rot *rot, WarningHandler *wi) |
| |
|
void | make_rotation_groups (t_rot *rot, ArrayRef< const std::string > rotateGroupNames, ArrayRef< const IndexGroup > indexGroups) |
| |
|
void | set_reference_positions (t_rot *rot, rvec *x, matrix box, const char *fn, bool bSet, WarningHandler *wi) |
| |
| PreprocessingAtomTypes | read_atype (const std::filesystem::path &ffdir) |
| | Read atom types into database. More...
|
| |
|
static void | print_resatoms (FILE *out, const PreprocessingAtomTypes &atype, const PreprocessResidue &rtpDBEntry) |
| |
|
static bool | read_atoms (FILE *in, char *line, PreprocessResidue *r0, t_symtab *tab, PreprocessingAtomTypes *atype) |
| |
|
static bool | read_bondeds (BondedTypes bt, FILE *in, char *line, PreprocessResidue *rtpDBEntry) |
| |
|
static void | print_resbondeds (FILE *out, BondedTypes bt, const PreprocessResidue &rtpDBEntry) |
| |
|
static void | check_rtp (ArrayRef< const PreprocessResidue > rtpDBEntry, const std::filesystem::path &libfn, const MDLogger &logger) |
| |
|
static std::optional< BondedTypes > | get_bt (const char *header) |
| |
|
static void | print_resall_header (FILE *out, ArrayRef< const PreprocessResidue > rtpDBEntry) |
| |
|
static void | print_resall_log (const MDLogger &logger, ArrayRef< const PreprocessResidue > rtpDBEntry) |
| |
| void | print_resall (FILE *out, gmx::ArrayRef< const PreprocessResidue > rtpDBEntry, const PreprocessingAtomTypes &atype) |
| | Print out database. More...
|
| |
| void | readResidueDatabase (const std::filesystem::path &resdb, std::vector< PreprocessResidue > *rtpDBEntry, PreprocessingAtomTypes *atype, t_symtab *tab, const gmx::MDLogger &logger, bool bAllowOverrideRTP) |
| | Read in database, append to exisiting. More...
|
| |
|
static bool | is_sign (char c) |
| |
|
static int | neq_str_sign (const char *a1, const char *a2) |
| |
| std::string | searchResidueDatabase (const std::string &key, gmx::ArrayRef< const PreprocessResidue > rtpDBEntry, const gmx::MDLogger &logger) |
| | Search for an entry in the rtp database. More...
|
| |
ArrayRef< const
PreprocessResidue >
::const_iterator | getDatabaseEntry (const std::string &rtpname, gmx::ArrayRef< const PreprocessResidue > rtpDBEntry) |
| | Returns matching entry in database. More...
|
| |
|
static void | sort_molecule (t_atoms **atoms_solvt, t_atoms **newatoms, std::vector< RVec > *x, std::vector< RVec > *v) |
| |
|
static void | rm_res_pbc (const t_atoms *atoms, std::vector< RVec > *x, matrix box) |
| |
| static void | replicateSolventBox (t_atoms *atoms, std::vector< RVec > *x, std::vector< RVec > *v, std::vector< real > *r, const matrix box, const matrix boxTarget) |
| | Generates a solvent configuration of desired size by stacking solvent boxes. More...
|
| |
| static void | removeSolventBoxOverlap (t_atoms *atoms, std::vector< RVec > *x, std::vector< RVec > *v, std::vector< real > *r, const t_pbc &pbc) |
| | Removes overlap of solvent atoms across the edges. More...
|
| |
| static void | removeSolventOutsideShell (t_atoms *atoms, std::vector< RVec > *x_solvent, std::vector< RVec > *v_solvent, std::vector< real > *r, const t_pbc &pbc, const std::vector< RVec > &x_solute, real rshell) |
| | Remove all solvent molecules outside a give radius from the solute. More...
|
| |
| static void | removeSolventOverlappingWithSolute (t_atoms *atoms, std::vector< RVec > *x, std::vector< RVec > *v, std::vector< real > *r, const t_pbc &pbc, const std::vector< RVec > &x_solute, const std::vector< real > &r_solute) |
| | Removes solvent molecules that overlap with the solute. More...
|
| |
| static void | removeExtraSolventMolecules (t_atoms *atoms, std::vector< RVec > *x, std::vector< RVec > *v, int numberToRemove) |
| | Removes a given number of solvent residues. More...
|
| |
|
static void | add_solv (const char *filename, t_atoms *atoms, t_symtab *symtab, std::vector< RVec > *x, std::vector< RVec > *v, PbcType pbcType, matrix box, AtomProperties *aps, real defaultDistance, real scaleFactor, real rshell, int max_sol) |
| |
|
static void | update_top (t_atoms *atoms, int firstSolventResidueIndex, matrix box, int NFILE, t_filenm fnm[], AtomProperties *aps) |
| |
|
int | gmx_solvate (int argc, char *argv[]) |
| |
|
static bool | yesno () |
| |
|
std::vector< SpecialBond > | generateSpecialBonds () |
| |
|
static bool | is_special (ArrayRef< const SpecialBond > sb, const char *res, const char *atom) |
| |
|
static bool | is_bond (ArrayRef< const SpecialBond > sb, t_atoms *pdba, int a1, int a2, real d, int *index_sb, bool *bSwap) |
| |
|
static void | rename_1res (t_atoms *pdba, t_symtab *symtab, int resind, const char *newres, bool bVerbose) |
| |
|
std::vector< DisulfideBond > | makeDisulfideBonds (t_atoms *pdba, t_symtab *symtab, rvec x[], bool bInteractive, bool bVerbose) |
| |
|
static const char * | enumValueToString (ReplaceType enumValue) |
| |
|
template<typename EnumType > |
| static std::optional< EnumType > | findTypeFromKeyword (char *keyw) |
| |
|
static void | read_atom (char *line, bool bAdd, std::string *nname, t_atom *a, PreprocessingAtomTypes *atype, int *cgnr) |
| |
|
static void | print_atom (FILE *out, const t_atom &a, PreprocessingAtomTypes *atype) |
| |
|
static void | print_ter_db (const char *ff, char C, ArrayRef< const MoleculePatchDatabase > tb, PreprocessingAtomTypes *atype) |
| |
|
static void | read_ter_db_file (const std::filesystem::path &fn, std::vector< MoleculePatchDatabase > *tbptr, PreprocessingAtomTypes *atype) |
| |
| int | read_ter_db (const std::filesystem::path &ffdir, char ter, std::vector< MoleculePatchDatabase > *tbptr, PreprocessingAtomTypes *atype) |
| | Read database for N&C terminal modifications. More...
|
| |
std::vector
< MoleculePatchDatabase * > | filter_ter (gmx::ArrayRef< MoleculePatchDatabase > tb, const char *resname) |
| | Return entries for modification blocks that match a residue name. More...
|
| |
| MoleculePatchDatabase * | choose_ter (gmx::ArrayRef< MoleculePatchDatabase * > tb, const char *title) |
| | Interactively select one terminus. More...
|
| |
|
static t_2morse * | read_dissociation_energies (int *n2morse) |
| |
|
static int | nequal (const char *a1, const char *a2) |
| |
|
static real | search_e_diss (int n2m, t_2morse t2m[], const char *ai, const char *aj) |
| |
|
void | convert_harmonics (ArrayRef< MoleculeInformation > mols, PreprocessingAtomTypes *atype) |
| |
|
const char * | enumValueToString (Directive d) |
| |
|
InteractionFunction | ifunc_index (Directive d, int type) |
| |
|
static const char * | enumValueToString (DeprecatedDirectives d) |
| |
|
Directive | str2dir (const char *dstr) |
| |
|
static void | set_nec (Directive **n,...) |
| |
|
void | DS_Init (DirStack **DS) |
| |
|
void | DS_Done (DirStack **DS) |
| |
|
void | DS_Push (DirStack **DS, Directive d) |
| |
|
int | DS_Search (DirStack *DS, Directive d) |
| |
|
int | DS_Check_Order (DirStack *DS, Directive d) |
| |
|
static void | gen_pairs (const InteractionsOfType &nbs, InteractionsOfType *pairs, real fudge, CombinationRule comb) |
| |
|
double | check_mol (const gmx_mtop_t *mtop, WarningHandler *wi) |
| |
| static std::string | describeAtomsForRBDihedralOfGivenType (const gmx_mtop_t &mtop, int interactionType) |
| | Describe molecule and involved atoms for a dihedral interaction of a given type. More...
|
| |
| void | checkRBDihedralSum (const gmx_mtop_t &mtop, const t_inputrec &ir, WarningHandler *wi) |
| | Check that RB/Fourier style dihedral sums to zero in free-energy computation. More...
|
| |
| static double | roundedMoleculeCharge (double qMol, double sumAbsQ) |
| | Returns the rounded charge of a molecule, when close to integer, otherwise returns the original charge. More...
|
| |
|
static void | sum_q (const t_atoms *atoms, int numMols, double *qTotA, double *qTotB) |
| |
|
static void | get_nbparm (char *nb_str, char *comb_str, VanDerWaalsPotential *nb, CombinationRule *comb, WarningHandler *wi) |
| |
| static std::vector< char * > | cpp_opts (const char *define, const char *include, WarningHandler *wi) |
| | Parses define and include flags. More...
|
| |
|
static void | make_atoms_sys (ArrayRef< const gmx_molblock_t > molblock, ArrayRef< const MoleculeInformation > molinfo, t_atoms *atoms) |
| |
|
static char ** | read_topol (const char *infile, const std::optional< std::filesystem::path > &outfile, const char *define, const char *include, t_symtab *symtab, PreprocessingAtomTypes *atypes, std::vector< MoleculeInformation > *molinfo, std::unique_ptr< MoleculeInformation > *intermolecular_interactions, EnumerationArray< InteractionFunction, InteractionsOfType > &interactions, CombinationRule *combination_rule, double *reppow, t_gromppopts *opts, real *fudgeQQ, std::vector< gmx_molblock_t > *molblock, bool *ffParametrizedWithHBondConstraints, bool bFEP, bool bZero, bool usingFullRangeElectrostatics, WarningHandler *wi, const MDLogger &logger) |
| |
|
char ** | do_top (bool bVerbose, const char *topfile, const std::optional< std::filesystem::path > &topppfile, t_gromppopts *opts, bool bZero, t_symtab *symtab, EnumerationArray< InteractionFunction, InteractionsOfType > &interactions, CombinationRule *combination_rule, double *repulsion_power, real *fudgeQQ, PreprocessingAtomTypes *atypes, std::vector< MoleculeInformation > *molinfo, std::unique_ptr< MoleculeInformation > *intermolecular_interactions, const t_inputrec *ir, std::vector< gmx_molblock_t > *molblock, bool *ffParametrizedWithHBondConstraints, WarningHandler *wi, const MDLogger &logger) |
| |
| static void | generate_qmexcl_moltype (gmx_moltype_t *molt, const unsigned char *grpnr, t_inputrec *ir, const MDLogger &logger) |
| | Exclude molecular interactions for QM atoms handled by MiMic. More...
|
| |
|
void | generate_qmexcl (gmx_mtop_t *sys, t_inputrec *ir, const MDLogger &logger) |
| |
|
void | generate_nbparams (CombinationRule comb, int ftype, InteractionsOfType *interactions, PreprocessingAtomTypes *atypes, WarningHandler *wi) |
| |
|
static void | realloc_nb_params (PreprocessingAtomTypes *atypes, t_nbparam ***nbparam, t_nbparam ***pair) |
| |
|
int | copy_nbparams (t_nbparam **param, int ftype, InteractionsOfType *interactions, int nr) |
| |
|
void | free_nbparam (t_nbparam **param, int nr) |
| |
|
static void | copy_B_from_A (InteractionFunction ftype, double *c) |
| |
|
static const char * | enumValueToLetterAsString (ParticleType enumValue) |
| | Local definition that supersedes the central one, as we only want the leading letter.
|
| |
|
void | push_at (PreprocessingAtomTypes *at, PreprocessingBondAtomType *bondAtomType, char *line, int nb_funct, t_nbparam ***nbparam, t_nbparam ***pair, WarningHandler *wi) |
| |
|
template<typename T > |
| static bool | equalEitherForwardOrBackward (ArrayRef< const T > a, ArrayRef< const T > b) |
| | Return whether the contents of a and b are the same, considering also reversed order.
|
| |
|
static void | push_bondtype (InteractionsOfType *bt, const InteractionOfType &b, int nral, InteractionFunction ftype, bool bAllowRepeat, const char *line, WarningHandler *wi) |
| |
|
template<typename T > |
| static std::vector< int > | atomTypesFromAtomNames (const PreprocessingAtomTypes *atomTypes, const PreprocessingBondAtomType *bondAtomTypes, ArrayRef< T > atomNames, WarningHandler *wi) |
| |
|
void | push_bt (Directive d, EnumerationArray< InteractionFunction, InteractionsOfType > &bt, int nral, PreprocessingAtomTypes *at, PreprocessingBondAtomType *bondAtomType, char *line, WarningHandler *wi) |
| |
|
void | push_dihedraltype (Directive d, EnumerationArray< InteractionFunction, InteractionsOfType > &bt, PreprocessingBondAtomType *bondAtomType, char *line, WarningHandler *wi) |
| |
|
void | push_nbt (Directive d, t_nbparam **nbt, PreprocessingAtomTypes *atypes, char *pline, int nb_funct, WarningHandler *wi) |
| |
|
void | push_cmaptype (Directive d, EnumerationArray< InteractionFunction, InteractionsOfType > &bt, int nral, const PreprocessingBondAtomType &bondAtomType, char *line, WarningHandler *wi) |
| |
|
static void | push_atom_now (t_symtab *symtab, t_atoms *at, int atomnr, int atomicnumber, int type, char *ctype, ParticleType ptype, char *resnumberic, char *resname, char *name, real m0, real q0, int typeB, char *ctypeB, real mB, real qB, WarningHandler *wi) |
| |
|
void | push_atom (t_symtab *symtab, t_atoms *at, PreprocessingAtomTypes *atypes, char *line, WarningHandler *wi) |
| |
|
void | push_molt (t_symtab *symtab, std::vector< MoleculeInformation > *mol, char *line, WarningHandler *wi) |
| |
|
static bool | findIfAllNBAtomsMatch (ArrayRef< const int > atomsFromParameterArray, ArrayRef< const int > atomsFromCurrentParameter, const t_atoms *at, bool bB) |
| |
|
static bool | default_nb_params (InteractionFunction ftype, EnumerationArray< InteractionFunction, InteractionsOfType > &bt, t_atoms *at, InteractionOfType *p, int c_start, bool bB, bool bGenPairs) |
| |
| static int | findCmapType (EnumerationArray< InteractionFunction, InteractionsOfType > &bondtype, const t_atoms &at, const PreprocessingAtomTypes &atypes, const InteractionOfType &p, WarningHandler *wi) |
| | Find the appropriate type for the current CMAP p interaction. More...
|
| |
|
static int | findNumberOfDihedralAtomMatches (const InteractionOfType &bondType, const ArrayRef< const int > atomTypes) |
| |
static std::vector
< InteractionOfType >
::iterator | defaultInteractionsOfType (InteractionFunction ftype, EnumerationArray< InteractionFunction, InteractionsOfType > &bondType, const PreprocessingAtomTypes &atypes, const ArrayRef< int > atomIndices, const ArrayRef< const int > atomTypes, const bool atomReorderingLEaP, int *nparam_def) |
| |
|
void | push_bond (Directive d, EnumerationArray< InteractionFunction, InteractionsOfType > &bondtype, EnumerationArray< InteractionFunction, InteractionsOfType > &bond, t_atoms *at, PreprocessingAtomTypes *atypes, char *line, bool bBonded, bool bGenPairs, real fudgeQQ, bool bZero, const bool atomReorderingLEaP, bool *bWarn_copy_A_B, WarningHandler *wi) |
| |
|
void | push_cmap (Directive d, EnumerationArray< InteractionFunction, InteractionsOfType > &bondtype, EnumerationArray< InteractionFunction, InteractionsOfType > &bond, t_atoms *at, PreprocessingAtomTypes *atypes, char *line, WarningHandler *wi) |
| |
|
void | push_vsitesn (Directive d, EnumerationArray< InteractionFunction, InteractionsOfType > &bond, t_atoms *at, char *line, WarningHandler *wi) |
| |
|
void | push_mol (ArrayRef< MoleculeInformation > mols, char *pline, int *whichmol, int *nrcopies, WarningHandler *wi) |
| |
|
void | push_excl (char *line, ArrayRef< ExclusionBlock > b2, WarningHandler *wi) |
| |
|
int | add_atomtype_decoupled (PreprocessingAtomTypes *at, t_nbparam ***nbparam, t_nbparam ***pair) |
| |
|
static void | convert_pairs_to_pairsQ (EnumerationArray< InteractionFunction, InteractionsOfType > &interactions, real fudgeQQ, t_atoms *atoms) |
| |
|
static void | generate_LJCpairsNB (MoleculeInformation *mol, int nb_funct, InteractionsOfType *nbp, WarningHandler *wi) |
| |
|
static void | set_excl_all (ListOfLists< int > *excl) |
| |
|
static void | decouple_atoms (t_atoms *atoms, int atomtype_decouple, int couple_lam0, int couple_lam1, const char *mol_name, WarningHandler *wi) |
| |
|
void | convert_moltype_couple (MoleculeInformation *mol, int atomtype_decouple, real fudgeQQ, int couple_lam0, int couple_lam1, bool bCoupleIntra, int nb_funct, InteractionsOfType *nbp, WarningHandler *wi) |
| |
|
static int | count_hydrogens (char ***atomname, int nra, ArrayRef< const int > a) |
| |
|
void | make_shake (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, t_atoms *atoms, int nshake, const MDLogger &logger) |
| |
|
void | add_param_to_list (InteractionsOfType *list, const InteractionOfType &b) |
| |
|
static void | print_bt (FILE *out, Directive d, PreprocessingAtomTypes *at, InteractionFunction ftype, int fsubtype, const EnumerationArray< InteractionFunction, InteractionsOfType > &plist, bool bFullDih) |
| |
|
void | print_excl (FILE *out, int natoms, t_excls excls[]) |
| |
|
static double | get_residue_charge (const t_atoms *atoms, int at) |
| |
|
void | print_atoms (FILE *out, PreprocessingAtomTypes *atype, t_atoms *at, bool bRTPresname) |
| |
|
void | print_bondeds (FILE *out, int natoms, Directive d, InteractionFunction ftype, int fsubtype, const EnumerationArray< InteractionFunction, InteractionsOfType > &plist) |
| |
|
static int | vsite_bond_nrcheck (InteractionFunction ftype) |
| |
|
static void | enter_bonded (int nratoms, std::vector< VsiteBondedInteraction > *bondeds, const InteractionOfType &type) |
| |
|
static AllVsiteBondedInteractions | createVsiteBondedInformation (int nrat, ArrayRef< const int > atoms, ArrayRef< const Atom2VsiteBond > at2vb) |
| |
static std::vector
< Atom2VsiteBond > | make_at2vsitebond (int natoms, EnumerationArray< InteractionFunction, InteractionsOfType > &plist) |
| |
static std::vector
< Atom2VsiteConnection > | make_at2vsitecon (int natoms, EnumerationArray< InteractionFunction, InteractionsOfType > &plist) |
| |
|
static void | print_bad (FILE *fp, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles, ArrayRef< const VsiteBondedInteraction > idihs) |
| |
|
static void | printInteractionOfType (FILE *fp, InteractionFunction ftype, int i, const InteractionOfType &type) |
| |
|
static real | get_bond_length (ArrayRef< const VsiteBondedInteraction > bonds, t_iatom ai, t_iatom aj) |
| |
|
static real | get_angle (ArrayRef< const VsiteBondedInteraction > angles, t_iatom ai, t_iatom aj, t_iatom ak) |
| |
|
static bool | cmp_atomtype_name_AB (t_atom *atom, PreprocessingAtomTypes *atypes, const std::string &compare, int compareLength) |
| |
|
static bool | calc_vsite3_param (PreprocessingAtomTypes *atypes, InteractionOfType *vsite, t_atoms *at, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles) |
| |
|
static bool | calc_vsite3fd_param (InteractionOfType *vsite, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles) |
| |
|
static bool | calc_vsite3fad_param (InteractionOfType *vsite, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles) |
| |
|
static bool | calc_vsite3out_param (PreprocessingAtomTypes *atypes, InteractionOfType *vsite, t_atoms *at, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles) |
| |
|
static bool | calc_vsite4fd_param (InteractionOfType *vsite, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles, const MDLogger &logger) |
| |
|
static bool | calc_vsite4fdn_param (InteractionOfType *vsite, ArrayRef< const VsiteBondedInteraction > bonds, ArrayRef< const VsiteBondedInteraction > angles, const MDLogger &logger) |
| |
|
int | set_vsites (bool bVerbose, t_atoms *atoms, PreprocessingAtomTypes *atypes, EnumerationArray< InteractionFunction, InteractionsOfType > &plist, const MDLogger &logger) |
| |
|
void | set_vsites_ptype (bool bVerbose, gmx_moltype_t *molt, const MDLogger &logger) |
| |
|
static void | check_vsite_constraints (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, InteractionFunction cftype, ArrayRef< const std::optional< InteractionFunction >> vsite_type, const MDLogger &logger) |
| |
|
static void | clean_vsite_bonds (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, ArrayRef< const std::optional< VsiteAtomMapping >> pindex, InteractionFunction cftype, ArrayRef< const std::optional< InteractionFunction >> vsite_type, const MDLogger &logger) |
| |
|
static void | clean_vsite_angles (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, ArrayRef< std::optional< VsiteAtomMapping >> pindex, InteractionFunction cftype, ArrayRef< const std::optional< InteractionFunction >> vsite_type, ArrayRef< const Atom2VsiteConnection > at2vc, const MDLogger &logger) |
| |
|
static void | clean_vsite_dihs (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, ArrayRef< std::optional< VsiteAtomMapping >> pindex, InteractionFunction cftype, ArrayRef< const std::optional< InteractionFunction >> vsite_type, const MDLogger &logger) |
| |
| void | clean_vsite_bondeds (EnumerationArray< InteractionFunction, InteractionsOfType > &ps, int natoms, bool bRmVSiteBds, const MDLogger &logger) |
| | Clean up the bonded interactions. More...
|
| |
|
static bool | is_bond (int nnm, t_nm2type nmt[], const char *ai, const char *aj, real blen) |
| |
|
static void | mk_bonds (int nnm, t_nm2type nmt[], t_atoms *atoms, const rvec x[], InteractionsOfType *bond, int nbond[], bool bPBC, matrix box) |
| |
|
static int * | set_cgnr (t_atoms *atoms, bool bUsePDBcharge, real *qtot, real *mtot) |
| |
|
static void | set_atom_type (PreprocessingAtomTypes *atypes, t_atoms *atoms, InteractionsOfType *bonds, int *nbonds, int nnm, t_nm2type nm2t[], const MDLogger &logger) |
| |
|
static void | lo_set_force_const (InteractionsOfType *plist, real c[], int nrfp, bool bRound, bool bDih, bool bParam) |
| |
|
static void | set_force_const (EnumerationArray< InteractionFunction, InteractionsOfType > &plist, real kb, real kt, real kp, bool bRound, bool bParam) |
| |
|
static void | calc_angles_dihs (InteractionsOfType *ang, InteractionsOfType *dih, const rvec x[], bool bPBC, matrix box) |
| |
|
static void | dump_hybridization (FILE *fp, t_atoms *atoms, int nbonds[]) |
| |
|
static void | print_pl (FILE *fp, const EnumerationArray< InteractionFunction, InteractionsOfType > &plist, InteractionFunction ftp, const char *name, char ***atomname) |
| |
|
static void | print_rtp (const char *filenm, const char *title, t_atoms *atoms, const EnumerationArray< InteractionFunction, InteractionsOfType > &plist, PreprocessingAtomTypes *atypes, int cgnr[]) |
| |
|
int | gmx_x2top (int argc, char *argv[]) |
| |
|
static void | get_xlatoms (const std::filesystem::path &filename, FILE *fp, int *nptr, t_xlate_atom **xlptr) |
| |
|
static void | done_xlatom (int nxlate, t_xlate_atom *xlatom) |
| |
|
void | rename_atoms (const std::filesystem::path &xlfile, const std::filesystem::path &ffdir, t_atoms *atoms, t_symtab *symtab, ArrayRef< const PreprocessResidue > localPpResidue, bool bResname, const ResidueTypeMap &rt, bool bReorderNum, bool bVerbose) |
| |
std::unordered_map
< std::string, std::string > | gpuDescriptions () |
| | Returns information for describing the GPU support.
|
| |
|
template<typename Queue , typename CommandGroupFunction > |
| static void | syclSubmitWithCghWithoutEvent (Queue &&queue, CommandGroupFunction &&commandGroupFunction) |
| | Helper function to submit to a queue via a handler, avoiding returning an event (if possible).
|
| |
| template<typename KernelNameType , typename KernelFunctionBuilder , typename Queue , typename Range , class... Args> |
| static void | syclSubmitWithoutEvent (Queue &&queue, KernelFunctionBuilder kernelFunctionBuilder, Range &&range, Args &&...args) |
| | Helper function to submit a SYCL operation without returning an event (if possible). More...
|
| |
| template<typename KernelNameType , typename KernelFunctionBuilder , typename Queue , typename Range , class... Args> |
| static void | syclSubmitWithoutCghOrEvent (Queue &&queue, KernelFunctionBuilder kernelFunctionBuilder, Range &&range, Args &&...args) |
| | Helper function to submit a SYCL operation without returning an event. More...
|
| |
| template<typename Queue > |
| static void | syclMemcpyWithoutEvent (Queue &&queue, void *destination, const void *source, size_t numBytes) |
| | Helper function to submit a SYCL async memcpy without returning an event (if possible). More...
|
| |
| static void | syclMemsetWithoutEvent (sycl::queue &&queue, void *pointer, int value, size_t numBytes) |
| | Helper function to submit a SYCL async memset without returning an event (if possible). 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_view errorMessage) |
| | Check if API returned an error and throw an exception with information on it. More...
|
| |
| void | ensureNoPendingDeviceError (const std::string_view errorMessage) |
| | Helper function to ensure no pending error silently disrupts error handling. More...
|
| |
| HostAllocationPolicy | makeHostAllocationPolicy (bool pinBuffers, const DeviceStreamManager *deviceStreamManager, bool propagateDuringContainerCopyConstruction=false) |
| | Helper function to make a suitable HostAllocationPolicy. More...
|
| |
| template<typename PinnableVector > |
| void | changePinningPolicy (PinnableVector *v, PinningPolicy pinningPolicy) |
| | Helper function for changing the pinning policy of a pinnable vector. More...
|
| |
|
bool | isNvshmemInitialized () |
| | Return whether NVSHMEM is initialized and ready for API use.
|
| |
| 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...
|
| |
| bool | cpuIsNeoverseV2 (const CpuInfo &cpuInfo) |
| | Return true if the CPU has Neoverse V2 cores (including Grace and Graviton 4) 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, 12 > | 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...
|
| |
|
std::string | hwlocDescription () |
| | Returns information for describing the hwloc support.
|
| |
| 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::string | simdDescription () |
| | Return a string describing the SIMD support.
|
| |
|
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 MpiComm &mpiComm) |
| | Check for non-working integrator / parallel options.
|
| |
| std::unique_ptr< ImdSession > | makeImdSession (const t_inputrec *ir, const MpiComm &mpiComm, const gmx_domdec_t *dd, 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.
|
| |
|
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...
|
| |
|
std::string | blasDescription () |
| | Returns information for describing the BLAS libary.
|
| |
|
std::string | lapackDescription () |
| | Returns information for describing the LAPACK libary.
|
| |
| 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 | convertIlistToNbnxmOrder (const InteractionList &src, HostInteractionList *dest, int numAtomsPerInteraction, ArrayRef< const int > nbnxmAtomOrder) |
| | Converts src with atom indices in state order to dest in nbnxm 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> |
| | __launch_bounds__ (c_threadsBondedPerBlock) __global__ void bonded_kernel_gpu(BondedGpuKernelParameters kernelParams |
| |
|
if | constexpr (calcVir) |
| |
|
| for (int j=0;j< numFTypesOnGpu;j++) |
| |
|
| if (threadComputedPotential) |
| |
|
template<bool calcVir, bool calcEner, typename CommandGroupHandler > |
| auto | bondedKernel (CommandGroupHandler 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_in_, 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...
|
| |
|
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 MpiComm &mpiComm, const gmx_domdec_t *dd, 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 MpiComm &mpiComm, const gmx_domdec_t *dd, 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, const gmx::EnumerationArray< InteractionFunction, 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, const gmx::EnumerationArray< InteractionFunction, 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...
|
| |
|
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 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 InteractionFunction::Constraints and InteractionFunction::ConstraintsNoCoupling 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.
|
| |
|
void | update_tcouple (int64_t step, const t_inputrec *inputrec, t_state *state, gmx_ekindata_t *ekind, const t_extmass *MassQ, int homenr, ArrayRef< const unsigned short > cTC) |
| |
|
void | update_pcouple_before_coordinates (const MDLogger &mdlog, int64_t step, const PressureCouplingOptions &pressureCouplingOptions, const tensor deform, const real delta_t, t_state *state, Matrix3x3 *parrinellorahmanMu, Matrix3x3 *M) |
| |
| void | update_pcouple_after_coordinates (FILE *fplog, int64_t step, const PressureCouplingOptions &pressureCoupling, int64_t ld_seed, real ensembleTemperature, const ivec *nFreeze, const tensor deform, real delta_t, int homenr, ArrayRef< const unsigned short > cFREEZE, const matrix pressure, const matrix forceVirial, const matrix constraintVirial, Matrix3x3 *pressureCouplingMu, t_state *state, t_nrnb *nrnb, BoxDeformation *boxDeformation, bool scaleCoordinates) |
| | Implement aspects of pressure coupling. More...
|
| |
|
bool | update_randomize_velocities (const t_inputrec *ir, int64_t step, const gmx_domdec_t *dd, int homenr, ArrayRef< const unsigned short > cTC, ArrayRef< const real > invMass, ArrayRef< RVec > v, const Update *upd, const Constraints *constr) |
| |
|
real | calc_pres (PbcType pbcType, int nwall, const matrix box, const Matrix3x3 &ekin, const Matrix3x3 &vir, Matrix3x3 *pres) |
| |
|
real | calc_temp (real ekin, real nrdf) |
| |
| void | init_parrinellorahman (const PressureCouplingOptions &pressureCouplingOptions, const tensor deform, real couplingTimePeriod, const tensor box, tensor box_rel, tensor boxv, Matrix3x3 *M, Matrix3x3 *mu) |
| | Initialize the Parrinello-Rahman mu and M tensors. More...
|
| |
| void | parrinellorahman_pcoupl (const MDLogger &mdlog, int64_t step, const PressureCouplingOptions &pressureCouplingOptions, const tensor deform, real couplingTimePeriod, const tensor pres, const tensor box, tensor box_rel, tensor boxv, Matrix3x3 *M, Matrix3x3 *mu) |
| | Calculate the change in box vectors due to Parrinello-Rahman pressure coupling. More...
|
| |
| template<PressureCoupling pressureCouplingType> |
| void | pressureCouplingCalculateScalingMatrix (FILE *fplog, int64_t step, const PressureCouplingOptions &pressureCoupling, int64_t ld_seed, real ensembleTemperature, real delta_t, const tensor pres, const matrix box, const matrix force_vir, const matrix constraint_vir, Matrix3x3 *mu, double *baros_integral) |
| | Calculate the pressure coupling scaling matrix. More...
|
| |
|
template void | pressureCouplingCalculateScalingMatrix< PressureCoupling::CRescale > (FILE *, int64_t, const PressureCouplingOptions &, int64_t, real, real, const tensor, const matrix, const matrix, const matrix, Matrix3x3 *, double *) |
| |
|
template void | pressureCouplingCalculateScalingMatrix< PressureCoupling::Berendsen > (FILE *, int64_t, const PressureCouplingOptions &, int64_t, real, real, const tensor, const matrix, const matrix, const matrix, Matrix3x3 *, double *) |
| |
| template<PressureCoupling pressureCouplingType> |
| void | pressureCouplingScaleBoxAndCoordinates (const PressureCouplingOptions &pressureCoupling, const tensor deform, const ivec *nFreeze, const Matrix3x3 &mu, matrix box, matrix box_rel, int start, int nr_atoms, ArrayRef< RVec > x, ArrayRef< RVec > v, ArrayRef< const unsigned short > cFREEZE, t_nrnb *nrnb, bool scaleCoordinates) |
| | Scale the box and coordinates. More...
|
| |
|
template void | pressureCouplingScaleBoxAndCoordinates< PressureCoupling::Berendsen > (const PressureCouplingOptions &, const tensor, const ivec *, const Matrix3x3 &, matrix, matrix, int, int, ArrayRef< RVec >, ArrayRef< RVec >, ArrayRef< const unsigned short >, t_nrnb *, const bool) |
| |
|
template void | pressureCouplingScaleBoxAndCoordinates< PressureCoupling::CRescale > (const PressureCouplingOptions &, const tensor, const ivec *, const Matrix3x3 &, matrix, matrix, int, int, ArrayRef< RVec >, ArrayRef< RVec >, ArrayRef< const unsigned short >, t_nrnb *, const bool) |
| |
|
void | berendsen_tcoupl (const t_inputrec *ir, gmx_ekindata_t *ekind, real dt, std::vector< double > &therm_integral) |
| |
|
void | andersen_tcoupl (const t_inputrec *ir, int64_t step, const gmx_domdec_t *dd, const int homenr, ArrayRef< const unsigned short > cTC, ArrayRef< const real > invMass, ArrayRef< RVec > v, real rate, const std::vector< bool > &randomize, ArrayRef< const real > boltzfac) |
| |
|
void | trotter_update (const t_inputrec *ir, int64_t step, gmx_ekindata_t *ekind, t_state *state, const tensor vir, int homenr, ArrayRef< const unsigned short > cTC, ArrayRef< const real > invMass, const t_extmass *MassQ, ArrayRef< std::vector< int >> trotter_seqlist, TrotterSequence trotter_seqno) |
| |
|
void | init_npt_masses (const t_inputrec &ir, const gmx_ekindata_t &ekind, t_state *state, t_extmass *MassQ, bool bInit) |
| |
EnumerationArray
< TrotterSequence, std::vector
< int > > | init_npt_vars (const t_inputrec *ir, const gmx_ekindata_t &ekind, t_state *state, t_extmass *MassQ, bool bTrotter) |
| |
|
real | NPT_energy (const PressureCouplingOptions &pressureCouplingOptions, const TemperatureCoupling etc, const ArrayRef< const real > degreesOfFreedom, const gmx_ekindata_t &ekind, const bool isTrotterWithConstantTemperature, const t_state *state, const t_extmass *MassQ) |
| |
| real | vrescale_resamplekin (real kk, real sigma, real ndeg, real taut, int64_t step, int64_t seed) |
| | Generate a new kinetic energy for the v-rescale thermostat. More...
|
| |
|
void | vrescale_tcoupl (const t_inputrec *ir, int64_t step, gmx_ekindata_t *ekind, real dt, ArrayRef< double > therm_integral) |
| |
|
void | rescale_velocities (const gmx_ekindata_t *ekind, ArrayRef< const unsigned short > cTC, int start, int end, ArrayRef< RVec > v) |
| |
|
bool | initSimulatedAnnealing (const t_inputrec &ir, gmx_ekindata_t *ekind, Update *upd) |
| | Initialize simulated annealing.
|
| |
|
void | update_annealing_target_temp (const t_inputrec &ir, real t, gmx_ekindata_t *ekind, Update *upd) |
| | Set reference temperature for simulated annealing.
|
| |
|
void | pleaseCiteCouplingAlgorithms (FILE *fplog, const t_inputrec &ir) |
| |
| 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 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, 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, typename CommandGroupHandler > |
| static auto | reduceKernel (CommandGroupHandler, 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.
|
| |
|
NumTempScaleValues | getTempScalingType (bool doTemperatureScaling, int numTempScaleValues) |
| | Convert doTemperatureScaling and numTempScaleValues to NumTempScaleValues.
|
| |
| 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.
|
| |
|
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, gmx_domdec_t *dd, 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 gmx_domdec_t *dd, 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, gmx_domdec_t *dd, 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 | findConstraintGroupSizes (int numConstraints, ArrayRef< const AtomPair > constraintsHost, ArrayRef< int > constraintGroupSize) |
| | Calculate constraint group sizes. 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, typename CommandGroupHandler > |
| auto | lincsKernel (CommandGroupHandler &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, const DeviceStreamManager *deviceStreamManager) |
| | 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...
|
| |
|
SettleWaterTopology | getSettleTopologyData (const gmx_mtop_t &mtop) |
| | Validates that settle can run and returns setup data.
|
| |
|
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, typename CommandGroupHandler > |
| auto | settleKernel (CommandGroupHandler 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 MpiComm &mpiComm, 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, gmx_domdec_t *dd, ForceWithVirial *forceWithVirial, gmx_enerdata_t *enerd, bool receivePmeForceToGpu, bool isVirialOrEnergyStep, gmx_wallcycle *wcycle) |
| |
|
static void | print_large_forces (FILE *fp, const t_mdatoms *md, const gmx_domdec_t *dd, 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 gmx_domdec_t *dd, 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 MpiComm &mpiComm, const gmx_domdec_t *dd, 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, edsam *ed, bool didNeighborSearch) |
| | Compute forces and/or energies for special algorithms. More...
|
| |
| static void | launchPmeGpuSpread (gmx_pme_t *pmedata, const matrix box, const SimulationWorkload &simulationWork, const PmeStepWorkload &stepWork, GpuEventSynchronizer *xReadyOnDevice, const real lambdaQ, 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 PmeStepWorkload &stepWork) |
| | Launch the FFT and gather stages of PME GPU. More...
|
| |
| static void | pmeGpuWaitAndReduce (gmx_pme_t *pme, const PmeStepWorkload &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, const SimulationWorkload &simulationWork, 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, const 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 MpiComm &mpiComm, 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...
|
| |
| template<StoreUpdatedVelocities storeUpdatedVelocities, NumTempScaleValues numTempScaleValues, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, typename VelocityType > |
std::enable_if_t
< std::is_same_v< VelocityType,
RVec >||std::is_same_v
< VelocityType, const RVec >
, void > | updateMDLeapfrogSimple (int start, int nrend, real dt, real dtPressureCouple, const RVec *gmx_restrict invMassPerDim, ArrayRef< const t_grp_tcstat > tcstat, ArrayRef< const unsigned short > cTC, const RVec pRVScaleMatrixDiagonal, const RVec *gmx_restrict x, RVec *gmx_restrict xprime, VelocityType *gmx_restrict v, const RVec *gmx_restrict f) |
| | Integrate using leap-frog with T-scaling and optionally diagonal Parrinello-Rahman p-coupling. More...
|
| |
|
void | init_ekinstate (ekinstate_t *ekinstate, const t_inputrec *ir) |
| |
| void | update_ekinstate (ekinstate_t *ekinstate, const gmx_ekindata_t &ekind, const MpiComm &mpiComm, const gmx_domdec_t *dd) |
| | Updates ekinstate. More...
|
| |
|
void | restore_ekinstate_from_state (const MpiComm &mpiComm, gmx_ekindata_t *ekind, const ekinstate_t *ekinstate) |
| | Restores data from ekinstate to ekind, then broadcasts it to the rest of the simulation.
|
| |
| void | getThreadAtomRange (int numThreads, int threadIndex, int numAtoms, int *startAtom, int *endAtom) |
| | Computes the atom range for a thread to operate on, ensuring SIMD aligned ranges. 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 (const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists) |
| | 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, const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists, 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, const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists, 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, const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists) |
| | Create positions of vsite atoms based for the local system. More...
|
| |
|
static int | vsite_count (const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists, InteractionFunction 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, const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists, 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, const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists, 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::optional< std::string > | checkVsiteHierarchy (const gmx_mtop_t &mtop) |
| | Checks whether constructing atom are vsites with the same or higher function type. More...
|
| |
std::unique_ptr
< VirtualSitesHandler > | makeVirtualSitesHandler (const gmx_mtop_t &mtop, gmx_domdec_t *domdec, 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, const int thread, const int numThreads, const int numAtomsPerThread, gmx::ArrayRef< int > taskIndex, const gmx::EnumerationArray< InteractionFunction, 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, const gmx::EnumerationArray< InteractionFunction, InteractionList > &ilists, 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...
|
| |
| void | printBinaryInformation (FILE *fp, const IProgramContext &programContext, const BinaryInformationSettings &settings) |
| | Print basic information about the executable with custom settings. More...
|
| |
| void | printBinaryInformation (TextWriter *writer, const IProgramContext &programContext, const BinaryInformationSettings &settings) |
| | Print basic information about the executable with custom settings. 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 void | print_em_start (FILE *fplog, const t_commrec *cr, gmx_walltime_accounting_t walltime_accounting, gmx_wallcycle *wcycle, const char *name) |
| | Print the EM starting conditions.
|
| |
|
static void | em_time_end (gmx_walltime_accounting_t walltime_accounting) |
| | Stop counting time for EM.
|
| |
|
static void | sp_header (FILE *out, const char *minimizer, real ftol, int nsteps) |
| | Printing a log file and console header.
|
| |
|
static void | warn_step (FILE *fp, real ftol, real fmax, gmx_bool bLastStep, gmx_bool bConstrain) |
| | Print warning message.
|
| |
|
static void | print_converged (FILE *fp, const char *alg, real ftol, int64_t count, gmx_bool bDone, int64_t nsteps, const em_state_t *ems, double sqrtNumAtoms) |
| | Print message about convergence of the EM.
|
| |
|
static void | get_f_norm_max (const t_commrec *cr, const t_grpopts *opts, t_mdatoms *mdatoms, const RVec *gmx_restrict f, real *fnorm, real *fmax, int *a_fmax) |
| | Compute the norm and max of the force array in parallel.
|
| |
|
static void | get_state_f_norm_max (const t_commrec *cr, const t_grpopts *opts, t_mdatoms *mdatoms, em_state_t *ems) |
| | Compute the norm of the force.
|
| |
|
static void | copyCGP (t_state *dest, const t_state &src) |
| | Copies the p vector contents from one t_state to another.
|
| |
|
static void | init_em (FILE *fplog, const MDLogger &mdlog, const char *title, const t_commrec *cr, const t_inputrec *ir, const MDModulesNotifiers &mdModulesNotifiers, ImdSession *imdSession, pull_t *pull_work, t_state *state_global, const gmx_mtop_t &top_global, em_state_t *ems, gmx_localtop_t *top, t_nrnb *nrnb, t_forcerec *fr, MDAtoms *mdAtoms, gmx_global_stat_t *gstat, VirtualSitesHandler *vsite, Constraints *constr, const MdrunScheduleWorkload &runScheduleWork, shellfc_t **shellfc, gmx_wallcycle *wcycle) |
| | Initialize the energy minimization.
|
| |
|
static void | finish_em (const PmePpComm *pmePpComm, gmx_mdoutf_t outf, gmx_walltime_accounting_t walltime_accounting) |
| | Finalize the minimization.
|
| |
|
static void | write_em_traj (FILE *fplog, const t_commrec *cr, gmx_mdoutf_t outf, gmx_bool bX, gmx_bool bF, const char *confout, const gmx_mtop_t &top_global, const t_inputrec *ir, int64_t step, em_state_t *state, t_state *state_global, ObservablesHistory *observablesHistory) |
| | Save the EM trajectory.
|
| |
| static bool | do_em_step (const t_commrec *cr, const t_inputrec *ir, const t_mdatoms *md, t_state *s1, const real stepSize, ArrayRef< const RVec > force, em_state_t *ems2, Constraints *constr, const int64_t count) |
| | Do one minimization step. More...
|
| |
|
static void | em_dd_partition_system (FILE *fplog, const MDLogger &mdlog, const SimulationWorkload &simulationWork, int step, const t_commrec *cr, const gmx_mtop_t &top_global, const t_inputrec *ir, const MDModulesNotifiers &mdModulesNotifiers, ImdSession *imdSession, pull_t *pull_work, em_state_t *ems, gmx_localtop_t *top, MDAtoms *mdAtoms, t_forcerec *fr, VirtualSitesHandler *vsite, Constraints *constr, t_nrnb *nrnb, gmx_wallcycle *wcycle) |
| | Prepare EM for using domain decomposition parallellization.
|
| |
|
static double | reorder_partsum (const t_commrec *cr, const t_grpopts *opts, const gmx_mtop_t &top_global, const em_state_t *s_min, const em_state_t *s_b) |
| | Parallel utility summing energies and forces.
|
| |
|
static real | pr_beta (const t_commrec *cr, const t_grpopts *opts, t_mdatoms *mdatoms, const gmx_mtop_t &top_global, const em_state_t *s_min, const em_state_t *s_b) |
| | Print some stuff, like beta, whatever that means.
|
| |
| gmx_repl_ex_t | init_replica_exchange (FILE *fplog, const gmx_multisim_t *ms, int numAtomsInSystem, const t_inputrec *ir, const ReplicaExchangeParameters &replExParams) |
| | Setup function. More...
|
| |
| gmx_bool | replica_exchange (FILE *fplog, const t_commrec *cr, const gmx_multisim_t *ms, gmx_repl_ex_t re, t_state *state, const gmx_enerdata_t *enerd, t_state *state_local, int64_t step, real time) |
| | Attempts replica exchange. More...
|
| |
| void | print_replica_exchange_statistics (FILE *fplog, gmx_repl_ex_t re) |
| | Prints replica exchange statistics to the log file. More...
|
| |
| static void | prepareRerunState (const t_trxframe &rerunFrame, t_state *globalState, bool constructVsites, const VirtualSitesHandler *vsite) |
| | Copy the state from rerunFrame to globalState and, if requested, construct vsites. More...
|
| |
| static DevelopmentFeatureFlags | manageDevelopmentFeatures (const MDLogger &mdlog, const PmeRunMode pmeRunMode, const int numRanksPerSimulation, const int numPmeRanksPerSimulation, const bool canUseGpuAwareMpi) |
| | 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 LoggerOwner | buildLogger (FILE *fplog, const bool isSimulationMainRank) |
| | Initializes the logger for mdrun.
|
| |
|
static TaskTarget | findTaskTarget (const std::string_view optionString) |
| | Make a TaskTarget from an mdrun argument string.
|
| |
|
static void | finish_run (FILE *fplog, const 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 std::optional< gmx_wallclock_gpu_pme_t > &pmeGpuTimings, const int nratoms, 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.
|
| |
|
static void | pr_shell (FILE *fplog, ArrayRef< const t_shell > shells) |
| |
|
static void | predict_shells (FILE *fplog, ArrayRef< RVec > x, ArrayRef< RVec > v, real dt, ArrayRef< const t_shell > shells, ArrayRef< const real > mass, gmx_bool bInit) |
| |
| shellfc_t * | init_shell_flexcon (FILE *fplog, const gmx_mtop_t &mtop, int nflexcon, int nstcalcenergy, bool usingDomainDecomposition, const DeviceStreamManager *deviceStreamManager, const SimulationWorkload &simulationWork) |
| | Initialization function, also predicts the initial shell positions. More...
|
| |
|
static void | do_1pos (rvec xnew, const rvec xold, const rvec f, real step) |
| |
|
static void | do_1pos3 (rvec xnew, const rvec xold, const rvec f, const rvec step) |
| |
|
static void | directional_sd (ArrayRef< const RVec > xold, ArrayRef< RVec > xnew, ArrayRef< const RVec > acc_dir, int homenr, real step) |
| |
|
static void | shell_pos_sd (ArrayRef< const RVec > xcur, ArrayRef< RVec > xnew, ArrayRef< const RVec > f, ArrayRef< t_shell > shells, int count) |
| |
|
static void | decrease_step_size (ArrayRef< t_shell > shells) |
| |
|
static void | print_epot (FILE *fp, int64_t mdstep, int count, real epot, real df, int ndir, real sf_dir) |
| |
|
static real | rms_force (const t_commrec *cr, ArrayRef< const RVec > force, ArrayRef< const t_shell > shells, int ndir, real *sf_dir, real *Epot) |
| |
|
static void | dump_shells (FILE *fp, ArrayRef< RVec > f, real ftol, ArrayRef< const t_shell > shells) |
| |
|
static void | init_adir (shellfc_t *shfc, Constraints *constr, const t_inputrec *ir, const t_commrec *cr, int dd_ac1, int64_t step, const t_mdatoms &md, int end, ArrayRefWithPadding< RVec > xOld, ArrayRef< RVec > x_init, ArrayRefWithPadding< RVec > xCurrent, ArrayRef< RVec > f, ArrayRef< RVec > acc_dir, const matrix box, ArrayRef< const real > lambda, real *dvdlambda) |
| |
|
void | relax_shell_flexcon (FILE *fplog, const t_commrec *cr, gmx_bool bVerbose, gmx_enfrot *enforcedRotation, int64_t mdstep, const t_inputrec *inputrec, const MDModulesNotifiers &mdModulesNotifiers, ImdSession *imdSession, pull_t *pull_work, gmx_bool bDoNS, const gmx_localtop_t *top, Constraints *constr, gmx_enerdata_t *enerd, int natoms, ArrayRefWithPadding< RVec > xPadded, ArrayRefWithPadding< RVec > vPadded, const matrix box, ArrayRef< real > lambda, const history_t *hist, ForceBuffersView *f, tensor force_vir, const t_mdatoms &md, CpuPpLongRangeNonbondeds *longRangeNonbondeds, t_nrnb *nrnb, gmx_wallcycle *wcycle, shellfc_t *shfc, t_forcerec *fr, const MdrunScheduleWorkload &runScheduleWork, double t, rvec mu_tot, VirtualSitesHandler *vsite, const DDBalanceRegionHandler &ddBalanceRegionHandler) |
| |
|
void | done_shellfc (FILE *fplog, shellfc_t *shfc, int64_t numSteps) |
| |
| void | applyLocalState (const SimulationInput &simulationInput, t_fileio *logfio, const MpiComm &mpiCommSimulation, t_inputrec *ir, t_state *state, ObservablesHistory *observablesHistory, bool reproducibilityRequested, const MDModulesNotifiers ¬ifiers, ReadCheckpointDataHolder *modularSimulatorCheckpointData, bool useModularSimulator) |
| | Initialize local stateful simulation data. More...
|
| |
|
SimulationInputHandle | makeSimulationInput (const LegacyMdrunOptions &options) |
| |
|
static void | global_max (const MpiComm &mpiComm, int *n) |
| | Global max algorithm.
|
| |
|
static real | reactionFieldExclusionCorrection (ArrayRef< const 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.
|
| |
| void | logValidationMessages (const MDLogger &mdlog, const SimulationWorkload &simulationWorkload, bool haveFillerParticlesInLocalState, bool useH5mdOutputFile, bool useModularSimulator, IntegrationAlgorithm integrationAlgorithm, const DeviceInformation *deviceInfo) |
| | Write a messages for lists of features with status "experimental" and "validation pending" to the log. More...
|
| |
| 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
< std::remove_reference_t< T >
>, const typename
std::remove_reference_t< T >
::value_type, typename
std::remove_reference_t< T >
::value_type > > | makeCheckpointArrayRef (T &&container) |
| |
|
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) |
| |
| 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.
|
| |
| template<class ToType , class TransformWithFunctionType > |
| void | addMdpTransformFromString (IKeyValueTreeTransformRules *rules, TransformWithFunctionType transformationFunction, std::string_view moduleName, std::string_view optionName) |
| | Helper to declare mdp transform rules. More...
|
| |
| template<class ValueType > |
| void | addMdpOutputValue (KeyValueTreeObjectBuilder *builder, std::string_view moduleName, std::string_view optionName, const ValueType &optionValue) |
| | Add an mdp value to output KVT with a module-prefixed name. More...
|
| |
| void | addMdpOutputComment (KeyValueTreeObjectBuilder *builder, std::string_view moduleName, std::string_view optionName, const std::string &comment) |
| | Add a comment for an mdp value with a module-prefixed name. More...
|
| |
| 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...
|
| |
| void | setOutputControlTarget (IMDModule *module, OutputControl *outputControl) |
| | Set the target OutputControl for an OutputControlModule. More...
|
| |
| void | setOutputControlWriteToMdpOutput (IMDModule *module, bool enable) |
| | Enable MDP output writing for OutputControl module (for testing only) More...
|
| |
| void | setOutputControlPreprocessingStrings (IMDModule *module, inputrec_strings *preprocessingStrings) |
| | Set preprocessing-only string storage for an OutputControlModule. More...
|
| |
| bool | needStateGpu (SimulationWorkload simulationWorkload) |
| | If StatePropagatorDataGpu object is needed. More...
|
| |
| std::vector< int > | genQmmmIndices (const gmx_mtop_t &mtop) |
| | Generates the list of QM atoms. 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_))) |
| |
|
| numDegreesOfFreedom_ (numDegreesOfFreedom) |
| |
|
| simulationTimeStep_ (simulationTimeStep) |
| |
|
| ensembleTemperature_ (ensembleTemperature) |
| |
|
| mttkPropagatorConnection_ (mttkPropagatorConnection) |
| |
|
| nextEnergyCalculationStep_ (-1) |
| |
|
| mdlog_ (mdlog) |
| |
| template<NumVelocityScalingValues numStartVelocityScalingValues, ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling, NumVelocityScalingValues numEndVelocityScalingValues> |
| static void | updateVelocities (int a, real dt, real lambdaStart, real lambdaEnd, const RVec *gmx_restrict invMassPerDim, RVec *gmx_restrict v, const RVec *gmx_restrict f, const RVec &diagPR, const Matrix3x3 &matrixPR) |
| | Update velocities. More...
|
| |
| static void | updatePositions (int a, real dt, const RVec *gmx_restrict x, RVec *gmx_restrict xprime, const RVec *gmx_restrict v) |
| | Update positions. More...
|
| |
| template<NumVelocityScalingValues numStartVelocityScalingValues> |
| static void | scaleVelocities (int a, real lambda, RVec *gmx_restrict v) |
| | Scale velocities. More...
|
| |
| template<NumPositionScalingValues numPositionScalingValues> |
| static void | scalePositions (int a, real lambda, RVec *gmx_restrict x) |
| | Scale positions. More...
|
| |
|
template<ParrinelloRahmanVelocityScaling parrinelloRahmanVelocityScaling> |
| static bool | canTreatPRScalingMatrixAsDiagonal (const Matrix3x3 &matrixPR) |
| | Is the PR matrix diagonal?
|
| |
|
template<IntegrationStage integrationStage> |
| constexpr bool | hasStartVelocityScaling () |
| |
|
template<IntegrationStage integrationStage> |
| constexpr bool | hasEndVelocityScaling () |
| |
|
template<IntegrationStage integrationStage> |
| constexpr bool | hasPositionScaling () |
| |
|
template<IntegrationStage integrationStage> |
| constexpr bool | hasParrinelloRahmanScaling () |
| |
|
template<IntegrationStage integrationStage> |
| static PropagatorConnection | getConnection (Propagator< integrationStage > *propagator, const PropagatorTag &propagatorTag) |
| |
|
template<CheckpointDataOperation operation> |
| static void | doCheckpointData (CheckpointData< operation > *checkpointData, ArrayRef< DVec > previousStepCom) |
| |
|
static void | runAllCallbacks (const std::vector< SignallerCallback > &callbacks, Step step, Time time) |
| | Helper function to call all callbacks in a list.
|
| |
|
template<typename Element , typename... Args> |
| ISimulatorElement * | getElementPointer (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, ObservablesReducer *observablesReducer, const DeviceStreamManager *deviceStreamManager, Args &&...args) |
| |
|
template<typename Base , typename Element > |
static std::enable_if_t
< std::is_base_of_v< Base,
Element >, Base * > | castOrNull (Element *element) |
| | Returns a pointer casted to type Base if the Element is derived from Base.
|
| |
|
template<typename Base , typename Element > |
static std::enable_if_t
<!std::is_base_of_v< Base,
Element >, Base * > | castOrNull (Element gmx_unused *element) |
| | Returns a nullptr of type Base if Element is not derived from Base.
|
| |
|
| ddpCount_ (0) |
| |
|
| element_ (std::make_unique< Element >(this, fplog, cr, inputrec->outputControl.nstxout, inputrec->outputControl.nstvout, inputrec->outputControl.nstfout, inputrec->outputControl.nstxout_compressed, canMoleculesBeDistributedOverPBC, writeFinalConfiguration, finalConfigurationFilename, inputrec, globalTop)) |
| |
|
| referenceTemperatureHelper_ (std::make_unique< ReferenceTemperatureHelper >(inputrec, this, mdatoms)) |
| |
|
| vvResetVelocities_ (false) |
| |
|
| isRegularSimulationEnd_ (false) |
| |
|
| lastStep_ (-1) |
| |
|
| globalState_ (globalState) |
| |
| static void | updateGlobalState (t_state *globalState, const PaddedHostVector< RVec > &x, const PaddedHostVector< RVec > &v, const tensor box, int ddpCount, int ddpCountCgGl, const std::vector< int > &cgGl) |
| | Update the legacy global state. More...
|
| |
| bool | timesClose (Time time, Time referenceTime) |
| | Check whether two times are nearly equal. More...
|
| |
|
const char * | enumValueToString (LJCombinationRule enumValue) |
| | String corresponding to LJ combination rule.
|
| |
|
static void | copy_int_to_nbat_int (const int *a, int na, int na_round, const int *in, int fill, int *innb) |
| |
|
void | copy_rvec_to_nbat_real (const int *a, int na, int na_round, const rvec *x, int nbatFormat, real *xnb, int a0) |
| | Copy na rvec elements from x to xnb using nbatFormat, start dest a0, and fills up to na_round with coordinates that are far away.
|
| |
|
template<int coordinateStride> |
| static void | copyRVecToNbatXYZReal (int numAtoms, const rvec *x, real *xnb, int a0) |
| |
| template<int packSize> |
| static void | copyRVecToNbatPackedReal (int numAtoms, const rvec *x, real *xnb, int a0) |
| | Copies coordinates with RVec layout to SIMD layout with X/Y/Z packs. More...
|
| |
|
static void | set_lj_parameter_data (nbnxm_atomdata_t::Params *params, gmx_bool bSIMD) |
| |
|
template<typename T > |
| static gmx_unused void | setExclusionFilters (AlignedVector< T > *exclusionFilters, const NbnxmKernelType kernelType) |
| | Allocates and sets the SIMD exclusion filters.
|
| |
|
template<int packSize> |
| static void | copy_lj_to_nbat_lj_comb (ArrayRef< const real > ljparam_type, const int *type, int na, real *ljparam_at) |
| |
|
static void | nbnxm_atomdata_set_atomtypes (nbnxm_atomdata_t::Params *params, const GridSet &gridSet, ArrayRef< const int > atomTypesA, ArrayRef< const int > atomTypesB, const bool useGpuNonbondedFE) |
| |
|
static void | nbnxm_atomdata_set_ljcombparams (nbnxm_atomdata_t::Params *params, const int XFormat, const GridSet &gridSet, const bool useGpuNonbondedFE) |
| |
|
static void | nbnxm_atomdata_set_charges (nbnxm_atomdata_t *nbat, const GridSet &gridSet, ArrayRef< const real > chargesA, ArrayRef< const real > chargesB, const bool useGpuNonbondedFE) |
| |
|
static void | nbnxm_atomdata_mask_fep (nbnxm_atomdata_t *nbat, const GridSet &gridSet) |
| |
|
static void | nbnxm_atomdata_set_energygroups (const GridSet &gridSet, ArrayRef< const int32_t > atomInfo, EnergyGroupsPerCluster *energyGroupsPerCluster) |
| |
|
void | nbnxm_atomdata_set (nbnxm_atomdata_t gmx_unused *nbat, const GridSet gmx_unused &gridSet, ArrayRef< const int > gmx_unused atomTypesA, ArrayRef< const int > gmx_unused atomTypesB, ArrayRef< const real > gmx_unused atomChargesA, ArrayRef< const real > gmx_unused atomChargesB, ArrayRef< const int32_t > gmx_unused atomInfo, bool gmx_unused useGpuNonbondedFE) |
| | Sets the atomdata after pair search.
|
| |
|
void | nbnxm_atomdata_copy_shiftvec (std::optional< bool > haveDynamicBox, ArrayRef< const RVec > shiftVectors, nbnxm_atomdata_t *nbat) |
| | Copy the shift vectors to nbat.
|
| |
|
static Range< int > | getGridRange (const GridSet &gridSet, const AtomLocality locality) |
| |
|
static void | copyXToNbatXForGridPart (const Grid &grid, const Range< int > &cellRange, const rvec *coordinates, nbnxm_atomdata_t *nbat) |
| |
|
static void | copyXToNbatXForGridPartIndexed (const Grid &grid, const Range< int > &cellRange, ArrayRef< const int > atomIndices, const rvec *coordinates, nbnxm_atomdata_t *nbat) |
| |
| void | nbnxm_atomdata_copy_x_to_nbat_x (const GridSet &gridSet, AtomLocality locality, const rvec *coordinates, nbnxm_atomdata_t *nbat) |
| | Transform coordinates to xbat layout. More...
|
| |
|
static void | nbnxm_atomdata_clear_reals (ArrayRef< real > dest, int i0, int i1) |
| |
|
static gmx_unused void | nbnxm_atomdata_reduce_reals (real *gmx_restrict dest, gmx_bool bDestSet, const real **gmx_restrict src, int nsrc, int i0, int i1) |
| |
|
static gmx_unused void | nbnxm_atomdata_reduce_reals_simd (real gmx_unused *gmx_restrict dest, gmx_bool gmx_unused bDestSet, const gmx_unused real **gmx_restrict src, int gmx_unused nsrc, int gmx_unused i0, int gmx_unused i1) |
| |
|
template<int forceStride> |
| static void | addNbatFXYZToFPart (const nbnxm_atomdata_output_t &out, const int a0, const int a1, const int *cellIndices, ArrayRef< RVec > forces) |
| |
| template<int packSize> |
| static void | addNbatFPackedToFPart (const nbnxm_atomdata_output_t &out, const int a0, const int a1, const int *cellIndices, ArrayRef< RVec > forces) |
| | Adds forces in SIMD packed layout to an RVec array. More...
|
| |
|
static Range< int > | getAtomRange (const AtomLocality locality, const GridSet &gridSet) |
| |
|
void | nbnxm_atomdata_add_nbat_fshift_to_fshift (const nbnxm_atomdata_t &nbat, ArrayRef< RVec > fshift) |
| | Add the fshift force stored in nbat to fshift.
|
| |
|
static void | clearBufferAll (ArrayRef< real > buffer) |
| | Clears all elements of buffer.
|
| |
| template<int numComponentsPerElement> |
| static void | clearBufferFlagged (const int outputIndex, ArrayRef< const gmx_bitmask_t > flags, ArrayRef< real > buffer) |
| | Clears elements of size and stride numComponentsPerElement. More...
|
| |
|
template<int packSize> |
| static int | atom_to_x_index (int a) |
| | Returns the index in a coordinate array corresponding to atom a.
|
| |
|
static RVec | getCoordinate (const nbnxm_atomdata_t &nbat, const int a) |
| | Returns the coordinates of atoms a.
|
| |
| static std::optional< std::string > | checkKernelSetup (const NbnxmKernelBenchOptions &options) |
| | Checks the kernel setup. More...
|
| |
|
static NbnxmKernelType | translateBenchmarkEnum (const NbnxmBenchMarkKernels &kernel) |
| | Helper to translate between the different enumeration values.
|
| |
|
static NbnxmKernelSetup | getKernelSetup (const NbnxmKernelBenchOptions &options) |
| | Returns the kernel setup.
|
| |
|
static InteractionModifiers | convertInteractionModifiers (const NbnxmBenchMarkInteractionModifiers interactionModifier) |
| | Converts the benchmark interaction modifier enum to the corresponding NBNxM enum.
|
| |
|
static interaction_const_t | setupInteractionConst (const NbnxmKernelBenchOptions &options) |
| | Return an interaction constants struct with members used in the benchmark set appropriately.
|
| |
|
static LJCombinationRule | convertLJCombinationRule (const NbnxmBenchMarkCombRule combRule) |
| | Converts the benchmark LJ comb.rule. enum to the corresponding NBNxM enum.
|
| |
static std::unique_ptr
< nonbonded_verlet_t > | setupNbnxmForBenchInstance (const NbnxmKernelBenchOptions &options, const BenchmarkSystem &system) |
| | Sets up and returns a Nbnxm object for the given benchmark options and system.
|
| |
|
static void | expandSimdOptionAndPushBack (const NbnxmKernelBenchOptions &options, std::vector< NbnxmKernelBenchOptions > *optionsList) |
| | Add the options instance to the list for all requested kernel SIMD types.
|
| |
|
static void | setupAndRunInstance (const BenchmarkSystem &system, const NbnxmKernelBenchOptions &options, const bool doWarmup) |
| | Sets up and runs the requested benchmark instance and prints the results.
|
| |
| void | bench (int sizeFactor, const NbnxmKernelBenchOptions &options) |
| | Sets up and runs one or more Nbnxm kernel benchmarks. More...
|
| |
|
static void | generateCoordinates (int multiplicationFactor, std::vector< gmx::RVec > *coordinates, matrix box) |
| | Generates coordinates and a box for the base system scaled by multiplicationFactor.
|
| |
|
template<typename T > |
static std::enable_if_t
< std::is_same_v< T,
gmx::BasicVector< float >
>, gmx::BasicVector< float > > | loadBoundingBoxCorner (const BoundingBox::Corner &corner) |
| | Loads a corner of a bounding box into a float vector.
|
| |
|
static gmx::BasicVector< float > | max (const gmx::BasicVector< float > &v1, const gmx::BasicVector< float > &v2) |
| | Return the element-wise max of two 3-float vectors, needed to share code with SIMD.
|
| |
|
static float | dotProduct (const gmx::BasicVector< float > &v1, const gmx::BasicVector< float > &v2) |
| | Return the dot product of two 3-float vectors, needed to share code with SIMD.
|
| |
| static float | clusterBoundingBoxDistance2 (const BoundingBox &bb_i, const BoundingBox &bb_j) |
| | Returns the distance^2 between two bounding boxes. More...
|
| |
|
static gmx_unused void | clusterBoundingBoxDistance2_xxxx_simd4 (const float *, const int, const float *, float *) |
| | 4-wide SIMD code for nsi bb distances for bb format xxxxyyyyzzzz
|
| |
|
static ClusterDistanceKernelType | getClusterDistanceKernelType (const PairlistType pairlistType, const nbnxm_atomdata_t &atomdata) |
| | Return the cluster distance kernel type given the pairlist type and atomdata.
|
| |
|
void | cuda_set_cacheconfig () |
| | Set up the cache configuration for the non-bonded kernels.
|
| |
| static int | computeNumGlobalPerturbedExclusions (const gmx_mtop_t &mtop) |
| | Compute the number of exclusions involving perturbed atoms. More...
|
| |
|
template<bool computeScalarForce, class RealType > |
| static void | pmeCoulombCorrectionVF (const RealType rSq, const real beta, RealType *pot, RealType gmx_unused *force) |
| |
|
template<bool computeScalarForce, class RealType , class BoolType > |
| static void | pmeLJCorrectionVF (const RealType rInv, const RealType rSq, const real ewaldLJCoeffSq, const real ewaldLJCoeffSixDivSix, RealType *pot, RealType gmx_unused *force, const BoolType mask, const BoolType bIiEqJnr) |
| |
|
template<class RealType > |
| static void | sixthRoot (const RealType r, RealType *sixthRoot, RealType *invSixthRoot) |
| | Computes r^(1/6) and 1/r^(1/6)
|
| |
|
template<class RealType > |
| static RealType | calculateRinv6 (const RealType rInvV) |
| |
|
template<class RealType > |
| static RealType | calculateVdw6 (const RealType c6, const RealType rInv6) |
| |
|
template<class RealType > |
| static RealType | calculateVdw12 (const RealType c12, const RealType rInv6) |
| |
|
template<class RealType > |
| static RealType | reactionFieldScalarForce (const RealType qq, const RealType rInv, const RealType r, const real reactionFieldCoefficient, const real two) |
| |
|
template<class RealType > |
| static RealType | reactionFieldPotential (const RealType qq, const RealType rInv, const RealType r, const real reactionFieldCoefficient, const real potentialShift) |
| |
|
template<class RealType > |
| static RealType | ewaldScalarForce (const RealType coulomb, const RealType rInv) |
| |
|
template<class RealType > |
| static RealType | ewaldPotential (const RealType coulomb, const RealType rInv, const real potentialShift) |
| |
|
template<class RealType > |
| static RealType | lennardJonesScalarForce (const RealType v6, const RealType v12) |
| |
|
template<class RealType > |
| static RealType | lennardJonesPotential (const RealType v6, const RealType v12, const RealType c6, const RealType c12, const real repulsionShift, const real dispersionShift, const real oneSixth, const real oneTwelfth) |
| |
|
template<class RealType > |
| static RealType | ewaldLennardJonesGridSubtract (const RealType c6grid, const real potentialShift, const real oneSixth) |
| |
|
template<class RealType > |
| static void | computeForceSwitchVariables (const RealType r, const real rSwitch, RealType *rSwitched, RealType *rSwitchedSquared, RealType *rSwitchedSquaredTimesR) |
| | Generates intermediate quantities for force switch interactions.
|
| |
|
template<class RealType , class BoolType > |
| static RealType | forceSwitchScalarForceMod (const RealType fScalarInp, const RealType rSwitched, const RealType rSwitchedSquaredTimesR, const real c2, const real c3, const BoolType mask) |
| | Return the force for force-switch interactions.
|
| |
|
template<class RealType , class BoolType > |
| static RealType | forceSwitchPotentialMod (const RealType rSwitched, const RealType rSwitchedSquaredTimesR, const real c3, const real c4, const BoolType mask) |
| | Return the modification of the potential for force-switch interactions.
|
| |
|
template<class RealType , class BoolType > |
| static RealType | potSwitchScalarForceMod (const RealType fScalarInp, const RealType potential, const RealType sw, const RealType r, const RealType dsw, const BoolType mask) |
| |
|
template<class RealType , class BoolType > |
| static RealType | potSwitchPotentialMod (const RealType potentialInp, const RealType sw, const BoolType mask) |
| |
|
template<typename DataTypes , KernelSoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool elecInteractionTypeIsEwald, LJKernelType ljKernelType, bool computeForces> |
| static void | nb_free_energy_kernel (const AtomPairlist &nlist, const ArrayRefWithPadding< const RVec > &coords, const int ntype, const interaction_const_t &ic, ArrayRef< const RVec > shiftvec, ArrayRef< const real > nbfp, ArrayRef< const real > gmx_unused nbfp_grid, ArrayRef< const real > chargeA, ArrayRef< const real > chargeB, ArrayRef< const int > typeA, ArrayRef< const int > typeB, const bool computeForeignLambda, const StepWorkload *stepWork, ArrayRef< const real > lambda, t_nrnb *gmx_restrict nrnb, ArrayRefWithPadding< RVec > threadForceBuffer, rvec gmx_unused *threadForceShiftBuffer, ArrayRef< real > threadVCoul, ArrayRef< real > threadVVdw, ArrayRef< real > threadDvdl) |
| | Templated free-energy non-bonded kernel.
|
| |
|
template<KernelSoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool elecInteractionTypeIsEwald, LJKernelType ljKernelType, bool computeForces> |
| static KernelFunction | dispatchKernelOnUseSimd (const bool useSimd) |
| |
|
template<KernelSoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool elecInteractionTypeIsEwald, LJKernelType ljKernelType> |
| static KernelFunction | dispatchKernelOnComputeForces (const bool computeForces, const bool useSimd) |
| |
|
template<KernelSoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool elecInteractionTypeIsEwald> |
| static KernelFunction | dispatchKernelOnLJType (const LJKernelType ljKernelType, const bool computeForces, const bool useSimd) |
| |
|
template<KernelSoftcoreType softcoreType, bool scLambdasOrAlphasDiffer> |
| static KernelFunction | dispatchKernelOnElecInteractionType (const bool elecInteractionTypeIsEwald, const LJKernelType ljKernelType, const bool computeForces, const bool useSimd) |
| |
|
template<KernelSoftcoreType softcoreType> |
| static KernelFunction | dispatchKernelOnScLambdasOrAlphasDifference (const bool scLambdasOrAlphasDiffer, const bool elecInteractionTypeIsEwald, const LJKernelType ljKernelType, const bool computeForces, const bool useSimd) |
| |
|
static KernelFunction | dispatchKernel (const bool scLambdasOrAlphasDiffer, const bool elecInteractionTypeIsEwald, const LJKernelType ljKernelType, const bool computeForces, const bool useSimd, const interaction_const_t &interactionParameters) |
| |
|
void | gmx_nb_free_energy_kernel (const AtomPairlist &nlist, const ArrayRefWithPadding< const RVec > &coords, const bool useSimd, const int ntype, const interaction_const_t &interactionParameters, ArrayRef< const RVec > shiftvec, ArrayRef< const real > nbfp, ArrayRef< const real > nbfp_grid, ArrayRef< const real > chargeA, ArrayRef< const real > chargeB, ArrayRef< const int > typeA, ArrayRef< const int > typeB, const bool computeForeignLambda, const StepWorkload *stepWork, ArrayRef< const real > lambda, t_nrnb *nrnb, ArrayRefWithPadding< RVec > threadForceBuffer, rvec *threadForceShiftBuffer, ArrayRef< real > threadVCoul, ArrayRef< real > threadVVdw, ArrayRef< real > threadDvdl) |
| |
| void | gmx_nb_free_energy_kernel (const AtomPairlist &nlist, const ArrayRefWithPadding< const RVec > &coords, bool useSimd, int ntype, const interaction_const_t &ic, ArrayRef< const RVec > shiftvec, ArrayRef< const real > nbfp, ArrayRef< const real > nbfp_grid, ArrayRef< const real > chargeA, ArrayRef< const real > chargeB, ArrayRef< const int > typeA, ArrayRef< const int > typeB, bool computeForeignLambda, const StepWorkload *stepWork, ArrayRef< const real > lambda, t_nrnb *gmx_restrict nrnb, ArrayRefWithPadding< RVec > threadForceBuffer, rvec *threadForceShiftBuffer, ArrayRef< real > threadVc, ArrayRef< real > threadVv, ArrayRef< real > threadDvdl) |
| | The non-bonded free-energy kernel. More...
|
| |
| static void | countPruneKernelTime (GpuTimers *timers, gmx_wallclock_gpu_nbnxm_t *timings, const InteractionLocality iloc) |
| | Count pruning kernel time if either kernel has been triggered. More...
|
| |
| static void | gpu_reduce_staged_outputs (const NBStagingData &nbst, const InteractionLocality iLocality, const bool reduceEnergies, const bool reduceFshift, real *e_lj, real *e_el, double *dvdl_lj, double *dvdl_el, rvec *fshift) |
| | Reduce data staged internally in the nbnxm module. More...
|
| |
| static void | gpu_reduce_staged_foreign_term (const NBStagingData &nbst, const InteractionLocality iLocality, const int nLambda, ForeignLambdaTerms *foreign_term) |
| | Reduce free energy lambda data staged internally in the nbnxm module. More...
|
| |
| template<typename GpuPairlist > |
| static void | gpu_accumulate_timings (gmx_wallclock_gpu_nbnxm_t *timings, GpuTimers *timers, const GpuPairlist *plist, AtomLocality atomLocality, const StepWorkload &stepWork, bool doTiming) |
| | Do the per-step timing accounting of the nonbonded tasks. More...
|
| |
| bool | gpu_try_finish_task (NbnxmGpu *nb, const StepWorkload &stepWork, const AtomLocality aloc, real *e_lj, real *e_el, double *dvdl_lj, double *dvdl_el, ArrayRef< RVec > shiftForces, ForeignLambdaTerms *foreign_term, GpuTaskCompletion completionKind) |
| | Attempts to complete nonbonded GPU task. More...
|
| |
| float | gpu_wait_finish_task (NbnxmGpu *nb, const StepWorkload &stepWork, AtomLocality aloc, const bool haveSoftCore, gmx_enerdata_t *enerd, ArrayRef< RVec > shiftForces, gmx_wallcycle *wcycle) |
| | Wait for the asynchronously launched nonbonded tasks and data transfers to finish. More...
|
| |
| static bool | canSkipNonbondedWork (const NbnxmGpu &nb, InteractionLocality iloc) |
| | An early return condition for empty NB GPU workloads. More...
|
| |
| static Range< int > | getGpuAtomRange (const NBAtomDataGpu *atomData, const AtomLocality atomLocality) |
| | Calculate atom range and return start index and length. More...
|
| |
| void | copy_gpu_fepparams (NbnxmGpu gmx_unused *nb, bool gmx_unused bFepGpuNonBonded, float gmx_unused alphaCoul, float gmx_unused alphaVdw, int gmx_unused lambdaPower, float gmx_unused sigma6WithInvalidSigma, float gmx_unused sigma6Minimum, float gmx_unused lambdaCoul, float gmx_unused lambdaVdw, int gmx_unused nLambda, const EnumerationArray< FreeEnergyPerturbationCouplingType, std::vector< double >> gmx_unused &all_lambda) |
| | Copy FEP parameters to GPU. More...
|
| |
| NbnxmGpu * | gpu_init (const DeviceStreamManager gmx_unused &deviceStreamManager, const interaction_const_t gmx_unused *ic, const PairlistParams gmx_unused &listParams, const nbnxm_atomdata_t gmx_unused *nbat, bool gmx_unused bLocalAndNonlocal, const std::optional< size_t > gmx_unused nLambda) |
| | Initializes the data structures related to GPU nonbonded calculations. More...
|
| |
| void | gpu_init_pairlist (NbnxmGpu gmx_unused *nb, const struct NbnxmPairlistGpu gmx_unused *h_nblist, InteractionLocality gmx_unused iloc) |
| | Initializes pair-list data for GPU, called at every pair search step. More...
|
| |
| void | gpu_init_feppairlist (NbnxmGpu gmx_unused *nb, const AtomPairlist gmx_unused &h_feplist, InteractionLocality gmx_unused iloc, ArrayRef< const int > gmx_unused atomIndices) |
| | Initializes fep pair-list data for GPU, called at every pair search step. More...
|
| |
| void | gpu_init_atomdata (NbnxmGpu gmx_unused *nb, const nbnxm_atomdata_t gmx_unused *nbat) |
| | Initializes atom-data on the GPU, called at every pair search step. More...
|
| |
|
void | gpu_pme_loadbal_update_param (struct nonbonded_verlet_t gmx_unused *nbv, const interaction_const_t gmx_unused &ic) |
| | Re-generate the GPU Ewald force table, resets rlist, and update the electrostatic type switching to twin cut-off (or back) if needed.
|
| |
| void | gpu_upload_shiftvec (NbnxmGpu gmx_unused *nb, const nbnxm_atomdata_t gmx_unused *nbatom) |
| | Uploads shift vector to the GPU if the box is dynamic (otherwise just returns). More...
|
| |
| void | gpu_clear_outputs (NbnxmGpu gmx_unused *nb, bool gmx_unused computeVirial) |
| | Clears GPU outputs: nonbonded force, shift force and energy. More...
|
| |
| void | gpu_free (NbnxmGpu gmx_unused *nb) |
| | Frees all GPU resources used for the nonbonded calculations. More...
|
| |
| struct gmx_wallclock_gpu_nbnxm_t * | gpu_get_timings (NbnxmGpu gmx_unused *nb) |
| | Returns the GPU timings structure or NULL if GPU is not used or timing is off. More...
|
| |
| void | gpu_reset_timings (struct nonbonded_verlet_t gmx_unused *nbv) |
| | Resets nonbonded GPU timings. More...
|
| |
| int | gpu_min_ci_balanced (NbnxmGpu gmx_unused *nb) |
| | Calculates the minimum size of proximity lists to improve SM load balance with GPU non-bonded kernels. More...
|
| |
| bool | gpu_is_kernel_ewald_analytical (const NbnxmGpu gmx_unused *nb) |
| | Returns if analytical Ewald GPU kernels are used. More...
|
| |
|
NBAtomDataGpu * | gpuGetNBAtomData (NbnxmGpu gmx_unused *nb) |
| | Returns an opaque pointer to the GPU NBNXM atom data.
|
| |
|
DeviceBuffer< RVec > | gpu_get_f (NbnxmGpu gmx_unused *nb) |
| | Returns forces device buffer.
|
| |
| size_t | getExclusiveScanWorkingArraySize (GpuPairlist *plist, const DeviceStream &deviceStream) |
| | Calculates working memory required for exclusive sum, used in neighbour list sorting on GPU. More...
|
| |
|
void | performExclusiveScan (size_t temporaryBufferSize, char *temporaryBuffer, GpuPairlist *plist, const DeviceStream &deviceStream) |
| | Perform exclusive scan to obtain input for sci sorting.
|
| |
|
void | nbnxm_gpu_compile_kernels (NbnxmGpu gmx_unused *nb) |
| | Handles any JIT compilation of nbnxm kernels for the selected device.
|
| |
|
static real | gridAtomDensity (int numAtoms, const RVec &gridBoundingBoxSize) |
| | Returns the atom density (> 0) of a rectangular grid.
|
| |
| static RVec | getTargetCellLength (const Grid::Geometry &geometry, const real atomDensity) |
| | Get approximate dimensions of the grid cells. More...
|
| |
|
static int | getMaxNumCells (const Grid::Geometry &geometry, const int numAtoms, const int numCells) |
| |
|
static bool | isHomeZone (const int ddZone) |
| | Returns whether ddZone is the home zone.
|
| |
| static void | sort_atoms (int dim, gmx_bool Backwards, int gmx_unused dd_zone, bool gmx_unused relevantAtomsAreWithinGridBounds, int *a, int n, ArrayRef< const RVec > x, real h0, real invh, int n_per_h, ArrayRef< int > sort) |
| | Sorts particle index a on coordinates x along dim. More...
|
| |
|
static float | R2F_D (const float x) |
| | Returns x.
|
| |
|
static float | R2F_U (const float x) |
| | Returns x.
|
| |
|
static void | calc_bounding_box (const int numAtoms, const int stride, const real *x, BoundingBox *bb) |
| | Computes the bounding box for na coordinates in order x,y,z, bb order xyz0.
|
| |
| template<int packSize> |
| static void | calcBoundingBoxXPacked (const int numAtoms, const real *x, BoundingBox *bb) |
| | Computes the bounding box for packed coordinates. More...
|
| |
| template<int packSize> |
| static gmx_unused void | calcBoundingBoxHalves (const int numAtoms, const real *x, BoundingBox *bb, BoundingBox *bbj) |
| | Computes the whole plus half bounding boxes for packed coordinates. More...
|
| |
|
static void | calc_bounding_box_xxxx (int na, int stride, const real *x, float *bb) |
| | Computes the bounding box for na coordinates in order xyz, bb order xxxxyyyyzzzz.
|
| |
|
static void | combine_bounding_box_pairs (const Grid &grid, ArrayRef< const BoundingBox > bb, ArrayRef< BoundingBox > bbj) |
| | Combines pairs of consecutive bounding boxes.
|
| |
|
static void | print_bbsizes_simple (FILE *fp, const Grid &grid) |
| | Prints the average bb size, used for debug output.
|
| |
|
static void | print_bbsizes_supersub (FILE *fp, const Grid &grid) |
| | Prints the average bb size, used for debug output.
|
| |
| static void | sort_cluster_on_flag (int numAtomsInCluster, int atomStart, int atomEnd, ArrayRef< const int32_t > atomInfo, ArrayRef< int > order, int *flags) |
| | Set non-bonded interaction flags for the current cluster. More...
|
| |
|
static void | setCellAndAtomCount (ArrayRef< int > cells, const int cellIndexXY, const int cellIndexZ, const int numCellsZ, ArrayRef< int > numAtomsPerCell, const int atomIndex) |
| | Sets the cell index in the cell array for atom atomIndex and increments the atom count for the grid cell.
|
| |
|
static void | resizeForNumberOfBins (const int numNbnxmAtoms, const int numAtomsMoved, const int ddZone, GridSetData *gridSetData, nbnxm_atomdata_t *nbat) |
| | Resizes grid and atom data which depend on the number of bins.
|
| |
|
static int | numGrids (const GridSet::DomainSetup &domainSetup) |
| | Returns the number of search grids.
|
| |
|
static int | getGridOffset (ArrayRef< const Grid > grids, int gridIndex) |
| |
| void | launchNbnxmKernelTransformXToXq (const FusedXToXqLaunchParams &launchParams, NbnxmGpu *nb, DeviceBuffer< Float3 > d_x, const DeviceStream &deviceStream) |
| | Launch the fused coordinate layout conversion kernel. More...
|
| |
|
void | gpu_launch_kernel_pruneonly (NbnxmGpu *nb, const InteractionLocality iloc, const int numParts) |
| | Launch the pairlist prune only kernel for the given locality. numParts tells in how many parts, i.e. calls the list will be pruned.
|
| |
| void | gpu_launch_kernel (NbnxmGpu *nb, const gmx::StepWorkload &stepWork, const InteractionLocality iloc) |
| | Launch GPU kernel. More...
|
| |
| void | gpu_launch_free_energy_kernel (NbnxmGpu gmx_unused *nb, const SimulationWorkload gmx_unused &simulationWork, const StepWorkload gmx_unused &stepWork, InteractionLocality gmx_unused iloc) |
| | Launch asynchronously the nonbonded free energy calculations. More...
|
| |
|
void | gpu_init_platform_specific (NbnxmGpu *nb) |
| | Initializes the NBNXM GPU data structures.
|
| |
| void | gpu_free_platform_specific (NbnxmGpu *nb) |
| | Releases the NBNXM GPU data structures. More...
|
| |
|
int | gpu_min_ci_balanced (NbnxmGpu *nb) |
| | This function is documented in the header file.
|
| |
|
template<bool hasLargeRegisterPool, bool doPruneNBL, bool doCalcEnergies> |
| void | launchNbnxmKernelHelper (NbnxmGpu *nb, const StepWorkload &stepWork, InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< false, false, false > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< false, false, true > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< false, true, true > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< false, true, false > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< true, false, false > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< true, false, true > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< true, true, true > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
|
template void | launchNbnxmKernelHelper< true, true, false > (NbnxmGpu *nb, const StepWorkload &stepWork, const InteractionLocality iloc) |
| |
| void | launchNbnxmKernel (NbnxmGpu *nb, const StepWorkload &stepWork, InteractionLocality iloc, bool doPrune) |
| | Launch HIP NBNXM kernel. More...
|
| |
|
template<ElecType elecType, VdwType vdwType, bool doPrune, bool doCalcEnergies, PairlistType pairlistType> |
| static const std::string | getKernelName () |
| | Lookup kernel name based on launch configuration.
|
| |
| template<bool doPruneNBL, bool doCalcEnergies, enum ElecType elecType, enum VdwType vdwType, int nthreadZ, int minBlocksPerMp, PairlistType pairlistType> |
| | __launch_bounds__ (c_clSizeSq< pairlistType > *nthreadZ, minBlocksPerMp) __global__ static void nbnxmKernel(NBAtomDataGpu atdat |
| | Main kernel for NBNXM. More...
|
| |
| template<PairlistType pairlistType, bool haveFreshList, int threadZ, int minBlocksPp> |
| | __launch_bounds__ (c_clSizeSq< pairlistType > *threadZ, minBlocksPp) __global__ static void nbnxmKernelPruneOnly(NBAtomDataGpu atdat |
| | Prune-only kernel for NBNXM. More...
|
| |
| void | launchNbnxmKernelPruneOnly (NbnxmGpu *nb, const InteractionLocality iloc, const int *numParts, const int numSciInPart) |
| | Launch HIP NBNXM prune-only kernel. More...
|
| |
| template<int threadsPerBlock> |
| | __launch_bounds__ (threadsPerBlock) __global__ void nbnxmKernelBucketSciSort(GpuPairlist plist) |
| | HIP bucket sci sort kernel. More...
|
| |
|
void | launchNbnxmKernelHelperSciSort (const DeviceStream &deviceStream, GpuPairlist *plist) |
| | NBNXM kernel launch code.
|
| |
|
void | launchNbnxmKernelSciSort (NbnxmGpu *nb, InteractionLocality iloc) |
| | Launch kernel to sum up energies and shifts.
|
| |
|
template<PairlistType pairlistType> |
| __device__ __forceinline__ int | nb_any_internal (int predicate, int widx) |
| |
| template<PairlistType pairlistType, typename T > |
| __device__ size_t | incrementSharedMemorySlotPtr () |
| | Increment the pointer into shared memory. More...
|
| |
|
size_t | numberOfKernelBlocksSanityCheck (int numSci, const DeviceInformation &deviceInfo) |
| |
|
template<bool isPruneKernel, int numThreadZ, VdwType vdwType, PairlistType pairlistType> |
| constexpr size_t | requiredSharedMemorySize () |
| |
|
bool | targetHasLargeRegisterPool (const DeviceInformation &deviceInfo) |
| | Find out if the target device has a large enough register pool (MI2xx and later)
|
| |
|
static __device__ float2 | fetchNbfpC6C12 (const float2 *nbfpComb, int type) |
| |
| template<PairlistType pairlistType> |
| static __device__ float | reduceForceJWarpShuffle (AmdPackedFloat3 f, const int tidxi) |
| | Reduce c_clSize j-force components using AMD DPP instruction. More...
|
| |
| template<PairlistType pairlistType> |
| static __device__ float | reduceForceIWarpShuffle (AmdPackedFloat3 f, const int tidxi, const int tidxj) |
| | Lowest level i force reduction. More...
|
| |
| template<PairlistType pairlistType, bool calculateShift> |
| static __device__ float3 | reduceForceIAtomics (AmdPackedFloat3 input, float3 *result, const int tidxj, const int aidx) |
| | Lowest level i force reduction. More...
|
| |
| template<bool calculateShift, PairlistType pairlistType> |
| static __device__ void | reduceForceI (AmdPackedFloat3 *input, float3 *result, const int tidxi, const int tidxj, const int tidx, const int sci, float3 *fShift, const int shiftBase) |
| | Reduce i forces. More...
|
| |
| template<PairlistType pairlistType> |
| static __device__ void | reduceEnergyWarpShuffle (float localLJ, float localEl, float *gm_LJ, float *gm_El, int tidx) |
| | Energy reduction kernel for regular nbnxm kernels. More...
|
| |
|
void | clear_fshift (real *fshift) |
| | Clears the shift forces.
|
| |
|
void | reduce_energies_over_lists (const nbnxm_atomdata_t *nbat, int nlist, real *Vvdw, real *Vc) |
| | Reduces the collected energy terms over the pair-lists/threads.
|
| |
enum EwaldExclusionType int
typedef void() | NbnxmKernelFunc (const NbnxmPairlistCpu &nbl, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| | Pair-interaction kernel type that also calculates energies.
|
| |
|
CoulombKernelType | getCoulombKernelType (EwaldExclusionType ewaldExclusionType, CoulombInteractionType coulombInteractionType, bool haveEqualCoulombVwdRadii, bool nbnxmIsDirectCoulombProvider) |
| | Lookup function for Coulomb kernel type.
|
| |
|
int | getVdwKernelType (NbnxmKernelType kernelType, LJCombinationRule ljCombinationRule, VanDerWaalsType vanDerWaalsType, InteractionModifiers interactionModifiers, LongRangeVdW longRangeVdW) |
| | Lookup function for Vdw kernel type.
|
| |
| static void | nbnxm_kernel_cpu (const PairlistSet &pairlistSet, const NbnxmKernelSetup &kernelSetup, nbnxm_atomdata_t *nbat, const interaction_const_t &ic, gmx::ArrayRef< const gmx::RVec > shiftVectors, const gmx::StepWorkload &stepWork, int clearF, real *vCoulomb, real *vVdw, gmx_wallcycle *wcycle) |
| | Dispatches the non-bonded N versus M atom cluster CPU kernels. More...
|
| |
|
static void | accountFlops (t_nrnb *nrnb, const PairlistSet &pairlistSet, const nonbonded_verlet_t &nbv, const interaction_const_t &ic, const gmx::StepWorkload &stepWork) |
| |
|
void | nbnxm_kernel_gpu_ref (const NbnxmPairlistGpu *nbl, const nbnxm_atomdata_t *nbat, const interaction_const_t &iconst, ArrayRef< const RVec > shiftvec, const StepWorkload &stepWork, int clearF, ArrayRef< real > f, real *fshift, real *Vc, real *Vvdw) |
| | Reference (slow) kernel for nb n vs n GPU type pair lists.
|
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJ_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJ_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJ_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJFsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJFsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJFsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJPsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJPsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJPsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJEwCombGeom_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJEwCombGeom_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJEwCombGeom_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJEwCombLB_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJEwCombLB_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecRF_VdwLJEwCombLB_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJ_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJ_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJ_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJFsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJFsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJFsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJPsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJPsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJPsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJEwCombGeom_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJEwCombGeom_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJEwCombGeom_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJEwCombLB_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJEwCombLB_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTab_VdwLJEwCombLB_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJ_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJ_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJ_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJFsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJFsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJFsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJPsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJPsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJPsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJEwCombGeom_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJEwCombGeom_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJEwCombGeom_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJEwCombLB_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJEwCombLB_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_1x1_ElecQSTabTwinCut_VdwLJEwCombLB_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJ_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJ_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJ_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJFsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJFsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJFsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJPsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJPsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJPsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJEwCombGeom_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJEwCombGeom_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJEwCombGeom_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJEwCombLB_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJEwCombLB_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecRF_VdwLJEwCombLB_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJ_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJ_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJ_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJFsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJFsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJFsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJPsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJPsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJPsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJEwCombGeom_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJEwCombGeom_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJEwCombGeom_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJEwCombLB_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJEwCombLB_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTab_VdwLJEwCombLB_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJ_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJ_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJ_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJFsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJFsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJFsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJPsw_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJPsw_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJPsw_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJEwCombGeom_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJEwCombGeom_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJEwCombGeom_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJEwCombLB_F_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJEwCombLB_VF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
void | nbnxm_kernel_4x4_ElecQSTabTwinCut_VdwLJEwCombLB_VgrpF_ref (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
| template<NbnxmKernelType kernelType> |
| void | nbnxmRefPruneKernel (NbnxmPairlistCpu *nbl, const nbnxm_atomdata_t *nbat, ArrayRef< const RVec > shiftvec, real rlistInner) |
| | Prune a single NbnxmPairlistCpu entry with distance rlistInner. More...
|
| |
|
template void | nbnxmRefPruneKernel< NbnxmKernelType::Cpu4x4_PlainC > (NbnxmPairlistCpu *nbl, const nbnxm_atomdata_t *nbat, ArrayRef< const RVec > shiftvec, real rlistInner) |
| |
|
template void | nbnxmRefPruneKernel< NbnxmKernelType::Cpu1x1_PlainC > (NbnxmPairlistCpu *nbl, const nbnxm_atomdata_t *nbat, ArrayRef< const RVec > shiftvec, real rlistInner) |
| |
| template<KernelLayout kernelLayout, KernelCoulombType coulombType, VdwCutoffCheck vdwCutoffCheck, LJCombinationRule ljCombinationRule, InteractionModifiers vdwModifier, LJEwald ljEwald, EnergyOutput energyOutput> |
| void | nbnxmKernelSimd (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| | The actual NBNxM SIMD kernel. More...
|
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r2xMM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::None > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::System > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::RF, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldTabulated, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::No, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::EwaldAnalytical, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::Geometric, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::LorentzBerthelot, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::ForceSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotSwitch, LJEwald::None, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
|
template void | nbnxmKernelSimd< KernelLayout::r4xM, KernelCoulombType::None, VdwCutoffCheck::Yes, LJCombinationRule::None, InteractionModifiers::PotShift, LJEwald::CombGeometric, EnergyOutput::GroupPairs > (const NbnxmPairlistCpu &pairlist, const nbnxm_atomdata_t &nbat, const interaction_const_t &ic, const rvec *shift_vec, nbnxm_atomdata_output_t *out) |
| |
std::unique_ptr
< nonbonded_verlet_t > | init_nb_verlet (const MDLogger &mdlog, const t_inputrec &inputrec, const t_forcerec &forcerec, const MpiComm &mpiComm, const gmx_domdec_t *dd, const gmx_hw_info_t &hardwareInfo, bool useGpuForNonbonded, bool useGpuForNonbondedFE, const DeviceStreamManager *deviceStreamManager, const gmx_mtop_t &mtop, bool localAtomOrderMatchesNbnxmOrder, ObservablesReducerBuilder *observablesReducerBuilder, ArrayRef< const RVec > coordinates, matrix box, gmx_wallcycle *wcycle) |
| | Creates an Nbnxm object.
|
| |
| void | nbnxm_put_on_grid_nonlocal (nonbonded_verlet_t *nb_verlet, const gmx::DomdecZones &zones, ArrayRef< const int32_t > atomInfo, ArrayRef< const RVec > x) |
| | As nbnxm_put_on_grid, but for the non-local atoms. More...
|
| |
|
std::optional< std::string > | nbnxmGpuClusteringDescription () |
| | Returns information for describing the NBNXM GPU clustering support, if applicable to the build.
|
| |
|
static constexpr bool | isGpuKernelType (const NbnxmKernelType kernelType) |
| |
|
const char * | nbnxmKernelTypeToName (NbnxmKernelType kernelType) |
| |
|
static constexpr bool | sc_isGpuSpecificPairlist (const PairlistType pairlistType) |
| |
|
static constexpr int | sc_gpuClusterSize (const PairlistType pairlistType) |
| | The NBNxM GPU i-cluster size in atoms for the given NBNxM GPU kernel layout.
|
| |
|
static constexpr int | sc_gpuNumClusterPerBinX (const PairlistType pairlistType) |
| | The number of super clusters in the X dimension.
|
| |
|
static constexpr int | sc_gpuNumClusterPerBinY (const PairlistType pairlistType) |
| | The number of super clusters in the X dimension.
|
| |
|
static constexpr int | sc_gpuNumClusterPerBinZ (const PairlistType pairlistType) |
| | The number of super clusters in the X dimension.
|
| |
|
static constexpr int | sc_gpuClusterPerSuperCluster (const PairlistType pairlistType) |
| | The NBNxM GPU super cluster size according to the kernel layout.
|
| |
|
static constexpr int | sc_gpuNumClusterPerBin (const PairlistType pairlistType) |
| | The NBNxM GPU super cluster size according to the kernel layout.
|
| |
| static constexpr int | sc_gpuClusterPairSplit (const PairlistType pairlistType) |
| | The number of sub-parts used for data storage for a GPU cluster pair. More...
|
| |
|
static constexpr bool | sc_gpuPairlistHasSplitJCluster (const PairlistType pairlistType) |
| |
|
static constexpr int | sc_gpuSplitJClusterSize (const PairlistType pairlistType) |
| | The size of the J clusters on the GPU, after taking pair splitting into account.
|
| |
|
constexpr int | sc_gpuJgroupSize (const PairlistType pairlistType) |
| | With GPU kernels we group cluster pairs in 4 to optimize memory usage of integers containing 32 bits.
|
| |
|
static constexpr int | sc_gpuParallelExecutionWidth (const PairlistType pairlistType) |
| | Parallel execution width corresponding to the current kernel layout.
|
| |
|
static constexpr int | sc_gpuExclSize (const PairlistType pairlistType) |
| | The fixed size of the exclusion mask array for a half GPU cluster pair.
|
| |
| real | nbnxmPairlistVolumeRadiusIncrease (bool useGpu, real atomDensity) |
| | Returns the increase in pairlist radius when including volume of pairs beyond rlist. More...
|
| |
| real | nbnxm_get_rlist_effective_inc (int clusterSize, const RVec &averageClusterBoundingBox) |
| | Returns the effective list radius of the pair-list. More...
|
| |
|
static int | get_2log (int n) |
| | Returns the base-2 log of n.
- Generates a fatal error when n is not an integer power of 2.
|
| |
|
static constexpr int | sc_iClusterSize (const NbnxmKernelType kernelType) |
| | The nbnxm i-cluster size in atoms for the given NBNxM kernel type.
|
| |
| static constexpr int | sc_jClusterSize (const NbnxmKernelType kernelType) |
| | The nbnxm j-cluster size in atoms for the given NBNxM kernel type. More...
|
| |
|
static constexpr bool | kernelTypeIsSimd (const NbnxmKernelType kernelType) |
| | Returns whether a SIMD kernel is in use.
|
| |
|
static constexpr bool | kernelTypeIsPlainC (const NbnxmKernelType kernelType) |
| | Returns whether a plain-C kernel is in use.
|
| |
|
static constexpr bool | kernelTypeUsesSimplePairlist (const NbnxmKernelType kernelType) |
| | Returns whether the pair-list corresponding to kernelType is simple.
|
| |
| static bool | useLjCombRule (const enum VdwType vdwType) |
| | Returns true if LJ combination rules are used in the non-bonded kernels. More...
|
| |
| void | gpu_copy_xq_to_gpu (NbnxmGpu gmx_unused *nb, const struct nbnxm_atomdata_t gmx_unused *nbdata, AtomLocality gmx_unused aloc) |
| | Launch asynchronously the xq buffer host to device copy. More...
|
| |
| void | gpu_launch_kernel (NbnxmGpu gmx_unused *nb, const StepWorkload gmx_unused &stepWork, InteractionLocality gmx_unused iloc) |
| | Launch asynchronously the nonbonded force calculations. More...
|
| |
| void | gpu_launch_kernel_pruneonly (NbnxmGpu gmx_unused *nb, InteractionLocality gmx_unused iloc, int gmx_unused numParts) |
| | Launch asynchronously the nonbonded prune-only kernel. More...
|
| |
|
void | gpu_launch_cpyback (NbnxmGpu gmx_unused *nb, nbnxm_atomdata_t gmx_unused *nbatom, const StepWorkload gmx_unused &stepWork, AtomLocality gmx_unused aloc) |
| | Launch asynchronously the download of short-range forces from the GPU (and energies/shift forces if required).
|
| |
| bool | gpu_try_finish_task (NbnxmGpu gmx_unused *nb, const StepWorkload gmx_unused &stepWork, AtomLocality gmx_unused aloc, real gmx_unused *e_lj, real gmx_unused *e_el, double gmx_unused *dvdl_lj, double gmx_unused *dvdl_el, ArrayRef< RVec > gmx_unused shiftForces, ForeignLambdaTerms gmx_unused *foreign_term, GpuTaskCompletion gmx_unused completionKind) |
| | Attempts to complete nonbonded GPU task. More...
|
| |
| float | gpu_wait_finish_task (NbnxmGpu gmx_unused *nb, const StepWorkload gmx_unused &stepWork, AtomLocality gmx_unused aloc, const bool gmx_unused haveSoftCore, gmx_enerdata_t gmx_unused *enerd, ArrayRef< RVec > gmx_unused shiftForces, gmx_wallcycle gmx_unused *wcycle) |
| | Completes the nonbonded GPU task blocking until GPU tasks and data transfers to finish. More...
|
| |
|
void | nbnxm_gpu_init_x_to_nbat_x (const GridSet gmx_unused &gridSet, NbnxmGpu gmx_unused *gpu_nbv) |
| | Initialization for X buffer operations on GPU. Called on the NS step and performs (re-)allocations and memory copies. !
|
| |
| void | nbnxm_gpu_x_to_nbat_x (NbnxmGpu gmx_unused *gpu_nbv, DeviceBuffer< RVec > gmx_unused d_x, GpuEventSynchronizer gmx_unused *xReadyOnDevice, AtomLocality gmx_unused locality) |
| | X buffer operations on GPU: performs conversion from rvec to nb format. More...
|
| |
| void | nbnxmInsertNonlocalGpuDependency (NbnxmGpu gmx_unused *nb, InteractionLocality gmx_unused interactionLocality) |
| | Sync the nonlocal stream with dependent tasks in the local queue. More...
|
| |
| void | setupGpuShortRangeWorkLow (NbnxmGpu gmx_unused *nb, const ListedForcesGpu gmx_unused *listedForcesGpu, InteractionLocality gmx_unused iLocality) |
| | Set up internal flags that indicate what type of short-range work there is. More...
|
| |
| bool | haveGpuShortRangeWork (const NbnxmGpu gmx_unused *nb, InteractionLocality gmx_unused interactionLocality) |
| | Returns true if there is GPU short-range work for the given interaction locality. More...
|
| |
|
void | nbnxm_gpu_x_to_nbat_x (NbnxmGpu *nb, DeviceBuffer< RVec > d_x, GpuEventSynchronizer *xReadyOnDevice, const AtomLocality locality) |
| |
|
static void | init_ewald_coulomb_force_table (const EwaldCorrectionTables &tables, NBParamGpu *nbp, const DeviceContext &deviceContext, const DeviceStream &deviceStream) |
| |
|
static bool | useTabulatedEwaldByDefault (InteractionModifiers vdwModifier, const DeviceInformation &deviceInfo) |
| |
|
static ElecType | nbnxm_gpu_pick_ewald_kernel_type (const interaction_const_t &ic, const DeviceInformation &deviceInfo) |
| |
|
static void | set_cutoff_parameters (NBParamGpu *nbp, const interaction_const_t &ic, const PairlistParams &listParams) |
| |
|
static void | init_timings (gmx_wallclock_gpu_nbnxm_t *t) |
| |
|
static void | initAtomdataFirst (NBAtomDataGpu *atomdata, int numTypes, const DeviceContext &deviceContext, const DeviceStream &localStream, const std::optional< size_t > nLambda) |
| | Initialize atomdata first time; it only gets filled at pair-search.
|
| |
|
static VdwType | nbnxmGpuPickVdwKernelType (const interaction_const_t &ic, LJCombinationRule ljCombinationRule) |
| |
|
static ElecType | nbnxmGpuPickElectrostaticsKernelType (const interaction_const_t &ic, const DeviceInformation &deviceInfo) |
| |
|
static void | initNbparam (NBParamGpu *nbp, const interaction_const_t &ic, const PairlistParams &listParams, const nbnxm_atomdata_t::Params &nbatParams, const DeviceContext &deviceContext, const DeviceStream &localStream, const std::optional< size_t > nLambda) |
| | Initialize the nonbonded parameter data structure.
|
| |
|
static GpuPairlistByLocality | initializeGpuLists (bool localAndNonLocal) |
| |
static gmx_unused
GpuFeplistByLocality | initializeGpuFepLists (bool localAndNonLocal) |
| |
|
void | copy_gpu_fepparams (NbnxmGpu *nb, const bool bFepGpuNonBonded, const float alphaCoul, const float alphaVdw, const int lambdaPower, const float sigma6WithInvalidSigma, const float sigma6Minimum, const float lambdaCoul, const float lambdaVdw, const int nLambda, const EnumerationArray< FreeEnergyPerturbationCouplingType, std::vector< double >> &all_lambda) |
| |
|
| nbst (hostAllocationPolicy, nLambda) |
| |
|
NbnxmGpu * | gpu_init (const DeviceStreamManager &deviceStreamManager, const interaction_const_t *ic, const PairlistParams &listParams, const nbnxm_atomdata_t *nbat, const bool bLocalAndNonlocal, const std::optional< size_t > nLambda) |
| |
|
void | gpu_pme_loadbal_update_param (nonbonded_verlet_t *nbv, const interaction_const_t &ic) |
| |
|
void | gpu_upload_shiftvec (NbnxmGpu *nb, const nbnxm_atomdata_t *nbatom) |
| |
|
void | gpu_init_pairlist (NbnxmGpu *nb, const NbnxmPairlistGpu *h_plist, const InteractionLocality iloc) |
| | This function is documented in the header file.
|
| |
|
void | gpu_init_feppairlist (NbnxmGpu *nb, const AtomPairlist &h_feplist, const InteractionLocality iloc, ArrayRef< const int > atomIndices) |
| |
|
void | gpu_init_atomdata (NbnxmGpu *nb, const nbnxm_atomdata_t *nbat) |
| |
|
void | gpu_clear_outputs (NbnxmGpu *nb, bool computeVirial) |
| |
|
gmx_wallclock_gpu_nbnxm_t * | gpu_get_timings (NbnxmGpu *nb) |
| | This function is documented in the header file.
|
| |
|
void | gpu_reset_timings (nonbonded_verlet_t *nbv) |
| | This function is documented in the header file.
|
| |
|
bool | gpu_is_kernel_ewald_analytical (const NbnxmGpu *nb) |
| |
|
void | setupGpuShortRangeWorkLow (NbnxmGpu *nb, const ListedForcesGpu *listedForcesGpu, const InteractionLocality iLocality) |
| |
|
bool | haveGpuShortRangeWork (const NbnxmGpu *nb, const InteractionLocality interactionLocality) |
| |
|
void | gpu_launch_cpyback (NbnxmGpu *nb, struct nbnxm_atomdata_t *nbatom, const StepWorkload &stepWork, const AtomLocality atomLocality) |
| | Launch asynchronously the download of nonbonded forces from the GPU (and energies/shift forces if required).
|
| |
|
void | nbnxmInsertNonlocalGpuDependency (NbnxmGpu *nb, const InteractionLocality interactionLocality) |
| |
|
void | gpu_copy_xq_to_gpu (NbnxmGpu *nb, const nbnxm_atomdata_t *nbatom, const AtomLocality atomLocality) |
| | Launch asynchronously the xq buffer host to device copy.
|
| |
| static FusedXToXqLaunchParams | setupFusedXToXqLaunchParams (ArrayRef< const Grid > grids, int gridBegin, int numCellsMax) |
| | Compute all kernel launch parameters for a given set of grids. More...
|
| |
|
void | nbnxm_gpu_init_x_to_nbat_x (const GridSet &gridSet, NbnxmGpu *gpu_nbv) |
| |
|
void | gpu_free (NbnxmGpu *nb) |
| | This function is documented in the header file.
|
| |
|
NBAtomDataGpu * | gpuGetNBAtomData (NbnxmGpu *nb) |
| |
|
DeviceBuffer< RVec > | gpu_get_f (NbnxmGpu *nb) |
| |
| static | __attribute__ ((always_inline)) Float2 convertSigmaEpsilonToC6C12(const float sigma |
| | Convert sigma and epsilon VdW parameters to c6,c12 pair. More...
|
| |
|
if | constexpr (calcFr) |
| |
|
if | constexpr (doCalcEnergies) |
| |
| static bool | nbnxmSimdSupported (const MDLogger &mdlog, const t_inputrec &inputrec) |
| | Returns whether CPU SIMD support exists for the given inputrec. More...
|
| |
| static NbnxmKernelType | pickNbnxmKernelCpuSimdType (const t_inputrec &inputrec, const gmx_hw_info_t gmx_unused &hardwareInfo) |
| | Returns the most suitable CPU SIMD kernel type. More...
|
| |
| static EwaldExclusionType | pickNbnxmKernelCpuSimdExclusion (const gmx_hw_info_t gmx_unused &hardwareInfo) |
| | Returns the most suitable CPU SIMD kernel exclusion type. More...
|
| |
|
static NbnxmKernelSetup | pickNbnxmKernelCpu (const t_inputrec &inputrec, const gmx_hw_info_t &hardwareInfo, bool useSimd, const MDLogger &mdlog) |
| | Returns the most suitable CPU kernel type and Ewald handling.
|
| |
|
static NbnxmKernelSetup | pick_nbnxm_kernel (const gmx::MDLogger &mdlog, gmx_bool use_simd_kernels, const gmx_hw_info_t &hardwareInfo, const PairlistType gpuPairlistType, const NonbondedResource &nonbondedResource, const t_inputrec &inputrec) |
| | Returns the most suitable kernel type and Ewald handling.
|
| |
|
static int | getMinimumIlistCountForGpuBalancing (NbnxmGpu *nbnxmGpu) |
| | Gets and returns the minimum i-list count for balancing based on the GPU used or env.var. when set.
|
| |
static std::optional
< LJCombinationRule > | chooseLJCombinationRule (const t_forcerec &forcerec) |
| | Returns the LJ combination rule choices for the LJ pair parameters.
|
| |
|
static LJCombinationRule | chooseLJPmeCombinationRule (const t_forcerec &forcerec) |
| | Returns the LJ combination rule choices for the LJ PME-grid parameters.
|
| |
|
static void | validate_global_work_size (const KernelLaunchConfig &config, int work_dim, const DeviceInformation *dinfo) |
| | Validates the input global work size parameter.
|
| |
| static cl_kernel | selectPruneKernel (cl_kernel kernel_pruneonly[], bool firstPrunePass) |
| | Return a pointer to the prune kernel version to be executed at the current invocation. More...
|
| |
|
static cl_kernel | select_nbnxm_kernel (NbnxmGpu *nb, enum ElecType elecType, enum VdwType vdwType, bool bDoEne, bool bDoPrune) |
| | Return a pointer to the kernel version to be executed at the current step. OpenCL kernel objects are cached in nb. If the requested kernel is not found in the cache, it will be created and the cache will be updated.
|
| |
|
static int | calc_shmem_required_nonbonded (enum VdwType vdwType, bool bPrefetchLjParam) |
| | Calculates the amount of shared memory required by the nonbonded kernel in use.
|
| |
| static void | fillin_ocl_structures (NBParamGpu *nbp, cl_nbparam_params_t *nbparams_params) |
| | Initializes data structures that are going to be sent to the OpenCL device. More...
|
| |
| static int | calc_shmem_required_prune (const int num_threads_z) |
| | Calculates the amount of shared memory required by the prune kernel. More...
|
| |
|
static cl_kernel | nbnxm_gpu_create_kernel (NbnxmGpu *nb, const char *kernel_name) |
| | Initializes the OpenCL kernel pointers of the nbnxm_ocl_ptr_t input data structure.
|
| |
|
static void | nbnxm_gpu_init_kernels (NbnxmGpu *nb) |
| | Initializes the OpenCL kernel pointers of the nbnxm_ocl_ptr_t input data structure.
|
| |
|
static void | free_kernel (cl_kernel *kernel_ptr) |
| | Releases an OpenCL kernel pointer.
|
| |
|
static void | free_kernels (cl_kernel *kernels, int count) |
| | Releases a list of OpenCL kernel pointers.
|
| |
| static void | freeGpuProgram (cl_program program) |
| | Free the OpenCL program. More...
|
| |
| static std::string | makeDefinesForKernelTypes (bool bFastGen, enum ElecType elecType, enum VdwType vdwType) |
| | Returns a string with the compiler defines required to avoid all flavour generation. More...
|
| |
| void | nbnxm_gpu_compile_kernels (NbnxmGpu *nb) |
| | Compiles nbnxm kernels for OpenCL GPU given by mygpu. More...
|
| |
|
static constexpr bool | c_useSimdGpuClusterPairDistance (const PairlistType layoutType) |
| |
|
static constexpr int | sizeNeededForBufferFlags (const int numAtoms) |
| |
|
static void | resizeAndZeroBufferFlags (std::vector< gmx_bitmask_t > *flags, const int numAtoms) |
| |
|
static real | listRangeForBoundingBoxToGridBin (real rlist, const GridDimensions &gridDims) |
| |
|
static real | listRangeForGridBinToGridBin (real rlist, const GridDimensions &iGridDims, const GridDimensions &jGridDims) |
| |
|
template<int dim> |
| static void | get_cell_range (real b0, real b1, const GridDimensions &jGridDims, real d2, real rlist, int *cf, int *cl) |
| |
|
template<PairlistType layoutType> |
| static bool gmx_unused | clusterpairInRangePlainC (const NbnxmPairlistGpuWork &work, const int si, const int csj, const int jCoordStride, const real *x_j, const real rlist2) |
| |
|
template<PairlistType layoutType> |
| static bool | clusterpairInRange (const NbnxmPairlistGpuWork &work, const int si, const int csj, const int jCoordStride, const real *x_j, const real rlist2) |
| |
|
template<typename JClusterListType > |
| static int | findJClusterInJList (int jCluster, const JListRanges &ranges, const JClusterListType &cjList) |
| |
|
template<PairlistType layoutType> |
| static void | setExclusionsForIEntry (const GridSet &gridSet, NbnxmPairlistCpu *nbl, bool diagRemoved, int na_cj_2log, const ListOfLists< int > &exclusions) |
| |
|
static KernelLayoutClusterRatio | layoutClusterRatio (const Grid::Geometry &geometry) |
| | Returns the j/i cluster size ratio for the geometry of a grid.
|
| |
| static void | fep_list_new_nri_copy (AtomPairlist *nlist, int energyGroupPair=-1) |
| | Add a new entry to the i-list as a copy of the last entry. More...
|
| |
|
template<PairlistType layoutType> |
| static void | make_fep_list (ArrayRef< const int > atomIndices, const nbnxm_atomdata_t *nbat, NbnxmPairlistCpu *nbl, bool bDiagRemoved, const real shx, const real shy, const real shz, const real gmx_unused rlist_fep2, const Grid &iGrid, const Grid &jGrid, AtomPairlist *nlist) |
| |
|
template<PairlistType layoutType> |
| static int | cj_mod_cjPacked (int cj) |
| |
|
template<PairlistType layoutType> |
| static int | cj_to_cjPacked (int cj) |
| |
|
template<PairlistType layoutType> |
| static void | make_fep_list (ArrayRef< const int > atomIndices, const nbnxm_atomdata_t *nbat, NbnxmPairlistGpu *nbl, bool bDiagRemoved, real shx, real shy, real shz, real rlist_fep2, const Grid &iGrid, const Grid &jGrid, AtomPairlist *nlist) |
| |
|
template<PairlistType layoutType> |
| static void | setExclusionsForIEntry (const GridSet &gridSet, NbnxmPairlistGpu *nbl, bool diagRemoved, int gmx_unused na_cj_2log, const ListOfLists< int > &exclusions) |
| |
|
template<PairlistType layoutType> |
| static void | addNewIEntry (NbnxmPairlistCpu *nbl, int ci, int shift, int flags) |
| |
|
template<PairlistType layoutType> |
| static void | addNewIEntry (NbnxmPairlistGpu *nbl, int sci, int shift, int gmx_unused flags) |
| |
|
static void | sort_cj_excl (nbnxm_cj_t *cj, int ncj, NbnxmPairlistCpuWork *work) |
| |
|
template<PairlistType layoutType> |
| static void | closeIEntry (NbnxmPairlistCpu *nbl, int gmx_unused sp_max_av, bool gmx_unused progBal, float gmx_unused nsp_tot_est, int gmx_unused thread, int gmx_unused nthread) |
| |
|
template<PairlistType layoutType> |
| static void | split_sci_entry (NbnxmPairlistGpu *nbl, int nsp_target_av, bool progBal, float nsp_tot_est, int thread, int nthread) |
| |
|
template<PairlistType layoutType> |
| static void | closeIEntry (NbnxmPairlistGpu *nbl, int nsp_max_av, bool progBal, float nsp_tot_est, int thread, int nthread) |
| |
|
template<PairlistType layoutType> |
| static void | sync_work (NbnxmPairlistCpu gmx_unused *nbl) |
| |
|
template<PairlistType layoutType> |
| static void | sync_work (NbnxmPairlistGpu *nbl) |
| |
|
static void | clear_pairlist (NbnxmPairlistCpu *nbl) |
| |
|
static void | clear_pairlist (NbnxmPairlistGpu *nbl) |
| |
|
static void | set_icell_bb_simple (ArrayRef< const BoundingBox > bb, int ci, const RVec &shift, BoundingBox *bb_ci) |
| |
|
template<PairlistType layoutType> |
| static void | set_icell_bb (const Grid &iGrid, int ci, const RVec &shift, NbnxmPairlistCpuWork *work) |
| |
|
template<PairlistType layoutType> |
| static gmx_unused void | set_icell_bbxxxx_supersub (ArrayRef< const float > bb, int ci, const RVec &shift, float *bb_ci) |
| |
|
template<PairlistType layoutType> |
| static gmx_unused void | set_icell_bb_supersub (ArrayRef< const BoundingBox > bb, int ci, const RVec &shift, BoundingBox *bb_ci) |
| |
|
template<PairlistType layoutType> |
| static gmx_unused void | set_icell_bb (const Grid &iGrid, int ci, const RVec &shift, NbnxmPairlistGpuWork *work) |
| |
|
template<ClusterDistanceKernelType kernelType> |
| static void | icellSetXSimple (int ci, const RVec &shift, int stride, const real *x, NbnxmPairlistCpuWork::IClusterData *iClusterData) |
| |
|
template<PairlistType > |
| static void | icell_set_x (int ci, const RVec &shift, int stride, const real *x, const ClusterDistanceKernelType kernelType, NbnxmPairlistCpuWork *work) |
| |
|
template<PairlistType layoutType> |
| static void | icell_set_x (int ci, const RVec &shift, int stride, const real *x, ClusterDistanceKernelType, NbnxmPairlistGpuWork *work) |
| |
|
template<PairlistType layoutType> |
| static real | minimum_subgrid_size_xy (const Grid &grid) |
| |
|
template<PairlistType layoutType> |
| static real | effective_buffer_1x1_vs_MxN (const Grid &iGrid, const Grid &jGrid) |
| |
|
static real | nonlocal_vol2 (const gmx::DomdecZones &zones, const rvec ls, real r) |
| |
|
static void | get_nsubpair_target (const GridSet &gridSet, const InteractionLocality iloc, const real rlist, const int min_ci_balanced, int *nsubpair_target, float *nsubpair_tot_est) |
| |
|
static void | print_nblist_ci_cj (FILE *fp, const NbnxmPairlistCpu &nbl) |
| |
|
template<PairlistType layoutType> |
| static void | print_nblist_sci_cj (FILE *fp, const NbnxmPairlistGpu &nbl) |
| |
|
template<PairlistType layoutType> |
| static void | combine_nblists (ArrayRef< const NbnxmPairlistGpu > nbls, NbnxmPairlistGpu *nblc) |
| |
|
static void | balance_fep_lists (ArrayRef< std::unique_ptr< AtomPairlist >> fepLists, ArrayRef< PairsearchWork > work) |
| |
|
static void | combine_fep_lists (ArrayRef< std::unique_ptr< AtomPairlist >> fepLists) |
| |
|
static float | boundingbox_only_distance2 (const GridDimensions &iGridDims, const GridDimensions &jGridDims, real rlist, bool simple, const PairlistType layoutType) |
| |
|
static int | get_ci_block_size (const Grid &iGrid, const bool haveMultipleDomains, const int numLists) |
| | Returns a suitable block size, in cells, per thread that will generate reasonably balanced lists.
|
| |
|
static int | getBufferFlagShift (int numAtomsPerCluster) |
| |
|
static void | makeClusterListWrapper (NbnxmPairlistCpu *nbl, const Grid gmx_unused &iGrid, const int ci, const Grid &jGrid, const int firstBin, const int lastBin, const bool excludeSubDiagonal, const nbnxm_atomdata_t *nbat, const real rlist2, const real rbb2, const ClusterDistanceKernelType kernelType, int *numDistanceChecks) |
| |
|
static void | makeClusterListWrapper (NbnxmPairlistGpu *nbl, const Grid &gmx_unused iGrid, const int ci, const Grid &jGrid, const int firstBin, const int lastBin, const bool excludeSubDiagonal, const nbnxm_atomdata_t *nbat, const real rlist2, const real rbb2, ClusterDistanceKernelType gmx_unused kernelType, int *numDistanceChecks) |
| |
|
static int | getNumSimpleJClustersInList (const NbnxmPairlistCpu &nbl) |
| |
|
static int | getNumSimpleJClustersInList (const gmx_unused NbnxmPairlistGpu &nbl) |
| |
|
static void | incrementNumSimpleJClustersInList (NbnxmPairlistCpu *nbl, int ncj_old_j) |
| |
|
static void | incrementNumSimpleJClustersInList (NbnxmPairlistGpu gmx_unused *nbl, int gmx_unused ncj_old_j) |
| |
|
static void | checkListSizeConsistency (const NbnxmPairlistCpu &nbl, const bool haveFreeEnergy) |
| |
|
static void | checkListSizeConsistency (const NbnxmPairlistGpu gmx_unused &nbl, bool gmx_unused haveFreeEnergy) |
| |
|
static void | setBufferFlags (const NbnxmPairlistCpu &nbl, const int ncj_old_j, const int gridj_flag_shift, gmx_bitmask_t *gridj_flag, const int th) |
| |
|
static void | setBufferFlags (const NbnxmPairlistGpu gmx_unused &nbl, int gmx_unused ncj_old_j, int gmx_unused gridj_flag_shift, gmx_bitmask_t gmx_unused *gridj_flag, int gmx_unused th) |
| |
|
template<typename T > |
| static void | nbnxm_make_pairlist_part (const GridSet &gridSet, const Grid &iGrid, const Grid &jGrid, PairsearchWork *work, const nbnxm_atomdata_t *nbat, const ListOfLists< int > &exclusions, const bool includeAllPairs, real rlist, const PairlistType pairlistType, bool bFBufferFlag, int nsubpair_max, bool progBal, float nsubpair_tot_est, int th, int nth, T *nbl, AtomPairlist *nbl_fep) |
| |
|
static void | reduce_buffer_flags (ArrayRef< PairsearchWork > searchWork, int nsrc, ArrayRef< gmx_bitmask_t > dest) |
| |
|
static void | print_reduction_cost (ArrayRef< const gmx_bitmask_t > flags, int nout) |
| |
|
template<bool setFlags> |
| static void | copySelectedListRange (const nbnxm_ci_t *gmx_restrict srcCi, const NbnxmPairlistCpu *gmx_restrict src, NbnxmPairlistCpu *gmx_restrict dest, gmx_bitmask_t *flag, int iFlagShift, int jFlagShift, int t) |
| |
|
static int | countClusterpairs (ArrayRef< const NbnxmPairlistCpu > pairlists) |
| |
|
static void | rebalanceSimpleLists (ArrayRef< const NbnxmPairlistCpu > srcSet, ArrayRef< NbnxmPairlistCpu > destSet, ArrayRef< PairsearchWork > searchWork) |
| |
|
static bool | checkRebalanceSimpleLists (ArrayRef< const NbnxmPairlistCpu > lists) |
| |
|
static void | sort_sci (NbnxmPairlistGpu *nbl) |
| |
|
static Range< int > | getIZoneRange (const GridSet::DomainSetup &domainSetup, const InteractionLocality locality) |
| |
|
static Range< int > | getJZoneRange (const gmx::DomdecZones *ddZones, const InteractionLocality locality, const int iZone) |
| |
|
static ArrayRef< const Grid > | getGridList (ArrayRef< const Grid > grids, const Range< int > &ddZoneRange) |
| |
|
static void | prepareListsForDynamicPruning (ArrayRef< NbnxmPairlistCpu > lists) |
| | Prepares CPU lists produced by the search for dynamic pruning.
|
| |
|
static bool | isLastLocality (const PairSearch &pairSearch, const InteractionLocality iLocality) |
| | Returns whether iLocality is the last locality to construct pairlists for.
|
| |
|
template<PairlistType layoutType> |
| static int | atomIndexInClusterpairSplit (const int atomIndex) |
| | Returns the index of atom with index atomIndex within a split (or whole when not split) cluster-pair.
|
| |
|
constexpr bool | nbnxmSortListsOnGpu () |
| | Whether we want to use GPU for neighbour list sorting.
|
| |
| template<typename T , int iClusterSize, int jClusterSize> |
constexpr std::array< T,
iClusterSize/jClusterSize > | diagonalMaskJSmallerI () |
| | Returns a diagonal interaction mask with atoms j<i masked out. More...
|
| |
| template<typename T , int iClusterSize, int jClusterSize> |
constexpr std::array< T,
jClusterSize/iClusterSize > | diagonalMaskJLargerI () |
| | Returns a diagonal interaction mask with atoms j>i masked out. More...
|
| |
| template<int iClusterSize, int jClusterSize> |
| static gmx_unused uint32_t | getImask (const bool maskOutSubDiagonal, const int ci, const int cj) |
| | Returns a diagonal or off-diagonal interaction mask. More...
|
| |
|
template<ClusterDistanceKernelType kernelType> |
| static gmx_unused constexpr int | sc_iClusterSizeSimd () |
| |
|
template<ClusterDistanceKernelType kernelType> |
| static gmx_unused constexpr int | sc_jClusterSizeSimd () |
| |
|
template<ClusterDistanceKernelType kernelType> |
| static gmx_unused constexpr int | sc_xStride () |
| | Stride of the packed x coordinate array.
|
| |
|
template<ClusterDistanceKernelType kernelType> |
| static gmx_unused int | xIndexFromCi (int ci) |
| | Returns the nbnxm coordinate data index given the i-cluster index.
|
| |
|
template<ClusterDistanceKernelType kernelType> |
| static gmx_unused int | xIndexFromCj (int cj) |
| | Returns the nbnxm coordinate data index given the j-cluster index.
|
| |
| template<ClusterDistanceKernelType kernelType, int jSubClusterIndex> |
| static gmx_unused int | cjFromCi (int ci) |
| | Returns the j-cluster index given the i-cluster index. More...
|
| |
|
void | setICellCoordinatesSimd4xM (int gmx_unused ci, const RVec gmx_unused &shift, int gmx_unused stride, const real gmx_unused *x, NbnxmPairlistCpuWork gmx_unused *work) |
| |
|
void | setICellCoordinatesSimd2xMM (int gmx_unused ci, const RVec gmx_unused &shift, int gmx_unused stride, const real gmx_unused *x, NbnxmPairlistCpuWork gmx_unused *work) |
| |
|
void | makeClusterListSimd4xM (const Grid gmx_unused &jGrid, NbnxmPairlistCpu gmx_unused *nbl, int gmx_unused icluster, int gmx_unused firstBin, int gmx_unused lastBin, bool gmx_unused excludeSubDiagonal, const real gmx_unused *gmx_restrict x_j, real gmx_unused rlist2, float gmx_unused rbb2, int gmx_unused *gmx_restrict numDistanceChecks) |
| |
|
void | makeClusterListSimd2xMM (const Grid gmx_unused &jGrid, NbnxmPairlistCpu gmx_unused *nbl, int gmx_unused icluster, int gmx_unused firstBin, int gmx_unused lastBin, bool gmx_unused excludeSubDiagonal, const real gmx_unused *gmx_restrict x_j, real gmx_unused rlist2, float gmx_unused rbb2, int gmx_unused *gmx_restrict numDistanceChecks) |
| |
|
void | setICellCoordinatesSimd4xM (int ci, const RVec &shift, int gmx_unused stride, const real *x, NbnxmPairlistCpuWork *work) |
| | Copies PBC shifted i-cell packed atom coordinates to working array for the 4xM layout.
|
| |
|
void | setICellCoordinatesSimd2xMM (int ci, const RVec &shift, int gmx_unused stride, const real *x, NbnxmPairlistCpuWork *work) |
| | Copies PBC shifted i-cell packed atom coordinates to working array for the 2xMM layout.
|
| |
| void | makeClusterListSimd4xM (const Grid &jGrid, NbnxmPairlistCpu *nbl, int icluster, int firstCell, int lastCell, bool excludeSubDiagonal, const real *gmx_restrict x_j, real rlist2, float rbb2, int *gmx_restrict numDistanceChecks) |
| | SIMD code for checking and adding cluster-pairs to the list using the 4xM layout. More...
|
| |
| void | makeClusterListSimd2xMM (const Grid &jGrid, NbnxmPairlistCpu *nbl, int icluster, int firstCell, int lastCell, bool excludeSubDiagonal, const real *gmx_restrict x_j, real rlist2, float rbb2, int *gmx_restrict numDistanceChecks) |
| | SIMD code for checking and adding cluster-pairs to the list using the 2xMM layout. More...
|
| |
| static bool | supportsDynamicPairlistGenerationInterval (const t_inputrec &ir) |
| | Returns if we can (heuristically) change nstlist and rlist. More...
|
| |
|
static real | getPressureTolerance (const real inputrecVerletBufferPressureTolerance) |
| | Returns the Verlet buffer pressure tolerance set by an env.var. or from input.
|
| |
| void | increaseNstlist (FILE *fplog, const MpiComm &mpiCommSimulation, t_inputrec *ir, int nstlistOnCmdline, const gmx_mtop_t *mtop, const matrix box, real effectiveAtomDensity, bool useOrEmulateGpuForNonbondeds) |
| | Try to increase nstlist when using the Verlet cut-off scheme. More...
|
| |
| static real | calcPruneVerletBufferSize (const CalcVerletBufferParameters ¶ms, const int nstlist) |
| | Wrapper for calcVerletBufferSize() for determining the pruning cut-off. More...
|
| |
| static void | setDynamicPairlistPruningParameters (const t_inputrec &inputrec, const gmx_mtop_t &mtop, const real effectiveAtomDensity, const bool useGpuList, const VerletbufListSetup &listSetup, const bool userSetNstlistPrune, const interaction_const_t &interactionConst, PairlistParams *listParams) |
| | Set the dynamic pairlist pruning parameters in ic. More...
|
| |
| static std::string | formatListSetup (const std::string &listName, int nstList, int nstListForSpacing, real rList, real interactionCutoff) |
| | Returns a string describing the setup of a single pair-list. More...
|
| |
| void | setupDynamicPairlistPruning (const MDLogger &mdlog, const t_inputrec &inputrec, const gmx_mtop_t &mtop, real effectiveAtomDensity, const interaction_const_t &interactionConst, PairlistParams *listParams) |
| | Set up the dynamic pairlist pruning. More...
|
| |
| void | printNbnxmPressureError (const MDLogger &mdlog, const t_inputrec &inputrec, const gmx_mtop_t &mtop, real effectiveAtomDensity, const PairlistParams &listParams) |
| | Prints an estimate of the error in the pressure due to missing interactions. More...
|
| |
|
template<int nR, KernelLayout kernelLayout> |
std::array< std::array
< SimdBool, nR >
, kernelLayoutClusterRatio
< kernelLayout >
)==KernelLayoutClusterRatio::JSizeEqualsISize?1:2 > | generateDiagonalMasks (const nbnxm_atomdata_t::SimdMasks &simdMasks) |
| | Returns the diagonal filter masks.
|
| |
|
template<int nR, bool maskInteractions, std::size_t inputSize, std::size_t interactSize> |
| void | rInvSixAndRInvTwelve (const std::array< SimdReal, inputSize > &rInvSquaredV, const std::array< SimdBool, interactSize > &interactV, std::array< SimdReal, nR > &rInvSixV, std::array< SimdReal, nR > &rInvTwelveV) |
| | Computes r^-6 and r^-12, masked when requested.
|
| |
|
template<int nR, bool maskInteractions, bool haveCutoffCheck, bool calculateEnergies, std::size_t inputSize, std::size_t interactSize, std::size_t vljvSize> |
| void | lennardJonesInteractionsSigmaEpsilon (const std::array< SimdReal, inputSize > &rInvV, const std::array< SimdBool, interactSize > &interactV, const SimdBool *const withinCutoffV, const std::array< SimdReal, nR > &sigmaV, const std::array< SimdReal, nR > &epsilonV, const SimdReal dispersionShift, const SimdReal repulsionShift, const SimdReal sixth, const SimdReal twelfth, std::array< SimdReal, nR > &frLJV, std::array< SimdReal, vljvSize > &vLJV) |
| | Returns F*r and optionally the potential for LJ with (un)shifted potential with sigma/epsilon.
|
| |
|
template<int nR, std::size_t inputSize> |
| void | computeForceSwitchVariables (const std::array< SimdReal, inputSize > &rSquaredV, const std::array< SimdReal, inputSize > &rInvV, SimdReal rSwitch, std::array< SimdReal, nR > &rSwitchedV, std::array< SimdReal, nR > &rSwitchedSquaredV, std::array< SimdReal, nR > &rSwitchedSquaredTimesRV) |
| | Computes (r - r_switch), (r - r_switch)^2 and (r - r_switch)^2 * r.
|
| |
|
SimdReal | addLJForceSwitch (SimdReal force, SimdReal rSwitched, SimdReal rSwitchedSquaredTimesR, SimdReal c2, SimdReal c3) |
| | Adds the force switch term to force.
|
| |
|
SimdReal | ljForceSwitchPotential (SimdReal rSwitched, SimdReal rSwitchedSquaredTimesR, SimdReal c0, SimdReal c3, SimdReal c4) |
| | Returns the LJ force switch function for the potential.
|
| |
|
template<int nR, std::size_t inputSize> |
| void | computePotentialSwitchVariables (const std::array< SimdReal, inputSize > &rSquaredV, const std::array< SimdReal, inputSize > &rInvV, SimdReal rSwitch, std::array< SimdReal, nR > &rSwitchedV, std::array< SimdReal, nR > &rSwitchedSquaredV) |
| | Computes (r - r_switch) and (r - r_switch)^2.
|
| |
|
SimdReal | potentialSwitchFunction (SimdReal rsw, SimdReal rsw2, SimdReal c3, SimdReal c4, SimdReal c5) |
| | Returns the potential switch function.
|
| |
|
SimdReal | potentialSwitchFunctionDerivative (SimdReal rsw, SimdReal rsw2, SimdReal c2, SimdReal c3, SimdReal c4) |
| | Returns the derivative of the potential switch function.
|
| |
|
template<int nR, bool maskInteractions, bool calculateEnergies, std::size_t inputSize, std::size_t interactSize, std::size_t ljepSize, std::size_t vljvSize> |
| void | addLennardJonesEwaldCorrections (const std::array< SimdReal, inputSize > &rSquaredV, const std::array< SimdReal, inputSize > &rInvSquaredV, const std::array< SimdBool, interactSize > &interactV, const SimdBool *withinCutoffV, const std::array< SimdReal, nR > &c6GridV, const std::array< SimdReal, ljepSize > &ljEwaldParams, SimdReal sixth, std::array< SimdReal, nR > &frLJV, std::array< SimdReal, vljvSize > &vLJV) |
| | Adds the Ewald long-range correction for r^-6.
|
| |
| template<KernelLayoutClusterRatio clusterRatio> |
| static int | cjFromCi (const int iCluster) |
| | Returns the j-cluster index for the given i-cluster index. More...
|
| |
|
template<KernelLayout kernelLayout> |
std::enable_if_t< kernelLayout==KernelLayout::r4xM,
SimdReal > | loadIAtomData (const real *ptr, const int offset, const int iRegister) |
| | Load a single real for an i-atom into iRegister.
|
| |
|
template<KernelLayout kernelLayout> |
std::enable_if_t< kernelLayout==KernelLayout::r2xMM,
SimdReal > | loadIAtomData (const real *ptr, const int offset, const int iRegister) |
| | Load a pair of consecutive reals for two i-atom into the respective halves of iRegister.
|
| |
|
template<KernelLayout kernelLayout> |
std::enable_if_t< kernelLayout==KernelLayout::r4xM,
SimdReal > | loadJAtomData (const real *ptr, const int offset) |
| | Returns a SIMD register containing GMX_SIMD_REAL_WIDTH reals loaded from ptr + offset.
|
| |
|
template<KernelLayout kernelLayout> |
std::enable_if_t< kernelLayout==KernelLayout::r2xMM,
SimdReal > | loadJAtomData (const real *ptr, const int offset) |
| | Returns a SIMD register containing a duplicate sequence of GMX_SIMD_REAL_WIDTH/2 reals loaded from ptr + offset.
|
| |
|
template<bool loadMasks, KernelLayout kernelLayout> |
std::enable_if_t<!loadMasks,
std::array< SimdBool, 0 > > | loadSimdPairInteractionMasks (const int excl, SimdBitMask *filterBitMasksV) |
| | Loads no interaction masks, returns an empty array.
|
| |
|
template<bool loadMasks, KernelLayout kernelLayout> |
std::enable_if_t< loadMasks
&&kernelLayout==KernelLayout::r4xM,
std::array< SimdBool,
sc_iClusterSize(kernelLayout)> > | loadSimdPairInteractionMasks (const int excl, SimdBitMask *filterBitMasksV) |
| | Loads interaction masks for a cluster pair for 4xM kernel layout.
|
| |
|
template<bool loadMasks, KernelLayout kernelLayout> |
std::enable_if_t< loadMasks
&&kernelLayout==KernelLayout::r2xMM,
std::array< SimdBool,
sc_iClusterSize(kernelLayout)/2 > > | loadSimdPairInteractionMasks (const int excl, SimdBitMask *filterBitMasksV) |
| | Loads interaction masks for a cluster pair for 2xMM kernel layout.
|
| |
|
template<int nR> |
| int | pairCountWithinCutoff (SimdReal rSquaredV[nR], SimdReal cutoffSquared) |
| | Return the number of atoms pairs that are within the cut-off distance.
|
| |
|
template<KernelLayout kernelLayout> |
| void | nbnxmSimdPruneKernel (NbnxmPairlistCpu *nbl, const nbnxm_atomdata_t &nbat, ArrayRef< const RVec > shiftvec, real rlistInner) |
| | Prune a single NbnxmPairlistCpu entry with distance rlistInner.
|
| |
| static auto | nbnxmKernelTransformXToXq (Float4 *__restrict__ gm_xq, const Float3 *__restrict__ gm_x, const int *__restrict__ gm_atomIndex, const int *__restrict__ gm_numAtomsPerCell, const int *__restrict__ gm_cellToBin, int numAtomsPerBin, int gridBegin, int numCellsMax, FusedXToXqGridParams gridParams) |
| | SYCL kernel for transforming position coordinates from rvec to nbnxm layout. More...
|
| |
|
static void | launchSciSortOnGpu (GpuPairlist *plist, const int maxWorkGroupSize, const DeviceStream &deviceStream) |
| |
| template<int workGroupSize, int nElements> |
| static auto | nbnxmKernelExclusivePrefixSum (const int *__restrict__ gm_input, int *__restrict__ gm_output) |
| | SYCL exclusive prefix sum kernel for list sorting. More...
|
| |
| static auto | nbnxmKernelBucketSciSort (const nbnxm_sci_t *__restrict__ gm_sci, const int *__restrict__ gm_sciCount, int *__restrict__ gm_sciOffset, nbnxm_sci_t *__restrict__ gm_sciSorted) |
| | SYCL bucket sci sort kernel. More...
|
| |
|
template<int workGroupSize> |
| static void | launchPrefixSumKernel (sycl::queue &q, GpuPairlistSorting *sorting) |
| |
|
static void | launchBucketSortKernel (sycl::queue &q, GpuPairlist *plist) |
| |
|
static int | getNbnxmSubGroupSize (const DeviceInformation &deviceInfo, PairlistType layoutType) |
| |
| constexpr bool | c_avoidFloatingPointAtomics (PairlistType layoutType) |
| | Should we avoid FP atomics to the same location from the same work-group? More...
|
| |
| static void | reduceForceJShuffle (Float3 f, const sycl::nd_item< 3 > &itemIdx, const int tidxi, const int aidx, sycl::global_ptr< Float3 > a_f) |
| | Reduce c_clSize j-force components using shifts and atomically accumulate into a_f. More...
|
| |
| template<int subGroupSize, int groupSize> |
| static float | groupReduce (const sycl::nd_item< 3 > itemIdx, const unsigned int tidxi, sycl::local_ptr< float > sm_buf, float valueToReduce) |
| | Do workgroup-level reduction of a single float. More...
|
| |
| static void | reduceForceJGeneric (sycl::local_ptr< float > sm_buf, Float3 f, const sycl::nd_item< 3 > &itemIdx, const int tidxi, const int tidxj, const int aidx, sycl::global_ptr< Float3 > a_f) |
| | Reduce c_clSize j-force components using local memory and atomically accumulate into a_f. More...
|
| |
|
template<bool useShuffleReduction> |
| static void | reduceForceJ (sycl::local_ptr< float > sm_buf, Float3 f, const sycl::nd_item< 3 > itemIdx, const int tidxi, const int tidxj, const int aidx, sycl::global_ptr< Float3 > a_f) |
| | Reduce c_clSize j-force components using either shifts or local memory and atomically accumulate into a_f.
|
| |
| template<typename FCiBufferWrapperX , typename FCiBufferWrapperY , typename FCiBufferWrapperZ > |
| static void | reduceForceIAndFShiftGeneric (sycl::local_ptr< float > sm_buf, const FCiBufferWrapperX &fCiBufX, const FCiBufferWrapperY &fCiBufY, const FCiBufferWrapperZ &fCiBufZ, const bool calcFShift, const sycl::nd_item< 3 > itemIdx, const int tidxi, const int tidxj, const int sci, const int shift, sycl::global_ptr< Float3 > a_f, sycl::global_ptr< Float3 > a_fShift) |
| | Local memory-based i-force reduction. More...
|
| |
| template<int numShuffleReductionSteps, typename FCiBufferWrapperX , typename FCiBufferWrapperY , typename FCiBufferWrapperZ > |
static std::enable_if_t
< numShuffleReductionSteps!=1,
void > | reduceForceIAndFShiftShuffles (const FCiBufferWrapperX &fCiBufX, const FCiBufferWrapperY &fCiBufY, const FCiBufferWrapperZ &fCiBufZ, const bool calcFShift, const sycl::nd_item< 3 > itemIdx, const int tidxi, const int tidxj, const int sci, const int shift, sycl::global_ptr< Float3 > a_f, sycl::global_ptr< Float3 > a_fShift) |
| | Shuffle-based i-force reduction. More...
|
| |
| template<int numShuffleReductionSteps, typename FCiBufferWrapperX , typename FCiBufferWrapperY , typename FCiBufferWrapperZ > |
static std::enable_if_t
< numShuffleReductionSteps==1,
void > | reduceForceIAndFShiftShuffles (const FCiBufferWrapperX &fCiBufX, const FCiBufferWrapperY &fCiBufY, const FCiBufferWrapperZ &fCiBufZ, const bool calcFShift, const sycl::nd_item< 3 > itemIdx, const int tidxi, const int tidxj, const int sci, const int shift, sycl::global_ptr< Float3 > a_f, sycl::global_ptr< Float3 > a_fShift) |
| | reduceForceIAndFShiftShuffles specialization for single-step reduction (e.g., Intel iGPUs). More...
|
| |
| template<bool useShuffleReduction, int subGroupSize, typename FCiBufferWrapperX , typename FCiBufferWrapperY , typename FCiBufferWrapperZ > |
| static void | reduceForceIAndFShift (sycl::local_ptr< float > sm_buf, const FCiBufferWrapperX &fCiBufX, const FCiBufferWrapperY &fCiBufY, const FCiBufferWrapperZ &fCiBufZ, const bool calcFShift, const sycl::nd_item< 3 > itemIdx, const int tidxi, const int tidxj, const int sci, const int shift, sycl::global_ptr< Float3 > a_f, sycl::global_ptr< Float3 > a_fShift) |
| | Final i-force reduction. More...
|
| |
| template<int subGroupSize, bool doPruneNBL, bool doCalcEnergies, enum ElecType elecType, enum VdwType vdwType, typename CommandGroupHandler > |
| static auto | nbnxmKernel (CommandGroupHandler cgh, const Float4 *__restrict__ gm_xq, Float3 *__restrict__ gm_f, const Float3 *__restrict__ gm_shiftVec, Float3 *__restrict__ gm_fShift, float *__restrict__ gm_energyElec, float *__restrict__ gm_energyVdw, nbnxm_cj_packed_t *__restrict__ gm_plistCJPacked, const nbnxm_sci_t *__restrict__ gm_plistSci, const nbnxm_excl_t *__restrict__ gm_plistExcl, const Float2 *__restrict__ gm_ljComb, const int *__restrict__ gm_atomTypes, const Float2 *__restrict__ gm_nbfp, const Float2 *__restrict__ gm_nbfpComb, const float *__restrict__ gm_coulombTab, int *__restrict__ gm_sciHistogram, int *__restrict__ gm_sciCount, const int numTypes, const float rCoulombSq, const float rVdwSq, const float twoKRf, const float ewaldBeta, const float rlistOuterSq, const float ewaldShift, const float epsFac, const float ewaldCoeffLJ_2, const float cRF, const shift_consts_t dispersionShift, const shift_consts_t repulsionShift, const switch_consts_t vdwSwitch, const float rVdwSwitch, const float ljEwaldShift, const float coulombTabScale, const bool calcShift) |
| | Main kernel for NBNXM. More...
|
| |
|
template<int subGroupSize, bool doPruneNBL, bool doCalcEnergies, enum ElecType elecType, enum VdwType vdwType, class... Args> |
| static void | launchNbnxmKernel (const DeviceStream &deviceStream, const int numSci, Args &&...args) |
| | NBNXM kernel launch code.
|
| |
|
template<int subGroupSize, bool doPruneNBL, bool doCalcEnergies, class... Args> |
| void | chooseAndLaunchNbnxmKernel (enum ElecType elecType, enum VdwType vdwType, Args &&...args) |
| | Select templated kernel and launch it.
|
| |
| template<bool haveFreshList, PairlistType layoutType, typename CommandGroupHandler > |
| auto | nbnxmKernelPruneOnly (CommandGroupHandler cgh, const int numSci, const int numParts, const Float4 *__restrict__ gm_xq, const Float3 *__restrict__ gm_shiftVec, nbnxm_cj_packed_t *__restrict__ gm_plistCJPacked, const nbnxm_sci_t *__restrict__ gm_plistSci, unsigned int *__restrict__ gm_plistIMask, int *__restrict__ gm_rollingPruningPart, int *__restrict__ gm_sciHistogram, int *__restrict__ gm_sciCount, const float rlistOuterSq, const float rlistInnerSq) |
| | Prune-only kernel for NBNXM. More...
|
| |
|
template<bool haveFreshList, PairlistType layoutType, class... Args> |
| void | launchNbnxmKernelPruneOnly (const DeviceStream &deviceStream, const int numSciInPartMax, Args &&...args) |
| | Leap Frog SYCL prune-only kernel launch code.
|
| |
|
template<PairlistType layoutType, class... Args> |
| void | chooseAndLaunchNbnxmKernelPruneOnly (bool haveFreshList, Args &&...args) |
| | Select templated kernel and launch it.
|
| |
| void | launchNbnxmKernelPruneOnly (NbnxmGpu *nb, const InteractionLocality iloc, const int numParts, const int numSciInPartMax) |
| | Launch SYCL NBNXM prune-only kernel. More...
|
| |
|
static constexpr unsigned | sc_superClInteractionMask (const PairlistType layoutType) |
| |
| void | assignOptionsFromKeyValueTree (Options *options, const KeyValueTreeObject &tree, IKeyValueTreeErrorHandler *errorHandler) |
| | Assigns option values from a given KeyValueTreeObject. More...
|
| |
| void | checkForUnknownOptionsInKeyValueTree (const KeyValueTreeObject &tree, const Options &options) |
| | Checks that a given KeyValueTreeObject can be assigned to given Options. More...
|
| |
| KeyValueTreeObject | adjustKeyValueTreeFromOptions (const KeyValueTreeObject &tree, const Options &options) |
| | Adjusts a KeyValueTreeObject to the structure of given Options. More...
|
| |
|
bool | boxesAreEqual (const matrix box1, const matrix box2) |
| | Returns whether two boxes are of equal size and shape (within reasonable tolerance).
|
| |
|
bool | boxIsZero (const matrix box) |
| | Returns whether a box is only initialised to zero or not.
|
| |
| void | shiftAtoms (const RVec &shift, ArrayRef< RVec > x) |
| | Shift all coordinates. More...
|
| |
| void | placeCoordinatesWithCOMInBox (const PbcType &pbcType, UnitCellType unitCellType, CenteringType centerType, const matrix box, ArrayRef< RVec > x, const gmx_mtop_t &mtop, COMShiftType comShiftType) |
| | Moves collection of atoms along the center of mass into a box. More...
|
| |
|
static IVec | shiftIndexToXYZ (int shiftIndex) |
| | Convert shift index to periodic cell shifts.
|
| |
|
static int | xyzToShiftIndex (int x, int y, int z) |
| | Convert grid coordinates to shift index.
|
| |
|
static int | ivecToShiftIndex (const gmx::IVec &iv) |
| | Convert grid coordinates to shift index.
|
| |
|
static int | ivecToShiftIndex (ivec iv) |
| | Convert grid coordinates to shift index.
|
| |
|
static int | shiftIndexToXDim (int iv) |
| | Return the shift in the X dimension of grid space corresponding to iv.
|
| |
| const char * | centerTypeNames (CenteringType type) |
| | Get names for the different centering types. More...
|
| |
| const char * | unitCellTypeNames (UnitCellType type) |
| | Get names for the different unit cell representation types. More...
|
| |
| double | getTransformationPullCoordinateValue (pull_coord_work_t *coord, ArrayRef< const pull_coord_work_t > variableCoords, double t) |
| | Calculates pull->coord[coord_ind].spatialData.value for a transformation pull coordinate. More...
|
| |
| static double | computeDerivativeForTransformationPullCoord (pull_coord_work_t *coord, const int variablePcrdIndex) |
| | Calculates and returns the derivative of a transformation pull coordinate from a dependent coordinate. More...
|
| |
| void | distributeTransformationPullCoordForce (pull_coord_work_t *pcrd, gmx::ArrayRef< pull_coord_work_t > variableCoords) |
| | Distributes the force on a transformation pull coordinates to the involved coordinates of lower rank. More...
|
| |
| static bool | checkIfRandomDeviceIsFunctional () |
| | Check if the RDRAND random device functioning correctly. More...
|
| |
| template<typename GeneratorType > |
| static uint64_t | makeRandomSeedInternal (GeneratorType &gen) |
| | Get the next pure or pseudo-random number. More...
|
| |
| uint64_t | makeRandomSeed () |
| | Return 64 random bits from the random device, suitable as seed. More...
|
| |
| template<class RealType = real, unsigned int Bits, class Rng > |
| RealType | generateCanonical (Rng &g) |
| | Generate a floating-point value with specified number of random bits. More...
|
| |
|
void | compileSelection (SelectionCollection *coll) |
| |
|
void | swap (SelectionCollection &lhs, SelectionCollection &rhs) noexcept |
| |
| HelpTopicPointer | createSelectionHelpTopic () |
| | */ More...
|
| |
|
void | serializeKeyValueTree (const KeyValueTreeObject &root, ISerializer *serializer) |
| | Serializes a KeyValueTreeObject with given serializer.
|
| |
|
KeyValueTreeObject | deserializeKeyValueTree (ISerializer *serializer) |
| | Deserializes a KeyValueTreeObject from a given serializer.
|
| |
| static void gmx_unused | simdPrefetch (void gmx_unused *m) |
| | Prefetch memory at address m. More...
|
| |
| static void | store (float *m, float a) |
| | Store contents of float variable to aligned memory m. More...
|
| |
| static void | storeU (float *m, float a) |
| | Store contents of float variable to unaligned memory m. More...
|
| |
| static float | fma (float a, float b, float c) |
| | Float Fused-multiply-add. Result is a*b + c. More...
|
| |
| static float | fms (float a, float b, float c) |
| | Float Fused-multiply-subtract. Result is a*b - c. More...
|
| |
| static float | fnma (float a, float b, float c) |
| | Float Fused-negated-multiply-add. Result is -a*b + c. More...
|
| |
| static float | fnms (float a, float b, float c) |
| | Float Fused-negated-multiply-subtract. Result is -a*b - c. More...
|
| |
| static float | maskAdd (float a, float b, float m) |
| | Add two float variables, masked version. More...
|
| |
| static float | maskzMul (float a, float b, float m) |
| | Multiply two float variables, masked version. More...
|
| |
| static float | maskzFma (float a, float b, float c, float m) |
| | Float fused multiply-add, masked version. More...
|
| |
| static float gmx_simdcall | maskzRcp (float x, float m) |
| | Float 1.0/x, masked version. More...
|
| |
| static float | abs (float a) |
| | Float Floating-point abs(). More...
|
| |
| static float | max (float a, float b) |
| | Set each float element to the largest from two variables. More...
|
| |
| static float | min (float a, float b) |
| | Set each float element to the smallest from two variables. More...
|
| |
| static float | round (float a) |
| | Float round to nearest integer value (in floating-point format). More...
|
| |
| static float | trunc (float a) |
| | Truncate float, i.e. round towards zero - common hardware instruction. More...
|
| |
| static float | reduce (float a) |
| | Return sum of all elements in float variable (i.e., the variable itself). More...
|
| |
| static float | andNot (float a, float b) |
| | Bitwise andnot for two scalar float variables. More...
|
| |
| static bool | testBits (float a) |
| | Return true if any bits are set in the float variable. More...
|
| |
| static bool | anyTrue (bool a) |
| | Returns if the boolean is true. More...
|
| |
| static float | selectByMask (float a, bool mask) |
| | Select from single precision variable where boolean is true. More...
|
| |
| static float | selectByNotMask (float a, bool mask) |
| | Select from single precision variable where boolean is false. More...
|
| |
| static float | blend (float a, float b, bool sel) |
| | Blend float selection. More...
|
| |
| static std::int32_t | cvtR2I (float a) |
| | Round single precision floating point to integer. More...
|
| |
| static std::int32_t | cvttR2I (float a) |
| | Truncate single precision floating point to integer. More...
|
| |
| static std::int32_t | cvtI2R (std::int32_t a) |
| | Return integer. More...
|
| |
| static void | store (double *m, double a) |
| | Store contents of double variable to aligned memory m. More...
|
| |
| static void | storeU (double *m, double a) |
| | Store contents of double variable to unaligned memory m. More...
|
| |
| static double | fma (double a, double b, double c) |
| | double Fused-multiply-add. Result is a*b + c. More...
|
| |
| static double | fms (double a, double b, double c) |
| | double Fused-multiply-subtract. Result is a*b - c. More...
|
| |
| static double | fnma (double a, double b, double c) |
| | double Fused-negated-multiply-add. Result is - a*b + c. More...
|
| |
| static double | fnms (double a, double b, double c) |
| | double Fused-negated-multiply-subtract. Result is -a*b - c. More...
|
| |
| static double | maskAdd (double a, double b, double m) |
| | Add two double variables, masked version. More...
|
| |
| static double | maskzMul (double a, double b, double m) |
| | Multiply two double variables, masked version. More...
|
| |
| static double | maskzFma (double a, double b, double c, double m) |
| | double fused multiply-add, masked version. More...
|
| |
| static double gmx_simdcall | maskzRcp (double x, double m) |
| | Double 1.0/x, masked version. More...
|
| |
| static double | abs (double a) |
| | double doubleing-point abs(). More...
|
| |
| static double | max (double a, double b) |
| | Set each double element to the largest from two variables. More...
|
| |
| static double | min (double a, double b) |
| | Set each double element to the smallest from two variables. More...
|
| |
| static double | round (double a) |
| | double round to nearest integer value (in doubleing-point format). More...
|
| |
| static double | trunc (double a) |
| | Truncate double, i.e. round towards zero - common hardware instruction. More...
|
| |
| static double | reduce (double a) |
| | Return sum of all elements in double variable (i.e., the variable itself). More...
|
| |
| static double | andNot (double a, double b) |
| | Bitwise andnot for two scalar double variables. More...
|
| |
| static bool | testBits (double a) |
| | Return true if any bits are set in the double variable. More...
|
| |
| static double | selectByMask (double a, bool mask) |
| | Select from double precision variable where boolean is true. More...
|
| |
| static double | selectByNotMask (double a, bool mask) |
| | Select from double precision variable where boolean is false. More...
|
| |
| static double | blend (double a, double b, bool sel) |
| | Blend double selection. More...
|
| |
| static std::int32_t | cvtR2I (double a) |
| | Round single precision doubleing point to integer. More...
|
| |
| static std::int32_t | cvttR2I (double a) |
| | Truncate single precision doubleing point to integer. More...
|
| |
| static double | cvtF2D (float a) |
| | Convert float to double (mimicks SIMD conversion) More...
|
| |
| static float | cvtD2F (double a) |
| | Convert double to float (mimicks SIMD conversion) More...
|
| |
| static void | store (std::int32_t *m, std::int32_t a) |
| | Store contents of integer variable to aligned memory m. More...
|
| |
| static void | storeU (std::int32_t *m, std::int32_t a) |
| | Store contents of integer variable to unaligned memory m. More...
|
| |
| static std::int32_t | andNot (std::int32_t a, std::int32_t b) |
| | Bitwise andnot for two scalar integer variables. More...
|
| |
| static bool | testBits (std::int32_t a) |
| | Return true if any bits are set in the integer variable. More...
|
| |
| static std::int32_t | selectByMask (std::int32_t a, bool mask) |
| | Select from integer variable where boolean is true. More...
|
| |
| static std::int32_t | selectByNotMask (std::int32_t a, bool mask) |
| | Select from integer variable where boolean is false. More...
|
| |
| static std::int32_t | blend (std::int32_t a, std::int32_t b, bool sel) |
| | Blend integer selection. More...
|
| |
| static bool | cvtB2IB (bool a) |
| | Just return a boolean (mimicks SIMD real-to-int bool conversions) More...
|
| |
| static bool | cvtIB2B (bool a) |
| | Just return a boolean (mimicks SIMD int-to-real bool conversions) More...
|
| |
| static float | copysign (float x, float y) |
| | Composes single value with the magnitude of x and the sign of y. More...
|
| |
| static void | invsqrtPair (float x0, float x1, float *out0, float *out1) |
| | Calculate 1/sqrt(x) for two floats. More...
|
| |
| static float | inv (float x) |
| | Calculate 1/x for float. More...
|
| |
| static float | maskzInvsqrt (float x, bool m) |
| | Calculate 1/sqrt(x) for masked entry of float. More...
|
| |
| static float | maskzInv (float x, bool m) |
| | Calculate 1/x for masked entry of float. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static float | sqrt (float x) |
| | Float sqrt(x). This is the square root. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static float | cbrt (float x) |
| | Float cbrt(x). This is the cubic root. More...
|
| |
| static float | log (float x) |
| | Float log(x). This is the natural logarithm. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static float | exp2 (float x) |
| | Float 2^x. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static float | exp (float x) |
| | Float exp(x). More...
|
| |
| static float | erf (float x) |
| | Float erf(x). More...
|
| |
| static float | erfc (float x) |
| | Float erfc(x). More...
|
| |
| static void | sincos (float x, float *sinval, float *cosval) |
| | Float sin & cos. More...
|
| |
| static float | sin (float x) |
| | Float sin. More...
|
| |
| static float | cos (float x) |
| | Float cos. More...
|
| |
| static float | tan (float x) |
| | Float tan. More...
|
| |
| static float | asin (float x) |
| | float asin. More...
|
| |
| static float | acos (float x) |
| | Float acos. More...
|
| |
| static float | atan (float x) |
| | Float atan. More...
|
| |
| static float | atan2 (float y, float x) |
| | Float atan2(y,x). More...
|
| |
| static float | pmeForceCorrection (float z2) |
| | Calculate the force correction due to PME analytically in float. More...
|
| |
| static float | pmePotentialCorrection (float z2) |
| | Calculate the potential correction due to PME analytically in float. More...
|
| |
| static double | copysign (double x, double y) |
| | Composes double value with the magnitude of x and the sign of y. More...
|
| |
| static void | invsqrtPair (double x0, double x1, double *out0, double *out1) |
| | Calculate 1/sqrt(x) for two doubles. More...
|
| |
| static double | inv (double x) |
| | Calculate 1/x for double. More...
|
| |
| static double | maskzInvsqrt (double x, bool m) |
| | Calculate 1/sqrt(x) for masked entry of double. More...
|
| |
| static double | maskzInv (double x, bool m) |
| | Calculate 1/x for masked entry of double. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static double | sqrt (double x) |
| | Double sqrt(x). This is the square root. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static double | cbrt (double x) |
| | Double cbrt(x). This is the cubic root. More...
|
| |
| static double | log (double x) |
| | Double log(x). This is the natural logarithm. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static double | exp2 (double x) |
| | Double 2^x. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static double | exp (double x) |
| | Double exp(x). More...
|
| |
| static double | erf (double x) |
| | Double erf(x). More...
|
| |
| static double | erfc (double x) |
| | Double erfc(x). More...
|
| |
| static void | sincos (double x, double *sinval, double *cosval) |
| | Double sin & cos. More...
|
| |
| static double | sin (double x) |
| | Double sin. More...
|
| |
| static double | cos (double x) |
| | Double cos. More...
|
| |
| static double | tan (double x) |
| | Double tan. More...
|
| |
| static double | asin (double x) |
| | Double asin. More...
|
| |
| static double | acos (double x) |
| | Double acos. More...
|
| |
| static double | atan (double x) |
| | Double atan. More...
|
| |
| static double | atan2 (double y, double x) |
| | Double atan2(y,x). More...
|
| |
| static double | pmeForceCorrection (double z2) |
| | Calculate the force correction due to PME analytically in double. More...
|
| |
| static double | pmePotentialCorrection (double z2) |
| | Calculate the potential correction due to PME analytically in double. More...
|
| |
| static double | invsqrtSingleAccuracy (double x) |
| | Calculate 1/sqrt(x) for double, but with single accuracy. More...
|
| |
| static void | invsqrtPairSingleAccuracy (double x0, double x1, double *out0, double *out1) |
| | Calculate 1/sqrt(x) for two doubles, but with single accuracy. More...
|
| |
| static double | invSingleAccuracy (double x) |
| | Calculate 1/x for double, but with single accuracy. More...
|
| |
| static double | maskzInvsqrtSingleAccuracy (double x, bool m) |
| | Calculate 1/sqrt(x) for masked entry of double, but with single accuracy. More...
|
| |
| static double | maskzInvSingleAccuracy (double x, bool m) |
| | Calculate 1/x for masked entry of double, but with single accuracy. More...
|
| |
| static double | sqrtSingleAccuracy (double x) |
| | Calculate sqrt(x) for double, but with single accuracy. More...
|
| |
| static double | logSingleAccuracy (double x) |
| | Double log(x), but with single accuracy. This is the natural logarithm. More...
|
| |
| static double | exp2SingleAccuracy (double x) |
| | Double 2^x, but with single accuracy. More...
|
| |
| static double | expSingleAccuracy (double x) |
| | Double exp(x), but with single accuracy. More...
|
| |
| static double | erfSingleAccuracy (double x) |
| | Double erf(x), but with single accuracy. More...
|
| |
| static double | erfcSingleAccuracy (double x) |
| | Double erfc(x), but with single accuracy. More...
|
| |
| static void | sincosSingleAccuracy (double x, double *sinval, double *cosval) |
| | Double sin & cos, but with single accuracy. More...
|
| |
| static double | sinSingleAccuracy (double x) |
| | Double sin, but with single accuracy. More...
|
| |
| static double | cosSingleAccuracy (double x) |
| | Double cos, but with single accuracy. More...
|
| |
| static double | tanSingleAccuracy (double x) |
| | Double tan, but with single accuracy. More...
|
| |
| static double | asinSingleAccuracy (double x) |
| | Double asin, but with single accuracy. More...
|
| |
| static double | acosSingleAccuracy (double x) |
| | Double acos, but with single accuracy. More...
|
| |
| static double | atanSingleAccuracy (double x) |
| | Double atan, but with single accuracy. More...
|
| |
| static double | atan2SingleAccuracy (double y, double x) |
| | Double atan2(y,x), but with single accuracy. More...
|
| |
| static double | pmeForceCorrectionSingleAccuracy (double z2) |
| | Force correction due to PME in double, but with single accuracy. More...
|
| |
| static double | pmePotentialCorrectionSingleAccuracy (double z2) |
| | Potential correction due to PME in double, but with single accuracy. More...
|
| |
| template<int align> |
| static void | gatherLoadTranspose (const float *base, const std::int32_t offset[], float *v0, float *v1, float *v2, float *v3) |
| | Load 4 consecutive floats from base/offset into four variables. More...
|
| |
| template<int align> |
| static void | gatherLoadTranspose (const float *base, const std::int32_t offset[], float *v0, float *v1) |
| | Load 2 consecutive floats from base/offset into four variables. More...
|
| |
| template<int align> |
| static void | gatherLoadUTranspose (const float *base, const std::int32_t offset[], float *v0, float *v1, float *v2) |
| | Load 3 consecutive floats from base/offsets, store into three vars. More...
|
| |
| template<int align> |
| static void | transposeScatterStoreU (float *base, const std::int32_t offset[], float v0, float v1, float v2) |
| | Store 3 floats to 3 to base/offset. More...
|
| |
| template<int align> |
| static void | transposeScatterIncrU (float *base, const std::int32_t offset[], float v0, float v1, float v2) |
| | Add 3 floats to base/offset. More...
|
| |
| template<int align> |
| static void | transposeScatterDecrU (float *base, const std::int32_t offset[], float v0, float v1, float v2) |
| | Subtract 3 floats from base/offset. More...
|
| |
| static void | expandScalarsToTriplets (float scalar, float *triplets0, float *triplets1, float *triplets2) |
| | Copy single float to three variables. More...
|
| |
| template<int align> |
| static void | gatherLoadBySimdIntTranspose (const float *base, std::int32_t offset, float *v0, float *v1, float *v2, float *v3) |
| | Load 4 floats from base/offsets and store into variables. More...
|
| |
| template<int align> |
| static void | gatherLoadUBySimdIntTranspose (const float *base, std::int32_t offset, float *v0, float *v1) |
| | Load 2 floats from base/offsets and store into variables (unaligned). More...
|
| |
| template<int align> |
| static void | gatherLoadBySimdIntTranspose (const float *base, std::int32_t offset, float *v0, float *v1) |
| | Load 2 floats from base/offsets and store into variables (aligned). More...
|
| |
| static float | reduceIncr4ReturnSum (float *m, float v0, float v1, float v2, float v3) |
| | Add each float to four consecutive memory locations, return sum. More...
|
| |
| template<int align> |
| static void | gatherLoadTranspose (const double *base, const std::int32_t offset[], double *v0, double *v1, double *v2, double *v3) |
| | Load 4 consecutive doubles from base/offset into four variables. More...
|
| |
| template<int align> |
| static void | gatherLoadTranspose (const double *base, const std::int32_t offset[], double *v0, double *v1) |
| | Load 2 consecutive doubles from base/offset into four variables. More...
|
| |
| template<int align> |
| static void | gatherLoadUTranspose (const double *base, const std::int32_t offset[], double *v0, double *v1, double *v2) |
| | Load 3 consecutive doubles from base/offsets, store into three vars. More...
|
| |
| template<int align> |
| static void | transposeScatterStoreU (double *base, const std::int32_t offset[], double v0, double v1, double v2) |
| | Store 3 doubles to 3 to base/offset. More...
|
| |
| template<int align> |
| static void | transposeScatterIncrU (double *base, const std::int32_t offset[], double v0, double v1, double v2) |
| | Add 3 doubles to base/offset. More...
|
| |
| template<int align> |
| static void | transposeScatterDecrU (double *base, const std::int32_t offset[], double v0, double v1, double v2) |
| | Subtract 3 doubles from base/offset. More...
|
| |
| static void | expandScalarsToTriplets (double scalar, double *triplets0, double *triplets1, double *triplets2) |
| | Copy single double to three variables. More...
|
| |
| template<int align> |
| static void | gatherLoadBySimdIntTranspose (const double *base, std::int32_t offset, double *v0, double *v1, double *v2, double *v3) |
| | Load 4 doubles from base/offsets and store into variables. More...
|
| |
| template<int align> |
| static void | gatherLoadUBySimdIntTranspose (const double *base, std::int32_t offset, double *v0, double *v1) |
| | Load 2 doubles from base/offsets and store into variables (unaligned). More...
|
| |
| template<int align> |
| static void | gatherLoadBySimdIntTranspose (const double *base, std::int32_t offset, double *v0, double *v1) |
| | Load 2 doubles from base/offsets and store into variables (aligned). More...
|
| |
| static double | reduceIncr4ReturnSum (double *m, double v0, double v1, double v2, double v3) |
| | Add each double to four consecutive memory locations, return sum. More...
|
| |
| stats_t | stats_init () |
| | Initiate a data structure. More...
|
| |
| void | stats_free (stats_t stats) |
| | Destroy a data structure. More...
|
| |
| void | stats_add_point (stats_t stats, double x, double y, double dx, double dy) |
| | Add a point to the data set. More...
|
| |
|
static void | stats_compute (stats *s, int weight) |
| |
| void | stats_get_ab (stats_t stats, int weight, real *a, real *b, real *da, real *db, real *chi2, real *Rfit) |
| | Fit the data to y = ax + b, possibly weighted, if uncertainties have been input. da and db may be NULL. More...
|
| |
| real | stats_get_average (stats_t stats) |
| | Computes and returns the average value. More...
|
| |
| std::tuple< real, real, real > | stats_get_ase (stats_t stats) |
| | Pointers may be null, in which case no assignment will be done. More...
|
| |
|
template<typename RealT > |
| void | low_lsq_y_ax_b (int n, const RealT *xr, real yr[], real *a, real *b, real *r, real *chi2) |
| |
| void | lsq_y_ax_b (int n, real x[], real y[], real *a, real *b, real *r, real *chi2) |
| | Fit a straight line y=ax+b thru the n data points x, y. More...
|
| |
| void | lsq_y_ax_b_xdouble (int n, double x[], real y[], real *a, real *b, real *r, real *chi2) |
| | Fit a straight line y=ax+b thru the n data points x, y. More...
|
| |
| void | lsq_y_ax_b_error (int n, real x[], real y[], real dy[], real *a, real *b, real *da, real *db, real *r, real *chi2) |
| | Fit a straight line y=ax+b thru the n data points x, y. More...
|
| |
| static gmx_bool | is_in_channel (const gmx::RVec point, const gmx::RVec center, real d_up, real d_down, real r_cyl2, t_pbc *pbc, int normal) |
| | Check whether point is in channel. More...
|
| |
| static void | print_ionlist (SwapCoords::Impl *s, double time, const char comment[]) |
| | Prints output to CompEL output file. More...
|
| |
| static gmx::RVec | get_molecule_center (gmx::ArrayRef< const gmx::RVec > x, gmx::ArrayRef< const real > weights, t_pbc *pbc) |
| | Get the center of a group of nat atoms. More...
|
| |
| static gmx_bool | compartment_contains_atom (real w1, real w2, real x, real l, real bulkOffset, real *distance_from_b) |
| | Return TRUE if position x of ion (or water) is found in the compartment, i.e. between w1 and w2. More...
|
| |
|
static void | update_time_window (t_compartment *comp, int values, int replace) |
| | Updates the time-averaged number of ions in a compartment.
|
| |
| static void | add_to_list (int ci, t_compartment *comp, real distance) |
| | Add the atom with collective index ci to the atom list in compartment 'comp'. More...
|
| |
|
static void | get_compartment_boundaries (Compartment c, SwapCoords::Impl *s, const matrix box, real *left, real *right) |
| | Determine the compartment boundaries from the channel centers.
|
| |
| static void | detect_flux_per_channel (t_swapgrp *group, int iAtom, Compartment comp, const gmx::RVec atomPosition, Domain *comp_now, Domain *comp_from, ChannelHistory *channel_label, const t_swapcoords &sc, SwapCoords::Impl *s, real cyl0_r2, real cyl1_r2, int64_t step, gmx_bool bRerun, FILE *fpout) |
| | Determine the per-channel ion flux. More...
|
| |
|
static void | sortMoleculesIntoCompartments (t_swapgrp *group, const gmx::MpiComm &mpiComm, const t_swapcoords &sc, SwapCoords::Impl *s, const matrix box, int64_t step, FILE *fpout, gmx_bool bRerun, gmx_bool bIsSolvent) |
| | Determines which ions or solvent molecules are in compartment A and B.
|
| |
|
static void | get_initial_ioncounts (const t_swapcoords &sc, SwapCoords::Impl *s, gmx::ArrayRef< const gmx::RVec > x, const matrix box, const gmx::MpiComm &mpiComm, gmx_bool bRerun) |
| | Find out how many group atoms are in the compartments initially.
|
| |
| static void | get_initial_ioncounts_from_cpt (const t_swapcoords &sc, SwapCoords::Impl *s, swaphistory_t *swapstate, const gmx::MpiComm &mpiComm, gmx_bool bVerbose) |
| | Copy history of ion counts from checkpoint file. More...
|
| |
|
static void | bc_initial_concentrations (const gmx::MpiComm &mpiComm, t_swapcoords *swap, SwapCoords::Impl *s) |
| | The main lets all others know about the initial ion counts.
|
| |
|
static void | check_swap_groups (SwapCoords::Impl *s, int nat, gmx_bool bVerbose) |
| | Ensure that each atom belongs to at most one of the swap groups.
|
| |
| static int | get_group_apm_check (const t_swapgrp &group, gmx_bool bVerbose, const gmx_mtop_t &mtop) |
| | Get the number of atoms per molecule for this group. More...
|
| |
| static void | print_ionlist_legend (const t_inputrec *ir, SwapCoords::Impl *s, const gmx_output_env_t *oenv) |
| | Print the legend to the swap output file. More...
|
| |
| static void | detect_flux_per_channel_init (SwapCoords::Impl *s, swaphistory_t *swapstate, const bool isRestart) |
| | Initialize channel ion flux detection routine. More...
|
| |
| static void | outputStartStructureIfWanted (const gmx_mtop_t &mtop, rvec *x, PbcType pbcType, const matrix box) |
| | Outputs the initial structure to PDB file for debugging reasons. More...
|
| |
| static void | init_swapstate (swaphistory_t *swapstate, SwapCoords::Impl *s, const gmx_mtop_t &mtop, gmx::ArrayRef< const gmx::RVec > x, const matrix box, const t_inputrec *ir) |
| | Initialize the swapstate structure, used for checkpoint writing. More...
|
| |
|
static real | getRequestedChargeImbalance (SwapCoords::Impl *s) |
| | Determine the total charge imbalance resulting from the swap groups.
|
| |
| static void | copyIndicesToGroup (gmx::ArrayRef< const int > indIons, t_swapGroup *group, const gmx::MpiComm &mpiComm) |
| | Sorts anions and cations into two separate groups. More...
|
| |
| static void | convertOldToNewGroupFormat (t_swapcoords *sc, const gmx_mtop_t &mtop, gmx_bool bVerbose, const gmx::MpiComm &mpiComm) |
| | Converts old .tpr file CompEL contents to new data layout. More...
|
| |
| static gmx_bool | bConvertFromOldTpr (t_swapcoords *sc) |
| | Returns TRUE if we started from an old .tpr. More...
|
| |
| std::unique_ptr< SwapCoords > | init_swapcoords (FILE *fplog, const t_inputrec *ir, const char *fn, const gmx_mtop_t &mtop, const t_state *globalState, ObservablesHistory *oh, const MpiComm &mpiComm, const gmx_domdec_t *dd, LocalAtomSetManager *atomSets, const gmx_output_env_t *oenv, const MdrunOptions &mdrunOptions, StartingBehavior startingBehavior) |
| | Initialize ion / water position swapping ("Computational Electrophysiology"). More...
|
| |
| static gmx_bool | need_swap (const t_swapcoords &sc, SwapCoords::Impl *s) |
| | Do we need to swap a molecule in any of the ion groups with a water molecule at this step? More...
|
| |
| static int | get_index_of_distant_atom (t_compartment *comp, const std::string &molname) |
| | Return the index of an atom or molecule suitable for swapping. More...
|
| |
|
static void | translate_positions (gmx::ArrayRef< gmx::RVec > moleculeX, const gmx::RVec old_com, const gmx::RVec new_com, t_pbc *pbc) |
| | Swaps centers of mass and makes molecule whole if broken.
|
| |
|
static void | apply_modified_positions (const t_swapgrp &group, gmx::ArrayRef< gmx::RVec > x) |
| | Write back the modified local positions from the collective array to the official positions.
|
| |
| gmx_bool | do_swapcoords (const MpiComm &mpiComm, int64_t step, double t, const t_inputrec *ir, SwapCoords *s, gmx_wallcycle *wcycle, ArrayRef< RVec > x, matrix box, gmx_bool bVerbose, gmx_bool bRerun) |
| | "Computational Electrophysiology" main routine within MD loop. More...
|
| |
| double | v_q_ewald_lr (double beta, double r) |
| | Return the real space grid contribution for Ewald. More...
|
| |
| double | v_lj_ewald_lr (double beta, double r) |
| | Return the real space grid contribution for LJ-Ewald. More...
|
| |
| EwaldCorrectionTables | generateEwaldCorrectionTables (int numPoints, double tableScaling, real beta, real_space_grid_contribution_computer v_lr) |
| | Construct tables with the Ewald long-range force interaction. More...
|
| |
|
static double | spline3_table_scale (double third_deriv_max, double x_scale, double func_tol) |
| |
| real | ewald_spline3_table_scale (const interaction_const_t &ic, bool generateCoulombTables, bool generateVdwTables) |
| | Compute scaling for the Ewald quadratic spline tables. More...
|
| |
|
static void | copy2table (int n, int offset, int stride, ArrayRef< const double > x, ArrayRef< const double > Vtab, ArrayRef< const double > Ftab, real scalefactor, ArrayRef< real > dest) |
| |
|
static void | spline_forces (int nx, double h, const double v[], gmx_bool bS3, gmx_bool bE3, double f[]) |
| |
|
static void | set_forces (FILE *fp, int angle, int nx, double h, double v[], double f[], int table) |
| |
|
static std::vector< t_tabledata > | read_tables (FILE *fp, const char *filename, int ntab, int angle) |
| |
|
static void | fill_table (t_tabledata *td, int tp, const interaction_const_t &ic, gmx_bool b14only) |
| |
|
static void | set_table_type (int tabsel[], const interaction_const_t &ic, gmx_bool b14only) |
| |
| std::unique_ptr< t_forcetable > | make_tables (FILE *fp, const interaction_const_t &ic, const char *fn, real rtab, int flags) |
| | Return tables for inner loops. More...
|
| |
| bondedtable_t | make_bonded_table (FILE *fplog, const char *fn, int angle) |
| | Return a table for bonded interactions,. More...
|
| |
| std::unique_ptr< t_forcetable > | makeDispersionCorrectionTable (FILE *fp, const interaction_const_t &ic, real rtab, const char *tabfn) |
| | Construct and return tabulated dispersion and repulsion interactions. More...
|
| |
| bool | decideWhetherToUseGpusForNonbondedWithThreadMpi (TaskTarget nonbondedTarget, bool haveAvailableDevices, const std::vector< int > &userGpuTaskAssignment, EmulateGpuNonbonded emulateGpuNonbonded, bool canUseNonbondedOnGpu, bool binaryReproducibilityRequested, int numRanksPerSimulation) |
| | Decide whether this thread-MPI simulation will run nonbonded tasks on GPUs. More...
|
| |
|
static bool | decideWhetherToUseGpusForPmeFft (const TaskTarget pmeFftTarget) |
| |
|
bool | canUseGpusForNonbonded (const t_inputrec &ir, const bool doRerun, std::string *error) |
| |
|
bool | canUseGpusForNonbondedFe (const t_inputrec &ir, std::string *error) |
| |
|
static bool | canUseGpusForPme (const bool useGpuForNonbonded, const TaskTarget pmeTarget, const TaskTarget pmeFftTarget, const t_inputrec &inputrec, std::string *errorMessage) |
| |
| bool | decideWhetherToUseGpusForPmeWithThreadMpi (bool useGpuForNonbonded, TaskTarget pmeTarget, TaskTarget pmeFftTarget, int numDevicesToUse, const std::vector< int > &userGpuTaskAssignment, const t_inputrec &inputrec, int numRanksPerSimulation, int numPmeRanksPerSimulation) |
| | Decide whether this thread-MPI simulation will run PME tasks on GPUs. More...
|
| |
| bool | decideWhetherToUseGpusForNonbonded (TaskTarget nonbondedTarget, const std::vector< int > &userGpuTaskAssignment, EmulateGpuNonbonded emulateGpuNonbonded, bool canUseNonbondedOnGpu, bool binaryReproducibilityRequested, bool gpusWereDetected) |
| | Decide whether the simulation will try to run nonbonded tasks on GPUs. More...
|
| |
| bool | decideWhetherToUseGpusForNonbondedFE (bool useGpuForNonbonded, TaskTarget nonBondedFeTarget, const t_inputrec &inputrec) |
| | Decide whether the simulation will try to run nonbonde FE tasks on GPUs. More...
|
| |
| bool | decideWhetherToUseGpusForPme (bool useGpuForNonbonded, TaskTarget pmeTarget, TaskTarget pmeFftTarget, const std::vector< int > &userGpuTaskAssignment, const t_inputrec &inputrec, int numRanksPerSimulation, int numPmeRanksPerSimulation, bool gpusWereDetected) |
| | Decide whether the simulation will try to run tasks of different types on GPUs. More...
|
| |
| PmeRunMode | determinePmeRunMode (bool useGpuForPme, const TaskTarget &pmeFftTarget, const t_inputrec &inputrec) |
| | Determine PME run mode. More...
|
| |
| bool | decideWhetherToUseGpusForBonded (bool useGpuForNonbonded, bool useGpuForPme, TaskTarget bondedTarget, const t_inputrec &inputrec, const gmx_mtop_t &mtop, int numPmeRanksPerSimulation, bool gpusWereDetected) |
| | Decide whether the simulation will try to run bonded tasks on GPUs. More...
|
| |
| bool | decideWhetherToUseGpuForUpdate (bool isDomainDecomposition, bool useUpdateGroups, PmeRunMode pmeRunMode, bool havePmeOnlyRank, bool useGpuForNonbonded, TaskTarget updateTarget, bool gpusWereDetected, const t_inputrec &inputrec, const gmx_mtop_t &mtop, bool useEssentialDynamics, bool doOrientationRestraints, bool haveFrozenAtoms, bool useModularSimulator, bool doRerun, const gmx::MDLogger &mdlog) |
| | Decide whether to use GPU for update. More...
|
| |
| bool | decideWhetherDirectGpuCommunicationCanBeUsed (gmx::GpuAwareMpiStatus mpiStatus, bool haveMts, bool useReplicaExchange, bool haveSwapCoords, bool gpusWereDetected, const gmx::MDLogger &mdlog) |
| | Decide whether direct GPU communication can be used. More...
|
| |
| bool | decideWhetherToUseGpuForHalo (bool havePPDomainDecomposition, bool useGpuForNonbonded, bool canUseDirectGpuComm, bool useModularSimulator, bool doRerun, bool haveEnergyMinimization, const gmx::MDLogger &mdlog) |
| | Decide whether to use GPU for halo exchange. More...
|
| |
| SimulationWorkload | createSimulationWorkload (const gmx::MDLogger &mdlog, const t_inputrec &inputrec, bool haveDynamicBox, bool useReplicaExchange, bool disableNonbondedCalculation, const DevelopmentFeatureFlags &devFlags, bool haveFillerParticlesInLocalState, bool havePpDomainDecomposition, bool haveSeparatePmeRank, bool useGpuForNonbonded, bool useGpuForNonbondedFE, PmeRunMode pmeRunMode, bool useGpuForBonded, bool useGpuForUpdate, bool useGpuDirectHalo, bool canUseDirectGpuComm, bool useGpuPmeDecomposition) |
| | Build datastructure that contains decisions whether to run different workload task on GPUs. More...
|
| |
| static bool | haveSpecialForces (const t_inputrec &inputrec, const gmx::ForceProviders &forceProviders, const pull_t *pull_work, const edsam *ed) |
| | Return true if there are special forces computed. More...
|
| |
| DomainLifetimeWorkload | setupDomainLifetimeWorkload (const t_inputrec &inputrec, const t_forcerec &fr, const pull_t *pull_work, const edsam *ed, const t_mdatoms &mdatoms, const SimulationWorkload &simulationWork) |
| | Set up workload flags that have the lifetime of the PP domain decomposition. More...
|
| |
| StepWorkload | setupStepWorkload (int legacyFlags, ArrayRef< const gmx::MtsLevel > mtsLevels, int64_t step, std::optional< bool > writeCheckpoint, const DomainLifetimeWorkload &domainWork, const SimulationWorkload &simulationWork, const t_inputrec &inputrec) |
| | Set up force flag struct from the force bitmask. More...
|
| |
| std::vector< GpuTask > | findGpuTasksOnThisRank (bool haveGpusOnThisPhysicalNode, TaskTarget nonbondedTarget, TaskTarget nonbondedFeTarget, TaskTarget pmeTarget, TaskTarget bondedTarget, TaskTarget updateTarget, bool useGpuForNonbonded, bool useGpuForPme, bool rankHasPpTask, bool rankHasPmeTask) |
| | Returns container of all tasks on this rank that are eligible for GPU execution. More...
|
| |
| GpuTasksOnRanks | findAllGpuTasksOnThisNode (ArrayRef< const GpuTask > gpuTasksOnThisRank, const PhysicalNodeCommunicator &physicalNodeComm) |
| | Returns container of all tasks on all ranks of this node that are eligible for GPU execution. More...
|
| |
|
int | get_nthreads_mpi (const gmx_hw_info_t *hwinfo, gmx_hw_opt_t *hw_opt, int numDevicesToUse, bool nonbondedOnGpu, bool pmeOnGpu, const t_inputrec *inputrec, const gmx_mtop_t &mtop, const MDLogger &mdlog, bool doMembed) |
| | Return the number of threads to use for thread-MPI based on how many were requested, which algorithms we're using, and how many particles there are. At the point we have already called check_and_update_hw_opt. Thus all options should be internally consistent and consistent with the hardware, except that ntmpi could be larger than number of GPUs. If necessary, this function will modify hw_opt->nthreads_omp.
|
| |
|
void | check_resource_division_efficiency (const gmx_hw_info_t *hwinfo, bool willUsePhysicalGpu, const MpiComm *mpiCommMySim, const MDLogger &mdlog) |
| | Check if the number of OpenMP threads is within reasonable range considering the hardware used. This is a crude check, but mainly intended to catch cases where the user starts 1 MPI rank per hardware thread or 1 rank per physical node. With a sub-optimal setup a note is printed to fplog and stderr. This function should be called after thread-MPI and OpenMP are set up.
|
| |
| void | checkAndUpdateHardwareOptions (const MDLogger &mdlog, gmx_hw_opt_t *hw_opt, bool isSimulationMainRank, int nPmeRanks, const t_inputrec *inputrec) |
| | Checks what our hardware options are based on how Gromacs was compiled and user-set options. More...
|
| |
| void | checkAndUpdateRequestedNumOpenmpThreads (gmx_hw_opt_t *hw_opt, const gmx_hw_info_t &hwinfo, const MpiComm &mpiCommMySim, const gmx_multisim_t *ms, int numRanksOnThisNode, PmeRunMode pmeRunMode, const gmx_mtop_t &mtop, const t_inputrec &inputrec) |
| | Check, and if necessary update, the number of OpenMP threads requested. More...
|
| |
|
void | checkHardwareOversubscription (int numThreadsOnThisRank, int rank, const HardwareTopology &hwTop, const PhysicalNodeCommunicator &comm, const MDLogger &mdlog) |
| | Warns for oversubscribing the hardware threads, when that is the case.
|
| |
| void | setThrowForPerformanceProblems (bool newValue) |
| | Flag for controlling behaviour in cases where performance might be low. More...
|
| |
| std::vector< int > | parseUserGpuIdString (const std::string &gpuIdString) |
| | Parse a GPU ID specifier string into a container describing device IDs exposed to the run. More...
|
| |
| std::vector< int > | makeListOfAvailableDevices (gmx::ArrayRef< const std::unique_ptr< DeviceInformation >> deviceInfoList, const std::string &devicesSelectedByUserString) |
| | Implement GPU ID selection by returning the available GPU IDs on this physical node that are compatible. More...
|
| |
| std::vector< int > | parseUserTaskAssignmentString (const std::string &gpuIdString) |
| | Parse a GPU ID specifier string into a container describing device ID to task mapping. More...
|
| |
| std::vector< int > | makeGpuIds (ArrayRef< const int > compatibleGpus, size_t numGpuTasks) |
| | Make a vector containing numGpuTasks IDs of the IDs found in compatibleGpus. More...
|
| |
| std::string | makeGpuIdString (const std::vector< int > &gpuIds, int totalNumberOfTasks) |
| | Convert a container of GPU deviced IDs to a string that can be used by gmx tune_pme as input to mdrun -gputasks. More...
|
| |
| void | checkUserGpuIds (ArrayRef< const std::unique_ptr< DeviceInformation >> deviceInfoList, ArrayRef< const int > compatibleGpus, ArrayRef< const int > gpuIds) |
| | Check that all user-selected GPUs are compatible. More...
|
| |
| void | reportGpuUsage (const MDLogger &mdlog, ArrayRef< const GpuTaskAssignment > gpuTaskAssignmentOnRanksOfThisNode, size_t numGpuTasksOnThisNode, size_t numPpRanks, bool printHostName, PmeRunMode pmeRunMode, const SimulationWorkload &simulationWork) |
| | Log a report on how GPUs are being used on the ranks of the physical node of rank 0 of the simulation. More...
|
| |
|
static void | print_hw_opt (FILE *fp, const gmx_hw_opt_t *hw_opt) |
| | Dump a hw_opt to fp.
|
| |
| template<GpuTask TaskType> |
| static bool | hasTaskType (const GpuTaskMapping &mapping) |
| | Function for whether the task of mapping has value TaskType. More...
|
| |
| static bool | hasPmeOrNonbondedTask (const GpuTaskMapping &mapping) |
| | Function for whether the mapping has the GPU PME or Nonbonded task. More...
|
| |
| static std::vector< int > | parseGpuDeviceIdentifierList (const std::string &gpuIdString) |
| | Parse a GPU ID specifier string into a container. More...
|
| |
| void | resumeIttTracingWhenAppropriate () |
| | Resume tracing when applicable. More...
|
| |
|
std::optional< std::string > | rdtscpDescription () |
| | When targeting x86, returns whether RDTSCP support is present.
|
| |
|
std::optional< std::string > | instrumentationApiDescription () |
| | Returns information for describing a possible profiling/instrumentation API.
|
| |
|
static void | comp_tpx (const char *fn1, const char *fn2, gmx_bool bRMSD, real ftol, real abstol) |
| |
|
static void | comp_trx (const gmx_output_env_t *oenv, const char *fn1, const char *fn2, gmx_bool bRMSD, real ftol, real abstol) |
| |
|
static void | chk_coords (int frame, int natoms, rvec *x, matrix box, real fac, real tol) |
| |
|
static void | chk_vels (int frame, int natoms, rvec *v) |
| |
|
static void | chk_forces (int frame, int natoms, rvec *f) |
| |
|
static void | chk_bonds (const InteractionDefinitions *idef, PbcType pbcType, rvec *x, matrix box, real tol) |
| |
|
static void | chk_trj (const gmx_output_env_t *oenv, const char *fn, const char *tpr, real tol) |
| |
|
static void | chk_tps (const char *fn, real vdw_fac, real bon_lo, real bon_hi) |
| |
|
static void | chk_ndx (const char *fn) |
| |
|
static void | chk_enx (const char *fn) |
| |
| int | gmx_check (int argc, char *argv[]) |
| | Implements gmx check. More...
|
| |
|
static int * | select_it (ArrayRef< const gmx_enxnm_t > nm, int *nset) |
| |
|
static void | sort_files (ArrayRef< std::string > files, double *settime) |
| |
|
static int | scan_ene_files (const std::vector< std::string > &files, double *readtime, double *timestep, int *nremax) |
| |
|
static void | edit_files (ArrayRef< std::string > files, double *readtime, double *settime, int *cont_type, gmx_bool bSetTime, gmx_bool bSort) |
| |
|
static void | update_ee_sum (int nre, int64_t *ee_sum_step, int64_t *ee_sum_nsteps, int64_t *ee_sum_nsum, t_energy *ee_sum, t_enxframe *fr, int out_step) |
| |
| int | gmx_eneconv (int argc, char *argv[]) |
| | Implements gmx eneconv. More...
|
| |
|
static int | or_groups (int nr1, const int *at1, int nr2, const int *at2, int *nr, int *at) |
| |
|
static int | and_groups (int nr1, const int *at1, int nr2, const int *at2, int *nr, int *at) |
| |
|
static gmx_bool | is_name_char (char c) |
| |
|
static int | parse_names (char **string, int *n_names, ArrayRef< char * > names) |
| |
|
static gmx_bool | parse_int_char (char **string, int *nr, unsigned char *c) |
| |
|
static gmx_bool | parse_int (char **string, int *nr) |
| |
|
static gmx_bool | isquote (char c) |
| |
|
static gmx_bool | parse_string (char **string, int *nr, ArrayRef< const IndexGroup > indexGroups) |
| |
|
static int | select_atomnumbers (char **string, const t_atoms *atoms, int n1, int *nr, int *index, char *gname) |
| |
|
static int | select_residuenumbers (char **string, const t_atoms *atoms, int n1, unsigned char c, int *nr, int *index, char *gname) |
| |
|
static int | select_residueindices (char **string, const t_atoms *atoms, int n1, unsigned char c, int *nr, int *index, char *gname) |
| |
|
static gmx_bool | atoms_from_residuenumbers (const t_atoms *atoms, const IndexGroup &indexGroup, int *nr, int *index) |
| |
|
static gmx_bool | comp_name (const char *name, const char *search) |
| |
|
static int | select_chainnames (const t_atoms *atoms, int n_names, ArrayRef< char * > names, int *nr, int *index) |
| |
|
static int | select_atomnames (const t_atoms *atoms, int n_names, ArrayRef< char * > names, int *nr, int *index, gmx_bool bType) |
| |
|
static int | select_residuenames (const t_atoms *atoms, int n_names, ArrayRef< char * > names, int *nr, int *index) |
| |
|
static void | make_gname (int n, ArrayRef< char * > names, char *gname) |
| |
|
static void | copy_group (ArrayRef< const int > group, int *nr, int *index) |
| |
|
static void | remove_group (const int first, const int last, std::vector< IndexGroup > *indexGroups) |
| |
|
static void | split_group (const t_atoms *atoms, int sel_nr, std::vector< IndexGroup > *indexGroups, gmx_bool bAtom) |
| |
|
static int | split_chain (const t_atoms *atoms, const rvec *x, int sel_nr, std::vector< IndexGroup > *indexGroups) |
| |
|
static gmx_bool | check_have_atoms (const t_atoms *atoms, char *string) |
| |
|
static gmx_bool | parse_entry (char **string, int natoms, const t_atoms *atoms, std::vector< IndexGroup > *indexGroups, int *nr, int *index, char *gname, ArrayRef< char * > entryNames) |
| |
|
static void | list_residues (const t_atoms *atoms) |
| |
|
static void | edit_index (int natoms, const t_atoms *atoms, const rvec *x, std::vector< IndexGroup > *indexGroups, gmx_bool bVerbose) |
| |
|
static int | impliedNumberOfAtom (ArrayRef< const IndexGroup > indexGroups) |
| | Find the number of atoms in the system implied by the largest atom index.
|
| |
| int | gmx_make_ndx (int argc, char *argv[]) |
| | Implements gmx make_ndx. More...
|
| |
|
static int | calc_ntype (int nft, const InteractionFunction *ft, const t_idef *idef) |
| |
|
static void | fill_ft_ind (int nft, const InteractionFunction *ft, const t_idef *idef, int ft_ind[], char *grpnames[]) |
| |
|
static void | fill_ang (int nft, const InteractionFunction *ft, int fac, int nr[], int *index[], const int ft_ind[], const t_topology *top, gmx_bool bNoH, real hq) |
| |
|
static InteractionFunction * | select_ftype (const char *opt, int *nft, int *mult) |
| |
| int | gmx_mk_angndx (int argc, char *argv[]) |
| | Implements gmx mk_angndx. More...
|
| |
|
static gmx_bool | is_charge (real charge) |
| |
|
static void | calc_q2all (const gmx_mtop_t *mtop, real *q2all, real *q2allnr) |
| |
|
static real | estimate_direct (PmeErrorInputs *info) |
| |
|
static real | eps_poly1 (real m, real K, real n) |
| |
|
static real | eps_poly2 (real m, real K, real n) |
| |
|
static real | eps_poly3 (real m, real K, real n) |
| |
|
static real | eps_poly4 (real m, real K, real n) |
| |
|
static real | eps_self (real m, real K, rvec rboxv, real n, rvec x) |
| |
|
static void | calc_recipbox (matrix box, matrix recipbox) |
| |
|
static real | estimate_reciprocal (PmeErrorInputs *info, rvec x[], const real q[], int nr, FILE gmx_unused *fp_out, gmx_bool bVerbose, int seed, int *nsamples, const MpiComm &mpiComm) |
| |
|
static void | create_info (PmeErrorInputs *info) |
| |
|
static int | prepare_x_q (real *q[], rvec *x[], const gmx_mtop_t *mtop, const rvec x_orig[], const MpiComm &mpiComm) |
| |
|
static void | read_tpr_file (const char *fn_sim_tpr, PmeErrorInputs *info, t_state *state, gmx_mtop_t *mtop, t_inputrec *ir, real user_beta, real fracself) |
| |
|
static void | bcast_info (PmeErrorInputs *info, const MpiComm &mpiComm) |
| |
|
static void | estimate_PME_error (PmeErrorInputs *info, const t_state *state, const gmx_mtop_t *mtop, FILE *fp_out, gmx_bool bVerbose, unsigned int seed, const MpiComm &mpiComm) |
| |
| int | gmx_pme_error (int argc, char *argv[]) |
| | Implements gmx pme_error. More...
|
| |
| void | writeHeader (TextWriter *writer, const std::string &text, const std::string §ion, bool writeFormattedText) |
| | Write appropiate Header to output stream. More...
|
| |
| void | writeSystemInformation (TextWriter *writer, const gmx_mtop_t &top, bool writeFormattedText) |
| | Write information about the molecules in the system. More...
|
| |
| void | writeParameterInformation (TextWriter *writer, const t_inputrec &ir, bool writeFormattedText) |
| | Write information about system parameters. More...
|
| |
| void | writeInformation (TextOutputFile *outputStream, const t_inputrec &ir, const gmx_mtop_t &top, bool writeFormattedText, bool notStdout) |
| | Wrapper for writing out information. More...
|
| |
|
static void | scan_trj_files (ArrayRef< const std::string > files, real *readtime, real *timestep, int imax, const gmx_output_env_t *oenv) |
| |
|
static void | sort_files (ArrayRef< std::string > files, real *settime) |
| |
|
static void | edit_files (ArrayRef< std::string > files, real *readtime, real *timestep, real *settime, int *cont_type, gmx_bool bSetTime, gmx_bool bSort, const gmx_output_env_t *oenv) |
| |
|
static void | do_demux (ArrayRef< const std::string > inFiles, ArrayRef< const std::string > outFiles, int nval, real **value, real *time, real dt_remd, int isize, int index[], real dt, const gmx_output_env_t *oenv) |
| |
| int | gmx_trjcat (int argc, char *argv[]) |
| | Implements gmx trjcat. More...
|
| |
|
static void | mk_filenm (char *base, const char *ext, int ndigit, int file_nr, char out_file[]) |
| |
|
static void | check_trr (const char *fn) |
| |
|
static void | do_trunc (const char *fn, real t0) |
| |
static std::unique_ptr
< gmx_mtop_t > | read_mtop_for_tng (const char *tps_file, const char *input_file, const char *output_file) |
| | Read a full molecular topology if useful and available. More...
|
| |
|
static void | copyTrxframeDeeply (const t_trxframe &input, t_trxframe *copy) |
| | Do a deep copy of input and store in (pre-allocated) copy.
|
| |
|
static void | swapFrames (t_trxframe *a, t_trxframe *b) |
| | Swap the contents of a and b.
|
| |
| int | gmx_trjconv (int argc, char *argv[]) |
| | Implements gmx trjconv. More...
|
| |
|
static void | sep_line (FILE *fp) |
| |
|
static int | gmx_system_call (const char *command) |
| |
|
static gmx_bool | str_starts (const char *string, const char *substring) |
| |
|
static void | cleandata (t_perf *perfdata, int test_nr) |
| |
|
static void | remove_if_exists (const char *fn) |
| |
|
static void | finalize (const char *fn_out) |
| |
|
static int | parse_logfile (const char *logfile, const char *errfile, t_perf *perfdata, int test_nr, int presteps, int64_t cpt_steps, int nnodes) |
| |
|
static gmx_bool | analyze_data (FILE *fp, const char *fn, t_perf **perfdata, int nnodes, int ntprs, int ntests, int nrepeats, PmeTuneInputs *info, int *index_tpr, int *npme_optimal) |
| |
|
static void | get_program_paths (gmx_bool bThreads, char *cmd_mpirun[], char *cmd_mdrun[]) |
| |
|
static void | check_mdrun_works (gmx_bool bThreads, const char *cmd_mpirun, const char *cmd_np, const char *cmd_mdrun, gmx_bool bNeedGpuSupport) |
| |
|
static std::string | make_gpu_id_command_line (const char *eligible_gpu_ids) |
| |
|
static void | launch_simulation (gmx_bool bLaunch, FILE *fp, gmx_bool bThreads, char *cmd_mpirun, char *cmd_np, char *cmd_mdrun, char *args_for_mdrun, const char *simulation_tpr, int nPMEnodes, const char *eligible_gpu_ids) |
| |
|
static void | modify_PMEsettings (int64_t simsteps, int64_t init_step, const char *fn_best_tpr, const char *fn_sim_tpr) |
| |
|
static gmx_bool | can_scale_rvdw (VanDerWaalsType vdwtype) |
| |
|
static void | make_benchmark_tprs (const char *fn_sim_tpr, char *fn_bench_tprs[], int64_t benchsteps, int64_t statesteps, real rmin, real rmax, bool bScaleRvdw, const int *ntprs, PmeTuneInputs *info, FILE *fp) |
| |
|
static void | cleanup (const t_filenm *fnm, int nfile, int k, int nnodes, int nPMEnodes, int nr, gmx_bool bKeepStderr) |
| |
|
static void | make_npme_list (const char *npmevalues_opt, int *nentries, int *nPMEnodes[], int nnodes, int minPMEnodes, int maxPMEnodes) |
| |
|
static void | init_perfdata (t_perf *perfdata[], int ntprs, int datasets, int repeats) |
| |
|
static void | make_sure_it_runs (const char *mdrun_cmd_line, int length, FILE *fp, const t_filenm *fnm, int nfile) |
| |
|
static void | do_the_tests (FILE *fp, char **tpr_names, int maxPMEnodes, int minPMEnodes, int npme_fixed, const char *npmevalues_opt, t_perf **perfdata, int *pmeentries, int repeats, int nnodes, int nr_tprs, gmx_bool bThreads, char *cmd_mpirun, char *cmd_np, char *cmd_mdrun, char *cmd_args_bench, const t_filenm *fnm, int nfile, int presteps, int64_t cpt_steps, gmx_bool bCheck, const char *eligible_gpu_ids) |
| |
|
static void | check_input (int nnodes, int repeats, int *ntprs, real *rmin, real rcoulomb, real *rmax, real maxPMEfraction, real minPMEfraction, int npme_fixed, int64_t bench_nsteps, const t_filenm *fnm, int nfile, int sim_part, int presteps, int npargs, t_pargs *pa) |
| |
|
static gmx_bool | is_launch_file (const char *opt, gmx_bool bSet) |
| |
|
static gmx_bool | is_bench_file (const char *opt, gmx_bool bSet, gmx_bool bOptional, gmx_bool bIsOutput) |
| |
|
static void | add_to_string (char **str, const char *buf) |
| |
|
static void | create_command_line_snippets (gmx_bool bAppendFiles, gmx_bool bKeepAndNumCPT, gmx_bool bResetHWay, int presteps, int nfile, t_filenm fnm[], char *cmd_args_bench[], char *cmd_args_launch[], char extra_args[], char *deffnm) |
| |
|
static void | setopt (const char *opt, int nfile, t_filenm fnm[]) |
| |
|
static float | inspect_tpr (int nfile, t_filenm fnm[], real *rcoulomb) |
| |
|
static void | couple_files_options (int nfile, t_filenm fnm[]) |
| |
| int | gmx_tune_pme (int argc, char *argv[]) |
| | Implements gmx tune_pme. More...
|
| |
|
static bool | isEmbeddedAtom (Index globalAtomIndex, const std::set< int > &embeddedIndices) |
| |
| std::vector< bool > | splitEmbeddedBlocks (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices) |
| | Splits embedded atom containing molecules out of MM blocks in topology. More...
|
| |
| std::vector< real > | removeEmbeddedClassicalCharges (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const std::vector< bool > &isEmbeddedBlock, real refQ, const MDLogger &logger, WarningHandler *wi) |
| | Removes classical charges from embedded atoms and virtual sites. More...
|
| |
| void | addEmbeddedNBExclusions (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const MDLogger &logger) |
| | Build exclusion list for non-bonded interactions between embedded atoms. More...
|
| |
| std::vector< int > | buildEmbeddedAtomNumbers (const gmx_mtop_t &mtop) |
| | Builds and returns a vector of atom numbers for all atoms in mtop. More...
|
| |
| void | modifyEmbeddedTwoCenterInteractions (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const std::vector< bool > &isEmbeddedBlock, const MDLogger &logger) |
| | Modifies pairwise bonded interactions. More...
|
| |
| std::vector< LinkFrontierAtom > | buildLinkFrontier (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const std::vector< bool > &isEmbeddedBlock, const MDLogger &logger) |
| | Builds link frontier vector with pairs of atoms indicting broken embedded - MM chemical bonds. More...
|
| |
| void | modifyEmbeddedThreeCenterInteractions (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const std::vector< bool > &isEmbeddedBlock, const MDLogger &logger) |
| | Modifies three-centers interactions (i.e. Angles, Settles) More...
|
| |
| void | modifyEmbeddedFourCenterInteractions (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const std::vector< bool > &isEmbeddedBlock, const MDLogger &logger) |
| | Modifies four-centers interactions. More...
|
| |
| void | checkConstrainedBonds (gmx_mtop_t *mtop, const std::set< int > &embeddedIndices, const std::vector< bool > &isEmbeddedBlock, WarningHandler *wi) |
| | Checks for constrained bonds within embedded subsystem. More...
|
| |
| void | blockaToExclusionBlocks (const t_blocka *b, gmx::ArrayRef< ExclusionBlock > b2) |
| | Convert the exclusions. More...
|
| |
|
void | exclusionBlocksToBlocka (gmx::ArrayRef< const ExclusionBlock > b2, t_blocka *b) |
| | Convert the exclusions expressed in b into t_blocka form.
|
| |
| void | mergeExclusions (ListOfLists< int > *excl, gmx::ArrayRef< ExclusionBlock > b2) |
| | Merge the contents of b2 into excl. More...
|
| |
|
void | comp_frame (FILE *fp, t_trxframe *fr1, t_trxframe *fr2, gmx_bool bRMSD, real ftol, real abstol) |
| |
|
void | done_frame (t_trxframe *frame) |
| |
|
Isotope | getIsotopeFromString (const std::string &isotope) |
| | Convert isotope name from string to enum.
|
| |
|
std::vector< Isotope > | getIsotopes (const t_atoms *atoms) |
| | Reads element list and returns vector of isotopes.
|
| |
std::vector
< AtomicStructureFactor > | readAtomicStructureFactors () |
| | Helper function to read in atomic scattering data from file.
|
| |
| void | registerTrajectoryAnalysisModules (CommandLineModuleManager *manager) |
| | Registers all trajectory analysis command-line modules. More...
|
| |
|
gmx_rmpbc_t | gmx_rmpbc_init (const gmx::TopologyInformation &topInfo) |
| | Convenience overload useful for implementing legacy tools.
|
| |
| static std::size_t | getPageSize () |
| | Return a page size, from a sysconf/WinAPI query if available, or a default guess (4096 bytes). More...
|
| |
| std::string | simpleValueToString (const Any &value) |
| | Converts a Any value to a string. More...
|
| |
std::unordered_map
< std::string, std::string > | versionDescriptions () |
| | Returns information for describing the GROMACS version.
|
| |
| ArrayRef< bool > | makeArrayRef (std::vector< BoolType > &boolVector) |
| | Create ArrayRef to bool from reference to std::vector<BoolType>. More...
|
| |
| ArrayRef< const bool > | makeConstArrayRef (const std::vector< BoolType > &boolVector) |
| | Create ArrayRef to const bool from reference to std::vector<BoolType>. More...
|
| |
|
std::string | bromacs () |
| | Return a cool definition for the acronym GROMACS.
|
| |
|
std::string | getCoolQuote () |
| | Return a string with a cool quote.
|
| |
| const char * | getErrorCodeString (int errorcode) |
| | Returns a short string description of an error code. More...
|
| |
| void | printFatalErrorMessage (FILE *fp, const std::exception &ex) |
| | Formats a standard fatal error message for reporting an exception. More...
|
| |
| std::string | formatExceptionMessageToString (const std::exception &ex) |
| | Formats an error message for reporting an exception. More...
|
| |
| void | formatExceptionMessageToFile (FILE *fp, const std::exception &ex) |
| | Formats an error message for reporting an exception. More...
|
| |
| void | formatExceptionMessageToWriter (TextWriter *writer, const std::exception &ex) |
| | Formats an error message for reporting an exception. More...
|
| |
| int | processExceptionAtExit (const std::exception &ex) |
| | Handles an exception that is causing the program to terminate. More...
|
| |
| void | processExceptionAsFatalError (const std::exception &ex) |
| | Helper function for terminating the program on an exception. More...
|
| |
| IFileInputRedirector & | defaultFileInputRedirector () |
| | Returns default implementation for IFileInputRedirector. More...
|
| |
| IFileOutputRedirector & | defaultFileOutputRedirector () |
| | Returns default implementation for IFileOutputRedirector. More...
|
| |
| const DataFileFinder & | getLibraryFileFinder () |
| | Gets a finder for locating data files from share/top/. More...
|
| |
| void | setLibraryFileFinder (const DataFileFinder *finder) |
| | Sets a finder for location data files from share/top/. More...
|
| |
| std::filesystem::path | findLibraryFile (const std::filesystem::path &filename, bool bAddCWD=true, bool bFatal=true) |
| | Finds full path for a library file. More...
|
| |
| FilePtr | openLibraryFile (const std::filesystem::path &filename, bool bAddCWD=true, bool bFatal=true) |
| | Opens a library file for reading in an RAII-style FILE handle. More...
|
| |
|
std::string | openmpDescription () |
| | Returns information for describing the OpenMP support.
|
| |
|
IKeyValueTreeErrorHandler * | defaultKeyValueTreeErrorHandler () |
| | Returns a default IKeyValueTreeErrorHandler that throws on first exception.
|
| |
| std::size_t | pageSize () |
| | Return the memory page size on this system. More...
|
| |
| template<class T1 , class Policy1 , class T2 , class Policy2 > |
| bool | operator== (const Allocator< T1, Policy1 > &a, const Allocator< T2, Policy2 > &b) |
| | Return true if two allocators are identical. More...
|
| |
|
template<class T1 , class Policy1 , class T2 , class Policy2 > |
| bool | operator!= (const Allocator< T1, Policy1 > &a, const Allocator< T2, Policy2 > &b) |
| | Return true if two allocators are different.
|
| |
| template<typename Callable > |
| auto | coordinateExceptionHandling (MPI_Comm communicator, Callable callable) -> typename std::invoke_result_t< Callable > |
| | Call the callable and then make sure all MPI ranks of communicator have consistent exception-throwing behaviour. More...
|
| |
| void | init (int *argc, char ***argv) |
| | Initializes the GROMACS library. More...
|
| |
| void | finalize () |
| | Deinitializes the GROMACS library. More...
|
| |
|
KeyValueTreePath | operator+ (const KeyValueTreePath &a, const KeyValueTreePath &b) |
| | Combines two paths as with KeyValueTreePath::append().
|
| |
|
KeyValueTreePath | operator+ (const KeyValueTreePath &a, const std::string &b) |
| | Combines an element to a path as with KeyValueTreePath::append().
|
| |
| void | dumpKeyValueTree (TextWriter *writer, const KeyValueTreeObject &tree) |
| | Writes a human-readable representation of the tree with given writer. More...
|
| |
|
void | compareKeyValueTrees (TextWriter *writer, const KeyValueTreeObject &tree1, const KeyValueTreeObject &tree2, real ftol, real abstol) |
| | Compares two KeyValueTrees and prints any differences.
|
| |
|
static std::string | simpleValueToString (const KeyValueTreeValue &value) |
| | Helper function to format a simple KeyValueTreeValue.
|
| |
| void | writeKeyValueTreeAsMdp (TextWriter *writer, const KeyValueTreeObject &tree) |
| | Write a flat key-value tree to writer in mdp style. More...
|
| |
|
const char * | enumValueToString (GpuAwareMpiStatus status) |
| | Helper function to pretty-print GPU-aware status values.
|
| |
|
bool | usingIntelMpi () |
| | Return whether GROMACS is linked against an MPI library describing itself as Intel MPI.
|
| |
| GpuAwareMpiStatus | checkMpiCudaAwareSupport () |
| | Wrapper on top of MPIX_Query_cuda_support() For MPI implementations which don't support this function, it returns NotSupported. Even when an MPI implementation does support this function, MPI library might not be robust enough to detect CUDA-aware support at runtime correctly e.g. when UCX PML is used or CUDA is disabled at runtime. More...
|
| |
| GpuAwareMpiStatus | checkMpiHipAwareSupport () |
| | Wrapper on top of MPIX_Query_hip_support() or MPIX_Query_rocm_support(). For MPI implementations which don't support this function, it returns NotSupported. More...
|
| |
| GpuAwareMpiStatus | checkMpiZEAwareSupport () |
| | Wrapper on top of MPIX_Query_ze_support() (for MPICH) or custom logic (for IntelMPI). More...
|
| |
std::unordered_map
< std::string, std::string > | mpiDescriptions () |
| | Returns information for describing the MPI support.
|
| |
| void | niceHeader (TextWriter *writer, const char *fn, char commentChar) |
| | Prints creation time stamp and user information into a string as comments, and returns it. More...
|
| |
std::vector
< std::filesystem::path > | splitPathEnvironment (const std::string &pathEnv) |
| | Split PATH environment variable into search paths. More...
|
| |
std::vector
< std::filesystem::path > | getSystemExecutablePaths () |
| | Get collection of possible executable paths.
|
| |
|
std::string | stripSourcePrefix (const char *path) |
| | Strip source prefix from path.
|
| |
|
std::filesystem::path | concatenateBeforeExtension (const std::filesystem::path &path, const std::string &addition) |
| | Concatenate before extension.
|
| |
|
std::filesystem::path | stripExtension (const std::filesystem::path &path) |
| | Remove extension from file path.
|
| |
|
bool | extensionMatches (const std::filesystem::path &path, std::string_view extension) |
| | Check if file extension of path without final '.' matches extension.
|
| |
| void | MPI_Comm_free_wrapper (MPI_Comm *comm) |
| | Wrapper function for RAII-style cleanup. More...
|
| |
| bool | boolFromString (const char *str) |
| | Parses a boolean from a string. More...
|
| |
| int | intFromString (const char *str) |
| | Parses an integer from a string. More...
|
| |
| unsigned int | uintFromString (const char *str) |
| | Parses an unsigned integer from a string. More...
|
| |
| int64_t | int64FromString (const char *str) |
| | Parses a 64-bit integer from a string. More...
|
| |
| uint64_t | uint64FromString (const char *str) |
| | Parses a 64-bit unsigned integer from a string. More...
|
| |
| float | floatFromString (const char *str) |
| | Parses a float value from a string. More...
|
| |
| double | doubleFromString (const char *str) |
| | Parses a double value from a string. More...
|
| |
| template<typename T > |
| static T | fromString (const char *str) |
| | Parses a value from a string to a given type. More...
|
| |
| template<typename T > |
| static T | fromString (const std::string &str) |
| | Parses a value from a string to a given type. More...
|
| |
| template<typename T > |
| static T | fromStdString (const std::string &str) |
| | Parses a value from a string to a given type. More...
|
| |
|
template<> |
| bool | fromString< bool > (const char *str) |
| | Implementation for boolean values.
|
| |
|
template<> |
| int | fromString< int > (const char *str) |
| | Implementation for integer values.
|
| |
|
template<> |
| unsigned int | fromString< unsigned int > (const char *str) |
| | Implementation for unsigned integer values.
|
| |
|
template<> |
| int64_t | fromString< int64_t > (const char *str) |
| | Implementation for 64-bit integer values.
|
| |
|
template<> |
| uint64_t | fromString< uint64_t > (const char *str) |
| | Implementation for 64-bit unsigned integer values.
|
| |
|
template<> |
| float | fromString< float > (const char *str) |
| | Implementation for float values.
|
| |
|
template<> |
| double | fromString< double > (const char *str) |
| | Implementation for double values.
|
| |
| static const char * | boolToString (bool value) |
| | Converts a boolean to a "true"/"false" string. More...
|
| |
| static std::string | intToString (int t) |
| | Returns a string containing the value of t. More...
|
| |
| static std::string | uintToString (unsigned int t) |
| | Returns a string containing the value of t. More...
|
| |
| static std::string | int64ToString (int64_t t) |
| | Returns a string containing the value of t. More...
|
| |
| static std::string | uint64ToString (uint64_t t) |
| | Returns a string containing the value of t. More...
|
| |
| static std::string | doubleToString (double t) |
| | Returns a string containing the value of t. More...
|
| |
| static std::string | unsignedCharToString (unsigned char t) |
| | Returns a string containing the value of t. More...
|
| |
| template<typename ValueType , int NumExpectedValues> |
static std::optional
< std::array< ValueType,
NumExpectedValues > > | parsedArrayFromInputString (const std::string &str) |
| | Convert a string into an array of values. More...
|
| |
| template<typename ValueType , int NumExpectedValues> |
| static std::string | stringIdentityTransformWithArrayCheck (const std::string &toConvert, const std::string &errorContextMessage) |
| | Returns the input string, throwing an exception if the demanded conversion to an array will not succeed. More...
|
| |
|
template<class Function > |
| auto | dispatchTemplatedFunction (Function &&f) |
| |
|
bool | checkIfAvailable (TextWriter *writer, const char *description, const void *p) |
| | Returns true if p is non-null, otherwise prints a message to writer and returns false.
|
| |
|
void | printTitleAndSize (TextWriter *writer, const char *title, int n) |
| | Prints a title from the description and number of values n.
|
| |
| const IProgramContext & | getProgramContext () |
| | Returns the global IProgramContext instance. More...
|
| |
| void | setProgramContext (const IProgramContext *context) |
| | Sets the global IProgramContext instance. More...
|
| |
| std::size_t | countWords (const char *s) |
| | Returns number of space-separated words in zero-terminated char ptr. More...
|
| |
| std::size_t | countWords (const std::string &str) |
| | Returns the number of space-separated words in a string object. More...
|
| |
| bool | endsWith (const char *str, const char *suffix) |
| | Tests whether a string ends with another string. More...
|
| |
| std::string | stripSuffixIfPresent (const std::string &str, const char *suffix) |
| | Removes a suffix from a string. More...
|
| |
| std::string | stripString (const std::string &str) |
| | Removes leading and trailing whitespace from a string. More...
|
| |
|
std::string | formatString (gmx_fmtstr const char *fmt,...) |
| |
| std::string | formatStringV (const char *fmt, std::va_list ap) |
| | Formats a string (vsnprintf() wrapper). More...
|
| |
| std::vector< std::string > | splitString (const std::string &str) |
| | Splits a string to whitespace separated tokens. More...
|
| |
| std::vector< std::string > | splitDelimitedString (const std::string &str, char delim) |
| | Splits a string to tokens separated by a given delimiter. More...
|
| |
| std::vector< std::string > | splitAndTrimDelimitedString (const std::string &str, char delim) |
| | Splits str to tokens separated by delimiter delim. Removes leading and trailing whitespace from those strings with std::isspace. More...
|
| |
| std::string | replaceAll (const std::string &input, const char *from, const char *to) |
| | Replace all occurrences of a string with another string. More...
|
| |
| std::string | replaceAll (const std::string &input, const std::string &from, const std::string &to) |
| | Replace all occurrences of a string with another string. More...
|
| |
| std::string | replaceAllWords (const std::string &input, const char *from, const char *to) |
| | Replace whole words with others. More...
|
| |
| std::string | replaceAllWords (const std::string &input, const std::string &from, const std::string &to) |
| | Replace whole words with others. More...
|
| |
| bool | equalCaseInsensitive (const std::string &source, const std::string &target) |
| | Return whether two strings are equal, ignoring case. More...
|
| |
|
bool | equalIgnoreDash (const std::string &source, const std::string &target) |
| | Return whether too strings are case sensitive equal, ignoring dashes.
|
| |
| bool | equalCaseInsensitive (const std::string &source, const std::string &target, size_t maxLengthOfComparison) |
| | Checks if at most maxLengthOfComparison characters of two strings match case insensitive. More...
|
| |
| std::string | toUpperCase (const std::string &text) |
| | Makes the string uppercase. More...
|
| |
| std::string | toLowerCase (const std::string &text) |
| | Makes the string lowercase. More...
|
| |
| std::string | prettyPrintListAsRange (ArrayRef< const int > list) |
| | Formats a range of integers using taskset-style notation when possible. More...
|
| |
|
void | registerLegacyModules (CommandLineModuleManager *manager) |
| |
| int | gmx_mdrun (int argc, char *argv[]) |
| | Implements C-style main function for mdrun. More...
|
| |
| int | gmx_mdrun (MPI_Comm communicator, const gmx_hw_info_t &hwinfo, int argc, char *argv[]) |
| | Implements C-style main function for mdrun. More...
|
| |
| AnalysisHistogramSettingsInitializer | histogramFromRange (real min, real max) |
| | Initializes a histogram using a range and a bin width. More...
|
| |
| AnalysisHistogramSettingsInitializer | histogramFromBins (real start, size_t nbins, real binwidth) |
| | Initializes a histogram using bin width and the number of bins. More...
|
| |
| static float | invsqrt (float x) |
| | Calculate 1.0/sqrt(x) in single precision. More...
|
| |
| static double | invsqrt (double x) |
| | Calculate 1.0/sqrt(x) in double precision, but single range. More...
|
| |
| static double | invsqrt (int x) |
| | Calculate 1.0/sqrt(x) for integer x in double precision. More...
|
| |
| static float | invcbrt (float x) |
| | Calculate inverse cube root of x in single precision. More...
|
| |
| static double | invcbrt (double x) |
| | Calculate inverse sixth root of x in double precision. More...
|
| |
| static double | invcbrt (int x) |
| | Calculate inverse sixth root of integer x in double precision. More...
|
| |
| static float | sixthroot (float x) |
| | Calculate sixth root of x in single precision. More...
|
| |
| static double | sixthroot (double x) |
| | Calculate sixth root of x in double precision. More...
|
| |
| static double | sixthroot (int x) |
| | Calculate sixth root of integer x, return double. More...
|
| |
| static float | invsixthroot (float x) |
| | Calculate inverse sixth root of x in single precision. More...
|
| |
| static double | invsixthroot (double x) |
| | Calculate inverse sixth root of x in double precision. More...
|
| |
| static double | invsixthroot (int x) |
| | Calculate inverse sixth root of integer x in double precision. More...
|
| |
| template<typename T > |
| T | square (T x) |
| | calculate x^2 More...
|
| |
| template<typename T > |
| T | power3 (T x) |
| | calculate x^3 More...
|
| |
| template<typename T > |
| T | power4 (T x) |
| | calculate x^4 More...
|
| |
| template<typename T > |
| T | power5 (T x) |
| | calculate x^5 More...
|
| |
| template<typename T > |
| T | power6 (T x) |
| | calculate x^6 More...
|
| |
| template<typename T > |
| T | power12 (T x) |
| | calculate x^12 More...
|
| |
| static real | series_sinhx (real x) |
| | Maclaurin series for sinh(x)/x. More...
|
| |
| constexpr int32_t | exactDiv (int32_t a, int32_t b) |
| | Exact integer division, 32bit. More...
|
| |
|
constexpr int64_t | exactDiv (int64_t a, int64_t b) |
| | Exact integer division, 64bit.
|
| |
| static int | roundToInt (float x) |
| | Round float to int. More...
|
| |
|
static int | roundToInt (double x) |
| | Round double to int.
|
| |
|
static int64_t | roundToInt64 (float x) |
| | Round float to int64_t.
|
| |
|
static int64_t | roundToInt64 (double x) |
| | Round double to int64_t.
|
| |
|
template<typename T , typename = std::enable_if_t<std::is_integral_v<T>>> |
| static constexpr bool | isPowerOfTwo (const T v) |
| | Check whether v is an integer power of 2.
|
| |
| template<typename T > |
| constexpr T | divideRoundUp (T numerator, T denominator) |
| | Return numerator divided by denominator rounded up to the next integer. More...
|
| |
| template<typename T > |
| T | makePeriodic (const T x, const T period) |
| | Return x modulo period such that it is within the interval [-0.5*period, 0.5*period]. More...
|
| |
| template<typename T > |
ArrayRef< std::conditional_t
< std::is_const_v< T >, const
typename T::value_type,
typename T::value_type > > | makeArrayRef (T &c) |
| | Create ArrayRef from container with type deduction. More...
|
| |
| template<typename T > |
ArrayRef< const typename
T::value_type > | makeConstArrayRef (const T &c) |
| | Create ArrayRef to const T from container with type deduction. More...
|
| |
| template<typename T > |
| void | swap (ArrayRef< T > &a, ArrayRef< T > &b) noexcept |
| | Simple swap method for ArrayRef objects. More...
|
| |
| template<typename T > |
| std::vector< T > | copyOf (const ArrayRef< const T > &arrayRef) |
| | Return a vector that is a copy of an ArrayRef. More...
|
| |
|
template<typename T > |
| Index | ssize (const T &t) |
| | Return signed size of container.
|
| |
| template<typename EnumerationArrayType > |
| EnumerationArrayType::EnumerationWrapperType | keysOf (const EnumerationArrayType &) |
| | Returns an object that provides iterators over the keys associated with EnumerationArrayType. More...
|
| |
| template<class Exception , class Tag , class T > |
std::enable_if_t
< std::is_base_of_v
< GromacsException, Exception >
, Exception > | operator<< (Exception ex, const ExceptionInfo< Tag, T > &item) |
| | Associates extra information with an exception. More...
|
| |
|
void | fclose_wrapper (FILE *fp) |
| | fclose wrapper to be used as unique_ptr deleter
|
| |
|
template<class ElementType > |
| void | swap (BasicMatrix3x3< ElementType > &mat1, BasicMatrix3x3< ElementType > &mat2) noexcept |
| | Stand-alone swap function based on https://en.cppreference.com/w/cpp/named_req/Swappable.
|
| |
|
template<typename ElementType > |
| BasicMatrix3x3< ElementType > | operator* (const ElementType scalar, const BasicMatrix3x3< ElementType > &other) |
| | Return the product of multiplying the 3x3 matrix other by the scalar.
|
| |
|
template<typename ElementType > |
| BasicVector< ElementType > | diagonal (const BasicMatrix3x3< ElementType > &matrix) |
| | Return a vector that is the diagonal of the 3x3 matrix.
|
| |
|
template<typename ElementType > |
| BasicMatrix3x3< ElementType > | transpose (BasicMatrix3x3< ElementType > matrix) |
| | Returns the transposition of matrix.
|
| |
|
template<typename ElementType > |
| constexpr ElementType | determinant (BasicMatrix3x3< ElementType > matrix) |
| | Returns the determinant of matrix.
|
| |
|
template<typename ElementType > |
| constexpr ElementType | trace (BasicMatrix3x3< ElementType > matrix) |
| | Returns the trace of matrix.
|
| |
|
template<typename ElementType > |
| BasicMatrix3x3< ElementType > | inner (const BasicMatrix3x3< ElementType > &matrixA, const BasicMatrix3x3< ElementType > &matrixB) |
| | Return the inner product of multiplication of two 3x3 matrices a and b.
|
| |
| template<typename ElementType > |
| BasicMatrix3x3< ElementType > | diagonalMatrix (const ElementType value) |
| | Create a diagonal matrix of ElementType. More...
|
| |
| template<typename ElementType > |
| BasicMatrix3x3< ElementType > | identityMatrix () |
| | Create an identity matrix of ElementType. More...
|
| |
|
static Matrix3x3 | createMatrix3x3FromLegacyMatrix (const matrix legacyMatrix) |
| | Create new matrix type from legacy type.
|
| |
|
static void | fillLegacyMatrix (Matrix3x3 newMatrix, matrix legacyMatrix) |
| | Fill existing legacy matrix from new matrix type.
|
| |
| static bool | isNullOrEmpty (const char *str) |
| | Tests whether a string is null or empty. More...
|
| |
| static bool | startsWith (const std::string &str, const std::string &prefix) |
| | Tests whether a string starts with another string. More...
|
| |
| static bool | startsWith (const char *str, const char *prefix) |
| | Tests whether a string starts with another string. More...
|
| |
| static bool | endsWith (const std::string &str, const char *suffix) |
| | Tests whether a string ends with another string. More...
|
| |
| static bool | contains (const std::string &str, const char *substr) |
| | Tests whether a string contains another as a substring. More...
|
| |
| static bool | contains (const std::string &str, const std::string &substr) |
| | Tests whether a string contains another as a substring. More...
|
| |
| static bool | endsWith (const std::string &str, const std::string &suffix) |
| | Tests whether a string ends with another string. More...
|
| |
| std::string | formatString (const char *fmt,...) |
| | Formats a string (snprintf() wrapper). More...
|
| |
| template<typename InputIterator , typename FormatterType > |
| std::string | formatAndJoin (InputIterator begin, InputIterator end, const char *separator, const FormatterType &formatter) |
| | Formats all the range as strings, and then joins them with a separator in between. More...
|
| |
| template<typename ContainerType , typename FormatterType > |
| std::string | formatAndJoin (const ContainerType &container, const char *separator, const FormatterType &formatter) |
| | Formats all elements of the container as strings, and then joins them with a separator in between. More...
|
| |
| template<typename InputIterator > |
| std::string | joinStrings (InputIterator begin, InputIterator end, const char *separator) |
| | Joins strings from a range with a separator in between. More...
|
| |
| template<typename ContainerType > |
| std::string | joinStrings (const ContainerType &container, const char *separator) |
| | Joins strings from a container with a separator in between. More...
|
| |
| template<size_t count> |
| std::string | joinStrings (const char *const (&array)[count], const char *separator) |
| | Joins strings from an array with a separator in between. More...
|
| |
|
template<class T > |
| void | free_wrapper (T *p) |
| | Wrapper of standard library free(), to be used as unique_cptr deleter for memory allocated by malloc, e.g. by an external library such as TNG.
|
| |
|
template<class T > |
| void | sfree_wrapper (T *p) |
| | sfree wrapper to be used as unique_cptr deleter
|
| |
|
template<typename T , typename D > |
| std::unique_ptr< T, D > | create_unique_with_deleter (T *t, D d) |
| | Create unique_ptr with any deleter function or lambda.
|
| |
|
template<typename ValueType > |
| constexpr BasicVector< ValueType > | operator* (const BasicVector< ValueType > &basicVector, const ValueType &scalar) |
| | Allow vector scalar multiplication.
|
| |
|
template<typename ValueType > |
| constexpr BasicVector< ValueType > | operator* (const ValueType &scalar, const BasicVector< ValueType > &basicVector) |
| | Allow scalar vector multiplication.
|
| |
|
template<typename VectorType > |
| static constexpr VectorType | unitVector (const VectorType &v) |
| | unitv for gmx::BasicVector
|
| |
|
template<typename ValueType > |
| static constexpr ValueType | norm (BasicVector< ValueType > v) |
| | norm for gmx::BasicVector
|
| |
|
template<typename ValueType > |
| static constexpr ValueType | norm2 (BasicVector< ValueType > v) |
| | Square of the vector norm for gmx::BasicVector.
|
| |
|
template<typename VectorType > |
| static constexpr VectorType | cross (const VectorType &a, const VectorType &b) |
| | cross product for gmx::BasicVector
|
| |
|
template<typename ValueType > |
| static constexpr ValueType | dot (BasicVector< ValueType > a, BasicVector< ValueType > b) |
| | dot product for gmx::BasicVector
|
| |
|
template<typename VectorType > |
| static constexpr VectorType | scaleByVector (const VectorType &a, const VectorType &b) |
| | Multiply two vectors element by element and return the result.
|
| |
|
template<typename VectorType > |
| static constexpr VectorType | elementWiseMin (const VectorType &a, const VectorType &b) |
| | Return the element-wise minimum of two vectors.
|
| |
|
template<typename VectorType > |
| static constexpr VectorType | elementWiseMax (const VectorType &a, const VectorType &b) |
| | Return the element-wise maximum of two vectors.
|
| |
|
template<typename ValueType > |
static BasicVector< ValueType >
::RawArray * | as_vec_array (BasicVector< ValueType > *x) |
| | Casts a gmx::BasicVector array into an equivalent raw C array.
|
| |
|
template<typename ValueType > |
static const BasicVector
< ValueType >::RawArray * | as_vec_array (const BasicVector< ValueType > *x) |
| | Casts a gmx::BasicVector array into an equivalent raw C array.
|
| |
|
static rvec * | as_rvec_array (RVec *x) |
| | Casts a gmx::RVec array into an rvec array.
|
| |
|
static const rvec * | as_rvec_array (const RVec *x) |
| | Casts a gmx::RVec array into an rvec array.
|
| |
|
static dvec * | as_dvec_array (DVec *x) |
| | Casts a gmx::DVec array into an Dvec array.
|
| |
|
static ivec * | as_ivec_array (IVec *x) |
| | Casts a gmx::IVec array into an ivec array.
|
| |
|
static const dvec * | as_dvec_array (const DVec *x) |
| | Casts a gmx::DVec array into an dvec array.
|
| |
|
static const ivec * | as_ivec_array (const IVec *x) |
| | Casts a gmx::IVec array into an ivec array.
|
| |
|
|
template<typename ValueType , std::enable_if_t< std::is_arithmetic_v< ValueType >, bool > = true> |
| static DataSetDims | getFrameDims (const DataSetDims &dataSetDims) |
| | Return the frame dimensions for the data set dimensions.
|
| |
|
| void | applyGlobalSimulationState (const SimulationInput &simulationInput, PartialDeserializedTprFile *partialDeserializedTpr, t_state *globalState, t_inputrec *inputrec, gmx_mtop_t *globalTopology) |
| | Get the global simulation input. More...
|
| |
|
std::unique_ptr< t_state > | globalSimulationState (const SimulationInput &) |
| |
|
void | applyGlobalInputRecord (const SimulationInput &, t_inputrec *) |
| |
|
void | applyGlobalTopology (const SimulationInput &, gmx_mtop_t *) |
| |
|
| static Simd4Double gmx_simdcall | load4 (const double *m) |
| | Load 4 double values from aligned memory into SIMD4 variable. More...
|
| |
| static void gmx_simdcall | store4 (double *m, Simd4Double a) |
| | Store the contents of SIMD4 double to aligned memory m. More...
|
| |
| static Simd4Double gmx_simdcall | load4U (const double *m) |
| | Load SIMD4 double from unaligned memory. More...
|
| |
| static void gmx_simdcall | store4U (double *m, Simd4Double a) |
| | Store SIMD4 double to unaligned memory. More...
|
| |
| static Simd4Double gmx_simdcall | simd4SetZeroD () |
| | Set all SIMD4 double elements to 0. More...
|
| |
| static Simd4Double gmx_simdcall | operator& (Simd4Double a, Simd4Double b) |
| | Bitwise and for two SIMD4 double variables. More...
|
| |
| static Simd4Double gmx_simdcall | andNot (Simd4Double a, Simd4Double b) |
| | Bitwise andnot for two SIMD4 double variables. c=(~a) & b. More...
|
| |
| static Simd4Double gmx_simdcall | operator| (Simd4Double a, Simd4Double b) |
| | Bitwise or for two SIMD4 doubles. More...
|
| |
| static Simd4Double gmx_simdcall | operator^ (Simd4Double a, Simd4Double b) |
| | Bitwise xor for two SIMD4 double variables. More...
|
| |
| static Simd4Double gmx_simdcall | operator+ (Simd4Double a, Simd4Double b) |
| | Add two double SIMD4 variables. More...
|
| |
| static Simd4Double gmx_simdcall | operator- (Simd4Double a, Simd4Double b) |
| | Subtract two SIMD4 variables. More...
|
| |
| static Simd4Double gmx_simdcall | operator- (Simd4Double a) |
| | SIMD4 floating-point negate. More...
|
| |
| static Simd4Double gmx_simdcall | operator* (Simd4Double a, Simd4Double b) |
| | Multiply two SIMD4 variables. More...
|
| |
| static Simd4Double gmx_simdcall | fma (Simd4Double a, Simd4Double b, Simd4Double c) |
| | SIMD4 Fused-multiply-add. Result is a*b+c. More...
|
| |
| static Simd4Double gmx_simdcall | fms (Simd4Double a, Simd4Double b, Simd4Double c) |
| | SIMD4 Fused-multiply-subtract. Result is a*b-c. More...
|
| |
| static Simd4Double gmx_simdcall | fnma (Simd4Double a, Simd4Double b, Simd4Double c) |
| | SIMD4 Fused-negated-multiply-add. Result is -a*b+c. More...
|
| |
| static Simd4Double gmx_simdcall | fnms (Simd4Double a, Simd4Double b, Simd4Double c) |
| | SIMD4 Fused-negated-multiply-subtract. Result is -a*b-c. More...
|
| |
| static Simd4Double gmx_simdcall | rsqrt (Simd4Double x) |
| | SIMD4 1.0/sqrt(x) lookup. More...
|
| |
| static Simd4Double gmx_simdcall | abs (Simd4Double a) |
| | SIMD4 Floating-point abs(). More...
|
| |
| static Simd4Double gmx_simdcall | max (Simd4Double a, Simd4Double b) |
| | Set each SIMD4 element to the largest from two variables. More...
|
| |
| static Simd4Double gmx_simdcall | min (Simd4Double a, Simd4Double b) |
| | Set each SIMD4 element to the largest from two variables. More...
|
| |
| static Simd4Double gmx_simdcall | round (Simd4Double a) |
| | SIMD4 Round to nearest integer value (in floating-point format). More...
|
| |
| static Simd4Double gmx_simdcall | trunc (Simd4Double a) |
| | Truncate SIMD4, i.e. round towards zero - common hardware instruction. More...
|
| |
| static double gmx_simdcall | dotProduct (Simd4Double a, Simd4Double b) |
| | Return dot product of two double precision SIMD4 variables. More...
|
| |
| static void gmx_simdcall | transpose (Simd4Double *v0, Simd4Double *v1, Simd4Double *v2, Simd4Double *v3) |
| | SIMD4 double transpose. More...
|
| |
| static Simd4DBool gmx_simdcall | operator== (Simd4Double a, Simd4Double b) |
| | a==b for SIMD4 double More...
|
| |
| static Simd4DBool gmx_simdcall | operator!= (Simd4Double a, Simd4Double b) |
| | a!=b for SIMD4 double More...
|
| |
| static Simd4DBool gmx_simdcall | operator< (Simd4Double a, Simd4Double b) |
| | a<b for SIMD4 double More...
|
| |
| static Simd4DBool gmx_simdcall | operator<= (Simd4Double a, Simd4Double b) |
| | a<=b for SIMD4 double. More...
|
| |
| static Simd4DBool gmx_simdcall | operator&& (Simd4DBool a, Simd4DBool b) |
| | Logical and on single precision SIMD4 booleans. More...
|
| |
| static Simd4DBool gmx_simdcall | operator|| (Simd4DBool a, Simd4DBool b) |
| | Logical or on single precision SIMD4 booleans. More...
|
| |
| static bool gmx_simdcall | anyTrue (Simd4DBool a) |
| | Returns non-zero if any of the boolean in SIMD4 a is True, otherwise 0. More...
|
| |
| static Simd4Double gmx_simdcall | selectByMask (Simd4Double a, Simd4DBool mask) |
| | Select from single precision SIMD4 variable where boolean is true. More...
|
| |
| static Simd4Double gmx_simdcall | selectByNotMask (Simd4Double a, Simd4DBool mask) |
| | Select from single precision SIMD4 variable where boolean is false. More...
|
| |
| static Simd4Double gmx_simdcall | blend (Simd4Double a, Simd4Double b, Simd4DBool sel) |
| | Vector-blend SIMD4 selection. More...
|
| |
| static double gmx_simdcall | reduce (Simd4Double a) |
| | Return sum of all elements in SIMD4 double variable. More...
|
| |
|
| static Simd4Float gmx_simdcall | load4 (const float *m) |
| | Load 4 float values from aligned memory into SIMD4 variable. More...
|
| |
| static void gmx_simdcall | store4 (float *m, Simd4Float a) |
| | Store the contents of SIMD4 float to aligned memory m. More...
|
| |
| static Simd4Float gmx_simdcall | load4U (const float *m) |
| | Load SIMD4 float from unaligned memory. More...
|
| |
| static void gmx_simdcall | store4U (float *m, Simd4Float a) |
| | Store SIMD4 float to unaligned memory. More...
|
| |
| static Simd4Float gmx_simdcall | simd4SetZeroF () |
| | Set all SIMD4 float elements to 0. More...
|
| |
| static Simd4Float gmx_simdcall | operator& (Simd4Float a, Simd4Float b) |
| | Bitwise and for two SIMD4 float variables. More...
|
| |
| static Simd4Float gmx_simdcall | andNot (Simd4Float a, Simd4Float b) |
| | Bitwise andnot for two SIMD4 float variables. c=(~a) & b. More...
|
| |
| static Simd4Float gmx_simdcall | operator| (Simd4Float a, Simd4Float b) |
| | Bitwise or for two SIMD4 floats. More...
|
| |
| static Simd4Float gmx_simdcall | operator^ (Simd4Float a, Simd4Float b) |
| | Bitwise xor for two SIMD4 float variables. More...
|
| |
| static Simd4Float gmx_simdcall | operator+ (Simd4Float a, Simd4Float b) |
| | Add two float SIMD4 variables. More...
|
| |
| static Simd4Float gmx_simdcall | operator- (Simd4Float a, Simd4Float b) |
| | Subtract two SIMD4 variables. More...
|
| |
| static Simd4Float gmx_simdcall | operator- (Simd4Float a) |
| | SIMD4 floating-point negate. More...
|
| |
| static Simd4Float gmx_simdcall | operator* (Simd4Float a, Simd4Float b) |
| | Multiply two SIMD4 variables. More...
|
| |
| static Simd4Float gmx_simdcall | fma (Simd4Float a, Simd4Float b, Simd4Float c) |
| | SIMD4 Fused-multiply-add. Result is a*b+c. More...
|
| |
| static Simd4Float gmx_simdcall | fms (Simd4Float a, Simd4Float b, Simd4Float c) |
| | SIMD4 Fused-multiply-subtract. Result is a*b-c. More...
|
| |
| static Simd4Float gmx_simdcall | fnma (Simd4Float a, Simd4Float b, Simd4Float c) |
| | SIMD4 Fused-negated-multiply-add. Result is -a*b+c. More...
|
| |
| static Simd4Float gmx_simdcall | fnms (Simd4Float a, Simd4Float b, Simd4Float c) |
| | SIMD4 Fused-negated-multiply-subtract. Result is -a*b-c. More...
|
| |
| static Simd4Float gmx_simdcall | rsqrt (Simd4Float x) |
| | SIMD4 1.0/sqrt(x) lookup. More...
|
| |
| static Simd4Float gmx_simdcall | abs (Simd4Float a) |
| | SIMD4 Floating-point fabs(). More...
|
| |
| static Simd4Float gmx_simdcall | max (Simd4Float a, Simd4Float b) |
| | Set each SIMD4 element to the largest from two variables. More...
|
| |
| static Simd4Float gmx_simdcall | min (Simd4Float a, Simd4Float b) |
| | Set each SIMD4 element to the largest from two variables. More...
|
| |
| static Simd4Float gmx_simdcall | round (Simd4Float a) |
| | SIMD4 Round to nearest integer value (in floating-point format). More...
|
| |
| static Simd4Float gmx_simdcall | trunc (Simd4Float a) |
| | Truncate SIMD4, i.e. round towards zero - common hardware instruction. More...
|
| |
| static float gmx_simdcall | dotProduct (Simd4Float a, Simd4Float b) |
| | Return dot product of two single precision SIMD4 variables. More...
|
| |
| static void gmx_simdcall | transpose (Simd4Float *v0, Simd4Float *v1, Simd4Float *v2, Simd4Float *v3) |
| | SIMD4 float transpose. More...
|
| |
| static Simd4FBool gmx_simdcall | operator== (Simd4Float a, Simd4Float b) |
| | a==b for SIMD4 float More...
|
| |
| static Simd4FBool gmx_simdcall | operator!= (Simd4Float a, Simd4Float b) |
| | a!=b for SIMD4 float More...
|
| |
| static Simd4FBool gmx_simdcall | operator< (Simd4Float a, Simd4Float b) |
| | a<b for SIMD4 float More...
|
| |
| static Simd4FBool gmx_simdcall | operator<= (Simd4Float a, Simd4Float b) |
| | a<=b for SIMD4 float. More...
|
| |
| static Simd4FBool gmx_simdcall | operator&& (Simd4FBool a, Simd4FBool b) |
| | Logical and on single precision SIMD4 booleans. More...
|
| |
| static Simd4FBool gmx_simdcall | operator|| (Simd4FBool a, Simd4FBool b) |
| | Logical or on single precision SIMD4 booleans. More...
|
| |
| static bool gmx_simdcall | anyTrue (Simd4FBool a) |
| | Returns non-zero if any of the boolean in SIMD4 a is True, otherwise 0. More...
|
| |
| static Simd4Float gmx_simdcall | selectByMask (Simd4Float a, Simd4FBool mask) |
| | Select from single precision SIMD4 variable where boolean is true. More...
|
| |
| static Simd4Float gmx_simdcall | selectByNotMask (Simd4Float a, Simd4FBool mask) |
| | Select from single precision SIMD4 variable where boolean is false. More...
|
| |
| static Simd4Float gmx_simdcall | blend (Simd4Float a, Simd4Float b, Simd4FBool sel) |
| | Vector-blend SIMD4 selection. More...
|
| |
| static float gmx_simdcall | reduce (Simd4Float a) |
| | Return sum of all elements in SIMD4 float variable. More...
|
| |
|
| static SimdDouble gmx_simdcall | simdLoad (const double *m, SimdDoubleTag={}) |
| | Load GMX_SIMD_DOUBLE_WIDTH numbers from aligned memory. More...
|
| |
| static void gmx_simdcall | store (double *m, SimdDouble a) |
| | Store the contents of SIMD double variable to aligned memory m. More...
|
| |
| static SimdDouble gmx_simdcall | simdLoadU (const double *m, SimdDoubleTag={}) |
| | Load SIMD double from unaligned memory. More...
|
| |
| static void gmx_simdcall | storeU (double *m, SimdDouble a) |
| | Store SIMD double to unaligned memory. More...
|
| |
| static SimdDouble gmx_simdcall | setZeroD () |
| | Set all SIMD double variable elements to 0.0. More...
|
| |
|
| static SimdDInt32 gmx_simdcall | simdLoad (const std::int32_t *m, SimdDInt32Tag) |
| | Load aligned SIMD integer data, width corresponds to gmx::SimdDouble. More...
|
| |
| static void gmx_simdcall | store (std::int32_t *m, SimdDInt32 a) |
| | Store aligned SIMD integer data, width corresponds to gmx::SimdDouble. More...
|
| |
| static SimdDInt32 gmx_simdcall | simdLoadU (const std::int32_t *m, SimdDInt32Tag) |
| | Load unaligned integer SIMD data, width corresponds to gmx::SimdDouble. More...
|
| |
| static void gmx_simdcall | storeU (std::int32_t *m, SimdDInt32 a) |
| | Store unaligned SIMD integer data, width corresponds to gmx::SimdDouble. More...
|
| |
| static SimdDInt32 gmx_simdcall | setZeroDI () |
| | Set all SIMD (double) integer variable elements to 0. More...
|
| |
| template<int index> |
| static std::int32_t gmx_simdcall | extract (SimdDInt32 a) |
| | Extract element with index i from gmx::SimdDInt32. More...
|
| |
|
| static SimdDouble gmx_simdcall | operator& (SimdDouble a, SimdDouble b) |
| | Bitwise and for two SIMD double variables. More...
|
| |
| static SimdDouble gmx_simdcall | andNot (SimdDouble a, SimdDouble b) |
| | Bitwise andnot for SIMD double. More...
|
| |
| static SimdDouble gmx_simdcall | operator| (SimdDouble a, SimdDouble b) |
| | Bitwise or for SIMD double. More...
|
| |
| static SimdDouble gmx_simdcall | operator^ (SimdDouble a, SimdDouble b) |
| | Bitwise xor for SIMD double. More...
|
| |
|
| static SimdDouble gmx_simdcall | operator+ (SimdDouble a, SimdDouble b) |
| | Add two double SIMD variables. More...
|
| |
| static SimdDouble gmx_simdcall | operator- (SimdDouble a, SimdDouble b) |
| | Subtract two double SIMD variables. More...
|
| |
| static SimdDouble gmx_simdcall | operator- (SimdDouble a) |
| | SIMD double precision negate. More...
|
| |
| static SimdDouble gmx_simdcall | operator* (SimdDouble a, SimdDouble b) |
| | Multiply two double SIMD variables. More...
|
| |
| static SimdDouble gmx_simdcall | fma (SimdDouble a, SimdDouble b, SimdDouble c) |
| | SIMD double Fused-multiply-add. Result is a*b+c. More...
|
| |
| static SimdDouble gmx_simdcall | fms (SimdDouble a, SimdDouble b, SimdDouble c) |
| | SIMD double Fused-multiply-subtract. Result is a*b-c. More...
|
| |
| static SimdDouble gmx_simdcall | fnma (SimdDouble a, SimdDouble b, SimdDouble c) |
| | SIMD double Fused-negated-multiply-add. Result is -a*b+c. More...
|
| |
| static SimdDouble gmx_simdcall | fnms (SimdDouble a, SimdDouble b, SimdDouble c) |
| | SIMD double Fused-negated-multiply-subtract. Result is -a*b-c. More...
|
| |
| static SimdDouble gmx_simdcall | rsqrt (SimdDouble x) |
| | double SIMD 1.0/sqrt(x) lookup. More...
|
| |
| static SimdDouble gmx_simdcall | rcp (SimdDouble x) |
| | SIMD double 1.0/x lookup. More...
|
| |
| static SimdDouble gmx_simdcall | maskAdd (SimdDouble a, SimdDouble b, SimdDBool m) |
| | Add two double SIMD variables, masked version. More...
|
| |
| static SimdDouble gmx_simdcall | maskzMul (SimdDouble a, SimdDouble b, SimdDBool m) |
| | Multiply two double SIMD variables, masked version. More...
|
| |
| static SimdDouble gmx_simdcall | maskzFma (SimdDouble a, SimdDouble b, SimdDouble c, SimdDBool m) |
| | SIMD double fused multiply-add, masked version. More...
|
| |
| static SimdDouble gmx_simdcall | maskzRsqrt (SimdDouble x, SimdDBool m) |
| | SIMD double 1.0/sqrt(x) lookup, masked version. More...
|
| |
| static SimdDouble gmx_simdcall | maskzRcp (SimdDouble x, SimdDBool m) |
| | SIMD double 1.0/x lookup, masked version. More...
|
| |
| static SimdDouble gmx_simdcall | abs (SimdDouble a) |
| | SIMD double floating-point fabs(). More...
|
| |
| static SimdDouble gmx_simdcall | max (SimdDouble a, SimdDouble b) |
| | Set each SIMD double element to the largest from two variables. More...
|
| |
| static SimdDouble gmx_simdcall | min (SimdDouble a, SimdDouble b) |
| | Set each SIMD double element to the smallest from two variables. More...
|
| |
| static SimdDouble gmx_simdcall | round (SimdDouble a) |
| | SIMD double round to nearest integer value (in floating-point format). More...
|
| |
| static SimdDouble gmx_simdcall | trunc (SimdDouble a) |
| | Truncate SIMD double, i.e. round towards zero - common hardware instruction. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static SimdDouble gmx_simdcall | frexp (SimdDouble value, SimdDInt32 *exponent) |
| | Extract (integer) exponent and fraction from double precision SIMD. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static SimdDouble gmx_simdcall | ldexp (SimdDouble value, SimdDInt32 exponent) |
| | Multiply a SIMD double value by the number 2 raised to an exp power. More...
|
| |
| static double gmx_simdcall | reduce (SimdDouble a) |
| | Return sum of all elements in SIMD double variable. More...
|
| |
|
| static SimdDBool gmx_simdcall | operator== (SimdDouble a, SimdDouble b) |
| | SIMD a==b for double SIMD. More...
|
| |
| static SimdDBool gmx_simdcall | operator!= (SimdDouble a, SimdDouble b) |
| | SIMD a!=b for double SIMD. More...
|
| |
| static SimdDBool gmx_simdcall | operator< (SimdDouble a, SimdDouble b) |
| | SIMD a<b for double SIMD. More...
|
| |
| static SimdDBool gmx_simdcall | operator<= (SimdDouble a, SimdDouble b) |
| | SIMD a<=b for double SIMD. More...
|
| |
| static SimdDBool gmx_simdcall | testBits (SimdDouble a) |
| | Return true if any bits are set in the single precision SIMD. More...
|
| |
| static SimdDBool gmx_simdcall | operator&& (SimdDBool a, SimdDBool b) |
| | Logical and on double precision SIMD booleans. More...
|
| |
| static SimdDBool gmx_simdcall | operator|| (SimdDBool a, SimdDBool b) |
| | Logical or on double precision SIMD booleans. More...
|
| |
| static bool gmx_simdcall | anyTrue (SimdDBool a) |
| | Returns non-zero if any of the boolean in SIMD a is True, otherwise 0. More...
|
| |
| static SimdDouble gmx_simdcall | selectByMask (SimdDouble a, SimdDBool mask) |
| | Select from double precision SIMD variable where boolean is true. More...
|
| |
| static SimdDouble gmx_simdcall | selectByNotMask (SimdDouble a, SimdDBool mask) |
| | Select from double precision SIMD variable where boolean is false. More...
|
| |
| static SimdDouble gmx_simdcall | blend (SimdDouble a, SimdDouble b, SimdDBool sel) |
| | Vector-blend SIMD double selection. More...
|
| |
|
| static SimdDInt32 gmx_simdcall | operator& (SimdDInt32 a, SimdDInt32 b) |
| | Integer SIMD bitwise and. More...
|
| |
| static SimdDInt32 gmx_simdcall | andNot (SimdDInt32 a, SimdDInt32 b) |
| | Integer SIMD bitwise not/complement. More...
|
| |
| static SimdDInt32 gmx_simdcall | operator| (SimdDInt32 a, SimdDInt32 b) |
| | Integer SIMD bitwise or. More...
|
| |
| static SimdDInt32 gmx_simdcall | operator^ (SimdDInt32 a, SimdDInt32 b) |
| | Integer SIMD bitwise xor. More...
|
| |
|
| static SimdDInt32 gmx_simdcall | operator+ (SimdDInt32 a, SimdDInt32 b) |
| | Add SIMD integers. More...
|
| |
| static SimdDInt32 gmx_simdcall | operator- (SimdDInt32 a, SimdDInt32 b) |
| | Subtract SIMD integers. More...
|
| |
| static SimdDInt32 gmx_simdcall | operator* (SimdDInt32 a, SimdDInt32 b) |
| | Multiply SIMD integers. More...
|
| |
|
| static SimdDIBool gmx_simdcall | operator== (SimdDInt32 a, SimdDInt32 b) |
| | Equality comparison of two integers corresponding to double values. More...
|
| |
| static SimdDIBool gmx_simdcall | operator< (SimdDInt32 a, SimdDInt32 b) |
| | Less-than comparison of two SIMD integers corresponding to double values. More...
|
| |
| static SimdDIBool gmx_simdcall | testBits (SimdDInt32 a) |
| | Check if any bit is set in each element. More...
|
| |
| static SimdDIBool gmx_simdcall | operator&& (SimdDIBool a, SimdDIBool b) |
| | Logical AND on SimdDIBool. More...
|
| |
| static SimdDIBool gmx_simdcall | operator|| (SimdDIBool a, SimdDIBool b) |
| | Logical OR on SimdDIBool. More...
|
| |
| static bool gmx_simdcall | anyTrue (SimdDIBool a) |
| | Returns true if any of the boolean in x is True, otherwise 0. More...
|
| |
| static SimdDInt32 gmx_simdcall | selectByMask (SimdDInt32 a, SimdDIBool mask) |
| | Select from gmx::SimdDInt32 variable where boolean is true. More...
|
| |
| static SimdDInt32 gmx_simdcall | selectByNotMask (SimdDInt32 a, SimdDIBool mask) |
| | Select from gmx::SimdDInt32 variable where boolean is false. More...
|
| |
| static SimdDInt32 gmx_simdcall | blend (SimdDInt32 a, SimdDInt32 b, SimdDIBool sel) |
| | Vector-blend SIMD integer selection. More...
|
| |
|
| static SimdDInt32 gmx_simdcall | cvtR2I (SimdDouble a) |
| | Round double precision floating point to integer. More...
|
| |
| static SimdDInt32 gmx_simdcall | cvttR2I (SimdDouble a) |
| | Truncate double precision floating point to integer. More...
|
| |
| static SimdDouble gmx_simdcall | cvtI2R (SimdDInt32 a) |
| | Convert integer to double precision floating point. More...
|
| |
| static SimdDIBool gmx_simdcall | cvtB2IB (SimdDBool a) |
| | Convert from double precision boolean to corresponding integer boolean. More...
|
| |
| static SimdDBool gmx_simdcall | cvtIB2B (SimdDIBool a) |
| | Convert from integer boolean to corresponding double precision boolean. More...
|
| |
| static SimdDouble gmx_simdcall | cvtF2D (SimdFloat gmx_unused f) |
| | Convert SIMD float to double. More...
|
| |
| static SimdFloat gmx_simdcall | cvtD2F (SimdDouble gmx_unused d) |
| | Convert SIMD double to float. More...
|
| |
| static void gmx_simdcall | cvtF2DD (SimdFloat gmx_unused f, SimdDouble gmx_unused *d0, SimdDouble gmx_unused *d1) |
| | Convert SIMD float to double. More...
|
| |
| static SimdFloat gmx_simdcall | cvtDD2F (SimdDouble gmx_unused d0, SimdDouble gmx_unused d1) |
| | Convert SIMD double to float. More...
|
| |
| static SimdFInt32 gmx_simdcall | cvtR2I (SimdFloat a) |
| | Round single precision floating point to integer. More...
|
| |
| static SimdFInt32 gmx_simdcall | cvttR2I (SimdFloat a) |
| | Truncate single precision floating point to integer. More...
|
| |
| static SimdFloat gmx_simdcall | cvtI2R (SimdFInt32 a) |
| | Convert integer to single precision floating point. More...
|
| |
| static SimdFIBool gmx_simdcall | cvtB2IB (SimdFBool a) |
| | Convert from single precision boolean to corresponding integer boolean. More...
|
| |
| static SimdFBool gmx_simdcall | cvtIB2B (SimdFIBool a) |
| | Convert from integer boolean to corresponding single precision boolean. More...
|
| |
|
| static SimdFloat gmx_simdcall | simdLoad (const float *m, SimdFloatTag={}) |
| | Load GMX_SIMD_FLOAT_WIDTH float numbers from aligned memory. More...
|
| |
| static void gmx_simdcall | store (float *m, SimdFloat a) |
| | Store the contents of SIMD float variable to aligned memory m. More...
|
| |
| static SimdFloat gmx_simdcall | simdLoadU (const float *m, SimdFloatTag={}) |
| | Load SIMD float from unaligned memory. More...
|
| |
| static void gmx_simdcall | storeU (float *m, SimdFloat a) |
| | Store SIMD float to unaligned memory. More...
|
| |
| static SimdFloat gmx_simdcall | setZeroF () |
| | Set all SIMD float variable elements to 0.0. More...
|
| |
|
| static SimdFInt32 gmx_simdcall | simdLoad (const std::int32_t *m, SimdFInt32Tag) |
| | Load aligned SIMD integer data, width corresponds to gmx::SimdFloat. More...
|
| |
| static void gmx_simdcall | store (std::int32_t *m, SimdFInt32 a) |
| | Store aligned SIMD integer data, width corresponds to gmx::SimdFloat. More...
|
| |
| static SimdFInt32 gmx_simdcall | simdLoadU (const std::int32_t *m, SimdFInt32Tag) |
| | Load unaligned integer SIMD data, width corresponds to gmx::SimdFloat. More...
|
| |
| static void gmx_simdcall | storeU (std::int32_t *m, SimdFInt32 a) |
| | Store unaligned SIMD integer data, width corresponds to gmx::SimdFloat. More...
|
| |
| static SimdFInt32 gmx_simdcall | setZeroFI () |
| | Set all SIMD (float) integer variable elements to 0. More...
|
| |
| template<int index> |
| static std::int32_t gmx_simdcall | extract (SimdFInt32 a) |
| | Extract element with index i from gmx::SimdFInt32. More...
|
| |
|
| static SimdFloat gmx_simdcall | operator& (SimdFloat a, SimdFloat b) |
| | Bitwise and for two SIMD float variables. More...
|
| |
| static SimdFloat gmx_simdcall | andNot (SimdFloat a, SimdFloat b) |
| | Bitwise andnot for SIMD float. More...
|
| |
| static SimdFloat gmx_simdcall | operator| (SimdFloat a, SimdFloat b) |
| | Bitwise or for SIMD float. More...
|
| |
| static SimdFloat gmx_simdcall | operator^ (SimdFloat a, SimdFloat b) |
| | Bitwise xor for SIMD float. More...
|
| |
|
| static SimdFloat gmx_simdcall | operator+ (SimdFloat a, SimdFloat b) |
| | Add two float SIMD variables. More...
|
| |
| static SimdFloat gmx_simdcall | operator- (SimdFloat a, SimdFloat b) |
| | Subtract two float SIMD variables. More...
|
| |
| static SimdFloat gmx_simdcall | operator- (SimdFloat a) |
| | SIMD single precision negate. More...
|
| |
| static SimdFloat gmx_simdcall | operator* (SimdFloat a, SimdFloat b) |
| | Multiply two float SIMD variables. More...
|
| |
| static SimdFloat gmx_simdcall | fma (SimdFloat a, SimdFloat b, SimdFloat c) |
| | SIMD float Fused-multiply-add. Result is a*b+c. More...
|
| |
| static SimdFloat gmx_simdcall | fms (SimdFloat a, SimdFloat b, SimdFloat c) |
| | SIMD float Fused-multiply-subtract. Result is a*b-c. More...
|
| |
| static SimdFloat gmx_simdcall | fnma (SimdFloat a, SimdFloat b, SimdFloat c) |
| | SIMD float Fused-negated-multiply-add. Result is -a*b+c. More...
|
| |
| static SimdFloat gmx_simdcall | fnms (SimdFloat a, SimdFloat b, SimdFloat c) |
| | SIMD float Fused-negated-multiply-subtract. Result is -a*b-c. More...
|
| |
| static SimdFloat gmx_simdcall | rsqrt (SimdFloat x) |
| | SIMD float 1.0/sqrt(x) lookup. More...
|
| |
| static SimdFloat gmx_simdcall | rcp (SimdFloat x) |
| | SIMD float 1.0/x lookup. More...
|
| |
| static SimdFloat gmx_simdcall | maskAdd (SimdFloat a, SimdFloat b, SimdFBool m) |
| | Add two float SIMD variables, masked version. More...
|
| |
| static SimdFloat gmx_simdcall | maskzMul (SimdFloat a, SimdFloat b, SimdFBool m) |
| | Multiply two float SIMD variables, masked version. More...
|
| |
| static SimdFloat gmx_simdcall | maskzFma (SimdFloat a, SimdFloat b, SimdFloat c, SimdFBool m) |
| | SIMD float fused multiply-add, masked version. More...
|
| |
| static SimdFloat gmx_simdcall | maskzRsqrt (SimdFloat x, SimdFBool m) |
| | SIMD float 1.0/sqrt(x) lookup, masked version. More...
|
| |
| static SimdFloat gmx_simdcall | maskzRcp (SimdFloat x, SimdFBool m) |
| | SIMD float 1.0/x lookup, masked version. More...
|
| |
| static SimdFloat gmx_simdcall | abs (SimdFloat a) |
| | SIMD float Floating-point abs(). More...
|
| |
| static SimdFloat gmx_simdcall | max (SimdFloat a, SimdFloat b) |
| | Set each SIMD float element to the largest from two variables. More...
|
| |
| static SimdFloat gmx_simdcall | min (SimdFloat a, SimdFloat b) |
| | Set each SIMD float element to the smallest from two variables. More...
|
| |
| static SimdFloat gmx_simdcall | round (SimdFloat a) |
| | SIMD float round to nearest integer value (in floating-point format). More...
|
| |
| static SimdFloat gmx_simdcall | trunc (SimdFloat a) |
| | Truncate SIMD float, i.e. round towards zero - common hardware instruction. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static SimdFloat gmx_simdcall | frexp (SimdFloat value, SimdFInt32 *exponent) |
| | Extract (integer) exponent and fraction from single precision SIMD. More...
|
| |
| template<MathOptimization opt = MathOptimization::Safe> |
| static SimdFloat gmx_simdcall | ldexp (SimdFloat value, SimdFInt32 exponent) |
| | Multiply a SIMD float value by the number 2 raised to an exp power. More...
|
| |
| static float gmx_simdcall | reduce (SimdFloat a) |
| | Return sum of all elements in SIMD float variable. More...
|
| |
|
| static SimdFBool gmx_simdcall | operator== (SimdFloat a, SimdFloat b) |
| | SIMD a==b for single SIMD. More...
|
| |
| static SimdFBool gmx_simdcall | operator!= (SimdFloat a, SimdFloat b) |
| | SIMD a!=b for single SIMD. More...
|
| |
| static SimdFBool gmx_simdcall | operator< (SimdFloat a, SimdFloat b) |
| | SIMD a<b for single SIMD. More...
|
| |
| static SimdFBool gmx_simdcall | operator<= (SimdFloat a, SimdFloat b) |
| | SIMD a<=b for single SIMD. More...
|
| |
| static SimdFBool gmx_simdcall | testBits (SimdFloat a) |
| | Return true if any bits are set in the single precision SIMD. More...
|
| |
| static SimdFBool gmx_simdcall | operator&& (SimdFBool a, SimdFBool b) |
| | Logical and on single precision SIMD booleans. More...
|
| |
| static SimdFBool gmx_simdcall | operator|| (SimdFBool a, SimdFBool b) |
| | Logical or on single precision SIMD booleans. More...
|
| |
| static bool gmx_simdcall | anyTrue (SimdFBool a) |
| | Returns non-zero if any of the boolean in SIMD a is True, otherwise 0. More...
|
| |
| static SimdFloat gmx_simdcall | selectByMask (SimdFloat a, SimdFBool mask) |
| | Select from single precision SIMD variable where boolean is true. More...
|
| |
| static SimdFloat gmx_simdcall | selectByNotMask (SimdFloat a, SimdFBool mask) |
| | Select from single precision SIMD variable where boolean is false. More...
|
| |
| static SimdFloat gmx_simdcall | blend (SimdFloat a, SimdFloat b, SimdFBool sel) |
| | Vector-blend SIMD float selection. More...
|
| |
|
| static SimdFInt32 gmx_simdcall | operator& (SimdFInt32 a, SimdFInt32 b) |
| | Integer SIMD bitwise and. More...
|
| |
| static SimdFInt32 gmx_simdcall | andNot (SimdFInt32 a, SimdFInt32 b) |
| | Integer SIMD bitwise not/complement. More...
|
| |
| static SimdFInt32 gmx_simdcall | operator| (SimdFInt32 a, SimdFInt32 b) |
| | Integer SIMD bitwise or. More...
|
| |
| static SimdFInt32 gmx_simdcall | operator^ (SimdFInt32 a, SimdFInt32 b) |
| | Integer SIMD bitwise xor. More...
|
| |
|
| static SimdFInt32 gmx_simdcall | operator+ (SimdFInt32 a, SimdFInt32 b) |
| | Add SIMD integers. More...
|
| |
| static SimdFInt32 gmx_simdcall | operator- (SimdFInt32 a, SimdFInt32 b) |
| | Subtract SIMD integers. More...
|
| |
| static SimdFInt32 gmx_simdcall | operator* (SimdFInt32 a, SimdFInt32 b) |
| | Multiply SIMD integers. More...
|
| |
|
| static SimdFIBool gmx_simdcall | operator== (SimdFInt32 a, SimdFInt32 b) |
| | Equality comparison of two integers corresponding to float values. More...
|
| |
| static SimdFIBool gmx_simdcall | operator< (SimdFInt32 a, SimdFInt32 b) |
| | Less-than comparison of two SIMD integers corresponding to float values. More...
|
| |
| static SimdFIBool gmx_simdcall | testBits (SimdFInt32 a) |
| | Check if any bit is set in each element. More...
|
| |
| static SimdFIBool gmx_simdcall | operator&& (SimdFIBool a, SimdFIBool b) |
| | Logical AND on SimdFIBool. More...
|
| |
| static SimdFIBool gmx_simdcall | operator|| (SimdFIBool a, SimdFIBool b) |
| | Logical OR on SimdFIBool. More...
|
| |
| static bool gmx_simdcall | anyTrue (SimdFIBool a) |
| | Returns true if any of the boolean in x is True, otherwise 0. More...
|
| |
| static SimdFInt32 gmx_simdcall | selectByMask (SimdFInt32 a, SimdFIBool mask) |
| | Select from gmx::SimdFInt32 variable where boolean is true. More...
|
| |
| static SimdFInt32 gmx_simdcall | selectByNotMask (SimdFInt32 a, SimdFIBool mask) |
| | Select from gmx::SimdFInt32 variable where boolean is false. More...
|
| |
| static SimdFInt32 gmx_simdcall | blend (SimdFInt32 a, SimdFInt32 b, SimdFIBool sel) |
| | Vector-blend SIMD integer selection. More...
|
| |
|
See the single-precision versions for documentation. Since double precision is typically half the width of single, this double version is likely only useful with 512-bit and larger implementations.
|
| static SimdDouble gmx_simdcall | loadDualHsimd (const double *m0, const double *m1) |
| | Load low & high parts of SIMD double from different locations. More...
|
| |
| static SimdDouble gmx_simdcall | loadDuplicateHsimd (const double *m) |
| | Load half-SIMD-width double data, spread to both halves. More...
|
| |
| static SimdDouble gmx_simdcall | loadU1DualHsimd (const double *m) |
| | Load two doubles, spread 1st in low half, 2nd in high half. More...
|
| |
| static void gmx_simdcall | storeDualHsimd (double *m0, double *m1, SimdDouble a) |
| | Store low & high parts of SIMD double to different locations. More...
|
| |
| static void gmx_simdcall | incrDualHsimd (double *m0, double *m1, SimdDouble a) |
| | Add each half of SIMD variable to separate memory adresses. More...
|
| |
| static void gmx_simdcall | decr3Hsimd (double *m, SimdDouble a0, SimdDouble a1, SimdDouble a2) |
| | Add the two halves of three SIMD doubles, subtract the sum from three half-SIMD-width consecutive doubles in memory. More...
|
| |
| template<int align> |
| static void gmx_simdcall | gatherLoadTransposeHsimd (const double *base0, const double *base1, const std::int32_t offset[], SimdDouble *v0, SimdDouble *v1) |
| | Load 2 consecutive doubles from each of GMX_SIMD_DOUBLE_WIDTH/2 offsets, transpose into SIMD double (low half from base0, high from base1). More...
|
| |
| static double gmx_simdcall | reduceIncr4ReturnSumHsimd (double *m, SimdDouble v0, SimdDouble v1) |
| | Reduce the 4 half-SIMD-with doubles in 2 SIMD variables (sum halves), increment four consecutive doubles in memory, return sum. More...
|
| |
| static SimdDouble gmx_simdcall | loadUNDuplicate4 (const double *m) |
| | Load N doubles and duplicate them 4 times each. More...
|
| |
| static SimdDouble gmx_simdcall | load4DuplicateN (const double *m) |
| | Load 4 doubles and duplicate them N times each. More...
|
| |
| static SimdDouble gmx_simdcall | loadU4NOffset (const double *m, int offset) |
| | Load doubles in blocks of 4 at fixed offsets. More...
|
| |
|
These functions are optional. The are only useful for SIMD implementation where the width is 8 or larger, and where it would be inefficient to process 4*8, 8*8, or more, interactions in parallel.
Currently, only Intel provides very wide SIMD implementations, but these also come with excellent support for loading, storing, accessing and shuffling parts of the register in so-called 'lanes' of 4 bytes each. We can use this to load separate parts into the low/high halves of the register in the inner loop of the nonbonded kernel, which e.g. makes it possible to process 4*4 nonbonded interactions as a pattern of 2*8. We can also use implementations with width 16 or greater.
To make this more generic, when GMX_SIMD_HAVE_HSIMD_UTIL_REAL is 1, the SIMD implementation provides seven special routines that:
- Load the low/high parts of a SIMD variable from different pointers
- Load half the SIMD width from one pointer, and duplicate in low/high parts
- Load two reals, put 1st one in all low elements, and 2nd in all high ones.
- Store the low/high parts of a SIMD variable to different pointers
- Subtract both SIMD halves from a single half-SIMD-width memory location.
- Load aligned pairs (LJ parameters) from two base pointers, with a common offset list, and put these in the low/high SIMD halves.
- Reduce each half of two SIMD registers (i.e., 4 parts in total), increment four adjacent memory positions, and return the total sum.
Remember: this is ONLY used when the native SIMD width is large. You will just waste time if you implement it for normal 16-byte SIMD architectures.
This is part of the new C++ SIMD interface, so these functions are only available when using C++. Since some Gromacs code reliying on the SIMD module is still C (not C++), we have kept the C-style naming for now - this will change once we are entirely C++.
|
| static SimdFloat gmx_simdcall | loadDualHsimd (const float *m0, const float *m1) |
| | Load low & high parts of SIMD float from different locations. More...
|
| |
| static SimdFloat gmx_simdcall | loadDuplicateHsimd (const float *m) |
| | Load half-SIMD-width float data, spread to both halves. More...
|
| |
| static SimdFloat gmx_simdcall | loadU1DualHsimd (const float *m) |
| | Load two floats, spread 1st in low half, 2nd in high half. More...
|
| |
| static void gmx_simdcall | storeDualHsimd (float *m0, float *m1, SimdFloat a) |
| | Store low & high parts of SIMD float to different locations. More...
|
| |
| static void gmx_simdcall | incrDualHsimd (float *m0, float *m1, SimdFloat a) |
| | Add each half of SIMD variable to separate memory adresses. More...
|
| |
| static void gmx_simdcall | decr3Hsimd (float *m, SimdFloat a0, SimdFloat a1, SimdFloat a2) |
| | Add the two halves of three SIMD floats, subtract the sum from three half-SIMD-width consecutive floats in memory. More...
|
| |
| template<int align> |
| static void gmx_simdcall | gatherLoadTransposeHsimd (const float *base0, const float *base1, const std::int32_t offset[], SimdFloat *v0, SimdFloat *v1) |
| | Load 2 consecutive floats from each of GMX_SIMD_FLOAT_WIDTH/2 offsets, transpose into SIMD float (low half from base0, high from base1). More...
|
| |
| static float gmx_simdcall | reduceIncr4ReturnSumHsimd (float *m, SimdFloat v0, SimdFloat v1) |
| | Reduce the 4 half-SIMD-with floats in 2 SIMD variables (sum halves), increment four consecutive floats in memory, return sum. More...
|
| |
| static SimdFloat gmx_simdcall | loadUNDuplicate4 (const float *m) |
| | Load N floats and duplicate them 4 times each. More...
|
| |
| static SimdFloat gmx_simdcall | load4DuplicateN (const float *m) |
| | Load 4 floats and duplicate them N times each. More...
|
| |
| static SimdFloat gmx_simdcall | loadU4NOffset (const float *m, int offset) |
| | Load floats in blocks of 4 at fixed offsets. More...
|
| |
|
Overloads for converting a value of a given type to a string.
- Exceptions
-
| std::bad_alloc | if out of memory. |
|
|
static std::string | toString (bool t) |
| |
|
static std::string | toString (int t) |
| |
|
static std::string | toString (unsigned int t) |
| |
|
static std::string | toString (int64_t t) |
| |
|
static std::string | toString (uint64_t t) |
| |
|
static std::string | toString (float t) |
| |
|
static std::string | toString (double t) |
| |
|
static std::string | toString (unsigned char t) |
| |
|
static std::string | toString (std::string t) |
| |
|
|
void | dumpIntArrayRef (TextWriter *writer, const char *description, ArrayRef< const int > values, bool showIndices) |
| | Dump the formatted values to writer along with a description and/or indices.
|
| |
|
void | dumpFloatArrayRef (TextWriter *writer, const char *description, ArrayRef< const float > values, bool showIndices) |
| |
|
void | dumpDoubleArrayRef (TextWriter *writer, const char *description, ArrayRef< const double > values, bool showIndices) |
| |
|
void | dumpRealArrayRef (TextWriter *writer, const char *description, ArrayRef< const real > values, bool showIndices) |
| |
|
void | dumpRvecArrayRef (TextWriter *writer, const char *description, ArrayRef< const RVec > values) |
| |
|
| template<typename T > |
| std::remove_const_t< T > | norm (T *v) |
| | Forward operations on C Array style vectors to C implementations. More...
|
| |
|
template<typename T > |
| std::remove_const_t< T > | norm2 (T *v) |
| |