19 "List of diffusion coefficients. Order is i) component 0 in phase 0; ii) " 20 "component 1 in phase 0 ...; component 0 in phase 1; ... component k in " 23 params.
set<
bool>(
"at_nodes") =
false;
33 _tortuosity(declareGenericProperty<
std::vector<
Real>, is_ad>(
"PorousFlow_tortuosity_qp")),
36 : &declareProperty<
std::vector<
std::vector<
Real>>>(
"dPorousFlow_tortuosity_qp_dvar")),
38 declareProperty<
std::vector<
std::vector<
Real>>>(
"PorousFlow_diffusion_coeff_qp")),
39 _ddiffusion_coeff_dvar(is_ad ? nullptr
40 : &declareProperty<
std::vector<
std::vector<
std::vector<
Real>>>>(
41 "dPorousFlow_diffusion_coeff_qp_dvar")),
42 _input_diffusion_coeff(getParam<
std::vector<
Real>>(
"diffusion_coeff"))
46 this->
template paramError(
48 "The number of diffusion coefficients entered is not equal to the number of phases " 49 "multiplied by the number of fluid components");
51 if (_nodal_material ==
true)
52 mooseError(
"PorousFlowRelativeDiffusivity classes are only defined for at_nodes = false");
59 _diffusion_coeff[_qp].resize(_num_phases);
60 _tortuosity[_qp].resize(_num_phases);
64 (*_ddiffusion_coeff_dvar)[_qp].resize(_num_phases);
65 (*_dtortuosity_dvar)[_qp].resize(_num_phases);
68 for (
unsigned int ph = 0; ph < _num_phases; ++ph)
70 _diffusion_coeff[_qp][ph].resize(_num_components);
74 (*_ddiffusion_coeff_dvar)[_qp][ph].resize(_num_components);
75 (*_dtortuosity_dvar)[_qp][ph].assign(_num_var, 0.0);
78 for (
unsigned int comp = 0; comp < _num_components; ++comp)
80 _diffusion_coeff[_qp][ph][comp] = _input_diffusion_coeff[ph + comp];
83 (*_ddiffusion_coeff_dvar)[_qp][ph][comp].assign(_num_var, 0.0);
const unsigned int _num_phases
Number of phases.
void mooseError(Args &&... args)
PorousFlowDiffusivityBaseTempl(const InputParameters ¶meters)
static InputParameters validParams()
static InputParameters validParams()
Base class for all PorousFlow vector materials.
Base class Material designed to provide the tortuosity and diffusion coefficents. ...
const unsigned int _num_components
Number of fluid components.
const std::vector< Real > _input_diffusion_coeff
Input diffusion coefficients.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void computeQpProperties() override