|
| rotation_derivative_impl_ (colvar::orientation *orientation_cvc) |
|
| rotation_derivative (const cvm::rotation &rot, const std::vector< cvm::real > &pos1, const std::vector< cvm::real > &pos2, const size_t num_atoms_pos1, const size_t num_atoms_pos2) |
| Constructor of the cvm::rotation::derivative class for SOA. More...
|
|
void | prepare_derivative (rotation_derivative_dldq require_dl_dq) |
| This function must be called before calc_derivative_wrt_group1 and calc_derivative_wrt_group2 in order to prepare the tmp_Q0Q0 and tmp_Q0Q0_L. More...
|
|
template<bool use_dl, bool use_dq, bool use_ds> |
void | calc_derivative_impl (const cvm::rvector(&ds)[4][4], cvm::rvector *_noalias const dl0_out, std::array< cvm::rvector, 4 > *_noalias const dq0_out, std::array< std::array< cvm::rvector, 4 >, 4 > *_noalias const ds_out) const |
| Actual implementation of the derivative calculation. More...
|
|
template<bool use_dl, bool use_dq, bool use_ds> |
void | calc_derivative_wrt_group1 (size_t ia, cvm::rvector *_noalias const dl0_1_out=nullptr, std::array< cvm::rvector, 4 > *_noalias const dq0_1_out=nullptr, std::array< std::array< cvm::rvector, 4 >, 4 > *_noalias const ds_1_out=nullptr) const |
| Calculate the derivatives of S, the leading eigenvalue L and the leading eigenvector Q with respect to m_pos1 More...
|
|
template<bool use_dl, bool use_dq, bool use_ds> |
void | calc_derivative_wrt_group2 (size_t ia, cvm::rvector *_noalias const dl0_2_out=nullptr, std::array< cvm::rvector, 4 > *_noalias const dq0_2_out=nullptr, std::array< std::array< cvm::rvector, 4 >, 4 > *_noalias const ds_2_out=nullptr) const |
| Calculate the derivatives of S, the leading eigenvalue L and the leading eigenvector Q with respect to m_pos2 More...
|
|
template<int i> |
cvm::rmatrix | project_force_to_C_from_dxdqi (cvm::real f_on_q) const |
| Project the force on \(q_i\) (or the gradient of \(\frac{\mathrm{d}x}{\mathrm{d}q_i}\)) to the force on the correlation matrix \(C=\mathbf{r}_1^\intercal\mathbf{r}_2\), where \(\mathbf{r}_1\) and \(\mathbf{r}_2\) are \(N\times 3\) matrices containing the atom positions of atom group 1 and atom group 2 after centering on origin. More...
|
|
template<typename dim4_array_t > |
cvm::rmatrix | project_force_to_C_from_dxdq (const dim4_array_t &sum_dxdq) const |
| Project the force on \(\mathbf{q}\) (or the gradient of \(\frac{\mathrm{d}x}{\mathrm{d}q_i}\)) to the force on the correlation matrix \(C=\mathbf{r}_1^\intercal\mathbf{r}_2\), where \(\mathbf{r}_1\) and \(\mathbf{r}_2\) are \(N\times 3\) matrices containing the atom positions of atom group 1 and atom group 2 after centering on origin. More...
|
|
cvm::rvector | project_force_to_group1 (size_t ia, const cvm::rmatrix &dxdC) const |
| Project the force on the correlation matrix \(C\) to \(\mathbf{r}_1\). More...
|
|
cvm::rvector | project_force_to_group2 (size_t ia, const cvm::rmatrix &dxdC) const |
| Project the force on the correlation matrix \(C\) to \(\mathbf{r}_2\). More...
|
|
|
const cvm::rotation & | m_rot |
| Reference to the rotation.
|
|
std::vector< cvm::real >::const_iterator | pos1x |
| Reference to the atom positions of group 1.
|
|
std::vector< cvm::real >::const_iterator | pos1y |
|
std::vector< cvm::real >::const_iterator | pos1z |
|
std::vector< cvm::real >::const_iterator | pos2x |
| Reference to the atom positions of group 2.
|
|
std::vector< cvm::real >::const_iterator | pos2y |
|
std::vector< cvm::real >::const_iterator | pos2z |
|
size_t | m_num_atoms_pos1 |
| Number of atoms in group1 (used in SOA)
|
|
size_t | m_num_atoms_pos2 |
| Number of atoms in group1 (used in SOA)
|
|
cvm::real | tmp_Q0Q0 [4][4] |
| Temporary variable that will be updated if prepare_derivative called.
|
|
cvm::real | tmp_Q0Q0_L [4][4][4] |
|