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>
This commit is contained in:
2026-07-17 22:46:46 +02:00
parent 62efea0646
commit 3358b74342
275 changed files with 70187 additions and 5230 deletions

View File

@@ -2,7 +2,7 @@ use entropyk_components::port::{FluidId, Port};
use entropyk_components::{Component, ComponentError, ConnectedPort, JacobianBuilder, StateSlice};
use entropyk_core::{Enthalpy, Pressure};
use entropyk_solver::solver::{NewtonConfig, Solver};
use entropyk_solver::system::System;
use entropyk_solver::system::{System, DEFAULT_MASS_FLOW_SEED_KG_S};
struct DummyComponent {
ports: Vec<ConnectedPort>,
@@ -79,8 +79,18 @@ fn test_simulation_metadata_outputs() {
let input_hash = sys.input_hash();
// CM1.2: seed each edge's mass-flow slot so the temporary ṁ closures are
// satisfied at the start (DummyComponent residuals are all zero), letting the
// solver recognise convergence without inverting the singular dummy Jacobian.
let mut initial_state = vec![0.0; sys.full_state_vector_len()];
// Refrigerant edges have stride 3 with ṁ first; seed every ṁ slot.
for m in (0..initial_state.len()).step_by(3) {
initial_state[m] = DEFAULT_MASS_FLOW_SEED_KG_S;
}
let mut solver = NewtonConfig {
max_iterations: 5,
initial_state: Some(initial_state),
..Default::default()
};
let result = solver.solve(&mut sys).unwrap();