KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
EICR Element Independent CoRotational formulation. More...
#include <EICR.hpp>
Public Types | |
typedef double | RealType |
typedef BoundedMatrix< RealType, 3, 3 > | TransformationMatrixType |
typedef array_1d< RealType, 3 > | Vector3Type |
typedef std::vector< Vector3Type > | Vector3ContainerType |
typedef Vector | VectorType |
typedef Matrix | MatrixType |
typedef Quaternion< RealType > | QuaternionType |
typedef SolidMechanicsMathUtilities< double > | MathUtilsType |
typedef double | RealType |
typedef BoundedMatrix< RealType, 3, 3 > | BoundedMatrixType3x3 |
typedef array_1d< RealType, 3 > | Vector3Type |
typedef std::vector< Vector3Type > | Vector3ContainerType |
typedef Vector | VectorType |
typedef Matrix | MatrixType |
typedef std::size_t | SizeType |
Static Public Member Functions | |
template<class TVec , class TMat > | |
static void | Spin (const TVec &V, TMat &S) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, size_t row_index) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, size_t vector_index, size_t matrix_row_index) |
template<class TVec , class TMat > | |
static void | Spin (const TVec &V, TMat &S, double mult) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &V, TMat &S, double mult, size_t row_index) |
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) |
static MatrixType | Compute_Pt (size_t num_nodes) |
static MatrixType | Compute_S (const Vector3ContainerType &nodes) |
static MatrixType | Compute_H (const VectorType &displacements) |
static MatrixType | Compute_L (const VectorType &displacements, const VectorType &forces, const MatrixType &H) |
template<class TVec , class TMat > | |
static void | Spin (const TVec &rV, TMat &rS) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &rV, TMat &rS, const SizeType RowIndex) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &rV, TMat &rS, const SizeType VectorIndex, const SizeType MatrixRowIndex) |
template<class TVec , class TMat > | |
static void | Spin (const TVec &rV, TMat &rS, double Multiplier) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &rV, TMat &rS, const double Multiplier, const SizeType RowIndex) |
template<class TVec , class TMat > | |
static void | Spin_AtRow (const TVec &rV, TMat &rS, const double Multiplier, const SizeType VectorIndex, const SizeType MatrixRowIndex) |
static MatrixType | Compute_Pt (const SizeType NumNodes) |
static MatrixType | Compute_S (const Vector3ContainerType &rNodes) |
static MatrixType | Compute_H (const VectorType &rDisplacements) |
static MatrixType | Compute_L (const VectorType &rDisplacements, const VectorType &rForces, const MatrixType &rH) |
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.
typedef BoundedMatrix<RealType, 3, 3> Kratos::EICR::BoundedMatrixType3x3 |
typedef Matrix Kratos::EICR::MatrixType |
typedef Matrix Kratos::EICR::MatrixType |
typedef double Kratos::EICR::RealType |
typedef double Kratos::EICR::RealType |
typedef std::size_t Kratos::EICR::SizeType |
typedef BoundedMatrix<RealType, 3, 3> Kratos::EICR::TransformationMatrixType |
typedef std::vector<Vector3Type> Kratos::EICR::Vector3ContainerType |
typedef std::vector<Vector3Type> Kratos::EICR::Vector3ContainerType |
typedef array_1d<RealType, 3> Kratos::EICR::Vector3Type |
typedef array_1d<RealType, 3> Kratos::EICR::Vector3Type |
typedef Vector Kratos::EICR::VectorType |
typedef Vector Kratos::EICR::VectorType |
|
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 Axial Vector Jacobian. The output is a square matrix of size rDisplacements.size() (which is num_nodes * 6). Note that 6 Degrees Of Freedom are assumed for each node.
rDisplacements | 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 |
Computes the Spin derivative of (Axial Vector Jacobian)^T contracted with the nodal moment vector. The output is a square matrix of size rDisplacements.size() (which is num_nodes * 6). Note that 6 Degrees Of Freedom are assumed for each node.
rDisplacements | the vector of nodal displacements and rotations in the local corotational coordinate system. (assumed size = num_nodes*6) |
rForces | the vector of nodal forces and moments in the local corotational coordinate system. (assumed size = num_nodes*6) |
rH | the Axial Vector Jacobian Matrix computed with a previous call to EICR::Compute_H(rDisplacements) |
|
inlinestatic |
Computes the Translational Projector Matrix. The output is a square matrix of size NumNodes*6. Note that 6 Degrees Of Freedom are assumed for each node.
NumNodes | the number of nodes |
|
inlinestatic |
Computes the Translational Projector Matrix. The output is a square matrix of size num_nodes*6. Note that 6 Degrees Of Freedom are assumed for each node.
num_nodes | the number of nodes |
|
inlinestatic |
Computes the Spin Lever Matrix. The output is a rectangular matrix of 3 columns and nodes.size()*6 rows. Note that 6 Degrees Of Freedom are assumed for each node.
nodes | the input nodes |
|
inlinestatic |
Computes the Spin Lever Matrix. The output is a rectangular matrix of 3 columns and rNodes.size()*6 rows. Note that 6 Degrees Of Freedom are assumed for each node.
rNodes | the input nodes |
|
inlinestatic |
Computes the Spin of the input vector rV, and saves the result into the output matrix rS. Note: no check is made on the size of the input-output arguments.
rV | the input vector (assumed size: >= 3) |
rS | the output matrix (assumed size: >= 3x3) |
|
inlinestatic |
Computes the Spin of the input vector rV, and saves the result into the output matrix rS. This version uses a multiplier for the output values. Note: no check is made on the size of the input-output arguments.
rV | the input vector (assumed size: >= 3) |
rS | the output matrix (assumed size: >= 3x3) |
Multiplier | the multiplier for the output values |
|
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 rV, and saves the result into the output matrix rS, 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.
rV | the input vector (assumed size: >= 3) |
rS | the output matrix (assumed size: >= 3x3) |
Multiplier | the multiplier for the output values |
RowIndex | 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 rV, from the specified index, and saves the result into the output matrix rS, 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.
rV | the input vector (assumed size: >= 3) |
rS | the output matrix (assumed size: >= 3x3) |
Multiplier | the multiplier for the output values |
VectorIndex | the index of the first component of the input vector to be used to compute the spin |
MatrixRowIndex | 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 rV, and saves the result into the output matrix rS, at the specified row index. Note: no check is made on the size of the input-output arguments.
rV | the input vector (assumed size: >= 3) |
rS | the output matrix (assumed size: >= 3x3) |
RowIndex | 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 rV, from the specified index, and saves the result into the output matrix rS, at the specified row index. Note: no check is made on the size of the input-output arguments.
rV | the input vector (assumed size: >= 3) |
rS | the output matrix (assumed size: >= 3x3) |
VectorIndex | the index of the first component of the input vector to be used to compute the spin |
MatrixRowIndex | 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 |
|
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 |