NetDEM v1.0
Loading...
Searching...
No Matches
peridigm_strength.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "utils_math.hpp"
4
5namespace netdem {
6
8public:
9 // particle breakage strength
10 double ref_size = 1.5e-3;
12
13 double weibull_modulus = 3.1; // McDowell 2002
14 double weibull_coef_a = -0.76; // Hanley et al 2015
15 double weibull_coef_b = 1.13; // Hanley et al 2015
16
17 double min_breakable_size = 0.02;
18
19 // note that the critical energy release rate is calculated with pre-assuming
20 // that the pd horizon is a same prescribed times of particle size divided by
21 // a same prescribed mesh resolution. Please refer to Zhu & Zhao, 2019 CMAME
22 // for detials
23 double GetEnergyReleaseRate(double size) {
24 double strength_ratio =
25 (double(rand()) / double(RAND_MAX) - weibull_coef_b) / weibull_coef_a;
26
27 return ref_energy_release_rate * strength_ratio * strength_ratio *
28 pow(size / ref_size, -6.0 / weibull_modulus + 1.0);
29 }
30
31 double GetEnergyReleaseRate(double size, double percentile) {
32 double strength_ratio = (percentile - weibull_coef_b) / weibull_coef_a;
33
34 return ref_energy_release_rate * strength_ratio * strength_ratio *
35 pow(size / ref_size, -6.0 / weibull_modulus + 1.0);
36 }
37};
38
39} // namespace netdem
Definition peridigm_strength.hpp:7
double GetEnergyReleaseRate(double size, double percentile)
Definition peridigm_strength.hpp:31
double GetEnergyReleaseRate(double size)
Definition peridigm_strength.hpp:23
double ref_energy_release_rate
Definition peridigm_strength.hpp:11
double weibull_modulus
Definition peridigm_strength.hpp:13
double weibull_coef_b
Definition peridigm_strength.hpp:15
double min_breakable_size
Definition peridigm_strength.hpp:17
double weibull_coef_a
Definition peridigm_strength.hpp:14
double ref_size
Definition peridigm_strength.hpp:10
Definition bond_entry.hpp:7