chore: update documentation to reflect recent architectural changes and improve clarity
This commit is contained in:
@@ -250,7 +250,19 @@ fn main() {
|
||||
let result = config.solve(&mut system);
|
||||
let mut html = String::new();
|
||||
html.push_str("<html><head><meta charset=\"utf-8\"><title>Cycle Solver Integration Results</title>");
|
||||
html.push_str("<style>body{font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; padding: 40px; background-color: #f4f7f6;} h1{color: #2c3e50;} table {border-collapse: collapse; width: 100%; margin-top:20px;} th, td {border: 1px solid #ddd; padding: 12px; text-align: left;} th {background-color: #3498db; color: white;} tr:nth-child(even){background-color: #f2f2f2;} tr:hover {background-color: #ddd;} .success{color: #27ae60; font-weight:bold;} .error{color: #e74c3c; font-weight:bold;} .info-box {background-color: #ecf0f1; border-left: 5px solid #3498db; padding: 15px; margin-bottom: 20px;}</style>");
|
||||
html.push_str("<style>body{font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; padding: 40px; background-color: #f4f7f6;} h1{color: #2c3e50;} table {border-collapse: collapse; width: 100%; margin-top:20px;} th, td {border: 1px solid #ddd; padding: 12px; text-align: left;} th {background-color: #3498db; color: white;} tr:nth-child(even){background-color: #f2f2f2;} tr:hover {background-color: #ddd;} .success{color: #27ae60; font-weight:bold;} .error{color: #e74c3c; font-weight:bold;} .info-box {background-color: #ecf0f1; border-left: 5px solid #3498db; padding: 15px; margin-bottom: 20px;}");
|
||||
html.push_str(".cycle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; max-width: 700px; margin: 50px auto; position: relative; }");
|
||||
html.push_str(".cycle-node { background: white; padding: 30px 20px; border-radius: 20px; box-shadow: 0 10px 40px rgba(0,0,0,0.08); text-align: center; position: relative; border: 1px solid #edf2f7; transition: transform 0.3s ease, box-shadow 0.3s ease; }");
|
||||
html.push_str(".cycle-node:hover { transform: translateY(-5px); box-shadow: 0 15px 50px rgba(0,0,0,0.12); }");
|
||||
html.push_str(".node-comp { border-bottom: 8px solid #e53e3e; }");
|
||||
html.push_str(".node-cond { border-bottom: 8px solid #dd6b20; }");
|
||||
html.push_str(".node-valve { border-bottom: 8px solid #38a169; }");
|
||||
html.push_str(".node-evap { border-bottom: 8px solid #3182ce; }");
|
||||
html.push_str(".node-icon { font-size: 40px; margin-bottom: 15px; }");
|
||||
html.push_str(".node-title { font-weight: 800; color: #2d3748; font-size: 20px; letter-spacing: -0.5px; }");
|
||||
html.push_str(".node-subtitle { font-size: 14px; color: #718096; margin-top: 6px; font-weight: 500; }");
|
||||
html.push_str(".state-label { position: absolute; background: #2d3748; color: white; padding: 6px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; box-shadow: 0 4px 10px rgba(0,0,0,0.1); white-space: nowrap; z-index: 10;}");
|
||||
html.push_str("</style>");
|
||||
html.push_str("</head><body>");
|
||||
|
||||
html.push_str("<h1>Résultats de l'Intégration du Cycle Thermodynamique (Contrôle Inverse)</h1>");
|
||||
@@ -263,6 +275,42 @@ fn main() {
|
||||
html.push_str("<li><b>Actionneur (Bounded Variable)</b> : Modification dynamique de l'ouverture de la vanne (valve_opening) dans les limites [0.0 - 1.0].</li>");
|
||||
html.push_str("</ul></div>");
|
||||
|
||||
html.push_str("<div class=\"cycle-grid\">");
|
||||
|
||||
// Compressor (Top Left)
|
||||
html.push_str("<div class=\"cycle-node node-comp\">");
|
||||
html.push_str("<div class=\"state-label\" style=\"top: 20px; right: -70px;\">HP Gaz 🌡️➔</div>");
|
||||
html.push_str("<div class=\"node-icon\">⚙️</div>");
|
||||
html.push_str("<div class=\"node-title\">Compresseur</div>");
|
||||
html.push_str("<div class=\"node-subtitle\">Compression isentropique</div>");
|
||||
html.push_str("</div>");
|
||||
|
||||
// Condenser (Top Right)
|
||||
html.push_str("<div class=\"cycle-node node-cond\">");
|
||||
html.push_str("<div class=\"state-label\" style=\"bottom: -20px; left: 50%; transform: translateX(-50%);\">⬇️ HP Liquide 💧</div>");
|
||||
html.push_str("<div class=\"node-icon\">♨️</div>");
|
||||
html.push_str("<div class=\"node-title\">Condenseur</div>");
|
||||
html.push_str("<div class=\"node-subtitle\">Rejet de chaleur (Désurchauffe/Condensation)</div>");
|
||||
html.push_str("</div>");
|
||||
|
||||
// Evaporator (Bottom Left)
|
||||
html.push_str("<div class=\"cycle-node node-evap\">");
|
||||
html.push_str("<div class=\"state-label\" style=\"top: -20px; left: 50%; transform: translateX(-50%);\">⬆️ BP Gaz 🌀</div>");
|
||||
html.push_str("<div class=\"node-icon\">❄️</div>");
|
||||
html.push_str("<div class=\"node-title\">Évaporateur</div>");
|
||||
html.push_str("<div class=\"node-subtitle\">Absorption chaleur utile (Surchauffe visée)</div>");
|
||||
html.push_str("</div>");
|
||||
|
||||
// Valve (Bottom Right)
|
||||
html.push_str("<div class=\"cycle-node node-valve\">");
|
||||
html.push_str("<div class=\"state-label\" style=\"top: 20px; left: -80px;\">⬅️ BP Mixte 🌫️</div>");
|
||||
html.push_str("<div class=\"node-icon\">🎛️</div>");
|
||||
html.push_str("<div class=\"node-title\">Vanne de Détente</div>");
|
||||
html.push_str("<div class=\"node-subtitle\">Détente isenthalpique (variable)</div>");
|
||||
html.push_str("</div>");
|
||||
|
||||
html.push_str("</div>");
|
||||
|
||||
match result {
|
||||
Ok(converged) => {
|
||||
html.push_str(&format!("<p class='success'>✅ Modèle Résolu Thermodynamiquement avec succès en {} itérations de Newton-Raphson.</p>", converged.iterations));
|
||||
|
||||
Reference in New Issue
Block a user