Pollutants#

Note

Engine: OpenSWMM 6 — refactored.

Pollutants and their fate parameters. Shape mirrors Nodessolver.pollutants is the collection, Pollutant is the wrapper.

Reference: openswmm_pollutants.h.


Quickstart#

from openswmm.engine import Solver, ConcentrationUnits

with Solver("model.inp") as s:
    tss = s.pollutants["TSS"]
    print(tss.units, tss.kdecay, tss.init_conc)

    # Decay / fate
    tss.kdecay = 0.05

    # Runtime injection at a node or link.
    s.pollutants.set_node_quality("J1", "TSS", 12.0)
    s.pollutants.set_link_quality("C1", "TSS", 8.0)

Collection#

Operation

What it does

len(s.pollutants) / for p in s.pollutants: / s.pollutants[key]

Standard container protocol over Pollutant wrappers.

s.pollutants.get_index(id) / get_id(idx)

Id ↔ index lookup.

s.pollutants.add(id, units=ConcentrationUnits.MG_PER_L)

Append a pollutant. Returns the new Pollutant.

s.pollutants.set_node_quality(node, pollutant, conc)

Runtime quality injection at a node.

s.pollutants.set_link_quality(link, pollutant, conc)

Runtime quality injection in a link.


Wrapper: Pollutant#

Property

Type

Mode

Meaning

id / index

str / int

read-only

units

ConcentrationUnits

read-only

kdecay

float

read/write

First-order decay coefficient.

mwt

float

read/write

Molecular weight.

rain_conc / gw_conc / init_conc / rdii_conc

float

read/write

Inflow concentrations.

snow_only

bool

read/write

co_pollutant

(Pollutant, float) | None

read-only

Use Pollutant.set_co_pollutant(other, fraction)() to set the co-pollutant link.


See also#