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

@@ -88,6 +88,9 @@ fn test_simulation_result_statuses() {
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 50,
},
SimulationResult {
@@ -98,6 +101,9 @@ fn test_simulation_result_statuses() {
state: None,
performance: None,
error: Some("Error".to_string()),
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 0,
},
SimulationResult {
@@ -108,6 +114,9 @@ fn test_simulation_result_statuses() {
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 1000,
},
];
@@ -137,26 +146,38 @@ fn test_batch_aggregator_csv_output() {
input: "scenario1.json".to_string(),
status: SimulationStatus::Converged,
convergence: Some(entropyk_cli::run::ConvergenceInfo {
final_residual: 1e-8,
tolerance: 1e-6,
}),
final_residual: 1e-8,
tolerance: 1e-6,
iterations: None,
strategy: None,
iteration_history: vec![],
}),
iterations: Some(25),
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 150,
},
SimulationResult {
input: "scenario2.json".to_string(),
status: SimulationStatus::Converged,
convergence: Some(entropyk_cli::run::ConvergenceInfo {
final_residual: 5e-7,
tolerance: 1e-6,
}),
final_residual: 5e-7,
tolerance: 1e-6,
iterations: None,
strategy: None,
iteration_history: vec![],
}),
iterations: Some(30),
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 200,
},
SimulationResult {
@@ -167,6 +188,9 @@ fn test_batch_aggregator_csv_output() {
state: None,
performance: None,
error: Some("Solver failed".to_string()),
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 0,
},
];
@@ -195,6 +219,9 @@ fn test_batch_aggregator_json_summary() {
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 50,
},
SimulationResult {
@@ -205,6 +232,9 @@ fn test_batch_aggregator_json_summary() {
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 75,
},
SimulationResult {
@@ -215,6 +245,9 @@ fn test_batch_aggregator_json_summary() {
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 5000,
},
];
@@ -268,11 +301,17 @@ fn test_batch_summary_csv_with_convergence() {
convergence: Some(entropyk_cli::run::ConvergenceInfo {
final_residual: 1e-9,
tolerance: 1e-6,
iterations: None,
strategy: None,
iteration_history: vec![],
}),
iterations: Some(42),
state: None,
performance: None,
error: None,
failure_diagnostics: None,
initialization_diagnostics: None,
dof: None,
elapsed_ms: 300,
}];