https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
RayTracingAngularQuadrature Class Reference

#include <RayTracingAngularQuadrature.h>

Public Member Functions

 RayTracingAngularQuadrature (const unsigned int dim, const unsigned int polar_order, const unsigned int azimuthal_order, const Real mu_min, const Real mu_max)
 Constructor.
 
void rotate (const libMesh::Point &rotation_direction)
 Rotates the quadrature to a given direction.
 
const libMesh::PointgetDirection (const unsigned int l) const
 Get the direction associated with direction l.
 
const std::vector< Real > & getWeights (const unsigned int l) const
 Get the weights associated with the direction l.
 
Real getTotalWeight (const unsigned int l) const
 Gets the total of the weights associated with the direction l.
 
const std::vector< Real > & getPolarSins (const unsigned int l) const
 Gets the polar sins for the direction l.
 
std::size_t numDirections () const
 Get the number of directions in the rotated and projected quadrature.
 
bool hasDirection (const unsigned int l) const
 Whether or not the angular quadrature has direction l.
 
void checkDirection (const unsigned int l) const
 Throws a MooseError if the angular quadrature does not have direction l.
 
std::size_t numPolar (const unsigned int l) const
 The number of polar directions associated with the given direction.
 
unsigned int polarOrder () const
 Get the polar order.
 
unsigned int azimuthalOrder () const
 Get the azimuthal order.
 
Real muMin () const
 Get the minimum mu.
 
Real muMax () const
 Get the maximum mu.
 
const libMesh::PointcurrentRotationDirection () const
 Get the current rotation direction.
 
unsigned int dim () const
 Get the quadrature dimension.
 

Static Public Member Functions

static void gaussLegendre (const unsigned int order, std::vector< Real > &x, std::vector< Real > &w)
 Builds Gauss-Legendre quadrature on [0, 1] (symmetric about 0.5), with weights that sum to 1.
 
static void chebyshev (const unsigned int order, std::vector< Real > &x, std::vector< Real > &w)
 Builds Chebyshev quadrature on [0, 2\pi] with weights that sum to 2\pi.
 
static void rotationMatrix (const libMesh::Point &direction, libMesh::DenseMatrix< Real > &matrix)
 Builds the rotation matrix for direction direction into matrix.
 
static libMesh::Point orthonormalVector (const libMesh::Point &v)
 Gets the vector that is orthonormal to v.
 

Private Member Functions

void build ()
 Build the quadrature.
 

Private Attributes

const unsigned int _dim
 The dimension.
 
const unsigned int _polar_order
 The polar order.
 
const unsigned int _azimuthal_order
 The azimuthal order.
 
const Real _mu_min
 The minimum mu.
 
const Real _mu_max
 The maximum mu.
 
std::vector< Real > _phi
 Quadrature phi.
 
std::vector< Real > _mu
 Quadrature mu.
 
std::vector< Real > _polar_sin
 Quadrature polar sin.
 
std::vector< Real > _w
 Quadrature combined weights.
 
libMesh::Point _current_rotation_direction
 The current rotation direction.
 
std::vector< libMesh::Point_current_directions
 The current quadrature information.
 
std::vector< std::vector< Real > > _current_weights
 
std::vector< std::vector< Real > > _current_polar_sins
 

Detailed Description

Definition at line 19 of file RayTracingAngularQuadrature.h.

Constructor & Destructor Documentation

◆ RayTracingAngularQuadrature()

RayTracingAngularQuadrature::RayTracingAngularQuadrature ( const unsigned int  dim,
const unsigned int  polar_order,
const unsigned int  azimuthal_order,
const Real  mu_min,
const Real  mu_max 
)

Constructor.

Parameters
dimThe mesh dimension
polar_orderOrder for the polar quadrature
azimuthal_orderAzimuthal order for the quadrature
mu_minMinimum mu for the quadrature
mu_maxMaximum mu for the quadrature

Definition at line 18 of file RayTracingAngularQuadrature.C.

23 : _dim(dim),
24 _polar_order(polar_order),
25 _azimuthal_order(azimuthal_order),
26 _mu_min(mu_min),
27 _mu_max(mu_max)
28{
29 if (_polar_order == 0)
30 mooseError("polar_order must be positive in RayTracingAngularQuadrature");
31 if (_azimuthal_order == 0)
32 mooseError("azimuthal_order must be positive in RayTracingAngularQuadrature");
33 if (_mu_min >= _mu_max)
34 mooseError("mu_min must be < mu_max in RayTracingAngularQuadrature");
35 if (_mu_min < -1)
36 mooseError("mu_min must be >= -1 in RayTracingAngularQuadrature");
37 if (_mu_max > 1)
38 mooseError("mu_max must be <= 1 in RayTracingAngularQuadrature");
39 if (dim != 2 && dim != 3)
40 mooseError("RayTracingAngularQuadrature only supports dimensions 2 and 3");
41
42 // Build the quadrature
43 build();
44
45 // Default rotation is up
46 rotate(libMesh::Point(0, 0, 1));
47}
void mooseError(Args &&... args)
const unsigned int _azimuthal_order
The azimuthal order.
void rotate(const libMesh::Point &rotation_direction)
Rotates the quadrature to a given direction.
unsigned int dim() const
Get the quadrature dimension.
const unsigned int _dim
The dimension.
void build()
Build the quadrature.
const unsigned int _polar_order
The polar order.

Member Function Documentation

◆ azimuthalOrder()

unsigned int RayTracingAngularQuadrature::azimuthalOrder ( ) const
inline

Get the azimuthal order.

Definition at line 146 of file RayTracingAngularQuadrature.h.

146{ return _azimuthal_order; }

Referenced by TEST().

◆ build()

void RayTracingAngularQuadrature::build ( )
private

Build the quadrature.

Definition at line 50 of file RayTracingAngularQuadrature.C.

51{
52 // Chebyshev quadrature on [0, 2\pi]
53 std::vector<Real> chebyshev_x(_azimuthal_order);
54 std::vector<Real> chebyshev_w(_azimuthal_order);
55 chebyshev(_azimuthal_order, chebyshev_x, chebyshev_w);
56
57 // Gauss-Legendre quadrature on [0, 1]
58 std::vector<Real> gauss_legendre_x;
59 std::vector<Real> gauss_legendre_w;
60 gaussLegendre(_polar_order, gauss_legendre_x, gauss_legendre_w);
61
62 _phi.resize(0);
63 _mu.resize(0);
64 _w.resize(0);
65
66 // Build the product quadrature
67 for (std::size_t i = 0; i < chebyshev_x.size(); ++i)
68 for (std::size_t j = 0; j < gauss_legendre_x.size(); ++j)
69 {
70 // If 2D, throw away the downward mu
71 if (_dim == 2 && gauss_legendre_x[j] < 0.5 - TOLERANCE * TOLERANCE)
72 continue;
73
74 _phi.push_back(chebyshev_x[i]);
75 _mu.push_back(gauss_legendre_x[j] * (_mu_max - _mu_min) + _mu_min);
76 _polar_sin.push_back(std::sin(std::acos(_mu.back())));
77
78 const Real weight_factor =
79 (_dim == 2 && !MooseUtils::absoluteFuzzyEqual(gauss_legendre_x[j], 0.5)) ? 2.0 : 1.0;
80 _w.push_back(weight_factor * chebyshev_w[i] * gauss_legendre_w[j]);
81 }
82}
std::vector< Real > _mu
Quadrature mu.
std::vector< Real > _w
Quadrature combined weights.
static void chebyshev(const unsigned int order, std::vector< Real > &x, std::vector< Real > &w)
Builds Chebyshev quadrature on [0, 2\pi] with weights that sum to 2\pi.
static void gaussLegendre(const unsigned int order, std::vector< Real > &x, std::vector< Real > &w)
Builds Gauss-Legendre quadrature on [0, 1] (symmetric about 0.5), with weights that sum to 1.
std::vector< Real > _phi
Quadrature phi.
std::vector< Real > _polar_sin
Quadrature polar sin.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by RayTracingAngularQuadrature().

◆ chebyshev()

void RayTracingAngularQuadrature::chebyshev ( const unsigned int  order,
std::vector< Real > &  x,
std::vector< Real > &  w 
)
static

Builds Chebyshev quadrature on [0, 2\pi] with weights that sum to 2\pi.

Parameters
orderThe quadrature order
xVector to fill the points into
wVector to fill the weights into

Definition at line 247 of file RayTracingAngularQuadrature.C.

250{
251 x.resize(order);
252 w.resize(order);
253
254 for (std::size_t i = 0; i < order; ++i)
255 {
256 x[i] = 2 * (Real)i * M_PI / (Real)order;
257 w[i] = 2 * M_PI / (Real)order;
258 }
259}
const std::vector< double > x

Referenced by build(), and TEST().

◆ checkDirection()

void RayTracingAngularQuadrature::checkDirection ( const unsigned int  l) const

Throws a MooseError if the angular quadrature does not have direction l.

Definition at line 240 of file RayTracingAngularQuadrature.C.

241{
242 if (!hasDirection(l))
243 mooseError("RayTracingAngularQuadrature does not have direction ", l);
244}
bool hasDirection(const unsigned int l) const
Whether or not the angular quadrature has direction l.

Referenced by getDirection(), getPolarSins(), getTotalWeight(), getWeights(), numPolar(), and RayTracingAngularQuadratureErrorTest::RayTracingAngularQuadratureErrorTest().

◆ currentRotationDirection()

const libMesh::Point & RayTracingAngularQuadrature::currentRotationDirection ( ) const
inline

Get the current rotation direction.

Definition at line 159 of file RayTracingAngularQuadrature.h.

libMesh::Point _current_rotation_direction
The current rotation direction.

Referenced by TEST().

◆ dim()

unsigned int RayTracingAngularQuadrature::dim ( ) const
inline

Get the quadrature dimension.

Definition at line 164 of file RayTracingAngularQuadrature.h.

164{ return _dim; }

Referenced by RayTracingAngularQuadrature(), and testPolarSins2D().

◆ gaussLegendre()

void RayTracingAngularQuadrature::gaussLegendre ( const unsigned int  order,
std::vector< Real > &  x,
std::vector< Real > &  w 
)
static

Builds Gauss-Legendre quadrature on [0, 1] (symmetric about 0.5), with weights that sum to 1.

Parameters
orderThe quadrature order
xVector to fill the points into
wVector to fill the weights into

Definition at line 85 of file RayTracingAngularQuadrature.C.

88{
89 if (order == 0)
90 mooseError("Order must be positive in gaussLegendre()");
91
92 x.resize(order);
93 w.resize(order);
94 libMesh::DenseMatrix<Real> mat(order, order);
95 libMesh::DenseVector<Real> lambda(order);
96 libMesh::DenseVector<Real> lambdai(order);
97 libMesh::DenseMatrix<Real> vec(order, order);
98
99 for (unsigned int i = 1; i < order; ++i)
100 {
101 Real ri = i;
102 mat(i, i - 1) = ri / std::sqrt(((2. * ri - 1.) * (2. * ri + 1.)));
103 mat(i - 1, i) = mat(i, i - 1);
104 }
105 mat.evd_right(lambda, lambdai, vec);
106
107 for (unsigned int i = 0; i < order; ++i)
108 {
109 x[i] = 0.5 * (lambda(i) + 1.0);
110 w[i] = vec(0, i) * vec(0, i);
111 }
112
113 // Sort based on the points
114 std::vector<std::size_t> sorted_indices(x.size());
115 std::iota(sorted_indices.begin(), sorted_indices.end(), 0);
116 std::stable_sort(sorted_indices.begin(),
117 sorted_indices.end(),
118 [&x](size_t i1, size_t i2) { return x[i1] < x[i2]; });
119 const auto x_copy = x;
120 const auto w_copy = w;
121 for (std::size_t i = 0; i < x.size(); ++i)
122 {
123 x[i] = x_copy[sorted_indices[i]];
124 w[i] = w_copy[sorted_indices[i]];
125 }
126}

Referenced by build(), RayTracingAngularQuadratureErrorTest::RayTracingAngularQuadratureErrorTest(), TEST(), and ViewFactorRayStudy::ViewFactorRayStudy().

◆ getDirection()

const libMesh::Point & RayTracingAngularQuadrature::getDirection ( const unsigned int  l) const

Get the direction associated with direction l.

This direction will be rotated per currentRotationDirection(), set by setRotation().

Definition at line 203 of file RayTracingAngularQuadrature.C.

204{
206 return _current_directions[l];
207}
void checkDirection(const unsigned int l) const
Throws a MooseError if the angular quadrature does not have direction l.
std::vector< libMesh::Point > _current_directions
The current quadrature information.

Referenced by ConeRayStudy::defineRays(), LotsOfRaysRayStudy::defineRays(), and testDirections().

◆ getPolarSins()

const std::vector< Real > & RayTracingAngularQuadrature::getPolarSins ( const unsigned int  l) const

Gets the polar sins for the direction l.

In the case of 2D, the 3D directions projected into the 2D plane may overlap. In this case, we combine the directions into a single direction with multiple polar sins. This is the reason for the vector return.

Definition at line 224 of file RayTracingAngularQuadrature.C.

225{
227 return _current_polar_sins[l];
228}
std::vector< std::vector< Real > > _current_polar_sins

Referenced by testPolarSins2D().

◆ getTotalWeight()

Real RayTracingAngularQuadrature::getTotalWeight ( const unsigned int  l) const

Gets the total of the weights associated with the direction l.

The weights across all directions sum to 2\pi.

In the case of 2D, the 3D directions projected into the 2D plane may overlap. In this case, we combine the directions into a single direction with multiple weights. This is the reason why a getter for the "total" weight for a single direction exists.

Definition at line 217 of file RayTracingAngularQuadrature.C.

218{
220 return std::accumulate(_current_weights[l].begin(), _current_weights[l].end(), (Real)0);
221}
std::vector< std::vector< Real > > _current_weights

Referenced by ConeRayStudy::defineRays().

◆ getWeights()

const std::vector< Real > & RayTracingAngularQuadrature::getWeights ( const unsigned int  l) const

Get the weights associated with the direction l.

The weights across all directions sum to 2\pi.

In the case of 2D, the 3D directions projected into the 2D plane may overlap. In this case, we combine the directions into a single direction with multiple weights. This is the reason for the vector return.

Definition at line 210 of file RayTracingAngularQuadrature.C.

211{
213 return _current_weights[l];
214}

Referenced by testWeights().

◆ hasDirection()

bool RayTracingAngularQuadrature::hasDirection ( const unsigned int  l) const
inline

Whether or not the angular quadrature has direction l.

Definition at line 121 of file RayTracingAngularQuadrature.h.

121{ return l < _current_directions.size(); }

Referenced by checkDirection(), and TEST().

◆ muMax()

Real RayTracingAngularQuadrature::muMax ( ) const
inline

Get the maximum mu.

Definition at line 154 of file RayTracingAngularQuadrature.h.

154{ return _mu_max; }

Referenced by TEST().

◆ muMin()

Real RayTracingAngularQuadrature::muMin ( ) const
inline

Get the minimum mu.

Definition at line 150 of file RayTracingAngularQuadrature.h.

150{ return _mu_min; }

Referenced by TEST().

◆ numDirections()

std::size_t RayTracingAngularQuadrature::numDirections ( ) const
inline

Get the number of directions in the rotated and projected quadrature.

Note that in the case of 2D, we overlap 3D directions projected into the 2D plane. Therefore, in 2D, this value may be less than the number of directions in the 3D quadrature.

Definition at line 117 of file RayTracingAngularQuadrature.h.

117{ return _current_directions.size(); }

Referenced by ConeRayStudy::defineRays(), LotsOfRaysRayStudy::defineRays(), TEST(), TEST(), testDirections(), testPolarSins2D(), and testWeights().

◆ numPolar()

std::size_t RayTracingAngularQuadrature::numPolar ( const unsigned int  l) const

The number of polar directions associated with the given direction.

In 2D, projecting the 3D directions into the 2D plane may result in directions that overlap, in which case we end up with one direction and multiple polars for said direction.

In 3D, this will always be 1.

Definition at line 231 of file RayTracingAngularQuadrature.C.

232{
234 if (_dim == 3)
235 mooseAssert(_current_weights[l].size() == 1, "Should be 1 polar in 3D");
236 return _current_polar_sins[l].size();
237}

Referenced by testPolarSins2D().

◆ orthonormalVector()

libMesh::Point RayTracingAngularQuadrature::orthonormalVector ( const libMesh::Point v)
static

Gets the vector that is orthonormal to v.

Definition at line 282 of file RayTracingAngularQuadrature.C.

283{
284 if (MooseUtils::absoluteFuzzyLessEqual(v.norm(), 0))
285 ::mooseError("Vector v has norm close to 0 in orthonormalVector()");
286
287 if (MooseUtils::absoluteFuzzyEqual(v(0), 0))
288 return libMesh::Point(1, 0, 0);
289 if (MooseUtils::absoluteFuzzyEqual(v(1), 0))
290 return libMesh::Point(0, 1, 0);
291 if (MooseUtils::absoluteFuzzyEqual(v(2), 0))
292 return libMesh::Point(0, 0, 1);
293
294 return libMesh::Point(-v(1), v(0), 0).unit();
295}
const double v
TypeVector< Real > unit() const

Referenced by RayTracingAngularQuadratureErrorTest::RayTracingAngularQuadratureErrorTest(), and rotationMatrix().

◆ polarOrder()

unsigned int RayTracingAngularQuadrature::polarOrder ( ) const
inline

Get the polar order.

Definition at line 142 of file RayTracingAngularQuadrature.h.

142{ return _polar_order; }

Referenced by TEST().

◆ rotate()

void RayTracingAngularQuadrature::rotate ( const libMesh::Point rotation_direction)

Rotates the quadrature to a given direction.

Definition at line 129 of file RayTracingAngularQuadrature.C.

130{
131 _current_rotation_direction = rotation_direction;
132
133 libMesh::DenseMatrix<Real> rotation_matrix;
134 rotationMatrix(rotation_direction.unit(), rotation_matrix);
135
136 _current_directions.clear();
137 _current_directions.reserve(_phi.size());
138
139 _current_weights.clear();
140 _current_weights.reserve(_w.size());
141
142 _current_polar_sins.clear();
143 _current_polar_sins.reserve(_polar_sin.size());
144
147 Point direction;
148
149 for (std::size_t q = 0; q < _phi.size(); ++q)
150 {
151 // Get direction as a DenseVector for rotation
152 omega(0) = sqrt(1 - _mu[q] * _mu[q]) * cos(_phi[q]);
153 omega(1) = sqrt(1 - _mu[q] * _mu[q]) * sin(_phi[q]);
154 omega(2) = _mu[q];
155
156 // Rotate and create the direction
157 rotation_matrix.vector_mult(omega_p, omega);
158 direction(0) = omega_p(0);
159 direction(1) = omega_p(1);
160 direction(2) = omega_p(2);
161
162 // The index for the new direction in the "current" data
163 // structures. By default - we add a new one. However,
164 // in 2D we may have a duplicate projected direction
165 // so we need to keep track of this in the case
166 // that we are adding information to an already
167 // existant direction
168 std::size_t l = _current_directions.size();
169
170 // If 2D, project to the xy plane and see if any other
171 // projected directions are a duplicate
172 if (_dim == 2)
173 {
174 direction(2) = 0;
175 direction /= direction.norm();
176
177 // If we loop through all current directions and find
178 // no duplicates, this will set l back to _current_directions.size()
179 for (l = 0; l < _current_directions.size(); ++l)
181 break;
182 }
183
184 // If l is the current size of _current_directions, it means
185 // that no duplicates were found and that we are inserting
186 // a new direction
187 if (l == _current_directions.size())
188 {
189 _current_directions.push_back(direction);
190 _current_weights.resize(l + 1);
191 _current_polar_sins.resize(l + 1);
192 }
193 else
194 mooseAssert(_dim == 2, "Should only have duplicates in 2D");
195
196 // Add to weights and sins for this direction
197 _current_weights[l].push_back(_w[q]);
198 _current_polar_sins[l].push_back(_polar_sin[q]);
199 }
200}
static void rotationMatrix(const libMesh::Point &direction, libMesh::DenseMatrix< Real > &matrix)
Builds the rotation matrix for direction direction into matrix.
void vector_mult(DenseVector< T > &dest, const DenseVector< T > &arg) const
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sin(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tan
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template cos(_arg) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(cos
bool absolute_fuzzy_equals(const T &var1, const T2 &var2, const Real tol=TOLERANCE *TOLERANCE)

Referenced by ConeRayStudy::defineRays(), RayTracingAngularQuadrature(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ rotationMatrix()

void RayTracingAngularQuadrature::rotationMatrix ( const libMesh::Point direction,
libMesh::DenseMatrix< Real > &  matrix 
)
static

Builds the rotation matrix for direction direction into matrix.

Definition at line 262 of file RayTracingAngularQuadrature.C.

264{
265 matrix.resize(3, 3);
266 matrix.zero();
267
268 // Create a local coordinate system around direction
269 const libMesh::Point tx = orthonormalVector(direction);
270 const libMesh::Point ty = direction.cross(tx);
271
272 // Create the rotation matrix
273 for (unsigned int j = 0; j < 3; ++j)
274 {
275 matrix(j, 0) = tx(j);
276 matrix(j, 1) = ty(j);
277 matrix(j, 2) = direction(j);
278 }
279}
static libMesh::Point orthonormalVector(const libMesh::Point &v)
Gets the vector that is orthonormal to v.
void resize(const unsigned int new_m, const unsigned int new_n)
virtual void zero() override final
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross(const TypeVector< T2 > &v) const

Referenced by rotate().

Member Data Documentation

◆ _azimuthal_order

const unsigned int RayTracingAngularQuadrature::_azimuthal_order
private

The azimuthal order.

Definition at line 177 of file RayTracingAngularQuadrature.h.

Referenced by azimuthalOrder(), build(), and RayTracingAngularQuadrature().

◆ _current_directions

std::vector<libMesh::Point> RayTracingAngularQuadrature::_current_directions
private

The current quadrature information.

We need "current" information because the quadrature can be rotated and because in 2D, there are cases where projected directions that are the same in the 2D plane are combined together with multiple weights and polar sins.

Definition at line 202 of file RayTracingAngularQuadrature.h.

Referenced by getDirection(), hasDirection(), numDirections(), and rotate().

◆ _current_polar_sins

std::vector<std::vector<Real> > RayTracingAngularQuadrature::_current_polar_sins
private

Definition at line 204 of file RayTracingAngularQuadrature.h.

Referenced by getPolarSins(), numPolar(), and rotate().

◆ _current_rotation_direction

libMesh::Point RayTracingAngularQuadrature::_current_rotation_direction
private

The current rotation direction.

Definition at line 208 of file RayTracingAngularQuadrature.h.

Referenced by currentRotationDirection(), and rotate().

◆ _current_weights

std::vector<std::vector<Real> > RayTracingAngularQuadrature::_current_weights
private

Definition at line 203 of file RayTracingAngularQuadrature.h.

Referenced by getTotalWeight(), getWeights(), numPolar(), and rotate().

◆ _dim

const unsigned int RayTracingAngularQuadrature::_dim
private

The dimension.

Definition at line 173 of file RayTracingAngularQuadrature.h.

Referenced by build(), dim(), numPolar(), and rotate().

◆ _mu

std::vector<Real> RayTracingAngularQuadrature::_mu
private

Quadrature mu.

Definition at line 186 of file RayTracingAngularQuadrature.h.

Referenced by build(), and rotate().

◆ _mu_max

const Real RayTracingAngularQuadrature::_mu_max
private

The maximum mu.

Definition at line 181 of file RayTracingAngularQuadrature.h.

Referenced by build(), muMax(), and RayTracingAngularQuadrature().

◆ _mu_min

const Real RayTracingAngularQuadrature::_mu_min
private

The minimum mu.

Definition at line 179 of file RayTracingAngularQuadrature.h.

Referenced by build(), muMin(), and RayTracingAngularQuadrature().

◆ _phi

std::vector<Real> RayTracingAngularQuadrature::_phi
private

Quadrature phi.

Definition at line 184 of file RayTracingAngularQuadrature.h.

Referenced by build(), and rotate().

◆ _polar_order

const unsigned int RayTracingAngularQuadrature::_polar_order
private

The polar order.

Definition at line 175 of file RayTracingAngularQuadrature.h.

Referenced by build(), polarOrder(), and RayTracingAngularQuadrature().

◆ _polar_sin

std::vector<Real> RayTracingAngularQuadrature::_polar_sin
private

Quadrature polar sin.

Definition at line 188 of file RayTracingAngularQuadrature.h.

Referenced by build(), and rotate().

◆ _w

std::vector<Real> RayTracingAngularQuadrature::_w
private

Quadrature combined weights.

Definition at line 190 of file RayTracingAngularQuadrature.h.

Referenced by build(), and rotate().


The documentation for this class was generated from the following files: