Collective Variables Module - Developer Documentation
Loading...
Searching...
No Matches
Public Member Functions | List of all members
colvar::orientation::rotation_derivative_impl_ Struct Reference
Inheritance diagram for colvar::orientation::rotation_derivative_impl_:
Inheritance graph
[legend]
Collaboration diagram for colvar::orientation::rotation_derivative_impl_:
Collaboration graph
[legend]

Public Member Functions

 rotation_derivative_impl_ (colvar::orientation *orientation_cvc)
 
- Public Member Functions inherited from rotation_derivative
 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...
 

Additional Inherited Members

- Public Attributes inherited from rotation_derivative
const cvm::rotationm_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]
 

The documentation for this struct was generated from the following file: