Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #pragma once 11 : 12 : #include "GeneralPostprocessor.h" 13 : #include "CrackMeshCut3DUserObject.h" 14 : 15 : class ParisLaw : public GeneralPostprocessor 16 : { 17 : public: 18 : ParisLaw(const InputParameters & parameters); 19 : 20 : static InputParameters validParams(); 21 : 22 : virtual void initialize() override; 23 : virtual void execute() override; 24 17 : virtual void finalize() override {} 25 : virtual Real getValue() const override; 26 : 27 : protected: 28 : /// Cutter mesh 29 : CrackMeshCut3DUserObject * _cutter; 30 : /// Number of cycles for this growth increament 31 : unsigned long int _dn; 32 : /// Length of crack growth at the point with largest K 33 : const Real _max_growth_size; 34 : /// Paris law parameters 35 : const Real _paris_law_c; 36 : const Real _paris_law_m; 37 : /// Effective K for active cutter nodes 38 : std::vector<Real> _effective_k; 39 : /// Growth length for active cutter nodes 40 : std::vector<Real> _growth_size; 41 : /// Maximum effective K 42 : Real _max_k; 43 : };