Files
Entropyk/docs/modelica-boundary-proof.md
sepehr 3358b74342 Add diagram workbench UI with Modelica DoF coaching and ISO glyphs.
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>
2026-07-17 22:46:46 +02:00

2.8 KiB
Raw Blame History

Modelica Fixed/Free — sources consulted (Entropyk alignment)

Official MSL (fetched)

  1. Package Modelica.Fluid.Sources
    https://doc.modelica.org/om/Modelica.Fluid.Sources.html

  2. MassFlowSource_T — prescribed mass flow + temperature (not pressure)
    https://doc.modelica.org/om/Modelica.Fluid.Sources.MassFlowSource_T.html

    Quote 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.

  3. Boundary_pT — prescribed pressure + temperature (not ṁ)
    https://doc.modelica.org/om/Modelica.Fluid.Sources.Boundary_pT.html

    Quote (fetched 2026-07-17):

    • Prescribed boundary pressure.
    • Prescribed boundary temperature.
  4. Context7 /modelica/modelicastandardlibrarySimplePipeline example:

    Boundary_pTStaticPipe (wall friction / ΔP) → Boundary_pT

    Double 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_outP_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_snot 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