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

#include <strainvector.h>

Inheritance diagram for oofem::StrainVector:
Collaboration diagram for oofem::StrainVector:

Public Member Functions

 StrainVector (MaterialMode)
 Constructor. Creates zero value stress/strain vector for given material mode.
 StrainVector (const FloatArray &, MaterialMode)
 Constructor. Creates stress/strain vector, values taken from given vector, mode is parameter.
 ~StrainVector ()
 Destructor.
void computePrincipalValues (FloatArray &answer) const override
void computePrincipalValDir (FloatArray &answer, FloatMatrix &dir) const override
void computeMaxPrincipalDir (FloatArray &answer) const
void computeDeviatoricVolumetricSplit (StrainVector &answer, double &vol) const
void computeDeviatoricVolumetricSum (StrainVector &answer, const double vol) const
void printYourself () const override
double computeVolumeChange () const
double computeStrainNorm () const
void applyElasticStiffness (StressVector &stress, const double EModulus, const double nu) const
void applyDeviatoricElasticStiffness (StressVector &stress, const double EModulus, const double nu) const
void applyDeviatoricElasticStiffness (StressVector &stress, const double GModulus) 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 strain state.

Definition at line 45 of file strainvector.h.

Constructor & Destructor Documentation

◆ StrainVector() [1/2]

oofem::StrainVector::StrainVector ( MaterialMode m)

◆ StrainVector() [2/2]

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

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

Definition at line 46 of file strainvector.C.

References oofem::StressStrainBaseVector::StressStrainBaseVector().

◆ ~StrainVector()

oofem::StrainVector::~StrainVector ( )
inline

Destructor.

Definition at line 53 of file strainvector.h.

Member Function Documentation

◆ applyDeviatoricElasticStiffness() [1/2]

void oofem::StrainVector::applyDeviatoricElasticStiffness ( StressVector & stress,
const double EModulus,
const double nu ) const

Applies the elastic stiffness to the deviatoric strain.

Parameters
stressComputed stress.
EModulusElasticity modulus of the material.
nuPoisson's ratio of the material.

Definition at line 402 of file strainvector.C.

References applyDeviatoricElasticStiffness().

Referenced by applyDeviatoricElasticStiffness().

◆ applyDeviatoricElasticStiffness() [2/2]

void oofem::StrainVector::applyDeviatoricElasticStiffness ( StressVector & stress,
const double GModulus ) const

Applies the elastic stiffness to the deviatoric strain.

Parameters
stressComputed stress.
GModulusShear modulus of the material

Definition at line 414 of file strainvector.C.

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

◆ applyElasticStiffness()

void oofem::StrainVector::applyElasticStiffness ( StressVector & stress,
const double EModulus,
const double nu ) const

Applies the elastic stiffness to the strain.

Parameters
stressComputed stress.
EModulusElasticity modulus of the material.
nuPoisson's ratio of the material

Definition at line 359 of file strainvector.C.

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

Referenced by oofem::RankineMat::performPlasticityReturn().

◆ computeDeviatoricVolumetricSplit()

void oofem::StrainVector::computeDeviatoricVolumetricSplit ( StrainVector & answer,
double & vol ) const

Computes split of receiver into deviatoric and volumetric part.

Parameters
answerDeviatoric strain.
volVolumetric strain.

Definition at line 50 of file strainvector.C.

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

◆ computeDeviatoricVolumetricSum()

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

Computes sum of deviatoric and volumetric part.

Parameters
answerTotal strain.
volVolumetric strain.

Definition at line 77 of file strainvector.C.

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

◆ computeMaxPrincipalDir()

void oofem::StrainVector::computeMaxPrincipalDir ( FloatArray & answer) const

Computes the principal direction of the receiver associated with the maximum principal value.

Parameters
answerPrincipal direction.

Definition at line 182 of file strainvector.C.

References oofem::FloatMatrix::at(), computePrincipalValDir(), and oofem::FloatArray::giveSize().

Referenced by oofem::PlaneStress2d::giveCharacteristicSize().

◆ computePrincipalValDir()

void oofem::StrainVector::computePrincipalValDir ( FloatArray & answer,
FloatMatrix & dir ) const
overridevirtual

Computes the principal values and principal directions of the receiver. The principal values are ordered from the largest to the smallest.

Parameters
answerPrincipal values.
dirPrincipal directions (first index refers to component, second index to eigenvalue number).

Implements oofem::StressStrainBaseVector.

Definition at line 199 of file strainvector.C.

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

Referenced by oofem::IsotropicDamageMaterial1::computeEta(), and computeMaxPrincipalDir().

◆ computePrincipalValues()

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

◆ computeStrainNorm()

double oofem::StrainVector::computeStrainNorm ( ) const

Computes the tensorial norm of the strain in engineering notation.

Definition at line 332 of file strainvector.C.

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

◆ computeVolumeChange()

double oofem::StrainVector::computeVolumeChange ( ) const

Computes the change of volume.

Returns
\( \epsilon_v = \epsilon_1 + \epsilon_2 + \epsilon_3 \).

Definition at line 310 of file strainvector.C.

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

◆ giveTranformationMtrx()

void oofem::StrainVector::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 465 of file strainvector.C.

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

◆ printYourself()

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

Prints receiver on stdout, useful for debugging

Reimplemented from oofem::FloatArray.

Definition at line 295 of file strainvector.C.

References oofem::StressStrainBaseVector::mode, StrainVector(), and oofem::FloatArray::values.


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