10 #if !defined(KRATOS_RIGID_BODY_POINT_RIGID_CONTACT_CONDITION_H_INCLUDED )
11 #define KRATOS_RIGID_BODY_POINT_RIGID_CONTACT_CONDITION_H_INCLUDED
93 PropertiesType::Pointer pProperties )
const override;
103 Condition::Pointer Clone(
IndexType NewId,
113 const ProcessInfo& rCurrentProcessInfo )
const override;
119 const ProcessInfo& rCurrentProcessInfo )
const override;
124 void GetValuesVector(
Vector& rValues,
125 int Step = 0 )
const override;
130 void GetFirstDerivativesVector(
Vector& rValues,
131 int Step = 0 )
const override;
136 void GetSecondDerivativesVector(
Vector& rValues,
137 int Step = 0 )
const override;
149 void AddExplicitContribution(
const VectorType& rRHSVector,
163 int Check(
const ProcessInfo& rCurrentProcessInfo )
const override;
206 void InitializeSystemMatrices(
MatrixType& rLeftHandSideMatrix,
208 Flags& rCalculationFlags)
override;
215 const double& rPointNumber)
override;
221 void CalculateAndAddKuug(
MatrixType& rLeftHandSideMatrix,
223 double& rIntegrationWeight)
override;
225 virtual void CalculateAndAddKuugTangent(
MatrixType& rLeftHandSideMatrix,
227 double& rIntegrationWeight);
232 void CalculateAndAddContactForces(
Vector& rRightHandSideVector,
234 double& rIntegrationWeight )
override;
238 virtual void CalculateAndAddNormalContactForce(
Vector& rRightHandSideVector,
ConditionVariables& rVariables,
double& rIntegrationWeight);
241 virtual void CalculateAndAddTangentContactForce(
Vector& rRightHandSideVector,
ConditionVariables& rVariables,
double& rIntegrationWeight);
244 double& CalculateNormalForceModulus(
double& rNormalForceModulus,
ConditionVariables& rVariables );
246 double CalculateCoulombsFrictionLaw(
double& rTangentForceModulus,
double& rNormalForceModulus,
ConditionVariables& rVariables );
248 double CalculateFrictionCoefficient(
const double& rTangentRelativeMovement,
const double& rDeltaTime );
260 void VectorToSkewSymmetricTensor(
const Vector& rVector,
261 Matrix& rSkewSymmetricTensor );
317 void save(
Serializer& rSerializer )
const override
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
std::size_t IndexType
Definition: flags.h:74
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
Rigid Body Point Rigid Contact Condition for 3D and 2D geometries. (base class)
Definition: rigid_body_point_rigid_contact_condition.hpp:45
RigidBodyPointRigidContactCondition()
Definition: rigid_body_point_rigid_contact_condition.hpp:185
SpatialBoundingBox::Pointer mpRigidWall
Definition: rigid_body_point_rigid_contact_condition.hpp:185
array_1d< double, 3 > PointType
Tensor order 1 definition.
Definition: rigid_body_point_rigid_contact_condition.hpp:52
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(RigidBodyPointRigidContactCondition)
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307