4 #if !defined(DEM_D_CONICAL_DAMAGE_CL_H_INCLUDED)
5 #define DEM_D_CONICAL_DAMAGE_CL_H_INCLUDED
17 class SphericParticle;
29 void Check(Properties::Pointer pProp)
const override;
31 std::string GetTypeOfLaw()
override;
33 DEMDiscontinuumConstitutiveLaw::Pointer Clone()
const override;
35 std::unique_ptr<DEMDiscontinuumConstitutiveLaw> CloneUnique()
override;
37 void InitializeDependentContact(
double equiv_radius,
38 const double equiv_level_of_fouling,
39 const double equiv_young,
40 const double equiv_shear,
41 const double indentation);
46 const double equiv_level_of_fouling,
47 const double equiv_young,
48 const double equiv_shear,
50 const double normal_contact_force);
52 void InitializeDependentContactWithFEM(
double effective_radius,
53 const double equiv_level_of_fouling,
54 const double equiv_young,
55 const double equiv_shear,
56 const double indentation);
60 double& effective_radius,
61 const double equiv_level_of_fouling,
62 const double equiv_young,
63 const double equiv_shear,
65 const double normal_contact_force);
67 void CalculateForces(
const ProcessInfo& r_process_info,
68 const double OldLocalElasticContactForce[3],
69 double LocalElasticContactForce[3],
70 double LocalDeltDisp[3],
71 double LocalRelVel[3],
73 double previous_indentation,
74 double ViscoDampingLocalContactForce[3],
75 double& cohesive_force,
79 double LocalCoordSystem[3][3])
override;
81 void CalculateForcesWithFEM(
const ProcessInfo& r_process_info,
82 const double OldLocalElasticContactForce[3],
83 double LocalElasticContactForce[3],
84 double LocalDeltDisp[3],
85 double LocalRelVel[3],
87 double previous_indentation,
88 double ViscoDampingLocalContactForce[3],
89 double& cohesive_force,
92 bool& sliding)
override;
94 void CalculateTangentialForce(
const double normal_contact_force,
95 const double OldLocalElasticContactForce[3],
96 double LocalElasticContactForce[3],
97 double ViscoDampingLocalContactForce[3],
98 const double LocalDeltDisp[3],
99 const double LocalRelVel[3],
103 const double original_equiv_radius,
104 const double equiv_young,
106 double previous_indentation,
107 double& AuxElasticShearForce,
108 double& MaximumAdmisibleShearForce);
110 void CalculateTangentialForceWithFEM(
const double normal_contact_force,
111 const double OldLocalElasticContactForce[3],
112 double LocalElasticContactForce[3],
113 double ViscoDampingLocalContactForce[3],
114 const double LocalDeltDisp[3],
115 const double LocalReltVel[3],
119 const double effective_radius,
120 const double original_effective_young,
122 double previous_indentation,
123 double& AuxElasticShearForce,
124 double& MaximumAdmisibleShearForce);
126 void CalculateViscoDampingForce(
double LocalRelVel[3],
127 double ViscoDampingLocalContactForce[3],
131 void CalculateViscoDampingForceWithFEM(
double LocalRelVel[3],
132 double ViscoDampingLocalContactForce[3],
149 virtual void save(
Serializer& rSerializer)
const override {
Base class for all Conditions.
Definition: condition.h:59
Definition: contact_info_spheric_particle.h:19
Definition: DEM_D_Conical_damage_CL.h:19
~DEM_D_Conical_damage()
Definition: DEM_D_Conical_damage_CL.h:27
KRATOS_CLASS_POINTER_DEFINITION(DEM_D_Conical_damage)
DEM_D_Conical_damage()
Definition: DEM_D_Conical_damage_CL.h:25
Definition: DEM_D_Hertz_viscous_Coulomb_CL.h:15
void CalculateInelasticViscodampingEnergyFEM(double &inelastic_viscodamping_energy, double ViscoDampingLocalContactForce[3], double LocalDeltDisp[3])
Definition: DEM_D_Hertz_viscous_Coulomb_CL.cpp:389
void CalculateInelasticFrictionalEnergyFEM(double &inelastic_frictional_energy, double &AuxElasticShearForce, double LocalElasticContactForce[3])
Definition: DEM_D_Hertz_viscous_Coulomb_CL.cpp:383
void CalculateElasticEnergyDEM(double &elastic_energy, double indentation, double LocalElasticContactForce[3])
Definition: DEM_D_Hertz_viscous_Coulomb_CL.cpp:355
virtual double CalculateNormalForce(const double indentation)
Definition: DEM_discontinuum_constitutive_law.cpp:81
void CalculateElasticEnergyFEM(double &elastic_energy, double indentation, double LocalElasticContactForce[3])
Definition: DEM_D_Hertz_viscous_Coulomb_CL.cpp:375
void CalculateInelasticViscodampingEnergyDEM(double &inelastic_viscodamping_energy, double ViscoDampingLocalContactForce[3], double LocalDeltDisp[3])
Definition: DEM_D_Hertz_viscous_Coulomb_CL.cpp:369
void CalculateInelasticFrictionalEnergyDEM(double &inelastic_frictional_energy, double &AuxElasticShearForce, double LocalElasticContactForce[3])
Definition: DEM_D_Hertz_viscous_Coulomb_CL.cpp:363
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
def load(f)
Definition: ode_solve.py:307
Definition: mesh_converter.cpp:33