20 params.
addParam<
Real>(
"c_mu0", 2385.2,
"mu0 coefficient in exp(m0/T-mu1)");
21 params.
addParam<
Real>(
"c_mu1", 0.5958,
"mu1 coefficient in exp(m0/T-mu1)");
23 params.
addParam<
Real>(
"Tmax", 4000,
"The maximum temperature for limiting viscosity");
24 params.
addParam<
Real>(
"Tl", 1708,
"The liquidus temperature");
25 params.
addParam<
Real>(
"Ts", 1675,
"The solidus temperature");
27 params.
addParam<
Real>(
"c_k0_s", 6.38,
"k0 coefficient for the solid in k0+k1*T");
28 params.
addParam<
Real>(
"c_k1_s", 1.9E-2,
"k1 coefficient for the solid in k0+k1*T");
29 params.
addParam<
Real>(
"c_k2_s", -2.45E-6,
"k1 coefficient for the solid in k0+k1*T");
30 params.
addParam<
Real>(
"c_k0_l", 2.27,
"k0 coefficient for the liquid in k0+k1*T");
31 params.
addParam<
Real>(
"c_k1_l", 1.76E-2,
"k1 coefficien for the liquid in k0+k1*Tt");
32 params.
addParam<
Real>(
"c_k2_l", -1.39E-6,
"k1 coefficient for the solid in k0+k1*T");
34 params.
addParam<
Real>(
"c_cp0_s", 459.29,
"cp0 coefficient for the solid in cp0+cp1*T");
35 params.
addParam<
Real>(
"c_cp1_s", 0.1329,
"cp1 coefficient for the solid in cp0+cp1*T");
36 params.
addParam<
Real>(
"c_cp0_l", 795.49,
"cp0 coefficient for the liquid in cp0");
39 "c_rho0_s", 8084.2,
"The rho0 density for the solid in rho0+rho1*T+rho2*T*T");
41 "c_rho1_s", -0.42086,
"The rho1 density for the solid in rho0+rho1*T+rho2*T*T");
43 "c_rho2_s", -3.8942E-5,
"The rho2 density for the solid in rho0+rho1*T+rho2*T*T");
45 "c_rho0_l", 7432.7,
"The rho0 density for the liquid in rho0+rho1*T+rho2*T*T");
47 "c_rho1_l", 0.039338,
"The rho1 density for the liquid in rho0+rho1*T+rho2*T*T");
49 "c_rho2_l", -1.8007E-4,
"The rho2 density for the liquid in rho0+rho1*T+rho2*T*T");
51 params.
addParam<MaterialPropertyName>(
52 "mu_name",
"mu",
"The name of the viscosity material property");
53 params.
addParam<MaterialPropertyName>(
"k_name",
"k",
"The name of the thermal conductivity");
54 params.
addParam<MaterialPropertyName>(
"cp_name",
"cp",
"The name of the specific heat capacity");
55 params.
addParam<MaterialPropertyName>(
"rho_name",
"rho",
"The name of the density");
57 params.
addParam<
bool>(
"use_constant_density",
true,
"If a constant density should be used (would discard buoyancy effects)");
65 _c_mu0(getParam<
Real>(
"c_mu0")),
66 _c_mu1(getParam<
Real>(
"c_mu1")),
67 _c_k0_s(getParam<
Real>(
"c_k0_s")),
68 _c_k1_s(getParam<
Real>(
"c_k1_s")),
69 _c_k2_s(getParam<
Real>(
"c_k2_s")),
70 _c_k0_l(getParam<
Real>(
"c_k0_l")),
71 _c_k1_l(getParam<
Real>(
"c_k1_l")),
72 _c_k2_l(getParam<
Real>(
"c_k2_l")),
73 _c_cp0_s(getParam<
Real>(
"c_cp0_s")),
74 _c_cp1_s(getParam<
Real>(
"c_cp1_s")),
75 _c_cp0_l(getParam<
Real>(
"c_cp0_l")),
76 _c_rho0_s(getParam<
Real>(
"c_rho0_s")),
77 _c_rho1_s(getParam<
Real>(
"c_rho1_s")),
78 _c_rho2_s(getParam<
Real>(
"c_rho2_s")),
79 _c_rho0_l(getParam<
Real>(
"c_rho0_l")),
80 _c_rho1_l(getParam<
Real>(
"c_rho1_l")),
81 _c_rho2_l(getParam<
Real>(
"c_rho2_l")),
82 _Tmax(getParam<
Real>(
"Tmax")),
83 _Tl(getParam<
Real>(
"Tl")),
84 _Ts(getParam<
Real>(
"Ts")),
85 _temperature(adCoupledValue(
"temperature")),
86 _grad_temperature(adCoupledGradient(
"temperature")),
87 _mu(declareADProperty<
Real>(getParam<MaterialPropertyName>(
"mu_name"))),
88 _k(declareADProperty<
Real>(getParam<MaterialPropertyName>(
"k_name"))),
89 _cp(declareADProperty<
Real>(getParam<MaterialPropertyName>(
"cp_name"))),
90 _rho(declareADProperty<
Real>(getParam<MaterialPropertyName>(
"rho_name"))),
91 _grad_k(declareADProperty<
RealVectorValue>(
"grad_" + getParam<MaterialPropertyName>(
"k_name"))),
92 _use_constant_density(getParam<bool>(
"use_constant_density"))
121 const auto mu_l = std::max(0.030, 1e-3 * std::exp(
_c_mu0 / That -
_c_mu1));
135 const auto mu_s = 1e11 * 1e-3 * std::exp(
_c_mu0 / That -
_c_mu1);
143 _mu[
_qp] = liquid_fraction * mu_l + (1 - liquid_fraction) * mu_s;
144 _k[
_qp] = liquid_fraction * k_l + (1 - liquid_fraction) *
k_s;
145 _grad_k[
_qp] = liquid_fraction * grad_k_l + (1 - liquid_fraction) * grad_k_s;
146 _cp[
_qp] = liquid_fraction * cp_l + (1 - liquid_fraction) *
cp_s;
147 _rho[
_qp] = liquid_fraction * rho_l + (1 - liquid_fraction) *
rho_s;
const Real _Tmax
Bounding temperature for the viscosity.
static const std::string cp_s
ADMaterialProperty< Real > & _rho
ADMaterialProperty< Real > & _mu
Material properties that get updated in this object.
A material that computes 316L volumetric stainless steel properties relevant to doing laser welding m...
static const std::string rho_s
const Real _c_cp0_s
An approximate for the speific heat is provided in paper: Kim, C.S., 1975.
const Real _c_mu0
An approximate for the dynamic viscosity is provided in paper: Kim, C.S., 1975.
LaserWeld316LStainlessSteel(const InputParameters ¶meters)
static const std::string k_s
const ADVariableValue & _temperature
We need to know the temperature and the gradient of the temperature.
const Real _c_rho0_s
An approximate for the density is provided in paper: Kim, C.S., 1975.
registerMooseObject("NavierStokesTestApp", LaserWeld316LStainlessSteel)
const Real _c_k0_s
The thermal conductivity is taken from: Pichler, Peter, et al.
static InputParameters validParams()
ADMaterialProperty< RealVectorValue > & _grad_k
The gradient of the thermal conductivity.
virtual void computeQpProperties()
ADMaterialProperty< Real > & _cp
ADMaterialProperty< Real > & _k
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const ADVariableGradient & _grad_temperature
static InputParameters validParams()
const Real _Tl
The liquidus and solidus temperatures, both taken from: Pichler, Peter, et al.
const bool _use_constant_density
If a constant density should be used (would discard buoyancy effects)