v0.14.0 |
structure grouping operators and data used for calculation of mass (convective) element More...
#include <users_modules/basic_finite_elements/src/ConvectiveMassElement.hpp>
Classes | |
struct | BlockData |
data for calculation inertia forces More... | |
struct | CommonData |
common data used by volume elements More... | |
struct | CommonFunctions |
struct | MatShellCtx |
struct | MyVolumeFE |
definition of volume element More... | |
struct | OpEnergy |
struct | OpEshelbyDynamicMaterialMomentumJacobian |
struct | OpEshelbyDynamicMaterialMomentumLhs_dv |
struct | OpEshelbyDynamicMaterialMomentumLhs_dX |
struct | OpEshelbyDynamicMaterialMomentumLhs_dx |
struct | OpEshelbyDynamicMaterialMomentumRhs |
struct | OpGetCommonDataAtGaussPts |
struct | OpGetDataAtGaussPts |
struct | OpMassJacobian |
struct | OpMassLhs_dM_dv |
struct | OpMassLhs_dM_dX |
struct | OpMassLhs_dM_dx |
struct | OpMassRhs |
struct | OpVelocityJacobian |
struct | OpVelocityLhs_dV_dv |
struct | OpVelocityLhs_dV_dx |
struct | OpVelocityLhs_dV_dX |
struct | OpVelocityRhs |
struct | PCShellCtx |
struct | ShellResidualElement |
struct | UpdateAndControl |
Set fields DOT_. More... | |
Public Member Functions | |
MoFEMErrorCode | addHOOpsVol () |
ConvectiveMassElement (MoFEM::Interface &m_field, short int tag) | |
MoFEMErrorCode | setBlocks () |
MoFEMErrorCode | addConvectiveMassElement (string element_name, string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", bool ale=false, BitRefLevel bit=BitRefLevel()) |
MoFEMErrorCode | addVelocityElement (string element_name, string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", bool ale=false, BitRefLevel bit=BitRefLevel()) |
MoFEMErrorCode | addEshelbyDynamicMaterialMomentum (string element_name, string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", bool ale=false, BitRefLevel bit=BitRefLevel(), Range *intersected=NULL) |
MoFEMErrorCode | setConvectiveMassOperators (string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", bool ale=false, bool linear=false) |
MoFEMErrorCode | setVelocityOperators (string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", bool ale=false) |
MoFEMErrorCode | setKinematicEshelbyOperators (string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", Range *forces_on_entities_ptr=NULL) |
MoFEMErrorCode | setShellMatrixMassOperators (string velocity_field_name, string spatial_position_field_name, string material_position_field_name="MESH_NODE_POSITIONS", bool linear=false) |
Static Public Member Functions | |
static MoFEMErrorCode | setBlocks (MoFEM::Interface &m_field, boost::shared_ptr< map< int, BlockData >> &block_sets_ptr) |
static MoFEMErrorCode | MultOpA (Mat A, Vec x, Vec f) |
Mult operator for shell matrix. More... | |
static MoFEMErrorCode | ZeroEntriesOp (Mat A) |
static MoFEMErrorCode | PCShellSetUpOp (PC pc) |
static MoFEMErrorCode | PCShellDestroy (PC pc) |
static MoFEMErrorCode | PCShellApplyOp (PC pc, Vec f, Vec x) |
apply pre-conditioner for shell matrix More... | |
Public Attributes | |
MyVolumeFE | feMassRhs |
calculate right hand side for tetrahedral elements More... | |
MyVolumeFE | feMassLhs |
MyVolumeFE | feMassAuxLhs |
MyVolumeFE | feVelRhs |
calculate right hand side for tetrahedral elements More... | |
MyVolumeFE | feVelLhs |
calculate left hand side for tetrahedral elements More... | |
MyVolumeFE | feTRhs |
calculate right hand side for tetrahedral elements More... | |
MyVolumeFE | feTLhs |
calculate left hand side for tetrahedral elements More... | |
MyVolumeFE | feEnergy |
calculate kinetic energy More... | |
MoFEM::Interface & | mField |
short int | tAg |
std::map< int, BlockData > | setOfBlocks |
maps block set id with appropriate BlockData More... | |
CommonData | commonData |
boost::ptr_vector< MethodForForceScaling > | methodsOp |
structure grouping operators and data used for calculation of mass (convective) element
structure grouping operators and data used for calculation of nonlinear elastic element
\ nonlinear_elastic_elem
In order to assemble matrices and right hand vectors, the loops over elements, entities over that elements and finally loop over integration points are executed.
Following implementation separate those three celeries of loops and to each loop attach operator.
In order to assemble matrices and right hand vectors, the loops over elements, entities over that elements and finally loop over integration points are executed.
Following implementation separate those three categories of loops and to each loop attach operator.
Definition at line 28 of file ConvectiveMassElement.hpp.
ConvectiveMassElement::ConvectiveMassElement | ( | MoFEM::Interface & | m_field, |
short int | tag | ||
) |
MoFEMErrorCode ConvectiveMassElement::addConvectiveMassElement | ( | string | element_name, |
string | velocity_field_name, | ||
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
bool | ale = false , |
||
BitRefLevel | bit = BitRefLevel() |
||
) |
Definition at line 1835 of file ConvectiveMassElement.cpp.
MoFEMErrorCode ConvectiveMassElement::addEshelbyDynamicMaterialMomentum | ( | string | element_name, |
string | velocity_field_name, | ||
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
bool | ale = false , |
||
BitRefLevel | bit = BitRefLevel() , |
||
Range * | intersected = NULL |
||
) |
Definition at line 1945 of file ConvectiveMassElement.cpp.
|
inline |
Definition at line 92 of file ConvectiveMassElement.hpp.
MoFEMErrorCode ConvectiveMassElement::addVelocityElement | ( | string | element_name, |
string | velocity_field_name, | ||
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
bool | ale = false , |
||
BitRefLevel | bit = BitRefLevel() |
||
) |
Definition at line 1892 of file ConvectiveMassElement.cpp.
|
inlinestatic |
Mult operator for shell matrix.
\[ \left[ \begin{array}{cc} \mathbf{M} & \mathbf{K} \\ \mathbf{I} & -\mathbf{I}a \end{array} \right] \left[ \begin{array}{c} \mathbf{v} \\ \mathbf{u} \end{array} \right] = \left[ \begin{array}{c} \mathbf{r}_u \\ \mathbf{r}_v \end{array} \right] \]
Definition at line 546 of file ConvectiveMassElement.hpp.
|
inlinestatic |
apply pre-conditioner for shell matrix
\[ \left[ \begin{array}{cc} \mathbf{M} & \mathbf{K} \\ \mathbf{I} & -\mathbf{I}a \end{array} \right] \left[ \begin{array}{c} \mathbf{v} \\ \mathbf{u} \end{array} \right] = \left[ \begin{array}{c} \mathbf{r}_u \\ \mathbf{r}_v \end{array} \right] \]
where \(\mathbf{v} = \mathbf{r}_v + a\mathbf{u}\) and \(\mathbf{u}=(a\mathbf{M}+\mathbf{K})^{-1}(\mathbf{r}_u - \mathbf{M}\mathbf{r}_v\).
Definition at line 671 of file ConvectiveMassElement.hpp.
|
inlinestatic |
|
inlinestatic |
MoFEMErrorCode ConvectiveMassElement::setBlocks | ( | ) |
|
static |
Definition at line 1807 of file ConvectiveMassElement.cpp.
MoFEMErrorCode ConvectiveMassElement::setConvectiveMassOperators | ( | string | velocity_field_name, |
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
bool | ale = false , |
||
bool | linear = false |
||
) |
Definition at line 2005 of file ConvectiveMassElement.cpp.
MoFEMErrorCode ConvectiveMassElement::setKinematicEshelbyOperators | ( | string | velocity_field_name, |
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
Range * | forces_on_entities_ptr = NULL |
||
) |
Definition at line 2181 of file ConvectiveMassElement.cpp.
MoFEMErrorCode ConvectiveMassElement::setShellMatrixMassOperators | ( | string | velocity_field_name, |
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
bool | linear = false |
||
) |
Definition at line 2243 of file ConvectiveMassElement.cpp.
MoFEMErrorCode ConvectiveMassElement::setVelocityOperators | ( | string | velocity_field_name, |
string | spatial_position_field_name, | ||
string | material_position_field_name = "MESH_NODE_POSITIONS" , |
||
bool | ale = false |
||
) |
Definition at line 2103 of file ConvectiveMassElement.cpp.
|
inlinestatic |
CommonData ConvectiveMassElement::commonData |
Definition at line 148 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feEnergy |
calculate kinetic energy
Definition at line 87 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feMassAuxLhs |
calculate left hand side for tetrahedral elements for Kuu shell matrix
Definition at line 71 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feMassLhs |
calculate left hand side for tetrahedral elements,i.e. mass element
Definition at line 66 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feMassRhs |
calculate right hand side for tetrahedral elements
Definition at line 62 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feTLhs |
calculate left hand side for tetrahedral elements
Definition at line 84 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feTRhs |
calculate right hand side for tetrahedral elements
Definition at line 82 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feVelLhs |
calculate left hand side for tetrahedral elements
Definition at line 79 of file ConvectiveMassElement.hpp.
MyVolumeFE ConvectiveMassElement::feVelRhs |
calculate right hand side for tetrahedral elements
Definition at line 77 of file ConvectiveMassElement.hpp.
boost::ptr_vector<MethodForForceScaling> ConvectiveMassElement::methodsOp |
Definition at line 150 of file ConvectiveMassElement.hpp.
MoFEM::Interface& ConvectiveMassElement::mField |
Definition at line 108 of file ConvectiveMassElement.hpp.
std::map<int, BlockData> ConvectiveMassElement::setOfBlocks |
maps block set id with appropriate BlockData
Definition at line 122 of file ConvectiveMassElement.hpp.
short int ConvectiveMassElement::tAg |
Definition at line 109 of file ConvectiveMassElement.hpp.