|
Rosetta
|
The ModuleType1 class covers the Jacobian analysis at the lower-level for type-1 systems, which have internal DoFs that can be organized as three sets of two torsion angles with intersecting axes. More...
#include <ModuleType1.hh>

Classes | |
| struct | jacobian_struct |
| Struct to pass around all variations of Jacobian matrices @detail fw_dofs is the Jacobian matrix that maps differential torsion angles [rad/s] or [delta rad] on Cartesian reference frame fw_cons is the 6x6 Jacobian matrix that maps virtual (helper, constrained) torsion angles [rad/s] or [delta rad] on Cartesian reference frame fw_all is the 6x6 Jacobian matrix that maps all six torsion angles (real and virtual) [rad/s] or [delta rad] on Cartesian reference frame inv_dofs is the 6x6 Jacobian matrix that maps twist from Cartesian ref. frame onto torsion angles inv_cons is the 6x6 Jacobian matrix that maps twist from Cartesian ref. frame onto virtual torsion angles that represent the modules constraints inv_all is the 6x6 Jacobian matrix that maps twist from Cartesian ref. frame onto all torsion angles (real and virtual) More... | |
| struct | screw_construct_struct |
| struct with the different linear algebra objects that are needed to express the twists and wrenches to calculate the instantaneous Jacobian matrices of the module More... | |
Public Types | |
| typedef std::pair< numeric::xyzVector< core::Real >, numeric::xyzVector< core::Real > > | Screw |
| typedef of a screw as a pair of xyzVectors More... | |
Public Member Functions | |
| ModuleType1 ()=delete | |
| No default constructor because modules are not used on their own, but always as part of a SeriesJacobian. More... | |
| ModuleType1 (core::Size const &dofs_module, utility::vector1< core::id::TorsionID > const &torsion_ids, core::id::AtomID const &ref_atom) | |
| Constructor for module with 1, 2 or 3 sets of two AtomIDs whose X-axes represent intersecting torsion axes. More... | |
| ModuleType1 (ModuleType1 const &src) | |
| Copy constructor. More... | |
| ~ModuleType1 () override | |
| Destructor. More... | |
| ModuleType1OP | clone () const |
| Clone operation: make a copy of this object, and return an owning pointer to the copy. More... | |
| utility::vector1< core::id::TorsionID > | get_torsion_ids () |
| Returns the residues that make up the Jacobian module. N.B. this vector always contains six residue numbers, but only the first < number_dofs_ > torsion IDs are free to move. The remaining torsions represent constrained motions. More... | |
| core::Size | get_number_dofs () |
| Returns the number of DoFs of which this module represents the differential equations. More... | |
| utility::vector1< core::Size > | free_residues () |
| Returns the number of DoFs of which this module represents the differential equations. More... | |
| ModuleType1::jacobian_struct | get_jacobian_matrices (core::conformation::Conformation const &conformation) |
| calculate all Jacobian matrices for the instantaneous conformation More... | |
| numeric::MathVector< core::Real > | get_torsion_values (core::conformation::Conformation const &conformation) |
| Get variables that are associated to this instance. More... | |
| void | set_torsion_values (core::conformation::Conformation &conformation, numeric::MathVector< core::Real > const &vars) |
| Set the variables that are associated to this module. More... | |
| void | apply_delta_torsion_values (core::conformation::Conformation &conformation, numeric::MathVector< core::Real > const &dq) |
| apply vector of delta angles to the torsion angles that are associated to this instance More... | |
Private Member Functions | |
| ModuleType1::screw_construct_struct | update_screw_vectors (core::conformation::Conformation const &conformation) |
| Updates the screw axes and moment arm vectors of the object. More... | |
| utility::vector1< Screw > | get_orthogonal_wrenches_from_twists (Screw const &twist_1, Screw const &twist_2, numeric::HomogeneousTransform< core::Real > const &H_CA0_CAa, numeric::HomogeneousTransform< core::Real > const &H_CAa_Ca, numeric::HomogeneousTransform< core::Real > const &H_Ca_CAb, numeric::HomogeneousTransform< core::Real > const &H_CAb_Cb) |
| Returns the two wrenches that are dual to the input twists, which is used in Jacobian analysis. More... | |
Private Attributes | |
| core::Size | number_dofs_ |
| number of dofs of the module More... | |
| utility::vector1< core::id::TorsionID > | torsion_ids_ |
| torsion IDs of the dofs used in this module More... | |
| utility::vector1< core::Size > | free_residues_ |
| torsion IDs of the dofs used in this module More... | |
| core::id::AtomID | ref_atom_ID_ |
| the atom which acts as the reference frame for all vectors More... | |
Static Private Attributes | |
| static constexpr core::Real | denom_singular_bound_ = 1e-2 |
| bound to check for singularity in Jacobian denominator More... | |
| static constexpr core::Real | denom_orthogonal_bound_ = 1e-6 |
| bound to check for screw orthogonality More... | |
| static constexpr core::Real | pos_singular_bound_ = 1e-10 |
| bound to check for singularity in atom position More... | |
The ModuleType1 class covers the Jacobian analysis at the lower-level for type-1 systems, which have internal DoFs that can be organized as three sets of two torsion angles with intersecting axes.
| typedef std::pair< numeric::xyzVector<core::Real>, numeric::xyzVector<core::Real> > core::kinematics::jacobian::ModuleType1::Screw |
typedef of a screw as a pair of xyzVectors
|
delete |
No default constructor because modules are not used on their own, but always as part of a SeriesJacobian.
| core::kinematics::jacobian::ModuleType1::ModuleType1 | ( | core::Size const & | dofs_module, |
| utility::vector1< core::id::TorsionID > const & | torsion_ids, | ||
| core::id::AtomID const & | ref_atom | ||
| ) |
Constructor for module with 1, 2 or 3 sets of two AtomIDs whose X-axes represent intersecting torsion axes.
Stores the basic information needed to perform the Jacobian analysis for this module for any conformation
References core::id::BB, free_residues_, number_dofs_, ref_atom_ID_, and torsion_ids_.
|
default |
Copy constructor.
Copy constructor. Keep default unless deep copying is needed (and in that case, consider using DeepCopyOPs.)
|
override |
Destructor.
| void core::kinematics::jacobian::ModuleType1::apply_delta_torsion_values | ( | core::conformation::Conformation & | conformation, |
| numeric::MathVector< core::Real > const & | dq | ||
| ) |
apply vector of delta angles to the torsion angles that are associated to this instance
Apply vector of delta angles to the torsion angles that are associated to this instance.
| [in] | vector | dq must have dimension 6 and all delta angles must be in radians |
References number_dofs_, core::conformation::Conformation::set_torsion(), core::conformation::Conformation::torsion(), and torsion_ids_.
| ModuleType1OP core::kinematics::jacobian::ModuleType1::clone | ( | ) | const |
Clone operation: make a copy of this object, and return an owning pointer to the copy.
|
inline |
Returns the number of DoFs of which this module represents the differential equations.
References free_residues_.
| ModuleType1::jacobian_struct core::kinematics::jacobian::ModuleType1::get_jacobian_matrices | ( | core::conformation::Conformation const & | conformation | ) |
calculate all Jacobian matrices for the instantaneous conformation
Calculates all Jacobian matrices for the instantaneous conformation.
Based on the definition of the torsion axes (provided by means of AtomIDs), this function calculates the set of six twists and wrenches for this module. A twist is a dual Cartesian vector: one xyzVector expresses the differential Cartesian rotational vector, and another expresses the differential Cartesian linear vector. See Huang et al. (2011) Generalized Jacobian analysis of lower mobility manipulators for details on the definition of twists and wrenches and their relations.
References denom_orthogonal_bound_, denom_singular_bound_, core::kinematics::jacobian::ModuleType1::jacobian_struct::fw_all, core::kinematics::jacobian::ModuleType1::jacobian_struct::fw_cons, core::kinematics::jacobian::ModuleType1::jacobian_struct::fw_dofs, get_orthogonal_wrenches_from_twists(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::Hmatrices, core::kinematics::jacobian::ModuleType1::jacobian_struct::inv_all, core::kinematics::jacobian::ModuleType1::jacobian_struct::inv_cons, core::kinematics::jacobian::ModuleType1::jacobian_struct::inv_dofs, number_dofs_, core::kinematics::jacobian::ModuleType1::screw_construct_struct::r_vectors, core::kinematics::jacobian::ModuleType1::screw_construct_struct::s_vectors, core::chemical::element::Ta, core::chemical::element::Tc, torsion_ids_, core::kinematics::jacobian::TR(), and update_screw_vectors().
|
inline |
Returns the number of DoFs of which this module represents the differential equations.
References number_dofs_.
|
private |
Returns the two wrenches that are dual to the input twists, which is used in Jacobian analysis.
References pos_singular_bound_, torsion_ids_, and core::kinematics::jacobian::TR().
Referenced by get_jacobian_matrices().
|
inline |
Returns the residues that make up the Jacobian module. N.B. this vector always contains six residue numbers, but only the first < number_dofs_ > torsion IDs are free to move. The remaining torsions represent constrained motions.
References torsion_ids_.
| numeric::MathVector< core::Real > core::kinematics::jacobian::ModuleType1::get_torsion_values | ( | core::conformation::Conformation const & | conformation | ) |
Get variables that are associated to this instance.
Get torsion angle values that belong to this instance.
| [out] | vector | dq is has dimension number_dofs of this modules and all delta are in degrees |
References number_dofs_, core::conformation::Conformation::torsion(), and torsion_ids_.
| void core::kinematics::jacobian::ModuleType1::set_torsion_values | ( | core::conformation::Conformation & | conformation, |
| numeric::MathVector< core::Real > const & | vars | ||
| ) |
Set the variables that are associated to this module.
Apply vector of values to the torsion angles that are associated to this instance.
| [in] | vector | dq must have dimension number_dofs and all delta angles must be in degrees |
References number_dofs_, core::conformation::Conformation::set_torsion(), and torsion_ids_.
|
private |
Updates the screw axes and moment arm vectors of the object.
Updates the screw axes and moment arm vectors of the object @detail For the Jacobian analysis axis vectors and arm vectors are required Handles to the six torsion axes are provided by means of AtomIDs. AtomID uniquely points to a Stub, whose X-axes correspond to torsion axes. Thus, to identify the axes of the phi and psi torsions the stubs associated to respectively the mainchain CA- and C-atoms are needed.
References core::kinematics::AtomTree::atom(), core::conformation::Conformation::atom_tree(), core::kinematics::RT::get_rotation(), core::kinematics::tree::Atom::get_stub(), core::kinematics::RT::get_translation(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::Hmatrices, core::conformation::Residue::mainchain_atom(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::r_vectors, ref_atom_ID_, core::conformation::Conformation::residue(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::s_vectors, and torsion_ids_.
Referenced by get_jacobian_matrices().
|
staticconstexprprivate |
bound to check for screw orthogonality
Referenced by get_jacobian_matrices().
|
staticconstexprprivate |
bound to check for singularity in Jacobian denominator
Referenced by get_jacobian_matrices().
|
private |
torsion IDs of the dofs used in this module
Referenced by free_residues(), and ModuleType1().
|
private |
number of dofs of the module
Referenced by apply_delta_torsion_values(), get_jacobian_matrices(), get_number_dofs(), get_torsion_values(), ModuleType1(), and set_torsion_values().
|
staticconstexprprivate |
bound to check for singularity in atom position
Referenced by get_orthogonal_wrenches_from_twists().
|
private |
the atom which acts as the reference frame for all vectors
Referenced by ModuleType1(), and update_screw_vectors().
|
private |
torsion IDs of the dofs used in this module
Referenced by apply_delta_torsion_values(), get_jacobian_matrices(), get_orthogonal_wrenches_from_twists(), get_torsion_ids(), get_torsion_values(), ModuleType1(), set_torsion_values(), and update_screw_vectors().