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 : #include "GrandPotentialSinteringMaterial.h"
11 : #include "libmesh/quadrature.h"
12 : #include "libmesh/utility.h"
13 :
14 : registerMooseObject("PhaseFieldApp", GrandPotentialSinteringMaterial);
15 :
16 : InputParameters
17 235 : GrandPotentialSinteringMaterial::validParams()
18 : {
19 235 : InputParameters params = Material::validParams();
20 235 : params.addClassDescription(
21 : "Includes switching and thermodynamic properties for the grand potential sintering model");
22 470 : params.addRequiredCoupledVarWithAutoBuild(
23 : "etas", "var_name_base", "op_num", "Array of order parameters that describe solid phase");
24 470 : params.addRequiredCoupledVar("chemical_potential", "The name of the chemical potential variable");
25 470 : params.addRequiredCoupledVar("void_op", "The name of the void phase order parameter");
26 470 : params.addRequiredCoupledVar("Temperature", "Name of the temperature variable with units of K");
27 470 : params.addParam<MaterialPropertyName>(
28 : "solid_energy_coefficient",
29 470 : 1.0,
30 : "Parabolic solid energy coefficient (energy/volume). Only used for parabolic energy.");
31 470 : params.addRequiredParam<MaterialPropertyName>(
32 : "void_energy_coefficient", "Parabolic void energy coefficient (energy/volume)");
33 470 : params.addParam<Real>("surface_energy", 19.7, "Surface energy in units of problem (energy/area)");
34 470 : params.addParam<Real>(
35 470 : "grainboundary_energy", 9.86, "Grain boundary energy in units of problem (energy/area)");
36 470 : params.addParam<Real>("int_width", 1, "Interface width in units of problem (length)");
37 470 : params.addParam<Real>("surface_switch_value",
38 470 : 0.3,
39 : "Value between 0 and 1 that determines when the interface begins to switch "
40 : "from surface to GB. Small values give less error while large values "
41 : "converge better.");
42 470 : params.addRequiredParam<MaterialPropertyName>(
43 : "equilibrium_vacancy_concentration",
44 : "Name of material that determines the equilibrium vacancy concentration in the solid phase");
45 470 : params.addParam<Real>("atomic_volume", 0.04092, "Atomic volume of material");
46 470 : MooseEnum solid_energy_model("PARABOLIC DILUTE IDEAL", "PARABOLIC");
47 470 : params.addParam<MooseEnum>("solid_energy_model",
48 : solid_energy_model,
49 : "Type of energy function to use for the solid phase.");
50 470 : params.addParam<bool>(
51 470 : "mass_conservation", false, "imposing strict mass conservation formulation");
52 235 : return params;
53 235 : }
54 :
55 180 : GrandPotentialSinteringMaterial::GrandPotentialSinteringMaterial(const InputParameters & parameters)
56 : : DerivativeMaterialInterface<Material>(parameters),
57 180 : _neta(coupledComponents("etas")),
58 180 : _eta(_neta),
59 180 : _eta_name(_neta),
60 180 : _w(coupledValue("chemical_potential")),
61 180 : _w_name(coupledName("chemical_potential", 0)),
62 180 : _phi(coupledValue("void_op")),
63 180 : _phi_name(coupledName("void_op", 0)),
64 180 : _cs_eq_name(getParam<MaterialPropertyName>("equilibrium_vacancy_concentration")),
65 180 : _cs_eq(getMaterialProperty<Real>(_cs_eq_name)),
66 180 : _dcs_eq(_neta),
67 180 : _d2cs_eq(_neta),
68 180 : _T(coupledValue("Temperature")),
69 360 : _kv(getMaterialProperty<Real>("void_energy_coefficient")),
70 360 : _ks(getMaterialProperty<Real>("solid_energy_coefficient")),
71 180 : _hv(declareProperty<Real>("hv")),
72 180 : _dhv(declarePropertyDerivative<Real>("hv", _phi_name)),
73 180 : _d2hv(declarePropertyDerivative<Real>("hv", _phi_name, _phi_name)),
74 180 : _hs(declareProperty<Real>("hs")),
75 180 : _dhs(declarePropertyDerivative<Real>("hs", _phi_name)),
76 180 : _d2hs(declarePropertyDerivative<Real>("hs", _phi_name, _phi_name)),
77 180 : _chi(declareProperty<Real>("chi")),
78 180 : _dchidphi(declarePropertyDerivative<Real>("chi", _phi_name)),
79 180 : _dchidw(declarePropertyDerivative<Real>("chi", _w_name)),
80 180 : _d2chidphi2(declarePropertyDerivative<Real>("chi", _phi_name, _phi_name)),
81 180 : _d2chidw2(declarePropertyDerivative<Real>("chi", _w_name, _w_name)),
82 180 : _d2chidphidw(declarePropertyDerivative<Real>("chi", _phi_name, _w_name)),
83 180 : _rhov(declareProperty<Real>("rhov")),
84 180 : _drhovdw(declarePropertyDerivative<Real>("rhov", _w_name)),
85 180 : _rhos(declareProperty<Real>("rhos")),
86 180 : _drhosdw(declarePropertyDerivative<Real>("rhos", _w_name)),
87 180 : _d2rhosdw2(declarePropertyDerivative<Real>("rhos", _w_name, _w_name)),
88 180 : _drhos(_neta),
89 180 : _d2rhosdwdeta(_neta),
90 180 : _d2rhos(_neta),
91 180 : _omegav(declareProperty<Real>("omegav")),
92 180 : _domegavdw(declarePropertyDerivative<Real>("omegav", _w_name)),
93 180 : _d2omegavdw2(declarePropertyDerivative<Real>("omegav", _w_name, _w_name)),
94 180 : _omegas(declareProperty<Real>("omegas")),
95 180 : _domegasdw(declarePropertyDerivative<Real>("omegas", _w_name)),
96 180 : _d2omegasdw2(declarePropertyDerivative<Real>("omegas", _w_name, _w_name)),
97 180 : _domegasdeta(_neta),
98 180 : _d2omegasdwdeta(_neta),
99 180 : _d2omegasdetadeta(_neta),
100 180 : _mu(declareProperty<Real>("mu")),
101 180 : _dmu(declarePropertyDerivative<Real>("mu", _phi_name)),
102 180 : _d2mu(declarePropertyDerivative<Real>("mu", _phi_name, _phi_name)),
103 180 : _kappa(declareProperty<Real>("kappa")),
104 180 : _dkappa(declarePropertyDerivative<Real>("kappa", _phi_name)),
105 180 : _d2kappa(declarePropertyDerivative<Real>("kappa", _phi_name, _phi_name)),
106 180 : _gamma(declareProperty<Real>("gamma")),
107 180 : _hv_c_min(declareProperty<Real>("hv_c_min")),
108 180 : _dhv_c_mindphi(declarePropertyDerivative<Real>("hv_c_min", _phi_name)),
109 180 : _d2hv_c_mindphi2(declarePropertyDerivative<Real>("hv_c_min", _phi_name, _phi_name)),
110 180 : _hs_c_min(declareProperty<Real>("hs_c_min")),
111 180 : _dhs_c_mindphi(declarePropertyDerivative<Real>("hs_c_min", _phi_name)),
112 180 : _d2hs_c_mindphi2(declarePropertyDerivative<Real>("hs_c_min", _phi_name, _phi_name)),
113 180 : _dhs_c_min(_neta),
114 180 : _d2hs_c_min(_neta),
115 180 : _hv_over_kVa(declareProperty<Real>("hv_over_kVa")),
116 180 : _dhv_over_kVadphi(declarePropertyDerivative<Real>("hv_over_kVa", _phi_name)),
117 180 : _d2hv_over_kVadphi2(declarePropertyDerivative<Real>("hv_over_kVa", _phi_name, _phi_name)),
118 180 : _hs_over_kVa(declareProperty<Real>("hs_over_kVa")),
119 180 : _dhs_over_kVadphi(declarePropertyDerivative<Real>("hs_over_kVa", _phi_name)),
120 180 : _d2hs_over_kVadphi2(declarePropertyDerivative<Real>("hs_over_kVa", _phi_name, _phi_name)),
121 :
122 360 : _sigma_s(getParam<Real>("surface_energy")),
123 360 : _sigma_gb(getParam<Real>("grainboundary_energy")),
124 360 : _int_width(getParam<Real>("int_width")),
125 360 : _switch(getParam<Real>("surface_switch_value")),
126 360 : _Va(getParam<Real>("atomic_volume")),
127 360 : _solid_energy(getParam<MooseEnum>("solid_energy_model")),
128 180 : _mu_s(6.0 * _sigma_s / _int_width),
129 180 : _mu_gb(6.0 * _sigma_gb / _int_width),
130 180 : _kappa_s(0.75 * _sigma_s * _int_width),
131 180 : _kappa_gb(0.75 * _sigma_gb * _int_width),
132 180 : _kB(8.617343e-5), // eV/K
133 540 : _mass_conservation(getParam<bool>("mass_conservation"))
134 : {
135 180 : if ((_switch > 1.0) || (_switch < 0.0))
136 0 : mooseError("GrandPotentialSinteringMaterial: surface_switch_value should be between 0 and 1");
137 :
138 180 : if (_mass_conservation && _solid_energy > 0)
139 0 : mooseError("GrandPotentialSinteringMaterial: strict mass conservation is currently only "
140 : "applicable to parabolic free energy");
141 :
142 612 : for (unsigned int i = 0; i < _neta; ++i)
143 : {
144 432 : _eta[i] = &coupledValue("etas", i);
145 432 : _eta_name[i] = coupledName("etas", i);
146 432 : _dcs_eq[i] = &getMaterialPropertyDerivativeByName<Real>(_cs_eq_name, _eta_name[i]);
147 432 : _d2cs_eq[i].resize(_neta);
148 432 : _drhos[i] = &declarePropertyDerivative<Real>("rhos", _eta_name[i]);
149 432 : _d2rhos[i].resize(_neta);
150 432 : _d2rhosdwdeta[i] = &declarePropertyDerivative<Real>("rhos", _w_name, _eta_name[i]);
151 432 : _domegasdeta[i] = &declarePropertyDerivative<Real>("omegas", _eta_name[i]);
152 432 : _d2omegasdwdeta[i] = &declarePropertyDerivative<Real>("omegas", _w_name, _eta_name[i]);
153 432 : _d2omegasdetadeta[i].resize(_neta);
154 432 : _dhs_c_min[i] = &declarePropertyDerivative<Real>("hs_c_min", _eta_name[i]);
155 432 : _d2hs_c_min[i].resize(_neta);
156 :
157 1224 : for (unsigned int j = 0; j <= i; ++j)
158 : {
159 792 : _d2cs_eq[j][i] =
160 792 : &getMaterialPropertyDerivativeByName<Real>(_cs_eq_name, _eta_name[j], _eta_name[i]);
161 792 : _d2rhos[j][i] = &declarePropertyDerivative<Real>("rhos", _eta_name[j], _eta_name[i]);
162 792 : _d2omegasdetadeta[j][i] =
163 1584 : &declarePropertyDerivative<Real>("omegas", _eta_name[j], _eta_name[i]);
164 792 : _d2hs_c_min[j][i] = &declarePropertyDerivative<Real>("hs_c_min", _eta_name[j], _eta_name[i]);
165 : }
166 : }
167 180 : }
168 :
169 : void
170 6827812 : GrandPotentialSinteringMaterial::computeQpProperties()
171 : {
172 : // Calculate phase switching functions
173 6827812 : _hv[_qp] = 0.0;
174 6827812 : _dhv[_qp] = 0.0;
175 6827812 : _d2hv[_qp] = 0.0;
176 :
177 6827812 : if (_phi[_qp] >= 1.0)
178 1414613 : _hv[_qp] = 1.0;
179 5413199 : else if (_phi[_qp] > 0.0)
180 : {
181 4151148 : _hv[_qp] = _phi[_qp] * _phi[_qp] * _phi[_qp] * (10.0 + _phi[_qp] * (-15.0 + _phi[_qp] * 6.0));
182 4151148 : _dhv[_qp] = 30.0 * _phi[_qp] * _phi[_qp] * (_phi[_qp] - 1.0) * (_phi[_qp] - 1.0);
183 4151148 : _d2hv[_qp] = 60.0 * _phi[_qp] * (2.0 * _phi[_qp] - 1.0) * (_phi[_qp] - 1.0);
184 : }
185 :
186 6827812 : _hs[_qp] = 1.0 - _hv[_qp];
187 6827812 : _dhs[_qp] = -_dhv[_qp];
188 6827812 : _d2hs[_qp] = -_d2hv[_qp];
189 :
190 : // Calculate interface switching function
191 6827812 : Real phi = _phi[_qp] / _switch;
192 : Real f = 0.0;
193 : Real df = 0.0;
194 : Real d2f = 0.0;
195 6827812 : if (phi >= 1.0)
196 : f = 1.0;
197 3171656 : else if (phi > 0.0)
198 : {
199 1909605 : f = phi * phi * phi * (10.0 + phi * (-15.0 + phi * 6.0));
200 1909605 : df = 30.0 / _switch * phi * phi * (phi - 1.0) * (phi - 1.0);
201 1909605 : d2f = 60.0 * phi / (_switch * _switch) * (2.0 * phi - 1.0) * (phi - 1.0);
202 : }
203 :
204 : // Equilibrium vacancy concentration
205 : Real cv_eq = 1.0;
206 :
207 : // Calculate the void phase density and potentials
208 6827812 : _rhov[_qp] = _w[_qp] / (_Va * _Va * _kv[_qp]) + cv_eq / _Va;
209 6827812 : _drhovdw[_qp] = 1.0 / (_Va * _Va * _kv[_qp]);
210 :
211 6827812 : _omegav[_qp] = -0.5 * _w[_qp] * _w[_qp] / (_Va * _Va * _kv[_qp]) - _w[_qp] * cv_eq / _Va;
212 6827812 : _domegavdw[_qp] = -_rhov[_qp];
213 6827812 : _d2omegavdw2[_qp] = -_drhovdw[_qp];
214 :
215 : // Calculate solid phase density and potential
216 : Real d3rhosdw3 = 0;
217 6827812 : switch (_solid_energy)
218 : {
219 6766612 : case 0: // PARABOLIC
220 : {
221 6766612 : _rhos[_qp] = _w[_qp] / (_Va * _Va * _ks[_qp]) + _cs_eq[_qp] / _Va;
222 6766612 : _drhosdw[_qp] = 1.0 / (_Va * _Va * _ks[_qp]);
223 6766612 : _d2rhosdw2[_qp] = 0.0;
224 : d3rhosdw3 = 0.0;
225 :
226 6766612 : _omegas[_qp] =
227 6766612 : -0.5 * _w[_qp] * _w[_qp] / (_Va * _Va * _ks[_qp]) - _w[_qp] * _cs_eq[_qp] / _Va;
228 6766612 : _domegasdw[_qp] = -_rhos[_qp];
229 6766612 : _d2omegasdw2[_qp] = -_drhosdw[_qp];
230 :
231 : // bodyforce and matreact coefficients for strict mass conservation case
232 6766612 : _hv_c_min[_qp] = _hv[_qp] * 1.0;
233 6766612 : _dhv_c_mindphi[_qp] = _dhv[_qp] * 1.0;
234 6766612 : _d2hv_c_mindphi2[_qp] = _d2hv[_qp] * 1.0;
235 6766612 : _hs_c_min[_qp] = _hs[_qp] * _cs_eq[_qp];
236 6766612 : _dhs_c_mindphi[_qp] = _dhs[_qp] * _cs_eq[_qp];
237 6766612 : _d2hs_c_mindphi2[_qp] = _d2hs[_qp] * _cs_eq[_qp];
238 6766612 : _hv_over_kVa[_qp] = _hv[_qp] / (_Va * _kv[_qp]);
239 6766612 : _dhv_over_kVadphi[_qp] = _dhv[_qp] / (_Va * _kv[_qp]);
240 6766612 : _d2hv_over_kVadphi2[_qp] = _d2hv[_qp] / (_Va * _kv[_qp]);
241 6766612 : _hs_over_kVa[_qp] = _hs[_qp] / (_Va * _ks[_qp]);
242 6766612 : _dhs_over_kVadphi[_qp] = _dhs[_qp] / (_Va * _ks[_qp]);
243 6766612 : _d2hs_over_kVadphi2[_qp] = _d2hs[_qp] / (_Va * _ks[_qp]);
244 :
245 20362260 : for (unsigned int i = 0; i < _neta; ++i)
246 : {
247 13595648 : (*_drhos[i])[_qp] = (*_dcs_eq[i])[_qp] / _Va;
248 13595648 : (*_d2rhosdwdeta[i])[_qp] = 0.0;
249 13595648 : (*_domegasdeta[i])[_qp] = -_w[_qp] * (*_dcs_eq[i])[_qp] / _Va;
250 13595648 : (*_d2omegasdwdeta[i])[_qp] = -(*_dcs_eq[i])[_qp] / _Va;
251 13595648 : (*_dhs_c_min[i])[_qp] = _hs[_qp] * (*_dcs_eq[i])[_qp];
252 34113968 : for (unsigned int j = i; j < _neta; ++j)
253 : {
254 20518320 : (*_d2rhos[i][j])[_qp] = (*_d2cs_eq[i][j])[_qp] / _Va;
255 20518320 : (*_d2omegasdetadeta[i][j])[_qp] = -_w[_qp] * (*_d2cs_eq[i][j])[_qp] / _Va;
256 20518320 : (*_d2hs_c_min[i][j])[_qp] = _hs[_qp] * (*_d2cs_eq[i][j])[_qp];
257 : }
258 : }
259 : break;
260 : } // case 0; // PARABOLIC
261 30600 : case 1: // DILUTE
262 : {
263 30600 : Real rho_exp = std::exp(_w[_qp] / _kB / _T[_qp]);
264 30600 : _rhos[_qp] = _cs_eq[_qp] / _Va * rho_exp;
265 30600 : _drhosdw[_qp] = _rhos[_qp] / _kB / _T[_qp];
266 30600 : _d2rhosdw2[_qp] = _drhosdw[_qp] / _kB / _T[_qp];
267 30600 : d3rhosdw3 = _d2rhosdw2[_qp] / _kB / _T[_qp];
268 :
269 30600 : _omegas[_qp] = _kB * _T[_qp] * (_cs_eq[_qp] / _Va - _rhos[_qp]);
270 30600 : _domegasdw[_qp] = -_rhos[_qp];
271 30600 : _d2omegasdw2[_qp] = -_drhosdw[_qp];
272 91800 : for (unsigned int i = 0; i < _neta; ++i)
273 : {
274 61200 : (*_drhos[i])[_qp] = (*_dcs_eq[i])[_qp] * rho_exp / _Va;
275 61200 : (*_d2rhosdwdeta[i])[_qp] = 0.0;
276 61200 : (*_domegasdeta[i])[_qp] = _kB * _T[_qp] * (*_dcs_eq[i])[_qp] / _Va * (1.0 - rho_exp);
277 61200 : (*_d2omegasdwdeta[i])[_qp] = -1.0 / _Va * (*_dcs_eq[i])[_qp] * rho_exp;
278 153000 : for (unsigned int j = i; j < _neta; ++j)
279 : {
280 91800 : (*_d2rhos[i][j])[_qp] = (*_d2cs_eq[i][j])[_qp] * rho_exp / _Va;
281 91800 : (*_d2omegasdetadeta[i][j])[_qp] =
282 91800 : _kB * _T[_qp] * (*_d2cs_eq[i][j])[_qp] / _Va * (1.0 - rho_exp);
283 : }
284 : }
285 : break;
286 : } // case 1: // DILUTE
287 30600 : case 2: // IDEAL
288 : {
289 30600 : Real Ef = -_kB * _T[_qp] * std::log(_cs_eq[_qp] / (1.0 - _cs_eq[_qp]));
290 : std::vector<Real> dEf;
291 : std::vector<std::vector<Real>> d2Ef;
292 30600 : dEf.resize(_neta);
293 30600 : d2Ef.resize(_neta);
294 :
295 30600 : Real x = std::exp((_w[_qp] - Ef) / (_kB * _T[_qp]));
296 30600 : Real x0 = std::exp(-Ef / (_kB * _T[_qp]));
297 30600 : _rhos[_qp] = x / ((1.0 + x) * _Va);
298 30600 : Real rhos0 = x0 / ((1.0 + x0) * _Va);
299 30600 : _drhosdw[_qp] = x / (Utility::pow<2>(1.0 + x) * _Va * _kB * _T[_qp]);
300 30600 : _d2rhosdw2[_qp] =
301 30600 : x * (1.0 - x) / (_Va * Utility::pow<2>(_kB * _T[_qp]) * Utility::pow<3>(1.0 + x));
302 30600 : d3rhosdw3 = x * (1 - 4.0 * x + x * x) /
303 30600 : (_Va * Utility::pow<3>(_kB * _T[_qp]) * Utility::pow<4>(1.0 + x));
304 :
305 30600 : _omegas[_qp] = _kB * _T[_qp] / _Va * (std::log(1.0 + x0) - std::log(1.0 + x));
306 30600 : _domegasdw[_qp] = -_rhos[_qp];
307 30600 : _d2omegasdw2[_qp] = -_drhosdw[_qp];
308 91800 : for (unsigned int i = 0; i < _neta; ++i)
309 : {
310 61200 : dEf[i] =
311 61200 : -_kB * _T[_qp] * (*_dcs_eq[i])[_qp] * (1.0 / _cs_eq[_qp] + 1.0 / (1.0 - _cs_eq[_qp]));
312 61200 : d2Ef[i].resize(_neta);
313 :
314 61200 : (*_drhos[i])[_qp] = -dEf[i] * _drhosdw[_qp];
315 61200 : (*_d2rhosdwdeta[i])[_qp] = -dEf[i] * _d2rhosdw2[_qp];
316 :
317 61200 : (*_domegasdeta[i])[_qp] = dEf[i] * (_rhos[_qp] - rhos0);
318 61200 : (*_d2omegasdwdeta[i])[_qp] = dEf[i] * _drhosdw[_qp];
319 :
320 153000 : for (unsigned int j = i; j < _neta; ++j)
321 : {
322 91800 : d2Ef[i][j] = -_kB * _T[_qp] *
323 91800 : ((*_d2cs_eq[i][j])[_qp] * (1.0 / _cs_eq[_qp] + 1.0 / (1.0 - _cs_eq[_qp])) +
324 91800 : (*_dcs_eq[i])[_qp] * (*_dcs_eq[j])[_qp] *
325 91800 : (1.0 / ((1.0 - _cs_eq[_qp]) * (1.0 - _cs_eq[_qp])) -
326 91800 : 1.0 / (_cs_eq[_qp] * _cs_eq[_qp])));
327 :
328 91800 : (*_d2rhos[i][j])[_qp] = -d2Ef[i][j] * _drhosdw[_qp] + dEf[i] * dEf[j] * _d2rhosdw2[_qp];
329 91800 : (*_d2omegasdetadeta[i][j])[_qp] =
330 91800 : d2Ef[i][j] * (_rhos[_qp] - rhos0) +
331 91800 : dEf[i] * dEf[j] / (_Va * _kB * _T[_qp]) *
332 91800 : (x / Utility::pow<2>(1.0 + x) - x0 / Utility::pow<2>(1.0 + x0));
333 : }
334 : }
335 : break;
336 30600 : } // case 2: // IDEAL
337 : } // switch (_solid_energy)
338 :
339 : // Calculate the susceptibility
340 6827812 : _chi[_qp] = _hs[_qp] * _drhosdw[_qp] + _hv[_qp] * _drhovdw[_qp];
341 6827812 : _dchidphi[_qp] = _dhs[_qp] * _drhosdw[_qp] + _dhv[_qp] * _drhovdw[_qp];
342 6827812 : _dchidw[_qp] = _hs[_qp] * _d2rhosdw2[_qp];
343 6827812 : _d2chidphi2[_qp] = _d2hs[_qp] * _drhosdw[_qp] + _d2hv[_qp] * _drhovdw[_qp];
344 6827812 : _d2chidw2[_qp] = _hs[_qp] * d3rhosdw3;
345 6827812 : _d2chidphidw[_qp] = _dhs[_qp] * _d2rhosdw2[_qp];
346 :
347 : // thermodynamic parameters
348 6827812 : _mu[_qp] = _mu_gb + (_mu_s - _mu_gb) * f;
349 6827812 : _kappa[_qp] = _kappa_gb + (_kappa_s - _kappa_gb) * f;
350 6827812 : _dmu[_qp] = (_mu_s - _mu_gb) * df;
351 6827812 : _dkappa[_qp] = (_kappa_s - _kappa_gb) * df;
352 6827812 : _d2mu[_qp] = (_mu_s - _mu_gb) * d2f;
353 6827812 : _d2kappa[_qp] = (_kappa_s - _kappa_gb) * d2f;
354 6827812 : _gamma[_qp] = 1.5;
355 6827812 : } // void GrandPotentialSinteringMaterial::computeQpProperties()
|