Chi-Tech
|
#include <angleaggregation.h>
Public Types | |
typedef std::shared_ptr< SweepBndry > | SweepBndryPtr |
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< AngleSetGroup > | angle_set_groups |
std::map< uint64_t, SweepBndryPtr > | sim_boundaries |
size_t | number_of_groups =0 |
size_t | number_of_group_subsets =0 |
std::shared_ptr< chi_math::AngularQuadrature > | quadrature =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 |
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.
typedef std::shared_ptr<SweepBndry> chi_mesh::sweep_management::AngleAggregation::SweepBndryPtr |
Definition at line 31 of file angleaggregation.h.
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.
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.
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.
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.
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.
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.
void chi_mesh::sweep_management::AngleAggregation::InitializeReflectingBCs | ( | ) |
Initializes reflecting boundary conditions.
Definition at line 91 of file angleaggregation.cc.
|
inline |
Definition at line 53 of file angleaggregation.h.
void chi_mesh::sweep_management::AngleAggregation::SetDelayedPsiNew2Old | ( | ) |
Copies the new delayed angular fluxes to the old.
Definition at line 696 of file angleaggregation.cc.
void chi_mesh::sweep_management::AngleAggregation::SetDelayedPsiOld2New | ( | ) |
Copies the old delayed angular fluxes to the new.
Definition at line 666 of file angleaggregation.cc.
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.
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.
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.
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.
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.
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.
std::vector<AngleSetGroup> chi_mesh::sweep_management::AngleAggregation::angle_set_groups |
Definition at line 33 of file angleaggregation.h.
chi_mesh::MeshContinuumPtr chi_mesh::sweep_management::AngleAggregation::grid = nullptr |
Definition at line 45 of file angleaggregation.h.
|
private |
Definition at line 40 of file angleaggregation.h.
|
private |
Definition at line 42 of file angleaggregation.h.
|
private |
Definition at line 41 of file angleaggregation.h.
size_t chi_mesh::sweep_management::AngleAggregation::number_of_group_subsets =0 |
Definition at line 36 of file angleaggregation.h.
size_t chi_mesh::sweep_management::AngleAggregation::number_of_groups =0 |
Definition at line 35 of file angleaggregation.h.
std::shared_ptr<chi_math::AngularQuadrature> chi_mesh::sweep_management::AngleAggregation::quadrature =nullptr |
Definition at line 37 of file angleaggregation.h.
std::map<uint64_t, SweepBndryPtr> chi_mesh::sweep_management::AngleAggregation::sim_boundaries |
Definition at line 34 of file angleaggregation.h.