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)
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);
118 for (
unsigned int i = 0; i <
_dim; ++i)
121 return _scale * k_row * M_col;
Homogenization of Temperature-Dependent Thermal Conductivity in Composite Materials, Journal of Thermophysics and Heat Transfer, Vol.
const MaterialProperty< Real > * _diffusion_coefficient
heterogeneous diffusion coefficient as scalar and tensor
virtual Real computeQpIntegral() override
Real _integral_value
the integral value that is being accumulated
virtual void initialize() override
const std::vector< double > y
Real _volume
volume of the integration domain
const Real & _current_elem_volume
std::vector< const VariableGradient * > _grad_chi
the gradients of the characteristic functions usually denoted chi in the literature ...
virtual const VariableGradient & coupledGradient(const std::string &var_name, unsigned int comp=0) const
const Real _scale
a scale factor multiplied to the result
static InputParameters validParams()
registerMooseObject("HeatTransferApp", HomogenizedThermalConductivity)
static InputParameters validParams()
virtual void threadJoin(const UserObject &y) override
void paramError(const std::string ¶m, Args... args) const
const unsigned int _dim
dimension of the mesh
const unsigned int _row
the row index of the homogenized thermal conductivity tensor that is returned
HomogenizedThermalConductivity(const InputParameters ¶meters)
unsigned int coupledComponents(const std::string &var_name) const
virtual void finalize() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real getValue() const override
virtual void execute() override
virtual Real computeIntegral()
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
const unsigned int _col
the column index of the homogenized thermal conductivity tensor that is returned
void ErrorVector unsigned int