Skip to content

Water Quality Analysis Functions

These functions are used to perform a water quality analysis.

Function Description
solveQ Runs a complete water quality simulation with results at uniform reporting intervals written to the project's binary output file.
openQ Opens a project's water quality solver.
initQ Initializes a network prior to running a water quality analysis.
runQ Makes hydraulic and water quality results at the start of the current time period available to a project's water quality solver.
nextQ Advances a water quality simulation over the time until the next hydraulic event.
stepQ Advances a water quality simulation by a single water quality time step.
closeQ Closes the water quality solver, freeing all of its allocated memory.

solveQ

Runs a complete water quality simulation with results at uniform reporting intervals written to the project's binary output file.

solveQ(): void;

A hydraulic analysis must have been run and saved to a hydraulics file before calling solveQ. This function will not allow one to examine intermediate water quality results as they are generated. It can be followed by a call to report to write all hydraulic and water quality results to a formatted report file.

One can instead use the openQ - initQ - runQ - nextQ - closeQ sequence to gain access to water quality results at intermediate time periods.


openQ

Opens a project's water quality solver.

openQ(): void;

Call openQ prior to running the first water quality analysis using an initQ - runQ - nextQ (or stepQ) sequence. Multiple water quality analyses can be made before calling closeQ to close the water quality solver.

Do not call this function if a complete water quality analysis will be made using solveQ.


initQ

Initializes a network prior to running a water quality analysis.

initQ(initFlag: InitHydOption.Save | InitHydOption.NoSave): void;

Parameters

Parameter Type Description
initFlag InitHydOption.Save InitHydOption.NoSave set to InitHydOption.Save if results are to be saved to the project's binary output file, or to InitHydOption.NoSave if not. (see InitHydOption)

Call initQ prior to running a water quality analysis using runQ in conjunction with either nextQ or stepQ.

openQ must have been called prior to calling initQ.

Do not call initQ if a complete water quality analysis will be made using solveQ.


runQ

Makes hydraulic and water quality results at the start of the current time period available to a project's water quality solver.

runQ(): number;

Returns

Number current simulation time in seconds.

Use runQ along with nextQ in a loop to access water quality results at the start of each hydraulic period in an extended period simulation. Or use it in a loop with stepQ to access results at the start of each water quality time step.

initQ must have been called prior to running an runQ - nextQ (or stepQ) loop.

The current time of the simulation is determined from information saved with the hydraulic analysis that preceded the water quality analysis.


nextQ

Advances a water quality simulation over the time until the next hydraulic event.

nextQ(): number;

Returns

Number time (in seconds) until the next hydraulic event or 0 if at the end of the full simulation duration.

This function is used in a loop with runQ to perform an extended period water quality analysis. It reacts and routes a project's water quality constituent over a time step determined by when the next hydraulic event occurs. Use stepQ instead if you wish to generate results over each water quality time step.

The return is determined from information produced by the hydraulic analysis that preceded the water quality analysis.


stepQ

Advances a water quality simulation by a single water quality time step.

stepQ(): number;

Returns

Number time left (in seconds) to the overall simulation duration.

This function is used in a loop with runQ to perform an extended period water quality simulation. It allows one to generate water quality results at each water quality time step of the simulation, rather than over each hydraulic event period as with nextQ.

Use the returned value to determine when no more calls to runQ are needed because the end of the simulation period has been reached (i.e., when timeLeft = 0).


closeQ

Closes the water quality solver, freeing all of its allocated memory.

closeQ(): void;

Call closeQ after all water quality analyses have been made using the initQ - runQ - nextQ (or stepQ) sequence of function calls.

Do not call this function if solveQ is being used.