Class OutflowCarrier

Inheritance Relationships

Base Type

Class Documentation

class OutflowCarrier : public opensn::Carrier

Object managing outflow data on GPU.

This class manages memory for storing group-wise outflow data for each boundary face and provides cleaner way to transfer the data back to the host.

Public Functions

OutflowCarrier(LBSProblem &lbs_problem)

Constructor.

void AccumulateBack(std::vector<CellLBSView> &cell_transport_views)

Accumulate computed outflow on GPU back to CPU.

void Reset(void)

Zero-fill device and host memory, forcing flux accumulation to zero to reuse the allocated space for the next sweep.

std::uint64_t GetOffset(const std::uint32_t &cell_local_idx, const std::uint32_t &face_idx)

Get offset from cell local index and face index.

Public Members

std::map<std::uint64_t, std::uint64_t> outflow_map

Maps boundary faces to their outflow memory offsets.

This map associates each boundary face, which is identified by a tuple of cell local index and face index in the cell, with its corresponding offset in the contiguous outflow data stored on the device.

Note

Non-boundary faces are not included in this map.

std::uint64_t num_groups

Number of groups.