chore: remove deprecated flow_boundary and update docs to match new architecture

This commit is contained in:
Sepehr
2026-03-01 20:00:09 +01:00
parent 20700afce8
commit d88914a44f
105 changed files with 11222 additions and 2994 deletions

View File

@@ -17,7 +17,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -39,9 +39,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pression:\n",
" 1200000.00 Pa → 12.00 bar, 1200.0 kPa, 174.0 psi\n",
" 350000.00 Pa → 3.50 bar\n",
" 1034213.59 Pa → 10.34 bar\n"
]
}
],
"source": [
"# Pression - plusieurs unités supportées\n",
"p1 = entropyk.Pressure(bar=12.0)\n",
@@ -56,9 +67,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Température:\n",
" 318.15 K → 45.00°C, 113.00°F\n",
" 273.15 K → 0.00°C (point de congélation)\n",
" 310.93 K → 37.78°C, 310.93 K\n"
]
}
],
"source": [
"# Température\n",
"t1 = entropyk.Temperature(celsius=45.0)\n",
@@ -73,9 +95,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Enthalpie:\n",
" 420000.00 J/kg → 420.0 kJ/kg\n",
" 250000.00 J/kg → 250.0 kJ/kg\n"
]
}
],
"source": [
"# Enthalpie\n",
"h1 = entropyk.Enthalpy(kj_per_kg=420.0)\n",
@@ -88,9 +120,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Débit massique:\n",
" 0.050000 kg/s → 50.0 g/s\n",
" 0.050000 kg/s → 0.0500 kg/s\n"
]
}
],
"source": [
"# Débit massique\n",
"m1 = entropyk.MassFlow(kg_per_s=0.05)\n",
@@ -112,7 +154,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -149,9 +191,22 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cycles HFC classiques:\n",
"--------------------------------------------------\n",
" R134a → 8 variables d'état\n",
" R410A → 8 variables d'état\n",
" R407C → 8 variables d'état\n",
" R32 → 8 variables d'état\n"
]
}
],
"source": [
"# Test avec différents fluides HFC classiques\n",
"hfc_fluids = [\"R134a\", \"R410A\", \"R407C\", \"R32\"]\n",
@@ -174,9 +229,114 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Fluide</th>\n",
" <th>Type</th>\n",
" <th>GWP</th>\n",
" <th>Usage</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>R1234yf</td>\n",
" <td>HFO</td>\n",
" <td>&lt;1</td>\n",
" <td>Remplacement R134a (automobile)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>R1234ze(E)</td>\n",
" <td>HFO</td>\n",
" <td>&lt;1</td>\n",
" <td>Remplacement R134a (stationnaire)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>R1233zd(E)</td>\n",
" <td>HCFO</td>\n",
" <td>1</td>\n",
" <td>Remplacement R123 (basse pression)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>R1243zf</td>\n",
" <td>HFO</td>\n",
" <td>&lt;1</td>\n",
" <td>Nouveau fluide recherche</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>R1336mzz(E)</td>\n",
" <td>HFO</td>\n",
" <td>&lt;1</td>\n",
" <td>ORC, haute température</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>R513A</td>\n",
" <td>Mélange</td>\n",
" <td>631</td>\n",
" <td>R134a + R1234yf (56/44)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>R454B</td>\n",
" <td>Mélange</td>\n",
" <td>146</td>\n",
" <td>R32 + R1234yf (50/50) - Opteon XL41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>R452B</td>\n",
" <td>Mélange</td>\n",
" <td>676</td>\n",
" <td>R32 + R125 + R1234yf - Opteon XL55</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Fluide Type GWP Usage\n",
"0 R1234yf HFO <1 Remplacement R134a (automobile)\n",
"1 R1234ze(E) HFO <1 Remplacement R134a (stationnaire)\n",
"2 R1233zd(E) HCFO 1 Remplacement R123 (basse pression)\n",
"3 R1243zf HFO <1 Nouveau fluide recherche\n",
"4 R1336mzz(E) HFO <1 ORC, haute température\n",
"5 R513A Mélange 631 R134a + R1234yf (56/44)\n",
"6 R454B Mélange 146 R32 + R1234yf (50/50) - Opteon XL41\n",
"7 R452B Mélange 676 R32 + R125 + R1234yf - Opteon XL55"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# HFO et alternatives Low-GWP\n",
"low_gwp_fluids = [\n",
@@ -196,9 +356,26 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 9,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cycles HFO / Low-GWP:\n",
"--------------------------------------------------\n",
" R1234yf → ✅ Supporté (8 vars)\n",
" R1234ze(E) → ✅ Supporté (8 vars)\n",
" R1233zd(E) → ✅ Supporté (8 vars)\n",
" R1243zf → ✅ Supporté (8 vars)\n",
" R1336mzz(E) → ✅ Supporté (8 vars)\n",
" R513A → ✅ Supporté (8 vars)\n",
" R454B → ✅ Supporté (8 vars)\n",
" R452B → ✅ Supporté (8 vars)\n"
]
}
],
"source": [
"# Test cycles HFO\n",
"print(\"Cycles HFO / Low-GWP:\")\n",
@@ -222,9 +399,98 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 10,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Code ASHRAE</th>\n",
" <th>Nom</th>\n",
" <th>GWP</th>\n",
" <th>Application</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>R744</td>\n",
" <td>CO2</td>\n",
" <td>1</td>\n",
" <td>Transcritique, commercial</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>R290</td>\n",
" <td>Propane</td>\n",
" <td>3</td>\n",
" <td>Climatisation, commercial</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>R600a</td>\n",
" <td>Isobutane</td>\n",
" <td>3</td>\n",
" <td>Domestique, commerc. faible charge</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>R600</td>\n",
" <td>Butane</td>\n",
" <td>3</td>\n",
" <td>Réfrigération basse température</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>R1270</td>\n",
" <td>Propylène</td>\n",
" <td>3</td>\n",
" <td>Climatisation industrielle</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>R717</td>\n",
" <td>Ammonia</td>\n",
" <td>0</td>\n",
" <td>Industriel, forte puissance</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Code ASHRAE Nom GWP Application\n",
"0 R744 CO2 1 Transcritique, commercial\n",
"1 R290 Propane 3 Climatisation, commercial\n",
"2 R600a Isobutane 3 Domestique, commerc. faible charge\n",
"3 R600 Butane 3 Réfrigération basse température\n",
"4 R1270 Propylène 3 Climatisation industrielle\n",
"5 R717 Ammonia 0 Industriel, forte puissance"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Fluides naturels\n",
"natural_fluids = [\n",
@@ -242,9 +508,24 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 11,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cycles fluides naturels:\n",
"--------------------------------------------------\n",
" R744 (CO2 ) → ✅ Supporté\n",
" R290 (Propane ) → ✅ Supporté\n",
" R600a (Isobutane ) → ✅ Supporté\n",
" R600 (Butane ) → ✅ Supporté\n",
" R1270 (Propylène ) → ✅ Supporté\n",
" R717 (Ammonia ) → ✅ Supporté\n"
]
}
],
"source": [
"# Test cycles fluides naturels\n",
"print(\"Cycles fluides naturels:\")\n",
@@ -266,9 +547,17 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 12,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total réfrigérants classiques: 26\n"
]
}
],
"source": [
"# Autres réfrigérants disponibles\n",
"other_refrigerants = [\n",
@@ -295,9 +584,168 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 13,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Nom CoolProp</th>\n",
" <th>Formule</th>\n",
" <th>Usage</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Water</td>\n",
" <td>H2O</td>\n",
" <td>Fluide de travail, calibration</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Air</td>\n",
" <td>N2+O2</td>\n",
" <td>Climatisation, psychrométrie</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Nitrogen</td>\n",
" <td>N2</td>\n",
" <td>Cryogénie, inertage</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Oxygen</td>\n",
" <td>O2</td>\n",
" <td>Applications spéciales</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Argon</td>\n",
" <td>Ar</td>\n",
" <td>Cryogénie</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Helium</td>\n",
" <td>He</td>\n",
" <td>Cryogénie très basse T</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Hydrogen</td>\n",
" <td>H2</td>\n",
" <td>Énergie, cryogénie</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Methane</td>\n",
" <td>CH4</td>\n",
" <td>GNL, pétrole</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Ethane</td>\n",
" <td>C2H6</td>\n",
" <td>Pétrochimie</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Ethylene</td>\n",
" <td>C2H4</td>\n",
" <td>Pétrochimie</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Propane</td>\n",
" <td>C3H8</td>\n",
" <td>= R290</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Butane</td>\n",
" <td>C4H10</td>\n",
" <td>= R600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Ethanol</td>\n",
" <td>C2H5OH</td>\n",
" <td>Solvant</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Methanol</td>\n",
" <td>CH3OH</td>\n",
" <td>Solvant</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Acetone</td>\n",
" <td>C3H6O</td>\n",
" <td>Solvant</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Benzene</td>\n",
" <td>C6H6</td>\n",
" <td>Chimie</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Toluene</td>\n",
" <td>C7H8</td>\n",
" <td>ORC</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Nom CoolProp Formule Usage\n",
"0 Water H2O Fluide de travail, calibration\n",
"1 Air N2+O2 Climatisation, psychrométrie\n",
"2 Nitrogen N2 Cryogénie, inertage\n",
"3 Oxygen O2 Applications spéciales\n",
"4 Argon Ar Cryogénie\n",
"5 Helium He Cryogénie très basse T\n",
"6 Hydrogen H2 Énergie, cryogénie\n",
"7 Methane CH4 GNL, pétrole\n",
"8 Ethane C2H6 Pétrochimie\n",
"9 Ethylene C2H4 Pétrochimie\n",
"10 Propane C3H8 = R290\n",
"11 Butane C4H10 = R600\n",
"12 Ethanol C2H5OH Solvant\n",
"13 Methanol CH3OH Solvant\n",
"14 Acetone C3H6O Solvant\n",
"15 Benzene C6H6 Chimie\n",
"16 Toluene C7H8 ORC"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Fluides non-réfrigérants disponibles\n",
"other_fluids = [\n",
@@ -333,9 +781,108 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 14,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== RÉSUMÉ DES FLUIDES DISPONIBLES ===\n",
"Total: 61+ fluides\n",
"\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Catégorie</th>\n",
" <th>Exemples</th>\n",
" <th>Nombre</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>HFC Classiques</td>\n",
" <td>R134a, R410A, R407C, R32, R125</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>HFO / Low-GWP</td>\n",
" <td>R1234yf, R1234ze(E), R1233zd(E)</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Alternatives (Mélanges)</td>\n",
" <td>R513A, R454B, R452B, R507A</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Fluides Naturels</td>\n",
" <td>R744 (CO2), R290, R600a, R717</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>CFC/HCFC (Obsolètes)</td>\n",
" <td>R11, R12, R22, R123, R141b</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Autres HFC</td>\n",
" <td>R143a, R152A, R227EA, R245fa</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Non-Réfrigérants</td>\n",
" <td>Water, Air, Nitrogen, Helium</td>\n",
" <td>17</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Catégorie Exemples Nombre\n",
"0 HFC Classiques R134a, R410A, R407C, R32, R125 5\n",
"1 HFO / Low-GWP R1234yf, R1234ze(E), R1233zd(E) 6\n",
"2 Alternatives (Mélanges) R513A, R454B, R452B, R507A 4\n",
"3 Fluides Naturels R744 (CO2), R290, R600a, R717 6\n",
"4 CFC/HCFC (Obsolètes) R11, R12, R22, R123, R141b 8\n",
"5 Autres HFC R143a, R152A, R227EA, R245fa 15\n",
"6 Non-Réfrigérants Water, Air, Nitrogen, Helium 17"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Catégorisation complète\n",
"fluid_summary = {\n",
@@ -377,9 +924,24 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 15,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== Cycle CO2 Transcritique (R744) ===\n",
"\n",
"Propriétés du CO2:\n",
" Point critique: 31.0°C, 73.8 bar\n",
" GWP: 1\n",
" Applications: Supermarchés, transports, chaleur industrielle\n",
"\n",
"Système créé: 8 variables d'état\n"
]
}
],
"source": [
"# Cycle CO2 transcritique\n",
"print(\"=== Cycle CO2 Transcritique (R744) ===\")\n",
@@ -401,9 +963,25 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 16,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== Cycle Ammoniac (R717) ===\n",
"\n",
"Propriétés de l'Ammoniac:\n",
" Point critique: 132.4°C, 113.3 bar\n",
" GWP: 0 (naturel)\n",
" haute efficacité, toxique mais détectable\n",
" Applications: Industrie agroalimentaire, patinoires, entrepôts\n",
"\n",
"Système créé: 8 variables d'état\n"
]
}
],
"source": [
"# Cycle Ammoniac\n",
"print(\"=== Cycle Ammoniac (R717) ===\")\n",
@@ -426,9 +1004,26 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 17,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== Cycle Propane (R290) ===\n",
"\n",
"Propriétés du Propane:\n",
" Point critique: 96.7°C, 42.5 bar\n",
" GWP: 3 (très bas)\n",
" Excellentes propriétés thermodynamiques\n",
" Inflammable (A3)\n",
" Applications: Climatisation, pompes à chaleur, commercial\n",
"\n",
"Système créé: 8 variables d'état\n"
]
}
],
"source": [
"# Cycle Propane\n",
"print(\"=== Cycle Propane (R290) ===\")\n",
@@ -452,9 +1047,17 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 18,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Solver configuré: FallbackConfig(newton=NewtonConfig(max_iter=200, tol=1.0e-6, line_search=true), picard=PicardConfig(max_iter=500, tol=1.0e-4, relax=0.50))\n"
]
}
],
"source": [
"# Exemple de configuration du solveur pour résolution\n",
"system = build_simple_cycle(\"R134a\")\n",
@@ -502,7 +1105,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "entropyk",
"language": "python",
"name": "python3"
},
@@ -516,7 +1119,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.0"
"version": "3.13.11"
}
},
"nbformat": 4,