Class FLUDS
Defined in File fluds.h
Inheritance Relationships
Derived Types
public opensn::AAHD_FLUDS(Class AAHD_FLUDS)public opensn::AAH_FLUDS(Class AAH_FLUDS)public opensn::CBCD_FLUDS(Class CBCD_FLUDS)public opensn::CBC_FLUDS(Class CBC_FLUDS)
Class Documentation
-
class FLUDS
Subclassed by opensn::AAHD_FLUDS, opensn::AAH_FLUDS, opensn::CBCD_FLUDS, opensn::CBC_FLUDS
Public Types
-
using DelayedFluxCorrection = std::function<double(std::uint32_t, unsigned int, unsigned int, unsigned int)>
Isotropic nodal correction: (cell local id, face, face node, group index within the groupset) -> value added to the angular flux in every direction.
Public Functions
-
inline virtual void ClearLocalAndReceivePsi()
-
inline virtual void ClearSendPsi()
-
inline virtual void AllocateInternalLocalPsi()
-
inline virtual void AllocateOutgoingPsi()
-
inline virtual void AllocateDelayedLocalPsi()
-
inline virtual void AllocatePrelocIOutgoingPsi()
-
inline virtual void AllocateDelayedPrelocIOutgoingPsi()
-
inline std::span<double> &DelayedLocalPsi()
-
inline std::span<double> &DelayedLocalPsiOld()
-
inline std::span<double> &DelayedLocalPsiE()
-
inline std::span<double> &DelayedLocalPsiEOld()
-
inline virtual void SetDelayedLocalPsiOldToNew()
-
inline virtual void SetDelayedLocalPsiNewToOld()
-
inline std::vector<std::span<double>> &DeplocIOutgoingPsi()
-
inline std::vector<std::span<double>> &DeplocIOutgoingPsiE()
-
inline std::vector<std::span<double>> &PrelocIOutgoingPsi()
-
inline std::vector<std::span<double>> &PrelocIOutgoingPsiE()
-
inline std::vector<std::span<double>> &DelayedPrelocIOutgoingPsi()
-
inline std::vector<std::span<double>> &DelayedPrelocIOutgoingPsiE()
-
inline std::vector<std::span<double>> &DelayedPrelocIOutgoingPsiOld()
-
inline std::vector<std::span<double>> &DelayedPrelocIOutgoingPsiEOld()
-
inline virtual void SetDelayedOutgoingPsiOldToNew()
-
inline virtual void SetDelayedOutgoingPsiNewToOld()
-
inline bool HasDelayedAngularFlux() const
Whether this FLUDS stores delayed (lagged) angular fluxes, within or between locations.
-
inline virtual void CorrectNewDelayedAngularFlux(const DelayedFluxCorrection&)
Adds an isotropic nodal correction to every new (latest-iterate) delayed angular flux, that is, to the lagged values the next sweep reads where a cyclic dependency was broken, within this location or between locations.
The correction is evaluated at the face node of the downwind cell that reads the value.
A FLUDS type that stores delayed angular fluxes must override this. The default accepts only a FLUDS without them and otherwise throws, so that lagged fluxes of a type that does not implement the correction fail loudly instead of keeping an error that re-enters on the next sweep.
-
inline virtual void AddToNewDelayedAngularSlope(const DelayedFluxCorrection &correction)
Adds a nodal value, as CorrectNewDelayedAngularFlux does, to every new delayed CSDA energy-slope value.
The default has no delayed energy slopes.
-
virtual ~FLUDS() = default
Protected Attributes
-
const unsigned int num_groups_
-
const size_t num_angles_
-
const size_t num_groups_and_angles_
-
std::span<double> delayed_local_psi_view_
-
std::span<double> delayed_local_psi_old_view_
-
std::span<double> delayed_local_psiE_view_
-
std::span<double> delayed_local_psiE_old_view_
-
std::vector<std::span<double>> deplocI_outgoing_psi_view_
-
std::vector<std::span<double>> deplocI_outgoing_psiE_view_
-
std::vector<std::span<double>> prelocI_outgoing_psi_view_
-
std::vector<std::span<double>> prelocI_outgoing_psiE_view_
-
std::vector<std::span<double>> delayed_prelocI_outgoing_psi_view_
-
std::vector<std::span<double>> delayed_prelocI_outgoing_psi_old_view_
-
std::vector<std::span<double>> delayed_prelocI_outgoing_psiE_view_
-
std::vector<std::span<double>> delayed_prelocI_outgoing_psiE_old_view_
-
using DelayedFluxCorrection = std::function<double(std::uint32_t, unsigned int, unsigned int, unsigned int)>