header blog

Blog

Storie di innovazione e facili tutorial per conoscere il mondo dell'opensource

TUTORIAL #1 - Tempra di soluzione di una lega di alluminio (quenching) con Code-Aster


Nel primo tutorial viene trattato il tema delle analisi termiche con il software Code-Aster (http://code-aster.org). L'analisi è contestualizzata nello studio del raffreddamento dopo solubilizzazione di un generico componente meccanico, in lega di alluminio, caratterizzato da una massa termica non bilanciata. Il componente esce dal forno alla temperatura di 500°C e viene quindi immerso in acqua non agitata alla temperatura di 50 °C.

SALOME MECA

Attraverso questo software opensource (http://www.code-aster.org/V2/spip.php?article303) liberamente scaricabile è possibile eseguire tutti gli step dell'analisi. Gli step si dividono in : definizione della geometria, calcolo della mesh, definizione delle istruzioni di calcolo, soluzione, post-processing.

MODULO GEOMETRIA

La geometria viene importata in file STEP, successivamente viene creato un gruppo di facce sul quale applicare le condizioni al contorno. Vengono selezionate le superfici di scambio termico pezzo-acqua, tale gruppo prende il nome di "quench"; la superficie inferiore del componente, appoggiato su una piastra di supporto durante il trattamento, non entra in contatto con l'acqua e pertanto al momento non viene inserita nel gruppo quench.

MODULO MESH

La mesh viene calcolato attraverso l'algoritmo NETGEN con elementi triangolari e quadrangolari, il dimensionamento degli elementi è stato eseguito in modo da avere almeno 3 nodi per ogni sezione. La mesh quindi viene esportata in formato MED

 

MODULO ASTER

Attraverso "Aster -> add study case" è possibile iniziare una nuova simulazione fornendo un file di comandi, il file .comm e un file con la mesh .med.

file .comm =

DEBUT();

#MESH IMPORT: lire_maillage per importare la mesh in formato MED

mesh=LIRE_MAILLAGE(FORMAT='MED',);

#MATERIAL DEFINITION / DEFINIZIONE MATERIALE
#funzione DEFI_MATERIAU. THER = thermal properties / proprietà termiche
#IMPORTANT !!!!  RHO_CP = density * specific heat  [J/(m^3 *K)]

mate=DEFI_MATERIAU(THER=_F(LAMBDA=140.0,
                           RHO_CP=2430000.0,),);

#MATERIAL DOMAIN / DEFINIZIONE DEL DOMINIO DEL MATERIALE
#command AFFE_MATERIAU . Define wich part (TOUT=OUI) of the mesh (MAILLAGE) is affected by material properties (MATER)

affe_t=AFFE_MATERIAU(MAILLAGE=mesh,
                     AFFE=_F(TOUT='OUI',
                             MATER=mate,),
                     AFFE_VARC=_F(TOUT='OUI',
                                  NOM_VARC='TEMP',
                                  VALE_REF=20.0,),);

#MODEL DEFINITION / DEFINIZIONE DEL MODELLO
#command AFFE_MODELE , definition of the phisical domain (PHENOMENE=thermique)

m_ter=AFFE_MODELE(MAILLAGE=mesh,
                  AFFE=_F(TOUT='OUI',
                          PHENOMENE='THERMIQUE',
                          MODELISATION='3D_DIAG',),);

#THERMAL BOUNDARY CONDITION / CONDIZIONI AL CONTORNO TERMICHE
#Boundary Exchange / Scambio Termico alla superficie (ECHANGE)
#In this water quenching case a static mean exchange coefficient (COEF_H) [W/(m^2 * K)]  is used with a defined water temperature (TEMP_EXT)

char_t=AFFE_CHAR_THER(MODELE=m_ter,
                      ECHANGE=_F(GROUP_MA='quench',
                                 COEF_H=3000.0,
                                 TEMP_EXT=50.0,),);

#TIME TRANSIENT DEFINITION / DEFINIZIONE DELLA LISTA DEGLI ISTANTI DI CALCOLO
#Starting from a list of number defined with DEFI_LIST_REEL in several intervals, the intervals have smaller timesteps during the firsts seconds of the simulation

tempo=DEFI_LIST_REEL(DEBUT=0.0,
                     INTERVALLE=(_F(JUSQU_A=1.0,
                                    NOMBRE=20,),
                                 _F(JUSQU_A=5.0,
                                    NOMBRE=20,),
                                 _F(JUSQU_A=20.0,
                                    NOMBRE=20,),),);

inst=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='AUTO',
                                 LIST_INST=tempo,
                                 PAS_MINI=0.005,
                                 PAS_MAXI=3.0,),
                    ADAPTATION=_F(),);

#THERMAL SOLVER / RISOLUZIONE DEL PROBLEMA TERMICO
#since this is a linear case the command for the resolution is THER_LINEARE, the initial state (ETAT_INIT) is defined in temperature (500 C)  at the time 0.0 (INST_ETAT_INIT)

t_lin=THER_LINEAIRE(MODELE=m_ter,
                    CHAM_MATER=affe_t,
                    EXCIT=_F(CHARGE=char_t,),
                    ETAT_INIT=_F(VALE=500.0,
                                 INST_ETAT_INIT=0.0,),
                    INCREMENT=_F(LIST_INST=inst,
                                 INST_INIT=0.0,),
                    SOLVEUR=_F(METHODE='MULT_FRONT',),
                    PARM_THETA=0.57,);

#SAVING RESULTS / SALVATAGGIO DEI RISULTATI
#The data calculated in THER_LINEAIRE, defined by the command RESU, are saved in MED format.

IMPR_RESU(FORMAT='MED',
          RESU=_F(MAILLAGE=mesh,
                  RESULTAT=t_lin,
                  TOUT_CHAM='OUI',),);

FIN();

Una volta definito il file di comando si lancia la simulazione attraverso il tasto play

MODULO DI POST PROCESSING (PARAVIEW)

I risultati ottenuti dal calcolo sono quindi importati nel modulo di paraview per essere analizzati.

0.5s
Distribuzione di temperatura a 0.5 secondi

 

sez0.5s
Vista in sezione dopo 0,5 secondi
2s
Distribuzione di temperatura dopo 2 secondi

 

4s
Distribuzione di temperatura dopo 4 secondi

Vuoi saperne di più su questo argomento?

 

pisa profile Andrea          

Vuoi approfondire le tematiche presentate nelle nostre simulazioni o nei casi studio? Contattaci liberamente per una discussione dettagliata o per qualsiasi domanda tu abbia.

Siamo pronti a offrirti il nostro supporto e la nostra esperienza.

Clicca qui per inviarci un messaggio e ti risponderemo al più presto.

L.THEME
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.