70 template< const SizeType TDim, const SizeType TNumNodes,const SizeType TNumNodesMaster = TNumNodes>
142 static constexpr
IndexType MatrixSize = TDim * (TNumNodes + TNumNodesMaster);
156 GeometryType::Pointer pGeometry
163 GeometryType::Pointer pGeometry,
164 PropertiesType::Pointer pProperties
171 GeometryType::Pointer pGeometry,
172 PropertiesType::Pointer pProperties,
173 GeometryType::Pointer pMasterGeometry
200 Condition::Pointer
Create(
203 PropertiesType::Pointer pProperties
213 Condition::Pointer
Create(
215 GeometryType::Pointer pGeom,
216 PropertiesType::Pointer pProperties
227 Condition::Pointer
Create(
229 GeometryType::Pointer pGeom,
230 PropertiesType::Pointer pProperties,
231 GeometryType::Pointer pMasterGeom
238 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
250 void InitializeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
256 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
262 void FinalizeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
269 void EquationIdVector(
290 void CalculateMassMatrix(
300 void CalculateDampingMatrix(
310 void AddExplicitContribution(
const ProcessInfo& rCurrentProcessInfo)
override;
324 std::vector<double>& rOutput,
348 std::vector<Vector>& rOutput,
359 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
374 std::string
Info()
const override
376 std::stringstream buffer;
377 buffer <<
"MPCMortarContactCondition #" << this->Id();
384 rOStream <<
"MPCMortarContactCondition #" << this->Id();
391 this->GetParentGeometry().PrintData(rOStream);
392 this->GetPairedGeometry().PrintData(rOStream);
409 bool mPreviousMortarOperatorsInitialized =
false;
433 void CalculateLocalSystem(
445 void CalculateRightHandSide(
456 void CalculateLeftHandSide(
467 const IndexType integration_order = GetProperties().Has(INTEGRATION_ORDER_CONTACT) ? GetProperties().GetValue(INTEGRATION_ORDER_CONTACT) : 2;
468 switch (integration_order) {
513 void ConstraintDofDatabaseUpdate(
527 void UpdateConstraintFrictionless(
528 MortarConditionMatrices& rMortarConditionMatrices,
532 const bool DualLM =
true
543 void UpdateConstraintFrictional(
544 MortarConditionMatrices& rMortarConditionMatrices,
548 const bool DualLM =
true
559 void UpdateConstraintTying(
560 MortarConditionMatrices& rMortarConditionMatrices,
564 const bool DualLM =
true
571 void ComputePreviousMortarOperators(
const ProcessInfo& rCurrentProcessInfo);
589 void save(
Serializer& rSerializer)
const override
592 rSerializer.
save(
"PreviousMortarOperators", mPreviousMortarOperators);
593 rSerializer.
save(
"PreviousMortarOperatorsInitialized", mPreviousMortarOperatorsInitialized);
599 rSerializer.
load(
"PreviousMortarOperators", mPreviousMortarOperators);
600 rSerializer.
load(
"PreviousMortarOperatorsInitialized", mPreviousMortarOperatorsInitialized);
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
std::vector< DofType::Pointer > DofsVectorType
Definition: condition.h:100
This utilities are used in order to compute the directional derivatives during mortar contact.
Definition: derivatives_utilities.h:63
This is the definition dual lagrange multiplier operators according to the work of Alexander Popp: ht...
Definition: mortar_classes.h:1513
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
std::vector< IntegrationPointType > IntegrationPointsArrayType
Definition: geometry.h:161
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
Point class.
Definition: point.h:59
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
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
Short class definition.
Definition: array_1d.h:61
#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
pybind11::list CalculateOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const ProcessInfo &rProcessInfo)
Definition: add_mesh_to_python.cpp:142
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
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
type
Definition: generate_gid_list_file.py:35
def load(f)
Definition: ode_solve.py:307