Description

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 (ChMatrixConstRef K, const ChMatrix33<> &R, const int nblocks, ChMatrixRef 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 (ChMatrixConstRef K, const ChMatrix33<> &R, const int nblocks, ChMatrixRef KC)
 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. More...
 
static void ComputeCK (ChMatrixConstRef K, const std::vector< ChMatrix33<> * > &R, const int nblocks, ChMatrixRef 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 (generic version with different rotations) More...
 
static void ComputeKCt (ChMatrixConstRef K, const std::vector< ChMatrix33<> * > &R, const int nblocks, ChMatrixRef KC)
 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) More...
 

Member Function Documentation

◆ ComputeCK() [1/2]

void chrono::fea::ChMatrixCorotation::ComputeCK ( ChMatrixConstRef  K,
const ChMatrix33<> &  R,
const int  nblocks,
ChMatrixRef  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.

Parameters
Kmatrix to pre-corotate
R3x3 rotation matrix
nblocksnumber of rotation blocks
CKresult matrix: C*K

◆ ComputeCK() [2/2]

void chrono::fea::ChMatrixCorotation::ComputeCK ( ChMatrixConstRef  K,
const std::vector< ChMatrix33<> * > &  R,
const int  nblocks,
ChMatrixRef  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 (generic version with different rotations)

Parameters
Kmatrix to pre-corotate
R3x3 rotation matrices
nblocksnumber of rotation blocks
CKresult matrix: C*K

◆ ComputeKCt() [1/2]

void chrono::fea::ChMatrixCorotation::ComputeKCt ( ChMatrixConstRef  K,
const ChMatrix33<> &  R,
const int  nblocks,
ChMatrixRef  KC 
)
static

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.

Parameters
Kmatrix to post-corotate
R3x3 rotation matrix (will be used transposed)
nblocksnumber of rotation blocks
KCresult matrix: C*K

◆ ComputeKCt() [2/2]

void chrono::fea::ChMatrixCorotation::ComputeKCt ( ChMatrixConstRef  K,
const std::vector< ChMatrix33<> * > &  R,
const int  nblocks,
ChMatrixRef  KC 
)
static

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)

Parameters
Kmatrix to post-corotate
R3x3 rotation matrices (used transposed)
nblocksnumber of rotation blocks
KCresult matrix: C*K

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/fea/ChMatrixCorotation.h
  • /builds/uwsbel/chrono/src/chrono/fea/ChMatrixCorotation.cpp