21 "Postprocessor for asymptotic expansion homogenization for thermal conductivity");
23 "chi",
"The characteristic functions used for homogenization of the thermal conductivity.");
26 "The row index of the homogenized thermal conductivity tensor entry computed by this "
30 "The column index of the homogenized thermal conductivity tensor entry computed by this "
33 params.
addParam<Real>(
"scale_factor", 1,
"Scale factor");
34 params.
addParam<MaterialPropertyName>(
35 "diffusion_coefficient",
"thermal_conductivity",
"Property name of the diffusivity");
37 "is_tensor",
false,
"True if the material property in diffusion_coefficient is a tensor");
43 _row(getParam<unsigned
int>(
"row")),
44 _col(getParam<unsigned
int>(
"col")),
45 _scale(getParam<Real>(
"scale_factor")),
46 _dim(_mesh.dimension()),
47 _diffusion_coefficient(!getParam<bool>(
"is_tensor")
48 ? &getMaterialProperty<Real>(
"diffusion_coefficient")
50 _tensor_diffusion_coefficient(getParam<bool>(
"is_tensor")
51 ? &getMaterialProperty<
RankTwoTensor>(
"diffusion_coefficient")
55 paramError(
"row",
"Must be smaller than mesh dimension (0, 1, 2 for 1D, 2D, 3D)");
58 paramError(
"col",
"Must be smaller than mesh dimension (0, 1, 2 for 1D, 2D, 3D)");
61 paramError(
"chi",
"The number of entries must be identical to the mesh dimension.");
64 for (
unsigned int j = 0; j <
_dim; ++j)
108 RealVectorValue k_row;
110 k_row(
_row) = (*_diffusion_coefficient)[
_qp];
112 for (
unsigned int j = 0; j <
_dim; ++j)
113 k_row(j) = (*_tensor_diffusion_coefficient)[
_qp](
_row, j);
116 RealVectorValue M_col;
118 for (
unsigned int i = 0; i <
_dim; ++i)
121 return _scale * k_row * M_col;
const std::vector< double > y
registerMooseObject("HeatTransferApp", HomogenizedThermalConductivity)
void ErrorVector unsigned int
virtual const VariableGradient & coupledGradient(const std::string &var_name, unsigned int comp=0) const
unsigned int coupledComponents(const std::string &var_name) const
static InputParameters validParams()
virtual Real computeIntegral()
const Real & _current_elem_volume
Homogenization of Temperature-Dependent Thermal Conductivity in Composite Materials,...
std::vector< const VariableGradient * > _grad_chi
the gradients of the characteristic functions usually denoted chi in the literature
Real _volume
volume of the integration domain
virtual Real getValue() const override
const Real _scale
a scale factor multiplied to the result
virtual void threadJoin(const UserObject &y) override
virtual void execute() override
virtual Real computeQpIntegral() override
static InputParameters validParams()
const unsigned int _row
the row index of the homogenized thermal conductivity tensor that is returned
const unsigned int _dim
dimension of the mesh
HomogenizedThermalConductivity(const InputParameters ¶meters)
const MaterialProperty< Real > * _diffusion_coefficient
heterogeneous diffusion coefficient as scalar and tensor
Real _integral_value
the integral value that is being accumulated
virtual void initialize() override
virtual void finalize() override
const unsigned int _col
the column index of the homogenized thermal conductivity tensor that is returned
void paramError(const std::string ¶m, Args... args) const