Class ArbitraryBoundary

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class ArbitraryBoundary : public opensn::SweepBoundary

Arbitrary incident angular flux specified by a user-supplied function.

The AngularFluxFunction is expected to return the incoming angular flux for a given energy group index and quadrature direction index. The returned values are uniform for all faces with this boundary id.

Public Functions

ArbitraryBoundary(BoundaryBank &bank, const std::vector<LBSGroupset> &groupsets, std::shared_ptr<AngularFluxTimeFunction> angular_flux_function)
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) override

Return a pointer to the location of the incoming flux.

virtual void UpdateBoundaryFlux(const std::vector<LBSGroupset> &groupsets) override
virtual void InitializeAngleDependent(const std::vector<LBSGroupset> &groupsets) override

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.

virtual std::uint64_t GetOffsetToAngleset(const FaceNode &face_node, AngleSet &anglset, bool is_outgoing) override

Get offset to the data region of a given angleset.