Go to the documentation of this file.
19 params.addRequiredParam<RealTensorValue>(
20 "dry_thermal_conductivity",
21 "The thermal conductivity of the rock matrix when the aqueous saturation is zero");
22 params.addParam<RealTensorValue>(
"wet_thermal_conductivity",
23 "The thermal conductivity of the rock matrix when the aqueous "
24 "saturation is unity. This defaults to "
25 "dry_thermal_conductivity.");
26 params.addParam<Real>(
"exponent",
28 "Exponent on saturation. Thermal conductivity = "
29 "dry_thermal_conductivity + S^exponent * "
30 "(wet_thermal_conductivity - dry_thermal_conductivity), "
31 "where S is the aqueous saturation");
32 params.addParam<
unsigned>(
"aqueous_phase_number",
34 "The phase number of the aqueous phase. In simulations without "
35 "fluids, this parameter and the exponent parameter will not be "
36 "used: only the dry_thermal_conductivity will be used.");
37 params.addClassDescription(
"This Material calculates rock-fluid combined thermal conductivity by "
38 "using a weighted sum. Thermal conductivity = "
39 "dry_thermal_conductivity + S^exponent * (wet_thermal_conductivity - "
40 "dry_thermal_conductivity), where S is the aqueous saturation");
45 const InputParameters & parameters)
47 _la_dry(getParam<RealTensorValue>(
"dry_thermal_conductivity")),
48 _wet_and_dry_differ(parameters.isParamValid(
"wet_thermal_conductivity")),
49 _la_wet(_wet_and_dry_differ ? getParam<RealTensorValue>(
"wet_thermal_conductivity")
50 : getParam<RealTensorValue>(
"dry_thermal_conductivity")),
51 _exponent(getParam<Real>(
"exponent")),
52 _aqueous_phase(_num_phases > 0),
53 _aqueous_phase_number(getParam<unsigned>(
"aqueous_phase_number")),
54 _saturation_qp(_aqueous_phase
55 ? &getMaterialProperty<std::vector<Real>>(
"PorousFlow_saturation_qp")
57 _dsaturation_qp_dvar(_aqueous_phase ? &getMaterialProperty<std::vector<std::vector<Real>>>(
58 "dPorousFlow_saturation_qp_dvar")
62 mooseError(
"PorousFlowThermalConductivityIdeal: Your aqueous phase number, ",
64 " must not exceed the number of fluid phases in the system, which is ",
79 for (
unsigned v = 0; v <
_num_var; ++v)
const bool _aqueous_phase
Whether this is a fluid simulation.
registerMooseObject("PorousFlowApp", PorousFlowThermalConductivityIdeal)
const MaterialProperty< std::vector< Real > > *const _saturation_qp
Saturation of the fluid phases at the quadpoints.
InputParameters validParams< PorousFlowThermalConductivityIdeal >()
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const unsigned _aqueous_phase_number
Phase number of the aqueous phase.
This material computes thermal conductivity for a PorousMedium - fluid system, by using Thermal condu...
Base class for materials that provide thermal conducitivity.
MaterialProperty< std::vector< RealTensorValue > > & _dla_qp_dvar
d(thermal conductivity at the qps)/d(PorousFlow variable)
const Real _exponent
Exponent for saturation.
MaterialProperty< RealTensorValue > & _la_qp
Thermal conducitivity at the qps.
virtual void computeQpProperties() override
const RealTensorValue _la_wet
Wet thermal conductivity of rock.
const unsigned int _num_var
Number of PorousFlow variables.
const unsigned int _num_phases
Number of phases.
PorousFlowThermalConductivityIdeal(const InputParameters ¶meters)
const bool _wet_and_dry_differ
Whether _la_wet has been supplied.
InputParameters validParams< PorousFlowThermalConductivityBase >()
const RealTensorValue _la_dry
Dry thermal conductivity of rock.