************************************************************************ * Exemple de calcul thermo-mécanique avec des maillages différents * * pour la mécanique et la thermique * * Projection des champs termiques/mécaniques via PASAPAS * * * * Diffusion de la température et dilatation thermique * * dans un barreau * * * * --> Calculs en dimension 1, 2 et 3 * * --> Comparaison des résultats avec le cas où les maillages * * thermique/mécanique sont identiques * * * ************************************************************************ ** Options générales du calcul OPTI 'ECHO' 1 ; itrac = FAUX ; ** Paramètres geométriques, matériaux et CL long = 1. ; haut = 0.1 ; tini = 0. ; timp = 500. ; lambda = evol manu 'T' (prog 0. 1.) 'K' (prog 60. 60.) ; cp = 800. ; rho = 7800. ; young = 200.E9 ; nu = 0.3 ; alpha = 1.E-4 ; ** Paramètre de calcul (temps final, pas de temps, maillage) tfin = 1.5E5 ; dt = 1.E4 ; nex = 30 ; ney = 4 ; nez = 4 ; dmail = haut / 2.5 ; OPTI 'DENS' dmail ; ************************************************************************ * C A L C U L 1 D * ************************************************************************ ** Options générales OPTI 'DIME' 1 'MODE' 'UNID' 'PLAN' 'ELEM' 'SEG3' ; ** Maillage pour la mécanique p1 = POIN 0. ; p2 = POIN long ; mailm = DROI nex p1 p2 ; ** Maillage pour la thermique OPTI 'ELEM' 'SEG3' ; p3 = POIN 0. ; p4 = POIN long ; mailt = DROI p3 p4 ; SI itrac ; TRAC mailm 'ELEM' 'TITR' '[1D] Maillage mecanique (SEG3)' ; TRAC mailt 'ELEM' 'TITR' '[1D] Maillage thermique (SEG3)' ; FINSI ; ** Modèles et matériaux mot = MODE mailt 'THERMIQUE' ; mat = MATE mot 'K' lambda 'C' cp 'RHO' rho 'TINI' tini ; mom = MODE mailm 'MECANIQUE' 'ELASTIQUE' 'PLASTIQUE' 'PARFAIT' ; mam = MATE mom 'YOUN' young 'NU' nu 'ALPH' alpha 'TREF' tini 'TALP' tini 'SIGY' 100.e6 ; mo = mot ET mom ; ma = mat ET mam ; ** Blocages clt = BLOQ 'T' p3 ; clm = BLOQ 'UX' p1 ; ** Chargement (température imposée) ft = DEPI clt timp ; ev = EVOL 'MANU' (PROG 0. tfin) (PROG 1. 1.) ; cha = CHAR 'TIMP' ft ev ; ** Résolution avec PASAPAS t = TABL ; t . 'MODELE' = mo ; t . 'CARACTERISTIQUES' = ma ; t . 'BLOCAGES_THERMIQUES' = clt ; t . 'BLOCAGES_MECANIQUES' = clm ; t . 'CHARGEMENT' = cha ; t . 'PROJECTION' = VRAI ; t . 'TEMPS_CALCULES' = PROG dt 'PAS' dt tfin ; *t . 'RELAXATION_THETA' = 0. ; PASAPAS t ; ** Calcul de la solution de référence motref = MODE mailm 'THERMIQUE' ; matref = MATE motref 'K' lambda 'C' cp 'RHO' rho 'TINI' tini ; momref = mom ; mamref = mam ; moref = motref ET momref ; maref = matref ET mamref ; cltref = BLOQ 'T' p1 ; clmref = clm ; ftref = DEPI cltref timp ; charef = CHAR 'TIMP' ftref ev ; tref = TABL ; tref . 'MODELE' = moref ; tref . 'CARACTERISTIQUES' = maref ; tref . 'BLOCAGES_THERMIQUES' = cltref ; tref . 'BLOCAGES_MECANIQUES' = clmref ; tref . 'CHARGEMENT' = charef ; tref . 'TEMPS_CALCULES' = PROG dt 'PAS' dt tfin ; PASAPAS tref ; ** Post-traitement * 1.1) évolutions temporelles de T et UX pour plusieurs points répartis le long du barreau lcoul = MOTS 'DEFA' 'ROUG' 'ORAN' 'VERT' 'BLEU' 'VIOL' ; ncour = DIME lcoul ; tvst = VIDE 'EVOLUTION' ; uvst = VIDE 'EVOLUTION' ; tleg = TABL ; tleg . 'TITRE' = TABL ; REPE bcour ncour ; xi = (((FLOT &bcour) - 1)) / ((FLOT ncour) - 1) * long ; pti = mailt POIN 'PROC' (POIN xi) ; pmi = mailm POIN 'PROC' (POIN xi) ; couli = EXTR lcoul &bcour ; tivst = EVOL couli 'TEMP' t 'TEMPERATURES' 'T' pti ; tivstref = EVOL couli 'TEMP' tref 'TEMPERATURES' 'T' pmi ; tvst = tvst ET tivst ET tivstref ; uivst = EVOL couli 'TEMP' t 'DEPLACEMENTS' 'UX' pmi ; uivstref = EVOL couli 'TEMP' tref 'DEPLACEMENTS' 'UX' pmi ; uvst = uvst ET uivst ET uivstref ; tleg . (2 * &bcour - 1) = 'MARQ LOSA NOLI' ; tleg . 'TITRE' . (2 * &bcour - 1) = CHAI 'Test en x =' xi ; tleg . 'TITRE' . (2 * &bcour) = CHAI 'Ref en x =' xi ; FIN bcour ; * 1.2) Affichage des courbes SI itrac ; DESS tvst 'TITR' '[1D] Temperature VS temps' 'LEGE' tleg ; DESS uvst 'TITR' '[1D] Deplacement VS temps' 'LEGE' tleg ; FINSI ; * 2.1) évolutions temporelles de T et UX à l'extrémité du barreau texvst = EVOL 'TEMP' t 'TEMPERATURES' 'T' p4 ; texvstref = EVOL 'TEMP' tref 'TEMPERATURES' 'T' p2 ; uexvst = EVOL 'TEMP' t 'DEPLACEMENTS' 'UX' p2 ; uexvstref = EVOL 'TEMP' tref 'DEPLACEMENTS' 'UX' p2 ; * 2.3) calcul d'une erreur à la solution de référence lzero = PROG 0. ; ltcal = (EXTR texvst 'ORDO') SAUF lzero ; ltref = (EXTR texvstref 'ORDO') SAUF lzero ; lucal = (EXTR uexvst 'ORDO') SAUF lzero ; luref = (EXTR uexvstref 'ORDO') SAUF lzero ; err1 = MAXI (ABS ((ltcal - ltref) / ltref)) ; err2 = MAXI (ABS ((lucal - luref) / luref)) ; MESS 'Grandeur calculee | Erreur relative max' ; MESS '---------------------------------------' ; MESS 'Temerature |' err1 ; MESS 'Deplacement |' err2 ; * 2.4) Affichage des courbes tleg . 'TITRE' . 1 = CHAI 'Test en x =' long ; tleg . 'TITRE' . 2 = CHAI 'Ref en x =' long ; SI itrac ; tit1 = CHAI '[1D] T extremite VS Temps - Erreur =' err1 ; DESS (texvst ET texvstref) 'TITR' tit1 'LEGE' tleg ; tit1 = CHAI '[1D] UX extremite VS Temps - Erreur =' err2 ; DESS (uexvst ET uexvstref) 'TITR' tit1 'LEGE' tleg ; FINSI ; * 2.5) Test de l'erreur et sortie si problème SI ((MAXI (PROG err1 err2)) > 1.E-6) ; ERREUR 'Probleme dans le calcul avec projection' ; FINSI ; ************************************************************************ * C A L C U L 2 D P L A N * ************************************************************************ ** Options générales OPTI 'DIME' 2 'ELEM' 'QUA8' 'MODE' 'PLAN' 'DEFO' ; ** Maillage pour la mécanique p1 = 0. 0. ; p2 = long 0. ; lbasm = DROI nex p1 p2 ; mailm = lbasm TRAN ney (0. haut) ; lgaum = mailm COTE 4 ; ** Maillage pour la thermique OPTI 'ELEM' 'TRI6' ; p3 = 0. 0. ; p4 = long 0. ; lbast = DROI p3 p4 ; mailt = lbast TRAN (0. haut) ; lgaut = mailt COTE 4 ; mailt = SURF (CONT mailt) ; SI itrac ; TRAC mailm 'TITR' '[2D] Maillage mecanique (QUA8)' ; TRAC mailt 'TITR' '[2D] Maillage thermique (TRI6)' ; FINSI ; ** Modèles et matériaux mot = MODE mailt 'THERMIQUE' ; mat = MATE mot 'K' lambda 'C' cp 'RHO' rho 'TINI' tini ; mom = MODE mailm 'MECANIQUE' ; mam = MATE mom 'YOUN' young 'NU' nu 'ALPH' alpha 'TREF' tini 'TALP' tini ; mo = mot ET mom ; ma = mat ET mam ; ** Blocages clt = BLOQ 'T' lgaut ; clm = (BLOQ 'UX' lgaum) ET (BLOQ 'UY' p1) ; ** Chargement (température imposée) ft = DEPI clt timp ; ev = EVOL 'MANU' (PROG 0. tfin) (PROG 1. 1.) ; cha = CHAR 'TIMP' ft ev ; ** Résolution avec PASAPAS t = TABL ; t . 'MODELE' = mo ; t . 'CARACTERISTIQUES' = ma ; t . 'BLOCAGES_THERMIQUES' = clt ; t . 'BLOCAGES_MECANIQUES' = clm ; t . 'CHARGEMENT' = cha ; t . 'PROJECTION' = VRAI ; t . 'TEMPS_CALCULES' = PROG dt 'PAS' dt tfin ; *t . 'RELAXATION_THETA' = 0. ; PASAPAS t ; ** Calcul de la solution de référence motref = MODE mailm 'THERMIQUE' ; matref = MATE motref 'K' lambda 'C' cp 'RHO' rho 'TINI' tini ; momref = mom ; mamref = mam ; moref = motref ET momref ; maref = matref ET mamref ; cltref = BLOQ 'T' lgaum ; clmref = clm ; ftref = DEPI cltref timp ; charef = CHAR 'TIMP' ftref ev ; tref = TABL ; tref . 'MODELE' = moref ; tref . 'CARACTERISTIQUES' = maref ; tref . 'BLOCAGES_THERMIQUES' = cltref ; tref . 'BLOCAGES_MECANIQUES' = clmref ; tref . 'CHARGEMENT' = charef ; tref . 'TEMPS_CALCULES' = PROG dt 'PAS' dt tfin ; PASAPAS tref ; ** Post-traitement * 1.1) évolutions temporelles de T et UX pour plusieurs points répartis le long du barreau lcoul = MOTS 'DEFA' 'ROUG' 'ORAN' 'VERT' 'BLEU' 'VIOL' ; ncour = DIME lcoul ; tvst = VIDE 'EVOLUTION' ; uvst = VIDE 'EVOLUTION' ; tleg = TABL ; tleg . 'TITRE' = TABL ; REPE bcour ncour ; xi = (((FLOT &bcour) - 1)) / ((FLOT ncour) - 1) * long ; pti = lbast POIN 'PROC' (xi 0.) ; pmi = lbasm POIN 'PROC' (xi 0.) ; couli = EXTR lcoul &bcour ; tivst = EVOL couli 'TEMP' t 'TEMPERATURES' 'T' pti ; tivstref = EVOL couli 'TEMP' tref 'TEMPERATURES' 'T' pmi ; tvst = tvst ET tivst ET tivstref ; uivst = EVOL couli 'TEMP' t 'DEPLACEMENTS' 'UX' pmi ; uivstref = EVOL couli 'TEMP' tref 'DEPLACEMENTS' 'UX' pmi ; uvst = uvst ET uivst ET uivstref ; tleg . (2 * &bcour - 1) = 'NOLI MARQ LOSA' ; tleg . 'TITRE' . (2 * &bcour - 1) = CHAI 'Test en x =' xi ; tleg . 'TITRE' . (2 * &bcour) = CHAI 'Ref en x =' xi ; FIN bcour ; * 1.2) Affichage des courbes SI itrac ; DESS tvst 'TITR' '[2D] Temperature VS temps' 'LEGE' tleg ; DESS uvst 'TITR' '[2D] Deplacement VS temps' 'LEGE' tleg ; FINSI ; * 2.1) évolutions temporelles de T et UX à l'extrémité du barreau texvst = EVOL 'TEMP' t 'TEMPERATURES' 'T' pti ; texvstref = EVOL 'TEMP' tref 'TEMPERATURES' 'T' pmi ; uexvst = EVOL 'TEMP' t 'DEPLACEMENTS' 'UX' pmi ; uexvstref = EVOL 'TEMP' tref 'DEPLACEMENTS' 'UX' pmi ; * 2.3) calcul d'une erreur à la solution de référence lzero = PROG 0. ; ltcal = (EXTR texvst 'ORDO') SAUF lzero ; ltref = (EXTR texvstref 'ORDO') SAUF lzero ; lucal = (EXTR uexvst 'ORDO') SAUF lzero ; luref = (EXTR uexvstref 'ORDO') SAUF lzero ; err1 = MAXI (ABS ((ltcal - ltref) / ltref)) ; err2 = MAXI (ABS ((lucal - luref) / luref)) ; MESS 'Grandeur calculee | Erreur relative max' ; MESS '---------------------------------------' ; MESS 'Temerature |' err1 ; MESS 'Deplacement |' err2 ; * 2.4) Affichage des courbes tleg . 'TITRE' . 1 = CHAI 'Test en x =' long ; tleg . 'TITRE' . 2 = CHAI 'Ref en x =' long ; SI itrac ; tit1 = CHAI '[2D] T extremite VS Temps - Erreur =' err1 ; DESS (texvst ET texvstref) 'TITR' tit1 'LEGE' tleg ; tit1 = CHAI '[2D] UX extremite VS Temps - Erreur =' err2 ; DESS (uexvst ET uexvstref) 'TITR' tit1 'LEGE' tleg ; FINSI ; * 2.5) Test de l'erreur et sortie si problème SI ((MAXI (PROG err1 err2)) > 1.E-6) ; ERREUR 'Probleme dans le calcul avec projection' ; FINSI ; ************************************************************************ * C A L C U L 3 D * ************************************************************************ ** Options générales OPTI 'DIME' 3 'ELEM' 'CU20' 'MODE' 'TRID' ; ** Maillage pour la mécanique p1 = 0. 0. 0. ; p2 = 0. haut 0. ; l12 = DROI ney p1 p2 ; sgaum = l12 TRAN nez (0. 0. haut) ; mailm = sgaum VOLU 'TRAN' nex (long 0. 0.) ; ** Maillage pour la thermique OPTI 'ELEM' 'TE10' ; p3 = 0. 0. 0. ; p4 = 0. haut 0. ; l34 = DROI p3 p4 ; sgaut = l34 TRAN (0. 0. haut) ; mailt = sgaut VOLU 'TRAN' (long 0. 0.) ; envt = CHAN 'TRI6' (ENVE mailt) ; mailt = VOLU envt ; SI itrac ; TRAC mailm 'TITR' '[3D] Maillage mecanique (CU20)' ; TRAC mailt 'TITR' '[3D] Maillage thermique (TE10)' ; FINSI ; ** Modèles et matériaux mot = MODE mailt 'THERMIQUE' ; mat = MATE mot 'K' lambda 'C' cp 'RHO' rho 'TINI' tini ; mom = MODE mailm 'MECANIQUE' ; mam = MATE mom 'YOUN' young 'NU' nu 'ALPH' alpha 'TREF' tini 'TALP' tini ; mo = mot ET mom ; ma = mat ET mam ; ** Blocages clt = BLOQ 'T' sgaut ; clm = (BLOQ 'UX' sgaum) ET (BLOQ 'UY' 'UZ' p1) ET (BLOQ 'UZ' p2) ; ** Chargement (température imposée) ft = DEPI clt timp ; ev = EVOL 'MANU' (PROG 0. tfin) (PROG 1. 1.) ; cha = CHAR 'TIMP' ft ev ; ** Résolution avec PASAPAS t = TABL ; t . 'MODELE' = mo ; t . 'CARACTERISTIQUES' = ma ; t . 'BLOCAGES_THERMIQUES' = clt ; t . 'BLOCAGES_MECANIQUES' = clm ; t . 'CHARGEMENT' = cha ; t . 'PROJECTION' = VRAI ; t . 'TEMPS_CALCULES' = PROG dt 'PAS' dt tfin ; *t . 'RELAXATION_THETA' = 0. ; PASAPAS t ; ** Calcul de la solution de référence motref = MODE mailm 'THERMIQUE' ; matref = MATE motref 'K' lambda 'C' cp 'RHO' rho 'TINI' tini ; momref = mom ; mamref = mam ; moref = motref ET momref ; maref = matref ET mamref ; cltref = BLOQ 'T' sgaum ; clmref = clm ; ftref = DEPI cltref timp ; charef = CHAR 'TIMP' ftref ev ; tref = TABL ; tref . 'MODELE' = moref ; tref . 'CARACTERISTIQUES' = maref ; tref . 'BLOCAGES_THERMIQUES' = cltref ; tref . 'BLOCAGES_MECANIQUES' = clmref ; tref . 'CHARGEMENT' = charef ; tref . 'TEMPS_CALCULES' = PROG dt 'PAS' dt tfin ; PASAPAS tref ; ** Post-traitement * 1.1) évolutions temporelles de T et UX pour plusieurs points répartis le long du barreau lcoul = MOTS 'DEFA' 'ROUG' 'ORAN' 'VERT' 'BLEU' 'VIOL' ; ncour = DIME lcoul ; tvst = VIDE 'EVOLUTION' ; uvst = VIDE 'EVOLUTION' ; tleg = TABL ; tleg . 'TITRE' = TABL ; REPE bcour ncour ; xi = (((FLOT &bcour) - 1)) / ((FLOT ncour) - 1) * long ; pti = mailt POIN 'PROC' (xi 0. 0.) ; pmi = mailm POIN 'PROC' (xi 0. 0.) ; couli = EXTR lcoul &bcour ; tivst = EVOL couli 'TEMP' t 'TEMPERATURES' 'T' pti ; tivstref = EVOL couli 'TEMP' tref 'TEMPERATURES' 'T' pmi ; tvst = tvst ET tivst ET tivstref ; uivst = EVOL couli 'TEMP' t 'DEPLACEMENTS' 'UX' pmi ; uivstref = EVOL couli 'TEMP' tref 'DEPLACEMENTS' 'UX' pmi ; uvst = uvst ET uivst ET uivstref ; tleg . (2 * &bcour - 1) = 'NOLI MARQ LOSA' ; tleg . 'TITRE' . (2 * &bcour - 1) = CHAI 'Test en x =' xi ; tleg . 'TITRE' . (2 * &bcour) = CHAI 'Ref en x =' xi ; FIN bcour ; * 1.2) Affichage des courbes SI itrac ; DESS tvst 'TITR' '[3D] Temperature VS temps' 'LEGE' tleg ; DESS uvst 'TITR' '[3D] Deplacement VS temps' 'LEGE' tleg ; FINSI ; * 2.1) évolutions temporelles de T et UX à l'extrémité du barreau texvst = EVOL 'TEMP' t 'TEMPERATURES' 'T' pti ; texvstref = EVOL 'TEMP' tref 'TEMPERATURES' 'T' pmi ; uexvst = EVOL 'TEMP' t 'DEPLACEMENTS' 'UX' pmi ; uexvstref = EVOL 'TEMP' tref 'DEPLACEMENTS' 'UX' pmi ; * 2.3) calcul d'une erreur à la solution de référence lzero = PROG 0. ; ltcal = (EXTR texvst 'ORDO') SAUF lzero ; ltref = (EXTR texvstref 'ORDO') SAUF lzero ; lucal = (EXTR uexvst 'ORDO') SAUF lzero ; luref = (EXTR uexvstref 'ORDO') SAUF lzero ; err1 = MAXI (ABS ((ltcal - ltref) / ltref)) ; err2 = MAXI (ABS ((lucal - luref) / luref)) ; opti echo 0 ; saut 1 lign ; MESS 'Grandeur calculee | Erreur relative max' ; MESS '---------------------------------------' ; MESS 'Temerature |' err1 ; MESS 'Deplacement |' err2 ; saut 1 lign ; opti echo 1 ; * 2.4) Affichage des courbes tleg . 'TITRE' . 1 = CHAI 'Test en x =' long ; tleg . 'TITRE' . 2 = CHAI 'Ref en x =' long ; SI itrac ; tit1 = CHAI '[3D] T extremite VS Temps - Erreur =' err1 ; DESS (texvst ET texvstref) 'TITR' tit1 'LEGE' tleg ; tit1 = CHAI '[3D] UX extremite VS Temps - Erreur =' err2 ; DESS (uexvst ET uexvstref) 'TITR' tit1 'LEGE' tleg ; FINSI ; * 2.5) Test de l'erreur et sortie si problème SI ((MAXI (PROG err1 err2)) > 5.E-6) ; ERREUR 'Probleme dans le calcul avec projection' ; FINSI ; FIN ;