chrono::ChVoigtTensor< Real > Class Template Referenceabstract

Description

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

Base class for storing 3x3 symmetric tensors as vectors, with the compact Voigt notation.

This is often useful for storing a 3D stress or a strain. This tensor representation uses 6 components in a column, corresponding to the 3x3 tensor indexes in this order: 11 22 33 23 13 12. NOTE 1: ordering matters! there are some books that use a different ordering for the last 3 elements. NOTE 2: for stress tensors, S={S_11 S_22 S_33 S_23 S_13 S_12}, but for "engineering" strain tensors, same order but E={E_11 E_22 E_33 2*E_23 2*E_13 2*E_12} with the 2* factor that preserves the work-conjugacy if doing w=S^T * E, where the 2* factor is automatically managed by ChStrainEngTensor subclass thanks to having made the GetXY() GetXZ() GetYZ() functions as virtual.

#include <ChTensors.h>

Inherits ChVectorN< double, 6 >.

Public Member Functions

template<typename OtherDerived >
 ChVoigtTensor (const Eigen::MatrixBase< OtherDerived > &other)
 Constructor from Eigen expressions.
 
template<class RealB >
 ChVoigtTensor (const ChMatrix33< RealB > &msource)
 Copy constructor, from a typical 3D rank-two stress or strain tensor (as 3x3 matrix).
 
template<typename OtherDerived >
ChVoigtTensoroperator= (const Eigen::MatrixBase< OtherDerived > &other)
 This method allows assigning Eigen expressions to a ChVoigtTensor.
 
RealXX ()
 
const RealXX () const
 
RealYY ()
 
const RealYY () const
 
RealZZ ()
 
const RealZZ () const
 
virtual Real GetYZ () const =0
 
virtual void SetYZ (const Real d)=0
 
virtual Real GetXZ () const =0
 
virtual void SetXZ (const Real d)=0
 
virtual Real GetXY () const =0
 
virtual void SetXY (const Real d)=0
 
template<class RealB >
void ConvertFromMatrix (const ChMatrix33< RealB > &msource)
 Convert from a typical 3D rank-two symmetric tensor (a 3x3 matrix), ex. stress or strain.
 
template<class RealB >
void ConvertToMatrix (ChMatrix33< RealB > &mdest) const
 Convert to a typical 3D rank-two symmetric tensor (a 3x3 matrix), ex. stress or strain.
 
Real GetVolumetricPart () const
 Compute the volumetric part of the tensor, that is the trace V =Txx+Tyy+Tzz.
 
void GetDeviatoricPart (ChVoigtTensor< 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, ChVector3< Real > &eigvector1, ChVector3< Real > &eigvector2, ChVector3< 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

◆ GetEquivalentVonMises()

template<class Real = double>
double chrono::ChVoigtTensor< Real >::GetEquivalentVonMises ( ) const
inline

FORMULAS THAT ARE USEFUL FOR YELD CRITERIONS:

Compute the Von Mises equivalent.


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