Aggiunge il solutore termico FEM sulla mesh shell e la sua animazione 3D

fem.py risolve l'equazione del calore transitoria sulla superficie media del
cilindro con elementi shell quadrangolari bilineari: la circonferenza diventa
una direzione risolta (niente più attenuazione gaussiana né sink di aletta),
mentre lo spessore è collassato perché con parete da 0.18 mm il numero di
Biot è ~1e-7. Eulero implicito con matrice costante fattorizzata una volta
per run; le matrici di elemento sono identiche per tutti gli elementi e
l'assemblaggio è vettorizzato.

plot_animazione_fem.py dipinge il campo calcolato direttamente sugli elementi
della mesh, con ombreggiatura ricavata dalla normale radiale perché i colori
delle facce cambiano a ogni fotogramma.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-03 09:29:35 +02:00
co-authored by Claude Opus 5
parent 14226234bd
commit 0f46f3d479
5 changed files with 515 additions and 2 deletions
+8
View File
@@ -6,6 +6,7 @@
# python main.py grafico # grafici del primo run generato
# python main.py anima # animazione 2D della sezione
# python main.py anima3d # animazione 3D isometrica del barattolo
# python main.py fem # animazione 3D del campo FEM sulla mesh shell
#
# Senza argomenti stampa l'elenco delle azioni disponibili.
@@ -43,6 +44,12 @@ def _azione_anima3d() -> None:
plot_animazione_3d.main()
def _azione_fem() -> None:
import plot_animazione_fem
plot_animazione_fem.main()
# Chiave da riga di comando -> (funzione, descrizione mostrata nell'help).
AZIONI = {
"mesh": (_azione_mesh, "Disegna la mesh a elementi shell della fascetta"),
@@ -50,6 +57,7 @@ AZIONI = {
"grafico": (_azione_grafico, "Grafici temperatura e flusso del primo run"),
"anima": (_azione_anima, "Animazione 2D del campo di temperatura nella sezione"),
"anima3d": (_azione_anima3d, "Animazione 3D isometrica del barattolo"),
"fem": (_azione_fem, "Animazione 3D del campo FEM sulla mesh a elementi shell"),
}