150 std::vector<Real> emissivity = getParam<std::vector<Real>>(
"emissivity");
152 mooseError(
"emissivity parameter needs to be the same size as the sidesets parameter.");
156 InputParameters params = _factory.getValidParams(
"ViewFactorObjectSurfaceRadiation");
157 params.set<std::vector<VariableName>>(
"temperature") = {getParam<VariableName>(
"temperature")};
159 std::vector<Real> extended_emissivity;
161 for (
unsigned int i = 0; i <
_n_patches[j]; ++i)
162 extended_emissivity.push_back(emissivity[j]);
163 params.set<std::vector<Real>>(
"emissivity") = extended_emissivity;
166 std::vector<BoundaryName> boundary_names;
167 for (
auto & e1 : radiation_patch_names)
169 boundary_names.push_back(e2);
170 params.set<std::vector<BoundaryName>>(
"boundary") = boundary_names;
173 if (isParamValid(
"adiabatic_sidesets"))
175 std::vector<boundary_id_type> adiabatic_boundary_ids =
176 getParam<std::vector<boundary_id_type>>(
"adiabatic_sidesets");
177 std::vector<BoundaryName> adiabatic_boundary_names;
178 for (
unsigned int k = 0; k < adiabatic_boundary_ids.size(); ++k)
180 boundary_id_type abid = adiabatic_boundary_ids[k];
187 mooseError(
"Adiabatic sideset ", abid,
" not present in sidesets.");
194 for (
auto & e : radiation_patch_names[index])
195 adiabatic_boundary_names.push_back(e);
197 params.set<std::vector<BoundaryName>>(
"adiabatic_boundary") = adiabatic_boundary_names;
201 if (isParamValid(
"fixed_temperature_sidesets"))
203 if (!isParamValid(
"fixed_boundary_temperatures"))
204 mooseError(
"fixed_temperature_sidesets is provided so fixed_boundary_temperatures must be "
207 std::vector<boundary_id_type> fixed_T_boundary_ids =
208 getParam<std::vector<boundary_id_type>>(
"fixed_temperature_sidesets");
210 std::vector<FunctionName> fixed_T_funcs =
211 getParam<std::vector<FunctionName>>(
"fixed_boundary_temperatures");
214 if (fixed_T_funcs.size() != fixed_T_boundary_ids.size())
215 mooseError(
"Size of parameter fixed_boundary_temperatures and fixed_temperature_sidesets "
218 std::vector<BoundaryName> fixed_T_boundary_names;
219 std::vector<FunctionName> fixed_T_function_names;
220 for (
unsigned int k = 0; k < fixed_T_boundary_ids.size(); ++k)
222 boundary_id_type bid = fixed_T_boundary_ids[k];
229 mooseError(
"Fixed temperature sideset ", bid,
" not present in sidesets.");
236 for (
auto & e : radiation_patch_names[index])
238 fixed_T_boundary_names.push_back(e);
239 fixed_T_function_names.push_back(fixed_T_funcs[k]);
242 params.set<std::vector<BoundaryName>>(
"fixed_temperature_boundary") = fixed_T_boundary_names;
243 params.set<std::vector<FunctionName>>(
"fixed_boundary_temperatures") = fixed_T_function_names;
250 ExecFlagEnum exec_enum = MooseUtils::getDefaultExecFlagEnum();
251 exec_enum = {EXEC_LINEAR, EXEC_TIMESTEP_END};
252 params.set<ExecFlagEnum>(
"execute_on") = exec_enum;
255 _problem->addUserObject(
"ViewFactorObjectSurfaceRadiation",
radiationObjectName(), params);