xc
|
EICR Element Independent CoRotational formulation. More...
#include <ASDEICR.h>
Public Types | |
typedef std::size_t | size_t |
typedef ASDVector3< double > | Vector3Type |
typedef std::vector< Vector3Type > | NodeContainerType |
typedef Vector | VectorType |
typedef Matrix | MatrixType |
typedef ASDQuaternion< double > | QuaternionType |
Static Public Member Functions | |
template<class TVec , class TMat > | |
static void | Spin (const TVec &V, TMat &S) |
Computes the Spin of the input vector V, and saves the result into the output matrix S. More... | |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, size_t row_index) |
Computes the Spin of the input vector V, and saves the result into the output matrix S, at the specified row index. More... | |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, size_t vector_index, size_t matrix_row_index) |
Computes the Spin of the input vector V, from the specified index, and saves the result into the output matrix S, at the specified row index. More... | |
template<class TVec , class TMat > | |
static void | Spin (const TVec &V, TMat &S, double mult) |
Computes the Spin of the input vector V, and saves the result into the output matrix S. More... | |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, double mult, size_t row_index) |
Computes the Spin of the input vector V, and saves the result into the output matrix S, at the specified row index. More... | |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, double mult, size_t vector_index, size_t matrix_row_index) |
Computes the Spin of the input vector V, from the specified index, and saves the result into the output matrix S, at the specified row index. More... | |
static void | SetZero (size_t n, size_t m, MatrixType &I) |
Sets the input matrix to the zero matrix of requested size. More... | |
static void | SetIdentity (size_t n, MatrixType &I, double value=1.0) |
Sets the input matrix to the identity of requested size. More... | |
static void | GetBlock (const VectorType &A, size_t begin, size_t end, VectorType &B) |
Copies the block [begin:end[ from A to B. More... | |
static void | GetBlock (const MatrixType &A, size_t begin, size_t end, MatrixType &B) |
Copies the block [begin:end[ from A to B. More... | |
static void | SetBlock (MatrixType &A, size_t begin, size_t end, const MatrixType &B) |
Copies the block [begin:end[ from B to A. More... | |
static void | OuterProd (const VectorType &A, const VectorType &B, MatrixType &C) |
computes the outer product A x B, in C. More... | |
static void | Compute_Pt (size_t num_nodes, MatrixType &P) |
Computes the Translational Projector Matrix. More... | |
static void | Compute_S (const NodeContainerType &nodes, MatrixType &S) |
Computes the Spin Lever Matrix. More... | |
static void | Compute_H (const VectorType &displacements, MatrixType &H) |
Computes the Axial Vector Jacobian. More... | |
static void | Compute_L (const VectorType &displacements, const VectorType &forces, const MatrixType &H, MatrixType &L) |
Computes the Spin derivative of (Axial Vector Jacobian)^T contracted with the nodal moment vector. More... | |
EICR Element Independent CoRotational formulation.
E.I.C.R. is a utility class containing static methods related to the Element Independent Corotational Formulation. This class implements methods that do not depend on the element type, and so they can be used by any implementation of a corotational coordinate transformation.
|
inlinestatic |
Computes the Axial Vector Jacobian.
The output is a square matrix of size displacements.size() (which is num_nodes * 6). Note that 6 Degrees Of Freedom are assumed for each node.
displacements | the vector of nodal displacements and rotations in the local corotational coordinate system. (assumed size = num_nodes*6) |
|
inlinestatic |
Computes the Spin derivative of (Axial Vector Jacobian)^T contracted with the nodal moment vector.
The output is a square matrix of size displacements.size() (which is num_nodes * 6). Note that 6 Degrees Of Freedom are assumed for each node.
displacements | the vector of nodal displacements and rotations in the local corotational coordinate system. (assumed size = num_nodes*6) |
forces | the vector of nodal forces and moments in the local corotational coordinate system. (assumed size = num_nodes*6) |
H | the Axial Vector Jacobian Matrix computed with a previous call to EICR::Compute_H(displacements) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Copies the block [begin:end[ from A to B.
B size must be end-begin. Note: no size check is made!
A | the first vector |
begin | the first index |
end | the last+1 index |
B | the second vector |
|
inlinestatic |
Copies the block [begin:end[ from A to B.
B size must be end-begin. Note: no size check is made!
A | the first matrix |
begin | the first index |
end | the last+1 index |
B | the second matrix |
|
static |
computes the outer product A x B, in C.
Note: no size check is made!
A | the first vector |
B | the second vector |
C | the output matrix |
|
inlinestatic |
Copies the block [begin:end[ from B to A.
B size must be end-begin. Note: no size check is made!
A | the first vector |
begin | the first index |
end | the last+1 index |
B | the second vector |
|
inlinestatic |
Sets the input matrix to the identity of requested size.
Resize is done if necessary
n | the number of rows and columns |
I | the input/output matrix |
value | (optional, default = 1) the value on the diagonal terms |
|
static |
Sets the input matrix to the zero matrix of requested size.
Resize is done if necessary
n | the number of rows |
n | the number of columns |
I | the input/output matrix |
|
inlinestatic |
Computes the Spin of the input vector V, and saves the result into the output matrix S.
Note: no check is made on the size of the input-output arguments.
V | the input vector (assumed size: >= 3) |
S | the output matrix (assumed size: >= 3x3) |
|
inlinestatic |
Computes the Spin of the input vector V, and saves the result into the output matrix S.
This version uses a multiplier for the output values. Note: no check is made on the size of the input-output arguments.
V | the input vector (assumed size: >= 3) |
S | the output matrix (assumed size: >= 3x3) |
mult | the multiplier for the output values |
|
inlinestatic |
Computes the Spin of the input vector V, and saves the result into the output matrix S, at the specified row index.
Note: no check is made on the size of the input-output arguments.
V | the input vector (assumed size: >= 3) |
S | the output matrix (assumed size: >= 3x3) |
row_index | the index of the first row in the output matrix where the spin has to be saved |
|
inlinestatic |
Computes the Spin of the input vector V, from the specified index, and saves the result into the output matrix S, at the specified row index.
Note: no check is made on the size of the input-output arguments.
V | the input vector (assumed size: >= 3) |
S | the output matrix (assumed size: >= 3x3) |
vector_index | the index of the first component of the input vector to be used to compute the spin |
row_index | the index of the first row in the output matrix where the spin has to be saved |
|
inlinestatic |
Computes the Spin of the input vector V, and saves the result into the output matrix S, at the specified row index.
This version uses a multiplier for the output values. Note: no check is made on the size of the input-output arguments.
V | the input vector (assumed size: >= 3) |
S | the output matrix (assumed size: >= 3x3) |
mult | the multiplier for the output values |
row_index | the index of the first row in the output matrix where the spin has to be saved |
|
inlinestatic |
Computes the Spin of the input vector V, from the specified index, and saves the result into the output matrix S, at the specified row index.
This version uses a multiplier for the output values. Note: no check is made on the size of the input-output arguments.
V | the input vector (assumed size: >= 3) |
S | the output matrix (assumed size: >= 3x3) |
mult | the multiplier for the output values |
vector_index | the index of the first component of the input vector to be used to compute the spin |
row_index | the index of the first row in the output matrix where the spin has to be saved |