28 "num_groups",
"The total number of groups within the solver");
32 "An array of blocks each specifying the input parameters for a "
33 "<TT>lbs::LBSGroupset</TT>.");
37 "Block of options. See <TT>lbs::OptionsBlock</TT>.");
49 const size_t num_groups = params.
GetParamValue<
size_t>(
"num_groups");
50 for (
size_t g = 0; g < num_groups; ++g)
54 const auto& groupsets_array = params.
GetParam(
"groupsets");
57 for (
size_t gs = 0; gs < num_gs; ++gs)
59 const auto& groupset_params = groupsets_array.GetParam(gs);
66 groupsets_.emplace_back(gs_input_params, gs, *
this);
73 options_params.AssignParameters(params.
GetParam(
"options"));
119 if (
id < 0)
groups_.emplace_back(
static_cast<int>(
groups_.size()));
257const std::map<uint64_t, std::shared_ptr<SweepBndry>>&
281 auto& raw_context = wgs_solver->GetContext();
284 auto wgs_context_ptr = std::dynamic_pointer_cast<LBSWGSContext>(raw_context);
287 return *wgs_context_ptr;
305 return {num_local_phi_dofs, num_globl_phi_dofs};
312 std::string(
"Failure to map phi field function g") +
313 std::to_string(g) +
" m" + std::to_string(m));
323 "Called when options_.power_field_function_on == false");
#define ChiLogicalErrorIf(condition, message)
bool Has(const std::string ¶m_name) const
size_t NumParameters() const
T GetParamValue(const std::string ¶m_name) const
ParameterBlock & GetParam(const std::string ¶m_name)
static chi::InputParameters GetInputParameters()
static chi::InputParameters GetInputParameters()
AGSLinSolverPtr GetPrimaryAGSSolver()
std::vector< double > & PhiNewLocal()
static chi::InputParameters GetInputParameters()
std::map< uint64_t, BoundaryPreference > & BoundaryPreferences()
std::vector< std::vector< double > > psi_new_local_
std::vector< PointSource > point_sources_
chi_mesh::MeshContinuumPtr grid_ptr_
std::shared_ptr< chi_math::SpatialDiscretization > discretization_
std::vector< lbs::CellLBSView > cell_transport_views_
std::vector< UnitCellMatrices > unit_cell_matrices_
virtual std::pair< size_t, size_t > GetNumPhiIterativeUnknowns()
size_t MapPhiFieldFunction(size_t g, size_t m) const
std::vector< double > & QMomentsLocal()
std::vector< LBSGroupset > & Groupsets()
std::vector< double > & PrecursorsNewLocal()
size_t GetHandleToPowerGenFieldFunc() const
const chi_math::SpatialDiscretization & SpatialDiscretization() const
std::vector< double > phi_new_local_
std::vector< LinSolvePtr > & GetWGSSolvers()
std::vector< LBSGroup > groups_
const std::vector< PointSource > & PointSources() const
std::map< uint64_t, std::shared_ptr< SweepBndry > > sweep_boundaries_
SetSourceFunction GetActiveSetSourceFunction() const
double last_restart_write_
size_t LocalNodeCount() const
chi_math::UnknownManager flux_moments_uk_man_
const std::vector< lbs::CellLBSView > & GetCellTransportViews() const
std::map< uint64_t, BoundaryPreference > boundary_preferences_
const std::vector< LBSGroup > & Groups() const
size_t power_gen_fieldfunc_local_handle_
std::vector< VecDbl > & PsiNewLocal()
std::vector< double > & ExtSrcMomentsLocal()
std::vector< double > q_moments_local_
const std::map< uint64_t, std::shared_ptr< SweepBndry > > & SweepBoundaries() const
uint64_t glob_node_count_
const chi_math::UnknownManager & UnknownManager() const
size_t GetMaxPrecursorsPerMaterial() const
double LastRestartWrite() const
std::vector< double > ext_src_moments_local_
std::vector< double > phi_old_local_
std::map< std::pair< size_t, size_t >, size_t > phi_field_functions_local_map_
const chi_mesh::MeshContinuum & Grid() const
std::map< int, IsotropicSrcPtr > matid_to_src_map_
size_t NumMoments() const
const std::map< int, XSPtr > & GetMatID2XSMap() const
const std::map< int, IsotropicSrcPtr > & GetMatID2IsoSrcMap() const
WGSContext< Mat, Vec, KSP > & GetWGSContext(int groupset_id)
std::vector< LBSGroupset > groupsets_
size_t GlobalNodeCount() const
const std::vector< UnitCellMatrices > & GetUnitCellMatrices() const
std::vector< LinSolvePtr > wgs_solvers_
std::shared_ptr< AGSLinearSolver< Mat, Vec, KSP > > AGSLinSolverPtr
AGSLinSolverPtr primary_ags_solver_
uint64_t local_node_count_
size_t NumPrecursors() const
std::vector< double > & PhiOldLocal()
std::map< int, XSPtr > matid_to_xs_map_
size_t max_precursors_per_material_
SetSourceFunction active_set_source_function_
void AddPointSource(PointSource psrc)
static chi::InputParameters OptionsBlock()
void SetOptions(const chi::InputParameters ¶ms)
LBSSolver(const std::string &text_name)
size_t GetSourceEventTag() const
std::function< void(LBSGroupset &groupset, std::vector< double > &destination_q, const std::vector< double > &phi, SourceFlags source_flags)> SetSourceFunction
bool power_field_function_on