Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::scoring::nmr::pcs::PCSTensor Class Reference

#include <PCSTensor.hh>

Inheritance diagram for core::scoring::nmr::pcs::PCSTensor:
Inheritance graph
[legend]

Public Member Functions

 PCSTensor ()
 default constructor More...
 
 PCSTensor (utility::vector1< Real > const &tensor_params)
 constructor with arguments initializes tensor with upper diagonal elements and the coordinates of the metal center parameters in vector should be in order chi__xx, chi_xy, chi_xz, chi_yy, chi_yz, xM, yM, zM More...
 
 PCSTensor (PCSTensor const &other)
 copy constructor More...
 
PCSTensoroperator= (PCSTensor const &rhs)
 assignment operator More...
 
 ~PCSTensor () override
 virtual destructor More...
 
std::string tensor_name () const override
 every tensor should offer a function that returns its name More...
 
void set_tensor_in_arbitrary_frame (utility::vector1< Real > const &tensor_params) override
 sets the delta chi tensor as it exists in the arbitrary frame resets the tensor upper diagonal elements and the coordinates of the metal center parameters in vector should be in order chi__xx, chi_xy, chi_xz, chi_yy, chi_yz, xM, yM, zM More...
 
void set_tensor_in_pas (utility::vector1< Real > const &tensor_params) override
 sets the delta chi tensor as it exists in the principal axis system (PAS) resets the tensor principal values, the axial and rhombic component, the three Euler angles and the coordinates of the metal center parameters in vector should be in order alpha, beta, gamma, xM, yM, zM, ax, rh More...
 
void diagonalize_tensor () override
 brings tensor in principal axis frame by diagonalization make sure to call either set_tensor_in_arbitrary_frame() or set_tensor_in_pas() first More...
 
void reorder_tensor () override
 brings delta chi tensor principal values in correct order and reconfigures tensor into unique tensor representation make sure to call set_tensor_in_pas() or diagonalize_tensor() first More...
 
void show_tensor_stats (std::ostream &TR, bool show_in_pas=true) const override
 shows summary of tensor statistics More...
 
utility::json_spirit::Value serialize () const override
 serialize a PCSTensor to a json_spirit object More...
 
void deserialize (utility::json_spirit::mObject data) override
 deserialize a json_spirit object to a PCSTensor More...
 
bool is_pcs_tensor_in_arbitrary_frame () const
 
bool is_pcs_tensor_in_pas () const
 
bool is_pcs_tensor_diagonalized () const
 
bool is_pcs_tensor_reconfigured () const
 
Vector const & get_metal_center () const
 
void set_metal_center (Real xM, Real yM, Real zM)
 
- Public Member Functions inherited from core::scoring::nmr::NMRTensor
 NMRTensor ()
 default constructor More...
 
 NMRTensor (NMRTensor const &other)
 copy constructor More...
 
NMRTensoroperator= (NMRTensor const &rhs)
 assignment operator More...
 
 ~NMRTensor () override
 virtual destructor More...
 
Real get_T_xx () const
 
Real get_T_xy () const
 
Real get_T_xz () const
 
Real get_T_yy () const
 
Real get_T_yz () const
 
Real get_ax () const
 
Real get_rh () const
 
Real get_Eig_xx () const
 
Real get_Eig_yy () const
 
Real get_Eig_zz () const
 
Real get_alpha () const
 
Real get_beta () const
 
Real get_gamma () const
 
EULER_CONVENTION get_euler_convention () const
 
void set_T_xx (Real T_xx)
 
void set_T_xy (Real T_xy)
 
void set_T_xz (Real T_xz)
 
void set_T_yy (Real T_yy)
 
void set_T_yz (Real T_yz)
 
void set_ax (Real ax)
 
void set_rh (Real rh)
 
void set_Eig_xx (Real Eig_xx)
 
void set_Eig_yy (Real Eig_yy)
 
void set_Eig_zz (Real Eig_zz)
 
void set_alpha (Real alpha)
 
void set_beta (Real beta)
 
void set_gamma (Real gamma)
 

Private Member Functions

void ax_rh_from_eigenvalues ()
 converts tensor principal values into its axial and rhombic component More...
 
void ax_rh_to_eigenvalues ()
 converts axial and rhombic component into the tensor principal values More...
 
Matrix build_tensor_matrix ()
 returns the delta chi tensor in 3x3 matrix form More...
 

Private Attributes

bool pcs_tensor_in_arbitrary_frame_
 
bool pcs_tensor_in_pas_
 
bool pcs_tensor_diagonalized_
 
bool pcs_tensor_reconfigured_
 
Vector metal_center_
 

Constructor & Destructor Documentation

core::scoring::nmr::pcs::PCSTensor::PCSTensor ( )

default constructor

core::scoring::nmr::pcs::PCSTensor::PCSTensor ( utility::vector1< Real > const &  tensor_params)

constructor with arguments initializes tensor with upper diagonal elements and the coordinates of the metal center parameters in vector should be in order chi__xx, chi_xy, chi_xz, chi_yy, chi_yz, xM, yM, zM

References set_tensor_in_arbitrary_frame().

core::scoring::nmr::pcs::PCSTensor::PCSTensor ( PCSTensor const &  other)

copy constructor

core::scoring::nmr::pcs::PCSTensor::~PCSTensor ( )
override

virtual destructor

Member Function Documentation

void core::scoring::nmr::pcs::PCSTensor::ax_rh_from_eigenvalues ( )
private

converts tensor principal values into its axial and rhombic component

converts delta chi tensor principal values into its axial and rhombic component

References core::scoring::nmr::NMRTensor::get_Eig_xx(), core::scoring::nmr::NMRTensor::get_Eig_yy(), core::scoring::nmr::NMRTensor::get_Eig_zz(), core::scoring::nmr::NMRTensor::set_ax(), and core::scoring::nmr::NMRTensor::set_rh().

Referenced by diagonalize_tensor(), and reorder_tensor().

void core::scoring::nmr::pcs::PCSTensor::ax_rh_to_eigenvalues ( )
private

converts axial and rhombic component into the tensor principal values

converts axial and rhombic component into the delta chi tensor principal values

References core::scoring::nmr::NMRTensor::get_ax(), core::scoring::nmr::NMRTensor::get_rh(), core::scoring::nmr::NMRTensor::set_Eig_xx(), core::scoring::nmr::NMRTensor::set_Eig_yy(), and core::scoring::nmr::NMRTensor::set_Eig_zz().

Referenced by set_tensor_in_pas().

Matrix core::scoring::nmr::pcs::PCSTensor::build_tensor_matrix ( )
private
void core::scoring::nmr::pcs::PCSTensor::deserialize ( utility::json_spirit::mObject  data)
overridevirtual
void core::scoring::nmr::pcs::PCSTensor::diagonalize_tensor ( )
overridevirtual
Vector const& core::scoring::nmr::pcs::PCSTensor::get_metal_center ( ) const
inline
bool core::scoring::nmr::pcs::PCSTensor::is_pcs_tensor_diagonalized ( ) const
inline
bool core::scoring::nmr::pcs::PCSTensor::is_pcs_tensor_in_arbitrary_frame ( ) const
inline
bool core::scoring::nmr::pcs::PCSTensor::is_pcs_tensor_in_pas ( ) const
inline
bool core::scoring::nmr::pcs::PCSTensor::is_pcs_tensor_reconfigured ( ) const
inline
PCSTensor & core::scoring::nmr::pcs::PCSTensor::operator= ( PCSTensor const &  rhs)
void core::scoring::nmr::pcs::PCSTensor::reorder_tensor ( )
overridevirtual
utility::json_spirit::Value core::scoring::nmr::pcs::PCSTensor::serialize ( ) const
overridevirtual
void core::scoring::nmr::pcs::PCSTensor::set_metal_center ( Real  xM,
Real  yM,
Real  zM 
)
inline

References metal_center_.

void core::scoring::nmr::pcs::PCSTensor::set_tensor_in_arbitrary_frame ( utility::vector1< Real > const &  tensor_params)
overridevirtual

sets the delta chi tensor as it exists in the arbitrary frame resets the tensor upper diagonal elements and the coordinates of the metal center parameters in vector should be in order chi__xx, chi_xy, chi_xz, chi_yy, chi_yz, xM, yM, zM

Implements core::scoring::nmr::NMRTensor.

References metal_center_, pcs_tensor_in_arbitrary_frame_, core::scoring::nmr::NMRTensor::set_T_xx(), core::scoring::nmr::NMRTensor::set_T_xy(), core::scoring::nmr::NMRTensor::set_T_xz(), core::scoring::nmr::NMRTensor::set_T_yy(), and core::scoring::nmr::NMRTensor::set_T_yz().

Referenced by PCSTensor().

void core::scoring::nmr::pcs::PCSTensor::set_tensor_in_pas ( utility::vector1< Real > const &  tensor_params)
overridevirtual

sets the delta chi tensor as it exists in the principal axis system (PAS) resets the tensor principal values, the axial and rhombic component, the three Euler angles and the coordinates of the metal center parameters in vector should be in order alpha, beta, gamma, xM, yM, zM, ax, rh

Implements core::scoring::nmr::NMRTensor.

References ax_rh_to_eigenvalues(), metal_center_, pcs_tensor_diagonalized_, pcs_tensor_in_pas_, core::scoring::nmr::NMRTensor::set_alpha(), core::scoring::nmr::NMRTensor::set_ax(), core::scoring::nmr::NMRTensor::set_beta(), core::scoring::nmr::NMRTensor::set_gamma(), and core::scoring::nmr::NMRTensor::set_rh().

void core::scoring::nmr::pcs::PCSTensor::show_tensor_stats ( std::ostream &  tracer,
bool  show_in_pas = true 
) const
overridevirtual
std::string core::scoring::nmr::pcs::PCSTensor::tensor_name ( ) const
overridevirtual

every tensor should offer a function that returns its name

Implements core::scoring::nmr::NMRTensor.

Member Data Documentation

Vector core::scoring::nmr::pcs::PCSTensor::metal_center_
private
bool core::scoring::nmr::pcs::PCSTensor::pcs_tensor_diagonalized_
private
bool core::scoring::nmr::pcs::PCSTensor::pcs_tensor_in_arbitrary_frame_
private
bool core::scoring::nmr::pcs::PCSTensor::pcs_tensor_in_pas_
private
bool core::scoring::nmr::pcs::PCSTensor::pcs_tensor_reconfigured_
private

The documentation for this class was generated from the following files: