www.mooseframework.org
ConstantViewFactorSurfaceRadiation.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
11 
13 
15 
16 InputParameters
18 {
19  InputParameters params = GrayLambertSurfaceRadiationBase::validParams();
20  params.addRequiredParam<std::vector<std::vector<Real>>>(
21  "view_factors", "The view factors from sideset i to sideset j.");
22  params.addClassDescription(
23  "ConstantViewFactorSurfaceRadiation computes radiative heat transfer between side sets and "
24  "the view factors are provided in the input file");
25  return params;
26 }
27 
29  const InputParameters & parameters)
31 {
32 }
33 
34 std::vector<std::vector<Real>>
36 {
37  std::vector<std::vector<Real>> vf = getParam<std::vector<std::vector<Real>>>("view_factors");
38 
39  // check that the input has the right format
40  if (vf.size() != _n_sides)
41  paramError("view_factors",
42  "Leading dimension of view_factors must be equal to number of side sets.");
43 
44  for (unsigned int i = 0; i < _n_sides; ++i)
45  if (vf[i].size() != _n_sides)
46  paramError("view_factors",
47  "view_factors must be provided as square array. Row ",
48  i,
49  " has ",
50  vf[i].size(),
51  " entries.");
52  return vf;
53 }
54 
55 void
57 {
59 
60  // check row-sum and normalize if necessary
61  for (unsigned int i = 0; i < _n_sides; ++i)
62  {
63  Real sum = 0;
64  for (auto & v : _view_factors[i])
65  sum += v;
66 
67  // an error of 5% is acceptable, but more indicates an error in the
68  // problem setup
69  if (std::abs(sum - 1) > 0.05)
70  mooseError("view_factors row ", i, " sums to ", sum);
71 
72  // correct view factors
73  for (auto & v : _view_factors[i])
74  v /= sum;
75  }
76 }
ConstantViewFactorSurfaceRadiation::initialize
virtual void initialize() override
Definition: ConstantViewFactorSurfaceRadiation.C:56
ConstantViewFactorSurfaceRadiation::ConstantViewFactorSurfaceRadiation
ConstantViewFactorSurfaceRadiation(const InputParameters &parameters)
Definition: ConstantViewFactorSurfaceRadiation.C:28
defineLegacyParams
defineLegacyParams(ConstantViewFactorSurfaceRadiation)
ConstantViewFactorSurfaceRadiation
ConstantViewFactorSurfaceRadiation computes radiative heat transfer between side sets and the view fa...
Definition: ConstantViewFactorSurfaceRadiation.h:25
ConstantViewFactorSurfaceRadiation::validParams
static InputParameters validParams()
Definition: ConstantViewFactorSurfaceRadiation.C:17
GrayLambertSurfaceRadiationBase::validParams
static InputParameters validParams()
Definition: GrayLambertSurfaceRadiationBase.C:20
GrayLambertSurfaceRadiationBase::initialize
virtual void initialize() override
Definition: GrayLambertSurfaceRadiationBase.C:170
GrayLambertSurfaceRadiationBase::_view_factors
std::vector< std::vector< Real > > _view_factors
the view factors which are set by setViewFactors by derived classes
Definition: GrayLambertSurfaceRadiationBase.h:106
ConstantViewFactorSurfaceRadiation::setViewFactors
virtual std::vector< std::vector< Real > > setViewFactors() override
a purely virtual function that defines where view factors come from
Definition: ConstantViewFactorSurfaceRadiation.C:35
ConstantViewFactorSurfaceRadiation.h
GrayLambertSurfaceRadiationBase::_n_sides
unsigned int _n_sides
number of active boundary ids
Definition: GrayLambertSurfaceRadiationBase.h:64
GrayLambertSurfaceRadiationBase
GrayLambertSurfaceRadiationBase computes the heat flux on a set of surfaces in radiative heat transfe...
Definition: GrayLambertSurfaceRadiationBase.h:25
registerMooseObject
registerMooseObject("HeatConductionApp", ConstantViewFactorSurfaceRadiation)