hummingbird
Solving the self-adjoint angular flux transport equation using spectral elements on Cartesian geometry
Loading...
Searching...
No Matches
angular_quadrature_set.cc
Go to the documentation of this file.
1
#include "
quadrature/angular/angular_quadrature_set.h
"
2
3
#include <stdexcept>
4
5
namespace
hummingbird
{
6
AngularQuadratureSet::AngularQuadratureSet
(
const
AngularQuadSet
quad_set,
7
const
size_t
n_azim,
8
const
size_t
n_polar) {
9
if
(n_azim < 1)
10
throw
std::runtime_error(
11
"Number of azimuthal angles must be strictly positive"
);
12
if
(n_polar < 2)
13
throw
std::runtime_error(
"Number of polar angles must be at least 2."
);
14
if
(n_polar % 2 != 0)
15
throw
std::runtime_error(
"Number of polar angles must be even."
);
16
17
switch
(quad_set) {
18
case
AngularQuadSet::GL
:
19
angular_quadrature_set_
= std::make_unique<GaussLegendreTrapezoid>(
20
1, n_polar,
/*polar_measured_from_x=*/
true
);
21
break
;
22
case
AngularQuadSet::GLT
:
23
angular_quadrature_set_
=
24
std::make_unique<GaussLegendreTrapezoid>(n_azim, n_polar);
25
break
;
26
case
AngularQuadSet::GLC
:
27
angular_quadrature_set_
=
28
std::make_unique<GaussLegendreChebyshev>(n_azim, n_polar);
29
break
;
30
default
:
31
throw
std::runtime_error(
32
"AngularQuadSet passed to AngularQuadratureSet constructor not "
33
"supported."
);
34
break
;
35
}
36
}
37
}
// namespace hummingbird
angular_quadrature_set.h
hummingbird::AngularQuadratureSet::AngularQuadratureSet
AngularQuadratureSet(const AngularQuadSet quad_set, const size_t n_azim, const size_t n_polar)
Construct a new AngularQuadratureSet object, creating the concrete quadrature set matching quad_set.
Definition
angular_quadrature_set.cc:6
hummingbird::AngularQuadratureSet::angular_quadrature_set_
std::unique_ptr< QuadratureBase< Ordinate > > angular_quadrature_set_
Concrete angular quadrature set for the chosen AngularQuadSet.
Definition
angular_quadrature_set.h:44
hummingbird
Definition
bank_base.h:13
hummingbird::AngularQuadSet
AngularQuadSet
Angular quadrature set.
Definition
enums.h:79
hummingbird::AngularQuadSet::GLC
@ GLC
Definition
enums.h:79
hummingbird::AngularQuadSet::GL
@ GL
Definition
enums.h:79
hummingbird::AngularQuadSet::GLT
@ GLT
Definition
enums.h:79
src
quadrature
angular
angular_quadrature_set.cc
Generated by
1.17.0