Class SweepBoundary
Defined in File sweep_boundary.h
Inheritance Relationships
Derived Types
public opensn::ArbitraryBoundary(Class ArbitraryBoundary)public opensn::IsotropicBoundary(Class IsotropicBoundary)public opensn::ReflectingBoundary(Class ReflectingBoundary)public opensn::VacuumBoundary(Class VacuumBoundary)
Class Documentation
-
class SweepBoundary
Base class for sweep related boundaries.
Subclassed by opensn::ArbitraryBoundary, opensn::IsotropicBoundary, opensn::ReflectingBoundary, opensn::VacuumBoundary
Public Functions
-
inline explicit SweepBoundary(BoundaryBank &bank, LBSBoundaryType bndry_type)
-
virtual ~SweepBoundary() = default
-
inline LBSBoundaryType GetType() const
-
inline bool IsReflecting() const
-
inline bool IsAngleDependent() const
-
inline double GetEvaluationTime() const
-
inline void SetEvaluationTime(double time)
-
inline virtual bool HasDelayedAngularFlux() const
-
inline virtual void GetFollowingAngleSets(int groupset_id, std::set<AngleSet*> &following_angle_sets, const AngleAggregation &angle_agg, const AngleSet &angleset)
Get the list of anglesets that depend on a given angleset.
This function can only be applied to reflecting boundary and AAHD anglesets.
-
inline virtual void ZeroOpposingDelayedAngularFluxOld(int groupset_id)
-
inline virtual size_t CountDelayedAngularDOFsNew(int groupset_id) const
-
inline virtual size_t CountDelayedAngularDOFsOld(int groupset_id) const
-
inline virtual void AppendNewDelayedAngularDOFsToVector(int groupset_id, std::vector<double> &output) const
-
inline virtual void AppendOldDelayedAngularDOFsToVector(int groupset_id, std::vector<double> &output) const
-
inline virtual void AppendNewDelayedAngularDOFsToArray(int groupset_id, int64_t &index, double *buffer) const
-
inline virtual void AppendOldDelayedAngularDOFsToArray(int groupset_id, int64_t &index, double *buffer) const
-
inline virtual void SetNewDelayedAngularDOFsFromArray(int groupset_id, int64_t &index, const double *buffer)
-
inline virtual void SetOldDelayedAngularDOFsFromArray(int groupset_id, int64_t &index, const double *buffer)
-
inline virtual void SetNewDelayedAngularDOFsFromVector(int groupset_id, const std::vector<double> &values, size_t &index)
-
inline virtual void SetOldDelayedAngularDOFsFromVector(int groupset_id, const std::vector<double> &values, size_t &index)
-
inline virtual void CopyDelayedAngularFluxOldToNew(int groupset_id)
-
inline virtual void CopyDelayedAngularFluxNewToOld(int groupset_id)
-
inline virtual void GetReflectedMap(int groupset_id, std::vector<std::vector<std::uint32_t>> &reflected_maps)
-
virtual double *PsiIncoming(std::uint32_t cell_local_id, unsigned int face_num, unsigned int fi, unsigned int angle_num, int groupset_id, unsigned int group_idx)
Return a pointer to the location of the incoming flux.
-
virtual double *PsiOutgoing(uint64_t cell_local_id, unsigned int face_num, unsigned int fi, unsigned int angle_num, int groupset_id)
Return a pointer to the location of the outgoing flux.
-
inline virtual void InitializeReflectingMap(const std::vector<LBSGroupset> &groupsets)
-
inline virtual void InitializeAngleDependent(const std::vector<LBSGroupset> &groupsets)
Perform additional setup required by angle-dependent boundaries.
Angle-dependent boundaries require an extra initialization step after flux data structures are initialized. This phase cannot be executed in the constructor, which happens before the initialization of flux data structures.
-
inline double *GetBoundaryFlux(int groupset_id, std::uint64_t extra_offset = 0)
Get pointer to the boundary flux section in the contigous bank for a given groupset.
-
inline const double *GetBoundaryFlux(int groupset_id, std::uint64_t extra_offset = 0) const
Get pointer to the boundary flux section in the contigous bank for a given groupset.
-
inline virtual std::uint64_t GetOffsetToAngleset(const FaceNode &face_node, AngleSet &anglset, bool is_outgoing)
Get offset to the data region of a given angleset.
-
inline double *ZeroFlux(int groupset_id, unsigned int group_num)
-
inline virtual void UpdateBoundaryFlux(const std::vector<LBSGroupset> &groupsets)
Protected Attributes
-
BoundaryBank &bank_
Reference to the boundary bank (contiguous memory allocated for all boundaries).
-
std::vector<std::uint64_t> offset_
Offset used to access boundary flux data for each groupset.
Boundary fluxes for a given boundary start at offset * groupset.GetNumGroups().
-
LBSBoundaryType type_
Boundary type.
-
double evaluation_time_ = 0.0
Time value passed to boundary functions.
-
inline explicit SweepBoundary(BoundaryBank &bank, LBSBoundaryType bndry_type)