OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::twoD::dispersion Namespace Reference

Classes

struct  GradientFit
 
struct  Tensor
 

Functions

Tensor tensor (double vx, double vy, double longitudinal, double transverse, double molecular)
 Form the velocity-aligned mechanical-plus-molecular dispersion tensor.
 
double faceFlux (Tensor a, Tensor b, double nx, double ny, double dl, double dr, std::array< double, 2 > armL, std::array< double, 2 > armR, std::array< double, 2 > gradL, std::array< double, 2 > gradR, double left, double right, double width)
 Evaluate a harmonic-normal dispersive exchange with deferred nonorthogonal correction.
 

Function Documentation

◆ faceFlux()

double openswmm::twoD::dispersion::faceFlux ( Tensor a,
Tensor b,
double nx,
double ny,
double dl,
double dr,
std::array< double, 2 > armL,
std::array< double, 2 > armR,
std::array< double, 2 > gradL,
std::array< double, 2 > gradR,
double left,
double right,
double width )
inline

Evaluate a harmonic-normal dispersive exchange with deferred nonorthogonal correction.

Parameters
[in]aLeft dispersion tensor multiplied by left water cross-section per edge width (theta*thickness), m3/s.
[in]bCorresponding right weighted tensor, m3/s.
[in]nxFinite X component of the unit left-to-right face normal.
[in]nyFinite Y component of the same normal.
[in]dlPositive left centroid-to-face normal distance, m.
[in]drPositive right centroid-to-face normal distance, m.
[in]armLValue-owned left centroid-to-face XY displacement, m.
[in]armRValue-owned right centroid-to-face XY displacement, m.
[in]gradLValue-owned left concentration gradient, native concentration per m.
[in]gradRCorresponding right gradient.
[in]leftFinite left dissolved concentration in native species units.
[in]rightFinite right dissolved concentration in the same units.
[in]widthFinite nonnegative shared edge length, m.
Returns
Signed species inventory rate in native concentration*m3/s, positive left-to-right; zero if either normal tensor coefficient or normal distance is not positive.
Note
Pure arithmetic; no positivity/donor-budget limiter is applied here, no arrays retained or state mutated. Caller supplies finite coherent geometry/tensors and scales/limits the result for its accepted timestep.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ tensor()

Tensor openswmm::twoD::dispersion::tensor ( double vx,
double vy,
double longitudinal,
double transverse,
double molecular )
inline

Form the velocity-aligned mechanical-plus-molecular dispersion tensor.

Parameters
[in]vxFinite porewater X velocity, m/s.
[in]vyFinite porewater Y velocity, m/s.
[in]longitudinalFinite nonnegative longitudinal dispersivity, m.
[in]transverseFinite nonnegative transverse dispersivity, m.
[in]molecularFinite nonnegative molecular diffusion coefficient, m2/s.
Returns
Value-owned symmetric dispersion tensor, m2/s; isotropic molecular tensor when speed is not positive. No allocation/input validation or mutation.
Here is the caller graph for this function: