OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SolverOptions2D.hpp File Reference

Configuration options for the 2D surface routing solver. More...

#include <cstdint>
#include <string>
#include <vector>
#include "../../core/FilePathPair.hpp"
Include dependency graph for SolverOptions2D.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::twoD::SolverOptions2D
 Configuration for the 2D surface routing solver. More...
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 
namespace  openswmm::twoD::report2d
 Dataset groups the 2D results writer can emit ([2D_OPTIONS] REPORT_2D_VARIABLES). One bit per group; the tokens are the names below. Unselected groups are NOT created in the file, so readers treat every time-varying dataset as optional.
 

Enumerations

enum class  openswmm::twoD::CellClosure2D : int8_t {
  openswmm::twoD::FLAT = 0 ,
  openswmm::twoD::VFR = 1
}
 Volume → free-surface closure for a 2D cell. More...
 
enum class  openswmm::twoD::FaceDepth2D : int8_t {
  openswmm::twoD::MEAN = 0 ,
  openswmm::twoD::VFR_FACE = 1
}
 Effective conveyance depth at a shared edge for the diffusive-wave flux. More...
 
enum class  openswmm::twoD::RainfallMode : int8_t {
  openswmm::twoD::NATURAL_NEIGHBOUR = 0 ,
  openswmm::twoD::SYSTEM = 1 ,
  openswmm::twoD::NONE = 2
}
 How raingage rainfall is mapped onto the 2D mesh cells. More...
 
enum class  openswmm::twoD::Backend2D : int8_t {
  openswmm::twoD::CPU = 0 ,
  openswmm::twoD::AUTO = 1 ,
  openswmm::twoD::OMP = 2 ,
  openswmm::twoD::CUDA = 3 ,
  openswmm::twoD::HIP = 4 ,
  openswmm::twoD::SYCL = 5
}
 Compute backend for the 2D marcher (mirrors fv::Backend). More...
 
enum class  openswmm::twoD::Momentum2D : int8_t {
  openswmm::twoD::LOCAL_INERTIAL = 0 ,
  openswmm::twoD::FULL_SWE = 1 ,
  openswmm::twoD::DIFFUSIVE_WAVE = 2
}
 Momentum closure of the explicit 2D marcher (2D_FULL_SWE_SHOCK_CAPTURING_PLAN_2026-09-05 §2). More...
 
enum class  openswmm::twoD::OutputPrecision2D : int8_t {
  openswmm::twoD::FLOAT32 = 0 ,
  openswmm::twoD::FLOAT64 = 1
}
 Storage precision of the 2D results file's time-varying datasets ([2D_OPTIONS] OUTPUT_PRECISION). Mesh geometry always stays float64: projected coordinates are O(1e6) m and float32 would lose centimetres there; depth/velocity fields have no such offset. More...
 
enum  openswmm::twoD::report2d::Var : unsigned {
  openswmm::twoD::report2d::DEPTH = 1u << 0 ,
  openswmm::twoD::report2d::VELOCITY = 1u << 1 ,
  openswmm::twoD::report2d::EDGE_FLUX = 1u << 2 ,
  openswmm::twoD::report2d::NODE_HEAD = 1u << 3 ,
  openswmm::twoD::report2d::SPECIES = 1u << 4 ,
  openswmm::twoD::report2d::RAINFALL = 1u << 5 ,
  openswmm::twoD::report2d::INFILTRATION = 1u << 6 ,
  openswmm::twoD::report2d::COUPLING = 1u << 7 ,
  openswmm::twoD::report2d::GRADIENTS = 1u << 8 ,
  openswmm::twoD::report2d::CONTINUITY = 1u << 9 ,
  openswmm::twoD::report2d::ENVELOPES = 1u << 10 ,
  openswmm::twoD::report2d::ALL_MASK = (1u << 11) - 1u ,
  openswmm::twoD::report2d::DEFAULT_MASK ,
  openswmm::twoD::report2d::MINIMAL_MASK = DEPTH | NODE_HEAD | ENVELOPES
}
 

Detailed Description

Configuration options for the 2D surface routing solver.

See also
TWO_DIMENSIONAL_SURFACE_ROUTING_IMPLEMENTATION_STRATEGY.md §2.3
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n Apache-2.0