30 typedef sweep_namespace::AAH_AngleSet TAAH_AngleSet;
32 const auto& quadrature_sweep_info =
35 const auto& unique_so_groupings = quadrature_sweep_info.first;
36 const auto& dir_id_to_so_map = quadrature_sweep_info.second;
38 const size_t gs_num_grps = groupset.
groups_.size();
44 groupset.
angle_agg_ = std::make_shared<AngleAgg>(
48 size_t angle_set_id = 0;
49 for (
const auto& so_grouping : unique_so_groupings)
51 const size_t master_dir_id = so_grouping.front();
52 const size_t so_id = dir_id_to_so_map.at(master_dir_id);
54 const auto& sweep_ordering =
56 const auto& fluds_common_data =
60 const auto dir_subsets =
63 for (
size_t gs_ss = 0; gs_ss < gs_num_ss; gs_ss++)
66 for (
const auto& dir_ss_info : dir_subsets)
68 const auto& dir_ss_begin = dir_ss_info.ss_begin;
69 const auto& dir_ss_end = dir_ss_info.ss_end;
70 const auto& dir_ss_size = dir_ss_info.ss_size;
72 std::vector<size_t> angle_indices(dir_ss_size, 0);
75 for (
size_t n = dir_ss_begin; n <= dir_ss_end; ++n)
76 angle_indices[k++] = so_grouping[n];
82 std::shared_ptr<FLUDS> fluds = std::make_shared<AAH_FLUDS>(
88 std::make_shared<TAAH_AngleSet>(angle_set_id++,
98 angle_set_group.
AngleSets().push_back(angleSet);
103 "When using sweep_type \"CBC\" then "
104 "\"save_angular_flux\" must be true.");
106 std::shared_ptr<FLUDS> fluds = std::make_shared<CBC_FLUDS>(
108 angle_indices.size(),
114 auto angleSet = std::make_shared<CBC_AngleSet>(angle_set_id++,
123 angle_set_group.
AngleSets().push_back(angleSet);
131 groupset.
angle_agg_->angle_set_groups.push_back(std::move(angle_set_group));
135 <<
" Initialized Angle Aggregation. "
136 <<
" Process memory = " << std::setprecision(3)
#define ChiLogicalErrorIf(condition, message)
#define ChiInvalidArgument(message)
static chi::Timer program_timer
static chi::MPI_Info & mpi
LogStream Log(LOG_LVL level=LOG_0)
static double GetMemoryUsageInMB()
Get current memory usage in Megabytes.
std::string GetTimeString() const
std::vector< std::shared_ptr< AngleSet > > & AngleSets()
void InitFluxDataStructures(LBSGroupset &groupset)
const std::string sweep_type_
std::map< AngQuadPtr, FLUDSCommonDataPtrs > quadrature_fluds_commondata_map_
std::map< AngQuadPtr, SwpOrderGroupingInfo > quadrature_unq_so_grouping_map_
std::map< AngQuadPtr, SPDS_ptrs > quadrature_spds_map_
int master_num_ang_subsets_
std::vector< chi::SubSetInfo > grp_subset_infos_
std::shared_ptr< chi_math::AngularQuadrature > quadrature_
chi_math::UnknownManager psi_uk_man_
std::vector< LBSGroup > groups_
std::vector< std::vector< double > > psi_new_local_
chi_mesh::MeshContinuumPtr grid_ptr_
std::shared_ptr< chi_math::SpatialDiscretization > discretization_
std::map< uint64_t, std::shared_ptr< SweepBndry > > sweep_boundaries_
MPILocalCommSetPtr grid_local_comm_set_
std::vector< SubSetInfo > MakeSubSets(size_t num_items, size_t desired_num_subsets)
bool verbose_inner_iterations
chi_mesh::sweep_management::AngleSetGroup TAngleSetGroup