FEDEM Solver  R8.0
Source code of the dynamics solver
Public Member Functions | Private Attributes | Friends | List of all members
FFaTensor3 Class Reference

#include <FFaTensor3.H>

Public Member Functions

 FFaTensor3 ()
 
 FFaTensor3 (double d)
 
 FFaTensor3 (const float *t)
 
 FFaTensor3 (const double *t)
 
 FFaTensor3 (const FFaTensor3 &t)
 
 FFaTensor3 (const FFaTensor2 &t)
 
 FFaTensor3 (const FFaTensor1 &t)
 
 FFaTensor3 (const FaVec3 &v)
 
 FFaTensor3 (double t11, double t22, double t33, double t12=0.0, double t13=0.0, double t23=0.0)
 
 FFaTensor3 (const FaVec3 &v1, const FaVec3 &v2, const FaVec3 &v3)
 
FFaTensor3operator= (const FFaTensor3 &t)
 
FFaTensor3operator= (const FFaTensor1 &t)
 
FFaTensor3operator= (const FFaTensor2 &t)
 
FFaTensor3operator+= (const FFaTensor3 &t)
 
FFaTensor3operator-= (const FFaTensor3 &t)
 
FFaTensor3operator*= (double d)
 
FFaTensor3operator/= (double d)
 
const double * getPt () const
 
double * getPt ()
 
const double & operator[] (int i) const
 
double & operator[] (int i)
 
FFaTensor3rotate (const FaMat33 &rotMx)
 
FFaTensor3rotate (const FaMat34 &rotMx)
 
FFaTensor3makeInertia (const FaVec3 &v1, const FaVec3 &v2, const FaVec3 &v3)
 
FFaTensor3translateInertia (const FaVec3 &x, double mass)
 
double vonMises () const
 
double maxShear () const
 
void maxShear (FaVec3 &v) const
 
double maxPrinsipal (bool absMax=false) const
 
double middlePrinsipal () const
 
double minPrinsipal () const
 
void prinsipalValues (double &max, double &middle, double &min) const
 
void prinsipalValues (FaVec3 &values, FaMat33 &rotation) const
 

Private Attributes

double myT [6]
 

Friends

FFaTensor3 operator- (const FFaTensor3 &)
 
FFaTensor3 operator+ (const FFaTensor3 &, const FFaTensor3 &)
 
FFaTensor3 operator- (const FFaTensor3 &, const FFaTensor3 &)
 
FFaTensor3 operator* (const FFaTensor3 &, double)
 
FFaTensor3 operator* (double, const FFaTensor3 &)
 
FFaTensor3 operator/ (const FFaTensor3 &, double)
 
bool operator== (const FFaTensor3 &, const FFaTensor3 &)
 
bool operator!= (const FFaTensor3 &, const FFaTensor3 &)
 
FFaTensor3 operator* (const FFaTensor3 &, const FaMat33 &)
 
FFaTensor3 operator* (const FFaTensor3 &, const FaMat34 &)
 
FFaTensor3 operator* (const FaMat33 &, const FFaTensor3 &)
 
FFaTensor3 operator* (const FaMat34 &, const FFaTensor3 &)
 
std::ostream & operator<< (std::ostream &, const FFaTensor3 &)
 
std::istream & operator>> (std::istream &, FFaTensor3 &)
 

Detailed Description

Class to represent a 3D symmetrical tensor. Tensor layout: T = {t11, t22, t33, t12, t13, t23}

Constructor & Destructor Documentation

◆ FFaTensor3() [1/10]

FFaTensor3::FFaTensor3 ( )
inline

◆ FFaTensor3() [2/10]

FFaTensor3::FFaTensor3 ( double  d)
inline

◆ FFaTensor3() [3/10]

FFaTensor3::FFaTensor3 ( const float *  t)
inline

◆ FFaTensor3() [4/10]

FFaTensor3::FFaTensor3 ( const double *  t)
inline

◆ FFaTensor3() [5/10]

FFaTensor3::FFaTensor3 ( const FFaTensor3 t)
inline

◆ FFaTensor3() [6/10]

FFaTensor3::FFaTensor3 ( const FFaTensor2 t)

◆ FFaTensor3() [7/10]

FFaTensor3::FFaTensor3 ( const FFaTensor1 t)

◆ FFaTensor3() [8/10]

FFaTensor3::FFaTensor3 ( const FaVec3 v)

◆ FFaTensor3() [9/10]

FFaTensor3::FFaTensor3 ( double  t11,
double  t22,
double  t33,
double  t12 = 0.0,
double  t13 = 0.0,
double  t23 = 0.0 
)
inline

◆ FFaTensor3() [10/10]

FFaTensor3::FFaTensor3 ( const FaVec3 v1,
const FaVec3 v2,
const FaVec3 v3 
)
inline

Member Function Documentation

◆ getPt() [1/2]

double* FFaTensor3::getPt ( )
inline

◆ getPt() [2/2]

const double* FFaTensor3::getPt ( ) const
inline

◆ makeInertia()

FFaTensor3 & FFaTensor3::makeInertia ( const FaVec3 v1,
const FaVec3 v2,
const FaVec3 v3 
)

Create the inertia tensor of a tetrahedron spanned by the origin (0,0,0) and the given three points v1, v2 and v3.

◆ maxPrinsipal()

double FFaTensor3::maxPrinsipal ( bool  absMax = false) const

Get the (absolute) max principal of the tensor. If it can't be found, HUGE_VAL will be returned.

◆ maxShear() [1/2]

double FFaTensor3::maxShear ( ) const

Get the max shear value of the tensor. If it can't be found, HUGE_VAL will be returned.

◆ maxShear() [2/2]

void FFaTensor3::maxShear ( FaVec3 v) const

Get the max shear of the tensor as a directed vector. If it can't be found, a 0-vector will be returned.

◆ middlePrinsipal()

double FFaTensor3::middlePrinsipal ( ) const

Get the middle principal of the tensor. If it can't be found, HUGE_VAL will be returned.

◆ minPrinsipal()

double FFaTensor3::minPrinsipal ( ) const

Get the min principal of the tensor. If it can't be found, HUGE_VAL will be returned.

◆ operator*=()

FFaTensor3& FFaTensor3::operator*= ( double  d)
inline

◆ operator+=()

FFaTensor3& FFaTensor3::operator+= ( const FFaTensor3 t)
inline

◆ operator-=()

FFaTensor3& FFaTensor3::operator-= ( const FFaTensor3 t)
inline

◆ operator/=()

FFaTensor3& FFaTensor3::operator/= ( double  d)
inline

◆ operator=() [1/3]

FFaTensor3 & FFaTensor3::operator= ( const FFaTensor1 t)

◆ operator=() [2/3]

FFaTensor3 & FFaTensor3::operator= ( const FFaTensor2 t)

◆ operator=() [3/3]

FFaTensor3 & FFaTensor3::operator= ( const FFaTensor3 t)

◆ operator[]() [1/2]

double & FFaTensor3::operator[] ( int  i)
inline

◆ operator[]() [2/2]

const double & FFaTensor3::operator[] ( int  i) const
inline

◆ prinsipalValues() [1/2]

void FFaTensor3::prinsipalValues ( double &  max,
double &  middle,
double &  min 
) const

Get the principal values of the tensor. If they can't be found, HUGE_VAL will be returned.

◆ prinsipalValues() [2/2]

void FFaTensor3::prinsipalValues ( FaVec3 values,
FaMat33 rotation 
) const

Get a valid rotation matrix corresponding to the principal axes of the tensor. The associated principal values are also found in the corresponding order. If the matrix can't be found, the identity will be returned, along with a vector of HUGE_VAL.

◆ rotate() [1/2]

FFaTensor3 & FFaTensor3::rotate ( const FaMat33 rotMx)

Rotate the tensor to the given CS.

◆ rotate() [2/2]

FFaTensor3 & FFaTensor3::rotate ( const FaMat34 rotMx)

◆ translateInertia()

FFaTensor3 & FFaTensor3::translateInertia ( const FaVec3 x,
double  mass 
)

Translate an inertia tensor according to the parallel-axis theorem.

◆ vonMises()

double FFaTensor3::vonMises ( ) const

Get the von Mises value of the tensor.

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const FFaTensor3 a,
const FFaTensor3 b 
)
friend

◆ operator* [1/6]

FFaTensor3 operator* ( const FaMat33 m,
const FFaTensor3 a 
)
friend

◆ operator* [2/6]

FFaTensor3 operator* ( const FaMat34 m,
const FFaTensor3 a 
)
friend

◆ operator* [3/6]

FFaTensor3 operator* ( const FFaTensor3 a,
const FaMat33 m 
)
friend

◆ operator* [4/6]

FFaTensor3 operator* ( const FFaTensor3 a,
const FaMat34 m 
)
friend

◆ operator* [5/6]

FFaTensor3 operator* ( const FFaTensor3 a,
double  d 
)
friend

◆ operator* [6/6]

FFaTensor3 operator* ( double  d,
const FFaTensor3 a 
)
friend

◆ operator+

FFaTensor3 operator+ ( const FFaTensor3 a,
const FFaTensor3 b 
)
friend

◆ operator- [1/2]

FFaTensor3 operator- ( const FFaTensor3 t)
friend

Global operators.

◆ operator- [2/2]

FFaTensor3 operator- ( const FFaTensor3 a,
const FFaTensor3 b 
)
friend

◆ operator/

FFaTensor3 operator/ ( const FFaTensor3 a,
double  d 
)
friend

◆ operator<<

std::ostream& operator<< ( std::ostream &  s,
const FFaTensor3 t 
)
friend

◆ operator==

bool operator== ( const FFaTensor3 a,
const FFaTensor3 b 
)
friend

◆ operator>>

std::istream& operator>> ( std::istream &  s,
FFaTensor3 t 
)
friend

Member Data Documentation

◆ myT

double FFaTensor3::myT[6]
private

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