Collective Variables Module - Developer Documentation
Loading...
Searching...
No Matches
colvarcomp_distance_kernel.h
1#ifndef COLVARCOMP_DISTANCE_KERNEL_H
2#define COLVARCOMP_DISTANCE_KERNEL_H
3
4#include "colvarmodule.h"
5#include "colvar_gpu_support.h"
6
7#if defined(COLVARS_CUDA) || defined(COVLARS_HIP)
8
9namespace colvars_gpu {
10
11int calc_value_rmsd(
12 const cvm::real* ref_pos,
13 const cvm::real* ag_pos,
14 cvm::real* d_permutation_msds,
15 cvm::real* h_permutation_msds,
16 unsigned int num_atoms,
17 unsigned int num_permutations,
18 unsigned int num_ref_pos,
19 unsigned int* tbcounts,
20 std::vector<cudaGraphNode_t>& nodes,
21 cudaGraph_t& graph,
22 const std::vector<cudaGraphNode_t>& dependencies);
23
24int calc_gradients_rmsd(
25 const cvm::real* h_rmsd,
26 const size_t* h_best_perm_index,
27 const cvm::real* ref_pos,
28 const cvm::real* ag_pos,
29 cvm::real* grad,
30 unsigned int num_atoms,
31 unsigned int num_ref_pos,
32 cudaGraphNode_t& node,
33 cudaGraph_t& graph,
34 const std::vector<cudaGraphNode_t>& dependencies);
35
36int calc_force_invgrads_rmsd(
37 const bool rotate,
38 const int* atoms_proxy_index,
39 const cvm::real* atoms_total_force_proxy,
40 const cvm::quaternion* q,
41 const cvm::real* grad,
42 cvm::real* d_ft,
43 cvm::real* h_ft,
44 unsigned int num_atoms,
45 unsigned int proxy_stride,
46 unsigned int* tbcount,
47 cudaGraphNode_t& node,
48 cudaGraph_t& graph,
49 const std::vector<cudaGraphNode_t>& dependencies);
50
51class rotation_derivative_gpu;
52
53int calc_Jacobian_derivative_rmsd(
54 const bool center,
55 const bool rotate,
56 const size_t* h_best_perm_index,
57 const cvm::real* ref_pos,
58 const cvm::quaternion* q,
60 const cvm::real* h_rmsd,
61 cvm::real* d_jd,
62 cvm::real* h_jd,
63 unsigned int num_atoms,
64 unsigned int num_ref_pos,
65 unsigned int* tbcount,
66 cudaGraphNode_t& node,
67 cudaGraph_t& graph,
68 const std::vector<cudaGraphNode_t>& dependencies);
69}
70
71#endif // defined(COLVARS_CUDA) || defined(COVLARS_HIP)
72#endif // COLVARCOMP_DISTANCE_KERNEL_H
1-dimensional vector of real numbers with four components and a quaternion algebra
Definition: colvartypes.h:978
double real
Defining an abstract real number allows to switch precision.
Definition: colvarmodule.h:98
Collective variables main module.
Definition: colvar_rotation_derivative.h:622