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.");
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)
const Real _paris_law_c
Paris law parameters.
const Real _max_growth_increment
Maximum crack growth increment allowed for any of the crack front points.
const ReporterMode REPORTER_MODE_ROOT
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 std::vector< Real > & _ki_vpp
The name of the reporter with K_I fracture integral values.
ParisLaw(const InputParameters ¶meters)
std::vector< Real > & _growth_increment
growth rate reporter
const std::vector< Real > & _ki_x
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("XFEMApp", ParisLaw)
const std::vector< Real > & _kii_vpp
The name of the reporter with K_II fracture integral values.
Real & _dn
Vector containing number of cycles to reach max_growth_increment postprocessor for each crack front p...
MooseUnits pow(const MooseUnits &, int)