Class AAH_FLUDS

Inheritance Relationships

Base Type

Class Documentation

class AAH_FLUDS : public opensn::FLUDS

Implementation of the Adams-Adams-Hawkins Flux data structure.

Public Functions

AAH_FLUDS(unsigned int num_groups, size_t num_angles, const AAH_FLUDSCommonData &common_data, bool csda_enabled)

This constructor initializes an auxiliary FLUDS based on a primary FLUDS.

The restriction here is that the auxiliary FLUDS has the exact same sweep ordering as the primary FLUDS.

inline bool CSDASlopeEnabled() const
double *OutgoingPsi(std::size_t cell_so_index, int outb_face_counter, std::size_t face_dof, std::size_t n)

Given a sweep ordering index, the outgoing face counter, the outgoing face dof, this function computes the location of this position’s upwind psi in the local upwind psi vector and returns a reference to it.

double *OutgoingPsiE(std::size_t cell_so_index, int outb_face_counter, std::size_t face_dof, std::size_t n)
virtual void CorrectNewDelayedAngularFlux(const DelayedFluxCorrection &correction) override

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.

virtual void AddToNewDelayedAngularSlope(const DelayedFluxCorrection &correction) override

Adds a nodal value, as CorrectNewDelayedAngularFlux does, to every new delayed CSDA energy-slope value.

The default has no delayed energy slopes.

double *UpwindPsi(std::size_t cell_so_index, int inc_face_counter, std::size_t face_dof, unsigned int g, std::size_t n)

Given a sweep ordering index, the incoming face counter, the incoming face dof, this function computes the location where to store this position’s outgoing psi and returns a reference to it.

double *UpwindPsiE(std::size_t cell_so_index, int inc_face_counter, std::size_t face_dof, unsigned int g, std::size_t n)
double *NLOutgoingPsi(int outb_face_count, std::size_t face_dof, std::size_t n)

Given a outbound face counter this method returns a pointer to the location.

double *NLOutgoingPsiE(int outb_face_count, std::size_t face_dof, std::size_t n)
double *NLUpwindPsi(int nonl_inc_face_counter, std::size_t face_dof, unsigned int g, std::size_t n)

Given a sweep ordering index, the incoming face counter, the incoming face dof, this function computes the location where to obtain the position’s upwind psi.

double *NLUpwindPsiE(int nonl_inc_face_counter, std::size_t face_dof, unsigned int g, std::size_t n)
size_t GetPrelocIFaceDOFCount(std::size_t prelocI) const
size_t GetDelayedPrelocIFaceDOFCount(std::size_t prelocI) const
size_t GetDeplocIFaceDOFCount(std::size_t deplocI) const
virtual void ClearLocalAndReceivePsi() override
virtual void ClearSendPsi() override
virtual void AllocateInternalLocalPsi() override
virtual void AllocateOutgoingPsi() override
virtual void AllocateDelayedLocalPsi() override
virtual void AllocatePrelocIOutgoingPsi() override
virtual void AllocateDelayedPrelocIOutgoingPsi() override
virtual void SetDelayedOutgoingPsiOldToNew() override
virtual void SetDelayedOutgoingPsiNewToOld() override
virtual void SetDelayedLocalPsiOldToNew() override
virtual void SetDelayedLocalPsiNewToOld() override