chrono::fea::ChStressTensor< Real > Class Template Reference

Description

template<class Real = double>
class chrono::fea::ChStressTensor< Real >

Class for stress tensors, in compact Voight notation that is with 6 components in a column.

#include <ChTensors.h>

Inheritance diagram for chrono::fea::ChStressTensor< Real >:
Collaboration diagram for chrono::fea::ChStressTensor< Real >:

Public Member Functions

 ChStressTensor ()
 Constructor (default empty).
 
template<typename OtherDerived >
 ChStressTensor (const Eigen::MatrixBase< OtherDerived > &other)
 Constructor from Eigen expressions.
 
template<typename OtherDerived >
ChStressTensoroperator= (const Eigen::MatrixBase< OtherDerived > &other)
 This method allows assigning Eigen expressions to a ChStressTensor.
 
void ComputePrincipalStresses (double &e1, double &e2, double &e3)
 Compute the principal stresses for the given tensor.
 
void ComputePrincipalStressesDirections (double &e1, double &e2, double &e3, ChVector< Real > &dir1, ChVector< Real > &dir2, ChVector< Real > &dir3)
 Compute the directions of the principal stresses, i.e. More...
 
- Public Member Functions inherited from chrono::fea::ChVoightTensor< Real >
 ChVoightTensor ()
 Constructor (default empty).
 
template<typename OtherDerived >
 ChVoightTensor (const Eigen::MatrixBase< OtherDerived > &other)
 Constructor from Eigen expressions.
 
template<class RealB >
 ChVoightTensor (const ChMatrix33< RealB > &msource)
 Copy constructor, from a typical 3D rank-two stress or strain tensor (as 3x3 matrix).
 
template<typename OtherDerived >
ChVoightTensoroperator= (const Eigen::MatrixBase< OtherDerived > &other)
 This method allows assigning Eigen expressions to a ChVoightTensor.
 
Real & XX ()
 
const Real & XX () const
 
Real & YY ()
 
const Real & YY () const
 
Real & ZZ ()
 
const Real & ZZ () const
 
Real & XY ()
 
const Real & XY () const
 
Real & XZ ()
 
const Real & XZ () const
 
Real & YZ ()
 
const Real & YZ () const
 
template<class RealB >
void ConvertFromMatrix (const ChMatrix33< RealB > &msource)
 Convert from a typical 3D rank-two stress or strain tensor (a 3x3 matrix).
 
template<class RealB >
void ConvertToMatrix (ChMatrix33< RealB > &mdest)
 Convert to a typical 3D rank-two stress or strain tensor (a 3x3 matrix).
 
Real GetVolumetricPart () const
 Compute the volumetric part of the tensor, that is the trace V =Txx+Tyy+Tzz.
 
void GetDeviatoricPart (ChVoightTensor< Real > &mdeviatoric) const
 Compute the deviatoric part of the tensor, storing it in mdeviatoric.
 
Real GetInvariant_I1 () const
 Compute the I1 invariant.
 
Real GetInvariant_I2 () const
 Compute the I2 invariant.
 
Real GetInvariant_I3 () const
 Compute the I3 invariant.
 
Real GetInvariant_J1 () const
 Compute the J1 invariant of the deviatoric part (that is always 0).
 
Real GetInvariant_J2 () const
 Compute the J2 invariant of the deviatoric part.
 
Real GetInvariant_J3 () const
 Compute the J3 invariant of the deviatoric part.
 
void Rotate (ChMatrix33< Real > Rot)
 Rotate to another reference coordinate system, overwriting this tensor in place.
 
void ComputeEigenvalues (double &e1, double &e2, double &e3)
 Compute the eigenvalues (closed form method).
 
void ComputeEigenvectors (double &eigval1, double &eigval2, double &eigval3, ChVector< Real > &eigvector1, ChVector< Real > &eigvector2, ChVector< Real > &eigvector3)
 Compute the eigenvectors and the eigenvalues.
 
double GetEquivalentVonMises () const
 FORMULAS THAT ARE USEFUL FOR YELD CRITERIONS: More...
 
double GetEquivalentMeanHydrostatic () const
 Compute the mean hydrostatic value (aka volumetric, normal).
 
double GetEquivalentOctahedralNormal () const
 Compute the octahedral normal invariant (aka hydrostatic, volumetric).
 
double GetEquivalentOctahedralDeviatoric () const
 Compute the octahedral deviatoric invariant (aka shear).
 

Member Function Documentation

template<class Real = double>
void chrono::fea::ChStressTensor< Real >::ComputePrincipalStressesDirections ( double &  e1,
double &  e2,
double &  e3,
ChVector< Real > &  dir1,
ChVector< Real > &  dir2,
ChVector< Real > &  dir3 
)

Compute the directions of the principal stresses, i.e.

three orthogonal directions for zero shear (diagonal stress).