1#ifndef CHITECH_LBS_DISCRETE_ORDINATES_SOLVER_H
2#define CHITECH_LBS_DISCRETE_ORDINATES_SOLVER_H
9class CBC_ASynchronousCommunicator;
19 typedef std::shared_ptr<chi_math::AngularQuadrature>
AngQuadPtr;
23 typedef std::shared_ptr<chi_mesh::sweep_management::SPDS>
SPDS_ptr;
60 static std::pair<UniqueSOGroupings, DirIDToSOMap>
89 const std::vector<int>& gs_ids,
Vec x_src,
PhiSTLOption which_phi)
override;
99 uint64_t boundary_id)
const;
void InitFluxDataStructures(LBSGroupset &groupset)
const std::string sweep_type_
std::vector< size_t > verbose_sweep_angles_
virtual ~DiscreteOrdinatesSolver() override
std::vector< SPDS_ptr > SPDS_ptrs
chi_mesh::sweep_management::FLUDSCommonData FLUDSCommonData
std::pair< size_t, size_t > GetNumPhiIterativeUnknowns() override
const std::string & SweepType() const
std::shared_ptr< chi_mesh::sweep_management::SPDS > SPDS_ptr
void SetGSPETScVecFromPrimarySTLvector(LBSGroupset &groupset, Vec x, PhiSTLOption which_phi) override
std::map< AngQuadPtr, FLUDSCommonDataPtrs > quadrature_fluds_commondata_map_
static std::pair< UniqueSOGroupings, DirIDToSOMap > AssociateSOsAndDirections(const chi_mesh::MeshContinuum &grid, const chi_math::AngularQuadrature &quadrature, AngleAggregationType agg_type, lbs::GeometryType lbs_geo_type)
DiscreteOrdinatesSolver(const chi::InputParameters ¶ms)
std::pair< UniqueSOGroupings, DirIDToSOMap > SwpOrderGroupingInfo
void SetPrimarySTLvectorFromGSPETScVec(LBSGroupset &groupset, Vec x_src, PhiSTLOption which_phi) override
std::unique_ptr< FLUDSCommonData > FLUDSCommonDataPtr
void InitializeWGSSolvers() override
void ResetSweepOrderings(LBSGroupset &groupset)
static chi::InputParameters GetInputParameters()
void InitializeSweepDataStructures()
void ZeroOutflowBalanceVars(LBSGroupset &groupset)
void SetMultiGSPETScVecFromPrimarySTLvector(const std::vector< int > &gs_ids, Vec x, PhiSTLOption which_phi) override
void GSScopedCopyPrimarySTLvectors(LBSGroupset &groupset, PhiSTLOption from_which_phi, PhiSTLOption to_which_phi) override
std::map< AngQuadPtr, SwpOrderGroupingInfo > quadrature_unq_so_grouping_map_
void Initialize() override
virtual std::shared_ptr< SweepChunk > SetSweepChunk(LBSGroupset &groupset)
void SetPrimarySTLvectorFromMultiGSPETScVecFrom(const std::vector< int > &gs_ids, Vec x_src, PhiSTLOption which_phi) override
std::map< AngQuadPtr, SPDS_ptrs > quadrature_spds_map_
std::vector< double > ComputeLeakage(int groupset_id, uint64_t boundary_id) const
chi_mesh::sweep_management::SweepChunk SweepChunk
std::vector< FLUDSCommonDataPtr > FLUDSCommonDataPtrs
std::shared_ptr< chi_math::AngularQuadrature > AngQuadPtr
void ScalePhiVector(PhiSTLOption which_phi, double value) override