10 #if !defined(KRATOS_POINT_RIGID_CONTACT_CONDITION_H_INCLUDED )
11 #define KRATOS_POINT_RIGID_CONTACT_CONDITION_H_INCLUDED
16 #include "boost/smart_ptr.hpp"
136 ContributoryFactor = 0;
138 RelativeDisplacement.
resize(3);
143 FrictionCoefficient = 0;
152 SkewSymDistance.
resize(3,3,
false);
181 std::vector<MatrixType> *mpLeftHandSideMatrices;
182 std::vector<VectorType> *mpRightHandSideVectors;
185 const std::vector< Variable< MatrixType > > *mpLeftHandSideVariables;
188 const std::vector< Variable< VectorType > > *mpRightHandSideVariables;
200 void SetLeftHandSideMatrices( std::vector<MatrixType>& rLeftHandSideMatrices ) { mpLeftHandSideMatrices = &rLeftHandSideMatrices; };
204 void SetRightHandSideVectors( std::vector<VectorType>& rRightHandSideVectors ) { mpRightHandSideVectors = &rRightHandSideVectors; };
263 PropertiesType::Pointer pProperties )
const override;
273 Condition::Pointer Clone(
IndexType NewId,
282 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
292 void InitializeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
297 void FinalizeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
302 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
310 void GetDofList(DofsVectorType& rConditionDofList,
311 const ProcessInfo& rCurrentProcessInfo )
const override;
316 void EquationIdVector(EquationIdVectorType& rResult,
317 const ProcessInfo& rCurrentProcessInfo )
const override;
322 void GetValuesVector(
Vector& rValues,
323 int Step = 0 )
const override;
328 void GetFirstDerivativesVector(
Vector& rValues,
329 int Step = 0 )
const override;
334 void GetSecondDerivativesVector(
Vector& rValues,
335 int Step = 0 )
const override;
348 void CalculateLocalSystem(
MatrixType& rLeftHandSideMatrix,
362 void CalculateLocalSystem(std::vector< MatrixType >& rLeftHandSideMatrices,
364 std::vector< VectorType >& rRightHandSideVectors,
374 void CalculateRightHandSide(
VectorType& rRightHandSideVector,
385 void CalculateRightHandSide(std::vector< VectorType >& rRightHandSideVectors,
395 void CalculateMassMatrix(
405 void CalculateDampingMatrix(
419 void AddExplicitContribution(
const VectorType& rRHSVector,
433 int Check(
const ProcessInfo& rCurrentProcessInfo )
const override;
497 void ClearNodalForces ();
503 virtual void InitializeSystemMatrices(
MatrixType& rLeftHandSideMatrix,
505 Flags& rCalculationFlags);
518 const double& rPointNumber);
523 virtual double& CalculateIntegrationWeight(
double& rIntegrationWeight);
538 double& rIntegrationWeight);
545 double& rIntegrationWeight);
551 virtual void CalculateAndAddKuug(
MatrixType& rLeftHandSideMatrix,
553 double& rIntegrationWeight);
559 virtual void CalculateAndAddContactForces(
Vector& rRightHandSideVector,
561 double& rIntegrationWeight );
614 void save(
Serializer& rSerializer )
const override
618 rSerializer.
save(
"mpFrictionLaw",mpFrictionLaw);
619 rSerializer.
save(
"mContactStressVector",mContactStressVector);
626 rSerializer.
load(
"mpFrictionLaw",mpFrictionLaw);
627 rSerializer.
load(
"mContactStressVector",mContactStressVector);
Base class for all Conditions.
Definition: condition.h:59
IntegrationMethod
Definition: geometry_data.h:76
This class is a vector which stores global pointers.
Definition: global_pointers_vector.h:61
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
BOOST_UBLAS_INLINE void resize(size_type array_size, bool preserve=true)
Definition: array_1d.h:242
#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
The definition of the index type.
Definition: key_hash.h:35
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
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
def load(f)
Definition: ode_solve.py:307