![]() |
v0.14.0 |
#include <users_modules/mortar_contact/src/MortarContactProblem.hpp>
Classes | |
struct | CommonDataMortarContact |
struct | LoadScale |
struct | MortarContactElement |
struct | MortarContactPrismsData |
struct | MortarConvectMasterContactElement |
Element used to integrate on slave surfaces. It convects integration points on slaves, so that quantities like gap from master are evaluated at correct points. More... | |
struct | MortarConvectSlaveContactElement |
Element used to integrate on master surfaces. It convects integration points on slaves, so that quantities like Lagrange multiplier from master are evaluated at correct points. More... | |
Public Types | |
using | ContactOp = ContactPrismElementForcesAndSourcesCore::UserDataOperator |
![]() | |
enum | StateTagSide { NO_TAG = 0 , MASTER_SIDE = 1 , SLAVE_SIDE = 2 } |
Choice of the contact prism side to put the state tag on. More... | |
using | ContactEle = ContactPrismElementForcesAndSourcesCore |
using | ContactOp = ContactPrismElementForcesAndSourcesCore::UserDataOperator |
using | EntData = EntitiesFieldData::EntData |
using | FaceUserDataOperator = FaceElementForcesAndSourcesCore::UserDataOperator |
Public Member Functions | |
MoFEMErrorCode | addMortarContactElement (const string element_name, const string field_name, const string lagrange_field_name, Range &range_slave_master_prisms, string material_position_field_name="MESH_NODE_POSITIONS", bool eigen_pos_flag=false, const string eigen_node_field_name="EIGEN_SPATIAL_POSITIONS") |
MoFEMErrorCode | addMortarContactElementALE (const string element_name, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, Range &range_slave_master_prisms) |
Function that adds field data for spatial positions and Lagrange multipliers to rows and columns, provides access to field data and adds prism entities to element. More... | |
MoFEMErrorCode | addMortarContactFrictionElement (const string element_name, const string field_name, const string lagrange_field_name, const string prev_conv_field_name, const string tangent_lagrange_field_name, Range &range_slave_master_prisms, string material_position_field_name="MESH_NODE_POSITIONS") |
MortarContactProblem (MoFEM::Interface &m_field, boost::shared_ptr< ContactSearchKdTree::ContactCommonData_multiIndex > contact_commondata_multi_index, boost::shared_ptr< double > cn_value_ptr, bool newton_cotes=false) | |
MoFEMErrorCode | setContactOperatorsRhs (boost::shared_ptr< MortarContactElement > fe_rhs_mortar_contact, boost::shared_ptr< CommonDataMortarContact > common_data_mortar_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setMasterForceOperatorsRhs (boost::shared_ptr< MortarContactElement > fe_rhs_mortar_contact, boost::shared_ptr< CommonDataMortarContact > common_data_mortar_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setContactOperatorsLhs (boost::shared_ptr< MortarContactElement > fe_lhs_mortar_contact, boost::shared_ptr< CommonDataMortarContact > common_data_mortar_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setContactOperatorsLhs (boost::shared_ptr< MortarConvectMasterContactElement > fe_lhs_simple_contact, boost::shared_ptr< CommonDataMortarContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setMasterForceOperatorsLhs (boost::shared_ptr< MortarContactElement > fe_lhs_mortar_contact, boost::shared_ptr< CommonDataMortarContact > common_data_mortar_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setMasterForceOperatorsLhs (boost::shared_ptr< MortarConvectSlaveContactElement > fe_lhs_mortar_contact, boost::shared_ptr< CommonDataMortarContact > common_data_mortar_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setContactOperatorsForPostProc (boost::shared_ptr< MortarContactElement > fe_post_proc_mortar_contact, boost::shared_ptr< CommonDataMortarContact > common_data_mortar_contact, MoFEM::Interface &m_field, string field_name, string lagrange_field_name, moab::Interface &moab_out, bool alm_flag=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool is_displacements=false, Range post_proc_surface=Range(), double post_proc_gap_tol=0.0) |
MoFEMErrorCode | setContactOperatorsRhsALEMaterial (boost::shared_ptr< MortarContactElement > fe_rhs_simple_contact_ale, boost::shared_ptr< CommonDataMortarContact > common_data_simple_contact, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, const string side_fe_name) |
Function for the mortar contact element that sets the user data post processing operators. More... | |
MoFEMErrorCode | setContactOperatorsLhsALEMaterial (boost::shared_ptr< MortarContactElement > fe_lhs_simple_contact_ale, boost::shared_ptr< CommonDataMortarContact > common_data_simple_contact, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, const string side_fe_name) |
Function for the mortar contact element that sets the user data LHS-operators. More... | |
MoFEMErrorCode | setContactOperatorsLhsALE (boost::shared_ptr< MortarContactElement > fe_lhs_simple_contact_ale, boost::shared_ptr< CommonDataMortarContact > common_data_simple_contact, const string field_name, const string mesh_node_field_name, const string lagrange_field_name) |
Function for the mortar contact element that sets the user data LHS-operators. More... | |
![]() | |
MoFEMErrorCode | addContactElement (const string element_name, const string field_name, const string lagrange_field_name, Range &range_slave_master_prisms, bool eigen_pos_flag=false, const string eigen_node_field_name="EIGEN_SPATIAL_POSITIONS") |
Function that adds field data for spatial positions and Lagrange multipliers to rows and columns, provides access to field data and adds prism entities to element. More... | |
MoFEMErrorCode | addContactElementALE (const string element_name, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, Range &range_slave_master_prisms, bool eigen_pos_flag=false, const string eigen_node_field_name="EIGEN_SPATIAL_POSITIONS") |
Function that adds field data for spatial positions and Lagrange multipliers to rows and columns, provides access to field data and adds prism entities to element. More... | |
MoFEMErrorCode | addPostProcContactElement (const string element_name, const string spatial_field_name, const string lagrange_field_name, const string mesh_pos_field_name, Range &slave_tris) |
Function that adds a new finite element for contact post-processing. More... | |
SimpleContactProblem (MoFEM::Interface &m_field, boost::shared_ptr< double > cn_value, bool newton_cotes=false) | |
MoFEMErrorCode | setContactOperatorsRhs (boost::shared_ptr< SimpleContactElement > fe_rhs_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
Function for the simple contact element for C function or ALM approach that sets the user data RHS-operators. More... | |
MoFEMErrorCode | setContactOperatorsLhs (boost::shared_ptr< SimpleContactElement > fe_lhs_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
Function for the simple contact element for C function or ALM approach that sets the user data LHS-operators. More... | |
MoFEMErrorCode | setContactOperatorsLhs (boost::shared_ptr< ConvectMasterContactElement > fe_lhs_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
Function for the simple contact element for C function or ALM approach that sets the user data LHS-operators. More... | |
MoFEMErrorCode | setMasterForceOperatorsRhs (boost::shared_ptr< SimpleContactElement > fe_lhs_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setMasterForceOperatorsLhs (boost::shared_ptr< SimpleContactElement > fe_lhs_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setMasterForceOperatorsLhs (boost::shared_ptr< ConvectSlaveContactElement > fe_lhs_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, string field_name, string lagrange_field_name, bool is_alm=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false) |
MoFEMErrorCode | setContactOperatorsForPostProc (boost::shared_ptr< SimpleContactElement > fe_post_proc_simple_contact, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, MoFEM::Interface &m_field, string field_name, string lagrange_field_name, moab::Interface &moab_out, bool alm_flag=false, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS", bool use_reference_coordinates=false, StateTagSide state_tag_side=NO_TAG) |
Function for the simple contact element that sets the user data post processing operators. More... | |
MoFEMErrorCode | setContactOperatorsRhsALEMaterial (boost::shared_ptr< SimpleContactElement > fe_rhs_simple_contact_ale, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, const string side_fe_name) |
Function for the simple contact element that sets the user data post processing operators. More... | |
MoFEMErrorCode | setContactOperatorsLhsALEMaterial (boost::shared_ptr< SimpleContactElement > fe_lhs_simple_contact_ale, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, const string side_fe_name) |
Function for the simple contact element that sets the user data LHS-operators. More... | |
MoFEMErrorCode | setContactOperatorsLhsALE (boost::shared_ptr< SimpleContactElement > fe_lhs_simple_contact_ale, boost::shared_ptr< CommonDataSimpleContact > common_data_simple_contact, const string field_name, const string mesh_node_field_name, const string lagrange_field_name, bool is_eigen_pos_field=false, string eigen_pos_field_name="EIGEN_SPATIAL_POSITIONS") |
Function for the simple contact element that sets the user data LHS-operators. More... | |
Public Attributes | |
map< int, MortarContactPrismsData > | setOfMortarContactPrism |
maps side set id with appropriate FluxData More... | |
double | cnValue |
boost::shared_ptr< double > | cnValuePtr |
MoFEM::Interface & | mField |
boost::shared_ptr< ContactSearchKdTree::ContactCommonData_multiIndex > | contactCommondataMultiIndex |
bool | newtonCotes |
![]() | |
map< int, SimpleContactPrismsData > | setOfSimpleContactPrism |
maps side set id with appropriate FluxData More... | |
double | cnValue |
bool | newtonCotes |
boost::shared_ptr< double > | cnValuePtr |
MoFEM::Interface & | mField |
brief | Computes |
brief for material | configuration |
Additional Inherited Members | |
![]() | |
static double | Sign (double x) |
static bool | State (const double cn, const double g, const double l) |
static bool | StateALM (const double cn, const double g, const double l) |
static double | ConstrainFunction (const double cn, const double g, const double l) |
static double | ConstrainFunction_dg (const double cn, const double g, const double l) |
static double | ConstrainFunction_dl (const double cn, const double g, const double l) |
![]() | |
static constexpr double | TOL = 1e-8 |
static constexpr int | LAGRANGE_RANK = 1 |
static constexpr int | POSITION_RANK = 3 |
static constexpr double | ALM_TOL = 1e-14 |
Definition at line 18 of file MortarContactProblem.hpp.
using MortarContactProblem::ContactOp = ContactPrismElementForcesAndSourcesCore::UserDataOperator |
Definition at line 20 of file MortarContactProblem.hpp.
|
inline |
Definition at line 264 of file MortarContactProblem.hpp.
|
inline |
Definition at line 93 of file MortarContactProblem.hpp.
|
inline |
Function that adds field data for spatial positions and Lagrange multipliers to rows and columns, provides access to field data and adds prism entities to element.
element_name | String for the element name |
field_name | String of field name for spatial position |
lagrange_field_name | String of field name for Lagrange multipliers |
mesh_node_field_name | String of field name for material positions |
range_slave_master_prisms | Range for prism entities used to create contact elements |
Definition at line 157 of file MortarContactProblem.hpp.
|
inline |
Definition at line 209 of file MortarContactProblem.hpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsForPostProc | ( | boost::shared_ptr< MortarContactElement > | fe_post_proc_mortar_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_mortar_contact, | ||
MoFEM::Interface & | m_field, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
moab::Interface & | moab_out, | ||
bool | alm_flag = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | is_displacements = false , |
||
Range | post_proc_surface = Range() , |
||
double | post_proc_gap_tol = 0.0 |
||
) |
Definition at line 761 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsLhs | ( | boost::shared_ptr< MortarContactElement > | fe_lhs_mortar_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_mortar_contact, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
bool | is_alm = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | use_reference_coordinates = false |
||
) |
Definition at line 506 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsLhs | ( | boost::shared_ptr< MortarConvectMasterContactElement > | fe_lhs_simple_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_simple_contact, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
bool | is_alm = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | use_reference_coordinates = false |
||
) |
Definition at line 613 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsLhsALE | ( | boost::shared_ptr< MortarContactElement > | fe_lhs_simple_contact_ale, |
boost::shared_ptr< CommonDataMortarContact > | common_data_simple_contact, | ||
const string | field_name, | ||
const string | mesh_node_field_name, | ||
const string | lagrange_field_name | ||
) |
Function for the mortar contact element that sets the user data LHS-operators.
fe_lhs_simple_contact_ale | Pointer to the FE instance for LHS |
common_data_simple_contact | Pointer to the common data for mortar contact element |
field_name | String of field name for spatial positions |
mesh_node_field_name | String of field name for material positions |
lagrange_field_name | String of field name for Lagrange multipliers |
Definition at line 1014 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsLhsALEMaterial | ( | boost::shared_ptr< MortarContactElement > | fe_lhs_simple_contact_ale, |
boost::shared_ptr< CommonDataMortarContact > | common_data_simple_contact, | ||
const string | field_name, | ||
const string | mesh_node_field_name, | ||
const string | lagrange_field_name, | ||
const string | side_fe_name | ||
) |
Function for the mortar contact element that sets the user data LHS-operators.
fe_lhs_simple_contact_ale | Pointer to the FE instance for LHS |
common_data_simple_contact | Pointer to the common data for mortar contact element |
field_name | String of field name for spatial positions |
mesh_node_field_name | String of field name for material positions |
lagrange_field_name | String of field name for Lagrange multipliers |
side_fe_name | String of 3D element adjacent to the present contact element |
Definition at line 915 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsRhs | ( | boost::shared_ptr< MortarContactElement > | fe_rhs_mortar_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_mortar_contact, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
bool | is_alm = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | use_reference_coordinates = false |
||
) |
Definition at line 340 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setContactOperatorsRhsALEMaterial | ( | boost::shared_ptr< MortarContactElement > | fe_rhs_simple_contact_ale, |
boost::shared_ptr< CommonDataMortarContact > | common_data_simple_contact, | ||
const string | field_name, | ||
const string | mesh_node_field_name, | ||
const string | lagrange_field_name, | ||
const string | side_fe_name | ||
) |
Function for the mortar contact element that sets the user data post processing operators.
fe_post_proc_simple_contact | Pointer to the FE instance for post processing |
common_data_simple_contact | Pointer to the common data for mortar contact element |
field_name | String of field name for spatial positions |
mesh_node_field_name | String of field name for material positions |
lagrange_field_name | String of field name for Lagrange multipliers |
side_fe_name | String of 3D element adjacent to the present contact element |
Definition at line 839 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setMasterForceOperatorsLhs | ( | boost::shared_ptr< MortarContactElement > | fe_lhs_mortar_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_mortar_contact, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
bool | is_alm = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | use_reference_coordinates = false |
||
) |
Definition at line 649 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setMasterForceOperatorsLhs | ( | boost::shared_ptr< MortarConvectSlaveContactElement > | fe_lhs_mortar_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_mortar_contact, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
bool | is_alm = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | use_reference_coordinates = false |
||
) |
Definition at line 731 of file MortarContactProblem.cpp.
MoFEMErrorCode MortarContactProblem::setMasterForceOperatorsRhs | ( | boost::shared_ptr< MortarContactElement > | fe_rhs_mortar_contact, |
boost::shared_ptr< CommonDataMortarContact > | common_data_mortar_contact, | ||
string | field_name, | ||
string | lagrange_field_name, | ||
bool | is_alm = false , |
||
bool | is_eigen_pos_field = false , |
||
string | eigen_pos_field_name = "EIGEN_SPATIAL_POSITIONS" , |
||
bool | use_reference_coordinates = false |
||
) |
Definition at line 423 of file MortarContactProblem.cpp.
double MortarContactProblem::cnValue |
Definition at line 256 of file MortarContactProblem.hpp.
boost::shared_ptr<double> MortarContactProblem::cnValuePtr |
Definition at line 257 of file MortarContactProblem.hpp.
boost::shared_ptr<ContactSearchKdTree::ContactCommonData_multiIndex> MortarContactProblem::contactCommondataMultiIndex |
Definition at line 261 of file MortarContactProblem.hpp.
MoFEM::Interface& MortarContactProblem::mField |
Definition at line 259 of file MortarContactProblem.hpp.
bool MortarContactProblem::newtonCotes |
Definition at line 262 of file MortarContactProblem.hpp.
map<int, MortarContactPrismsData> MortarContactProblem::setOfMortarContactPrism |
maps side set id with appropriate FluxData
Definition at line 27 of file MortarContactProblem.hpp.