hummingbird
Solving the self-adjoint angular flux transport equation using spectral elements on Cartesian geometry
Loading...
Searching...
No Matches
angular_quadrature_set.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: BSD-3-Clause
2
// Copyright (c) 2026, Liam Pohlmann
3
4
#ifndef HUMMINGBIRD_QUADRATURE_ANGULAR_ANGULAR_QUADRATURE_SET_H_
5
#define HUMMINGBIRD_QUADRATURE_ANGULAR_ANGULAR_QUADRATURE_SET_H_
6
7
#include "
quadrature/angular/gauss_legendre_chebyshev.h
"
8
#include "
quadrature/angular/gauss_legendre_trapezoid.h
"
9
#include "
quadrature/quadrature_base.h
"
10
#include "
utils/enums.h
"
11
12
namespace
hummingbird
{
13
/**
14
* @brief Wrapper class that owns an angular QuadratureBase<Ordinate> of the
15
* type corresponding to the given AngularQuadSet
16
*
17
*/
18
class
AngularQuadratureSet
{
19
public
:
20
/**
21
* @brief Construct a new AngularQuadratureSet object, creating the
22
* concrete quadrature set matching quad_set
23
*
24
* @param quad_set Angular quadrature set to use
25
* @param n_azim Number of azimuthal quadrature points
26
* @param n_polar Number of polar quadrature points
27
* @throw std::runtime_error if n_azim is not strictly positive, n_polar is
28
* less than 2, n_polar is odd, or quad_set is not supported
29
*/
30
AngularQuadratureSet
(
const
AngularQuadSet
quad_set,
const
size_t
n_azim,
31
const
size_t
n_polar);
32
33
/**
34
* @brief Get the underlying quadrature set object
35
*
36
* @return const QuadratureBase<Ordinate>*
37
*/
38
const
QuadratureBase<Ordinate>
*
get
()
const
{
39
return
angular_quadrature_set_
.get();
40
}
41
42
private
:
43
/// @brief Concrete angular quadrature set for the chosen AngularQuadSet
44
std::unique_ptr<QuadratureBase<Ordinate>>
angular_quadrature_set_
;
45
};
46
}
// namespace hummingbird
47
48
#endif
// HUMMINGBIRD_QUADRATURE_ANGULAR_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::get
const QuadratureBase< Ordinate > * get() const
Get the underlying quadrature set object.
Definition
angular_quadrature_set.h:38
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::QuadratureBase
Base class for defining a quadrature set.
Definition
quadrature_base.h:31
enums.h
gauss_legendre_chebyshev.h
gauss_legendre_trapezoid.h
hummingbird
Definition
bank_base.h:13
hummingbird::AngularQuadSet
AngularQuadSet
Angular quadrature set.
Definition
enums.h:79
quadrature_base.h
include
quadrature
angular
angular_quadrature_set.h
Generated by
1.17.0