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

Description

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

Base class for stress and strain tensors, in compact Voight notation that is with 6 components in a column.

This saves some memory when compared to traditional 3D tensors with three rows and three columns, that are symmetric.

#include <ChTensors.h>

Inheritance diagram for chrono::fea::ChVoightTensor< Real >:

Public Member Functions

 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>
double chrono::fea::ChVoightTensor< Real >::GetEquivalentVonMises ( ) const

FORMULAS THAT ARE USEFUL FOR YELD CRITERIONS:

Compute the Von Mises equivalent.