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

Description

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

Perform a corotation (warping) of a K matrix by pre- or post- multiplying it with a C matrix that has 3x3 rotation matrices R as diagonal blocks, so that C*K means: [R ] [ ] [ R ] *[ K ] [ R] [ ].

This is often used in FEA codes to rotate a K local stiffness matrix and to obtain a global stiffness matrix. This class provides methods to do either C*K or also C*K*C' , without explicitly building C, for improved performance.

#include <ChMatrixCorotation.h>

Static Public Member Functions

static void ComputeCK (const ChMatrix< Real > &K, const ChMatrix33< Real > &R, const int nblocks, ChMatrix< Real > &CK)
 Perform a corotation (warping) of a K matrix by pre-multiplying it with a C matrix; C has 3x3 rotation matrices R as diagonal blocks. More...
 
static void ComputeKCt (const ChMatrix< Real > &K, const ChMatrix33< Real > &R, const int nblocks, ChMatrix< Real > &KC)
 result matrix: C*K More...
 
static void ComputeCK (const ChMatrix< Real > &K, const std::vector< ChMatrix33< Real > * > &R, const int nblocks, ChMatrix< Real > &CK)
 result matrix: C*K More...
 
static void ComputeKCt (const ChMatrix< Real > &K, const std::vector< ChMatrix33< Real > * > &R, const int nblocks, ChMatrix< Real > &KC)
 result matrix: C*K More...
 

Member Function Documentation

template<class Real >
void chrono::fea::ChMatrixCorotation< Real >::ComputeCK ( const ChMatrix< Real > &  K,
const ChMatrix33< Real > &  R,
const int  nblocks,
ChMatrix< Real > &  CK 
)
static

Perform a corotation (warping) of a K matrix by pre-multiplying it with a C matrix; C has 3x3 rotation matrices R as diagonal blocks.

result matrix: C*K

Parameters
Rmatrix to pre-corotate
nblocks3x3 rotation matrix
CKnumber of rotation blocks
template<class Real >
void chrono::fea::ChMatrixCorotation< Real >::ComputeCK ( const ChMatrix< Real > &  K,
const std::vector< ChMatrix33< Real > * > &  R,
const int  nblocks,
ChMatrix< Real > &  CK 
)
static

result matrix: C*K

generic version

Perform a corotation (warping) of a K matrix by pre-multiplying it with a C matrix; C has 3x3 rotation matrices R as diagonal blocks (generic version with different rotations)

result matrix: C*K

Parameters
Rmatrix to pre-corotate
nblocks3x3 rotation matrices
CKnumber of rotation blocks
template<class Real >
void chrono::fea::ChMatrixCorotation< Real >::ComputeKCt ( const ChMatrix< Real > &  K,
const ChMatrix33< Real > &  R,
const int  nblocks,
ChMatrix< Real > &  KC 
)
static

result matrix: C*K

Perform a corotation (warping) of a K matrix by post-multiplying it with a transposed C matrix; C has 3x3 rotation matrices R as diagonal blocks.

Perform a corotation (warping) of a K matrix by post-multiplying it with a transposed C matrix; C has 3x3 rotation matrices R as diagonal blocks

result matrix: C*K

Parameters
Rmatrix to post-corotate
nblocks3x3 rotation matrix (will be used transposed)
KCnumber of rotation blocks
template<class Real >
void chrono::fea::ChMatrixCorotation< Real >::ComputeKCt ( const ChMatrix< Real > &  K,
const std::vector< ChMatrix33< Real > * > &  R,
const int  nblocks,
ChMatrix< Real > &  KC 
)
static

result matrix: C*K

generic version

Perform a corotation (warping) of a K matrix by post-multiplying it with a transposed C matrix; C has 3x3 rotation matrices R as diagonal blocks (generic version with different rotations)

result matrix: C*K

Parameters
Rmatrix to post-corotate
nblocks3x3 rotation matrices (used transposed)
KCnumber of rotation blocks