Chi-Tech
chi_mesh::sweep_management::AngleAggregation Class Reference

#include <angleaggregation.h>

Public Types

typedef std::shared_ptr< SweepBndrySweepBndryPtr
 

Public Member Functions

 AngleAggregation (const std::map< uint64_t, SweepBndryPtr > &in_sim_boundaries, size_t in_number_of_groups, size_t in_number_of_group_subsets, std::shared_ptr< chi_math::AngularQuadrature > &in_quadrature, chi_mesh::MeshContinuumPtr &in_grid)
 
bool IsSetup () const
 
void ZeroOutgoingDelayedPsi ()
 
void ZeroIncomingDelayedPsi ()
 
void InitializeReflectingBCs ()
 
std::pair< size_t, size_t > GetNumDelayedAngularDOFs ()
 
void AppendNewDelayedAngularDOFsToArray (int64_t &index, double *x_ref)
 
void AppendOldDelayedAngularDOFsToArray (int64_t &index, double *x_ref)
 
void SetOldDelayedAngularDOFsFromArray (int64_t &index, const double *x_ref)
 
void SetNewDelayedAngularDOFsFromArray (int64_t &index, const double *x_ref)
 
std::vector< double > GetNewDelayedAngularDOFsAsSTLVector ()
 
void SetNewDelayedAngularDOFsFromSTLVector (const std::vector< double > &stl_vector)
 
std::vector< double > GetOldDelayedAngularDOFsAsSTLVector ()
 
void SetOldDelayedAngularDOFsFromSTLVector (const std::vector< double > &stl_vector)
 
void SetDelayedPsiOld2New ()
 
void SetDelayedPsiNew2Old ()
 

Data Fields

std::vector< AngleSetGroupangle_set_groups
 
std::map< uint64_t, SweepBndryPtrsim_boundaries
 
size_t number_of_groups =0
 
size_t number_of_group_subsets =0
 
std::shared_ptr< chi_math::AngularQuadraturequadrature =nullptr
 
chi_mesh::MeshContinuumPtr grid = nullptr
 

Private Attributes

bool is_setup =false
 
std::pair< size_t,size_t > number_angular_unknowns
 
bool num_ang_unknowns_avail = false
 

Detailed Description

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).

Definition at line 28 of file angleaggregation.h.

Member Typedef Documentation

◆ SweepBndryPtr

Constructor & Destructor Documentation

◆ AngleAggregation()

chi_mesh::sweep_management::AngleAggregation::AngleAggregation ( const std::map< uint64_t, SweepBndryPtr > &  in_sim_boundaries,
size_t  in_number_of_groups,
size_t  in_number_of_group_subsets,
std::shared_ptr< chi_math::AngularQuadrature > &  in_quadrature,
chi_mesh::MeshContinuumPtr in_grid 
)

Sets up the angle-aggregation object.

Definition at line 20 of file angleaggregation.cc.

Member Function Documentation

◆ AppendNewDelayedAngularDOFsToArray()

void chi_mesh::sweep_management::AngleAggregation::AppendNewDelayedAngularDOFsToArray ( int64_t &  index,
double *  x_ref 
)

Assembles angular unknowns into the reference vector.

Definition at line 300 of file angleaggregation.cc.

◆ AppendOldDelayedAngularDOFsToArray()

void chi_mesh::sweep_management::AngleAggregation::AppendOldDelayedAngularDOFsToArray ( int64_t &  index,
double *  x_ref 
)

Assembles angular unknowns into the reference vector.

Definition at line 346 of file angleaggregation.cc.

◆ GetNewDelayedAngularDOFsAsSTLVector()

std::vector< double > chi_mesh::sweep_management::AngleAggregation::GetNewDelayedAngularDOFsAsSTLVector ( )

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

Definition at line 484 of file angleaggregation.cc.

◆ GetNumDelayedAngularDOFs()

std::pair< size_t, size_t > chi_mesh::sweep_management::AngleAggregation::GetNumDelayedAngularDOFs ( )

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

Definition at line 248 of file angleaggregation.cc.

◆ GetOldDelayedAngularDOFsAsSTLVector()

std::vector< double > chi_mesh::sweep_management::AngleAggregation::GetOldDelayedAngularDOFsAsSTLVector ( )

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

Definition at line 575 of file angleaggregation.cc.

◆ InitializeReflectingBCs()

void chi_mesh::sweep_management::AngleAggregation::InitializeReflectingBCs ( )

Initializes reflecting boundary conditions.

Definition at line 91 of file angleaggregation.cc.

◆ IsSetup()

bool chi_mesh::sweep_management::AngleAggregation::IsSetup ( ) const
inline

Definition at line 53 of file angleaggregation.h.

◆ SetDelayedPsiNew2Old()

void chi_mesh::sweep_management::AngleAggregation::SetDelayedPsiNew2Old ( )

Copies the new delayed angular fluxes to the old.

Definition at line 696 of file angleaggregation.cc.

◆ SetDelayedPsiOld2New()

void chi_mesh::sweep_management::AngleAggregation::SetDelayedPsiOld2New ( )

Copies the old delayed angular fluxes to the new.

Definition at line 666 of file angleaggregation.cc.

◆ SetNewDelayedAngularDOFsFromArray()

void chi_mesh::sweep_management::AngleAggregation::SetNewDelayedAngularDOFsFromArray ( int64_t &  index,
const double *  x_ref 
)

Assembles angular unknowns into the reference vector.

Definition at line 438 of file angleaggregation.cc.

◆ SetNewDelayedAngularDOFsFromSTLVector()

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

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

Definition at line 528 of file angleaggregation.cc.

◆ SetOldDelayedAngularDOFsFromArray()

void chi_mesh::sweep_management::AngleAggregation::SetOldDelayedAngularDOFsFromArray ( int64_t &  index,
const double *  x_ref 
)

Assembles angular unknowns into the reference vector.

Definition at line 392 of file angleaggregation.cc.

◆ SetOldDelayedAngularDOFsFromSTLVector()

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

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

Definition at line 619 of file angleaggregation.cc.

◆ ZeroIncomingDelayedPsi()

void chi_mesh::sweep_management::AngleAggregation::ZeroIncomingDelayedPsi ( )

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

Definition at line 57 of file angleaggregation.cc.

◆ ZeroOutgoingDelayedPsi()

void chi_mesh::sweep_management::AngleAggregation::ZeroOutgoingDelayedPsi ( )

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

Definition at line 42 of file angleaggregation.cc.

Field Documentation

◆ angle_set_groups

std::vector<AngleSetGroup> chi_mesh::sweep_management::AngleAggregation::angle_set_groups

Definition at line 33 of file angleaggregation.h.

◆ grid

chi_mesh::MeshContinuumPtr chi_mesh::sweep_management::AngleAggregation::grid = nullptr

Definition at line 45 of file angleaggregation.h.

◆ is_setup

bool chi_mesh::sweep_management::AngleAggregation::is_setup =false
private

Definition at line 40 of file angleaggregation.h.

◆ num_ang_unknowns_avail

bool chi_mesh::sweep_management::AngleAggregation::num_ang_unknowns_avail = false
private

Definition at line 42 of file angleaggregation.h.

◆ number_angular_unknowns

std::pair<size_t ,size_t> chi_mesh::sweep_management::AngleAggregation::number_angular_unknowns
private

Definition at line 41 of file angleaggregation.h.

◆ number_of_group_subsets

size_t chi_mesh::sweep_management::AngleAggregation::number_of_group_subsets =0

Definition at line 36 of file angleaggregation.h.

◆ number_of_groups

size_t chi_mesh::sweep_management::AngleAggregation::number_of_groups =0

Definition at line 35 of file angleaggregation.h.

◆ quadrature

std::shared_ptr<chi_math::AngularQuadrature> chi_mesh::sweep_management::AngleAggregation::quadrature =nullptr

Definition at line 37 of file angleaggregation.h.

◆ sim_boundaries

std::map<uint64_t, SweepBndryPtr> chi_mesh::sweep_management::AngleAggregation::sim_boundaries

Definition at line 34 of file angleaggregation.h.


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