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.
|
Auxiliary and specialized functions for elements derived from FluidElement. More...
#include <fluid_element_utilities.h>
Public Member Functions | |
Life Cycle | |
FluidElementUtilities ()=delete | |
FluidElementUtilities (FluidElementUtilities const &rOther)=delete | |
Deleted copy constructor. More... | |
~FluidElementUtilities () | |
Destructor. More... | |
Operators | |
FluidElementUtilities & | operator= (FluidElementUtilities const &rOther)=delete |
Deleted assignment operator. More... | |
Static Public Member Functions | |
Operations | |
static void | GetStrainMatrix (const ShapeDerivatives2DType &rDNDX, BoundedMatrix< double, VoigtVector2DSize, 3 *TNumNodes > &rStrainMatrix) |
static void | GetStrainMatrix (const ShapeDerivatives3DType &rDNDX, BoundedMatrix< double, VoigtVector3DSize, 4 *TNumNodes > &rStrainMatrix) |
static void | GetNewtonianConstitutiveMatrix (const double DynamicViscosity, BoundedMatrix< double, VoigtVector2DSize, VoigtVector2DSize > &rConstitutiveMatrix) |
static void | GetNewtonianConstitutiveMatrix (const double DynamicViscosity, BoundedMatrix< double, VoigtVector3DSize, VoigtVector3DSize > &rConstitutiveMatrix) |
static void | VoigtTransformForProduct (const array_1d< double, 3 > &rVector, BoundedMatrix< double, 2, VoigtVector2DSize > &rVoigtMatrix) |
static void | VoigtTransformForProduct (const array_1d< double, 3 > &rVector, BoundedMatrix< double, 3, VoigtVector3DSize > &rVoigtMatrix) |
static void | SetNormalProjectionMatrix (const array_1d< double, 3 > &rUnitNormal, BoundedMatrix< double, 2, 2 > &rNormalProjMatrix) |
static void | SetNormalProjectionMatrix (const array_1d< double, 3 > &rUnitNormal, BoundedMatrix< double, 3, 3 > &rNormalProjMatrix) |
static void | SetTangentialProjectionMatrix (const array_1d< double, 3 > &rUnitNormal, BoundedMatrix< double, 2, 2 > &rTangProjMatrix) |
static void | SetTangentialProjectionMatrix (const array_1d< double, 3 > &rUnitNormal, BoundedMatrix< double, 3, 3 > &rTangProjMatrix) |
static void | DenseSystemSolve (const BoundedMatrix< double, 2, 2 > &rA, const array_1d< double, 2 > &rB, array_1d< double, 2 > &rX) |
static void | DenseSystemSolve (const BoundedMatrix< double, 3, 3 > &rA, const array_1d< double, 3 > &rB, array_1d< double, 3 > &rX) |
Type Definitions | |
using | ShapeDerivatives2DType = typename FluidElementData< 2, TNumNodes, false >::ShapeDerivativesType |
using | ShapeDerivatives3DType = typename FluidElementData< 3, TNumNodes, false >::ShapeDerivativesType |
constexpr static std::size_t | VoigtVector2DSize = FluidElementData<2,TNumNodes,false>::StrainSize |
constexpr static std::size_t | VoigtVector3DSize = FluidElementData<3,TNumNodes,false>::StrainSize |
KRATOS_CLASS_POINTER_DEFINITION (FluidElementUtilities) | |
Pointer definition of FluidElementUtilities. More... | |
Auxiliary and specialized functions for elements derived from FluidElement.
using Kratos::FluidElementUtilities< TNumNodes >::ShapeDerivatives2DType = typename FluidElementData<2,TNumNodes,false>::ShapeDerivativesType |
using Kratos::FluidElementUtilities< TNumNodes >::ShapeDerivatives3DType = typename FluidElementData<3,TNumNodes,false>::ShapeDerivativesType |
|
delete |
|
delete |
Deleted copy constructor.
Kratos::FluidElementUtilities< TNumNodes >::~FluidElementUtilities |
Destructor.
|
static |
Invert a system with 2 unknowns, defined using bounded matrix types.
[in] | rA | the 2x2 system matrix. |
[in] | rB | the right hand side vector. |
[out] | rX | the solution of the system. |
|
static |
Invert a system with 3 unknowns, defined using bounded matrix types.
[in] | rA | the 3x3 system matrix. |
[in] | rB | the right hand side vector. |
[out] | rX | the solution of the system. |
|
static |
Auxiliary function that writes the constitutive matrix (C) for a Newtonian fluid using the given dynamic viscosity (mu). 2D variant.
DynamicViscosity | Dynamic viscosity (mu) for the fluid. |
rConstitutiveMatrix | computed constitutive matrix for the fluid (output). |
|
static |
Auxiliary function that writes the constitutive matrix (C) for a Newtonian fluid using the given dynamic viscosity (mu). 3D variant.
DynamicViscosity | Dynamic viscosity (mu) for the fluid. |
rConstitutiveMatrix | computed constitutive matrix for the fluid (output). |
|
static |
Auxiliary function that writes the strain matrix (B) relating nodal degrees of freedom and the symmetric gradient of velocity. Note that pressure Dofs are considered included in the array of nodal Dofs (and the corresponding rows set to zero). 2D variant.
rDNDX | Shape function gradients evaluated at the current integration point. |
rStrainMatrix | computed strain matrix for the current integration point (output). |
|
static |
Auxiliary function that writes the strain matrix (B) relating nodal degrees of freedom and the symmetric gradient of velocity. Note that pressure Dofs are considered included in the array of nodal Dofs (and the corresponding rows set to zero). 2D variant.
rDNDX | Shape function gradients evaluated at the current integration point. |
rStrainMatrix | computed strain matrix for the current integration point (output). |
Kratos::FluidElementUtilities< TNumNodes >::KRATOS_CLASS_POINTER_DEFINITION | ( | FluidElementUtilities< TNumNodes > | ) |
Pointer definition of FluidElementUtilities.
|
delete |
Deleted assignment operator.
|
static |
This function sets the normal projection matrix as the given unit normal outer product.
rUnitNormal | reference to the unit normal vector |
rNormProjMatrix | reference to the normal projection matrix |
|
static |
This function sets the normal projection matrix as the given unit normal outer product.
rUnitNormal | reference to the unit normal vector |
rNormalProjMatrix | reference to the normal projection matrix |
|
static |
This function sets the tangential projection matrix as the identity matrix minus the given unit normal outer product.
rUnitNormal | reference to the unit normal vector |
rTangProjMatrix | reference to the normal projection matrix |
|
static |
This function sets the tangential projection matrix as the identity matrix minus the given unit normal outer product.
rUnitNormal | reference to the unit normal vector |
rTangProjMatrix | reference to the normal projection matrix |
|
static |
This function transforms a vector n into a matrix P that can be used to compute matrix-vector product A*n for a symmetric matrix A expressed in Voigt notation. If a is the Voigt-notation representation of matrix A, A*n == P*a. This is the 2D variant.
rVector | the vector to transform. |
rVoigtMatrix | the transformed matrix (output). |
|
static |
This function transforms a vector n into a matrix P that can be used to compute matrix-vector product A*n for a symmetric matrix A expressed in Voigt notation. If a is the Voigt-notation representation of matrix A, A*n == P*a. This is the 3D variant.
rVector | the vector to transform. |
rVoigtMatrix | the transformed matrix (output). |
|
staticconstexpr |
|
staticconstexpr |