Skip to main content

Mixer / Splitter

Mixer combines streams. Splitter divides a stream.

Mixer

export function solveMixer(inlets: StreamData[]): StreamData {
const totalFlow = inlets.reduce((sum, s) => sum + s.flow, 0);

const composition: Record<string, number> = {};
for (const stream of inlets) {
for (const [compId, frac] of Object.entries(stream.composition)) {
composition[compId] = (composition[compId] || 0) +
(stream.flow / totalFlow) * frac;
}
}

return { flow: totalFlow, composition };
}

Splitter

ParameterTypeDescription
splitRatioNumberFraction to first outlet (0-1)
export function solveSplitter(inlet: StreamData, splitRatio: number) {
return {
out1: { ...inlet, flow: inlet.flow * splitRatio },
out2: { ...inlet, flow: inlet.flow * (1 - splitRatio) }
};
}