22 "This reporter computes the crack growth increment at all active crack front points "
23 "in the CrackMeshCut3DUserObject for fatigue crack growth based on the Paris Law. "
24 "Data for crack growth rates in this reporter are stored in the same order as in the "
25 "fracture integral VectorPostprocessors.");
26 params.
addRequiredParam<Real>(
"paris_law_c",
"parameter C in the Paris law for fatigue");
27 params.
addRequiredParam<Real>(
"paris_law_m",
"parameter m in the Paris law for fatigue");
28 params.
addParam<VectorPostprocessorName>(
29 "kii_vectorpostprocessor",
"II_KII_1",
"Name of the vectorpostprocessor that computes K_II");
31 "growth_increment_name",
33 "ReporterValueName for storing computed growth increments for the crack front points.");
35 "cycles_to_max_growth_increment_name",
37 "ReporterValueName for storing computed number of cycles to reach max_growth_increment.");
43 _paris_law_c(getParam<Real>(
"paris_law_c")),
44 _paris_law_m(getParam<Real>(
"paris_law_m")),
45 _kii_vpp(getVectorPostprocessorValue(
46 "kii_vectorpostprocessor", getParam<VectorPostprocessorName>(
"kii_vectorpostprocessor"))),
47 _dn(declareValueByName<Real>(getParam<ReporterValueName>(
"cycles_to_max_growth_increment_name"),
49 _growth_increment(declareValueByName<
std::vector<Real>>(
58 std::vector<Real> effective_k(
_ki_x.size(), 0.0);
59 for (std::size_t i = 0; i <
_ki_vpp.size(); ++i)
61 effective_k[i] = std::sqrt(Utility::pow<2>(
_ki_vpp[i]) + 2 * Utility::pow<2>(
_kii_vpp[i]));
63 Real _max_k = *std::max_element(effective_k.begin(), effective_k.end());
65 _dn = std::numeric_limits<Real>::max();
69 for (std::size_t i = 0; i <
_ki_vpp.size(); ++i)
registerMooseObject("XFEMApp", ParisLaw)
const ReporterMode REPORTER_MODE_ROOT
static InputParameters validParams()
const Real _max_growth_increment
Maximum crack growth increment allowed for any of the crack front points.
const std::vector< Real > & _ki_vpp
The name of the reporter with K_I fracture integral values.
const std::vector< Real > & _ki_x
Real & _dn
Vector containing number of cycles to reach max_growth_increment postprocessor for each crack front p...
virtual void computeGrowth(std::vector< int > &index) override
Compute crack growth increment at the specified crack front point and store increments in an internal...
static InputParameters validParams()
const Real _paris_law_c
Paris law parameters.
std::vector< Real > & _growth_increment
growth rate reporter
ParisLaw(const InputParameters ¶meters)
const std::vector< Real > & _kii_vpp
The name of the reporter with K_II fracture integral values.