4 #if !defined(DEM_D_BENTONITE_COLLOID_CL_H_INCLUDED)
5 #define DEM_D_BENTONITE_COLLOID_CL_H_INCLUDED
13 class SphericParticle;
22 std::string GetTypeOfLaw()
override;
26 DEMDiscontinuumConstitutiveLaw::Pointer Clone()
const override;
28 std::unique_ptr<DEMDiscontinuumConstitutiveLaw> CloneUnique()
override;
30 void CalculateForces(
const ProcessInfo& r_process_info,
31 const double OldLocalContactForce[3],
32 double LocalElasticContactForce[3],
33 double LocalDeltDisp[3],
34 double LocalRelVel[3],
36 double previous_indentation,
37 double ViscoDampingLocalContactForce[3],
38 double& cohesive_force,
41 bool& sliding,
double LocalCoordSystem[3][3])
override;
43 void CalculateForcesWithFEM(
const ProcessInfo& r_process_info,
44 const double OldLocalContactForce[3],
45 double LocalElasticContactForce[3],
46 double LocalDeltDisp[3],
47 double LocalRelVel[3],
49 double previous_indentation,
50 double ViscoDampingLocalContactForce[3],
51 double& cohesive_force,
54 bool& sliding)
override;
58 double CalculateNormalForce(
const double distance,
const double cation_concentration);
59 double CalculateVanDerWaalsForce(
const double);
60 double CalculateDiffuseDoubleLayerForce(
const double distance,
const double cation_concentration);
64 const double indentation)
override;
68 const double indentation)
override;
70 template <
class NeighbourClassType>
71 void CalculateTangentialForceWithNeighbour(
const double normal_contact_force,
72 const double OldLocalContactForce[3],
73 double LocalElasticContactForce[3],
74 double ViscoDampingLocalContactForce[3],
75 const double LocalDeltDisp[3],
76 const double LocalRelVel[3],
79 NeighbourClassType*
const neighbour,
81 double previous_indentation);
83 void CalculateViscoDampingForce(
double LocalRelVel[3],
84 double ViscoDampingLocalContactForce[3],
88 void CalculateViscoDampingForceWithFEM(
double LocalRelVel[3],
89 double ViscoDampingLocalContactForce[3],
106 virtual void save(
Serializer& rSerializer)
const override {
Base class for all Conditions.
Definition: condition.h:59
Definition: DEM_D_Bentonite_Colloid_CL.h:15
double mEquivRadius
Definition: DEM_D_Bentonite_Colloid_CL.h:98
double mA_p
Definition: DEM_D_Bentonite_Colloid_CL.h:94
KRATOS_CLASS_POINTER_DEFINITION(DEM_D_Bentonite_Colloid)
double mD_p
Definition: DEM_D_Bentonite_Colloid_CL.h:95
double mDDLCoefficient
Definition: DEM_D_Bentonite_Colloid_CL.h:97
double mA_H
Definition: DEM_D_Bentonite_Colloid_CL.h:93
double mThickness
Definition: DEM_D_Bentonite_Colloid_CL.h:96
~DEM_D_Bentonite_Colloid()
Definition: DEM_D_Bentonite_Colloid_CL.h:24
Definition: DEM_discontinuum_constitutive_law.h:22
virtual double CalculateNormalForce(const double indentation)
Definition: DEM_discontinuum_constitutive_law.cpp:81
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
Definition: spheric_particle.h:31
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: mesh_converter.cpp:33