64 template< std::
size_t TDim, std::
size_t TNumNodes,
bool TNormalVariation, std::
size_t TNumNodesMaster = TNumNodes>
66 :
public MortarContactCondition<TDim, TNumNodes, FrictionalCase::FRICTIONAL, TNormalVariation, TNumNodesMaster>
145 static constexpr
IndexType MatrixSize = TDim * (TNumNodes + TNumNodes + TNumNodesMaster);
148 static constexpr
IndexType StepSlip = TNormalVariation ? 0 : 1;
173 ):
BaseType( NewId, pGeometry, pProperties )
182 GeometryType::Pointer pMasterGeometry
183 ):
BaseType( NewId, pGeometry, pProperties, pMasterGeometry )
207 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
219 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
228 Condition::Pointer
Create(
241 Condition::Pointer
Create(
272 void AddExplicitContribution(
const ProcessInfo& rCurrentProcessInfo)
override;
308 void EquationIdVector(
330 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
345 std::string
Info()
const override
347 std::stringstream buffer;
348 buffer <<
"AugmentedLagrangianMethodFrictionalMortarContactCondition #" << this->Id();
355 rOStream <<
"AugmentedLagrangianMethodFrictionalMortarContactCondition #" << this->Id();
362 this->GetParentGeometry().PrintData(rOStream);
363 this->GetPairedGeometry().PrintData(rOStream);
380 bool mPreviousMortarOperatorsInitialized =
false;
420 void CalculateLocalRHS(
440 for (
IndexType i_node = 0; i_node < TNumNodes; ++i_node) {
441 if (CurrentGeometry[i_node].Is(ACTIVE) ==
true) {
442 if (CurrentGeometry[i_node].Is(SLIP) ==
true)
443 value += std::pow(3, i_node);
445 value += 2 * std::pow(3, i_node);
460 auto& r_geometry = this->GetParentGeometry();
462 for (std::size_t i_node = 0; i_node < TNumNodes; ++i_node) {
463 friction_coeffient_vector[i_node] = r_geometry[i_node].GetValue(FRICTION_COEFFICIENT);
468 return friction_coeffient_vector;
504 void ComputePreviousMortarOperators(
const ProcessInfo& rCurrentProcessInfo);
522 void save(
Serializer& rSerializer)
const override
525 rSerializer.
save(
"PreviousMortarOperatorsInitialized", mPreviousMortarOperatorsInitialized);
526 rSerializer.
save(
"PreviousMortarOperators", mPreviousMortarOperators);
532 rSerializer.
load(
"PreviousMortarOperatorsInitialized", mPreviousMortarOperatorsInitialized);
533 rSerializer.
load(
"PreviousMortarOperators", mPreviousMortarOperators);
Base class for all Conditions.
Definition: condition.h:59
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
std::vector< DofType::Pointer > DofsVectorType
Definition: condition.h:100
This class is a derived class of DerivativeData.
Definition: mortar_classes.h:934
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
IntegrationMethod
Definition: geometry_data.h:76
Geometry base class.
Definition: geometry.h:71
An two node 2D line geometry with linear shape functions.
Definition: line_2d_2.h:65
This is a base class for the conditions paired.
Definition: paired_condition.h:53
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
A three node 3D triangle geometry with linear shape functions.
Definition: triangle_3d_3.h:77
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
std::size_t IndexType
Definition: binary_expression.cpp:25
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Properties PropertiesType
Definition: regenerate_pfem_pressure_conditions_process.h:26
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: exact_mortar_segmentation_utility.h:57
Geometry< PointType > GeometryPointType
Definition: exact_mortar_segmentation_utility.h:54
Geometry< Node > GeometryType
The definition of the geometry.
Definition: mortar_classes.h:37
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
mu
Definition: generate_frictional_mortar_condition.py:127
type
Definition: generate_gid_list_file.py:35
def load(f)
Definition: ode_solve.py:307
Configure::PointType PointType
Definition: transfer_utility.h:245