4 #if !defined(DEM_D_STRESS_DEPENDENT_COHESIVE_LAW_CL_H_INCLUDED)
5 #define DEM_D_STRESS_DEPENDENT_COHESIVE_LAW_CL_H_INCLUDED
27 void Check(Properties::Pointer pProp)
const override;
29 std::string GetTypeOfLaw()
override;
31 DEMDiscontinuumConstitutiveLaw::Pointer Clone()
const override;
33 std::unique_ptr<DEMDiscontinuumConstitutiveLaw> CloneUnique()
override;
35 void CalculateIndentedContactArea(
const double radius,
36 const double other_radius,
37 const double indentation,
38 double &calculation_area);
40 void CalculateIndentedContactAreaWithFEM(
const double radius,
41 const double indentation,
42 double &calculation_area,
43 const double ini_delta = 0.0);
47 const double indentation)
override;
51 const double indentation,
52 const double ini_delta = 0.0)
override;
54 void CalculateForces(
const ProcessInfo& r_process_info,
55 const double OldLocalElasticContactForce[3],
56 double LocalElasticContactForce[3],
57 double LocalDeltDisp[3],
58 double LocalRelVel[3],
60 double previous_indentation,
61 double ViscoDampingLocalContactForce[3],
62 double& cohesive_force,
66 double LocalCoordSystem[3][3])
override;
68 void CalculateForcesWithFEM(
const ProcessInfo& r_process_info,
69 const double OldLocalElasticContactForce[3],
70 double LocalElasticContactForce[3],
71 double LocalDeltDisp[3],
72 double LocalRelVel[3],
74 double previous_indentation,
75 double ViscoDampingLocalContactForce[3],
76 double& cohesive_force,
79 bool& sliding)
override;
81 double CalculateStressDependentCohesiveNormalForce(
SphericParticle*
const element1,
83 const double normal_contact_force,
84 const double indentation,
89 const double normal_contact_force,
90 const double indentation,
111 virtual void save(
Serializer& rSerializer)
const override {
Base class for all Conditions.
Definition: condition.h:59
Definition: DEM_D_Linear_viscous_Coulomb_CL.h:15
void CalculateViscoDampingForceWithFEM(double LocalRelVel[3], double ViscoDampingLocalContactForce[3], SphericParticle *const element, Condition *const wall)
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:263
void CalculateInelasticViscodampingEnergyDEM(double &inelastic_viscodamping_energy, double ViscoDampingLocalContactForce[3], double LocalDeltDisp[3])
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:313
void CalculateInelasticViscodampingEnergyFEM(double &inelastic_viscodamping_energy, double ViscoDampingLocalContactForce[3], double LocalDeltDisp[3])
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:333
virtual double CalculateNormalForce(const double indentation)
Definition: DEM_discontinuum_constitutive_law.cpp:81
void CalculateInelasticFrictionalEnergyFEM(double &inelastic_frictional_energy, double &AuxElasticShearForce, double LocalElasticContactForce[3])
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:327
void CalculateViscoDampingForce(double LocalRelVel[3], double ViscoDampingLocalContactForce[3], SphericParticle *const element1, SphericParticle *const element2)
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:154
void CalculateElasticEnergyDEM(double &elastic_energy, double indentation, double LocalElasticContactForce[3])
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:299
void CalculateInelasticFrictionalEnergyDEM(double &inelastic_frictional_energy, double &AuxElasticShearForce, double LocalElasticContactForce[3])
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:307
void CalculateElasticEnergyFEM(double &elastic_energy, double indentation, double LocalElasticContactForce[3])
Definition: DEM_D_Linear_viscous_Coulomb_CL.cpp:319
void CalculateTangentialForceWithNeighbour(const double normal_contact_force, const double OldLocalElasticContactForce[3], double LocalElasticContactForce[3], double ViscoDampingLocalContactForce[3], const double LocalDeltDisp[3], const double LocalRelVel[3], bool &sliding, SphericParticle *const element, NeighbourClassType *const neighbour, double indentation, double previous_indentation, double &modulus_of_elastic_shear_force, double &maximum_admissible_shear_force)
Definition: DEM_D_Linear_viscous_Coulomb_CL.h:89
Definition: DEM_D_Stress_dependent_cohesive_CL.h:17
KRATOS_CLASS_POINTER_DEFINITION(DEM_D_Stress_Dependent_Cohesive)
DEM_D_Stress_Dependent_Cohesive()
Definition: DEM_D_Stress_dependent_cohesive_CL.h:23
~DEM_D_Stress_Dependent_Cohesive()
Definition: DEM_D_Stress_dependent_cohesive_CL.h:25
Definition: DEM_discontinuum_constitutive_law.h:22
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
initial_time_step
Definition: edgebased_PureConvection.py:113
float radius
Definition: mesh_to_mdpa_converter.py:18
def load(f)
Definition: ode_solve.py:307
Definition: mesh_converter.cpp:33