Files
pinn/fdm/app.py
T

56 lines
1.3 KiB
Python
Raw Normal View History

2026-05-13 21:21:53 +02:00
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from fdm.solver import solve
from fdm.visualizer import visualize_fdm
def print_header():
print("=" * 38)
print(" Heat Equation — FDM Solver")
print(" ∂T/∂t = α ∂²T/∂x²")
print("=" * 38)
def main_menu():
print("\nInitializing solver...")
print("Ready.\n")
T, x_vals, t_vals = None, None, None
while True:
print("\n" + "-" * 30)
print(" MAIN MENU")
print("-" * 30)
print("1. Risolvi")
print("2. Visualizza")
2026-05-13 21:21:53 +02:00
print("0. Esci")
print("-" * 30)
choice = input("Select an option (0-2): ").strip()
2026-05-13 21:21:53 +02:00
if choice == "1":
T, x_vals, t_vals = solve()
print(f"Soluzione completata. Shape T: {T.shape}")
print(f"T range: [{T.min():.2f}, {T.max():.2f}] °C")
elif choice == "2":
2026-05-13 21:21:53 +02:00
if T is None:
print("Eseguire prima l'opzione 1.")
else:
visualize_fdm(T, x_vals, t_vals)
elif choice == "0":
print("Uscita.")
sys.exit(0)
else:
print("Scelta non valida.")
if __name__ == "__main__":
print_header()
main_menu()