diff --git a/pages/30_Water Dew Point.py b/pages/30_Water Dew Point.py index dbee991..45adc5b 100644 --- a/pages/30_Water Dew Point.py +++ b/pages/30_Water Dew Point.py @@ -51,7 +51,7 @@ st.divider() st.edited_dfTP = st.data_editor( - st.session_state.tp_data['Pressure (bara)'].dropna().reset_index(drop=True), + st.session_state.tp_data[['Pressure (bara)']].dropna().reset_index(drop=True), num_rows='dynamic', # Allows dynamic number of rows column_config={ 'Pressure (bara)': st.column_config.NumberColumn( @@ -68,27 +68,30 @@ # Check if water's MolarComposition[-] is greater than 0 water_row = st.edited_df[st.edited_df['ComponentName'] == 'water'] # Adjust 'ComponentName' and 'water' as necessary if not water_row.empty and water_row['MolarComposition[-]'].iloc[0] > 0: - neqsim_fluid = fluid_df(st.edited_df, lastIsPlusFraction=False, add_all_components=False).autoSelectModel() - results_list = [] - results_list2 = [] - pres_list = [] - fluid_results_list = [] - for pres in st.edited_dfTP.dropna(): - pressure = pres - pres_list.append(pressure) - neqsim_fluid.setPressure(pressure, 'bara') - results_list.append(hydt(neqsim_fluid)-273.15) - results_list2.append(waterdewt(neqsim_fluid)-273.15) - fluid_results_list.append(dataFrame(neqsim_fluid)) - st.session_state['tp_data'] = pd.DataFrame({ - 'Pressure (bara)': pres_list, # Default example pressure - 'Hydrate Temperature (C)': results_list, # Default temperature - 'Aqueous Temperature (C)': results_list2 # Default temperature - }) - st.session_state['tp_data'] = st.session_state['tp_data'].sort_values('Pressure (bara)') - st.success('Hydrate calculation finished successfully!') - combined_results = pd.concat(fluid_results_list, ignore_index=True) - + pressure_values = st.edited_dfTP['Pressure (bara)'].dropna() + if (pressure_values <= 0).any(): + st.error('Pressure must be greater than 0 bara. Please update the pressure inputs before running calculations.') + else: + neqsim_fluid = fluid_df(st.edited_df, lastIsPlusFraction=False, add_all_components=False).autoSelectModel() + results_list = [] + results_list2 = [] + pres_list = [] + fluid_results_list = [] + for pressure in pressure_values: + pres_list.append(pressure) + neqsim_fluid.setPressure(pressure, 'bara') + results_list.append(hydt(neqsim_fluid)-273.15) + results_list2.append(waterdewt(neqsim_fluid)-273.15) + fluid_results_list.append(dataFrame(neqsim_fluid)) + st.session_state['tp_data'] = pd.DataFrame({ + 'Pressure (bara)': pres_list, # Default example pressure + 'Hydrate Temperature (C)': results_list, # Default temperature + 'Aqueous Temperature (C)': results_list2 # Default temperature + }) + st.session_state['tp_data'] = st.session_state['tp_data'].sort_values('Pressure (bara)') + st.success('Hydrate calculation finished successfully!') + combined_results = pd.concat(fluid_results_list, ignore_index=True) + if st.session_state.get('refresh', True): st.edited_dfTP2 = st.data_editor( st.session_state.tp_data.dropna().reset_index(drop=True), @@ -114,7 +117,7 @@ plt.figure(figsize=(10, 5)) plt.plot(st.session_state['tp_data']['Hydrate Temperature (C)'], st.session_state['tp_data']['Pressure (bara)'], marker='o', linestyle='-',label="hydrate temperature") plt.plot(st.session_state['tp_data']['Aqueous Temperature (C)'], st.session_state['tp_data']['Pressure (bara)'], marker='x', linestyle='--',label="aqueous dew point") - + plt.title('Dew Point Lines') plt.ylabel('Pressure (bara)') plt.xlabel('Temperature (C)')