Files
Entropyk/apps/web/src/lib/componentDocMap.ts
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

95 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Maps Entropyk component types → docs/components/<slug>.md
* Served in the web app from /docs/components/<slug>.md
*/
export const COMPONENT_DOC_SLUG: Record<string, string> = {
IsentropicCompressor: "isentropic-compressor",
Compressor: "compressor-ahri540",
ScrewEconomizerCompressor: "screw-economizer-compressor",
ScrewCompressor: "screw-economizer-compressor",
Condenser: "condenser",
CondenserCoil: "condenser",
Evaporator: "evaporator",
EvaporatorCoil: "evaporator",
FloodedEvaporator: "flooded-evaporator",
FloodedCondenser: "flooded-condenser",
BphxEvaporator: "bphx",
BphxCondenser: "bphx",
AirCooledCondenser: "air-cooled-condenser",
FinCoilCondenser: "fin-coil-condenser",
MchxCondenserCoil: "mchx-condenser-coil",
MchxCoil: "mchx-condenser-coil",
HeatExchanger: "heat-exchanger-generic",
FreeCoolingExchanger: "free-cooling-exchanger",
FreeCooling: "free-cooling-exchanger",
Economizer: "economizer",
MovingBoundaryHX: "moving-boundary-hx",
IsenthalpicExpansionValve: "isenthalpic-expansion-valve",
EXV: "isenthalpic-expansion-valve",
ExpansionValve: "expansion-valve",
BypassValve: "bypass-valve",
ReversingValve: "reversing-valve",
FourWayValve: "reversing-valve",
Pipe: "pipe",
Drum: "drum",
FlowSplitter: "flow-splitter",
FlowMerger: "flow-merger",
Pump: "pump",
Fan: "fan",
RefrigerantSource: "boundaries",
RefrigerantSink: "boundaries",
BrineSource: "boundaries",
BrineSink: "boundaries",
AirSource: "boundaries",
AirSink: "boundaries",
Anchor: "anchor-heat-source",
RefrigerantNode: "anchor-heat-source",
HeatSource: "anchor-heat-source",
ThermalLoad: "thermal-load",
// Master index of correlations & compressor maps
__correlations: "correlations-and-maps",
};
/** Short model formula shown in the parameter panel header. */
export function modelBannerForType(type: string): string | undefined {
switch (type) {
case "IsentropicCompressor":
return "Modèle : h_dis = h_suc+(h_ish_suc)/η_is · ṁ = ρ·V·N·η_vol (émergent)";
case "Compressor":
return "Ahri540 : ṁ(M1M2,P,ρ,V,N) · Ẇ(M3M10) | SstSdt : ṁ,Ẇ = a00+a10·SST+a01·SDT+a11·SST·SDT";
case "ScrewEconomizerCompressor":
case "ScrewCompressor":
return "Carte bilinéaire SST/SDT : ṁ,Ẇ = a00+a10·SST+a01·SDT+a11·SST·SDT";
case "BphxEvaporator":
case "BphxCondenser":
return "Corrélation Longo/Shah → h → UA · résidus ε-NTU";
case "Condenser":
case "CondenserCoil":
return "ε-NTU biphasique : Q = ε·C_sec·(T_condT_sec) · UA global";
case "Evaporator":
case "EvaporatorCoil":
return "ε-NTU DX : Q = ε·C_sec·(T_secT_evap) · clôture superheat";
case "FloodedEvaporator":
return "ε-NTU noyé : Q = ε·C_sec·(T_secT_evap) · h_out≈h_g(P)";
case "IsenthalpicExpansionValve":
case "EXV":
return "Isenthalpe h_out=h_in · option orifice ṁ=Kv·op·√(2ρΔP)";
case "Pump":
return "Courbes 1D H(Q), η(Q) + affinité vitesse";
case "Fan":
return "Courbes 1D ΔP(Q), puissance · affinité vitesse";
default:
return undefined;
}
}
export function docSlugForType(type: string): string | undefined {
return COMPONENT_DOC_SLUG[type];
}
export function docUrlForType(type: string): string | undefined {
const slug = docSlugForType(type);
return slug ? `/docs/components/${slug}.md` : undefined;
}