![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Non-owning view over everything the species kernels read and write. More...
#include <SpeciesTransportKernels.hpp>
Public Attributes | |
| const NetworkMeshData * | mesh = nullptr |
| NetworkStateData * | state = 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 |
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).
| const std::vector<int>* openswmm::transport::fvkernels::SpeciesKernelView::active_faces = nullptr |
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::anew = nullptr |
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::anti_flux = nullptr |
| const std::vector<char>* openswmm::transport::fvkernels::SpeciesKernelView::cell_active = nullptr |
| 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.
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::cell_slope = nullptr |
| const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::cell_u = nullptr |
Q/A, dry-guarded.
| double openswmm::transport::fvkernels::SpeciesKernelView::dispersion = 0.0 |
| const std::vector<openswmm::fv::kernels::FaceFlux>* openswmm::transport::fvkernels::SpeciesKernelView::f_flux = nullptr |
| const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_mass = nullptr |
positivity-scaled mass flux
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_phi_flux = nullptr |
[s*n_faces+f] limited flux
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_phi_l = nullptr |
[s*n_faces+f] reconstructed
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_phi_r = nullptr |
face values
| const std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::f_sstar = nullptr |
HLLC contact speed.
| const std::vector<openswmm::fv::kernels::FaceState>* openswmm::transport::fvkernels::SpeciesKernelView::f_state_l = nullptr |
| const std::vector<openswmm::fv::kernels::FaceState>* openswmm::transport::fvkernels::SpeciesKernelView::f_state_r = nullptr |
| bool openswmm::transport::fvkernels::SpeciesKernelView::hllc = true |
| Limiter openswmm::transport::fvkernels::SpeciesKernelView::limiter = Limiter::MINMOD |
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::lo_flux = nullptr |
| const NetworkMeshData* openswmm::transport::fvkernels::SpeciesKernelView::mesh = nullptr |
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::rminus = nullptr |
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::rplus = nullptr |
| ScalarScheme openswmm::transport::fvkernels::SpeciesKernelView::scalar_scheme = ScalarScheme::MUSCL |
| NetworkStateData* openswmm::transport::fvkernels::SpeciesKernelView::state = nullptr |
| std::vector<double>* openswmm::transport::fvkernels::SpeciesKernelView::td = nullptr |