Ship the Next.js cycle editor with CAD chrome, technical HX symbols, Fixed/Free boundary guidance, and secondary water/air pressure drop support in the solver stack. Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
Modelica Fixed/Free — sources consulted (Entropyk alignment)
Official MSL (fetched)
-
Package
Modelica.Fluid.Sources
https://doc.modelica.org/om/Modelica.Fluid.Sources.html -
MassFlowSource_T— prescribed mass flow + temperature (not pressure)
https://doc.modelica.org/om/Modelica.Fluid.Sources.MassFlowSource_T.htmlQuote from OpenModelica HTML (fetched 2026-07-17):
Models an ideal flow source, with prescribed values of flow rate, temperature…
- Prescribed mass flow rate.
- Prescribed temperature.
No “prescribed pressure” in the component description.
-
Boundary_pT— prescribed pressure + temperature (not ṁ)
https://doc.modelica.org/om/Modelica.Fluid.Sources.Boundary_pT.htmlQuote (fetched 2026-07-17):
- Prescribed boundary pressure.
- Prescribed boundary temperature.
-
Context7
/modelica/modelicastandardlibrary—SimplePipelineexample:Boundary_pT→StaticPipe(wall friction / ΔP) →Boundary_pTDouble Fixed P is legal only with hydraulic resistance between the ends. An isobaric secondary path must not Fixed-P both ends.
Community
Rene Just Nielsen — legal pipe-end combinations:
https://stackoverflow.com/questions/79349553/how-pressure-and-flow-ports-are-different-in-modelica
| Inlet | Outlet | OK? |
|---|---|---|
| Boundary_pT | Boundary_pT | Yes → ṁ from ΔP |
| Boundary_pT | MassFlowSource_T | Yes |
| MassFlowSource_T | Boundary_pT | Yes |
| MassFlowSource_T | MassFlowSource_T | No |
Quote: “There is no boundary component specifying both mass flow rate and pressure.”
Entropyk mapping
| Mode | Source | Sink | HX secondary |
|---|---|---|---|
| MassFlowSource_T (default) | Fixed T, Fixed ṁ, Free P | Fixed P (anchor), Free T_out | P_out−P_in+ΔP_sec(ṁ)=0 |
| Boundary_pT + friction | Fixed P, Fixed T, Free ṁ | Fixed P | Needs frictional ΔP (pipe / HX) |
| T_out rating | Free ṁ, Free P | Fixed P + Fixed T_out | Same secondary momentum |
Secondary water ΔP (quadratic, Modelica dp_nominal style):
secondary_rated_pressure_drop_pa + secondary_rated_m_flow_kg_s
— not refrigerant dp_model=msh (tube two-phase only).
Why HX secondary isobaric P was missing (bug)
Entropyk stores two edges on a water loop (source→HX, HX→sink), each with its own P.
Without P_out − P_in = 0 on the HX, Free P on the source left P_in unconstrained → DoF under by 1 per loop.
Modelica closes that via the connection/pipe graph; Entropyk now closes it on Condenser / Evaporator / FloodedEvaporator secondary residuals.
Implementation:
- UI:
apps/web/src/lib/boundaryFix.ts - Components:
condenser.rs,evaporator.rs,flooded_evaporator.rs(n_secondary+ residuals) - Ledger:
apps/web/src/lib/dofLedger.ts