OOFEM 3.0
Loading...
Searching...
No Matches
oofem::StressVector Class Reference

#include <stressvector.h>

Inheritance diagram for oofem::StressVector:
Collaboration diagram for oofem::StressVector:

Public Member Functions

 StressVector (MaterialMode)
 Constructor. Creates zero value stress/strain vector for given material mode.
 StressVector (const FloatArray &, MaterialMode)
 Constructor. Creates stress/strain vector, values taken from given vector, mode is parameter.
 ~StressVector ()
 Destructor.
void computePrincipalValues (FloatArray &answer) const override
void computePrincipalValDir (FloatArray &answer, FloatMatrix &dir) const override
void computeDeviatoricVolumetricSplit (StressVector &dev, double &vol) const
void computeDeviatoricVolumetricSum (StressVector &answer, double vol) const
void printYourself () const override
 Prints receiver on stdout, useful for debugging.
double computeFirstInvariant () const
double computeSecondInvariant () const
double computeThirdInvariant () const
void computeAllThreeHWCoordinates (double &xsi, double &rho, double &theta) const
double computeFirstCoordinate () const
double computeSecondCoordinate () const
double computeThirdCoordinate () const
void applyElasticCompliance (StrainVector &strain, const double EModulus, const double nu) const
void applyDeviatoricElasticCompliance (StrainVector &strain, const double EModulus, const double nu) const
void applyDeviatoricElasticCompliance (StrainVector &strain, const double GModulus) const
double computeStressNorm () const
Public Member Functions inherited from oofem::StressStrainBaseVector
 StressStrainBaseVector (MaterialMode)
 Constructor. Creates zero value stress/strain vector for given material mode.
 StressStrainBaseVector (const FloatArray &, MaterialMode)
 Constructor. Creates stress/strain vector, values taken from given vector, mode is parameter.
 ~StressStrainBaseVector ()
 Destructor.
StressStrainBaseVectoroperator= (const StressStrainBaseVector &)
MaterialMode giveStressStrainMode () const
 Returns the material mode of receiver.
void letStressStrainModeBe (const MaterialMode newMode)
void convertToFullForm (FloatArray &fullform) const
void convertFromFullForm (const FloatArray &reducedform, MaterialMode mode)
void transformTo (StressStrainBaseVector &answer, const FloatMatrix &base, int transpose=0) const
contextIOResultType storeYourself (DataStream &stream)
contextIOResultType restoreYourself (DataStream &stream)
double computeVolumetricPart () const
 Returns the volumetric part of the vector.
Public Member Functions inherited from oofem::FloatArray
FloatArrayoperator= (const double &)
 Assignment of scalar to all components of receiver.
std::vector< double >::iterator begin ()
std::vector< double >::iterator end ()
std::vector< double >::const_iterator begin () const
std::vector< double >::const_iterator end () const
 FloatArray (int n=0)
 Constructor for sized array. Data is zeroed.
 FloatArray (double)=delete
 Disallow double parameter, which can otherwise give unexpected results.
 FloatArray (const FloatArray &src)
 Copy constructor. Creates the array from another array.
 FloatArray (FloatArray &&src) noexcept
 Move constructor. Creates the array from another array.
FloatArrayoperator= (const FloatArray &src)
 Assignment operator.
FloatArrayoperator= (FloatArray &&src) noexcept
 Move operator.
const double * data () const
double * data ()
double & operator() (Index i)
double & operator[] (Index i)
const double & operator() (Index i) const
const double & operator[] (Index i) const
void resize (Index s)
Index size () const
void _resize_internal (Index newsize)
 FloatArray (std ::initializer_list< double >list)
 Initializer list constructor.
template<std::size_t N>
 FloatArray (const FloatArrayF< N > &src)
virtual ~FloatArray ()
 Destructor.
FloatArrayoperator= (std ::initializer_list< double >list)
 Assignment operator.
template<std::size_t N>
FloatArrayoperator= (const FloatArrayF< N > &src)
 Assign from fixed size array.
bool isAllFinite () const
 Returns true if no element is NAN or infinite.
double & at (Index i)
double at (Index i) const
void checkBounds (Index i) const
void checkSizeTowards (const IntArray &loc)
void resizeWithValues (Index s, std::size_t allocChunk=0)
void clear ()
bool containsOnlyZeroes () const
Index giveSize () const
 Returns the size of receiver.
bool isNotEmpty () const
 Returns true if receiver is not empty.
bool isEmpty () const
 Returns true if receiver is empty.
void negated ()
virtual void printYourself (const std::string &name) const
virtual void printYourselfToFile (const std::string filename, const bool showDimensions=true) const
virtual void pY () const
void zero ()
 Zeroes all coefficients of receiver.
void beProductOf (const FloatMatrix &aMatrix, const FloatArray &anArray)
void beTProductOf (const FloatMatrix &aMatrix, const FloatArray &anArray)
void beVectorProductOf (const FloatArray &v1, const FloatArray &v2)
void beScaled (double s, const FloatArray &b)
void add (const FloatArray &src)
void add (double factor, const FloatArray &b)
void plusProduct (const FloatMatrix &b, const FloatArray &s, double dV)
void add (double offset)
void subtract (const FloatArray &src)
void times (double s)
void beMaxOf (const FloatArray &a, const FloatArray &b)
void beMinOf (const FloatArray &a, const FloatArray &b)
void beDifferenceOf (const FloatArray &a, const FloatArray &b)
void beDifferenceOf (const FloatArray &a, const FloatArray &b, Index n)
void beSubArrayOf (const FloatArray &src, const IntArray &indx)
void addSubVector (const FloatArray &src, Index si)
void assemble (const FloatArray &fe, const IntArray &loc)
void assembleSquared (const FloatArray &fe, const IntArray &loc)
void copySubVector (const FloatArray &src, int si)
double distance (const FloatArray &x) const
double distance (const FloatArray *x) const
double distance (const FloatArray &iP1, const FloatArray &iP2, double &oXi, double &oXiUnbounded) const
double distance_square (const FloatArray &iP1, const FloatArray &iP2, double &oXi, double &oXiUnbounded) const
double distance_square (const FloatArray &x) const
int giveIndexMinElem (void)
int giveIndexMaxElem (void)
double dotProduct (const FloatArray &x) const
double dotProduct (const FloatArray &x, Index size) const
double normalize_giveNorm ()
void normalize ()
double computeNorm () const
double computeSquaredNorm () const
double sum () const
double product () const
void rotatedWith (FloatMatrix &r, char mode)
const double * givePointer () const
double * givePointer ()
void beVectorForm (const FloatMatrix &aMatrix)
void beSymVectorForm (const FloatMatrix &aMatrix)
void beSymVectorFormOfStrain (const FloatMatrix &aMatrix)
void changeComponentOrder ()
void power (const double exponent)
void beColumnOf (const FloatMatrix &mat, int col)
void beRowOf (const FloatMatrix &mat, Index row)
contextIOResultType storeYourself (DataStream &stream) const
contextIOResultType restoreYourself (DataStream &stream)
int givePackSize (DataStream &buff) const

Protected Member Functions

void giveTranformationMtrx (FloatMatrix &answer, const FloatMatrix &base, int transpose=0) const override

Additional Inherited Members

typedef double Scalar
static FloatArray fromVector (const std::vector< double > &v)
static FloatArray fromList (const std::list< double > &l)
static FloatArray fromConcatenated (std::initializer_list< FloatArray > ini)
static FloatArray fromIniList (std::initializer_list< double > ini)
static constexpr int Dim = 1
Protected Attributes inherited from oofem::StressStrainBaseVector
StressStrainMatMode mode
 Stress strain mode.
Protected Attributes inherited from oofem::FloatArray
std::vector< double > values
 Stored values.

Detailed Description

Specialization of a floating point array for representing a stress state.

Definition at line 48 of file stressvector.h.

Constructor & Destructor Documentation

◆ StressVector() [1/2]

oofem::StressVector::StressVector ( MaterialMode m)

◆ StressVector() [2/2]

oofem::StressVector::StressVector ( const FloatArray & src,
MaterialMode m )

Constructor. Creates stress/strain vector, values taken from given vector, mode is parameter.

Definition at line 47 of file stressvector.C.

References oofem::StressStrainBaseVector::StressStrainBaseVector().

◆ ~StressVector()

oofem::StressVector::~StressVector ( )
inline

Destructor.

Definition at line 56 of file stressvector.h.

Member Function Documentation

◆ applyDeviatoricElasticCompliance() [1/2]

void oofem::StressVector::applyDeviatoricElasticCompliance ( StrainVector & strain,
const double EModulus,
const double nu ) const

Applies the isotropic elastic stiffness to the deviatoric stress.

Parameters
strainComputed strain
EModulusElasticity modulus of the material.
nuPoisson's ratio of the material.

Definition at line 468 of file stressvector.C.

References applyDeviatoricElasticCompliance().

Referenced by applyDeviatoricElasticCompliance().

◆ applyDeviatoricElasticCompliance() [2/2]

void oofem::StressVector::applyDeviatoricElasticCompliance ( StrainVector & strain,
const double GModulus ) const

Applies the isotropic elastic stiffness to the deviatoric stress.

Parameters
strainComputed strain.
GModulusShear modulus of the material.

Definition at line 479 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), OOFEM_ERROR, StressVector(), and oofem::FloatArray::values.

◆ applyElasticCompliance()

void oofem::StressVector::applyElasticCompliance ( StrainVector & strain,
const double EModulus,
const double nu ) const

Applies the isotropic elastic compliance to the stress.

Parameters
strainComputed strain.
EModulusElasticity modulus of the material.
nuPoisson's ratio of the material.

Definition at line 436 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), StressVector(), and oofem::FloatArray::values.

◆ computeAllThreeHWCoordinates()

void oofem::StressVector::computeAllThreeHWCoordinates ( double & xsi,
double & rho,
double & theta ) const

Computes all three Haigh-Westergaard coordinate of the stress.

Parameters
xsiFirst HW-coordinate.
rhoSecond HW-coordinate.
thetathird HW-coordinate.

Definition at line 376 of file stressvector.C.

References computeDeviatoricVolumetricSplit(), computeFirstCoordinate(), computeSecondCoordinate(), computeThirdCoordinate(), oofem::StressStrainBaseVector::giveStressStrainMode(), and StressVector().

◆ computeDeviatoricVolumetricSplit()

void oofem::StressVector::computeDeviatoricVolumetricSplit ( StressVector & dev,
double & vol ) const

Computes split of receiver into deviatoric and volumetric part.

Parameters
devComputed deviatoric part.
volComputed volumetric part.

Definition at line 51 of file stressvector.C.

References oofem::FloatArray::at(), oofem::StressStrainBaseVector::giveStressStrainMode(), OOFEM_ERROR, and StressVector().

Referenced by computeAllThreeHWCoordinates().

◆ computeDeviatoricVolumetricSum()

void oofem::StressVector::computeDeviatoricVolumetricSum ( StressVector & answer,
double vol ) const

Sums volumetric part to receiver.

Parameters
answerComputed full stress vector.
volVolumetric part to add.

Definition at line 78 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), OOFEM_ERROR, and StressVector().

◆ computeFirstCoordinate()

double oofem::StressVector::computeFirstCoordinate ( ) const

Computes the first Haigh-Westergaard coordinate of the stress.

Returns
\( \displaystyle \xi = \frac{I_1}{\sqrt{3}} \).

Definition at line 391 of file stressvector.C.

References computeFirstInvariant().

Referenced by computeAllThreeHWCoordinates().

◆ computeFirstInvariant()

double oofem::StressVector::computeFirstInvariant ( ) const

Computes the first invariant I1 of the stress.

Returns
First invariant.

Definition at line 291 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), StressVector(), and oofem::FloatArray::values.

Referenced by computeFirstCoordinate().

◆ computePrincipalValDir()

◆ computePrincipalValues()

void oofem::StressVector::computePrincipalValues ( FloatArray & answer) const
overridevirtual

Member function that computes principal values of receiver (stress vector).

Parameters
answercomputed principal values (sorted)

Implements oofem::StressStrainBaseVector.

Definition at line 104 of file stressvector.C.

References oofem::FloatArray::at(), oofem::StressStrainBaseVector::convertToFullForm(), oofem::cubic3r(), oofem::FloatArray::giveSize(), oofem::StressStrainBaseVector::giveStressStrainMode(), oofem::FloatArray::resize(), oofem::FloatArray::size(), and oofem::FloatArray::zero().

◆ computeSecondCoordinate()

double oofem::StressVector::computeSecondCoordinate ( ) const

Computes the second Haigh-Westergaard coordinate of the deviatoric stress.

Returns
\( \rho = \sqrt{2 J_2} \).

Definition at line 401 of file stressvector.C.

References computeSecondInvariant().

Referenced by computeAllThreeHWCoordinates().

◆ computeSecondInvariant()

double oofem::StressVector::computeSecondInvariant ( ) const

Computes the second invariant J2 of the deviatoric stress.

Returns
Second invariant.

Definition at line 314 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), StressVector(), and oofem::FloatArray::values.

Referenced by computeSecondCoordinate(), and computeThirdCoordinate().

◆ computeStressNorm()

double oofem::StressVector::computeStressNorm ( ) const

Computes the norm of the stress tensor using engineering notation.

Returns
Norm of the deviatoric part.

Definition at line 515 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), StressVector(), and oofem::FloatArray::values.

Referenced by oofem::MisesMatGrad::givePlaneStrainKappaMatrix(), and oofem::MisesMatGrad::givePlaneStrainStiffMtrx().

◆ computeThirdCoordinate()

double oofem::StressVector::computeThirdCoordinate ( ) const

Computes the third Haigh-Westergaard coordinate of the deviatoric stress.

Returns
\( \displaystyle \theta = 3\frac{\sqrt{3}}{2} \frac{J_3}{J_2^{\frac 32}} \).

Definition at line 411 of file stressvector.C.

References computeSecondInvariant(), and computeThirdInvariant().

Referenced by computeAllThreeHWCoordinates().

◆ computeThirdInvariant()

double oofem::StressVector::computeThirdInvariant ( ) const

Computes the third invariant J3 of the deviatoric stress state.

Returns
Third invariant.

Definition at line 342 of file stressvector.C.

References oofem::StressStrainBaseVector::giveStressStrainMode(), StressVector(), and oofem::FloatArray::values.

Referenced by computeThirdCoordinate().

◆ giveTranformationMtrx()

void oofem::StressVector::giveTranformationMtrx ( FloatMatrix & answer,
const FloatMatrix & base,
int transpose = 0 ) const
overrideprotectedvirtual

Computes 3d transformation matrix from standard vector transformation matrix.

Parameters
answertransformation matrix for strain vector
base(3,3) matrix, where on each column are stored unit direction vectors of local coordinate axes to which we do transformation.
transposeIf transpose == 1 then transpose base matrix before transforming

Implements oofem::StressStrainBaseVector.

Definition at line 547 of file stressvector.C.

References oofem::FloatMatrix::at(), oofem::FloatMatrix::beTranspositionOf(), oofem::FloatMatrix::resize(), and oofem::transpose().

◆ printYourself()

void oofem::StressVector::printYourself ( ) const
overridevirtual

Prints receiver on stdout, useful for debugging.

Reimplemented from oofem::FloatArray.

Definition at line 278 of file stressvector.C.

References oofem::StressStrainBaseVector::mode.


The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011