Class ReflectingBoundary

Inheritance Relationships

Base Type

Class Documentation

class ReflectingBoundary : public opensn::SweepBoundary

Reflective boundary condition.

Public Functions

inline ReflectingBoundary(size_t num_groups, const Vector3 &normal, CoordinateSystemType coord_type = CoordinateSystemType::CARTESIAN)
inline const Vector3 &GetNormal() const
inline virtual const Vector3 *GetNormalForReflection() const override
inline virtual bool HasDelayedAngularFlux() const override
virtual void InitializeDelayedAngularFlux(const std::shared_ptr<MeshContinuum> &grid, const AngularQuadrature &quadrature) override
virtual void GetFollowingAngleSets(std::set<AngleSet*> &following_angle_sets, const AngleAggregation &angle_agg, const AngleSet &angleset) override

Get the list of anglesets that depend on a given angleset.

If the boundary is not opposing reflecting, this method extracts all anglesets in the angle aggregation that can only begin sweeping after the given angle set has completed its sweep.

Parameters:
  • following_angle_sets – Output set to which the dependent anglesets will be added.

  • angle_agg – Angle aggregation containing all anglesets.

  • angleset – Angleset for which dependent anglesets are sought.

virtual void FinalizeDelayedAngularFluxSetup(uint64_t boundary_id, const std::map<uint64_t, std::shared_ptr<SweepBoundary>> &boundaries) override
virtual void ZeroOpposingDelayedAngularFluxOld() override
virtual size_t CountDelayedAngularDOFsNew() const override
virtual size_t CountDelayedAngularDOFsOld() const override
virtual void AppendNewDelayedAngularDOFsToVector(std::vector<double> &output) const override
virtual void AppendOldDelayedAngularDOFsToVector(std::vector<double> &output) const override
virtual void AppendNewDelayedAngularDOFsToArray(int64_t &index, double *buffer) const override
virtual void AppendOldDelayedAngularDOFsToArray(int64_t &index, double *buffer) const override
virtual void SetNewDelayedAngularDOFsFromArray(int64_t &index, const double *buffer) override
virtual void SetOldDelayedAngularDOFsFromArray(int64_t &index, const double *buffer) override
virtual void SetNewDelayedAngularDOFsFromVector(const std::vector<double> &values, size_t &index) override
virtual void SetOldDelayedAngularDOFsFromVector(const std::vector<double> &values, size_t &index) override
virtual void CopyDelayedAngularFluxOldToNew() override
virtual void CopyDelayedAngularFluxNewToOld() override
virtual double *PsiIncoming(std::uint32_t cell_local_id, unsigned int face_num, unsigned int fi, unsigned int angle_num, unsigned int group_num) override

Returns 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) override

Returns a pointer to the location of the outgoing flux.

virtual void UpdateAnglesReadyStatus(const std::vector<std::uint32_t> &angles) override
virtual bool CheckAnglesReadyStatus(const std::vector<std::uint32_t> &angles) override
virtual void ResetAnglesReadyStatus() override

Protected Types

using AngularFluxData = std::vector<std::vector<std::vector<std::vector<std::vector<double>>>>>

Protected Attributes

const Vector3 normal_
bool opposing_reflected_ = false
AngularFluxData boundary_flux_
AngularFluxData boundary_flux_old_
std::vector<int> reflected_anglenum_
std::vector<bool> angle_readyflags_