Class AngleAggregation

Class Documentation

class AngleAggregation

Angle aggregation has to cater for running the 8 corners of a 3D partitioning, the 4 corners of a 2D partitioning (the latter 2 both being polar angle aggregation) as well as single angle aggregation.

At the most fundamental level this manifests as a number of angle indices that share a SPDS, however SPDS do not have to be unique which allows the notion of polar angle sets. For single angle aggregation each SPDS is associated with a single angle index. For polar angle aggregation a single SPDS can have multiple indices associated with the same azimuthal angle but different polar angles. We call this manifestation a “AngleSet”.

The octant based separation is achieved via the notion of “AngleSetGroup” which will group angle sets for each quadrant or octant (depending on 2D or 3D).

Public Functions

AngleAggregation(const std::map<uint64_t, std::shared_ptr<SweepBoundary>> &boundaries, size_t num_groups, std::shared_ptr<AngularQuadrature> &quadrature, std::shared_ptr<MeshContinuum> &grid)
inline const std::map<uint64_t, std::shared_ptr<SweepBoundary>> &GetSimBoundaries() const
void ZeroOutgoingDelayedPsi()

Resets all the outgoing intra-location and inter-location cyclic interfaces.

void ZeroIncomingDelayedPsi()

Resets all the incoming intra-location and inter-location cyclic interfaces.

void InitializeReflectingBCs()

Initializes reflecting boundary conditions.

std::pair<size_t, size_t> GetNumDelayedAngularDOFs()

Returns a pair of numbers containing the number of delayed angular unknowns both locally and globally, respectively.

void AppendNewDelayedAngularDOFsToArray(int64_t &index, double *x_ref)

Assembles angular unknowns into the reference vector.

void AppendOldDelayedAngularDOFsToArray(int64_t &index, double *x_ref)

Assembles angular unknowns into the reference vector.

void SetOldDelayedAngularDOFsFromArray(int64_t &index, const double *x_ref)

Assembles angular unknowns into the reference vector.

void SetNewDelayedAngularDOFsFromArray(int64_t &index, const double *x_ref)

Assembles angular unknowns into the reference vector.

std::vector<double> GetNewDelayedAngularDOFsAsSTLVector()

Gets the current values of the angular unknowns as an STL vector.

void SetNewDelayedAngularDOFsFromSTLVector(const std::vector<double> &stl_vector)

Gets the current values of the angular unknowns as an STL vector.

std::vector<double> GetOldDelayedAngularDOFsAsSTLVector()

Gets the current values of the angular unknowns as an STL vector.

void SetOldDelayedAngularDOFsFromSTLVector(const std::vector<double> &stl_vector)

Gets the current values of the angular unknowns as an STL vector.

void SetDelayedPsiOld2New()

Copies the old delayed angular fluxes to the new.

void SetDelayedPsiNew2Old()

Copies the new delayed angular fluxes to the old.

Public Members

std::vector<AngleSetGroup> angle_set_groups