OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::transport::fvkernels::SpeciesKernelView Struct Reference

Non-owning view over everything the species kernels read and write. More...

#include <SpeciesTransportKernels.hpp>

Collaboration diagram for openswmm::transport::fvkernels::SpeciesKernelView:

Public Attributes

const NetworkMeshDatamesh = nullptr
 
NetworkStateDatastate = nullptr
 
ScalarScheme scalar_scheme = ScalarScheme::MUSCL
 
Limiter limiter = Limiter::MINMOD
 
double dispersion = 0.0
 
bool hllc = true
 
const std::vector< double > * cell_dispersion = nullptr
 
const std::vector< double > * f_mass = nullptr
 positivity-scaled mass flux
 
const std::vector< double > * f_sstar = nullptr
 HLLC contact speed.
 
const std::vector< openswmm::fv::kernels::FaceState > * f_state_l = nullptr
 
const std::vector< openswmm::fv::kernels::FaceState > * f_state_r = nullptr
 
const std::vector< openswmm::fv::kernels::FaceFlux > * f_flux = nullptr
 
const std::vector< double > * cell_u = nullptr
 Q/A, dry-guarded.
 
const std::vector< char > * cell_active = nullptr
 
const std::vector< int > * active_faces = nullptr
 
std::vector< double > * f_phi_l = nullptr
 [s*n_faces+f] reconstructed
 
std::vector< double > * f_phi_r = nullptr
 face values
 
std::vector< double > * f_phi_flux = nullptr
 [s*n_faces+f] limited flux
 
std::vector< double > * cell_slope = nullptr
 
std::vector< double > * lo_flux = nullptr
 
std::vector< double > * anti_flux = nullptr
 
std::vector< double > * td = nullptr
 
std::vector< double > * anew = nullptr
 
std::vector< double > * rplus = nullptr
 
std::vector< double > * rminus = nullptr
 

Detailed Description

Non-owning view over everything the species kernels read and write.

Built per call by the driving solver. Read-only inputs are the mesh, the hydrodynamic face records of the current substep, and the derived cell velocity/active flags; state->cell_phi is the transported field; the remaining vectors are caller-owned scratch sized exactly as ExplicitFvSolver sizes its members (f_phi_l/r and f_phi_flux are [n_species * n_faces]; the rest are per-face or per-cell).

Member Data Documentation

◆ active_faces

const std::vector<int>* openswmm::transport::fvkernels::SpeciesKernelView::active_faces = nullptr

◆ anew

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::anew = nullptr

◆ anti_flux

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::anti_flux = nullptr

◆ cell_active

const std::vector<char>* openswmm::transport::fvkernels::SpeciesKernelView::cell_active = nullptr

◆ cell_dispersion

const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::cell_dispersion = nullptr

Per-cell dispersion coefficients [n_cells], ft²/s (phase E3: per-conduit user overrides + FISCHER auto-computation). When null, the scalar dispersion above applies uniformly — the pre-E3 path, bitwise-unchanged (see the exactness note in dispersionSolve). When set, dispersion is ignored and each interior face uses the arithmetic mean of its two cells' coefficients.

◆ cell_slope

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::cell_slope = nullptr

◆ cell_u

const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::cell_u = nullptr

Q/A, dry-guarded.

◆ dispersion

double openswmm::transport::fvkernels::SpeciesKernelView::dispersion = 0.0

◆ f_flux

const std::vector<openswmm::fv::kernels::FaceFlux>* openswmm::transport::fvkernels::SpeciesKernelView::f_flux = nullptr

◆ f_mass

const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_mass = nullptr

positivity-scaled mass flux

◆ f_phi_flux

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_phi_flux = nullptr

[s*n_faces+f] limited flux

◆ f_phi_l

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_phi_l = nullptr

[s*n_faces+f] reconstructed

◆ f_phi_r

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_phi_r = nullptr

face values

◆ f_sstar

const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_sstar = nullptr

HLLC contact speed.

◆ f_state_l

const std::vector<openswmm::fv::kernels::FaceState>* openswmm::transport::fvkernels::SpeciesKernelView::f_state_l = nullptr

◆ f_state_r

const std::vector<openswmm::fv::kernels::FaceState>* openswmm::transport::fvkernels::SpeciesKernelView::f_state_r = nullptr

◆ hllc

bool openswmm::transport::fvkernels::SpeciesKernelView::hllc = true

◆ limiter

Limiter openswmm::transport::fvkernels::SpeciesKernelView::limiter = Limiter::MINMOD

◆ lo_flux

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::lo_flux = nullptr

◆ mesh

const NetworkMeshData* openswmm::transport::fvkernels::SpeciesKernelView::mesh = nullptr

◆ rminus

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::rminus = nullptr

◆ rplus

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::rplus = nullptr

◆ scalar_scheme

ScalarScheme openswmm::transport::fvkernels::SpeciesKernelView::scalar_scheme = ScalarScheme::MUSCL

◆ state

NetworkStateData* openswmm::transport::fvkernels::SpeciesKernelView::state = nullptr

◆ td

std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::td = nullptr

The documentation for this struct was generated from the following file: