![]() |
v0.14.0 |
structure grouping operators and data used for calculation of mass (convective) element \ nonlinear_elastic_elem 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 | |
MyVolumeFE & | getLoopFeMassRhs () |
get rhs volume element More... | |
MyVolumeFE & | getLoopFeMassLhs () |
get lhs volume element More... | |
MyVolumeFE & | getLoopFeMassAuxLhs () |
get lhs volume element for Kuu shell matrix More... | |
MyVolumeFE & | getLoopFeVelRhs () |
get rhs volume element More... | |
MyVolumeFE & | getLoopFeVelLhs () |
get lhs volume element More... | |
MyVolumeFE & | getLoopFeTRhs () |
get rhs volume element More... | |
MyVolumeFE & | getLoopFeTLhs () |
get lhs volume element More... | |
MyVolumeFE & | getLoopFeEnergy () |
get kinetic energy element More... | |
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 \ nonlinear_elastic_elem
structure grouping operators and data used for calculation of nonlinear elastic element
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 | ||
) |
Definition at line 75 of file ConvectiveMassElement.cpp.
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.
|
inline |
get kinetic energy element
Definition at line 88 of file ConvectiveMassElement.hpp.
|
inline |
get lhs volume element for Kuu shell matrix
Definition at line 73 of file ConvectiveMassElement.hpp.
|
inline |
get lhs volume element
Definition at line 68 of file ConvectiveMassElement.hpp.
|
inline |
get rhs volume element
Definition at line 63 of file ConvectiveMassElement.hpp.
|
inline |
get lhs volume element
Definition at line 85 of file ConvectiveMassElement.hpp.
|
inline |
get rhs volume element
Definition at line 83 of file ConvectiveMassElement.hpp.
|
inline |
get lhs volume element
Definition at line 80 of file ConvectiveMassElement.hpp.
|
inline |
get rhs volume element
Definition at line 78 of file ConvectiveMassElement.hpp.
|
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 |
Definition at line 633 of file ConvectiveMassElement.hpp.
|
inlinestatic |
Definition at line 618 of file ConvectiveMassElement.hpp.
MoFEMErrorCode ConvectiveMassElement::setBlocks | ( | ) |
Definition at line 1761 of file ConvectiveMassElement.cpp.
|
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 |
Definition at line 589 of file ConvectiveMassElement.hpp.
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.