7 #if !defined(DEM_PARALLEL_BOND_CL_H_INCLUDE)
8 #define DEM_PARALLEL_BOND_CL_H_INCLUDE
27 void TransferParametersToProperties(
const Parameters&
parameters, Properties::Pointer pProp)
override;
28 std::string GetTypeOfLaw()
override;
29 void Check(Properties::Pointer pProp)
const override;
33 DEMContinuumConstitutiveLaw::Pointer Clone()
const override;
35 virtual void CalculateContactArea(
double radius,
double other_radius,
double& calculation_area)
override;
36 virtual double CalculateContactArea(
double radius,
double other_radius,
Vector&
v)
override;
37 void GetContactArea(
const double radius,
const double other_radius,
const Vector& vector_of_initial_areas,
const int neighbour_position,
double& calculation_area)
override;
38 void CalculateElasticConstants(
double& kn_el,
double& kt_el,
double initial_dist,
double equiv_young,
42 virtual void CalculateUnbondedViscoDampingForce(
double LocalRelVel[3],
43 double UnbondedViscoDampingLocalContactForce[3],
48 double LocalMaxSearchDistance(
const int i,
54 virtual double GetYoungModulusForComputingRotationalMoments(
const double& equiv_young);
56 virtual void CheckFailure(
const int i_neighbour_count,
59 double& contact_sigma,
61 double LocalElasticContactForce[3],
62 double ViscoDampingLocalContactForce[3],
63 double ElasticLocalRotationalMoment[3],
64 double ViscoLocalRotationalMoment[3])
override;
66 void CalculateForces(
const ProcessInfo& r_process_info,
67 double OldLocalElasticContactForce[3],
68 double LocalElasticContactForce[3],
69 double LocalElasticExtraContactForce[3],
70 double LocalCoordSystem[3][3],
71 double LocalDeltDisp[3],
74 double& contact_sigma,
76 double& failure_criterion_state,
80 double calculation_area,
81 double& acumulated_damage,
84 int i_neighbour_count,
87 double &equiv_visco_damp_coeff_normal,
88 double &equiv_visco_damp_coeff_tangential,
89 double LocalRelVel[3],
90 double ViscoDampingLocalContactForce[3])
override;
92 virtual double ComputeNormalUnbondedForce(
double unbonded_indentation);
94 void CalculateNormalForces(
double LocalElasticContactForce[3],
98 double calculation_area,
99 double& acumulated_damage,
102 int i_neighbour_count,
105 double& contact_sigma);
107 virtual void CalculateViscoDampingCoeff(
double &equiv_visco_damp_coeff_normal,
108 double &equiv_visco_damp_coeff_tangential,
112 const double kt_el)
override;
114 void CalculateViscoDamping(
double LocalRelVel[3],
115 double ViscoDampingLocalContactForce[3],
117 double equiv_visco_damp_coeff_normal,
118 double equiv_visco_damp_coeff_tangential,
121 int i_neighbour_count,
125 virtual void CalculateTangentialForces(
double OldLocalElasticContactForce[3],
126 double LocalElasticContactForce[3],
127 double LocalElasticExtraContactForce[3],
128 double ViscoDampingLocalContactForce[3],
129 double LocalCoordSystem[3][3],
130 double LocalDeltDisp[3],
131 double LocalRelVel[3],
133 const double equiv_shear,
136 double calculation_area,
137 double& failure_criterion_state,
140 int i_neighbour_count,
148 double calculation_area,
149 double LocalCoordSystem[3][3],
150 double ElasticLocalRotationalMoment[3],
151 double ViscoLocalRotationalMoment[3],
152 double equiv_poisson,
154 double LocalElasticContactForce[3],
155 double normalLocalContactForce,
156 double GlobalElasticContactForces[3],
157 double LocalCoordSystem_2[3],
158 const int i_neighbor_count)
override;
164 double calculation_area,
165 double LocalCoordSystem[3][3],
166 double ElasticLocalRotationalMoment[3],
167 double ViscoLocalRotationalMoment[3],
168 double equiv_poisson,
170 double LocalElasticContactForce[3])
override;
173 double LocalElasticExtraContactForce[3],
175 double LocalCoordSystem[3][3],
177 const double calculation_area,
182 double mUnbondedLocalElasticContactForce2 = 0.0;
183 double mUnbondedNormalElasticConstant = 0.0;
184 double mUnbondedTangentialElasticConstant = 0.0;
185 double mUnbondedViscoDampingLocalContactForce[3] = {0.0};
186 double mBondedViscoDampingLocalContactForce[3] = {0.0};
187 double mBondedScalingFactor[3] = {0.0};
188 double mUnbondedEquivViscoDampCoeffTangential = 0.0;
189 double mUnbondedEquivViscoDampCoeffNormal = 0.0;
190 double mInitialIndentationForBondedPart = 0.0;
191 double mAccumulatedBondedTangentialLocalDisplacement[2] = {0.0};
192 double mBondedLocalContactNormalTorque[3] = {0.0};
193 double mBondedLocalContactTangentTorque[3] = {0.0};
Definition: DEM_parallel_bond_CL.h:16
~DEM_parallel_bond()
Definition: DEM_parallel_bond_CL.h:31
double mKt
Definition: DEM_parallel_bond_CL.h:195
void AddContributionOfShearStrainParallelToBond(double OldLocalElasticContactForce[3], double LocalElasticExtraContactForce[3], array_1d< double, 3 > &OldElasticExtraContactForce, double LocalCoordSystem[3][3], const double kt_el, const double calculation_area, SphericContinuumParticle *element1, SphericContinuumParticle *element2)
KRATOS_CLASS_POINTER_DEFINITION(DEM_parallel_bond)
DEM_parallel_bond()
Definition: DEM_parallel_bond_CL.h:25
double mKn
Definition: DEM_parallel_bond_CL.h:194
Definition: DEM_continuum_constitutive_law.h:23
virtual void CalculateViscoDamping(double LocalRelVel[3], double ViscoDampingLocalContactForce[3], double indentation, double equiv_visco_damp_coeff_normal, double equiv_visco_damp_coeff_tangential, bool &sliding, int failure_id)
Definition: DEM_continuum_constitutive_law.cpp:50
virtual void CalculateNormalForces(double LocalElasticContactForce[3], const double kn_el, double equiv_young, double indentation, double calculation_area, double &acumulated_damage, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, int time_steps, const ProcessInfo &r_process_info)
Definition: DEM_continuum_constitutive_law.h:145
virtual void CalculateTangentialForces(double OldLocalElasticContactForce[3], double LocalElasticContactForce[3], double LocalElasticExtraContactForce[3], double ViscoDampingLocalContactForce[3], double LocalCoordSystem[3][3], double LocalDeltDisp[3], double LocalRelVel[3], const double kt_el, const double equiv_shear, double &contact_sigma, double &contact_tau, double indentation, double calculation_area, double &failure_criterion_state, SphericContinuumParticle *element1, SphericContinuumParticle *element2, int i_neighbour_count, bool &sliding, const ProcessInfo &r_process_info)
Definition: DEM_continuum_constitutive_law.h:159
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
Definition: spheric_continuum_particle.h:26
Definition: spheric_particle.h:31
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
parameters
Definition: fluid_chimera_analysis.py:35
v
Definition: generate_convection_diffusion_explicit_element.py:114
float radius
Definition: mesh_to_mdpa_converter.py:18
integer i
Definition: TensorModule.f:17
Definition: mesh_converter.cpp:33