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