#include "vesin.h"#include <cassert>#include <cstdlib>#include <cstring>#include <algorithm>#include <numeric>#include <tuple>#include <vector>#include <array>#include <string>#include <cmath>#include <stdexcept>#include <iostream>Classes | |
| class | PLMD::metatomic::vesin::BoundingBox |
| struct | PLMD::metatomic::vesin::cpu::CellList::Cell |
| class | PLMD::metatomic::vesin::cpu::CellList |
| The cell list is used to sort atoms inside bins/cells. More... | |
| struct | PLMD::metatomic::vesin::cuda::CellListBuffers |
| Buffers for cell list-based neighbor search. More... | |
| struct | PLMD::metatomic::vesin::CellShift |
| A cell shift represents the displacement along cell axis between the actual position of an atom and a periodic image of this atom. More... | |
| struct | PLMD::metatomic::vesin::cuda::CudaNeighborListExtras |
| class | PLMD::metatomic::vesin::cpu::GrowableNeighborList |
Wrapper around VesinNeighborList that behaves like a std::vector, automatically growing memory allocations. More... | |
| struct | PLMD::metatomic::vesin::Matrix |
| struct | PLMD::metatomic::vesin::cpu::CellList::Point |
| the cells themselves are a list of points & corresponding shift to place the point inside the cell More... | |
| struct | PLMD::metatomic::vesin::Vector |
Namespaces | |
| namespace | PLMD |
| namespace | PLMD::metatomic |
| namespace | PLMD::metatomic::vesin |
| namespace | PLMD::metatomic::vesin::cpu |
| namespace | PLMD::metatomic::vesin::cuda |
Macros | |
| #define | MAX_NUMBER_OF_CELLS 1e5 |
| Maximal number of cells, we need to use this to prevent having too many cells with a small bounding box and a large cutoff. | |
| #define | VESIN_CPU_CELL_LIST_HPP |
| #define | VESIN_CUDA_AT_LEAST_PAIRS_PER_POINT 128 |
| Default value for the number of pairs per points in the CUDA implementation. | |
| #define | VESIN_CUDA_HPP |
| #define | VESIN_MATH_HPP |
| #define | VESIN_TYPES_HPP |
Typedefs | |
| template<typename scalar_t, size_t N> | |
| using | array_ptr = scalar_t (*)[N] |
Functions | |
| template<typename scalar_t, size_t N> | |
| static array_ptr< scalar_t, N > | alloc (array_ptr< scalar_t, N > ptr, size_t size, size_t new_size) |
| template<typename scalar_t> | |
| static scalar_t * | alloc (scalar_t *ptr, size_t size, size_t new_size) |
| static std::tuple< int32_t, int32_t > | divmod (int32_t a, size_t b) |
| Function to compute both quotient and remainder of the division of a by b. | |
| static std::tuple< std::array< int32_t, 3 >, std::array< int32_t, 3 > > | divmod (std::array< int32_t, 3 > a, std::array< size_t, 3 > b) |
Apply the divmod function to three components at the time. | |
| void | PLMD::metatomic::vesin::cpu::free_neighbors (VesinNeighborList &neighbors) |
| void | PLMD::metatomic::vesin::cuda::free_neighbors (VesinNeighborList &neighbors) |
| Frees GPU memory associated with a VesinNeighborList. | |
| CudaNeighborListExtras * | PLMD::metatomic::vesin::cuda::get_cuda_extras (VesinNeighborList *neighbors) |
Get the CudaNeighborListExtras stored inside VesinNeighborList's opaque pointer. | |
| void | PLMD::metatomic::vesin::cpu::neighbors (const Vector *points, size_t n_points, BoundingBox box, VesinOptions options, VesinNeighborList &neighbors) |
| void | PLMD::metatomic::vesin::cuda::neighbors (const double(*points)[3], size_t n_points, const double box[3][3], const bool periodic[3], VesinOptions options, VesinNeighborList &neighbors) |
| Computes the neighbor list on the GPU. | |
| Vector | PLMD::metatomic::vesin::operator* (double scalar, Vector vector) |
| Vector | PLMD::metatomic::vesin::operator* (Matrix matrix, Vector vector) |
| Vector | PLMD::metatomic::vesin::operator* (Vector vector, double scalar) |
| Vector | PLMD::metatomic::vesin::operator* (Vector vector, Matrix matrix) |
| CellShift | PLMD::metatomic::vesin::operator+ (CellShift a, CellShift b) |
| Vector | PLMD::metatomic::vesin::operator+ (Vector u, Vector v) |
| CellShift | PLMD::metatomic::vesin::operator- (CellShift a, CellShift b) |
| Vector | PLMD::metatomic::vesin::operator- (Vector u, Vector v) |
| void | vesin_free (VesinNeighborList *neighbors) |
| int | vesin_neighbors (const double(*points)[3], size_t n_points, const double box[3][3], const bool periodic[3], VesinDevice device, VesinOptions options, VesinNeighborList *neighbors, const char **error_message) |
Variables | |
| thread_local std::string | LAST_ERROR |
| #define MAX_NUMBER_OF_CELLS 1e5 |
Maximal number of cells, we need to use this to prevent having too many cells with a small bounding box and a large cutoff.
| #define VESIN_CPU_CELL_LIST_HPP |
| #define VESIN_CUDA_AT_LEAST_PAIRS_PER_POINT 128 |
Default value for the number of pairs per points in the CUDA implementation.
Unless VESIN_CUDA_MAX_PAIRS_PER_POINT is set in the environement, the maximal number of pairs is n_points * / max(VESIN_CUDA_AT_LEAST_PAIRS_PER_POINT, cutoff^3). This can be overriden at compile time.
| #define VESIN_CUDA_HPP |
| #define VESIN_MATH_HPP |
| #define VESIN_TYPES_HPP |
| using array_ptr = scalar_t (*)[N] |
|
static |
|
static |
|
static |
Function to compute both quotient and remainder of the division of a by b.
This function follows Python convention, making sure the remainder have the same sign as b.
|
static |
Apply the divmod function to three components at the time.
| void vesin_free | ( | VesinNeighborList * | neighbors | ) |
| int vesin_neighbors | ( | const double(*) | points[3], |
| size_t | n_points, | ||
| const double | box[3][3], | ||
| const bool | periodic[3], | ||
| VesinDevice | device, | ||
| VesinOptions | options, | ||
| VesinNeighborList * | neighbors, | ||
| const char ** | error_message ) |
| thread_local std::string LAST_ERROR |
Hosted by GitHub
|
1.13.2
|