chrono::ChStrainEngTensor< Real > Class Template Reference

Description

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

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

NOTE : for "engineering" strain tensors, same order of strain tensors but assuming engineering strain convention, we store the vector with the tensorial shear strain doubled, as in: E={E_11 E_22 E_33 2*E_23 2*E_13 2*E_12} The 2* factor that preserves the work-conjugacy if doing w=S^T * E. NOTE! the 2* factor is automatically managed by ChStrainEngTensor thanks to having made the GetXY() GetXZ() GetYZ() functions as virtual. Therefore the 2* factor that preserves the work-conjugacy if doing w=S^T * E, and this ChStrainEngTensor is work conjugate to ChStressTensor.

#include <ChTensors.h>

Inheritance diagram for chrono::ChStrainEngTensor< Real >:
Collaboration diagram for chrono::ChStrainEngTensor< Real >:

Public Member Functions

 ChStrainEngTensor ()
 Constructor (default empty).
 
template<typename OtherDerived >
 ChStrainEngTensor (const Eigen::MatrixBase< OtherDerived > &other)
 Constructor from Eigen expressions.
 
template<typename OtherDerived >
ChStrainEngTensoroperator= (const Eigen::MatrixBase< OtherDerived > &other)
 This method allows assigning Eigen expressions to a ChStrainEngTensor.
 
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 ComputePrincipalStrains (double &e1, double &e2, double &e3)
 Compute the principal strains for the given tensor.
 
void ComputePrincipalStrainsDirections (double &e1, double &e2, double &e3, ChVector3< Real > &dir1, ChVector3< Real > &dir2, ChVector3< Real > &dir3)
 Compute the directions of the principal strain, 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

◆ ComputePrincipalStrainsDirections()

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

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

three orthogonal directions for zero strain (diagonal strain).


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