SS.Fluids 1.2.0
Dimension-safe Newtonian flow, arbitrary nonlinear pipe networks, gradually varied open-channel profiles, pump/system curves, Darcy-Colebrook losses and nozzle states
Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0
No package dependencies declared.
Public API
Fluids.bernoulliDownstream
export function bernoulliDownstream(NewtonianFluid fluid, Pa upstreamPressure, m upstreamElevation, velocity upstreamVelocity, m downstreamElevation, velocity downstreamVelocity, m headLoss, acceleration gravity)->BernoulliResultParameters: fluid: NewtonianFluid, upstreamPressure: Pa, upstreamElevation: m, upstreamVelocity: velocity, downstreamElevation: m, downstreamVelocity: velocity, headLoss: m, gravity: acceleration
Fluids.BernoulliResult
export record BernoulliResult(public Pa downstreamPressure, public m upstreamTotalHead, public m downstreamTotalHead, public double relativeEnergyResidual)Parameters: downstreamPressure: Pa, upstreamTotalHead: m, downstreamTotalHead: m, relativeEnergyResidual: double
Fluids.circularPipe
export function circularPipe(string name, m length, m diameter, m roughness, double minorLossCoefficient)->CircularPipeParameters: name: string, length: m, diameter: m, roughness: m, minorLossCoefficient: double
Fluids.CircularPipe
export record CircularPipe(public string name, public m length, public m diameter, public m roughness, public double minorLossCoefficient)Parameters: name: string, length: m, diameter: m, roughness: m, minorLossCoefficient: double
Fluids.darcyFrictionFactor
export function darcyFrictionFactor(double reynoldsNumber, double relativeRoughness)->doubleParameters: reynoldsNumber: double, relativeRoughness: double
Fluids.hagenPoiseuille
export function hagenPoiseuille(NewtonianFluid fluid, m pipeLength, m radius, Pa pressureDrop, int radialIntervals)->PipeFlowResultParameters: fluid: NewtonianFluid, pipeLength: m, radius: m, pressureDrop: Pa, radialIntervals: int
Fluids.isentropicNozzle
export function isentropicNozzle(double gamma, double gasConstant, K stagnationTemperature, Pa stagnationPressure, double areaRatio, bool supersonic, double tolerance, int maximumIterations)->NozzleStateParameters: gamma: double, gasConstant: double, stagnationTemperature: K, stagnationPressure: Pa, areaRatio: double, supersonic: bool, tolerance: double, maximumIterations: int
Fluids.kinematicViscosity
export function kinematicViscosity(NewtonianFluid fluid)->kinematicViscosityParameters: fluid: NewtonianFluid
Fluids.massConservation
export function massConservation(massFlow[] inlet, massFlow[] outlet)->doubleParameters: inlet: massFlow[], outlet: massFlow[]
Fluids.newtonian
export function newtonian(string name, density density, dynamicViscosity viscosity)->NewtonianFluidParameters: name: string, density: density, viscosity: dynamicViscosity
Fluids.NewtonianFluid
export record NewtonianFluid(public string name, public density density, public dynamicViscosity viscosity)Parameters: name: string, density: density, viscosity: dynamicViscosity
export record NonlinearPipeNetworkResult(public double[] heads, public double[] flows, public PipeHydraulicState[] pipeStates, public double maximumContinuityResidual, public int iterations, public bool converged, public string diagnostic)Parameters: heads: double[], flows: double[], pipeStates: PipeHydraulicState[], maximumContinuityResidual: double, iterations: int, converged: bool, diagnostic: string
Fluids.NozzleState
export record NozzleState(public double machNumber, public K staticTemperature, public Pa staticPressure, public density staticDensity, public velocity speed, public double areaRatio, public double areaMachResidual, public string branch)Parameters: machNumber: double, staticTemperature: K, staticPressure: Pa, staticDensity: density, speed: velocity, areaRatio: double, areaMachResidual: double, branch: string
Fluids.openChannelProfile
export function openChannelProfile(volumetricFlow flow, m width, double bedSlope, double manningRoughness, m initialDepth, m stepLength, int steps, acceleration gravity)->OpenChannelProfileResultParameters: flow: volumetricFlow, width: m, bedSlope: double, manningRoughness: double, initialDepth: m, stepLength: m, steps: int, gravity: acceleration
export record OpenChannelProfileResult(public double[] distances, public double[] depths, public double[] froudeNumbers, public double[] frictionSlopes, public double criticalDepth, public string[] regimes, public bool crossedCritical, public string diagnostic)Parameters: distances: double[], depths: double[], froudeNumbers: double[], frictionSlopes: double[], criticalDepth: double, regimes: string[], crossedCritical: bool, diagnostic: string
Fluids.OpenChannelState
export record OpenChannelState(public m normalDepth, public volumetricFlow volumeFlow, public double froudeNumber, public string regime, public double relativeDischargeResidual, public int iterations)Parameters: normalDepth: m, volumeFlow: volumetricFlow, froudeNumber: double, regime: string, relativeDischargeResidual: double, iterations: int
export record ParallelNetworkResult(public volumetricFlow[] branchFlows, public PipeHydraulicState[] branchStates, public volumetricFlow totalFlow, public double continuityResidual, public double energyResidual, public bool converged, public string diagnostic)Parameters: branchFlows: volumetricFlow[], branchStates: PipeHydraulicState[], totalFlow: volumetricFlow, continuityResidual: double, energyResidual: double, converged: bool, diagnostic: string
Fluids.PipeFlowResult
export record PipeFlowResult(public m[] radialCoordinates, public velocity[] axialVelocity, public volumetricFlow volumeFlow, public massFlow massFlow, public double reynoldsNumber, public double relativeBalanceError)Parameters: radialCoordinates: m[], axialVelocity: velocity[], volumeFlow: volumetricFlow, massFlow: massFlow, reynoldsNumber: double, relativeBalanceError: double
Fluids.pipeHydraulics
export function pipeHydraulics(NewtonianFluid fluid, CircularPipe pipe, volumetricFlow flow, Valve valve, acceleration gravity)->PipeHydraulicStateParameters: fluid: NewtonianFluid, pipe: CircularPipe, flow: volumetricFlow, valve: Valve, gravity: acceleration
Fluids.pipeHydraulics
export function pipeHydraulics(NewtonianFluid fluid, CircularPipe pipe, volumetricFlow flow, acceleration gravity)->PipeHydraulicStateParameters: fluid: NewtonianFluid, pipe: CircularPipe, flow: volumetricFlow, gravity: acceleration
export record PipeHydraulicState(public volumetricFlow volumeFlow, public velocity meanVelocity, public double reynoldsNumber, public double frictionFactor, public m distributedHeadLoss, public m minorHeadLoss, public m totalHeadLoss, public Pa pressureLoss, public double colebrookResidual, public string regime)Parameters: volumeFlow: volumetricFlow, meanVelocity: velocity, reynoldsNumber: double, frictionFactor: double, distributedHeadLoss: m, minorHeadLoss: m, totalHeadLoss: m, pressureLoss: Pa, colebrookResidual: double, regime: string
Fluids.pipeNetwork
export function pipeNetwork(int nodes, int[] startNodes, int[] endNodes, CircularPipe[] pipes, Valve[] valves, double[] pumpShutoffHeads, double[] pumpHeadCoefficients, double[] demands, bool[] fixedHeads, double[] headValues, string provenance)->PipeNetworkModelParameters: nodes: int, startNodes: int[], endNodes: int[], pipes: CircularPipe[], valves: Valve[], pumpShutoffHeads: double[], pumpHeadCoefficients: double[], demands: double[], fixedHeads: bool[], headValues: double[], provenance: string
Fluids.PipeNetworkModel
export record PipeNetworkModel(public int nodes, public int[] startNodes, public int[] endNodes, public CircularPipe[] pipes, public Valve[] valves, public double[] pumpShutoffHeads, public double[] pumpHeadCoefficients, public double[] demands, public bool[] fixedHeads, public double[] headValues, public int edges, public string provenance)Parameters: nodes: int, startNodes: int[], endNodes: int[], pipes: CircularPipe[], valves: Valve[], pumpShutoffHeads: double[], pumpHeadCoefficients: double[], demands: double[], fixedHeads: bool[], headValues: double[], edges: int, provenance: string
Fluids.PumpCurve
export record PumpCurve(public string name, public m shutoffHead, public double headCoefficient)Parameters: name: string, shutoffHead: m, headCoefficient: double
Fluids.pumpHead
export function pumpHead(PumpCurve pump, volumetricFlow flow)->mParameters: pump: PumpCurve, flow: volumetricFlow
export record PumpOperatingPoint(public volumetricFlow volumeFlow, public m pumpHead, public m systemHead, public PipeHydraulicState[] pipeStates, public double relativeHeadResidual, public int iterations, public bool converged, public string diagnostic)Parameters: volumeFlow: volumetricFlow, pumpHead: m, systemHead: m, pipeStates: PipeHydraulicState[], relativeHeadResidual: double, iterations: int, converged: bool, diagnostic: string
Fluids.pumpSystemCurve
export function pumpSystemCurve(NewtonianFluid fluid, PumpCurve pump, CircularPipe[] seriesPipes, Valve[] valves, m staticHead, acceleration gravity, volumetricFlow minimumFlow, volumetricFlow maximumFlow, int samples, double tolerance, int maximumIterations)->PumpSystemCurveResultParameters: fluid: NewtonianFluid, pump: PumpCurve, seriesPipes: CircularPipe[], valves: Valve[], staticHead: m, gravity: acceleration, minimumFlow: volumetricFlow, maximumFlow: volumetricFlow, samples: int, tolerance: double, maximumIterations: int
export record PumpSystemCurveResult(public double[] flows, public double[] pumpHeads, public double[] systemHeads, public double operatingFlow, public double operatingHead, public bool withinRange, public bool stable, public string diagnostic)Parameters: flows: double[], pumpHeads: double[], systemHeads: double[], operatingFlow: double, operatingHead: double, withinRange: bool, stable: bool, diagnostic: string
Fluids.quadraticPump
export function quadraticPump(string name, m shutoffHead, double headCoefficient)->PumpCurveParameters: name: string, shutoffHead: m, headCoefficient: double
Fluids.rectangularNormalDepth
export function rectangularNormalDepth(volumetricFlow flow, m width, double bedSlope, double manningRoughness, acceleration gravity, double tolerance, int maximumIterations)->OpenChannelStateParameters: flow: volumetricFlow, width: m, bedSlope: double, manningRoughness: double, gravity: acceleration, tolerance: double, maximumIterations: int
Fluids.solveNonlinearPipeNetwork
export function solveNonlinearPipeNetwork(NewtonianFluid fluid, PipeNetworkModel model, acceleration gravity, double tolerance, int maximumIterations)->NonlinearPipeNetworkResultParameters: fluid: NewtonianFluid, model: PipeNetworkModel, gravity: acceleration, tolerance: double, maximumIterations: int
Fluids.solveParallelNetwork
export function solveParallelNetwork(NewtonianFluid fluid, CircularPipe[] branches, Valve[] valves, m availableHead, acceleration gravity, double tolerance, int maximumIterations)->ParallelNetworkResultParameters: fluid: NewtonianFluid, branches: CircularPipe[], valves: Valve[], availableHead: m, gravity: acceleration, tolerance: double, maximumIterations: int
Fluids.solvePumpOperatingPoint
export function solvePumpOperatingPoint(NewtonianFluid fluid, PumpCurve pump, CircularPipe[] seriesPipes, Valve[] valves, m staticHead, acceleration gravity, double tolerance, int maximumIterations)->PumpOperatingPointParameters: fluid: NewtonianFluid, pump: PumpCurve, seriesPipes: CircularPipe[], valves: Valve[], staticHead: m, gravity: acceleration, tolerance: double, maximumIterations: int
Fluids.valve
export function valve(string name, double lossCoefficient)->ValveParameters: name: string, lossCoefficient: double
Fluids.Valve
export record Valve(public string name, public double lossCoefficient)Parameters: name: string, lossCoefficient: double
Documentation version
Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.