Gromacs
2022
|
#include "gmxpre.h"
#include "lincs_gpu.h"
#include <assert.h>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include "gromacs/gpu_utils/devicebuffer.h"
#include "gromacs/gpu_utils/gputraits.h"
#include "gromacs/math/functions.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/lincs_gpu_internal.h"
#include "gromacs/pbcutil/pbc.h"
#include "gromacs/topology/ifunc.h"
#include "gromacs/topology/topology.h"
Implementations of LINCS GPU class.
This file contains back-end agnostic implementation of LINCS GPU class.
Classes | |
struct | gmx::AtomsAdjacencyListElement |
Helper type for discovering coupled constraints. More... | |
Functions | |
static std::vector < std::vector < AtomsAdjacencyListElement > > | gmx::constructAtomsAdjacencyList (const int numAtoms, ArrayRef< const int > iatoms) |
Constructs and returns an atom constraint adjacency list. | |
int | gmx::countCoupled (int a, ArrayRef< int > numCoupledConstraints, ArrayRef< const std::vector< AtomsAdjacencyListElement >> atomsAdjacencyList) |
Helper function to go through constraints recursively. More... | |
void | gmx::addWithCoupled (ArrayRef< const int > iatoms, const int stride, ArrayRef< const std::vector< AtomsAdjacencyListElement >> atomsAdjacencyList, ArrayRef< int > splitMap, const int c, int *currentMapIndex) |
Add constraint to splitMap with all constraints coupled to it. More... | |
static std::vector< int > | gmx::countNumCoupledConstraints (ArrayRef< const int > iatoms, ArrayRef< const std::vector< AtomsAdjacencyListElement >> atomsAdjacencyList) |
Computes and returns how many constraints are coupled to each constraint. More... | |