Getting started
Flux Flow lets you draw a piping system — the same way an engineer sketches one on a whiteboard — and then it solves the physics live: how much flows where, what the pressure is at every point, how hot everything gets, and what happens when a valve slams shut.
Your first minute
- Open the app. The Home screen shows Your systems (everything you've built) and a template gallery.
- Tap a template — they open already solved, so you immediately see live numbers. Good first picks: Pump loop (the classic water circuit) or CPU liquid cooling (heat in, heat out).
- Tap any icon on the canvas. An inspector opens on the right — every number you change re-solves the whole system instantly.
The templates
- Pump loop — reservoir → pump → control valve → outlet. Water moving because a pump pushes it.
- Gravity drain — an elevated tank draining with no pump: height alone drives the flow.
- Chilled-water loop — pumped cold water absorbing a building's heat through a heat exchanger.
- CPU liquid cooling — a 350 W cold plate heating a small loop, rejected by a two-fan air cooler.
- Compressed-air header — a compressor filling a real receiver tank that feeds a throttled air line.
- Steam line — 100 psig steam through a long insulated pipe.
- Blank — a minimal solved line to build on.
Templates create your own copy — rename it on Home, edit it freely, and it autosaves continuously.
↑ ContentsThe canvas
The canvas is your drawing board. A system is made of two kinds of things:
- Nodes — the round/square icons. They are the points of the system: where fluid enters, leaves, or where pipes meet.
- Components — everything between two nodes: pipes, valves, pumps, heat exchangers…
Working the canvas
- + Add — add new nodes and components. Components can also be inserted into an existing pipe: select the component type, then tap the pipe you want it dropped into.
- Connect — wire things together: tap Connect, tap the first node, then tap the second.
- Drag any icon to move it. Drag a component and both of its connection points move with it.
- Tap anything to select it and open its inspector. Tap empty canvas to deselect.
- Pinch to zoom, drag empty canvas to pan. The zoom pill at bottom right resets.
- Long-press an element for quick actions like Delete.
Reading the status chrome
- "Solving live" pill — the solver runs automatically after every edit. You never press "run" for steady results.
- Results bar (bottom left) — the system headline: solved state, total delivered flow, overall ΔP, and the fastest velocity anywhere.
- Flow arrows — animated arrows show flow direction and speed; their color follows temperature (blue = cold, red = hot), so heat visibly moves through the system.
Nodes — the endpoints and junction points
Every system needs at least one pressure reference — a node that fixes pressure so the solver has an anchor (a reservoir, tank, or outlet). Here is every node type and when to use it:
- Reservoir (atmospheric)
- An open tank or basin. Its Head is the liquid level height — more head = more driving pressure. Set its supply temperature; downstream temperatures follow from it.
- Pressurized Tank
- A closed vessel. Three modes: fixed pressure (holds the set pressure forever), floating (takes whatever pressure the system imposes), or finite air / finite liquid — a real tank that fills and drains over time on the canvas (see Tanks & scenarios).
- Infinite Supply
- A boundary that always delivers fluid at the set pressure — model a utility main or a huge upstream source.
- Atmospheric Intake (air)
- Where a compressor breathes from. It automatically uses the temperature and humidity of the zone it sits in — put it in a hot room and the compressor ingests hot air.
- Assigned Flow (in / out)
- Forces an exact flow in or out ("this process draws 40 gpm, period"). The solver finds whatever pressure makes that happen. Pick any unit — volumetric or mass.
- Junction
- Where pipes meet. Optionally give it a fitting (elbow, tee, gradual reducer…) and the correct industry K-factor loss is applied automatically — tees even detect which legs are the run and which is the branch. A gradual reducer is a smooth cone joining two pipe sizes (small loss); for explicit inlet/outlet bores with pressure recovery use the Reducer/Venturi component instead.
- Accumulator / Surge Vessel
- A gas-charged cushion teed off the line. Idle in steady flow; absorbs shock in transient runs. Set its pre-charge pressure and volume.
- Cap (sealed end)
- A dead end. No flow passes; it just reads the local pressure.
- Outlet (atmospheric) & Pressurized Discharge
- Where fluid leaves. An atmospheric outlet discharges to open air (its Head can model a discharge elevation); a pressurized discharge pushes into a back-pressure you set. Their temperature is a result of your design — the stream arrives at whatever the system delivers.
Pipes
Pipes are where friction lives. Their inspector:
- Sizing — pick a standard (ASME/DIN) size and schedule and the true internal bore and wall thickness are filled from the catalog, or choose Custom and type a bore.
- Length — friction loss is proportional to it.
- Roughness — the wall texture (new steel ≈ 0.046 mm). Feeds the friction calculation.
- Material — sets wall conductivity (for heat loss) and stiffness (for water-hammer wave speed).
- Insulation — pick a material and thickness; pipe heat loss to the surroundings drops accordingly. The pipe exchanges heat with the zone it passes through.
Valves
- Valve (control / manual)
- The workhorse. Set its type and open % with the slider — the flow updates live. The Curve tab shows its Cv characteristic (how capacity grows with opening); drag points to reshape it, use the Table for exact numbers, or pick a Preset. Pneumatically actuated valves can also record air-per-stroke and strokes/minute, which adds to your compressed-air demand.
- Check Valve
- A one-way valve. Flow passes in the direction you drew it (the canvas arrow) and is blocked in reverse — leak-tight to 0.1%. Essential after pumps: in a pump-trip transient it's what stops the column flowing backward.
- Relief Valve
- Stays shut until the line reaches its set pressure, then lifts and vents with the set Cv. Protects equipment from overpressure — watch it crack during tank blowdowns.
- Pressure Regulator
- Automatically throttles itself to hold a downstream setpoint — model it where a real regulator holds, say, 60 psig on a header regardless of demand.
Pumps, compressors & blowers
Machines add energy. All three share the pattern: a Running toggle, a performance curve, and a bore (connection size — sets displayed velocity and the drag it adds when stopped).
- Pump — liquids. Its curve is head vs flow: drag points to reshape, set a duty point (flow → the curve gives head, or vice versa), and read shutoff head, max flow and NPSHr. The system "rides the curve": the operating point is where the pump curve meets the system's resistance.
- Compressor — gases to real pressure. Its "design flow" is free-air delivery; connected to a finite-air tank it fills it live on the canvas, topping out at its discharge pressure. Pair with a pressure sensor + automation to make it cycle on/off like a real unit.
- Blower — low-pressure/high-volume air. Pick centrifugal, positive-displacement (Roots), or regenerative; set pressure rise and design flow.
Other components
- Reducer / Venturi
- Explicit bore change: set inlet and outlet diameters and a loss K. Watch the energy budget here — it shows exactly how much pressure converts to velocity.
- Orifice Plate
- A precision restriction: set pipe bore, β (hole-to-pipe ratio) and discharge coefficient.
- Heater / Cooler
- Adds or removes a fixed heat duty (kW or BTU/hr) to the stream — a cold plate, an electric heater, a fixed process load.
- Filter / Strainer, Static Mixer, Generic Fitting
- Simple resistances: each applies its K-factor loss at its bore.
Heat exchangers
A heat exchanger moves heat between two streams without mixing them. Flux Flow models three families:
- Shell & Tube — the industrial classic: one stream inside a bundle of tubes, the other washing over them inside a shell.
- Plate & Frame — stacked plates, very effective, common in HVAC and refrigeration.
- Air-to-Fins (fin-fan / dry cooler) — fans blow air over finned tubes. It rejects heat to the air around it: the zone it sits in, or the global ambient.
The other side of the exchanger
Every exchanger has a second stream carrying the heat away (or bringing it in). Two ways to model it:
- External stream — pick the fluid (water, glycol, oil…), its flow and inlet temperature. The inspector shows its capacity rate, its computed outlet temperature, and the duty. Toggle Isothermal for condensing/evaporating utilities like steam.
- Couple to another on-canvas stream — choose "Couple to …" and pick another heat-exchanger element. The two loops then share one physical unit drawn as one graphic: both lines connect into the same symbol, and the heat that leaves one stream enters the other, exactly. This is how you build a visible cooling loop.
Rate from hardware geometry
Instead of typing a UA (overall conductance), flip "Rate from hardware geometry" and describe the actual hardware — the app computes performance with published engineering methods:
- Fin-fan: air flow (CFM), number of fans and how many are running, forced or induced draft, tube rows/count/length, fin height, thickness and fins-per-inch. Readouts include face area and velocity, air-side coefficient, fin efficiency, computed UA, air-side pressure drop and fan power. Fans-off falls back to a natural-draft credit, and the app warns if an "air cooler" would actually heat your stream.
- Shell & tube: shell diameter, tube count/passes/length, pitch and layout, baffle cut and spacing. Readouts show both film coefficients, UA and both-side pressure drops.
Readouts — and what the numbers mean
Put any value on any node
Select a node → Show on canvas → toggle any combination of Pressure, Stagnation, Temperature, Velocity, Flow. They stack in a card under the icon. Components show their own readout too (flow · velocity by default; heat rate for thermal elements) — changeable per element.
Static vs velocity head vs stagnation
Tap any node and read the three-row breakdown:
- Static pressure (Pₛ) — what a gauge mounted on the wall reads. The "actual" pressure.
- Velocity head (½ρV²) — the part of the energy carried as motion, shown with the velocity that produces it.
- Stagnation (P₀) — their total: what a probe facing the flow would read. Marked with the little
₀on canvas readouts.
Where the pressure goes
Select any component: its energy budget splits the pressure change across it into converted to velocity (with V before → after), spent climbing / gained descending (elevation), and friction/device loss — or "added by pump." The rows visibly sum to the ΔP. This answers "how much of my pressure became speed?" at a glance.
↑ ContentsFluids
Pick the working fluid in System Settings: water, seawater, glycol mixes, oils, fuels, acids, cryogens, and common gases (air, N₂, O₂, CO₂, H₂, He, Ar, methane…). Gas systems automatically switch to the compressible solver — including sonic choking (flow that caps at the speed of sound) and real-gas Joule–Thomson cooling when high-pressure gas is throttled down.
↑ ContentsAmbient zones
A zone is a rectangle you draw on the canvas with its own temperature and humidity — a boiler room, the outdoors, a server closet. Anything placed inside uses that local environment:
- Pipes lose (or gain) heat to their zone.
- Air coolers breathe their zone's air — a fin-fan in a hot room rejects far less heat.
- Air intakes and compressors ingest at the zone's conditions.
- Real tanks cool toward their zone's temperature.
Drag an element across a zone boundary and the solution updates instantly.
↑ ContentsSensors & alarms
Sensors are instruments you pin to the system; they show live values on the schematic. Kinds: pressure, temperature, level (on nodes) and flow, velocity, turbulence (on components). Each sensor can carry alarm thresholds — its badge turns red outside the band. Sensors are also the triggers for automations.
↑ ContentsAutomations — "when this, do that"
Two flavors:
- Canvas automations — rules like "when tank pressure rises above 120 psig, stop the compressor" or "when it falls below 90, start it." Trigger on any measurable quantity at any node or component (or at a time), and drive any controllable element: valve position, machine on/off.
- Sensor rules in the transient runner — the same idea evaluated inside a surge simulation, e.g. "if pressure spikes above X, open the relief."
This is how receiver tanks cycle realistically and how level switches fill and drain liquid tanks.
↑ ContentsTransient — water hammer, in plain words
When flowing liquid is stopped suddenly — a valve slams, a pump trips — the moving column can't stop instantly. The energy becomes a pressure wave that slams back and forth through the pipes at roughly the speed of sound. That's water hammer, and it bursts real pipes.
Tap Transient… to open the runner:
- Duration — how many seconds to simulate.
- Timed events — the classic surge initiators, scheduled to the second: valve strokes (close/open over a ramp), machine stop/start (pump trips and restarts), boundary-pressure steps (a supply header collapsing), and demand changes (a hydrant opening).
- Sensors & rules — instruments recorded during the run, plus protective automations that fire mid-surge.
- Press Run. Charts show pressure at every node and flow in every pipe over time — filter series by tapping them. Export the whole thing as a report.
Tanks, compressors & operational scenarios
Make a pressurized tank finite and it becomes a real vessel:
- Finite air — a receiver: a compressor fills it (watch pressure and gas temperature rise — real compression heat), draws deplete it, and its shell sheds heat to the room over time.
- Finite liquid — a level that rises as pumps fill and falls as draws empty, with the level's head feeding back into the hydraulics. Level sensors + automations make float switches.
The transient runner also includes longer, minutes-scale runs: tank fill (compressor cycling on your automations), blowdown (tank venting through the system), and the scenario march (compressor + consumers together over time).
↑ ContentsClosed loops
Real loops recirculate: the return feeds the supply. On any supplying node, flip "Closed loop (return feeds this supply)" and the supply temperature stops being an input — the app iterates until supply equals the mixed return, i.e. until the loop's net heat in equals net heat out.
Both sides of that balance count every thermal path, re-evaluated at each iteration:
- Heat in — heaters and cold plates, heat received through a heat exchanger from a hotter stream, and pipe pickup from warmer surroundings.
- Heat out — coolers and air coolers, pipe losses to the surroundings, and — critically — heat carried away into another fluid through a heat exchanger: an external utility stream (its ṁ·cp absorbs the duty and its outlet temperature rises), or a coupled on-canvas loop, where the second fluid's heat capacity soaks up exactly what this loop gives up.
Because exchanger duty depends on both streams' temperatures, the equilibrium and the exchangers are solved together: as the loop warms, its exchangers transfer more, until everything balances. The inspector then shows the solved equilibrium supply temperature. Undersized heat removal — cooler, exchanger or receiving stream? The equilibrium runs hot and tells you so honestly.
↑ ContentsDesign limits & warnings
- Design limits — set max ΔP / velocity / flow / temperature / pressure per element or node. Violations turn elements red and are collected in the limits summary.
- Erosion advisory — liquid lines running faster than the configurable erosional-velocity limit get an amber advisory (protective guidance, not a failure).
- Engineering advisories — e.g. an air cooler whose process enters colder than the surrounding air ("this will HEAT the stream"), or induced-draft fans behind a too-hot process.
Reports
Export a PDF report of the system and its results — from the transient runner after a run, ready to share or file. It uses your display units.
↑ ContentsSettings & units
- Units — Imperial (psig, °F, gpm, ft/s, BTU/hr…) or SI (kPa, °C, m³/h, m/s, kW…). Every readout, field, chart and report follows.
- Pressure unit — gauge or absolute reference (psig/psia, barg/bara…), re-based to your site elevation's atmosphere.
- Ambient conditions — global temperature, humidity, pressure/elevation and wind (wind speeds up tank and pipe heat loss outdoors). Zones override these locally.
- Erosional velocity limit — the amber advisory threshold.
Glossary — plain-English
- Head
- Pressure expressed as a height of fluid. A 10 ft column of water pushes with ~4.3 psi.
- ΔP (delta-P)
- Pressure difference across something — the "cost" of pushing flow through it.
- K-factor
- A fitting's resistance, counted in velocity heads. Industry tables (Crane) give each fitting its K.
- Cv
- A valve's capacity: the gpm of water it passes at 1 psi drop when fully open.
- Static / stagnation pressure
- Wall-gauge reading vs total including the flow's motion. See Readouts.
- NPSH
- Net Positive Suction Head — the margin keeping a pump's inlet from boiling the liquid (cavitation).
- Water hammer / surge
- The pressure wave when moving liquid is stopped quickly. See Transient.
- UA
- A heat exchanger's overall conductance — how many watts it moves per degree of temperature difference.
- Choked flow
- Gas flow capped at the speed of sound — lowering downstream pressure further adds no flow.
- Joule–Thomson cooling
- Real gases cool when throttled from high pressure — why letdown valves frost up.
Troubleshooting / FAQ
- Nothing flows.
- Check: (1) there's a pressure source (reservoir/tank/supply) and somewhere for flow to go (outlet/discharge/draw); (2) everything is actually connected (use Connect); (3) no valve is at 0% open; (4) machines are Running.
- The system won't solve / numbers look wrong.
- Make sure at least one boundary node fixes a pressure. Two fixed-flow nodes with no pressure reference can't be solved — physics needs an anchor.
- Why does my outlet show a temperature I can't edit?
- Outlets receive the stream — their temperature is a result. Set temperatures at supplying nodes.
- My air cooler is heating the fluid!
- Its surrounding air is hotter than your process. An air cooler can only reject heat when the process is hotter than the air — check the zone it sits in. The inspector warns about exactly this.
- What does the little ₀ after psig mean?
- Stagnation (total) pressure — static plus the velocity head. Tap the node for the breakdown.
- A component is red.
- It's violating a design limit you set — check its Limits section, or the limits summary.
- Something else?
- Email doug@fluxengineering.com — include a screenshot if you can.