From 5128655516309a35963a79112b6d657fafe42573 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Tue, 15 Jul 2025 15:54:07 -0600 Subject: [PATCH 01/20] Initial setup for exporting necessary critical properites --- Export.py | 117 +++++++++++++++++++++++++++++++++++++ GroupContributionMethod.py | 2 +- 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 Export.py diff --git a/Export.py b/Export.py new file mode 100644 index 0000000..dfac130 --- /dev/null +++ b/Export.py @@ -0,0 +1,117 @@ +import pandas as pd +import os +import sys +import GroupContributionMethod as gcm +""" +Script that exports critical properties and initial mass and mole fraction data +for use in Pele simulations. + +Usage: +python Export.py [fuel_name] +""" + +def export_4_pele(fuel, path="FuelLibProps", units="mks"): + """ + Export fuel properties to .cpp and .H files for use in Pele. + + :param fuel: An instance of the groupContribution class. + :type fuel: groupContribution object + :param path: Directory to save the CSV file. + :type path: str, optional + :param units: Units for the properties ("mks" for SI, "cgs" for CGS). + :type units: str, optional + :return: None + :rtype: None + """ + + if not os.path.exists(path): + os.makedirs(path) + + + # Terms for liquid specific heat capacity in (J/kg/K) or (erg/g/K) + Cp_stp = fuel.Cp_stp / fuel.MW + Cp_B = fuel.Cp_B / fuel.MW + Cp_C = fuel.Cp_C / fuel.MW + + # Conversion factors: + if units.lower() == "cgs": + # Convert from MKS to CGS + conv_MW = 1e3 # kg/mol to g/mol + conv_Cp = 1e7 # J/kg/K to erg/g/K + conv_Vm = 1e6 # m^3/mol to cm^3/mol + conv_Lv = 1e3 # J/kg to erg/g + conv_P = 1e1 # Pa to dyne/cm^2 + else: + conv_MW = 1e3 # kg/mol to g/mol + conv_Cp = 1.0 + conv_Vm = 1.0 + conv_Lv = 1.0 + conv_P = 1.0 + + df = pd.DataFrame({ + "Compound": fuel.name, + "MW": fuel.MW * conv_MW, + "Tc": fuel.Tc, + "Pc": fuel.Pc * conv_P, + "Vc": fuel.Vc, + "Tb": fuel.Tb, + "omega": fuel.omega, + "Vm_stp": fuel.Vm_stp, + "Cp_stp": Cp_stp, + "Cp_B": Cp_B, + "Cp_C": Cp_C, + "Lv_stp": fuel.Lv_stp + }) + + # Create .H and .cpp files for export + header_file = os.path.join(path, "FuelLibProps.H") + cpp_file = os.path.join(path, "FuelLibProps.cpp") + with open(header_file, 'w') as f: + f.write("#ifndef FUELLIBPROPS_H\n#define FUELLIBPROPS_H\n") + f.write("\n#include \n#include \n") + with open(cpp_file, 'w') as f: + f.write("#include FuelLibProps.H\n") + + # Write compound names + + # Close files + with open(header_file, 'a') as f: + f.write("#endif // FUELLIBPROPS_H\n") + +def main(): + """ + Main function to execute the export process. + """ + + # For testing and debugging purposes, use a default fuel name + fuel_name = "posf10325" + + # Export directory given by second command line argument or default to "FuelLibProps" + export_dir = "FuelLibProps" + #if len(sys.argv) > 1: + # fuel_name = sys.argv[1] + # if len(sys.argv) > 2: + # export_dir = sys.argv[2] + + #if len(sys.argv) > 1: + #fuel_name = sys.argv[1] + # Check if necessary files exist in the fuelData directory + decomp_dir = os.path.join(gcm.groupContribution.fuelDataDir, "groupDecompositionData") + gcxgc_dir = os.path.join(gcm.groupContribution.fuelDataDir, "gcData") + gcxgc_file = os.path.join(gcxgc_dir, f"{fuel_name}_init.csv") + decomp_file = os.path.join(decomp_dir, f"{fuel_name}.csv") + if not os.path.exists(gcxgc_file): + raise FileNotFoundError(f"GCXGC file for {fuel_name} not found in {gcxgc_dir}. gxcgc_file = {gcxgc_file}") + if not os.path.exists(decomp_file): + raise FileNotFoundError(f"Decomposition file for {fuel_name} not found in {decomp_dir}.") + #else: + # # Throw an error if no fuel name is provided + # raise ValueError("Please provide a fuel name as a command line argument.") + + fuel = gcm.groupContribution(fuel_name) + + # Export properties for Pele + export_4_pele(fuel, path=export_dir, units="mks") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/GroupContributionMethod.py b/GroupContributionMethod.py index a842137..dc78e58 100644 --- a/GroupContributionMethod.py +++ b/GroupContributionMethod.py @@ -831,4 +831,4 @@ def drop_mass(fuel, r, Yi, T): if volume > 0: return volume / (fuel.molar_liquid_vol(T) @ Yi) * Yi * fuel.MW else: - return np.zeros_like(MW) + return np.zeros_like(MW) \ No newline at end of file From f48469cb12ec587db014ce1e664f6a9ff7553008 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Thu, 17 Jul 2025 17:24:56 -0600 Subject: [PATCH 02/20] Update names of compounds for simple fuels and add heptane-decane mix --- fuelData/gcData/decane_init.csv | 2 +- fuelData/gcData/dodecane_init.csv | 2 +- fuelData/gcData/heptane-decane_init.csv | 3 +++ fuelData/gcData/heptane_init.csv | 2 +- fuelData/groupDecompositionData/decane.csv | 2 +- fuelData/groupDecompositionData/dodecane.csv | 2 +- fuelData/groupDecompositionData/heptane-decane.csv | 3 +++ fuelData/groupDecompositionData/heptane.csv | 2 +- 8 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 fuelData/gcData/heptane-decane_init.csv create mode 100644 fuelData/groupDecompositionData/heptane-decane.csv diff --git a/fuelData/gcData/decane_init.csv b/fuelData/gcData/decane_init.csv index efff16f..b0d0709 100644 --- a/fuelData/gcData/decane_init.csv +++ b/fuelData/gcData/decane_init.csv @@ -1,2 +1,2 @@ Compound,Weight % -C10H22,100 \ No newline at end of file +NC10H22,100 \ No newline at end of file diff --git a/fuelData/gcData/dodecane_init.csv b/fuelData/gcData/dodecane_init.csv index 3de739c..a9a068e 100644 --- a/fuelData/gcData/dodecane_init.csv +++ b/fuelData/gcData/dodecane_init.csv @@ -1,2 +1,2 @@ Compound,Weight % -C12H26,100 \ No newline at end of file +NC12H26,100 \ No newline at end of file diff --git a/fuelData/gcData/heptane-decane_init.csv b/fuelData/gcData/heptane-decane_init.csv new file mode 100644 index 0000000..70680b1 --- /dev/null +++ b/fuelData/gcData/heptane-decane_init.csv @@ -0,0 +1,3 @@ +Compound,Weight % +NC7H16,73.75 +NC10H22,26.25 \ No newline at end of file diff --git a/fuelData/gcData/heptane_init.csv b/fuelData/gcData/heptane_init.csv index e37df9e..d57c668 100644 --- a/fuelData/gcData/heptane_init.csv +++ b/fuelData/gcData/heptane_init.csv @@ -1,2 +1,2 @@ Compound,Weight % -n-CO7,100 \ No newline at end of file +NC7H16,100 \ No newline at end of file diff --git a/fuelData/groupDecompositionData/decane.csv b/fuelData/groupDecompositionData/decane.csv index dd456ad..2a2d449 100644 --- a/fuelData/groupDecompositionData/decane.csv +++ b/fuelData/groupDecompositionData/decane.csv @@ -1,2 +1,2 @@ Compound,CH3,CH2,CH,C (4),CH2=CH,CH=CH,CH2=C,CH=C,C=C,CH2=C=CH,ACH,AC,ACCH3,ACCH2,ACCH,OH,ACOH,CH3CO,CH2CO,CHO,CH3COO,CH2COO,HCOO,CH3O,CH2O,CH-O,FCH2O,CH2NH2,CHNH2,CH3NH,CH2NH,CHNH,CH3N,CH2N,ACNH2,C5H4N,C5H3N,CH2CN,COOH,CH2CL,CHCL,CCL,CHCL2,CCL2,CCL3,ACCL,CH2NO2,CHNO2,ACNO2,CH2SH,I,Br,CH≡C,C≡c,CL—(C=C),ACF,HCON(CH2)2,CF3,CF2,CF,COO,CCL2F,HCCLF,CCLF2,Fspecial,CONH2,CONHCH3,CONHCH2,CON(CH3)2,CONCH3CH2,CON(CH2)2,C2H5O2,C2H4O2,CH3S,CH2S,CHS,C4H3S,C4H2S,Group j (CH3)2CH,(CH3)3C,CH(CH3)CH(CH3),CH(CH3)C(CH3)2,C(CH3)2C(CH3)2,3 membered ring,4 membered ring,5 membered ring,6 membered ring,7 membered ring,"CHn=CHm—CHp=CHk k,n,m,p in (0,2)","CH3-CHm=CH, m in (0,1), n in (0,2)","CH2-CHm=CHn, m, n in (0,2)","CH-CHm=CHn or C-CHm=CHn, m,n m in (0,2)",Alicyclic side-chain CcyclicCm m > 1,CH3CH3,CHCHO or CCHO,CH3COCH2,CH3COCH or CH3COC,Ccyclic(=0),ACCHO,CHCOOH or CCOOH,ACCOOH,CH3COOCH or CH3COOC,COCH2COO or COCHCOO or COCCOO, CO-O-CO,ACCOO,CHOH,COH,"CHm(OH)CHn(OH), m,n in (0,2)","CHm cyclic-OH, m in (0,1)","CHm(OH)CHn(NHp), m,n,p in (0,3)",CHm(NH2)CHn(NH2),"CHm cyclic-NHp-CHn cyclic, m,n,p in (0,2)","Chm=Chn-F, m,n in (0,2)",AC-O-CHm,"CHm cyclic-S-CHn cyclic, m,n in (0,2)","CHm=CHn—F, m,n in (0,2)","CHm=CHn—Br, m,n in (0,2)","CHm=CHn—I, m,n in (0,2)",ACBr,ACI,"CHm(NH2)-COOH, m,n in (0,2)" -n-C010,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file +NC10H22,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file diff --git a/fuelData/groupDecompositionData/dodecane.csv b/fuelData/groupDecompositionData/dodecane.csv index e33b205..f75872a 100644 --- a/fuelData/groupDecompositionData/dodecane.csv +++ b/fuelData/groupDecompositionData/dodecane.csv @@ -1,2 +1,2 @@ Compound,CH3,CH2,CH,C (4),CH2=CH,CH=CH,CH2=C,CH=C,C=C,CH2=C=CH,ACH,AC,ACCH3,ACCH2,ACCH,OH,ACOH,CH3CO,CH2CO,CHO,CH3COO,CH2COO,HCOO,CH3O,CH2O,CH-O,FCH2O,CH2NH2,CHNH2,CH3NH,CH2NH,CHNH,CH3N,CH2N,ACNH2,C5H4N,C5H3N,CH2CN,COOH,CH2CL,CHCL,CCL,CHCL2,CCL2,CCL3,ACCL,CH2NO2,CHNO2,ACNO2,CH2SH,I,Br,CH≡C,C≡C,CL—(C=C),ACF,HCON(CH2)2,CF3,CF2,CF,COO,CCL2F,HCCLF,CCLF2,Fspecial,CONH2,CONHCH3,CONHCH2,CON(CH3)2,CONCH3CH2,CON(CH2)2,C2H5O2,C2H4O2,CH3S,CH2S,CHS,C4H3S,C4H2S,Group j (CH3)2CH,(CH3)3C,CH(CH3)CH(CH3),CH(CH3)C(CH3)2,C(CH3)2C(CH3)2,3 membered ring,4 membered ring,5 membered ring,6 membered ring,7 membered ring,"CHn=CHm—CHp=CHk k,n,m,p in (0,2)","CH3-CHm=CH, m in (0,1), n in (0,2)","CH2-CHm=CHn, m, n in (0,2)","CH-CHm=CHn or C-CHm=CHn, m,n m in (0,2)",Alicyclic side-chain CcyclicCm m > 1,CH3CH3,CHCHO or CCHO,CH3COCH2,CH3COCH or CH3COC,Ccyclic(=0),ACCHO,CHCOOH or CCOOH,ACCOOH,CH3COOCH or CH3COOC,COCH2COO or COCHCOO or COCCOO, CO-O-CO,ACCOO,CHOH,COH,"CHm(OH)CHn(OH), m,n in (0,2)","CHm cyclic-OH, m in (0,1)","CHm(OH)CHn(NHp), m,n,p in (0,3)",CHm(NH2)CHn(NH2),"CHm cyclic-NHp-CHn cyclic, m,n,p in (0,2)","Chm=Chn-F, m,n in (0,2)",AC-O-CHm,"CHm cyclic-S-CHn cyclic, m,n in (0,2)","CHm=CHn—F, m,n in (0,2)","CHm=CHn—Br, m,n in (0,2)","CHm=CHn—I, m,n in (0,2)",ACBr,ACI,"CHm(NH2)-COOH, m,n in (0,2)" -C12H26,2,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file +NC12H26,2,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file diff --git a/fuelData/groupDecompositionData/heptane-decane.csv b/fuelData/groupDecompositionData/heptane-decane.csv new file mode 100644 index 0000000..8ec702e --- /dev/null +++ b/fuelData/groupDecompositionData/heptane-decane.csv @@ -0,0 +1,3 @@ +Compound,CH3,CH2,CH,C (4),CH2=CH,CH=CH,CH2=C,CH=C,C=C,CH2=C=CH,ACH,AC,ACCH3,ACCH2,ACCH,OH,ACOH,CH3CO,CH2CO,CHO,CH3COO,CH2COO,HCOO,CH3O,CH2O,CH-O,FCH2O,CH2NH2,CHNH2,CH3NH,CH2NH,CHNH,CH3N,CH2N,ACNH2,C5H4N,C5H3N,CH2CN,COOH,CH2CL,CHCL,CCL,CHCL2,CCL2,CCL3,ACCL,CH2NO2,CHNO2,ACNO2,CH2SH,I,Br,CH≡C,C≡C,CL—(C=C),ACF,HCON(CH2)2,CF3,CF2,CF,COO,CCL2F,HCCLF,CCLF2,Fspecial,CONH2,CONHCH3,CONHCH2,CON(CH3)2,CONCH3CH2,CON(CH2)2,C2H5O2,C2H4O2,CH3S,CH2S,CHS,C4H3S,C4H2S,Group j (CH3)2CH,(CH3)3C,CH(CH3)CH(CH3),CH(CH3)C(CH3)2,C(CH3)2C(CH3)2,3 membered ring,4 membered ring,5 membered ring,6 membered ring,7 membered ring,"CHn=CHm—CHp=CHk k,n,m,p in (0,2)","CH3-CHm=CH, m in (0,1), n in (0,2)","CH2-CHm=CHn, m, n in (0,2)","CH-CHm=CHn or C-CHm=CHn, m,n m in (0,2)",Alicyclic side-chain CcyclicCm m > 1,CH3CH3,CHCHO or CCHO,CH3COCH2,CH3COCH or CH3COC,Ccyclic(=0),ACCHO,CHCOOH or CCOOH,ACCOOH,CH3COOCH or CH3COOC,COCH2COO or COCHCOO or COCCOO, CO-O-CO,ACCOO,CHOH,COH,"CHm(OH)CHn(OH), m,n in (0,2)","CHm cyclic-OH, m in (0,1)","CHm(OH)CHn(NHp), m,n,p in (0,3)",CHm(NH2)CHn(NH2),"CHm cyclic-NHp-CHn cyclic, m,n,p in (0,2)","Chm=Chn-F, m,n in (0,2)",AC-O-CHm,"CHm cyclic-S-CHn cyclic, m,n in (0,2)","CHm=CHn—F, m,n in (0,2)","CHm=CHn—Br, m,n in (0,2)","CHm=CHn—I, m,n in (0,2)",ACBr,ACI,"CHm(NH2)-COOH, m,n in (0,2)" +NC7H16,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +NC10H22,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file diff --git a/fuelData/groupDecompositionData/heptane.csv b/fuelData/groupDecompositionData/heptane.csv index 8796cd3..a4beac3 100644 --- a/fuelData/groupDecompositionData/heptane.csv +++ b/fuelData/groupDecompositionData/heptane.csv @@ -1,2 +1,2 @@ Compound,CH3,CH2,CH,C (4),CH2=CH,CH=CH,CH2=C,CH=C,C=C,CH2=C=CH,ACH,AC,ACCH3,ACCH2,ACCH,OH,ACOH,CH3CO,CH2CO,CHO,CH3COO,CH2COO,HCOO,CH3O,CH2O,CH-O,FCH2O,CH2NH2,CHNH2,CH3NH,CH2NH,CHNH,CH3N,CH2N,ACNH2,C5H4N,C5H3N,CH2CN,COOH,CH2CL,CHCL,CCL,CHCL2,CCL2,CCL3,ACCL,CH2NO2,CHNO2,ACNO2,CH2SH,I,Br,CH≡C,C≡C,CL—(C=C),ACF,HCON(CH2)2,CF3,CF2,CF,COO,CCL2F,HCCLF,CCLF2,Fspecial,CONH2,CONHCH3,CONHCH2,CON(CH3)2,CONCH3CH2,CON(CH2)2,C2H5O2,C2H4O2,CH3S,CH2S,CHS,C4H3S,C4H2S,Group j (CH3)2CH,(CH3)3C,CH(CH3)CH(CH3),CH(CH3)C(CH3)2,C(CH3)2C(CH3)2,3 membered ring,4 membered ring,5 membered ring,6 membered ring,7 membered ring,"CHn=CHm—CHp=CHk k,n,m,p in (0,2)","CH3-CHm=CH, m in (0,1), n in (0,2)","CH2-CHm=CHn, m, n in (0,2)","CH-CHm=CHn or C-CHm=CHn, m,n m in (0,2)",Alicyclic side-chain CcyclicCm m > 1,CH3CH3,CHCHO or CCHO,CH3COCH2,CH3COCH or CH3COC,Ccyclic(=0),ACCHO,CHCOOH or CCOOH,ACCOOH,CH3COOCH or CH3COOC,COCH2COO or COCHCOO or COCCOO, CO-O-CO,ACCOO,CHOH,COH,"CHm(OH)CHn(OH), m,n in (0,2)","CHm cyclic-OH, m in (0,1)","CHm(OH)CHn(NHp), m,n,p in (0,3)",CHm(NH2)CHn(NH2),"CHm cyclic-NHp-CHn cyclic, m,n,p in (0,2)","Chm=Chn-F, m,n in (0,2)",AC-O-CHm,"CHm cyclic-S-CHn cyclic, m,n in (0,2)","CHm=CHn—F, m,n in (0,2)","CHm=CHn—Br, m,n in (0,2)","CHm=CHn—I, m,n in (0,2)",ACBr,ACI,"CHm(NH2)-COOH, m,n in (0,2)" -n-C07,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file +NC7H16,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \ No newline at end of file From 182c07fc53f48891feb94bebe070efd50d6a2645 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Thu, 17 Jul 2025 19:04:19 -0600 Subject: [PATCH 03/20] Add fuel.compounds to GCM, update Export.py --- Export.py | 205 ++++++++++++++++++++++---------- GroupContributionMethod.py | 7 +- examples/ex_compositionPlots.py | 51 ++++---- 3 files changed, 168 insertions(+), 95 deletions(-) diff --git a/Export.py b/Export.py index dfac130..bb96457 100644 --- a/Export.py +++ b/Export.py @@ -1,7 +1,8 @@ import pandas as pd import os -import sys +import argparse import GroupContributionMethod as gcm + """ Script that exports critical properties and initial mass and mole fraction data for use in Pele simulations. @@ -10,9 +11,26 @@ python Export.py [fuel_name] """ -def export_4_pele(fuel, path="FuelLibProps", units="mks"): + +def vec_to_str(vec): """ - Export fuel properties to .cpp and .H files for use in Pele. + Convert a list or numpy array to a string representation. + + :param vec: List or numpy array to convert. + :return: String representation of the vector. + """ + + # If strings return string[0] string[1] ... string[n] + if isinstance(vec, list): + return " ".join(f"{v}" for v in vec) + # Else if numbers, format with spaces between no commas or [] + elif isinstance(vec, (pd.Series, pd.DataFrame)): + return " ".join(f"{v}" for v in vec.values) + + +def export_pele(fuel, path="SprayPropsGCM", units="mks"): + """ + Export fuel properties to input file for Pele simulations. :param fuel: An instance of the groupContribution class. :type fuel: groupContribution object @@ -23,95 +41,150 @@ def export_4_pele(fuel, path="FuelLibProps", units="mks"): :return: None :rtype: None """ - + if not os.path.exists(path): os.makedirs(path) - - # Terms for liquid specific heat capacity in (J/kg/K) or (erg/g/K) - Cp_stp = fuel.Cp_stp / fuel.MW - Cp_B = fuel.Cp_B / fuel.MW - Cp_C = fuel.Cp_C / fuel.MW + # Names of the input file + file_name = os.path.join(path, "SprayPropsGCM.inp") - # Conversion factors: + # Unit conversion factors: if units.lower() == "cgs": # Convert from MKS to CGS - conv_MW = 1e3 # kg/mol to g/mol - conv_Cp = 1e7 # J/kg/K to erg/g/K - conv_Vm = 1e6 # m^3/mol to cm^3/mol - conv_Lv = 1e3 # J/kg to erg/g - conv_P = 1e1 # Pa to dyne/cm^2 + conv_MW = 1e3 # kg/mol to g/mol + conv_Cp = 1e7 # J/kg/K to erg/g/K + conv_Vm = 1e6 # m^3/mol to cm^3/mol + conv_Lv = 1e3 # J/kg to erg/g + conv_P = 1e1 # Pa to dyne/cm^2 else: - conv_MW = 1e3 # kg/mol to g/mol - conv_Cp = 1.0 - conv_Vm = 1.0 - conv_Lv = 1.0 - conv_P = 1.0 - - df = pd.DataFrame({ - "Compound": fuel.name, - "MW": fuel.MW * conv_MW, - "Tc": fuel.Tc, - "Pc": fuel.Pc * conv_P, - "Vc": fuel.Vc, - "Tb": fuel.Tb, - "omega": fuel.omega, - "Vm_stp": fuel.Vm_stp, - "Cp_stp": Cp_stp, - "Cp_B": Cp_B, - "Cp_C": Cp_C, - "Lv_stp": fuel.Lv_stp - }) - - # Create .H and .cpp files for export - header_file = os.path.join(path, "FuelLibProps.H") - cpp_file = os.path.join(path, "FuelLibProps.cpp") - with open(header_file, 'w') as f: - f.write("#ifndef FUELLIBPROPS_H\n#define FUELLIBPROPS_H\n") - f.write("\n#include \n#include \n") - with open(cpp_file, 'w') as f: - f.write("#include FuelLibProps.H\n") - - # Write compound names - - # Close files - with open(header_file, 'a') as f: - f.write("#endif // FUELLIBPROPS_H\n") + conv_MW = 1e3 # kg/mol to g/mol + conv_Cp = 1.0 + conv_Vm = 1.0 + conv_Lv = 1.0 + conv_P = 1.0 + + # Terms for liquid specific heat capacity in (J/kg/K) or (erg/g/K) + # Cp(T) = Cp_stp + Cp_B * theta + Cp_C * theta^2 + # where theta = (T - 298.15) / 700 + Cp_stp = fuel.Cp_stp / fuel.MW + Cp_B = fuel.Cp_B / fuel.MW + Cp_C = fuel.Cp_C / fuel.MW + + # Dataframe of all properties with unit conversions to be exported + df = pd.DataFrame( + { + "Compound": fuel.compounds, + "Y_0": fuel.Y_0, + "MW": fuel.MW * conv_MW, + "Tc": fuel.Tc, + "Pc": fuel.Pc * conv_P, + "Vc": fuel.Vc * conv_Vm, + "Tb": fuel.Tb, + "omega": fuel.omega, + "Vm_stp": fuel.Vm_stp * conv_Vm, + "Cp_stp": Cp_stp * conv_Cp, + "Cp_B": Cp_B * conv_Cp, + "Cp_C": Cp_C * conv_Cp, + "Lv_stp": fuel.Lv_stp * conv_Lv, + } + ) + # Get the proerty names + prop_names = df.columns[2:].tolist() + + formatted_names = { + "MW": ("molar_weight", ["g/mol", "g/mol"]), + "Tc": ("crit_temp", ["K", "K"]), + "Pc": ("crit_press", ["Pa", "dyne/cm^2"]), + "Vc": ("crit_vol", ["m^3/mol", "cm^3/mol"]), + "Tb": ("boil_temp", ["K", "K"]), + "omega": ("acentric_factor", ["", ""]), + "Vm_stp": ("molar_vol", ["m^3/mol", "cm^3/mol"]), + "Cp_stp": ("cp", ["J/kg/K", "erg/g/K"]), + "Cp_B": ("cp_B", ["J/kg/K", "erg/g/K"]), + "Cp_C": ("cp_C", ["J/kg/K", "erg/g/K"]), + "Lv_stp": ("latent", ["J/kg", "erg/g"]), + } + + # Write the properties to the input file + if os.path.exists(file_name): + os.remove(file_name) + with open(file_name, "a") as f: + f.write(f"particles.do_gcm = 1\n") + f.write(f"particles.spray_fuel_num = {len(fuel.compounds)}\n") + f.write(f"particles.fuel_species = {vec_to_str(df['Compound'].tolist())}\n") + f.write(f"particles.Y_0 = {vec_to_str(df['Y_0'].tolist())}\n") + if len(fuel.compounds) < 10: + f.write(f"particles.dep_fuel_names = {vec_to_str(fuel.compounds)}\n") + else: + # Assume all liquid species contribute to single gas species + f.write(f"particles.dep_fuel_names = {fuel.name.upper()}\n") + + for comp_name in fuel.compounds: + f.write(f"\n# Properties for {comp_name} in {units.upper()}\n") + for prop in prop_names: + if prop in formatted_names: + value = df.loc[df["Compound"] == comp_name, prop].values[0] + prop_name, unit_txt = formatted_names[prop] + if units.lower() == "cgs": + unit_txt = unit_txt[1] + else: + unit_txt = unit_txt[0] + f.write( + f"particles.{comp_name}_{prop_name} = {value:.6f} # {unit_txt}\n" + ) + def main(): """ Main function to execute the export process. + Usage: + python Export.py --fuel_name [--export_dir ] """ - # For testing and debugging purposes, use a default fuel name - fuel_name = "posf10325" + # Set up argument parser + parser = argparse.ArgumentParser( + description="Export fuel properties for Pele simulations." + ) + parser.add_argument( + "--fuel_name", + required=True, + help="Name of the fuel (mandatory).", + ) + parser.add_argument( + "--export_dir", + default="SprayPropsGCM", + help="Directory to export the properties (optional, default: SprayPropsGCM).", + ) - # Export directory given by second command line argument or default to "FuelLibProps" - export_dir = "FuelLibProps" - #if len(sys.argv) > 1: - # fuel_name = sys.argv[1] - # if len(sys.argv) > 2: - # export_dir = sys.argv[2] + # Parse arguments + args = parser.parse_args() + fuel_name = args.fuel_name + export_dir = args.export_dir - #if len(sys.argv) > 1: - #fuel_name = sys.argv[1] # Check if necessary files exist in the fuelData directory - decomp_dir = os.path.join(gcm.groupContribution.fuelDataDir, "groupDecompositionData") + decomp_dir = os.path.join( + gcm.groupContribution.fuelDataDir, "groupDecompositionData" + ) gcxgc_dir = os.path.join(gcm.groupContribution.fuelDataDir, "gcData") gcxgc_file = os.path.join(gcxgc_dir, f"{fuel_name}_init.csv") decomp_file = os.path.join(decomp_dir, f"{fuel_name}.csv") if not os.path.exists(gcxgc_file): - raise FileNotFoundError(f"GCXGC file for {fuel_name} not found in {gcxgc_dir}. gxcgc_file = {gcxgc_file}") + raise FileNotFoundError( + f"GCXGC file for {fuel_name} not found in {gcxgc_dir}. gxcgc_file = {gcxgc_file}" + ) if not os.path.exists(decomp_file): - raise FileNotFoundError(f"Decomposition file for {fuel_name} not found in {decomp_dir}.") - #else: + raise FileNotFoundError( + f"Decomposition file for {fuel_name} not found in {decomp_dir}." + ) + # else: # # Throw an error if no fuel name is provided # raise ValueError("Please provide a fuel name as a command line argument.") fuel = gcm.groupContribution(fuel_name) # Export properties for Pele - export_4_pele(fuel, path=export_dir, units="mks") + export_pele(fuel, path=export_dir, units="mks") + if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/GroupContributionMethod.py b/GroupContributionMethod.py index dc78e58..fd2b82c 100644 --- a/GroupContributionMethod.py +++ b/GroupContributionMethod.py @@ -73,8 +73,9 @@ def __init__(self, name, decompName=None, W=1): self.fam[i] = 3 # Read initial liquid composition of mixture and normalize to get mass frac - df_gcxgc = pd.read_csv(gcxgcFile, usecols=[1]) - self.Y_0 = df_gcxgc.to_numpy().flatten().astype(float) + df_gcxgc = pd.read_csv(gcxgcFile) + self.compounds = df_gcxgc.iloc[:, 0].to_list() + self.Y_0 = df_gcxgc.iloc[:, 1].to_numpy().flatten().astype(float) self.Y_0 /= np.sum(self.Y_0) # Make sure mixture data is consistent: @@ -831,4 +832,4 @@ def drop_mass(fuel, r, Yi, T): if volume > 0: return volume / (fuel.molar_liquid_vol(T) @ Yi) * Yi * fuel.MW else: - return np.zeros_like(MW) \ No newline at end of file + return np.zeros_like(MW) diff --git a/examples/ex_compositionPlots.py b/examples/ex_compositionPlots.py index 4561c52..c93058d 100644 --- a/examples/ex_compositionPlots.py +++ b/examples/ex_compositionPlots.py @@ -14,27 +14,26 @@ fuel = gcm.groupContribution(fuel_name) -# Read gcxgc file -gcxgcFile = os.path.join(fuel.gcxgcDir, f"{fuel.name}_init.csv") -df = pd.read_csv( - gcxgcFile, -) - -# Get column names -colNames = df.columns.tolist() - -# Classify rows based on the first column: -# if df[colNames[0]] contains Toluene, Benzene or aromatic, then classify as aromatic -aromatic = df[colNames[0]].str.contains( - "Toluene|Benzene|Aromatic", case=False, na=False -) -# if df[colNames[0]] contains n-C, then classify as n-alkane -n_alkane = df[colNames[0]].str.contains("n-C", case=False, na=False) -# if df[colNames[0]] contains isoparaffin, then classify as iso-alkane -isoalkane = df[colNames[0]].str.contains("Isoparaffin", case=False, na=False) -# if df[colNames[0]] contains cycloparaffin, then classify as cyclo-alkane -cycloalkane = df[colNames[0]].str.contains("Cycloparaffin", case=False, na=False) - +# Classify compounds into families +aromatic = [ + True if re.search(r"Toluene|Benzene|Aromatic", comp, re.IGNORECASE) else False + for comp in fuel.compounds +] +n_alkane = [ + True if re.search(r"n-C", comp, re.IGNORECASE) else False for comp in fuel.compounds +] +isoalkane = [ + True if re.search(r"Isoparaffin", comp, re.IGNORECASE) else False + for comp in fuel.compounds +] +cycloalkane = [ + True if re.search(r"Cycloparaffin", comp, re.IGNORECASE) else False + for comp in fuel.compounds +] + +# Create a DataFrame with the compounds and their families +colNames = ["Compound", "Weight %"] +df = pd.DataFrame({"Compounds": fuel.compounds, "Weight %": fuel.Y_0 * 100}) # Append classification as a new column family_names = ["n-alkane", "iso-alkane", "cyclo-alkane", "aromatic"] df["Family"] = np.select( @@ -70,10 +69,10 @@ def determine_carbon_number(compound): # Apply the function to the column and append as a new column -df["nC"] = df[colNames[0]].apply(determine_carbon_number) +df["nC"] = df.Compounds.apply(determine_carbon_number) # Remove rows <= 0.01 in weight % column at max(nC) -df = df[df[colNames[1]] > 0.01] +df = df[df["Weight %"] > 0.01] # Plotting parameters spacing = [-0.2985, -0.099, 0.099, 0.2985] @@ -89,16 +88,16 @@ def determine_carbon_number(compound): N = df.nC.unique() for k, family in enumerate(family_names): nC = df[df["Family"] == family].nC - weight = df[df["Family"] == family][colNames[1]] + weight = df[df["Family"] == family]["Weight %"] # check duplicate nC values if len(nC) != len(set(nC)): # If there are duplicates, sum the weights for each nC df_grouped = ( - df[df["Family"] == family].groupby("nC")[colNames[1]].sum().reset_index() + df[df["Family"] == family].groupby("nC")["Weight %"].sum().reset_index() ) nC = df_grouped["nC"] - weight = df_grouped[colNames[1]] + weight = df_grouped["Weight %"] plt.bar( nC + spacing[k], weight, label=family, alpha=1, color=colors[family], width=0.2 ) From 631efa8c1a66805e9361d6df51c9b348544107e0 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 18 Jul 2025 09:28:43 -0600 Subject: [PATCH 04/20] Refine options in export file --- Export.py => Export4Pele.py | 105 +++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 12 deletions(-) rename Export.py => Export4Pele.py (61%) diff --git a/Export.py b/Export4Pele.py similarity index 61% rename from Export.py rename to Export4Pele.py index bb96457..4a31056 100644 --- a/Export.py +++ b/Export4Pele.py @@ -28,16 +28,27 @@ def vec_to_str(vec): return " ".join(f"{v}" for v in vec.values) -def export_pele(fuel, path="SprayPropsGCM", units="mks"): +def export_pele( + fuel, path="SprayPropsGCM", units="mks", dep_fuel_names=None, max_dep_fuels=30 +): """ Export fuel properties to input file for Pele simulations. :param fuel: An instance of the groupContribution class. :type fuel: groupContribution object + :param path: Directory to save the CSV file. :type path: str, optional + :param units: Units for the properties ("mks" for SI, "cgs" for CGS). :type units: str, optional + + :param dep_fuel_names: List or single fuel that each compound deposits to. + :type dep_fuel_names: str, optional + + :param max_dep_fuels: Maximum number of deposition fuels to consider. + :type max_dep_fuels: int, optional + :return: None :rtype: None """ @@ -48,6 +59,23 @@ def export_pele(fuel, path="SprayPropsGCM", units="mks"): # Names of the input file file_name = os.path.join(path, "SprayPropsGCM.inp") + # If dep_fuel_names is not provided, use fuel.compounds + if dep_fuel_names is None: + if len(fuel.compounds) <= max_dep_fuels: + # If no deposition fuel names are provided, use the compounds as deposition fuels + dep_fuel_names = fuel.compounds + else: + # If more than max_dep_fuels, deposit all compoudns to fuel.name.upper() + # This assumes a POSF fuel with a single deposition fuel + dep_fuel_names = [fuel.name.upper()] * len(fuel.compounds) + elif len(dep_fuel_names) == 1: + # If a single deposition fuel name is provided, use it for all compounds + dep_fuel_names = [dep_fuel_names[0]] * len(fuel.compounds) + elif len(dep_fuel_names) != len(fuel.compounds): + raise ValueError( + "Length of dep_fuel_names must be one or match the number of compounds in the fuel." + ) + # Unit conversion factors: if units.lower() == "cgs": # Convert from MKS to CGS @@ -97,7 +125,7 @@ def export_pele(fuel, path="SprayPropsGCM", units="mks"): "Pc": ("crit_press", ["Pa", "dyne/cm^2"]), "Vc": ("crit_vol", ["m^3/mol", "cm^3/mol"]), "Tb": ("boil_temp", ["K", "K"]), - "omega": ("acentric_factor", ["", ""]), + "omega": ("acentric_factor", ["-", "-"]), "Vm_stp": ("molar_vol", ["m^3/mol", "cm^3/mol"]), "Cp_stp": ("cp", ["J/kg/K", "erg/g/K"]), "Cp_B": ("cp_B", ["J/kg/K", "erg/g/K"]), @@ -113,11 +141,7 @@ def export_pele(fuel, path="SprayPropsGCM", units="mks"): f.write(f"particles.spray_fuel_num = {len(fuel.compounds)}\n") f.write(f"particles.fuel_species = {vec_to_str(df['Compound'].tolist())}\n") f.write(f"particles.Y_0 = {vec_to_str(df['Y_0'].tolist())}\n") - if len(fuel.compounds) < 10: - f.write(f"particles.dep_fuel_names = {vec_to_str(fuel.compounds)}\n") - else: - # Assume all liquid species contribute to single gas species - f.write(f"particles.dep_fuel_names = {fuel.name.upper()}\n") + f.write(f"particles.dep_fuel_names = {vec_to_str(dep_fuel_names)}\n") for comp_name in fuel.compounds: f.write(f"\n# Properties for {comp_name} in {units.upper()}\n") @@ -137,19 +161,69 @@ def export_pele(fuel, path="SprayPropsGCM", units="mks"): def main(): """ Main function to execute the export process. + Usage: - python Export.py --fuel_name [--export_dir ] + python Export.py --fuel_name + [--units ] + [--dep_fuel_names ] + [--max_dep_fuels ] + [--export_dir ] + + :param --fuel_name: Name of the fuel (mandatory). + :type --fuel_name: str + + :param --units: Units for critical properties. Options are "mks" (default) or "cgs". + :type --units: str, optional + + :param --dep_fuel_names: Space-separated list with len(fuel.compounds) or single fuel that all compounds deposit. Default is fuel.compounds. + :type --dep_fuel_names: str, optional + + :param --max_dep_fuels: Maximum number of deposition fuels to consider. Default is 30. + :type --max_dep_fuels: int, optional + + :param --export_dir: Directory to export the properties. Default is "SprayPropsGCM". + :type --export_dir: str, optional + + :raises FileNotFoundError: If required files for the specified fuel are not found. """ # Set up argument parser parser = argparse.ArgumentParser( description="Export fuel properties for Pele simulations." ) + + # Mandatory argument for fuel name parser.add_argument( "--fuel_name", required=True, help="Name of the fuel (mandatory).", ) + + # Optional argument for units + # Default is 'mks', but can be set to 'cgs' + parser.add_argument( + "--units", + default="mks", + help="Units for critical properties: mks or cgs (optional, default: mks).", + ) + + # Optional argument for deposition fuel names + parser.add_argument( + "--dep_fuel_names", + nargs="+", # Accepts one or more values + default=None, + help="Space-separated list or single fuel that each compound deposits to (optional, default: fuel.compounds).", + ) + + # Optional argument for maximum number of deposition fuels + parser.add_argument( + "--max_dep_fuels", + type=int, + default=30, + help="Maximum number of deposition fuels to consider (optional, default: 30).", + ) + + # Optional argument for export directory parser.add_argument( "--export_dir", default="SprayPropsGCM", @@ -159,6 +233,9 @@ def main(): # Parse arguments args = parser.parse_args() fuel_name = args.fuel_name + units = args.units.lower() + dep_fuel_names = args.dep_fuel_names + max_dep_fuels = args.max_dep_fuels export_dir = args.export_dir # Check if necessary files exist in the fuelData directory @@ -176,14 +253,18 @@ def main(): raise FileNotFoundError( f"Decomposition file for {fuel_name} not found in {decomp_dir}." ) - # else: - # # Throw an error if no fuel name is provided - # raise ValueError("Please provide a fuel name as a command line argument.") + # Create the groupContribution object for the specified fuel fuel = gcm.groupContribution(fuel_name) # Export properties for Pele - export_pele(fuel, path=export_dir, units="mks") + export_pele( + fuel, + path=export_dir, + units=units, + dep_fuel_names=dep_fuel_names, + max_dep_fuels=max_dep_fuels, + ) if __name__ == "__main__": From 430cf1e14c904a06441bde966ee1e317609b1b9a Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 18 Jul 2025 09:36:57 -0600 Subject: [PATCH 05/20] Update units for MW to match FuelLib --- Export4Pele.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Export4Pele.py b/Export4Pele.py index 4a31056..be559aa 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -4,11 +4,13 @@ import GroupContributionMethod as gcm """ -Script that exports critical properties and initial mass and mole fraction data +Script that exports critical properties and initial mass fraction data for use in Pele simulations. -Usage: -python Export.py [fuel_name] +See main() for usage details. +This script is designed to be run from the command line and will create +a file named "SprayPropsGCM.inp" in the specified directory. +The file contains properties for each compound in the fuel, formatted for Pele. """ @@ -85,7 +87,7 @@ def export_pele( conv_Lv = 1e3 # J/kg to erg/g conv_P = 1e1 # Pa to dyne/cm^2 else: - conv_MW = 1e3 # kg/mol to g/mol + conv_MW = 1.0 conv_Cp = 1.0 conv_Vm = 1.0 conv_Lv = 1.0 @@ -120,16 +122,16 @@ def export_pele( prop_names = df.columns[2:].tolist() formatted_names = { - "MW": ("molar_weight", ["g/mol", "g/mol"]), + "MW": ("molar_weight", ["kg/mol", "g/mol"]), "Tc": ("crit_temp", ["K", "K"]), "Pc": ("crit_press", ["Pa", "dyne/cm^2"]), "Vc": ("crit_vol", ["m^3/mol", "cm^3/mol"]), "Tb": ("boil_temp", ["K", "K"]), "omega": ("acentric_factor", ["-", "-"]), "Vm_stp": ("molar_vol", ["m^3/mol", "cm^3/mol"]), - "Cp_stp": ("cp", ["J/kg/K", "erg/g/K"]), - "Cp_B": ("cp_B", ["J/kg/K", "erg/g/K"]), - "Cp_C": ("cp_C", ["J/kg/K", "erg/g/K"]), + "Cp_stp": ("cp0", ["J/kg/K", "erg/g/K"]), + "Cp_B": ("cp1", ["J/kg/K", "erg/g/K"]), + "Cp_C": ("cp2", ["J/kg/K", "erg/g/K"]), "Lv_stp": ("latent", ["J/kg", "erg/g"]), } From 3c56da5cca17245667dbf6893bd6c19a585c23d9 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 18 Jul 2025 14:37:49 -0600 Subject: [PATCH 06/20] Add documentation for Export4Pele --- Export4Pele.py | 19 ++--- docs/export4pele.rst | 143 +++++++++++++++++++++++++++++++++++++ docs/groupcontribution.rst | 2 +- docs/index.rst | 1 + docs/refs.bib | 69 +++++++++--------- docs/sourcecode.rst | 20 +++--- 6 files changed, 201 insertions(+), 53 deletions(-) create mode 100644 docs/export4pele.rst diff --git a/Export4Pele.py b/Export4Pele.py index be559aa..5a83187 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -7,10 +7,18 @@ Script that exports critical properties and initial mass fraction data for use in Pele simulations. -See main() for usage details. This script is designed to be run from the command line and will create a file named "SprayPropsGCM.inp" in the specified directory. The file contains properties for each compound in the fuel, formatted for Pele. + +Usage: + python Export.py --fuel_name + +Options: + --units + --dep_fuel_names + --max_dep_fuels + --export_dir """ @@ -39,7 +47,7 @@ def export_pele( :param fuel: An instance of the groupContribution class. :type fuel: groupContribution object - :param path: Directory to save the CSV file. + :param path: Directory to save the input file. :type path: str, optional :param units: Units for the properties ("mks" for SI, "cgs" for CGS). @@ -164,13 +172,6 @@ def main(): """ Main function to execute the export process. - Usage: - python Export.py --fuel_name - [--units ] - [--dep_fuel_names ] - [--max_dep_fuels ] - [--export_dir ] - :param --fuel_name: Name of the fuel (mandatory). :type --fuel_name: str diff --git a/docs/export4pele.rst b/docs/export4pele.rst new file mode 100644 index 0000000..3dd6c89 --- /dev/null +++ b/docs/export4pele.rst @@ -0,0 +1,143 @@ +Exporting GCM Properties for Pele +================================= + +The development of FuelLib was motivated by the need for more accurate liquid fuel +property prediction in computational fluid dynamics (CFD) simulations. The fundamental GCM +properties can be exported for use in the spray module of the `PelePhysics `_ library\ :footcite:p:`owen_pelemp_2024` +for combustion simulations in the `PeleLMeX `_ +flow solver\ :footcite:p:`henry_de_frahan_pele_2024` \ :footcite:p:`esclapez_pelelmex_2023`. + +The export script, ``Export4Pele.py``, generates an input file named ``SprayPropsGCM.inp`` containing +the necessary properties for each compound in the fuel. The properties are formatted for use in Pele and includes: + +- Initial mass fraction +- Molecular weight +- Critical temperature +- Critical pressure +- Critical volume +- Boiling point +- Accentric factor +- Molar volume +- Specif heat +- Latent heat of vaporization + +.. warning:: + The incorporation of the GCM in Pele is still under development and additional testing is required. + +Tutorial +-------- +This example walks throgh the process and the available options for exporting GCM properties of a fuel named +"heptane-decane", which is a binary mixture of heptane and decane, using the ``Export4Pele.py`` script. + +Default Options +^^^^^^^^^^^^^^^ +From the ``FuelLib`` directory, run the following command in the terminal, noting that ``--fuel_name`` is the only required input: :: + + python Export4Pele.py --fuel_name heptane-decane + + +This generates the following input file ``FuelLib/SprayPropsGCM/SprayPropsGCM.inp``: :: + + particles.spray_fuel_num = 2 + particles.fuel_species = NC7H16 NC10H22 + particles.Y_0 = 0.7375 0.2625 + particles.dep_fuel_names = NC7H16 NC10H22 + + # Properties for NC7H16 in MKS + particles.NC7H16_molar_weight = 0.100000 # kg/mol + particles.NC7H16_crit_temp = 549.855981 # K + particles.NC7H16_crit_press = 2821129.514417 # Pa + particles.NC7H16_crit_vol = 0.000425 # m^3/mol + particles.NC7H16_boil_temp = 379.073212 # K + particles.NC7H16_acentric_factor = 0.336945 # - + particles.NC7H16_molar_vol = 0.000146 # m^3/mol + particles.NC7H16_cp0 = 1636.255000 # J/kg/K + particles.NC7H16_cp1 = 3046.511000 # J/kg/K + particles.NC7H16_cp2 = -983.629000 # J/kg/K + particles.NC7H16_latent = 383110.000000 # J/kg + + # Properties for NC10H22 in MKS + particles.NC10H22_molar_weight = 0.142000 # kg/mol + particles.NC10H22_crit_temp = 623.690516 # K + particles.NC10H22_crit_press = 2115522.932445 # Pa + particles.NC10H22_crit_vol = 0.000592 # m^3/mol + particles.NC10H22_boil_temp = 452.596977 # K + particles.NC10H22_acentric_factor = 0.468050 # - + particles.NC10H22_molar_vol = 0.000196 # m^3/mol + particles.NC10H22_cp0 = 1630.488028 # J/kg/K + particles.NC10H22_cp1 = 3098.105634 # J/kg/K + particles.NC10H22_cp2 = -1024.456338 # J/kg/K + particles.NC10H22_latent = 368035.211268 # J/kg + +To include these parameters in your Pele simulation, copy the ``SprayPropsGCM.inp`` +file to the specific case directory and include the following line in your Pele input file: :: + + FILE = SprayPropsGCM.inp + + +Note: for liquid fuels from FuelLib with greater than 30 components, the script +will assume that all liquid fuel species deposit to the same gas-phase species, +namely the name of the fuel. This is designed for conventional jet fuels such as POSF10325, where there are +67 liquid fuel species correpsonding to the GCxGC data, but only a single +gas-phase mechanism species, "POSF10325". For example: :: + + python Export4Pele.py --fuel_name posf10325 + +will result in the following: :: + + particles.spray_fuel_num = 67 + particles.fuel_species = Toluene C2-Benzene C3-Benzene ... C12-Tricycloparaffin + particles.Y_0 = 0.001610 0.011172 0.0304982 ... 0.00110719 + particles.dep_fuel_names = POSF10325 POSF10325 ... POSF10325 + + # Properties for Toluene in MKS + ... + +Additional Options +^^^^^^^^^^^^^^^^^^ + +There are four additional options that can be specified when running the export script: + +- ``--units``: Specify the units for the properties. The default is "mks" but users can set the units to "cgs" for use in PeleC. +- ``--dep_fuel_names``: Specify which gas-phase species the liquid fuel deposits. The default is the same as the fuel name, but users can specify a single gas-phase species or a list of gas-phase species. +- ``--max_dep_fuels``: Specify the maximum number of dependent fuels. The default is 30 and is a bit arbitrary. +- ``--export_dir``: Specify the directory to export the file. The default is "FuelLib/SprayPropsGCM". + +To specify all liquid fuel species deposity to a single gas-phase species, run the following command: :: + + python Export4Pele.py --fuel_name heptane-decane --dep_fuel_names SINGLE_GAS + +This will result in the following: :: + + particles.spray_fuel_num = 2 + particles.fuel_species = NC7H16 NC10H22 + particles.Y_0 = 0.7375 0.2625 + particles.dep_fuel_names = SINGLE_GAS SINGLE_GAS + + # Properties for NC7H16 in MKS + ... + +Alternatively, to specify a list of gas-phase species, run the following command: :: + + python Export4Pele.py --fuel_name heptane-decane --dep_fuel_names GAS_1 GAS_2 + +which produces: :: + + particles.spray_fuel_num = 2 + particles.fuel_species = NC7H16 NC10H22 + particles.Y_0 = 0.7375 0.2625 + particles.dep_fuel_names = GAS_1 GAS_2 + + # Properties for NC7H16 in MKS + ... + +In the case that the liquid fuel has more than 30 components, the script will +automatically set the deposition mapping to ``fuel.name`` for all components. +If there are more than 30 components and the user wants each component to deposit +to a gas-phase species of the same name, the user can increase ``--max_dep_fuels`` +to a value greater than 30, however this would be required a massive mechanism for Pele and is not advised :: + + python Export4Pele.py --fuel_name posf10325 --max_dep_fuels 67 + + +.. footbibliography:: \ No newline at end of file diff --git a/docs/groupcontribution.rst b/docs/groupcontribution.rst index 6ece054..3aae671 100644 --- a/docs/groupcontribution.rst +++ b/docs/groupcontribution.rst @@ -3,7 +3,7 @@ Properties and Model Equations The **Fuel Library** for advanced research on evaporation **(FuelLib)** utilizes the group contribution method (GCM), as developed by Constantinou and -Gani\ :footcite:p:`constantinou_new_1994,constantinou_estimation_1995` in the mid-1990s, +Gani\ :footcite:p:`constantinou_new_1994` \ :footcite:p:`constantinou_estimation_1995` in the mid-1990s, to provide a systematic approach for estimating the thermodynamic properties of pure organic compounds. The GCM decomposes molecules into structural groups, each contributing to a target property based on predefined group values. diff --git a/docs/index.rst b/docs/index.rst index a871935..ccf72cf 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -21,6 +21,7 @@ The source code is available at `github.com/NREL/FuelLib Date: Mon, 21 Jul 2025 11:09:34 -0600 Subject: [PATCH 07/20] Update formatting for cp --- Export4Pele.py | 25 ++++++++++++++++++------- docs/export4pele.rst | 10 +++------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Export4Pele.py b/Export4Pele.py index 5a83187..99847f3 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -1,4 +1,5 @@ import pandas as pd +import numpy as np import os import argparse import GroupContributionMethod as gcm @@ -127,7 +128,7 @@ def export_pele( } ) # Get the proerty names - prop_names = df.columns[2:].tolist() + prop_names = ["MW", "Tc", "Pc", "Vc", "Tb", "omega", "Vm_stp", "Cp_stp", "Lv_stp"] formatted_names = { "MW": ("molar_weight", ["kg/mol", "g/mol"]), @@ -137,9 +138,7 @@ def export_pele( "Tb": ("boil_temp", ["K", "K"]), "omega": ("acentric_factor", ["-", "-"]), "Vm_stp": ("molar_vol", ["m^3/mol", "cm^3/mol"]), - "Cp_stp": ("cp0", ["J/kg/K", "erg/g/K"]), - "Cp_B": ("cp1", ["J/kg/K", "erg/g/K"]), - "Cp_C": ("cp2", ["J/kg/K", "erg/g/K"]), + "Cp_stp": ("cp", ["J/kg/K", "erg/g/K"]), "Lv_stp": ("latent", ["J/kg", "erg/g"]), } @@ -157,15 +156,27 @@ def export_pele( f.write(f"\n# Properties for {comp_name} in {units.upper()}\n") for prop in prop_names: if prop in formatted_names: - value = df.loc[df["Compound"] == comp_name, prop].values[0] + if prop == "Cp_stp": + value = np.array([df.loc[df["Compound"] == comp_name, prop].values[0], + df.loc[df["Compound"] == comp_name, "Cp_B"].values[0], + df.loc[df["Compound"] == comp_name, "Cp_C"].values[0]]) + else: + value = df.loc[df["Compound"] == comp_name, prop].values[0] prop_name, unit_txt = formatted_names[prop] if units.lower() == "cgs": unit_txt = unit_txt[1] else: unit_txt = unit_txt[0] - f.write( - f"particles.{comp_name}_{prop_name} = {value:.6f} # {unit_txt}\n" + # Write the property to the file + if prop == "Cp_stp": + value = value.tolist() + f.write( + f"particles.{comp_name}_{prop_name} = {vec_to_str(value)} # {unit_txt}\n" ) + else: + f.write( + f"particles.{comp_name}_{prop_name} = {value:.6f} # {unit_txt}\n" + ) def main(): diff --git a/docs/export4pele.rst b/docs/export4pele.rst index 3dd6c89..d14d30e 100644 --- a/docs/export4pele.rst +++ b/docs/export4pele.rst @@ -18,7 +18,7 @@ the necessary properties for each compound in the fuel. The properties are forma - Boiling point - Accentric factor - Molar volume -- Specif heat +- Specific heat - Latent heat of vaporization .. warning:: @@ -51,9 +51,7 @@ This generates the following input file ``FuelLib/SprayPropsGCM/SprayPropsGCM.in particles.NC7H16_boil_temp = 379.073212 # K particles.NC7H16_acentric_factor = 0.336945 # - particles.NC7H16_molar_vol = 0.000146 # m^3/mol - particles.NC7H16_cp0 = 1636.255000 # J/kg/K - particles.NC7H16_cp1 = 3046.511000 # J/kg/K - particles.NC7H16_cp2 = -983.629000 # J/kg/K + particles.NC7H16_cp = 1636.255 3046.5109999999995 -983.6289999999999 # J/kg/K particles.NC7H16_latent = 383110.000000 # J/kg # Properties for NC10H22 in MKS @@ -64,9 +62,7 @@ This generates the following input file ``FuelLib/SprayPropsGCM/SprayPropsGCM.in particles.NC10H22_boil_temp = 452.596977 # K particles.NC10H22_acentric_factor = 0.468050 # - particles.NC10H22_molar_vol = 0.000196 # m^3/mol - particles.NC10H22_cp0 = 1630.488028 # J/kg/K - particles.NC10H22_cp1 = 3098.105634 # J/kg/K - particles.NC10H22_cp2 = -1024.456338 # J/kg/K + particles.NC10H22_cp = 1630.488028169014 3098.1056338028166 -1024.456338028169 # J/kg/K particles.NC10H22_latent = 368035.211268 # J/kg To include these parameters in your Pele simulation, copy the ``SprayPropsGCM.inp`` From 067da243f7b3d4df2d9f49f308495737e07caf70 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Mon, 21 Jul 2025 11:10:28 -0600 Subject: [PATCH 08/20] Format Export4Pele --- Export4Pele.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Export4Pele.py b/Export4Pele.py index 99847f3..70edaae 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -157,9 +157,13 @@ def export_pele( for prop in prop_names: if prop in formatted_names: if prop == "Cp_stp": - value = np.array([df.loc[df["Compound"] == comp_name, prop].values[0], - df.loc[df["Compound"] == comp_name, "Cp_B"].values[0], - df.loc[df["Compound"] == comp_name, "Cp_C"].values[0]]) + value = np.array( + [ + df.loc[df["Compound"] == comp_name, prop].values[0], + df.loc[df["Compound"] == comp_name, "Cp_B"].values[0], + df.loc[df["Compound"] == comp_name, "Cp_C"].values[0], + ] + ) else: value = df.loc[df["Compound"] == comp_name, prop].values[0] prop_name, unit_txt = formatted_names[prop] @@ -171,8 +175,8 @@ def export_pele( if prop == "Cp_stp": value = value.tolist() f.write( - f"particles.{comp_name}_{prop_name} = {vec_to_str(value)} # {unit_txt}\n" - ) + f"particles.{comp_name}_{prop_name} = {vec_to_str(value)} # {unit_txt}\n" + ) else: f.write( f"particles.{comp_name}_{prop_name} = {value:.6f} # {unit_txt}\n" From c862de5ce1a2ef651346ca9800aa12bd507acc42 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Wed, 23 Jul 2025 09:58:03 -0600 Subject: [PATCH 09/20] remove particles.do_gcm --- Export4Pele.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Export4Pele.py b/Export4Pele.py index 70edaae..ca0479d 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -146,7 +146,6 @@ def export_pele( if os.path.exists(file_name): os.remove(file_name) with open(file_name, "a") as f: - f.write(f"particles.do_gcm = 1\n") f.write(f"particles.spray_fuel_num = {len(fuel.compounds)}\n") f.write(f"particles.fuel_species = {vec_to_str(df['Compound'].tolist())}\n") f.write(f"particles.Y_0 = {vec_to_str(df['Y_0'].tolist())}\n") From 20f85063623075587be73388e00fd98728c5fe50 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 15 Aug 2025 11:10:51 -0600 Subject: [PATCH 10/20] Add tutorials to docs, add print statements to Export4Pele.py --- .gitignore | 2 ++ Export4Pele.py | 13 ++++++++ docs/generated/GroupContributionMethod.rst | 39 ---------------------- docs/index.rst | 2 +- docs/{export4pele.rst => tutorials.rst} | 11 +++--- 5 files changed, 23 insertions(+), 44 deletions(-) delete mode 100644 docs/generated/GroupContributionMethod.rst rename docs/{export4pele.rst => tutorials.rst} (96%) diff --git a/.gitignore b/.gitignore index 81c00a6..5477a7b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ *.dat __pycache__* _build* +SprayPropsGCM* +generated* diff --git a/Export4Pele.py b/Export4Pele.py index ca0479d..1480344 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -110,6 +110,7 @@ def export_pele( Cp_C = fuel.Cp_C / fuel.MW # Dataframe of all properties with unit conversions to be exported + print("\nCalculating GCM properties at standard conditions...") df = pd.DataFrame( { "Compound": fuel.compounds, @@ -143,6 +144,7 @@ def export_pele( } # Write the properties to the input file + print(f"Writing properties to {file_name}...") if os.path.exists(file_name): os.remove(file_name) with open(file_name, "a") as f: @@ -209,6 +211,7 @@ def main(): description="Export fuel properties for Pele simulations." ) + # Mandatory argument for fuel name parser.add_argument( "--fuel_name", @@ -255,7 +258,14 @@ def main(): max_dep_fuels = args.max_dep_fuels export_dir = args.export_dir + # Print the parsed arguments + print(f"Preparing to export properties:") + print(f" Fuel Name: {fuel_name}") + print(f" Units: {units}") + print(f" Export Directory: {export_dir}") + # Check if necessary files exist in the fuelData directory + print("\nChecking for required files...") decomp_dir = os.path.join( gcm.groupContribution.fuelDataDir, "groupDecompositionData" ) @@ -270,6 +280,7 @@ def main(): raise FileNotFoundError( f"Decomposition file for {fuel_name} not found in {decomp_dir}." ) + print("All required files found.") # Create the groupContribution object for the specified fuel fuel = gcm.groupContribution(fuel_name) @@ -283,6 +294,8 @@ def main(): max_dep_fuels=max_dep_fuels, ) + print("\nExport completed successfully!") + if __name__ == "__main__": main() diff --git a/docs/generated/GroupContributionMethod.rst b/docs/generated/GroupContributionMethod.rst deleted file mode 100644 index 61d96a1..0000000 --- a/docs/generated/GroupContributionMethod.rst +++ /dev/null @@ -1,39 +0,0 @@ -GroupContributionMethod -======================= - -.. automodule:: GroupContributionMethod - - - - - - - - .. rubric:: Functions - - .. autosummary:: - - C2K - K2C - drop_mass - droplet_volume - mixing_rule - - - - - - .. rubric:: Classes - - .. autosummary:: - - groupContribution - - - - - - - - - diff --git a/docs/index.rst b/docs/index.rst index ccf72cf..bcd920e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -21,7 +21,7 @@ The source code is available at `github.com/NREL/FuelLib Date: Fri, 15 Aug 2025 13:23:33 -0600 Subject: [PATCH 11/20] Rename examples to tutorials --- README.md | 2 +- docs/sourcecode.rst | 8 ++++---- .../compositionPlots.py | 0 examples/ex_hefaBlends.py => tutorials/hefaBlends.py | 0 .../mixtureProperties.py | 0 5 files changed, 5 insertions(+), 5 deletions(-) rename examples/ex_compositionPlots.py => tutorials/compositionPlots.py (100%) rename examples/ex_hefaBlends.py => tutorials/hefaBlends.py (100%) rename examples/ex_mixtureProperties.py => tutorials/mixtureProperties.py (100%) diff --git a/README.md b/README.md index 8c8d79a..877dfe6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ conda create --name fuellib-env matplotlib pandas scipy black ~~~ ## Running the code -This repository includes multiple examples of ways to use FuelLib. We recommend starting with `examples/ex_mixtureProperties.py`, which calculates a given mixture's density, viscosity and vapor pressure from GC x GC data. The results are plotted against data from NIST and [Edwards (2020)](https://apps.dtic.mil/sti/pdfs/AD1093317.pdf). +This repository includes multiple tutorials of ways to use FuelLib. We recommend starting with `tutorials/mixtureProperties.py`, which calculates a given mixture's density, viscosity and vapor pressure from GC x GC data. The results are plotted against data from NIST and [Edwards (2020)](https://apps.dtic.mil/sti/pdfs/AD1093317.pdf). # Contributing New contributions are always welcome. If you have an idea for a new feature follow these steps: diff --git a/docs/sourcecode.rst b/docs/sourcecode.rst index c6de942..8200091 100644 --- a/docs/sourcecode.rst +++ b/docs/sourcecode.rst @@ -9,11 +9,11 @@ FuelLib File Organization ------------------------- - **docs:** directory containing the documentation source files -- **examples:** directory containing example scripts that demonstrate how to use FuelLib +- **tutorials:** directory containing example scripts that demonstrate how to use FuelLib - - ``ex_compositionPlots.py``: example script that generates composition plots for a given fuel - - ``ex_hefaBlends.py``: example script that calculates properties of HEFA:Jet-A blends - - ``ex_mixtureProperties.py``: validation script that calculates properties of single component fuels and mixture properties of multicomponent fuels. + - ``compositionPlots.py``: example script that generates composition plots for a given fuel + - ``hefaBlends.py``: example script that calculates properties of HEFA:Jet-A blends + - ``mixtureProperties.py``: validation script that calculates properties of single component fuels and mixture properties of multicomponent fuels. - ``Export4Pele.py``: script that exports critical properties and initial mass fraction data for use in Pele simulations. - **fuelData:** - **gcData:** directory containing a collection of GCxGC compositional data by weight percentages diff --git a/examples/ex_compositionPlots.py b/tutorials/compositionPlots.py similarity index 100% rename from examples/ex_compositionPlots.py rename to tutorials/compositionPlots.py diff --git a/examples/ex_hefaBlends.py b/tutorials/hefaBlends.py similarity index 100% rename from examples/ex_hefaBlends.py rename to tutorials/hefaBlends.py diff --git a/examples/ex_mixtureProperties.py b/tutorials/mixtureProperties.py similarity index 100% rename from examples/ex_mixtureProperties.py rename to tutorials/mixtureProperties.py From 7476ee3ea3ff918bb902255ecc8da1a5ebfd0c41 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 15 Aug 2025 13:28:58 -0600 Subject: [PATCH 12/20] Change SprayPropsGCM to sprayPropsGCM --- .gitignore | 2 +- Export4Pele.py | 12 ++++++------ docs/tutorials.rst | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 5477a7b..0afd5c0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,5 @@ *.dat __pycache__* _build* -SprayPropsGCM* +sprayPropsGCM* generated* diff --git a/Export4Pele.py b/Export4Pele.py index 1480344..5b8b741 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -9,7 +9,7 @@ for use in Pele simulations. This script is designed to be run from the command line and will create -a file named "SprayPropsGCM.inp" in the specified directory. +a file named "sprayPropsGCM.inp" in the specified directory. The file contains properties for each compound in the fuel, formatted for Pele. Usage: @@ -40,7 +40,7 @@ def vec_to_str(vec): def export_pele( - fuel, path="SprayPropsGCM", units="mks", dep_fuel_names=None, max_dep_fuels=30 + fuel, path="sprayPropsGCM", units="mks", dep_fuel_names=None, max_dep_fuels=30 ): """ Export fuel properties to input file for Pele simulations. @@ -68,7 +68,7 @@ def export_pele( os.makedirs(path) # Names of the input file - file_name = os.path.join(path, "SprayPropsGCM.inp") + file_name = os.path.join(path, "sprayPropsGCM.inp") # If dep_fuel_names is not provided, use fuel.compounds if dep_fuel_names is None: @@ -200,7 +200,7 @@ def main(): :param --max_dep_fuels: Maximum number of deposition fuels to consider. Default is 30. :type --max_dep_fuels: int, optional - :param --export_dir: Directory to export the properties. Default is "SprayPropsGCM". + :param --export_dir: Directory to export the properties. Default is "sprayPropsGCM". :type --export_dir: str, optional :raises FileNotFoundError: If required files for the specified fuel are not found. @@ -246,8 +246,8 @@ def main(): # Optional argument for export directory parser.add_argument( "--export_dir", - default="SprayPropsGCM", - help="Directory to export the properties (optional, default: SprayPropsGCM).", + default="sprayPropsGCM", + help="Directory to export the properties (optional, default: sprayPropsGCM).", ) # Parse arguments diff --git a/docs/tutorials.rst b/docs/tutorials.rst index 926213b..b26f69a 100644 --- a/docs/tutorials.rst +++ b/docs/tutorials.rst @@ -12,7 +12,7 @@ properties can be exported for use in the spray module of the `PelePhysics `_ flow solver\ :footcite:p:`henry_de_frahan_pele_2024` \ :footcite:p:`esclapez_pelelmex_2023`. -The export script, ``Export4Pele.py``, generates an input file named ``SprayPropsGCM.inp`` containing +The export script, ``Export4Pele.py``, generates an input file named ``sprayPropsGCM.inp`` containing the necessary properties for each compound in the fuel. The properties are formatted for use in Pele and includes: - Initial mass fraction @@ -39,7 +39,7 @@ From the ``FuelLib`` directory, run the following command in the terminal, notin python Export4Pele.py --fuel_name heptane-decane -This generates the following input file ``FuelLib/SprayPropsGCM/SprayPropsGCM.inp``: :: +This generates the following input file ``FuelLib/sprayPropsGCM/sprayPropsGCM.inp``: :: particles.spray_fuel_num = 2 particles.fuel_species = NC7H16 NC10H22 @@ -68,10 +68,10 @@ This generates the following input file ``FuelLib/SprayPropsGCM/SprayPropsGCM.in particles.NC10H22_cp = 1630.488028169014 3098.1056338028166 -1024.456338028169 # J/kg/K particles.NC10H22_latent = 368035.211268 # J/kg -To include these parameters in your Pele simulation, copy the ``SprayPropsGCM.inp`` +To include these parameters in your Pele simulation, copy the ``sprayPropsGCM.inp`` file to the specific case directory and include the following line in your Pele input file: :: - FILE = SprayPropsGCM.inp + FILE = sprayPropsGCM.inp Note: for liquid fuels from FuelLib with greater than 30 components, the script @@ -100,7 +100,7 @@ There are four additional options that can be specified when running the export - ``--units``: Specify the units for the properties. The default is "mks" but users can set the units to "cgs" for use in PeleC. - ``--dep_fuel_names``: Specify which gas-phase species the liquid fuel deposits. The default is the same as the fuel name, but users can specify a single gas-phase species or a list of gas-phase species. - ``--max_dep_fuels``: Specify the maximum number of dependent fuels. The default is 30 and is a bit arbitrary. -- ``--export_dir``: Specify the directory to export the file. The default is "FuelLib/SprayPropsGCM". +- ``--export_dir``: Specify the directory to export the file. The default is "FuelLib/sprayPropsGCM". To specify all liquid fuel species deposity to a single gas-phase species, run the following command: :: From fd9ed45b721d2fe593d7fdf74a3b049f43c9043b Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 15 Aug 2025 16:03:13 -0600 Subject: [PATCH 13/20] Redefine mixture functions in terms of mass fractions. Update all tests and tutorials to comply with changes. --- .gitignore | 5 +- Export4Pele.py | 6 +- GroupContributionMethod.py | 103 ++++++++++++++++-------- tests/baselinePredictions/posf10264.csv | 16 ++-- tests/baselinePredictions/posf10289.csv | 12 +-- tests/baselinePredictions/posf10325.csv | 12 +-- tests/test_accuracy.py | 9 +-- tests/test_baseline.py | 10 +-- tests/test_functions.py | 45 +++++------ tutorials/hefaBlends.py | 34 ++++---- tutorials/mixtureProperties.py | 52 +++++------- 11 files changed, 156 insertions(+), 148 deletions(-) diff --git a/.gitignore b/.gitignore index 0afd5c0..fa440e7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,8 @@ *.dat __pycache__* _build* -sprayPropsGCM* generated* +sprayPropsGCM* +mixturePropsGCM* + + diff --git a/Export4Pele.py b/Export4Pele.py index 5b8b741..a5acbe4 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -13,7 +13,7 @@ The file contains properties for each compound in the fuel, formatted for Pele. Usage: - python Export.py --fuel_name + python Export4Pele.py --fuel_name Options: --units @@ -260,9 +260,9 @@ def main(): # Print the parsed arguments print(f"Preparing to export properties:") - print(f" Fuel Name: {fuel_name}") + print(f" Fuel name: {fuel_name}") print(f" Units: {units}") - print(f" Export Directory: {export_dir}") + print(f" Export directory: {export_dir}") # Check if necessary files exist in the fuelData directory print("\nChecking for required files...") diff --git a/GroupContributionMethod.py b/GroupContributionMethod.py index fd2b82c..f589030 100644 --- a/GroupContributionMethod.py +++ b/GroupContributionMethod.py @@ -3,7 +3,6 @@ from scipy.optimize import curve_fit import os - class groupContribution: """ Class for handling group contribution calculations of thermodynamic and mixture properties. @@ -182,7 +181,7 @@ def __init__(self, name, decompName=None, W=1): # ------------------------------------------------------------------------- # Member functions # ------------------------------------------------------------------------- - def mass_frac(self, mass): + def mass2Y(self, mass): """ Calculate the mass fractions from the mass of each component. @@ -200,7 +199,7 @@ def mass_frac(self, mass): return Yi - def mole_frac(self, mass): + def mass2X(self, mass): """ Calculate the mole fractions from the mass of each component. @@ -221,6 +220,44 @@ def mole_frac(self, mass): return Xi + def X2Y(self, Xi): + """ + Calculate the mass fractions from the mole fractions of each component. + + :param Xi: Mole fractions of each compound. + :type Xi: np.ndarray + :return: Mass fractions of the compounds (shape: num_compounds,). + :rtype: np.ndarray + """ + # Calculate the mass for each compound + mass = Xi * self.MW + + # Normalize to get group mass fractions + total_mass = np.sum(mass) + if total_mass != 0: + Yi = mass / total_mass + else: + Yi = np.zeros_like(self.MW) + + return Yi + + def Y2X(self, Yi): + """ + Calculate the mole fractions from the mass fractions of each component. + + :param Yi: Mass fractions of each compound. + :type Yi: np.ndarray + :return: Mole fractions of the compounds (shape: num_compounds,). + :rtype: np.ndarray + """ + if np.sum(Yi) != 0: + Mbar = 1 / np.sum(Yi / self.MW) # mean molar weight of the mixture + Xi = Mbar * Yi / self.MW + else: + Xi = np.zeros_like(self.MW) + + return Xi + def density(self, T): """ Calculate the density of each component at temperature T. @@ -580,14 +617,14 @@ def mixture_density(self, Yi, T): return rho - def mixture_kinematic_viscosity(self, mass, T, correlation="Kendall-Monroe"): + def mixture_kinematic_viscosity(self, Yi, T, correlation="Kendall-Monroe"): """ Calculate kinematic viscosity of the mixture. :meta private: Uses Kendall-Monroe (default) or Arrhenius mixing correlations. - :param mass: Mass of each compound in the mixture. - :type mass: np.ndarray + :param Yi: Mass fractions of each compound. + :type Yi: np.ndarray :param T: Temperature in Kelvin. :type T: float :param correlation: Mixing model ("Kendall-Monroe" or "Arrhenius"). @@ -597,8 +634,8 @@ def mixture_kinematic_viscosity(self, mass, T, correlation="Kendall-Monroe"): """ nu_i = self.viscosity_kinematic(T) # Viscosities of individual components - # Calculate group mole fractions for each species - Xi = self.mole_frac(mass) + # Calculate mole fractions for each species + Xi = self.Y2X(Yi) if correlation.casefold() == "Arrhenius".casefold(): # Arrhenius mixing correlation @@ -609,12 +646,12 @@ def mixture_kinematic_viscosity(self, mass, T, correlation="Kendall-Monroe"): return nu - def mixture_dynamic_viscosity(self, mass, T, correlation="Kendall-Monroe"): + def mixture_dynamic_viscosity(self, Yi, T, correlation="Kendall-Monroe"): """ Calculate dynamic viscosity of the mixture. - :param mass: Mass of each compound in the mixture. - :type mass: np.ndarray + :param Yi: Mass fractions of each compound. + :type Yi: np.ndarray :param T: Temperature in Kelvin. :type T: float :param correlation: Mixing model ("Kendall-Monroe" or "Arrhenius"). @@ -623,18 +660,17 @@ def mixture_dynamic_viscosity(self, mass, T, correlation="Kendall-Monroe"): :rtype: float """ - nu = self.mixture_kinematic_viscosity(mass, T, correlation) - Yi = self.mass_frac(mass) + nu = self.mixture_kinematic_viscosity(Yi, T, correlation) rho = self.mixture_density(Yi, T) return rho * nu - def mixture_vapor_pressure(self, mass, T, correlation="Lee-Kesler"): + def mixture_vapor_pressure(self, Yi, T, correlation="Lee-Kesler"): """ Calculate vapor pressure of the mixture. - :param mass: Mass of each compound in the mixture. - :type mass: np.ndarray + :param Yi: Mass fractions of each compound in the mixture. + :type Yi: np.ndarray :param T: Temperature in Kelvin. :type T: float :param correlation: Correlation method ("Ambrose-Walton" or "Lee-Kesler"). @@ -643,8 +679,8 @@ def mixture_vapor_pressure(self, mass, T, correlation="Lee-Kesler"): :rtype: float """ - # Group mole fraction for each compound - Xi = self.mole_frac(mass) + # Mole fraction for each compound + Xi = self.Y2X(Yi) # Saturated vapor pressure for each compound (Pa) p_sati = self.psat(T, correlation) @@ -655,13 +691,13 @@ def mixture_vapor_pressure(self, mass, T, correlation="Lee-Kesler"): return p_v def mixture_vapor_pressure_antoine_coeffs( - self, mass, Tvals, units="mks", correlation="Lee-Kesler" + self, Yi, Tvals, units="mks", correlation="Lee-Kesler" ): """ Estimate Antoine coefficients for vapor pressure of the mixture. - :param mass: Mass of each compound in the mixture. - :type mass: np.ndarray + :param Yi: Mass fractions of each compound in the mixture. + :type Yi: np.ndarray :param Tvals: Temperature range or nodes for Antoine fit in Kelvin. :type Tvals: np.ndarray :param units: Units for pressure in fit ("mks", "cgs", "bar", "atm") @@ -695,7 +731,7 @@ def antoine_eq(T, A, B, C): Pvals = np.zeros_like(T) for k in range(len(T)): - Pvals[k] = self.mixture_vapor_pressure(mass, T[k]) * D + Pvals[k] = self.mixture_vapor_pressure(Yi, T[k]) * D logP = np.log10(Pvals) popt, _ = curve_fit(antoine_eq, T, logP, p0=[1, 1e3, -1]) # initial guess @@ -703,14 +739,14 @@ def antoine_eq(T, A, B, C): return A, B, C, D - def mixture_surface_tension(self, mass, T, correlation="Brock-Bird"): + def mixture_surface_tension(self, Yi, T, correlation="Brock-Bird"): """ Calculate surface tension of the mixture. :meta private: Uses arithmetic pseudo-property method recommended by Hugill and van Welsenes (1986). - :param mass: Mass of each compound in the mixture. - :type mass: np.ndarray + :param Yi: Mass fractions of each compound in the mixture. + :type Yi: np.ndarray :param T: Temperature in Kelvin. :type T: float :param correlation: Correlation method ("Pitzer" or "Brock-Bird"). @@ -719,8 +755,8 @@ def mixture_surface_tension(self, mass, T, correlation="Brock-Bird"): :rtype: float """ - # Group mole fraction for each compound - Xi = self.mole_frac(mass) + # Mole fraction for each compound + Xi = self.Y2X(Yi) # Surface tension for each compound (N/m) sti = self.surface_tension(T, correlation) @@ -730,18 +766,17 @@ def mixture_surface_tension(self, mass, T, correlation="Brock-Bird"): return st - def mixture_thermal_conductivity(self, mass, T): + def mixture_thermal_conductivity(self, Yi, T): """ Calculate thermal conductivity of the mixture. - :param mass: Mass of each compound in the mixture. - :type mass: np.ndarray + :param Yi: Mass fractions of each compound in the mixture. + :type Yi: np.ndarray :param T: Temperature in Kelvin. :type T: float :return: Thermal conductivity in W/m/K. :rtype: float """ - Yi = self.mass_frac(mass) tc = self.thermal_conductivity(T) return np.sum(Yi * tc ** (-2)) ** (-0.5) @@ -772,7 +807,6 @@ def K2C(T): """ return T - 273.15 - def mixing_rule(var_n, X, pseudo_prop="arithmetic"): """ Mixing rules for computing mixture properties. @@ -812,7 +846,7 @@ def droplet_volume(r): return 4.0 / 3.0 * np.pi * r**3 -def drop_mass(fuel, r, Yi, T): +def droplet_mass(fuel, r, Yi, T): """ Calculate the mass of each compound in the fuel provided the radius of the droplet. @@ -827,9 +861,8 @@ def drop_mass(fuel, r, Yi, T): :return: Mass of each compound in droplet in kg. :rtype: np.ndarray """ - MW = fuel.MW # kg/mol volume = droplet_volume(r) # m^3 if volume > 0: return volume / (fuel.molar_liquid_vol(T) @ Yi) * Yi * fuel.MW else: - return np.zeros_like(MW) + return np.zeros_like(fuel.MW) diff --git a/tests/baselinePredictions/posf10264.csv b/tests/baselinePredictions/posf10264.csv index ecd7541..5961690 100644 --- a/tests/baselinePredictions/posf10264.csv +++ b/tests/baselinePredictions/posf10264.csv @@ -1,13 +1,13 @@ Temperature,Density,Error_Density,Viscosity,Error_Viscosity,VaporPressure,Error_VaporPressure,SurfaceTension,Error_SurfaceTension,ThermalConductivity,Error_ThermalConductivity C,g/cm^3,g/cm^3,mm^2/s,mm^2/s,kPa,kPa,N/m,N/m,W/m/K,W/m/K --40.0,0.8168172198262019,0.006157780173798089,6.051549516393376,0.548450483606624,,,,,, --20.0,0.8031633952190618,0.0054366047809382145,3.519620151263789,0.0196201512637888,,,,,, --10.0,,,,,,,0.027464306235608867,0.0016218672356088683,, -0.0,0.7892487026600817,0.004976297339918223,,,0.14038873920043515,0.09203840920043516,,,0.13001682161843095,0.0009783596184309573 -20.0,0.7750496938811732,0.004800306118826869,,,0.42645244481763017,0.20210184018236982,0.02488596131656372,0.001049723316563722,, +-40.0,0.8156332693176657,0.0073417306823343464,6.051549516393376,0.548450483606624,,,,,, +-20.0,0.8020655318197991,0.00653446818020087,3.5196201512637884,0.019620151263788355,,,,,, +-10.0,,,,,,,0.027464306235608863,0.0016218672356088648,, +0.0,0.7882433122665099,0.00598168773349006,,,0.14038873920043518,0.09203840920043518,,,0.13001682161843095,0.0009783596184309573 +20.0,0.7741440239084652,0.005705976091534892,,,0.4264524448176301,0.20210184018236987,0.024885961316563718,0.0010497233165637186,, 30.0,,,,,,,,,0.1238976396517731,0.00014082234822690443 -40.0,0.7605393184863175,0.0047440145136824485,1.1995687356322697,0.05956873563226983,1.1410418332585637,0.26111772474143624,0.023193676178117118,0.0003600091781171197,0.12189631568305907,0.0018963156830590772 +40.0,0.7597416601810878,0.005541672818912158,1.1995687356322697,0.05956873563226983,1.1410418332585635,0.26111772474143646,0.023193676178117115,0.0003600091781171162,0.12189631568305907,0.0018963156830590772 60.0,,,,,2.7424186076739625,0.6904547933260377,,,0.11793039473473628,0.0017765487347362746 -80.0,,,,,6.009962670288152,1.3876377577118477,,,, -100.0,,,0.6311083846632891,0.021108384663289126,12.154315130184294,2.447484409815706,,,, +80.0,,,,,6.00996267028815,1.3876377577118495,,,, +100.0,,,0.6311083846632889,0.021108384663288904,12.15431513018429,2.4474844098157096,,,, 120.0,,,,,22.911749852682078,3.6809314273179226,,,, diff --git a/tests/baselinePredictions/posf10289.csv b/tests/baselinePredictions/posf10289.csv index 0b4e30c..385774c 100644 --- a/tests/baselinePredictions/posf10289.csv +++ b/tests/baselinePredictions/posf10289.csv @@ -1,15 +1,15 @@ Temperature,Density,Error_Density,Viscosity,Error_Viscosity,VaporPressure,Error_VaporPressure,SurfaceTension,Error_SurfaceTension,ThermalConductivity,Error_ThermalConductivity C,g/cm^3,g/cm^3,mm^2/s,mm^2/s,kPa,kPa,N/m,N/m,W/m/K,W/m/K --40.0,,,8.706261480288557,5.393738519711443,,,,,, +-40.0,,,8.706261480288568,5.393738519711432,,,,,, -20.0,,,4.807289496514161,1.6927105034858387,,,,,, -10.0,,,,,,,0.028784261047040637,0.00036283104704063623,, -0.0,0.8368640754931359,0.001827591506864068,,,0.049850080762665436,0.0014997507626654388,,,, -20.0,0.8230824683603558,0.0008508646396442332,,,0.16179638875944455,0.17665591824055546,0.026317105629007336,0.0005895946290073346,, +0.0,0.8356858736347023,0.0030057933652977153,,,0.04985008076266544,0.0014997507626654458,,,, +20.0,0.8219669788909396,0.001966354109060431,,,0.16179638875944455,0.17665591824055546,0.026317105629007336,0.0005895946290073346,, 30.0,,,,,,,,,0.1095703946312613,0.008410374368738704 -40.0,0.8090296823758196,0.0007203176241803444,1.4890334549970374,0.08096654500296263,0.4600255086687159,0.024872542668715913,0.024695408978026502,2.9530021973499243e-05,, +40.0,0.8079816159589717,0.0017683840410283036,1.4890334549970374,0.08096654500296263,0.4600255086687159,0.024872542668715913,0.024695408978026495,2.9530021973506182e-05,, 60.0,,,,,1.1687215396208384,0.13673735937916165,,,, 75.0,,,,,,,,,0.1022063027916717,0.006736005208328302 -80.0,,,,,2.6944655292086086,0.6417072127913914,,,, +80.0,,,,,2.694465529208609,0.641707212791391,,,, 100.0,,,0.7437881790171854,0.016211820982814595,5.7083443848269795,0.6738991211730205,,,, -120.0,,,,,11.229706166647922,2.550137763352078,,,, +120.0,,,,,11.229706166647924,2.550137763352076,,,, 125.0,,,,,,,,,0.09416672047398948,0.00669866452601052 diff --git a/tests/baselinePredictions/posf10325.csv b/tests/baselinePredictions/posf10325.csv index cbb4cb4..3ec9016 100644 --- a/tests/baselinePredictions/posf10325.csv +++ b/tests/baselinePredictions/posf10325.csv @@ -1,12 +1,12 @@ Temperature,Density,Error_Density,Viscosity,Error_Viscosity,VaporPressure,Error_VaporPressure,SurfaceTension,Error_SurfaceTension,ThermalConductivity,Error_ThermalConductivity C,g/cm^3,g/cm^3,mm^2/s,mm^2/s,kPa,kPa,N/m,N/m,W/m/K,W/m/K --40.0,0.8407245600223795,0.003142106977620518,7.327450357477861,1.872549642522138,,,,,, --20.0,0.8272451036292856,0.002438229370714362,4.142782657382329,0.3572173426176706,,,,,, +-40.0,0.8392182521444772,0.004648414855522809,7.327450357477861,1.872549642522138,,,,,, +-20.0,0.8258168493109188,0.003866483689081157,4.142782657382326,0.3572173426176741,,,,,, -10.0,,,,,,,0.02822092897101752,0.0001925259710175188,, -0.0,0.8135198789271101,0.0015967880728898765,,,0.10060971089776095,0.05225938089776096,,,0.12287925765691673,0.0013515113430832698 -20.0,0.799527797349555,0.002172202650444932,,,0.31002294762258614,0.12513001837741383,0.025689441644058383,0.000870702644058384,0.11912057824575477,0.0010717297542452292 -40.0,0.7852446835087796,0.002080316491220424,1.3415594732535097,0.03155947325350961,0.8390728292355918,0.017117226235591754,0.024026679332593448,0.0004070473325934465,0.11544504546942812,0.0006126465305718864 +0.0,0.8121753157780559,0.002941351221944055,,,0.10060971089776094,0.05225938089776094,,,0.12287925765691673,0.0013515113430832698 +20.0,0.7982732959952182,0.003426704004781733,,,0.31002294762258614,0.12513001837741383,0.02568944164405838,0.0008707026440583805,0.11912057824575477,0.0010717297542452292 +40.0,0.7840874978406115,0.003237502159388561,1.341559473253509,0.03155947325350894,0.8390728292355918,0.017117226235591754,0.024026679332593448,0.0004070473325934465,0.11544504546942812,0.0006126465305718864 60.0,,,,,2.0363027068420876,0.2361627841579126,,,0.11182735967192953,0.0003841783280704725 80.0,,,,,4.501990474917265,0.4297431440827353,,,, -100.0,,,0.6868084919928388,0.006808491992838728,9.182166700648937,0.6813005363510634,,,, +100.0,,,0.6868084919928379,0.00680849199283784,9.182166700648933,0.6813005363510669,,,, 120.0,,,,,17.455667845520445,1.3042600344795545,,,, diff --git a/tests/test_accuracy.py b/tests/test_accuracy.py index 7cb633e..f51bd05 100644 --- a/tests/test_accuracy.py +++ b/tests/test_accuracy.py @@ -35,13 +35,6 @@ def test_accuracy(self): "ThermalConductivity", ] - # droplet specs - drop = {} - drop["d_0"] = ( - 100 * 1e-6 - ) # initial droplet diameter (m), note: size doesn't matter - drop["r_0"] = drop["d_0"] / 2.0 # initial droplet radius (m) - # Compare to NIST predictions and previous model predictions for fuel_name in fuel_names: @@ -59,7 +52,7 @@ def test_accuracy(self): sum_err_base += sum_err_base * max_error_diff # Get predictions for current model - T, data, pred = fxns.getPredAndData(drop, fuel_name, prop) + T, data, pred = fxns.getPredAndData(fuel_name, prop) err = np.abs(data - pred) sum_err = np.sum(err) diff --git a/tests/test_baseline.py b/tests/test_baseline.py index efe2bfb..71066f2 100644 --- a/tests/test_baseline.py +++ b/tests/test_baseline.py @@ -49,12 +49,8 @@ def get_unit_for_column(col_name): return "" -# droplet specs -drop = {} -drop["d_0"] = 100 * 1e-6 # initial droplet diameter (m), note: size doesn't matter -drop["r_0"] = drop["d_0"] / 2.0 # initial droplet radius (m) -drop["V_0"] = 4.0 / 3.0 * np.pi * drop["r_0"] ** 3 # initial droplet volume - +# Assume a droplet of fuel with radius 50 microns (r doesn't matter) +drop_r = 50 * 1e-6 # initial droplet diameter (m) # Loop through each fuel and generate csv of baseline property predictions for fuel_name in fuel_names: @@ -63,7 +59,7 @@ def get_unit_for_column(col_name): df_combined = None for prop in prop_names: - T, data, pred = fxns.getPredAndData(drop, fuel_name, prop) + T, data, pred = fxns.getPredAndData(fuel_name, prop) # Create a dataframe for this property df_prop = pd.DataFrame( diff --git a/tests/test_functions.py b/tests/test_functions.py index 2c0deb0..1a1eb75 100644 --- a/tests/test_functions.py +++ b/tests/test_functions.py @@ -9,12 +9,12 @@ import GroupContributionMethod as gcm -def getPredAndData(drop, fuel_name, prop_name): +def getPredAndData(fuel_name, prop_name): # Get the fuel properties based on the GCM fuel = gcm.groupContribution(fuel_name) - # initial liquid mass fractions - Y_li = fuel.Y_0 + # Assume a droplet of fuel with radius 50 microns (r doesn't matter) + drop_r = 50 * 1e-6 # initial droplet diameter (m) data_file = f"{fuel_name}.csv" dataPath = os.path.join(fuel.fuelDataDir, "propertiesData") @@ -27,42 +27,35 @@ def getPredAndData(drop, fuel_name, prop_name): # Vector for predictions pred = np.zeros_like(T_data) + # Vectors for temperature (convert from C to K) T_pred = gcm.C2K(T_data) - if prop_name == "Density": - for i in range(0, len(T_pred)): + for i in range(0, len(T_pred)): + # Correct droplet mass (GCxGC at standard temperature) + mass = gcm.droplet_mass(fuel, drop_r, fuel.Y_0, T_pred[i]) + Y_li = fuel.mass2Y(mass) + + if prop_name == "Density": # Mixture density (returns rho in kg/m^3) - pred[i] = fuel.mixture_density(fuel.Y_0, T_pred[i]) + pred[i] = fuel.mixture_density(Y_li, T_pred[i]) # Convert density to CGS (g/cm^3) pred[i] *= 1.0e-03 - if prop_name == "VaporPressure": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) + if prop_name == "VaporPressure": # Mixture vapor pressure (returns pv in Pa) - pred[i] = fuel.mixture_vapor_pressure(mass, T_pred[i]) + pred[i] = fuel.mixture_vapor_pressure(Y_li, T_pred[i]) # Convert vapor pressure to kPa pred[i] *= 1.0e-03 - if prop_name == "Viscosity": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) - pred[i] = fuel.mixture_kinematic_viscosity(mass, T_pred[i]) + if prop_name == "Viscosity": + pred[i] = fuel.mixture_kinematic_viscosity(Y_li, T_pred[i]) # Convert viscosity to mm^2/s pred[i] *= 1.0e06 - if prop_name == "SurfaceTension": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) - pred[i] = fuel.mixture_surface_tension(mass, T_pred[i]) + if prop_name == "SurfaceTension": + pred[i] = fuel.mixture_surface_tension(Y_li, T_pred[i]) - if prop_name == "ThermalConductivity": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) - pred[i] = fuel.mixture_thermal_conductivity(mass, T_pred[i]) + if prop_name == "ThermalConductivity": + pred[i] = fuel.mixture_thermal_conductivity(Y_li, T_pred[i]) return T_data, prop_data, pred diff --git a/tutorials/hefaBlends.py b/tutorials/hefaBlends.py index bbfaaaa..77649d7 100644 --- a/tutorials/hefaBlends.py +++ b/tutorials/hefaBlends.py @@ -21,18 +21,15 @@ # Properties to plot prop_names = ["Density", "Viscosity"] +# Assume a droplet of fuel with radius 50 microns (r doesn't matter) +drop_r = 50 * 1e-6 # initial droplet diameter (m) + # Plotting parameters fsize = 18 ticksize = 18 line_thickness = 4 marker_size = 75 -# droplet specs -drop = {} -drop["d_0"] = 100 * 1e-6 # initial droplet diameter (m), note: size doesn't matter -drop["r_0"] = drop["d_0"] / 2.0 # initial droplet radius (m) - - # Line specifications for plotting def linespecs(name): if "came" in name: @@ -84,22 +81,29 @@ def getPredAndData(fuel_name, prop_name, blend): # Vector for FuelLib predictions prop_pred = np.zeros_like(blend) - if prop_name == "Density": - for i in range(0, len(prop_pred)): - # initial liquid mass fractions - Y_li = blend[i] * fuel.Y_0 + (1 - blend[i]) * jetA.Y_0 + for i in range(0, len(prop_pred)): + # Initial liquid mass fractions + Y_li = blend[i] * fuel.Y_0 + (1 - blend[i]) * jetA.Y_0 + + # Correct for temperature + mass = gcm.droplet_mass(fuel, drop_r, Y_li, T) + Y_li = fuel.mass2Y(mass) + + if prop_name == "Density": # Mixture density (returns rho in kg/m^3) prop_pred[i] = fuel.mixture_density(Y_li, T) # Convert density to CGS (g/cm^3) prop_pred[i] *= 1.0e-03 - if prop_name == "Viscosity": - for i in range(0, len(prop_pred)): + if prop_name == "Viscosity": # initial liquid mass fractions Y_li = blend[i] * fuel.Y_0 + (1 - blend[i]) * jetA.Y_0 - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T) - prop_pred[i] = fuel.mixture_kinematic_viscosity(mass, T) + + # Correct for temperature + mass = gcm.droplet_mass(fuel, drop_r, Y_li, T) + Y_li = fuel.mass2Y(mass) + + prop_pred[i] = fuel.mixture_kinematic_viscosity(Y_li, T) # Convert viscosity to mm^2/s prop_pred[i] *= 1.0e06 diff --git a/tutorials/mixtureProperties.py b/tutorials/mixtureProperties.py index 04b7e50..c9115e4 100644 --- a/tutorials/mixtureProperties.py +++ b/tutorials/mixtureProperties.py @@ -27,18 +27,15 @@ "ThermalConductivity", ] +# Assume a droplet of fuel with radius 50 microns (r doesn't matter) +drop_r = 50 * 1e-6 # initial droplet diameter (m) + # Plotting parameters fsize = 18 ticksize = 18 line_thickness = 4 marker_size = 75 -# droplet specs -drop = {} -drop["d_0"] = 100 * 1e-6 # initial droplet diameter (m), note: size doesn't matter -drop["r_0"] = drop["d_0"] / 2.0 # initial droplet radius (m) - - # Line specifications for plotting def linespecs(name): if (name == "decane") or (name == "posf10325"): @@ -91,9 +88,6 @@ def getPredAndData(fuel_name, prop_name): # Get the fuel properties based on the GCM fuel = gcm.groupContribution(fuel_name) - # initial liquid mass fractions - Y_li = fuel.Y_0 - data_file = f"{fuel_name}.csv" dataPath = os.path.join(fuel.fuelDataDir, "propertiesData") data = pd.read_csv(os.path.join(dataPath, data_file), skiprows=[1]) @@ -108,41 +102,33 @@ def getPredAndData(fuel_name, prop_name): # Vectors for density, viscosity and vapor pressure pred = np.zeros_like(T_pred) - if prop_name == "Density": - for i in range(0, len(T_pred)): + for i in range(0, len(T_pred)): + # Correct droplet mass (GCxGC at standard temperature) + mass = gcm.droplet_mass(fuel, drop_r, fuel.Y_0, T_pred[i]) + Y_li = fuel.mass2Y(mass) + + if prop_name == "Density": # Mixture density (returns rho in kg/m^3) - pred[i] = fuel.mixture_density(fuel.Y_0, T_pred[i]) + pred[i] = fuel.mixture_density(Y_li, T_pred[i]) # Convert density to CGS (g/cm^3) pred[i] *= 1.0e-03 - if prop_name == "VaporPressure": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) + if prop_name == "VaporPressure": # Mixture vapor pressure (returns pv in Pa) - pred[i] = fuel.mixture_vapor_pressure(mass, T_pred[i]) + pred[i] = fuel.mixture_vapor_pressure(Y_li, T_pred[i]) # Convert vapor pressure to kPa pred[i] *= 1.0e-03 - if prop_name == "Viscosity": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) - pred[i] = fuel.mixture_kinematic_viscosity(mass, T_pred[i]) + if prop_name == "Viscosity": + pred[i] = fuel.mixture_kinematic_viscosity(Y_li, T_pred[i]) # Convert viscosity to mm^2/s pred[i] *= 1.0e06 - if prop_name == "SurfaceTension": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) - pred[i] = fuel.mixture_surface_tension(mass, T_pred[i]) - - if prop_name == "ThermalConductivity": - for i in range(0, len(T_pred)): - # Mass of the droplet at current temp - mass = gcm.drop_mass(fuel, drop["r_0"], Y_li, T_pred[i]) - pred[i] = fuel.mixture_thermal_conductivity(mass, T_pred[i]) + if prop_name == "SurfaceTension": + pred[i] = fuel.mixture_surface_tension(Y_li, T_pred[i]) + + if prop_name == "ThermalConductivity": + pred[i] = fuel.mixture_thermal_conductivity(Y_li, T_pred[i]) return T_data, prop_data, T_pred, pred From 15a38c4eac2f70c62ef1ab0408a5189e2b8eff4d Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Fri, 15 Aug 2025 18:13:26 -0600 Subject: [PATCH 14/20] Add option to export mixture properties for Converge --- Export4Converge.py | 335 +++++++++++++++++++++++++++++++++++++++++++++ Export4Pele.py | 6 +- 2 files changed, 338 insertions(+), 3 deletions(-) create mode 100644 Export4Converge.py diff --git a/Export4Converge.py b/Export4Converge.py new file mode 100644 index 0000000..00961ae --- /dev/null +++ b/Export4Converge.py @@ -0,0 +1,335 @@ +import pandas as pd +import numpy as np +import os +import argparse +import GroupContributionMethod as gcm + +""" +Script that exports mixture properties over large temperature range for use in +Converge simulations. + +This script is designed to be run from the command line and will create +a file named "mixturePropsGCM_.csv" in the specified directory. +The file contains mixture properties for the fuel, formatted for Converge. + +Usage: + python Export4Converge.py --fuel_name + +Options: + --units + --temp_min (K) + --temp_max (K) + --temp_step (K) + --export_dir +""" + + +def export_converge( + fuel, path="mixturePropsGCM", units="mks", temp_min=0, temp_max=1000, temp_step=10 +): + """ + Export mixture fuel properties to .csv for Converge simulations. + + :param fuel: An instance of the groupContribution class. + :type fuel: groupContribution object + + :param path: Directory to save the input file. + :type path: str, optional + + :param units: Units for the properties ("mks" for SI, "cgs" for CGS). + :type units: str, optional + + :param temp_min: Minimum temperature (K) for the property calculations. + :type temp_min: float, optional + + :param temp_max: Maximum temperature (K)for the property calculations. + :type temp_max: float, optional + + :param temp_step: Step size for temperature (K). + :type temp_step: float, optional + + :return: None + :rtype: None + """ + + if not os.path.exists(path): + os.makedirs(path) + + # Names of the input file + file_name = os.path.join(path, f"mixturePropsGCM_{fuel.name}.csv") + + # Unit conversion factors: + if units.lower() == "cgs": + # Convert from MKS to CGS + conv_mu = 1e2 # Pa*s to Poise + conv_surfacetension = 1e7 # N/m to dyne/cm + conv_Lv = 1e4 # J/kg to erg/g + conv_P = 1e1 # Pa to dyne/cm^2 + conv_rho = 1e3 # kg/m^3 to g/cm^3 + conv_Cl = 1e4 # J/kg/K to erg/g/K + conv_thermcond = 1e5 # W/m/K to erg/cm/s/K + else: + conv_mu = 1 + conv_surfacetension = 1 + conv_Lv = 1 + conv_P = 1 + conv_rho = 1 + conv_Cl = 1 + conv_thermcond = 1 + + # Assume droplet of 50 microns to account for compositional changes with temp + drop_r = 50 * 1e-6 # initial droplet radius (m) + + # Vector of evenly space temperatures + nT = int((temp_max - temp_min) / temp_step) + 1 + T = np.linspace(temp_min, temp_max, nT) + + def nearest_floor(array, value): + """ + Find the largest value in the array that is less than or equal to the given value. + """ + if np.any(array <= value): + return array[array <= value].max() + else: + raise ValueError(f"No temperature in the array is less than or equal to the critical point {value}. Choose a lower temp_min") + + def nearest_ceil(array, value): + """ + Find the smallest value in the array that is greater than or equal to the given value. + """ + if np.any(array >= value): + return array[array >= value].min() + else: + # Report an error if no value is found + raise ValueError(f"No temperature in the array is greater than or equal the freezing point {value}. Choose a higher temp_max") + + # Estimate freezing point and critical temp of mixture + T_freeze = gcm.mixing_rule(fuel.Tm, fuel.Y2X(fuel.Y_0)) + T_crit = gcm.mixing_rule(fuel.Tc, fuel.Y2X(fuel.Y_0)) + T_min_allowed = T_freeze + T_max_allowed = min(fuel.Tc) + + print(f"\nEstimated mixture freezing temp: {T_freeze:.2f} K") + print(f"Min freezing temp min(Tm_i): {min(fuel.Tm):.2f} K") + print(f"Max freezing temp max(Tm_i): {max(fuel.Tm):.2f} K") + if np.any(T < T_min_allowed): + T_min_allowed = nearest_ceil(T, T_min_allowed) + # Set T_min_allowed to be the next temperature above T_min_allowed in T + print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + print(f" Warning: Some compounds have freezing temperatures above the estimated\n" + f" freezing temperature of the mixture ({T_freeze:.2f} K). All properties calculated\n" + f" below {T_min_allowed} will be set using a temperature of {T_min_allowed} K.") + print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + + print(f"\nEstimated mixture critical temp: {T_crit:.2f} K") + print(f"Min critical temp min(Tc_i): {min(fuel.Tc):.2f} K") + print(f"Max critical temp max(Tc_i): {max(fuel.Tc):.2f} K") + if np.any(T > T_max_allowed): + T_max_allowed = nearest_floor(T, T_max_allowed) + print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + print(f" Warning: Some compounds have critical temperatures below the estimated\n" + f" critical temperature of the mixture ({T_crit:.2f} K). All properties calculated\n" + f" above {T_max_allowed} will be set using a temperature of {T_max_allowed} K.") + print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + + mu = np.zeros_like(T) # Dynamic viscosity + surface_tension = np.zeros_like(T) # Surface tension + Lv = np.zeros_like(T) # Latent heat of vaporization + pv = np.zeros_like(T) # vapor pressure + rho = np.zeros_like(T) # density + Cl = np.zeros_like(T) # Specific heat + thermal_conductivity = np.zeros_like(T) # Thermal conductivity + + # Calculate GCM properties for a range of temperatures + print(f"\nCalculating properties over {len(T)} temperatures...") + for k in range(len(T)): + if T[k] <= T_min_allowed: + Temp = T_min_allowed + elif T[k] >= T_max_allowed: + Temp = T_max_allowed + else: + Temp = T[k] + + # Correct droplet mass (GCxGC at standard temperature) + mass = gcm.droplet_mass(fuel, drop_r, fuel.Y_0, Temp) + Y_li = fuel.mass2Y(mass) + X_li = fuel.Y2X(Y_li) + + # Standard mixing rules for properties + rho[k] = fuel.mixture_density(Y_li, Temp) # kg/m^3 + mu[k] = fuel.mixture_dynamic_viscosity(Y_li, Temp) # Pa*s + pv[k] = fuel.mixture_vapor_pressure(Y_li, Temp) # Pa + surface_tension[k] = fuel.mixture_surface_tension(Y_li, Temp) # N/m + thermal_conductivity[k] = fuel.mixture_thermal_conductivity(Y_li, Temp) + + # Generic mixing rules for latent heat and specific heat + Lv[k] = gcm.mixing_rule(fuel.latent_heat_vaporization(Temp), X_li) # J/kg + Cl[k] = gcm.mixing_rule(fuel.Cl(Temp), X_li) # J/kg/K + + if units.lower() == "cgs": + # Convert properties to CGS units + data = pd.DataFrame( + { + "Temperature (K)": T, + "Critical Temperature (K)": T_crit + np.zeros_like(T), + "Viscosity (Poise)": mu * conv_mu, + "Surface Tension (dyne/cm)": surface_tension * conv_surfacetension, + "Heat of Vaporization (erg/g)": Lv * conv_Lv, + "Vapor Pressure (dyne/cm^2)": pv * conv_P, + "Density (g/cm-3)": rho * conv_rho, + "Specific Heat (erg/g/K)": Cl * conv_Cl, + "Thermal Conductivity (erg/cm/s/K)": thermal_conductivity * conv_thermcond + } + ) + else: + # MKS units + data = pd.DataFrame( + { + "Temperature (K)": T, + "Critical Temperature (K)": T_crit + np.zeros_like(T), + "Viscosity (Pa*s)": mu, + "Surface Tension (N/m)": surface_tension, + "Heat of Vaporization (J/kg)": Lv, + "Vapor Pressure (Pa)": pv, + "Density (kg/m-3)": rho, + "Specific Heat (J/kg/K)": Cl, + "Thermal Conductivity (W/m/K)": thermal_conductivity + } + ) + + # Write the properties to the input file + print(f"\nWriting mixture properties to {file_name}") + if os.path.exists(file_name): + os.remove(file_name) + df = pd.DataFrame(data) + df.to_csv(file_name, index=False) + + +def main(): + """ + Main function to execute the export process. + + :param --fuel_name: Name of the fuel (mandatory). + :type --fuel_name: str + + :param --units: Units for critical properties. Options are "mks" (default) or "cgs". + :type --units: str, optional + + :param --temp_min: Minimum temperature (K) for the property calculations (optional, default: 0). + :type --temp_min: float, optional + + :param --temp_max: Maximum temperature (K) for the property calculations (optional, default: 1000). + :type --temp_max: float, optional + + :param --temp_step: Step size for temperature (K) (optional, default: 10). + :type --temp_step: float, optional + + :param --export_dir: Directory to export the properties. Default is "sprayPropsGCM". + :type --export_dir: str, optional + + :raises FileNotFoundError: If required files for the specified fuel are not found. + """ + + # Set up argument parser + parser = argparse.ArgumentParser( + description="Export mixture fuel properties for Converge simulations." + ) + + # Mandatory argument for fuel name + parser.add_argument( + "--fuel_name", + required=True, + help="Name of the fuel (mandatory).", + ) + + # Optional argument for units + # Default is 'mks', but can be set to 'cgs' + parser.add_argument( + "--units", + default="mks", + help="Units for critical properties: mks or cgs (optional, default: mks).", + ) + + # Optional argument for minimum temperature + parser.add_argument( + "--temp_min", + type=float, + default=0, + help="Minimum temperature (K) for the property calculations (optional, default: 0).", + ) + + # Optional argument for maximum temperature + parser.add_argument( + "--temp_max", + type=float, + default=1000, + help="Maximum temperature (K) for the property calculations (optional, default: 1000).", + ) + + # Optional argument for temperature step size + parser.add_argument( + "--temp_step", + type=int, + default=10, + help="Step size for temperature (K) (optional, default: 10).", + ) + + # Optional argument for export directory + parser.add_argument( + "--export_dir", + default="mixturePropsGCM", + help="Directory to export the properties (optional, default: mixturePropsGCM).", + ) + + # Parse arguments + args = parser.parse_args() + fuel_name = args.fuel_name + units = args.units.lower() + temp_min = args.temp_min + temp_max = args.temp_max + temp_step = args.temp_step + export_dir = args.export_dir + + # Print the parsed arguments + print(f"Preparing to export mixture properties:") + print(f" Fuel name: {fuel_name}") + print(f" Units: {units}") + print(f" Minimum temperature: {temp_min} K") + print(f" Maximum temperature: {temp_max} K") + print(f" Temperature step size: {temp_step} K") + print(f" Export directory: {export_dir}") + + # Check if necessary files exist in the fuelData directory + print("\nChecking for required files...") + decomp_dir = os.path.join( + gcm.groupContribution.fuelDataDir, "groupDecompositionData" + ) + gcxgc_dir = os.path.join(gcm.groupContribution.fuelDataDir, "gcData") + gcxgc_file = os.path.join(gcxgc_dir, f"{fuel_name}_init.csv") + decomp_file = os.path.join(decomp_dir, f"{fuel_name}.csv") + if not os.path.exists(gcxgc_file): + raise FileNotFoundError( + f"GCXGC file for {fuel_name} not found in {gcxgc_dir}. gxcgc_file = {gcxgc_file}" + ) + if not os.path.exists(decomp_file): + raise FileNotFoundError( + f"Decomposition file for {fuel_name} not found in {decomp_dir}." + ) + print("All required files found.") + + # Create the groupContribution object for the specified fuel + fuel = gcm.groupContribution(fuel_name) + + # Export properties for Pele + export_converge( + fuel, + path=export_dir, + units=units, + temp_min=temp_min, + temp_max=temp_max, + ) + + print("\nExport completed successfully!") + +if __name__ == "__main__": + main() diff --git a/Export4Pele.py b/Export4Pele.py index a5acbe4..36cbde1 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -91,10 +91,10 @@ def export_pele( if units.lower() == "cgs": # Convert from MKS to CGS conv_MW = 1e3 # kg/mol to g/mol - conv_Cp = 1e7 # J/kg/K to erg/g/K + conv_Cp = 1e4 # J/kg/K to erg/g/K conv_Vm = 1e6 # m^3/mol to cm^3/mol - conv_Lv = 1e3 # J/kg to erg/g - conv_P = 1e1 # Pa to dyne/cm^2 + conv_Lv = 1e4 # J/kg to erg/g + conv_P = 1e1 # Pa to dyne/cm^2 else: conv_MW = 1.0 conv_Cp = 1.0 From 5ce5bd8cc8d4a24e1987488c364578951e62cc7c Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Mon, 18 Aug 2025 18:25:16 -0600 Subject: [PATCH 15/20] Rename GroupContributionMethod.py to FuelLib.py, add more tutorial documentation. Add Export4Converge.py --- Export4Converge.py | 31 +++-- Export4Pele.py | 12 +- GroupContributionMethod.py => FuelLib.py | 0 docs/conf.py | 21 +-- docs/figures/hefaBlends.png | Bin 100869 -> 100108 bytes docs/figures/multiCompFuels.png | Bin 162435 -> 176377 bytes docs/groupcontribution.rst | 30 ++--- docs/sourcecode.rst | 8 +- docs/tutorials.rst | 156 ++++++++++++++++++++++- tests/baselinePredictions/posf10264.csv | 22 ++-- tests/baselinePredictions/posf10289.csv | 26 ++-- tests/baselinePredictions/posf10325.csv | 20 +-- tests/test_baseline.py | 6 +- tests/test_functions.py | 13 +- tutorials/basic.py | 24 ++++ tutorials/compositionPlots.py | 4 +- tutorials/hefaBlends.py | 23 +--- tutorials/mixtureProperties.py | 15 +-- 18 files changed, 274 insertions(+), 137 deletions(-) rename GroupContributionMethod.py => FuelLib.py (100%) create mode 100644 tutorials/basic.py diff --git a/Export4Converge.py b/Export4Converge.py index 00961ae..841ce87 100644 --- a/Export4Converge.py +++ b/Export4Converge.py @@ -1,8 +1,9 @@ +from email.mime import base import pandas as pd import numpy as np import os import argparse -import GroupContributionMethod as gcm +import FuelLib as fl """ Script that exports mixture properties over large temperature range for use in @@ -84,6 +85,10 @@ def export_converge( nT = int((temp_max - temp_min) / temp_step) + 1 T = np.linspace(temp_min, temp_max, nT) + # Round to nearest multiple of temp_step + def nearest_temp(x, base=temp_step): + return base * round(x/base) + def nearest_floor(array, value): """ Find the largest value in the array that is less than or equal to the given value. @@ -104,9 +109,9 @@ def nearest_ceil(array, value): raise ValueError(f"No temperature in the array is greater than or equal the freezing point {value}. Choose a higher temp_max") # Estimate freezing point and critical temp of mixture - T_freeze = gcm.mixing_rule(fuel.Tm, fuel.Y2X(fuel.Y_0)) - T_crit = gcm.mixing_rule(fuel.Tc, fuel.Y2X(fuel.Y_0)) - T_min_allowed = T_freeze + T_freeze = fl.mixing_rule(fuel.Tm, fuel.Y2X(fuel.Y_0)) + T_crit = fl.mixing_rule(fuel.Tc, fuel.Y2X(fuel.Y_0)) + T_min_allowed = nearest_temp(T_freeze) T_max_allowed = min(fuel.Tc) print(f"\nEstimated mixture freezing temp: {T_freeze:.2f} K") @@ -141,7 +146,7 @@ def nearest_ceil(array, value): thermal_conductivity = np.zeros_like(T) # Thermal conductivity # Calculate GCM properties for a range of temperatures - print(f"\nCalculating properties over {len(T)} temperatures...") + print(f"\nCalculating properties over {len(T)} temperatures from {temp_min} K to {temp_max} K...") for k in range(len(T)): if T[k] <= T_min_allowed: Temp = T_min_allowed @@ -151,7 +156,7 @@ def nearest_ceil(array, value): Temp = T[k] # Correct droplet mass (GCxGC at standard temperature) - mass = gcm.droplet_mass(fuel, drop_r, fuel.Y_0, Temp) + mass = fl.droplet_mass(fuel, drop_r, fuel.Y_0, Temp) Y_li = fuel.mass2Y(mass) X_li = fuel.Y2X(Y_li) @@ -163,8 +168,8 @@ def nearest_ceil(array, value): thermal_conductivity[k] = fuel.mixture_thermal_conductivity(Y_li, Temp) # Generic mixing rules for latent heat and specific heat - Lv[k] = gcm.mixing_rule(fuel.latent_heat_vaporization(Temp), X_li) # J/kg - Cl[k] = gcm.mixing_rule(fuel.Cl(Temp), X_li) # J/kg/K + Lv[k] = fl.mixing_rule(fuel.latent_heat_vaporization(Temp), X_li) # J/kg + Cl[k] = fl.mixing_rule(fuel.Cl(Temp), X_li) # J/kg/K if units.lower() == "cgs": # Convert properties to CGS units @@ -176,7 +181,7 @@ def nearest_ceil(array, value): "Surface Tension (dyne/cm)": surface_tension * conv_surfacetension, "Heat of Vaporization (erg/g)": Lv * conv_Lv, "Vapor Pressure (dyne/cm^2)": pv * conv_P, - "Density (g/cm-3)": rho * conv_rho, + "Density (g/cm^3)": rho * conv_rho, "Specific Heat (erg/g/K)": Cl * conv_Cl, "Thermal Conductivity (erg/cm/s/K)": thermal_conductivity * conv_thermcond } @@ -191,7 +196,7 @@ def nearest_ceil(array, value): "Surface Tension (N/m)": surface_tension, "Heat of Vaporization (J/kg)": Lv, "Vapor Pressure (Pa)": pv, - "Density (kg/m-3)": rho, + "Density (kg/m^3)": rho, "Specific Heat (J/kg/K)": Cl, "Thermal Conductivity (W/m/K)": thermal_conductivity } @@ -302,9 +307,9 @@ def main(): # Check if necessary files exist in the fuelData directory print("\nChecking for required files...") decomp_dir = os.path.join( - gcm.groupContribution.fuelDataDir, "groupDecompositionData" + fl.groupContribution.fuelDataDir, "groupDecompositionData" ) - gcxgc_dir = os.path.join(gcm.groupContribution.fuelDataDir, "gcData") + gcxgc_dir = os.path.join(fl.groupContribution.fuelDataDir, "gcData") gcxgc_file = os.path.join(gcxgc_dir, f"{fuel_name}_init.csv") decomp_file = os.path.join(decomp_dir, f"{fuel_name}.csv") if not os.path.exists(gcxgc_file): @@ -318,7 +323,7 @@ def main(): print("All required files found.") # Create the groupContribution object for the specified fuel - fuel = gcm.groupContribution(fuel_name) + fuel = fl.groupContribution(fuel_name) # Export properties for Pele export_converge( diff --git a/Export4Pele.py b/Export4Pele.py index 36cbde1..88d507a 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -2,14 +2,14 @@ import numpy as np import os import argparse -import GroupContributionMethod as gcm +import FuelLib as fl """ Script that exports critical properties and initial mass fraction data for use in Pele simulations. This script is designed to be run from the command line and will create -a file named "sprayPropsGCM.inp" in the specified directory. +a file named "sprayPropsfl.inp" in the specified directory. The file contains properties for each compound in the fuel, formatted for Pele. Usage: @@ -68,7 +68,7 @@ def export_pele( os.makedirs(path) # Names of the input file - file_name = os.path.join(path, "sprayPropsGCM.inp") + file_name = os.path.join(path, "sprayPropsfl.inp") # If dep_fuel_names is not provided, use fuel.compounds if dep_fuel_names is None: @@ -267,9 +267,9 @@ def main(): # Check if necessary files exist in the fuelData directory print("\nChecking for required files...") decomp_dir = os.path.join( - gcm.groupContribution.fuelDataDir, "groupDecompositionData" + fl.groupContribution.fuelDataDir, "groupDecompositionData" ) - gcxgc_dir = os.path.join(gcm.groupContribution.fuelDataDir, "gcData") + gcxgc_dir = os.path.join(fl.groupContribution.fuelDataDir, "gcData") gcxgc_file = os.path.join(gcxgc_dir, f"{fuel_name}_init.csv") decomp_file = os.path.join(decomp_dir, f"{fuel_name}.csv") if not os.path.exists(gcxgc_file): @@ -283,7 +283,7 @@ def main(): print("All required files found.") # Create the groupContribution object for the specified fuel - fuel = gcm.groupContribution(fuel_name) + fuel = fl.groupContribution(fuel_name) # Export properties for Pele export_pele( diff --git a/GroupContributionMethod.py b/FuelLib.py similarity index 100% rename from GroupContributionMethod.py rename to FuelLib.py diff --git a/docs/conf.py b/docs/conf.py index 5c365cd..c28be09 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,15 +1,7 @@ # Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html # -- Path setup -------------------------------------------------------------- -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# import os import sys @@ -26,23 +18,16 @@ release = "2025" # The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] source_suffix = ".rst" # The master toctree document. master_doc = "index" -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. +# The name of an image file to place at the top of the sidebar. html_logo = "comms/FuelLibLogo_Blue.pdf" # -- General configuration --------------------------------------------------- -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. numfig = True extensions = [ "sphinx.ext.mathjax", @@ -78,9 +63,7 @@ # html_theme = "sphinx_rtd_theme" -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". +# Add any paths that contain custom static files (such as style sheets) # html_static_path = ["_static"] # html_css_files = ["custom.css"] diff --git a/docs/figures/hefaBlends.png b/docs/figures/hefaBlends.png index b9b7195a34fdbdea82c39e9e35f68dec22578450..256a5a8f0a76937e0ff0de56f7ea186e1f76d4e4 100644 GIT binary patch literal 100108 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

7KRAA@MdvIK%V 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

@j? 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 ZucA^u^muQ1`If}T59UA4j5TxG@n0_Sy)^&; diff --git a/docs/figures/multiCompFuels.png b/docs/figures/multiCompFuels.png index 0c313e173c646ddc69841f0fa66c9ef73589290f..f3225b6d5562de0e1ab6f080b7948d73210c22fd 100644 GIT binary patch literal 176377 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%0A|4BCy0EVp?T3!7`Q|RBJVkO>2B9#uH%rEqN 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ઌ*9g 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

qsX>~1*ZF3{o`$D3uW2Ld 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

aga}dh10D7O~=q{Z34m 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êLw7WRXX;W)gAovljUz+7 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 CA0*NM diff --git a/docs/groupcontribution.rst b/docs/groupcontribution.rst index 3aae671..e587dba 100644 --- a/docs/groupcontribution.rst +++ b/docs/groupcontribution.rst @@ -143,7 +143,7 @@ provided :math:`T` in K unless noted otherwise. Kinematic viscosity ^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.viscosity_kinematic +.. automethod:: FuelLib.groupContribution.viscosity_kinematic :noindex: The kinematic viscosity of the *i-th* compound of the fuel, @@ -166,7 +166,7 @@ Liquids\ :footcite:p:`viswanath_viscosity_2007`) provided :math:`T` in :math:`^{ Latent heat of vaporization ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.latent_heat_vaporization +.. automethod:: FuelLib.groupContribution.latent_heat_vaporization :noindex: The latent heat of vaporization for each compound at standard pressure and @@ -185,7 +185,7 @@ temperature\ :footcite:p:`govindaraju_group_2016`: Liquid molar volume ^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.molar_liquid_vol +.. automethod:: FuelLib.groupContribution.molar_liquid_vol :noindex: The liquid molar volume is calculated at a specific temperature :math:`T` using @@ -211,7 +211,7 @@ where Density ^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.density +.. automethod:: FuelLib.groupContribution.density :noindex: The density of the *i-th* compound is given by @@ -223,7 +223,7 @@ The density of the *i-th* compound is given by Liquid specific heat capacity ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.Cl +.. automethod:: FuelLib.groupContribution.Cl :noindex: The liquid specific heat capacity for each compound at standard pressure temperature is calculated from the specific heat capacity as: @@ -236,7 +236,7 @@ The liquid specific heat capacity for each compound at standard pressure tempera Saturated vapor pressure ^^^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.psat +.. automethod:: FuelLib.groupContribution.psat :noindex: The saturated vapor pressure for each compound is calculated as a function of @@ -275,7 +275,7 @@ with :math:`\tau_i = 1 - T_{r,i}`. Surface tension ^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.surface_tension +.. automethod:: FuelLib.groupContribution.surface_tension :noindex: Surface tension for each compound is approximated using the relation: @@ -298,7 +298,7 @@ or by Curl and Pitzer\ :footcite:p:`poling_properties_2001` \ :footcite:p:`curl_ Thermal conductivity ^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.thermal_conductivity +.. automethod:: FuelLib.groupContribution.thermal_conductivity :noindex: Thermal conductivity for each compound is computed according to the method of @@ -385,7 +385,7 @@ are used throughout this section. Conventional mixing rules ^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: GroupContributionMethod.mixing_rule +.. autofunction:: FuelLib.mixing_rule :noindex: While many of the mixture properties in FuelLib have a unique mixing rule, @@ -411,7 +411,7 @@ where :math:`Q_i` is the property of the *i-th* compound of the multicomponent m Mixture density ^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.mixture_density +.. automethod:: FuelLib.groupContribution.mixture_density :noindex: The mixture's density is calculated as: @@ -424,7 +424,7 @@ The mixture's density is calculated as: Mixture kinematic viscosity ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.mixture_kinematic_viscosity +.. automethod:: FuelLib.groupContribution.mixture_kinematic_viscosity :noindex: The kinematic viscosity of the mixture is computed using the Kendall-Monroe\ :footcite:p:`kendall_viscosity_1917` @@ -449,7 +449,7 @@ The Arrhenius rule is: Mixture vapor pressure ^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.mixture_vapor_pressure +.. automethod:: FuelLib.groupContribution.mixture_vapor_pressure :noindex: The vapor pressure of the mixture is calculated according to Raoult's law: @@ -459,7 +459,7 @@ The vapor pressure of the mixture is calculated according to Raoult's law: p_{v} = \sum_{i = 1}^{N_c} X_i \, p_{\textit{sat},i}. \end{align*} -.. automethod:: GroupContributionMethod.groupContribution.mixture_vapor_pressure_antoine_coeffs +.. automethod:: FuelLib.groupContribution.mixture_vapor_pressure_antoine_coeffs :noindex: Users also have the option to return the coefficients from an Antoine fit based on @@ -479,7 +479,7 @@ for additional information. Mixture surface tension ^^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.mixture_surface_tension +.. automethod:: FuelLib.groupContribution.mixture_surface_tension :noindex: The surface tension of the mixture is calculated using the :ref:`conventional-mixing-rules` @@ -492,7 +492,7 @@ Hugill and van Welsenes\ :footcite:p:`hugill_surface_1986`: Mixture thermal conductivity ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. automethod:: GroupContributionMethod.groupContribution.mixture_thermal_conductivity +.. automethod:: FuelLib.groupContribution.mixture_thermal_conductivity :noindex: The thermal conductivity of the mixture is calculated using the power law method of diff --git a/docs/sourcecode.rst b/docs/sourcecode.rst index 8200091..1d5dc1b 100644 --- a/docs/sourcecode.rst +++ b/docs/sourcecode.rst @@ -11,6 +11,7 @@ FuelLib File Organization - **docs:** directory containing the documentation source files - **tutorials:** directory containing example scripts that demonstrate how to use FuelLib + - ``basic.py``: example script that demonstrates basic usage of FuelLib - ``compositionPlots.py``: example script that generates composition plots for a given fuel - ``hefaBlends.py``: example script that calculates properties of HEFA:Jet-A blends - ``mixtureProperties.py``: validation script that calculates properties of single component fuels and mixture properties of multicomponent fuels. @@ -20,7 +21,7 @@ FuelLib File Organization - **groupDecompositionData:** directory containing a collection of functional group decompositions - **propertiesData:** directory containing measurement or predicted data for validation (see *fuelData/dataReferences.md*) - **gcmTableData:** directory that contains the pre-tabulated group contributions -- ``GroupContributionMethod.py``: class for enabling GCM predictions +- ``FuelLib.py``: class for enabling GCM predictions - **tests:** directory containing CI unit tests for FuelLib. The CI test checks if the cumulative error of property predictions of a new proposed model are less than or equal to the current model. - **baselinePredictions:** directory that contains baseline predictions @@ -36,5 +37,6 @@ Click on links below for the full auto-documentation. .. autosummary:: :toctree: generated - GroupContributionMethod - Export4Pele \ No newline at end of file + FuelLib + Export4Pele + Export4Converge \ No newline at end of file diff --git a/docs/tutorials.rst b/docs/tutorials.rst index b26f69a..3a254b1 100644 --- a/docs/tutorials.rst +++ b/docs/tutorials.rst @@ -3,6 +3,97 @@ Tutorials This section provides tutorials on how to use the FuelLib library. +Introduction +------------ + +Clone the FuelLib repository from GitHub: :: + + git clone https://github.com/NREL/FuelLib.git + +Create and activate a Conda environment, install the required dependencies: :: + + conda create --name fuellib-env matplotlib pandas scipy + conda activate fuellib-env + +Change to the FuelLib directory: :: + + cd FuelLib + +Required Input files +^^^^^^^^^^^^^^^^^^^^^ + +FuelLib requires two input files for any given fuel, ````: + +- ``FuelLib/fuelData/gcData/_init.csv``: an initial weight percentage composition of the fuel components +- ``FuelLib/fuelData/groupDecompositionData/.csv``: the fundamental group decomposition for each component of the fuel + +These files must have the same number of rows and the same order of components. Many examples can be found in the `fuelData `_ directory. + +Basic Usage +^^^^^^^^^^^ + +To demonstrate the usage of FuelLib, we will use the fuel "heptane-decane", which is a +binary mixture of heptane and decane. The initial weight percentage composition is 73.75% +heptane and 26.25% decane, and the group decomposition data is provided in the +`groupDecompositionData `_ directory. +The following tutorial is included in the `FuelLib/tutorials `_ +as `basic.py`. To begin, we will import the necessary modules and create a ``groupContribution`` object for the fuel "heptane-decane": + +.. code-block:: python + + import os + import sys + import numpy as np + + # Add the FuelLib directory to the Python path + fuellib_dir = os.path.dirname(os.path.dirname(__file__)) + sys.path.append(fuellib_dir) + import FuelLib as fl + + # Create a groupContribution object for the fuel "heptane-decane" + fuel = fl.groupContribution("heptane-decane") + +Upon intitialization, the ``groupContribution`` object will read the initial weight +percentage composition and group decomposition data from the specified files. The object stores +vectors of the calculated fundamental properties at standard conditions for each component of the fuel as described in :ref:`eq-GCM-properties`. +For example, we can display the fuel name, the components in the fuel, the initial composition, and the critical temperature for each component: + +.. code-block:: python + + # Display fuel name, components, initial composition, and critical temperature + print(f"Fuel name: {fuel.name}") + print(f"Fuel components: {fuel.compounds}") + print(f"Initial composition: {fuel.Y_0}") + print(f"Critical temperature: {fuel.Tc} K") + +.. code-block:: none + + Fuel name: heptane-decane + Fuel components: ['NC7H16', 'NC10H22'] + Initial composition: [0.7375 0.2625] + Critical temperature: [549.85598051 623.69051582] K + +Next, we can calculate any of the component- or mixture-level properties using the +``groupContribution`` object. For example, we can calculate the saturated vapor pressure +for each component and the mixture at a given temperature: + +.. code-block:: python + + # Calculate the saturated vapor pressure at 320 K + T = 320 # K + p_sat_i = fuel.psat(T) + p_sat_mix = fuel.mixture_vapor_pressure(T) + print(f"Saturated vapor pressure at {T} K: {p_sat_i} Pa") + print(f"Mixture saturated vapor pressure at {T} K: {p_sat_mix} Pa") + +.. code-block:: none + + Saturated vapor pressure at 320 K: [13735.84605413 673.28876023] Pa + Mixture saturated vapor pressure at 320 K: 11117.84926875165 Pa + +The following links provide more information on the :ref:`eq-GCM-correlations` and +the :ref:`eq-mixture-properties` that can be calculated using the ``groupContribution`` object. + Exporting GCM Properties for Pele --------------------------------- @@ -12,7 +103,7 @@ properties can be exported for use in the spray module of the `PelePhysics `_ flow solver\ :footcite:p:`henry_de_frahan_pele_2024` \ :footcite:p:`esclapez_pelelmex_2023`. -The export script, ``Export4Pele.py``, generates an input file named ``sprayPropsGCM.inp`` containing +The export script, ``Export4Pele.py``, generates an input file named ``sprayPropsfl.inp`` containing the necessary properties for each compound in the fuel. The properties are formatted for use in Pele and includes: - Initial mass fraction @@ -34,12 +125,18 @@ This example walks through the process and the available options for exporting G Default Options ^^^^^^^^^^^^^^^ +.. note:: + The units for PeleLMeX are MKS while the units for PeleC are CGS. This is the same for + the spray inputs. Therefore, when running a spray simulation coupled with PeleC, the units for the + liquid fuel properties must be in CGS. The default units for the ``Export4Pele.py`` script is MKS, + but users can specify CGS by using the ``--units cgs`` option. + From the ``FuelLib`` directory, run the following command in the terminal, noting that ``--fuel_name`` is the only required input: :: python Export4Pele.py --fuel_name heptane-decane -This generates the following input file ``FuelLib/sprayPropsGCM/sprayPropsGCM.inp``: :: +This generates the following input file, ``FuelLib/sprayPropsGCM/sprayPropsfl.inp``, for use in a PeleLMeX simulation: :: particles.spray_fuel_num = 2 particles.fuel_species = NC7H16 NC10H22 @@ -68,10 +165,10 @@ This generates the following input file ``FuelLib/sprayPropsGCM/sprayPropsGCM.in particles.NC10H22_cp = 1630.488028169014 3098.1056338028166 -1024.456338028169 # J/kg/K particles.NC10H22_latent = 368035.211268 # J/kg -To include these parameters in your Pele simulation, copy the ``sprayPropsGCM.inp`` +To include these parameters in your Pele simulation, copy the ``sprayPropsfl.inp`` file to the specific case directory and include the following line in your Pele input file: :: - FILE = sprayPropsGCM.inp + FILE = sprayPropsfl.inp Note: for liquid fuels from FuelLib with greater than 30 components, the script @@ -139,4 +236,55 @@ to a value greater than 30, however this would be required a massive mechanism f python Export4Pele.py --fuel_name posf10325 --max_dep_fuels 67 +Exporting GCM-Based Mixture Properties for Converge +--------------------------------------------------- + +The export script, ``Export4Converge.py``, generates a csv file named ``mixturePropsGCM_.csv`` containing +mixture property predictions for a given fuel over a specified temperature range. The properties include: + +- Critical temperature +- Dynamic viscosity +- Surface tension +- Latent heat of vaporization +- Vapor pressure +- Density +- Specific heat +- Thermal conductivity + +.. warning:: + Mixture properties for critical temperature, latent heat, and specifc heat are provided by :ref:`conventional-mixing-rules` and need additional validation. + +This example walks through the process and the available options for exporting GCM-based mixture properties for +"posf10325", which is conventional Jet-A, using the ``Export4Converge.py`` script. + +Default Options +^^^^^^^^^^^^^^^ + +From the ``FuelLib`` directory, run the following command in the terminal, noting that ``--fuel_name`` is the only required input: :: + + python Export4Converge.py --fuel_name posf10325 + + +This generates the file ``FuelLib/mixturePropsGCM/mixturePropsGCM_posf10325.csv`` with mixture +property predictions from 0 K to 1000 K for use in a Converge simulation. + +Additional Options +^^^^^^^^^^^^^^^^^^ + +There are four additional options that can be specified when running the export script: + +- ``--units``: Specify the units for the mixture properties. The default is "mks" but users can set the units to "cgs". +- ``--temp_min``: Specify the minimum temperature. The default is 0 K. +- ``--temp_max``: Specify the maximum temperature. The default is 1000 K. +- ``--temp_step``: Specify the temperature step size. The default is :math:`\Delta T = 10` K. +- ``--export_dir``: Specify the directory to export the file. The default is "FuelLib/mixturePropsGCM". + +.. note:: + The mixture property predictions may not be valid from the specified ``temp_min`` to ``temp_max``, + as the mixture properties are based on the GCM properties and correlations of the individual + components. Constant values are set for temperatures below the freezing point of the mixture or above + the minimum critical temperature of all compounds in the fuel. These temperature values will be noted in the + terminal output and should be considered when using the mixture properties in a simulation. + + .. footbibliography:: \ No newline at end of file diff --git a/tests/baselinePredictions/posf10264.csv b/tests/baselinePredictions/posf10264.csv index 5961690..8504197 100644 --- a/tests/baselinePredictions/posf10264.csv +++ b/tests/baselinePredictions/posf10264.csv @@ -1,13 +1,13 @@ Temperature,Density,Error_Density,Viscosity,Error_Viscosity,VaporPressure,Error_VaporPressure,SurfaceTension,Error_SurfaceTension,ThermalConductivity,Error_ThermalConductivity C,g/cm^3,g/cm^3,mm^2/s,mm^2/s,kPa,kPa,N/m,N/m,W/m/K,W/m/K --40.0,0.8156332693176657,0.0073417306823343464,6.051549516393376,0.548450483606624,,,,,, --20.0,0.8020655318197991,0.00653446818020087,3.5196201512637884,0.019620151263788355,,,,,, --10.0,,,,,,,0.027464306235608863,0.0016218672356088648,, -0.0,0.7882433122665099,0.00598168773349006,,,0.14038873920043518,0.09203840920043518,,,0.13001682161843095,0.0009783596184309573 -20.0,0.7741440239084652,0.005705976091534892,,,0.4264524448176301,0.20210184018236987,0.024885961316563718,0.0010497233165637186,, -30.0,,,,,,,,,0.1238976396517731,0.00014082234822690443 -40.0,0.7597416601810878,0.005541672818912158,1.1995687356322697,0.05956873563226983,1.1410418332585635,0.26111772474143646,0.023193676178117115,0.0003600091781171162,0.12189631568305907,0.0018963156830590772 -60.0,,,,,2.7424186076739625,0.6904547933260377,,,0.11793039473473628,0.0017765487347362746 -80.0,,,,,6.00996267028815,1.3876377577118495,,,, -100.0,,,0.6311083846632889,0.021108384663288904,12.15431513018429,2.4474844098157096,,,, -120.0,,,,,22.911749852682078,3.6809314273179226,,,, +-40.0,0.8168172198262019,0.006157780173798089,5.504172261461431,1.0958277385385689,,,,,, +-20.0,0.8031633952190618,0.0054366047809382145,3.2462244010117867,0.25377559898821334,,,,,, +-10.0,,,,,,,0.02767774328247316,0.0018353042824731623,, +0.0,0.7892487026600817,0.004976297339918223,,,0.18793495991304693,0.13958462991304693,,,0.13010257682106796,0.0010641148210679685 +20.0,0.7750496938811732,0.004800306118826869,,,0.5607677251346005,0.0677865598653995,0.025048880646984642,0.0012126426469846428,, +30.0,,,,,,,,,0.1239264112971942,0.0001120507028058021 +40.0,0.7605393184863175,0.0047440145136824485,1.1346882321275127,0.005311767872487216,1.4733321654813216,0.0711726074813217,0.023323787531678266,0.0004901205316782675,0.12190512809135769,0.0019051280913576912 +60.0,,,,,3.4779394114749382,0.04506601047493808,,,0.11789748590465501,0.0017436399046550088 +80.0,,,,,7.491327128894398,0.09372670089439872,,,, +100.0,,,0.6050927435154413,0.0049072564845586975,14.906136104495566,0.304336564495566,,,, +120.0,,,,,27.67995358417797,1.0872723041779686,,,, diff --git a/tests/baselinePredictions/posf10289.csv b/tests/baselinePredictions/posf10289.csv index 385774c..d03a05e 100644 --- a/tests/baselinePredictions/posf10289.csv +++ b/tests/baselinePredictions/posf10289.csv @@ -1,15 +1,15 @@ Temperature,Density,Error_Density,Viscosity,Error_Viscosity,VaporPressure,Error_VaporPressure,SurfaceTension,Error_SurfaceTension,ThermalConductivity,Error_ThermalConductivity C,g/cm^3,g/cm^3,mm^2/s,mm^2/s,kPa,kPa,N/m,N/m,W/m/K,W/m/K --40.0,,,8.706261480288568,5.393738519711432,,,,,, --20.0,,,4.807289496514161,1.6927105034858387,,,,,, --10.0,,,,,,,0.028784261047040637,0.00036283104704063623,, -0.0,0.8356858736347023,0.0030057933652977153,,,0.04985008076266544,0.0014997507626654458,,,, -20.0,0.8219669788909396,0.001966354109060431,,,0.16179638875944455,0.17665591824055546,0.026317105629007336,0.0005895946290073346,, -30.0,,,,,,,,,0.1095703946312613,0.008410374368738704 -40.0,0.8079816159589717,0.0017683840410283036,1.4890334549970374,0.08096654500296263,0.4600255086687159,0.024872542668715913,0.024695408978026495,2.9530021973506182e-05,, -60.0,,,,,1.1687215396208384,0.13673735937916165,,,, -75.0,,,,,,,,,0.1022063027916717,0.006736005208328302 -80.0,,,,,2.694465529208609,0.641707212791391,,,, -100.0,,,0.7437881790171854,0.016211820982814595,5.7083443848269795,0.6738991211730205,,,, -120.0,,,,,11.229706166647924,2.550137763352076,,,, -125.0,,,,,,,,,0.09416672047398948,0.00669866452601052 +-40.0,,,8.13990895923947,5.960091040760529,,,,,, +-20.0,,,4.538236530580061,1.9617634694199388,,,,,, +-10.0,,,,,,,0.028979688828468762,0.0005582588284687613,, +0.0,0.8368640754931359,0.001827591506864068,,,0.06751068415419094,0.019160354154190942,,,, +20.0,0.8230824683603558,0.0008508646396442332,,,0.21396053492709474,0.12449177207290527,0.026475312206921894,0.0007478012069218921,, +30.0,,,,,,,,,0.11012508761760324,0.007855681382396756 +40.0,0.8090296823758196,0.0007203176241803444,1.4308523671028688,0.13914763289713128,0.5946172851924806,0.1594643191924806,0.02482937749446885,0.00010443849446884965,, +60.0,,,,,1.4785951435944569,0.17313624459445687,,,, +75.0,,,,,,,,,0.10267963182249136,0.0062626761775086415 +80.0,,,,,3.3418202795761762,0.005647537576176198,,,, +100.0,,,0.7216190826614485,0.038380917338551535,6.9522470047918405,0.5700034987918405,,,, +120.0,,,,,13.453084074016212,0.3267598559837879,,,, +125.0,,,,,,,,,0.09454072544230083,0.006324659557699175 diff --git a/tests/baselinePredictions/posf10325.csv b/tests/baselinePredictions/posf10325.csv index 3ec9016..daddd6f 100644 --- a/tests/baselinePredictions/posf10325.csv +++ b/tests/baselinePredictions/posf10325.csv @@ -1,12 +1,12 @@ Temperature,Density,Error_Density,Viscosity,Error_Viscosity,VaporPressure,Error_VaporPressure,SurfaceTension,Error_SurfaceTension,ThermalConductivity,Error_ThermalConductivity C,g/cm^3,g/cm^3,mm^2/s,mm^2/s,kPa,kPa,N/m,N/m,W/m/K,W/m/K --40.0,0.8392182521444772,0.004648414855522809,7.327450357477861,1.872549642522138,,,,,, --20.0,0.8258168493109188,0.003866483689081157,4.142782657382326,0.3572173426176741,,,,,, --10.0,,,,,,,0.02822092897101752,0.0001925259710175188,, -0.0,0.8121753157780559,0.002941351221944055,,,0.10060971089776094,0.05225938089776094,,,0.12287925765691673,0.0013515113430832698 -20.0,0.7982732959952182,0.003426704004781733,,,0.31002294762258614,0.12513001837741383,0.02568944164405838,0.0008707026440583805,0.11912057824575477,0.0010717297542452292 -40.0,0.7840874978406115,0.003237502159388561,1.341559473253509,0.03155947325350894,0.8390728292355918,0.017117226235591754,0.024026679332593448,0.0004070473325934465,0.11544504546942812,0.0006126465305718864 -60.0,,,,,2.0363027068420876,0.2361627841579126,,,0.11182735967192953,0.0003841783280704725 -80.0,,,,,4.501990474917265,0.4297431440827353,,,, -100.0,,,0.6868084919928379,0.00680849199283784,9.182166700648933,0.6813005363510669,,,, -120.0,,,,,17.455667845520445,1.3042600344795545,,,, +-40.0,0.8407245600223795,0.003142106977620518,6.681530139926496,2.5184698600735036,,,,,, +-20.0,0.8272451036292856,0.002438229370714362,3.829156453437944,0.6708435465620561,,,,,, +-10.0,,,,,,,0.02845275184318056,0.0004243488431805581,, +0.0,0.8135198789271101,0.0015967880728898765,,,0.13729717658561572,0.08894684658561572,,,0.12322910486799102,0.0010016641320089864 +20.0,0.799527797349555,0.002172202650444932,,,0.41508022057018,0.02007274542981996,0.02587160548393405,0.001052866483934052,0.11943166440945686,0.0007606435905431336 +40.0,0.7852446835087796,0.002080316491220424,1.2708416560666673,0.03915834393333273,1.1021089809141875,0.2801533779141875,0.024176552222869102,0.0005569202228691006,0.11571607356306363,0.00034161843693637783 +60.0,,,,,2.624808749444473,0.3523432584444728,,,0.1120566035167615,0.00015493448323850023 +80.0,,,,,5.698939254945763,0.7672056359457633,,,, +100.0,,,0.6592182066733121,0.020781793326687947,11.425993375447765,1.5625261384477653,,,, +120.0,,,,,21.37702866298674,2.617100782986739,,,, diff --git a/tests/test_baseline.py b/tests/test_baseline.py index 71066f2..c7e647e 100644 --- a/tests/test_baseline.py +++ b/tests/test_baseline.py @@ -12,7 +12,7 @@ # Add the FuelLib directory to the Python path fuellib_dir = os.path.dirname(os.path.dirname(__file__)) sys.path.append(fuellib_dir) -import GroupContributionMethod as gcm +import FuelLib as fl # Directories for tests and baseline predictions test_dir = os.path.dirname(__file__) @@ -48,10 +48,6 @@ def get_unit_for_column(col_name): return prop_units[prop] return "" - -# Assume a droplet of fuel with radius 50 microns (r doesn't matter) -drop_r = 50 * 1e-6 # initial droplet diameter (m) - # Loop through each fuel and generate csv of baseline property predictions for fuel_name in fuel_names: diff --git a/tests/test_functions.py b/tests/test_functions.py index 1a1eb75..c21dd32 100644 --- a/tests/test_functions.py +++ b/tests/test_functions.py @@ -6,15 +6,12 @@ # Add the FuelLib directory to the Python path fuellib_dir = os.path.dirname(os.path.dirname(__file__)) sys.path.append(fuellib_dir) -import GroupContributionMethod as gcm +import FuelLib as fl def getPredAndData(fuel_name, prop_name): # Get the fuel properties based on the GCM - fuel = gcm.groupContribution(fuel_name) - - # Assume a droplet of fuel with radius 50 microns (r doesn't matter) - drop_r = 50 * 1e-6 # initial droplet diameter (m) + fuel = fl.groupContribution(fuel_name) data_file = f"{fuel_name}.csv" dataPath = os.path.join(fuel.fuelDataDir, "propertiesData") @@ -28,12 +25,10 @@ def getPredAndData(fuel_name, prop_name): pred = np.zeros_like(T_data) # Vectors for temperature (convert from C to K) - T_pred = gcm.C2K(T_data) + T_pred = fl.C2K(T_data) for i in range(0, len(T_pred)): - # Correct droplet mass (GCxGC at standard temperature) - mass = gcm.droplet_mass(fuel, drop_r, fuel.Y_0, T_pred[i]) - Y_li = fuel.mass2Y(mass) + Y_li = fuel.Y_0 if prop_name == "Density": # Mixture density (returns rho in kg/m^3) diff --git a/tutorials/basic.py b/tutorials/basic.py new file mode 100644 index 0000000..8f2e2a8 --- /dev/null +++ b/tutorials/basic.py @@ -0,0 +1,24 @@ +import os +import sys +import numpy as np + +# Add the FuelLib directory to the Python path +fuellib_dir = os.path.dirname(os.path.dirname(__file__)) +sys.path.append(fuellib_dir) +import FuelLib as fl + +# Create a groupContribution object for the fuel "heptane-decane" +fuel = fl.groupContribution("heptane-decane") + +# Display fuel name, components, initial composition, and critical temperature +print(f"Fuel name: {fuel.name}") +print(f"Fuel components: {fuel.compounds}") +print(f"Initial composition: {fuel.Y_0}") +print(f"Critical temperature: {fuel.Tc} K") + +# Calculate the saturated vapor pressure at 320 K +T = 320 # K +p_sat_i = fuel.psat(T) +p_sat_mix = fuel.mixture_vapor_pressure(fuel.Y_0, T) +print(f"Saturated vapor pressure at {T} K: {p_sat_i} Pa") +print(f"Mixture saturated vapor pressure at {T} K: {p_sat_mix:.2f} Pa") \ No newline at end of file diff --git a/tutorials/compositionPlots.py b/tutorials/compositionPlots.py index c93058d..dc030c0 100644 --- a/tutorials/compositionPlots.py +++ b/tutorials/compositionPlots.py @@ -8,11 +8,11 @@ # Add the FuelLib directory to the Python path fuellib_dir = os.path.dirname(os.path.dirname(__file__)) sys.path.append(fuellib_dir) -import GroupContributionMethod as gcm +import FuelLib as fl fuel_name = "posf10325" -fuel = gcm.groupContribution(fuel_name) +fuel = fl.groupContribution(fuel_name) # Classify compounds into families aromatic = [ diff --git a/tutorials/hefaBlends.py b/tutorials/hefaBlends.py index 77649d7..31541b9 100644 --- a/tutorials/hefaBlends.py +++ b/tutorials/hefaBlends.py @@ -7,7 +7,7 @@ # Add the FuelLib directory to the Python path fuellib_dir = os.path.dirname(os.path.dirname(__file__)) sys.path.append(fuellib_dir) -import GroupContributionMethod as gcm +import FuelLib as fl # ----------------------------------------------------------------------------- # Calculate mixture properties from the group contribution properties @@ -21,9 +21,6 @@ # Properties to plot prop_names = ["Density", "Viscosity"] -# Assume a droplet of fuel with radius 50 microns (r doesn't matter) -drop_r = 50 * 1e-6 # initial droplet diameter (m) - # Plotting parameters fsize = 18 ticksize = 18 @@ -62,8 +59,8 @@ def getPredAndData(fuel_name, prop_name, blend): blend = np.array(blend) * 1e-2 # Convert to weight percent # Get the fuel properties based on the GCM - fuel = gcm.groupContribution(fuel_name, "hefa") - jetA = gcm.groupContribution(conv_fuel_name) + fuel = fl.groupContribution(fuel_name, "hefa") + jetA = fl.groupContribution(conv_fuel_name) data_file = "hefa-jet-a-blends.csv" dataPath = os.path.join(fuel.fuelDataDir, "propertiesData") @@ -74,9 +71,9 @@ def getPredAndData(fuel_name, prop_name, blend): # Separate properties and associated temperatures from data if prop_name == "Density": - T = gcm.C2K(15) + T = fl.C2K(15) elif prop_name == "Viscosity": - T = gcm.C2K(-20) + T = fl.C2K(-20) # Vector for FuelLib predictions prop_pred = np.zeros_like(blend) @@ -84,10 +81,6 @@ def getPredAndData(fuel_name, prop_name, blend): for i in range(0, len(prop_pred)): # Initial liquid mass fractions Y_li = blend[i] * fuel.Y_0 + (1 - blend[i]) * jetA.Y_0 - - # Correct for temperature - mass = gcm.droplet_mass(fuel, drop_r, Y_li, T) - Y_li = fuel.mass2Y(mass) if prop_name == "Density": # Mixture density (returns rho in kg/m^3) @@ -99,10 +92,6 @@ def getPredAndData(fuel_name, prop_name, blend): # initial liquid mass fractions Y_li = blend[i] * fuel.Y_0 + (1 - blend[i]) * jetA.Y_0 - # Correct for temperature - mass = gcm.droplet_mass(fuel, drop_r, Y_li, T) - Y_li = fuel.mass2Y(mass) - prop_pred[i] = fuel.mixture_kinematic_viscosity(Y_li, T) # Convert viscosity to mm^2/s prop_pred[i] *= 1.0e06 @@ -153,7 +142,7 @@ def getPredAndData(fuel_name, prop_name, blend): # Add labels and adjust ticks ax[i].set_xlabel("HEFA Concentration [wt %]", fontsize=fsize) ax[i].set_xticks([0, 20, 40, 60, 80, 100]) - ax[i].set_ylabel(ylab(prop_names[i], gcm.K2C(T)), fontsize=fsize) + ax[i].set_ylabel(ylab(prop_names[i], fl.K2C(T)), fontsize=fsize) ax[i].tick_params(labelsize=ticksize) handles, labels = ax[0].get_legend_handles_labels() diff --git a/tutorials/mixtureProperties.py b/tutorials/mixtureProperties.py index c9115e4..2eb1787 100644 --- a/tutorials/mixtureProperties.py +++ b/tutorials/mixtureProperties.py @@ -7,7 +7,7 @@ # Add the FuelLib directory to the Python path fuellib_dir = os.path.dirname(os.path.dirname(__file__)) sys.path.append(fuellib_dir) -import GroupContributionMethod as gcm +import FuelLib as fl # ----------------------------------------------------------------------------- # Calculate mixture properties from the group contribution properties @@ -27,9 +27,6 @@ "ThermalConductivity", ] -# Assume a droplet of fuel with radius 50 microns (r doesn't matter) -drop_r = 50 * 1e-6 # initial droplet diameter (m) - # Plotting parameters fsize = 18 ticksize = 18 @@ -86,7 +83,7 @@ def leglab(name): def getPredAndData(fuel_name, prop_name): # Get the fuel properties based on the GCM - fuel = gcm.groupContribution(fuel_name) + fuel = fl.groupContribution(fuel_name) data_file = f"{fuel_name}.csv" dataPath = os.path.join(fuel.fuelDataDir, "propertiesData") @@ -97,15 +94,13 @@ def getPredAndData(fuel_name, prop_name): prop_data = data[prop_name].dropna() # Vectors for temperature (convert from C to K) - T_pred = gcm.C2K(np.linspace(min(T_data), max(T_data), 100)) + T_pred = fl.C2K(np.linspace(min(T_data), max(T_data), 100)) # Vectors for density, viscosity and vapor pressure pred = np.zeros_like(T_pred) for i in range(0, len(T_pred)): - # Correct droplet mass (GCxGC at standard temperature) - mass = gcm.droplet_mass(fuel, drop_r, fuel.Y_0, T_pred[i]) - Y_li = fuel.mass2Y(mass) + Y_li = fuel.Y_0 if prop_name == "Density": # Mixture density (returns rho in kg/m^3) @@ -144,7 +139,7 @@ def getPredAndData(fuel_name, prop_name): # Plot GCM predictions and data ax[i].plot( - gcm.K2C(T), + fl.K2C(T), pred, "-", color=line_color, From 1fd8ba00a8e0d356fe75b3cf33f2deca9cf06061 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Mon, 18 Aug 2025 18:27:23 -0600 Subject: [PATCH 16/20] Remove unnecessary import from Export4Converge.py --- Export4Converge.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Export4Converge.py b/Export4Converge.py index 841ce87..0fda421 100644 --- a/Export4Converge.py +++ b/Export4Converge.py @@ -1,4 +1,3 @@ -from email.mime import base import pandas as pd import numpy as np import os From df20570d3d8ef2497d6204e4d467072d5db4430c Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Tue, 19 Aug 2025 09:15:17 -0600 Subject: [PATCH 17/20] Formatting and minor docs/README updates --- Export4Converge.py | 82 +++++++++++++++++++++------------- Export4Pele.py | 3 +- FuelLib.py | 4 +- README.md | 2 +- docs/sourcecode.rst | 1 + tests/test_baseline.py | 1 + tutorials/basic.py | 4 +- tutorials/hefaBlends.py | 1 + tutorials/mixtureProperties.py | 3 +- 9 files changed, 63 insertions(+), 38 deletions(-) diff --git a/Export4Converge.py b/Export4Converge.py index 0fda421..7eb9da9 100644 --- a/Export4Converge.py +++ b/Export4Converge.py @@ -61,22 +61,22 @@ def export_converge( # Unit conversion factors: if units.lower() == "cgs": # Convert from MKS to CGS - conv_mu = 1e2 # Pa*s to Poise - conv_surfacetension = 1e7 # N/m to dyne/cm - conv_Lv = 1e4 # J/kg to erg/g - conv_P = 1e1 # Pa to dyne/cm^2 + conv_mu = 1e2 # Pa*s to Poise + conv_surfacetension = 1e7 # N/m to dyne/cm + conv_Lv = 1e4 # J/kg to erg/g + conv_P = 1e1 # Pa to dyne/cm^2 conv_rho = 1e3 # kg/m^3 to g/cm^3 - conv_Cl = 1e4 # J/kg/K to erg/g/K - conv_thermcond = 1e5 # W/m/K to erg/cm/s/K + conv_Cl = 1e4 # J/kg/K to erg/g/K + conv_thermcond = 1e5 # W/m/K to erg/cm/s/K else: - conv_mu = 1 - conv_surfacetension = 1 + conv_mu = 1 + conv_surfacetension = 1 conv_Lv = 1 conv_P = 1 conv_rho = 1 conv_Cl = 1 conv_thermcond = 1 - + # Assume droplet of 50 microns to account for compositional changes with temp drop_r = 50 * 1e-6 # initial droplet radius (m) @@ -86,7 +86,7 @@ def export_converge( # Round to nearest multiple of temp_step def nearest_temp(x, base=temp_step): - return base * round(x/base) + return base * round(x / base) def nearest_floor(array, value): """ @@ -95,8 +95,10 @@ def nearest_floor(array, value): if np.any(array <= value): return array[array <= value].max() else: - raise ValueError(f"No temperature in the array is less than or equal to the critical point {value}. Choose a lower temp_min") - + raise ValueError( + f"No temperature in the array is less than or equal to the critical point {value}. Choose a lower temp_min" + ) + def nearest_ceil(array, value): """ Find the smallest value in the array that is greater than or equal to the given value. @@ -104,8 +106,10 @@ def nearest_ceil(array, value): if np.any(array >= value): return array[array >= value].min() else: - # Report an error if no value is found - raise ValueError(f"No temperature in the array is greater than or equal the freezing point {value}. Choose a higher temp_max") + # Report an error if no value is found + raise ValueError( + f"No temperature in the array is greater than or equal the freezing point {value}. Choose a higher temp_max" + ) # Estimate freezing point and critical temp of mixture T_freeze = fl.mixing_rule(fuel.Tm, fuel.Y2X(fuel.Y_0)) @@ -119,33 +123,47 @@ def nearest_ceil(array, value): if np.any(T < T_min_allowed): T_min_allowed = nearest_ceil(T, T_min_allowed) # Set T_min_allowed to be the next temperature above T_min_allowed in T - print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") - print(f" Warning: Some compounds have freezing temperatures above the estimated\n" - f" freezing temperature of the mixture ({T_freeze:.2f} K). All properties calculated\n" - f" below {T_min_allowed} will be set using a temperature of {T_min_allowed} K.") - print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") - + print( + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ) + print( + f" Warning: Some compounds have freezing temperatures above the estimated\n" + f" freezing temperature of the mixture ({T_freeze:.2f} K). All properties calculated\n" + f" below {T_min_allowed} will be set using a temperature of {T_min_allowed} K." + ) + print( + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ) + print(f"\nEstimated mixture critical temp: {T_crit:.2f} K") print(f"Min critical temp min(Tc_i): {min(fuel.Tc):.2f} K") print(f"Max critical temp max(Tc_i): {max(fuel.Tc):.2f} K") if np.any(T > T_max_allowed): T_max_allowed = nearest_floor(T, T_max_allowed) - print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") - print(f" Warning: Some compounds have critical temperatures below the estimated\n" - f" critical temperature of the mixture ({T_crit:.2f} K). All properties calculated\n" - f" above {T_max_allowed} will be set using a temperature of {T_max_allowed} K.") - print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + print( + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ) + print( + f" Warning: Some compounds have critical temperatures below the estimated\n" + f" critical temperature of the mixture ({T_crit:.2f} K). All properties calculated\n" + f" above {T_max_allowed} will be set using a temperature of {T_max_allowed} K." + ) + print( + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ) mu = np.zeros_like(T) # Dynamic viscosity surface_tension = np.zeros_like(T) # Surface tension Lv = np.zeros_like(T) # Latent heat of vaporization pv = np.zeros_like(T) # vapor pressure - rho = np.zeros_like(T) # density + rho = np.zeros_like(T) # density Cl = np.zeros_like(T) # Specific heat thermal_conductivity = np.zeros_like(T) # Thermal conductivity # Calculate GCM properties for a range of temperatures - print(f"\nCalculating properties over {len(T)} temperatures from {temp_min} K to {temp_max} K...") + print( + f"\nCalculating properties over {len(T)} temperatures from {temp_min} K to {temp_max} K..." + ) for k in range(len(T)): if T[k] <= T_min_allowed: Temp = T_min_allowed @@ -167,8 +185,8 @@ def nearest_ceil(array, value): thermal_conductivity[k] = fuel.mixture_thermal_conductivity(Y_li, Temp) # Generic mixing rules for latent heat and specific heat - Lv[k] = fl.mixing_rule(fuel.latent_heat_vaporization(Temp), X_li) # J/kg - Cl[k] = fl.mixing_rule(fuel.Cl(Temp), X_li) # J/kg/K + Lv[k] = fl.mixing_rule(fuel.latent_heat_vaporization(Temp), X_li) # J/kg + Cl[k] = fl.mixing_rule(fuel.Cl(Temp), X_li) # J/kg/K if units.lower() == "cgs": # Convert properties to CGS units @@ -182,7 +200,8 @@ def nearest_ceil(array, value): "Vapor Pressure (dyne/cm^2)": pv * conv_P, "Density (g/cm^3)": rho * conv_rho, "Specific Heat (erg/g/K)": Cl * conv_Cl, - "Thermal Conductivity (erg/cm/s/K)": thermal_conductivity * conv_thermcond + "Thermal Conductivity (erg/cm/s/K)": thermal_conductivity + * conv_thermcond, } ) else: @@ -197,7 +216,7 @@ def nearest_ceil(array, value): "Vapor Pressure (Pa)": pv, "Density (kg/m^3)": rho, "Specific Heat (J/kg/K)": Cl, - "Thermal Conductivity (W/m/K)": thermal_conductivity + "Thermal Conductivity (W/m/K)": thermal_conductivity, } ) @@ -335,5 +354,6 @@ def main(): print("\nExport completed successfully!") + if __name__ == "__main__": main() diff --git a/Export4Pele.py b/Export4Pele.py index 88d507a..6dd7650 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -94,7 +94,7 @@ def export_pele( conv_Cp = 1e4 # J/kg/K to erg/g/K conv_Vm = 1e6 # m^3/mol to cm^3/mol conv_Lv = 1e4 # J/kg to erg/g - conv_P = 1e1 # Pa to dyne/cm^2 + conv_P = 1e1 # Pa to dyne/cm^2 else: conv_MW = 1.0 conv_Cp = 1.0 @@ -211,7 +211,6 @@ def main(): description="Export fuel properties for Pele simulations." ) - # Mandatory argument for fuel name parser.add_argument( "--fuel_name", diff --git a/FuelLib.py b/FuelLib.py index f589030..090021c 100644 --- a/FuelLib.py +++ b/FuelLib.py @@ -3,6 +3,7 @@ from scipy.optimize import curve_fit import os + class groupContribution: """ Class for handling group contribution calculations of thermodynamic and mixture properties. @@ -251,7 +252,7 @@ def Y2X(self, Yi): :rtype: np.ndarray """ if np.sum(Yi) != 0: - Mbar = 1 / np.sum(Yi / self.MW) # mean molar weight of the mixture + Mbar = 1 / np.sum(Yi / self.MW) # mean molar weight of the mixture Xi = Mbar * Yi / self.MW else: Xi = np.zeros_like(self.MW) @@ -807,6 +808,7 @@ def K2C(T): """ return T - 273.15 + def mixing_rule(var_n, X, pseudo_prop="arithmetic"): """ Mixing rules for computing mixture properties. diff --git a/README.md b/README.md index 877dfe6..fa6260e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ conda create --name fuellib-env matplotlib pandas scipy black ~~~ ## Running the code -This repository includes multiple tutorials of ways to use FuelLib. We recommend starting with `tutorials/mixtureProperties.py`, which calculates a given mixture's density, viscosity and vapor pressure from GC x GC data. The results are plotted against data from NIST and [Edwards (2020)](https://apps.dtic.mil/sti/pdfs/AD1093317.pdf). +This repository includes multiple tutorials of ways to use FuelLib. We recommend starting with the basic tutorial, `tutorials/basic.py`, which is documented at [https://nrel.github.io/FuelLib/tutorials.html#introduction]. The script `tutorials/mixtureProperties.py` calculates a given mixture's density, viscosity and vapor pressure from GC x GC data. The results are plotted against data from NIST and [Edwards (2020)](https://apps.dtic.mil/sti/pdfs/AD1093317.pdf). # Contributing New contributions are always welcome. If you have an idea for a new feature follow these steps: diff --git a/docs/sourcecode.rst b/docs/sourcecode.rst index 1d5dc1b..657b105 100644 --- a/docs/sourcecode.rst +++ b/docs/sourcecode.rst @@ -15,6 +15,7 @@ FuelLib File Organization - ``compositionPlots.py``: example script that generates composition plots for a given fuel - ``hefaBlends.py``: example script that calculates properties of HEFA:Jet-A blends - ``mixtureProperties.py``: validation script that calculates properties of single component fuels and mixture properties of multicomponent fuels. +- ``Export4Converge.py``: script that exports mixture properties over a range of user specified temperatures for use in Converge simulations. - ``Export4Pele.py``: script that exports critical properties and initial mass fraction data for use in Pele simulations. - **fuelData:** - **gcData:** directory containing a collection of GCxGC compositional data by weight percentages diff --git a/tests/test_baseline.py b/tests/test_baseline.py index c7e647e..d39df48 100644 --- a/tests/test_baseline.py +++ b/tests/test_baseline.py @@ -48,6 +48,7 @@ def get_unit_for_column(col_name): return prop_units[prop] return "" + # Loop through each fuel and generate csv of baseline property predictions for fuel_name in fuel_names: diff --git a/tutorials/basic.py b/tutorials/basic.py index 8f2e2a8..3a28644 100644 --- a/tutorials/basic.py +++ b/tutorials/basic.py @@ -17,8 +17,8 @@ print(f"Critical temperature: {fuel.Tc} K") # Calculate the saturated vapor pressure at 320 K -T = 320 # K +T = 320 # K p_sat_i = fuel.psat(T) p_sat_mix = fuel.mixture_vapor_pressure(fuel.Y_0, T) print(f"Saturated vapor pressure at {T} K: {p_sat_i} Pa") -print(f"Mixture saturated vapor pressure at {T} K: {p_sat_mix:.2f} Pa") \ No newline at end of file +print(f"Mixture saturated vapor pressure at {T} K: {p_sat_mix:.2f} Pa") diff --git a/tutorials/hefaBlends.py b/tutorials/hefaBlends.py index 31541b9..212f10d 100644 --- a/tutorials/hefaBlends.py +++ b/tutorials/hefaBlends.py @@ -27,6 +27,7 @@ line_thickness = 4 marker_size = 75 + # Line specifications for plotting def linespecs(name): if "came" in name: diff --git a/tutorials/mixtureProperties.py b/tutorials/mixtureProperties.py index 2eb1787..ea96bef 100644 --- a/tutorials/mixtureProperties.py +++ b/tutorials/mixtureProperties.py @@ -33,6 +33,7 @@ line_thickness = 4 marker_size = 75 + # Line specifications for plotting def linespecs(name): if (name == "decane") or (name == "posf10325"): @@ -100,7 +101,7 @@ def getPredAndData(fuel_name, prop_name): pred = np.zeros_like(T_pred) for i in range(0, len(T_pred)): - Y_li = fuel.Y_0 + Y_li = fuel.Y_0 if prop_name == "Density": # Mixture density (returns rho in kg/m^3) From 2cadf2a75239af6ace8eee009a252d2f84fc3f99 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Tue, 19 Aug 2025 09:26:28 -0600 Subject: [PATCH 18/20] Update docs --- docs/tutorials.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials.rst b/docs/tutorials.rst index 3a254b1..0e37b74 100644 --- a/docs/tutorials.rst +++ b/docs/tutorials.rst @@ -37,7 +37,7 @@ binary mixture of heptane and decane. The initial weight percentage composition heptane and 26.25% decane, and the group decomposition data is provided in the `groupDecompositionData `_ directory. The following tutorial is included in the `FuelLib/tutorials `_ -as `basic.py`. To begin, we will import the necessary modules and create a ``groupContribution`` object for the fuel "heptane-decane": +as ``basic.py``. To begin, we will import the necessary modules and create a ``groupContribution`` object for the two component fuel "heptane-decane": .. code-block:: python From 0ffd8c890e4fe45e17f318030dce81d059df9083 Mon Sep 17 00:00:00 2001 From: dmontgomeryNREL Date: Tue, 19 Aug 2025 09:45:40 -0600 Subject: [PATCH 19/20] Add citation for SWR-25-25 --- README.md | 10 +++++++++- docs/index.rst | 26 ++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fa6260e..0580f33 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,20 @@ # FuelLib FuelLib (SWR-25-26) utilizes the tables and functions of the Group Contribution Method (GCM) as proposed by [Constantinou and Gani (1994)](https://doi.org/10.1002/aic.690401011) and [Constantinou, Gani and O'Connel (1995)](https://doi.org/10.1016/0378-3812(94)02593-P), with additional physical properties discussed in [Govindaraju & Ihme (2016)](https://doi.org/10.1016/j.ijheatmasstransfer.2016.06.079). The code is based on Pavan B. Govindaraju's [Matlab implementation](https://github.com/gpavanb-old/GroupContribution) of the GCM, and has been expanded to include additional thermodynamic properties and mixture properties. The fuel library contains gas chromatography (GC x GC) data for a variety of fuels ranging from simple single component fuels to complex jet fuels. The GC x GC data for POSF jet fuels comes from [Edwards (2020)](https://apps.dtic.mil/sti/pdfs/AD1093317.pdf). +## Citing this Work +If you use FuelLib in your research, please cite the following software record: + +~~~ +Montgomery, David, Appukuttan, Sreejith, Yellapantula, Shashank, Perry, Bruce, and Binswanger, Adam. FuelLib (Fuel Library) [SWR-25-26]. Computer Software. https://github.com/NREL/FuelLib. USDOE Office of Energy Efficiency and Renewable Energy (EERE), Office of Sustainable Transportation. Vehicle Technologies Office (VTO). 27 Feb. 2025. Web. doi:10.11578/dc.20250317.1. +~~~ + ## Python Environment The following conda environment is required to run this code: ~~~ conda create --name fuellib-env matplotlib pandas scipy black ~~~ -## Running the code +## Running the Code This repository includes multiple tutorials of ways to use FuelLib. We recommend starting with the basic tutorial, `tutorials/basic.py`, which is documented at [https://nrel.github.io/FuelLib/tutorials.html#introduction]. The script `tutorials/mixtureProperties.py` calculates a given mixture's density, viscosity and vapor pressure from GC x GC data. The results are plotted against data from NIST and [Edwards (2020)](https://apps.dtic.mil/sti/pdfs/AD1093317.pdf). # Contributing @@ -33,3 +40,4 @@ cd FuelLib/docs/ sphinx-build -M html . _build/ ~~~ You should now be able to view the html by opening `FuelLib/docs/_build/html/index.html` in a web browser. + diff --git a/docs/index.rst b/docs/index.rst index bcd920e..bca4088 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,12 +1,12 @@ Welcome to FuelLib's documentation! =================================== -The **Fuel Library** for advanced research on evaporation **(FuelLib)** utilizes +The **Fuel Library (FuelLib)** utilizes the group contribution method (GCM), as developed by Constantinou and Gani\ :footcite:p:`constantinou_new_1994` \ :footcite:p:`constantinou_estimation_1995` in the mid-1990s with additions from Govindaraju and Ihme (2016)\ :footcite:p:`govindaraju_group_2016`, to provide a systematic approach for estimating the thermodynamic properties of -pure organic compounds. If you need help or have questions, please use the +pure organic compounds and mixtures of organic compounds. If you need help or have questions, please use the `GitHub discussion `_. The source code is available at `github.com/NREL/FuelLib `_. @@ -15,6 +15,28 @@ The source code is available at `github.com/NREL/FuelLib Date: Tue, 19 Aug 2025 10:37:54 -0600 Subject: [PATCH 20/20] Fix spelling errors --- Export4Pele.py | 2 +- docs/tutorials.rst | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Export4Pele.py b/Export4Pele.py index 6dd7650..6e84e4a 100644 --- a/Export4Pele.py +++ b/Export4Pele.py @@ -128,7 +128,7 @@ def export_pele( "Lv_stp": fuel.Lv_stp * conv_Lv, } ) - # Get the proerty names + # Get the property names prop_names = ["MW", "Tc", "Pc", "Vc", "Tb", "omega", "Vm_stp", "Cp_stp", "Lv_stp"] formatted_names = { diff --git a/docs/tutorials.rst b/docs/tutorials.rst index 0e37b74..7e5ffa2 100644 --- a/docs/tutorials.rst +++ b/docs/tutorials.rst @@ -53,7 +53,7 @@ as ``basic.py``. To begin, we will import the necessary modules and create a ``g # Create a groupContribution object for the fuel "heptane-decane" fuel = fl.groupContribution("heptane-decane") -Upon intitialization, the ``groupContribution`` object will read the initial weight +Upon initialization, the ``groupContribution`` object will read the initial weight percentage composition and group decomposition data from the specified files. The object stores vectors of the calculated fundamental properties at standard conditions for each component of the fuel as described in :ref:`eq-GCM-properties`. For example, we can display the fuel name, the components in the fuel, the initial composition, and the critical temperature for each component: @@ -174,7 +174,7 @@ file to the specific case directory and include the following line in your Pele Note: for liquid fuels from FuelLib with greater than 30 components, the script will assume that all liquid fuel species deposit to the same gas-phase species, namely the name of the fuel. This is designed for conventional jet fuels such as POSF10325, where there are -67 liquid fuel species correpsonding to the GCxGC data, but only a single +67 liquid fuel species corresponding to the GCxGC data, but only a single gas-phase mechanism species, "POSF10325". For example: :: python Export4Pele.py --fuel_name posf10325 @@ -252,7 +252,7 @@ mixture property predictions for a given fuel over a specified temperature range - Thermal conductivity .. warning:: - Mixture properties for critical temperature, latent heat, and specifc heat are provided by :ref:`conventional-mixing-rules` and need additional validation. + Mixture properties for critical temperature, latent heat, and specific heat are provided by :ref:`conventional-mixing-rules` and need additional validation. This example walks through the process and the available options for exporting GCM-based mixture properties for "posf10325", which is conventional Jet-A, using the ``Export4Converge.py`` script.