2 #if !defined(DEM_BEAM_CONSTITUTIVE_LAW_H_INCLUDED)
3 #define DEM_BEAM_CONSTITUTIVE_LAW_H_INCLUDED
7 #include "custom_utilities/AuxiliaryFunctions.h"
20 class SphericContinuumParticle;
32 virtual void SetConstitutiveLawInProperties(Properties::Pointer pProp,
bool verbose =
true);
34 virtual void SetConstitutiveLawInPropertiesWithParameters(Properties::Pointer pProp,
const Parameters&
parameters,
bool verbose =
true);
36 virtual void Check(Properties::Pointer pProp)
const;
38 virtual std::string GetTypeOfLaw();
42 virtual DEMBeamConstitutiveLaw::Pointer Clone()
const;
44 virtual void CalculateElasticConstants(
double& kn_el,
50 double calculation_area,
54 virtual void CalculateViscoDampingCoeff(
double& equiv_visco_damp_coeff_normal,
55 double& equiv_visco_damp_coeff_tangential_0,
56 double& equiv_visco_damp_coeff_tangential_1,
61 const double kt_el_1);
63 virtual void CalculateForces(
const ProcessInfo& r_process_info,
64 double OldLocalElasticContactForce[3],
65 double LocalElasticContactForce[3],
66 double LocalElasticExtraContactForce[3],
67 double LocalCoordSystem[3][3],
68 double LocalDeltDisp[3],
72 double& contact_sigma,
74 double& failure_criterion_state,
78 double calculation_area,
79 double& acumulated_damage,
82 int i_neighbour_count,
85 double& equiv_visco_damp_coeff_normal,
86 double& equiv_visco_damp_coeff_tangential_0,
87 double& equiv_visco_damp_coeff_tangential_1,
88 double LocalRelVel[3],
89 double ViscoDampingLocalContactForce[3]);
91 virtual void CalculateNormalForces(
double LocalElasticContactForce[3],
95 virtual void CalculateTangentialForces(
double OldLocalElasticContactForce[3],
96 double LocalElasticContactForce[3],
97 double LocalDeltDisp[3],
98 double LocalRelVel[3],
100 const double kt_el_1);
102 virtual void CalculateViscoDamping(
double LocalRelVel[3],
103 double ViscoDampingLocalContactForce[3],
104 double equiv_visco_damp_coeff_normal,
105 double equiv_visco_damp_coeff_tangential_0,
106 double equiv_visco_damp_coeff_tangential_1);
112 double calculation_area,
113 double LocalCoordSystem[3][3],
114 double ElasticLocalRotationalMoment[3],
115 double ViscoLocalRotationalMoment[3],
116 double equiv_poisson,
118 double LocalElasticContactForce[3],
119 double normalLocalContactForce,
120 double GlobalElasticContactForces[3],
121 double LocalCoordSystem_2[3],
122 const int i_neighbor_count);
128 double calculation_area,
129 double LocalCoordSystem[3][3],
130 double ElasticLocalRotationalMoment[3],
131 double ViscoLocalRotationalMoment[3],
132 double equiv_poisson,
134 double LocalElasticContactForce[3]);
136 virtual bool CheckRequirementsOfStressTensor();
146 virtual void save(
Serializer& rSerializer)
const override {
Definition: DEM_beam_constitutive_law.h:22
Properties::Pointer mpProperties
Definition: DEM_beam_constitutive_law.h:140
KRATOS_CLASS_POINTER_DEFINITION(DEMBeamConstitutiveLaw)
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
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_continuum_particle.h:26
#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
KRATOS_DEFINE_APPLICATION_VARIABLE(CHIMERA_APPLICATION, double, CHIMERA_DISTANCE)
parameters
Definition: fluid_chimera_analysis.py:35
def load(f)
Definition: ode_solve.py:307
Definition: mesh_converter.cpp:33