![]() |
v0.15.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 | |
MyVolumeFE & | getLoopFeMassLhs () |
get lhs volume element | |
MyVolumeFE & | getLoopFeMassAuxLhs () |
get lhs volume element for Kuu shell matrix | |
MyVolumeFE & | getLoopFeVelRhs () |
get rhs volume element | |
MyVolumeFE & | getLoopFeVelLhs () |
get lhs volume element | |
MyVolumeFE & | getLoopFeTRhs () |
get rhs volume element | |
MyVolumeFE & | getLoopFeTLhs () |
get lhs volume element | |
MyVolumeFE & | getLoopFeEnergy () |
get kinetic energy element | |
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. | |
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 | |
Public Attributes | |
MyVolumeFE | feMassRhs |
calculate right hand side for tetrahedral elements | |
MyVolumeFE | feMassLhs |
MyVolumeFE | feMassAuxLhs |
MyVolumeFE | feVelRhs |
calculate right hand side for tetrahedral elements | |
MyVolumeFE | feVelLhs |
calculate left hand side for tetrahedral elements | |
MyVolumeFE | feTRhs |
calculate right hand side for tetrahedral elements | |
MyVolumeFE | feTLhs |
calculate left hand side for tetrahedral elements | |
MyVolumeFE | feEnergy |
calculate kinetic energy | |
MoFEM::Interface & | mField |
short int | tAg |
std::map< int, BlockData > | setOfBlocks |
maps block set id with appropriate BlockData | |
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 1836 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 1946 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 1893 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 1762 of file ConvectiveMassElement.cpp.
|
static |
Definition at line 1808 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 2006 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 2182 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 2244 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 2104 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.