Class CBC_FLUDS

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class CBC_FLUDS : public opensn::FLUDS

Host CBC FLUDS.

Public Functions

CBC_FLUDS(unsigned int num_groups, std::size_t num_angles, const CBC_FLUDSCommonData &common_data, const UnknownManager &psi_uk_man, const SpatialDiscretization &sdm)
const CBC_FLUDSCommonData &GetCommonData() const
double *UpwindPsi(const Cell &face_neighbor, unsigned int adj_cell_node, std::size_t as_ss_idx)

Return local upwind cell psi for a mapped face node.

Parameters:
  • face_neighbor – Local upwind neighbor cell.

  • adj_cell_node – Mapped node in the upwind cell.

  • as_ss_idx – Angle-set subset index.

Returns:

Local upwind cell psi for the specified node and angle subset.

double *OutgoingPsi(const Cell &cell, unsigned int cell_node, std::size_t as_ss_idx)

Return writable outgoing cell psi for a cell node.

Parameters:
  • cell – Local cell.

  • cell_node – Local cell node.

  • as_ss_idx – Angle-set subset index.

Returns:

Local outgoing cell psi for the specified node and angle subset.

double *NLUpwindPsi(std::size_t incoming_face_slot, unsigned int face_node_mapped, std::size_t as_ss_idx)

Return received nonlocal upwind face psi for a mapped face node.

Parameters:
  • incoming_face_slot – Incoming nonlocal face slot.

  • face_node_mapped – Mapped upwind face node.

  • as_ss_idx – Angle-set subset index.

Returns:

Received face psi, or nullptr if the slot has not been received this sweep epoch.

double *NLOutgoingPsi(std::vector<double> *psi_nonlocal_outgoing, std::size_t face_node, std::size_t as_ss_idx)

Return writable nonlocal outgoing face psi for a face node.

Parameters:
  • psi_nonlocal_outgoing – Nonlocal outgoing face storage.

  • face_nodeFace node.

  • as_ss_idx – Angle-set subset index.

Returns:

Writable face psi for the specified face node and angle subset.

virtual void ClearLocalAndReceivePsi() override
IncomingNonlocalPsi PrepareIncomingNonlocalPsiBySlot(std::size_t incoming_face_slot, std::size_t data_size)

Prepare incoming nonlocal face-psi storage and return the owning local cell.

Parameters:
  • incoming_face_slot – Incoming nonlocal face slot.

  • data_size – Number of psi values to store for the face.

Returns:

Prepared face-psi storage and associated local cell ID.

Protected Attributes

const CBC_FLUDSCommonData &common_data_
const UnknownManager &psi_uk_man_
const SpatialDiscretization &sdm_
std::vector<double> local_psi_data_

Spatial DOF -> angleset subset -> group major layout.

std::vector<double> incoming_nonlocal_psi_

Contiguous storage for received nonlocal face psi.

std::vector<std::size_t> incoming_nonlocal_psi_offsets_

Offsets into received nonlocal face-psi storage.

std::vector<std::uint32_t> incoming_psi_epoch_

Receive epoch for each nonlocal face slot.

std::uint32_t current_psi_epoch_ = 1

Current receive epoch.

std::vector<std::size_t> cell_psi_start_

Local angular-flux storage offset by local cell.

struct IncomingNonlocalPsi

Incoming nonlocal face psi and owning local cell.

Public Members

std::span<double> psi

Face psi storage.

std::uint32_t cell_local_id = 0

Local cell associated with the received face data.