Skip to content

Commit da7bb54

Browse files
committed
docs: add EOS-CG model for CO2 and combustion gases
1 parent 5d1c2b7 commit da7bb54

File tree

1 file changed

+60
-5
lines changed

1 file changed

+60
-5
lines changed

examples/equationOfState.py

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- PR: Peng-Robinson (similar to SRK, often better liquid density)
1313
- CPA: Cubic-Plus-Association (water, alcohols, glycols)
1414
- GERG-2008: Reference EoS for natural gas (very accurate)
15+
- EOS-CG: For CO2 and combustion product gases
1516
- PR-Peneloux: Peng-Robinson with volume translation
1617
1718
@author: NeqSim Team
@@ -38,7 +39,8 @@
3839
'cpa' | CPA-SRK - polar & associating compounds
3940
'cpa-pr' | CPA-Peng-Robinson
4041
'gerg-2008' | GERG-2008 - reference EoS for natural gas
41-
'span-wagner' | Span-Wagner - reference EoS for CO2
42+
'eos-cg' | EOS-CG - CO2 and combustion gases (GERG-2008 based)
43+
'span-wagner' | Span-Wagner - reference EoS for pure CO2
4244
'electrolyte' | For brine/salt solutions
4345
'nrtl' | Activity coefficient model
4446
'unifac' | UNIFAC group contribution model
@@ -199,9 +201,58 @@ def create_wet_gas(eos_name):
199201
print(f"{eos:13} | Error: {e}")
200202

201203
# =============================================================================
202-
# 6. GUIDELINES FOR EoS SELECTION
204+
# 6. EOS-CG FOR CO2 AND COMBUSTION GASES
203205
# =============================================================================
204-
print("\n6. GUIDELINES FOR EoS SELECTION")
206+
print("\n6. EOS-CG FOR CO2 AND COMBUSTION GASES")
207+
print("-" * 40)
208+
print("""
209+
EOS-CG (Equation of State for Combustion Gases) is based on GERG-2008
210+
but optimized for CO2-rich mixtures and combustion product gases.
211+
212+
Best suited for:
213+
- Carbon capture and storage (CCS)
214+
- CO2 transport pipelines
215+
- Flue gas/exhaust gas mixtures
216+
- Oxy-fuel combustion systems
217+
- Blue/green hydrogen with CO2
218+
219+
Components: CO2, N2, O2, Ar, H2O, CO, H2, H2S, SO2, CH4
220+
""")
221+
222+
# Create a typical flue gas / CCS mixture
223+
print("Example: CO2-rich CCS mixture")
224+
print("Composition: 95% CO2, 3% N2, 1% O2, 1% Ar")
225+
print(f"\nConditions: T = 25°C, P = 100 bara (dense phase CO2)")
226+
print("\nEoS | Density [kg/m³] | Z-factor")
227+
print("-" * 45)
228+
229+
for eos in ["srk", "pr", "eos-cg"]:
230+
try:
231+
ccs_gas = fluid(eos)
232+
ccs_gas.addComponent("CO2", 95.0, "mol%")
233+
ccs_gas.addComponent("nitrogen", 3.0, "mol%")
234+
ccs_gas.addComponent("oxygen", 1.0, "mol%")
235+
ccs_gas.addComponent("argon", 1.0, "mol%")
236+
if eos not in ["eos-cg"]:
237+
ccs_gas.setMixingRule("classic")
238+
ccs_gas.setTemperature(25.0, "C")
239+
ccs_gas.setPressure(100.0, "bara")
240+
TPflash(ccs_gas)
241+
ccs_gas.initThermoProperties()
242+
243+
rho = ccs_gas.getDensity("kg/m3")
244+
z = ccs_gas.getZ()
245+
print(f"{eos:13} | {rho:15.2f} | {z:.5f}")
246+
except Exception as e:
247+
print(f"{eos:13} | Error: {e}")
248+
249+
print("\nNote: EOS-CG provides higher accuracy for CO2 mixtures near")
250+
print(" critical conditions compared to cubic EoS (SRK/PR).")
251+
252+
# =============================================================================
253+
# 7. GUIDELINES FOR EoS SELECTION
254+
# =============================================================================
255+
print("\n7. GUIDELINES FOR EoS SELECTION")
205256
print("-" * 40)
206257
print("""
207258
Application | Recommended EoS
@@ -214,8 +265,12 @@ def create_wet_gas(eos_name):
214265
Glycol dehydration | CPA-SRK
215266
Water content in gas | CPA-SRK or CPA-PR
216267
|
217-
CO2 capture/storage | Span-Wagner (pure CO2)
218-
| SRK/PR with kij (mixtures)
268+
CO2 capture/storage (CCS) | EOS-CG (CO2 + impurities)
269+
| Span-Wagner (pure CO2)
270+
|
271+
CO2 transport pipelines | EOS-CG
272+
|
273+
Flue gas / combustion products | EOS-CG
219274
|
220275
Refinery / petrochemical | SRK or PR with kij
221276
|

0 commit comments

Comments
 (0)