chrono::ChStressTensor< Real > Class Template Reference

Description

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

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

Ordering is as in S={S_11 S_22 S_33 S_23 S_13 S_12} This is work-conjugate to ChStrainEngTensor, NOT ChStrainTensor !

#include <ChTensors.h>

Inheritance diagram for chrono::ChStressTensor< Real >:
Collaboration diagram for chrono::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.
 
virtual Real GetYZ () const override
 
virtual void SetYZ (const Real d) override
 
virtual Real GetXZ () const override
 
virtual void SetXZ (const Real d) override
 
virtual Real GetXY () const override
 
virtual void SetXY (const Real d) override
 
void ComputePrincipalStresses (double &e1, double &e2, double &e3)
 Compute the principal stresses for the given tensor.
 
void ComputePrincipalStressesDirections (double &e1, double &e2, double &e3, ChVector3< Real > &dir1, ChVector3< Real > &dir2, ChVector3< Real > &dir3)
 Compute the directions of the principal stresses, i.e. More...
 
- Public Member Functions inherited from chrono::ChVoigtTensor< double >
 ChVoigtTensor (const Eigen::MatrixBase< OtherDerived > &other)
 Constructor from Eigen expressions.
 
 ChVoigtTensor (const ChMatrix33< RealB > &msource)
 Copy constructor, from a typical 3D rank-two stress or strain tensor (as 3x3 matrix).
 
ChVoigtTensoroperator= (const Eigen::MatrixBase< OtherDerived > &other)
 This method allows assigning Eigen expressions to a ChVoigtTensor.
 
double & XX ()
 
const double & XX () const
 
double & YY ()
 
const double & YY () const
 
double & ZZ ()
 
const double & ZZ () const
 
virtual double GetYZ () const=0
 
virtual void SetYZ (const double d)=0
 
virtual double GetXZ () const=0
 
virtual void SetXZ (const double d)=0
 
virtual double GetXY () const=0
 
virtual void SetXY (const double d)=0
 
void ConvertFromMatrix (const ChMatrix33< RealB > &msource)
 Convert from a typical 3D rank-two symmetric tensor (a 3x3 matrix), ex. stress or strain.
 
void ConvertToMatrix (ChMatrix33< RealB > &mdest) const
 Convert to a typical 3D rank-two symmetric tensor (a 3x3 matrix), ex. stress or strain.
 
double GetVolumetricPart () const
 Compute the volumetric part of the tensor, that is the trace V =Txx+Tyy+Tzz.
 
void GetDeviatoricPart (ChVoigtTensor< double > &mdeviatoric) const
 Compute the deviatoric part of the tensor, storing it in mdeviatoric.
 
double GetInvariant_I1 () const
 Compute the I1 invariant.
 
double GetInvariant_I2 () const
 Compute the I2 invariant.
 
double GetInvariant_I3 () const
 Compute the I3 invariant.
 
double GetInvariant_J1 () const
 Compute the J1 invariant of the deviatoric part (that is always 0).
 
double GetInvariant_J2 () const
 Compute the J2 invariant of the deviatoric part.
 
double GetInvariant_J3 () const
 Compute the J3 invariant of the deviatoric part.
 
void Rotate (ChMatrix33< double > 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, ChVector3< double > &eigvector1, ChVector3< double > &eigvector2, ChVector3< double > &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

◆ ComputePrincipalStressesDirections()

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

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

three orthogonal directions for zero shear (diagonal stress).


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/core/ChTensors.h