ESyS-Particle  2.3.4
Matrix3 Class Reference

3x3 Matrix More...

#include <Matrix3.h>

Public Member Functions

MATRIX3_INLINE Matrix3 ()
 
MATRIX3_INLINE Matrix3 (const Vec3 &, const Vec3 &, const Vec3 &)
 
MATRIX3_INLINE Matrix3 (const double[3][3])
 
MATRIX3_INLINE Matrix3 (const Matrix3 &)
 
virtual MATRIX3_INLINE ~Matrix3 ()
 
MATRIX3_INLINE double det ()
 
Vec3 solve (const Vec3 &) const
 
Vec3 solve_homogeneous () const
 
void invert ()
 in-situ inversion More...
 
MATRIX3_INLINE Matrix3 inv ()
 return inverse; More...
 
MATRIX3_INLINE void transpose ()
 transpose in situ More...
 
MATRIX3_INLINE Matrix3 trans () const
 return transposed More...
 
MATRIX3_INLINE Vec3 operator* (const Vec3 &) const
 
MATRIX3_INLINE Matrix3 operator* (double) const
 
MATRIX3_INLINE Matrix3 operator/ (double) const
 
MATRIX3_INLINE Matrix3 operator* (const Matrix3 &) const
 
MATRIX3_INLINE Matrix3operator+= (const Matrix3 &)
 
MATRIX3_INLINE Matrix3 operator+ (const Matrix3 &) const
 
MATRIX3_INLINE Matrix3 operator- (const Matrix3 &) const
 
MATRIX3_INLINE bool operator== (const Matrix3 &) const
 
MATRIX3_INLINE Matrix3operator= (const Matrix3 &)
 
MATRIX3_INLINE double trace () const
 
MATRIX3_INLINE double norm () const
 
MATRIX3_INLINE double operator() (int i, int j) const
 
MATRIX3_INLINE double & operator() (int i, int j)
 
void eigen (Vec3 &, Vec3 &, Vec3 &, double &, double &, double &)
 

Static Public Member Functions

static MATRIX3_INLINE Matrix3 Unit ()
 eigenvectors, eigenvalues More...
 

Private Attributes

double m [3][3]
 

Friends

MATRIX3_INLINE friend Matrix3 operator* (double, const Matrix3 &)
 generate matrix from vector More...
 
MATRIX3_INLINE friend Matrix3 star (const Vec3 &)
 generate unit matrix More...
 
MATRIX3_INLINE friend ostream & operator<< (ostream &, const Matrix3 &)
 

Detailed Description

3x3 Matrix

Author
Steffen Abe $Revision$ $Date$

Constructor & Destructor Documentation

◆ Matrix3() [1/4]

MATRIX3_INLINE Matrix3::Matrix3 ( )

References m.

◆ Matrix3() [2/4]

MATRIX3_INLINE Matrix3::Matrix3 ( const Vec3 V1,
const Vec3 V2,
const Vec3 V3 
)

References Vec3::data, and m.

◆ Matrix3() [3/4]

MATRIX3_INLINE Matrix3::Matrix3 ( const double  a[3][3])

References m.

◆ Matrix3() [4/4]

MATRIX3_INLINE Matrix3::Matrix3 ( const Matrix3 rhs)

References m.

◆ ~Matrix3()

MATRIX3_INLINE Matrix3::~Matrix3 ( )
virtual

Member Function Documentation

◆ det()

MATRIX3_INLINE double Matrix3::det ( )

Determinant

References m.

Referenced by eigen().

Here is the caller graph for this function:

◆ eigen()

void Matrix3::eigen ( Vec3 v1,
Vec3 v2,
Vec3 v3,
double &  e1,
double &  e2,
double &  e3 
)

calculate eigenvectors & eigenvalues

Returns
v1 eigenvector with largest eigenvalue
v2 eigenvector with middle eigenvalue
v3 eigenvector with smalles eigenvalue
e1 largest eigenvalue
e2 middle eigenvalue
e3 smalles eigenvalue

References cross(), det(), CubicEquation::getRealRoots(), esys::lsm::bpu::iter(), m, and Unit().

Referenced by PointCloud::getFitPlane().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ inv()

MATRIX3_INLINE Matrix3 Matrix3::inv ( )

return inverse;

References invert().

Referenced by Triangle::moveNode(), and Triangle::Triangle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ invert()

void Matrix3::invert ( )

in-situ inversion

References m.

Referenced by inv(), and Graph::printCrossSection().

Here is the caller graph for this function:

◆ norm()

MATRIX3_INLINE double Matrix3::norm ( ) const

calculate the euclidian norm of a matrix

References m.

◆ operator()() [1/2]

MATRIX3_INLINE double& Matrix3::operator() ( int  i,
int  j 
)
inline

References m.

◆ operator()() [2/2]

MATRIX3_INLINE double Matrix3::operator() ( int  i,
int  j 
) const
inline

References m.

◆ operator*() [1/3]

MATRIX3_INLINE Matrix3 Matrix3::operator* ( const Matrix3 rhs) const

References m.

◆ operator*() [2/3]

MATRIX3_INLINE Vec3 Matrix3::operator* ( const Vec3 V) const

References Vec3::data, and m.

◆ operator*() [3/3]

MATRIX3_INLINE Matrix3 Matrix3::operator* ( double  d) const

References m.

◆ operator+()

MATRIX3_INLINE Matrix3 Matrix3::operator+ ( const Matrix3 rhs) const

add two matrices

References m.

◆ operator+=()

MATRIX3_INLINE Matrix3 & Matrix3::operator+= ( const Matrix3 rhs)

References m.

◆ operator-()

MATRIX3_INLINE Matrix3 Matrix3::operator- ( const Matrix3 rhs) const

subtract two matrices

References m.

◆ operator/()

MATRIX3_INLINE Matrix3 Matrix3::operator/ ( double  d) const

References m.

◆ operator=()

MATRIX3_INLINE Matrix3 & Matrix3::operator= ( const Matrix3 other)

References m.

◆ operator==()

MATRIX3_INLINE bool Matrix3::operator== ( const Matrix3 other) const

References m.

◆ solve()

Vec3 Matrix3::solve ( const Vec3 rhs) const

References Vec3::data, and m.

Referenced by DataExtractor::StrainToTensorData().

Here is the caller graph for this function:

◆ solve_homogeneous()

Vec3 Matrix3::solve_homogeneous ( ) const

Solve the homogeneous system Mx=(0,0,0). It is assumed that rank(M)=2. A unit vector is returned;

References m, Vec3::norm(), and Vec3::unit().

Here is the call graph for this function:

◆ trace()

MATRIX3_INLINE double Matrix3::trace ( ) const

calculate the trace of a matrix

References m.

Referenced by CParticle::sigma_d().

Here is the caller graph for this function:

◆ trans()

MATRIX3_INLINE Matrix3 Matrix3::trans ( ) const

return transposed

References m.

Referenced by CRotBondedInteraction::calcForces(), CRotThermBondedInteraction::calcForces(), and DataExtractor::StrainToTensorData().

Here is the caller graph for this function:

◆ transpose()

MATRIX3_INLINE void Matrix3::transpose ( )

transpose in situ

References m.

◆ Unit()

MATRIX3_INLINE Matrix3 Matrix3::Unit ( )
static

eigenvectors, eigenvalues

References m.

Referenced by eigen(), and CParticle::sigma_d().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator*

MATRIX3_INLINE friend Matrix3 operator* ( double  d,
const Matrix3 M 
)
friend

generate matrix from vector

scalar * matrix

◆ operator<<

MATRIX3_INLINE friend ostream& operator<< ( ostream &  ,
const Matrix3  
)
friend

◆ star

MATRIX3_INLINE friend Matrix3 star ( const Vec3 V)
friend

generate unit matrix

Member Data Documentation

◆ m


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