Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,5 +1,7 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
import math
|
|
|
|
|
|
|
| 3 |
|
| 4 |
# Function to calculate pipe diameter
|
| 5 |
def calculate_diameter(flow_rate, velocity):
|
|
@@ -9,6 +11,29 @@ def calculate_diameter(flow_rate, velocity):
|
|
| 9 |
diameter = math.sqrt(4 * flow_rate / (math.pi * velocity))
|
| 10 |
return diameter
|
| 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
# Streamlit App
|
| 13 |
def main():
|
| 14 |
# Set the page configuration with a title, icon, and layout style
|
|
@@ -34,6 +59,10 @@ def main():
|
|
| 34 |
st.write(f"The recommended pipe diameter is: **{diameter:.2f} meters**")
|
| 35 |
else:
|
| 36 |
st.error("Please enter valid values for flow rate and velocity.")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
# Add some helpful info or tips
|
| 39 |
st.markdown("""
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import math
|
| 3 |
+
import matplotlib.pyplot as plt
|
| 4 |
+
import numpy as np
|
| 5 |
|
| 6 |
# Function to calculate pipe diameter
|
| 7 |
def calculate_diameter(flow_rate, velocity):
|
|
|
|
| 11 |
diameter = math.sqrt(4 * flow_rate / (math.pi * velocity))
|
| 12 |
return diameter
|
| 13 |
|
| 14 |
+
# Function to plot the graph
|
| 15 |
+
def plot_diameter_graph():
|
| 16 |
+
# Define a range of flow rates (Q) and velocities (v)
|
| 17 |
+
flow_rate_values = np.linspace(0.01, 1.0, 100) # Range of flow rates (0.01 to 1.0 m³/s)
|
| 18 |
+
velocity_values = np.linspace(0.1, 5.0, 50) # Range of velocities (0.1 to 5.0 m/s)
|
| 19 |
+
|
| 20 |
+
# Create a meshgrid for the flow rates and velocities
|
| 21 |
+
flow_rate_grid, velocity_grid = np.meshgrid(flow_rate_values, velocity_values)
|
| 22 |
+
|
| 23 |
+
# Calculate the pipe diameter for each combination of flow rate and velocity
|
| 24 |
+
diameter_values = np.sqrt(4 * flow_rate_grid / (np.pi * velocity_grid))
|
| 25 |
+
|
| 26 |
+
# Plotting the graph
|
| 27 |
+
fig, ax = plt.subplots(figsize=(10, 6))
|
| 28 |
+
cp = ax.contourf(flow_rate_grid, velocity_grid, diameter_values, cmap='viridis')
|
| 29 |
+
fig.colorbar(cp, ax=ax, label='Pipe Diameter (m)')
|
| 30 |
+
ax.set_xlabel('Flow Rate (m³/s)')
|
| 31 |
+
ax.set_ylabel('Velocity (m/s)')
|
| 32 |
+
ax.set_title('Pipe Diameter vs. Flow Rate and Velocity')
|
| 33 |
+
|
| 34 |
+
# Display the plot in Streamlit
|
| 35 |
+
st.pyplot(fig)
|
| 36 |
+
|
| 37 |
# Streamlit App
|
| 38 |
def main():
|
| 39 |
# Set the page configuration with a title, icon, and layout style
|
|
|
|
| 59 |
st.write(f"The recommended pipe diameter is: **{diameter:.2f} meters**")
|
| 60 |
else:
|
| 61 |
st.error("Please enter valid values for flow rate and velocity.")
|
| 62 |
+
|
| 63 |
+
# Show the graphical visualization of pipe diameter vs flow rate and velocity
|
| 64 |
+
st.subheader("Graphical Visualization")
|
| 65 |
+
plot_diameter_graph()
|
| 66 |
|
| 67 |
# Add some helpful info or tips
|
| 68 |
st.markdown("""
|