115 std::string fail_surf_type =
"";
117 pp.
query_validate(
"failure_surface", fail_surf_type, {
"wang2023",
"mohr",
"mc",
"columb"});
124 pp.
query_default(
"fracture_strength", fracture_strength, 1.e6);
130 pp.
query_default(
"compressive_strength", compressive_strength,4.e8);
131 value.
k1 = ( value.
_chi < 1/std::sqrt(2) ) ? ( 2 * value.
_chi * std::sqrt(1.0 - value.
_chi*value.
_chi) ) : 1.0;
133 tensile_strength = fracture_strength / value.
k1;
134 shear_strength = value.
_chi * tensile_strength;
135 value.
_beta_bar = (1.0 / (value.
_chi * value.
_chi)) - (compressive_strength * compressive_strength / (4.0 * value.
_chi * value.
_chi * shear_strength * shear_strength));
139 fracture_strength = tensile_strength * value.
k1;
152 value.
_sig_t = tensile_strength;
153 value.
_tau_s = shear_strength;
165 fracture_strength = 2.0 * value.
_cohesion * std::cos(phi) / (1.0 + std::sin(phi));
176 fracture_strength = 2.0 * value.
_cohesion * std::cos(phi) / (1.0 + std::sin(phi));
187 fracture_strength = 2.0 * value.
_cohesion * std::cos(phi) / (1.0 + std::sin(phi));
196 pp.
query_default(
"fracture_strength", fracture_strength,1.e6);
199 Set::Scalar irwing_length = youngs * value.
_Gc / (fracture_strength * fracture_strength);
202 value.
_l_w = irwing_length;
204 if (value.
zeta > 0.33 * irwing_length)
Util::Warning(
INFO,
"Zeta value is greater than irwing length. Consider reducing it.");
209 std::string gtype =
"";
210 std::string wtype =
"";
214 std::map<std::string,Model::Interface::Crack::Crack::GType> g_map;
217 std::map<std::string,Model::Interface::Crack::Crack::WType> w_map;