Class AAHDSweepChunk
Defined in File aahd_sweep_chunk.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public opensn::SweepChunk(Class SweepChunk)
Class Documentation
-
class AAHDSweepChunk : public opensn::SweepChunk
Fused all-at-once batch runs
Used only by SweepScheduler::ScheduleAlgoAAOFused.
A batch run sweeps every level of every member angle set as one uninterrupted sequence of fused kernel launches on a lane’s stream. Several lanes run at once. Angle sets that become ready later, for example when upstream angular fluxes arrive from another rank, start on a free lane. They do not wait for the runs already in flight.
-
inline std::size_t NumFusedLanes() const
Return the number of lanes, which is DiscreteOrdinatesProblem::GetFusedAAOLanes.
-
inline crb::Stream &GetLaneStream(std::size_t lane)
Return the stream of a lane.
The members of a run on that lane use it for their FLUDS copies.
- Parameters:
lane – Lane index.
- Returns:
Stream of the lane.
-
void SubmitBatchRun(std::size_t lane, const std::vector<AAHD_AngleSet*> &batch)
Enqueue a batch run on an idle lane and return without waiting.
The run sweeps every level of every angle set in the batch, followed by their completion copies (AAHD_AngleSet::SubmitCompletionCopies). Every member must have been prepared for this lane with AAHD_AngleSet::PrepareForBatch.
- Parameters:
lane – Index of an idle lane.
batch – Angle sets of the run.
-
inline bool IsLaneIdle(std::size_t lane)
Check whether a lane is idle.
- Parameters:
lane – Lane index.
- Returns:
True when all work submitted to the lane has completed.
Public Functions
-
AAHDSweepChunk(DiscreteOrdinatesProblem &problem, LBSGroupset &groupset)
-
inline DiscreteOrdinatesProblem &GetProblem()
-
inline MeshContinuum &GetGrid()
-
inline const LBSGroupset &GetGroupset() const
Protected Attributes
-
DiscreteOrdinatesProblem &problem_
-
inline std::size_t NumFusedLanes() const