|
|
| rotation_gpu () |
| | Constructor.
|
| |
|
| ~rotation_gpu () |
| | Destructor.
|
| |
|
bool | initialized () const |
| | Check if the object is initialized.
|
| |
|
int | init () |
| | Initialize member data.
|
| |
| int | add_optimal_rotation_nodes (cvm::real *const d_pos1, cvm::real *const d_pos2, const size_t num_atoms_pos1, const size_t num_atoms_pos2, cudaGraph_t &graph, std::unordered_map< std::string, cudaGraphNode_t > &nodes_map) |
| | Calculate the optimal rotation and store the corresponding eigenvalue and eigenvector in the arguments l0 and q0; if the gradients have been previously requested, calculate them as well. More...
|
| |
|
void | check_error () const |
| | Checking after synchronization ( eigendecomposition iterations and max crossing)
|
| |
|
cvm::real * | get_S () const |
| |
|
cvm::real * | get_eigenvectors () const |
| |
|
cvm::real * | get_eigenvalues () const |
| |
|
cvm::quaternion * | get_q () const |
| |
|
void | to_cpu (cvm::rotation &rot) const |
| |
|
| cvm::real * | d_S |
| | Correlation matrix C (3, 3) More...
|
| |
|
cvm::real * | d_S_eigval |
| | Eigenvalues of S.
|
| |
| cvm::real * | d_S_eigvec |
| | Eigenvectors of S. More...
|
| |
| unsigned int * | tbcount |
| | Used for debugging gradients. More...
|
| |
|
cvm::quaternion * | d_q |
| | The rotation itself (implemented as a quaternion)
|
| |
|
cvm::quaternion * | d_q_old |
| | Crossing monitor.
|
| |
|
int * | discontinuous_rotation |
| |
|
int * | max_iteration_reached |
| | Flag for checking if eigendecomposition is failed.
|
| |
|
bool | b_initialized |
| | Flag for checking if initialized.
|
| |
|
cvm::rmatrix * | h_C |
| | Host data for compatibility with CPU buffers.
|
| |
|
cvm::real * | h_S |
| |
|
cvm::real * | h_S_eigval |
| |
|
cvm::real * | h_S_eigvec |
| |
|
cudaEvent_t | jacobi_done |
| | CUDA event for checking if max iterations are reached.
|
| |
|
|
struct | rotation_derivative_gpu |
| |
◆ add_optimal_rotation_nodes()
| int colvars_gpu::rotation_gpu::add_optimal_rotation_nodes |
( |
cvm::real *const |
d_pos1, |
|
|
cvm::real *const |
d_pos2, |
|
|
const size_t |
num_atoms_pos1, |
|
|
const size_t |
num_atoms_pos2, |
|
|
cudaGraph_t & |
graph, |
|
|
std::unordered_map< std::string, cudaGraphNode_t > & |
nodes_map |
|
) |
| |
Calculate the optimal rotation and store the corresponding eigenvalue and eigenvector in the arguments l0 and q0; if the gradients have been previously requested, calculate them as well.
The method to derive the optimal rotation is defined in: Coutsias EA, Seok C, Dill KA. Using quaternions to calculate RMSD. J Comput Chem. 25(15):1849-57 (2004) DOI: 10.1002/jcc.20110 PubMed: 15376254
◆ d_S
Correlation matrix C (3, 3)
Overlap matrix S (4, 4)
◆ d_S_eigvec
| cvm::real* colvars_gpu::rotation_gpu::d_S_eigvec |
|
private |
Eigenvectors of S.
- Note
- d_S_eigvec is in column-major order. To get j-th element of the i-th eigenvector, use d_S_eigvec[i*4+j]
◆ tbcount
| unsigned int* colvars_gpu::rotation_gpu::tbcount |
|
private |
Used for debugging gradients.
Eigensolver Thread block atomic counter
The documentation for this class was generated from the following files: