usheikhzain/Computer_Aided_Design
0
1import streamlit as st2import math3 4# Streamlit UI Setup5st.set_page_config(page_title="Shell and Tube Heat Exchanger Design", layout="wide")6st.title("Shell and Tube Heat Exchanger Design Tool (Kern Method)")7 8# Sidebar Inputs9st.sidebar.header("Design Parameters")10 11# User Inputs12# Required temperature inputs13temp_in_shell = st.sidebar.number_input("Inlet Temperature (Shell Side) (°C)", min_value=0.0, value=25.0, step=0.5)14temp_out_shell = st.sidebar.number_input("Outlet Temperature (Shell Side) (°C)", min_value=0.0, value=50.0, step=0.5)15temp_in_tube = st.sidebar.number_input("Inlet Temperature (Tube Side) (°C)", min_value=0.0, value=60.0, step=0.5)16temp_out_tube = st.sidebar.number_input("Outlet Temperature (Tube Side) (°C)", min_value=0.0, value=40.0, step=0.5)17 18# Optional inputs with default assumptions19shell_diameter = st.sidebar.number_input("Shell Diameter (m)", min_value=0.1, value=0.5, step=0.01)20tube_diameter = st.sidebar.number_input("Tube Diameter (m)", min_value=0.01, value=0.02, step=0.001)21tube_length = st.sidebar.number_input("Tube Length (m)", min_value=0.1, value=2.0, step=0.1)22num_tubes = st.sidebar.number_input("Number of Tubes", min_value=1, value=50, step=1)23 24# Derived parameters25flow_rate_shell = st.sidebar.number_input("Flow Rate in Shell Side (kg/s)", min_value=0.1, value=1.0, step=0.1)26flow_rate_tube = st.sidebar.number_input("Flow Rate in Tube Side (kg/s)", min_value=0.1, value=1.0, step=0.1)27 28# Kern Method Calculations (Simplified Example)29def calculate_heat_transfer_kern():30 delta_t_shell = temp_out_shell - temp_in_shell31 delta_t_tube = temp_in_tube - temp_out_tube32 if delta_t_shell != delta_t_tube:33 lmtd = (delta_t_shell - delta_t_tube) / math.log(delta_t_shell / delta_t_tube)34 else:35 lmtd = delta_t_shell36 heat_transfer_area = num_tubes * tube_length * tube_diameter * math.pi37 overall_heat_transfer_coefficient = 500 # Assumed value in W/m²K38 heat_transfer = overall_heat_transfer_coefficient * heat_transfer_area * lmtd / 1000 # kW39 return heat_transfer40 41heat_transfer = calculate_heat_transfer_kern()42 43st.subheader("Design Summary")44 45st.write(f"Inlet Temperature (Shell Side): {temp_in_shell} °C")46st.write(f"Outlet Temperature (Shell Side): {temp_out_shell} °C")47st.write(f"Inlet Temperature (Tube Side): {temp_in_tube} °C")48st.write(f"Outlet Temperature (Tube Side): {temp_out_tube} °C")49st.write(f"Shell Diameter: {shell_diameter} m")50st.write(f"Tube Diameter: {tube_diameter} m")51st.write(f"Tube Length: {tube_length} m")52st.write(f"Number of Tubes: {num_tubes}")53st.write(f"Heat Transfer (Kern Method): {heat_transfer:.2f} kW")54 