16 InputParameters params = validParams<Material>();
17 params.addClassDescription(
18 "Computes necessary material properties for the isotropic grain growth model");
19 params.addRequiredCoupledVar(
"T",
"Temperature in Kelvin");
20 params.addParam<Real>(
"f0s", 0.125,
"The GB energy constant ");
21 params.addRequiredParam<Real>(
"wGB",
"Diffuse GB width in the length scale of the model");
22 params.addParam<Real>(
"length_scale", 1.0e-9,
"Length scale in m, where default is nm");
23 params.addParam<Real>(
"time_scale", 1.0e-9,
"Time scale in s, where default is ns");
24 params.addParam<Real>(
27 "GB mobility input in m^4/(J*s), that overrides the temperature dependent calculation");
28 params.addParam<Real>(
"GBmob0", 0,
"Grain boundary mobility prefactor in m^4/(J*s)");
29 params.addParam<Real>(
"Q", 0,
"Grain boundary migration activation energy in eV");
30 params.addParam<Real>(
"molar_volume",
32 "Molar volume in m^3/mol, needed for temperature gradient driving force");
37 : DerivativeMaterialInterface<Material>(parameters),
38 _f0s(getParam<Real>(
"f0s")),
39 _wGB(getParam<Real>(
"wGB")),
40 _length_scale(getParam<Real>(
"length_scale")),
41 _time_scale(getParam<Real>(
"time_scale")),
42 _GBmob0(getParam<Real>(
"GBmob0")),
43 _Q(getParam<Real>(
"Q")),
44 _GBMobility(getParam<Real>(
"GBMobility")),
45 _molar_vol(getParam<Real>(
"molar_volume")),
46 _T(coupledValue(
"T")),
47 _sigma(declareProperty<Real>(
"sigma")),
48 _M_GB(declareProperty<Real>(
"M_GB")),
49 _kappa(declareProperty<Real>(
"kappa_op")),
50 _gamma(declareProperty<Real>(
"gamma_asymm")),
51 _L(declareProperty<Real>(
"L")),
52 _dLdT(parameters.hasDefaultCoupledValue(
"T")
54 : &declarePropertyDerivative<Real>(
"L", getVar(
"T", 0)->
name())),
55 _l_GB(declareProperty<Real>(
"l_GB")),
56 _mu(declareProperty<Real>(
"mu")),
57 _entropy_diff(declareProperty<Real>(
"entropy_diff")),
58 _molar_volume(declareProperty<Real>(
"molar_volume")),
59 _act_wGB(declareProperty<Real>(
"act_wGB")),
64 mooseError(
"Either a value for GBMobility or for GBmob0 and Q must be provided");
95 (*_dLdT)[_qp] = 4.0 / 3.0 * dM_GBdT /
_l_GB[_qp];