Line data Source code
1 : //* This file is part of the RACCOON application 2 : //* being developed at Dolbow lab at Duke University 3 : //* http://dolbow.pratt.duke.edu 4 : 5 : #include "CrackSurfaceDensity.h" 6 : 7 : registerMooseObject("raccoonApp", CrackSurfaceDensity); 8 : 9 : InputParameters 10 138 : CrackSurfaceDensity::validParams() 11 : { 12 138 : InputParameters params = Material::validParams(); 13 138 : params += BaseNameInterface::validParams(); 14 138 : params.addClassDescription( 15 : "This class computes the crack surface density $\\gamma = \\dfrac{1}{c_0 l} (\\alpha + l^2 " 16 : "\\grad d \\cdot \\grad d)$, where $\\alpha$ is the crack geometric function, $c_0$ is the " 17 : "normalization constant, and $l$ is the phase-field regularization length."); 18 : 19 276 : params.addRequiredCoupledVar("phase_field", "The phase-field variable"); 20 276 : params.addParam<MaterialPropertyName>( 21 : "normalization_constant", "c0", "The normalization constant"); 22 276 : params.addParam<MaterialPropertyName>( 23 : "regularization_length", "l", "The phase-field regularization length"); 24 276 : params.addParam<MaterialPropertyName>( 25 : "crack_geometric_function", "alpha", "The crack geometric function"); 26 276 : params.addParam<MaterialPropertyName>( 27 : "crack_surface_density", "gamma", "Name of the crack surface density"); 28 : 29 138 : return params; 30 0 : } 31 : 32 0 : CrackSurfaceDensity::CrackSurfaceDensity(const InputParameters & parameters) 33 : : Material(parameters), 34 : BaseNameInterface(parameters), 35 0 : _grad_d(adCoupledGradient("phase_field")), 36 0 : _c0(getADMaterialProperty<Real>(prependBaseName("normalization_constant", true))), 37 0 : _l(getADMaterialProperty<Real>(prependBaseName("regularization_length", true))), 38 0 : _alpha(getADMaterialProperty<Real>(prependBaseName("crack_geometric_function", true))), 39 0 : _gamma(declareADProperty<Real>(prependBaseName("crack_surface_density", true))) 40 : { 41 0 : } 42 : 43 : void 44 0 : CrackSurfaceDensity::computeQpProperties() 45 : { 46 0 : _gamma[_qp] = 47 0 : (_alpha[_qp] + _l[_qp] * _l[_qp] * _grad_d[_qp] * _grad_d[_qp]) / _c0[_qp] / _l[_qp]; 48 0 : }