* fichier : choctvf.dgibi * *************************** choctvf.dgibi *********************** * * *---------------------------------------------------------------- * Thermique transitoire : Choc thermique, test élémentaire pour * de l'opérateur LAPN en formulation Volumes Finis. *---------------------------------------------------------------- * Référence : J.F.Saccadura, Initiation aux transferts thermiques * Paris, Technique et Documentation, 1982. *---------------------------------------------------------------- * Auteur : F.DABBENE (TTMF) 12/97 *---------------------------------------------------------------- * *--------------------------------- * Calcul de la solution analytique *--------------------------------- * 'DEBP' TANAL GEO*MAILLAGE TPS*FLOTTANT T0*FLOTTANT T1*FLOTTANT LONG*FLOTTANT VK*FLOTTANT EM*FLOTTANT ; * N = 1 ; XX YY = 'COOR' GEO ; TEMPFA = 'MANU' 'CHPO' GEO 1 'SCAL' 0.D0 ; 'REPE' BOUCINT 45 ; TERMESIN = XX * N * 180. / LONG ; TERMESIN = 'SIN' TERMESIN ; TERMEXP = (N * PI / LONG)** 2. * (-1.) * TPS * VK / EM ; TERMEXP = 'EXP' TERMEXP ; TEMPFA = TEMPFA + ( TERMESIN * TERMEXP / N ) ; N = N + 2 ; 'FIN' BOUCINT ; TEMPFA = ( TEMPFA * (T0 - T1) * 4. / PI ) + T1 ; 'FINP' TEMPFA ; * *----------------- * Post traitement *----------------- * 'DEBP' POPO AZ/'TABLE' ; TTRA = (RV . 'PASDETPS' . 'NUPASDT' - 1) * (RV . 'INCO' . 'DT') ; RV . 'PASDETPS' . 'NUPASDT' = RV . 'PASDETPS' . 'NUPASDT' + 1 ; * PANAC1 = TANAL (HYTOT . 'CENTRE') TTRA T0 T1 L VK C ; *PANAC1 = 'NOMC' 'SCAL' PANAC1 ; EPR1 = RV . 'INCO' . 'CN' ; ERRP1 = 'ABS' (EPR1 - PANAC1) ; MAXTP1 = 'MAXI' ERRP1 ; 'SI' ('EGA' GRAPH 'O') ; AV3 = 'EVOL' 'ROUG' 'CHPO' PANAC1 'SCAL' DRMIC ; LTITRE = 'TEXT' 'Temperature au temps' TTRA ; 'TITR' LTITRE ; EV3 = 'EVOL' 'VERT' 'CHPO' EPR1 SCAL DRMIC ; 'DESS' (EV3 'ET' AV3) ; LTITRE = 'TEXT' 'Erreur Absolue T temps' TTRA ; 'TITR' LTITRE ; EV4 = 'EVOL' 'VERT' 'CHPO' ERRP1 'SCAL' DRMIC ; 'DESS' EV4 ; 'FINS' ; 'FINPROC' MAXTP1 ; * *------------------ * Options générales *------------------ * GRAPH = 'N' ; 'OPTI' 'DIME' 2 'ELEM' 'QUA4' 'ECHO' 0 'TRAC' 'PS' ; * * *========= * MAILLAGE *========= * * *- Création des points supports des DROITES * INUMX = 25 ; INUMY = 1 ; INUM1 = INUMX - 1 ; L = 2. ; LS2 = L / 2.D0 ; DX1 = LS2 / INUMX / 2. ; H = 1. ; X0 = DX1 * -1. ; X1 = X0 + LS2 ; Y0 = 0. ; Y1 = Y0 + H ; Y01 = Y0 + Y1 * 0.5 ; XG = X0 + DX1 ; XD = X1 - DX1 ; * A1 = X0 Y0 ; A3 = X1 Y0 ; D1 = X0 Y1 ; D3 = X1 Y1 ; C1 = XG Y01 ; C3 = XD Y01 ; * *- Création des DROITES frontieres * DRBAS = A3 'DROI' INUMX A1 ; DRGAU = A1 'DROI' INUMY D1 ; DRHAU = D1 'DROI' INUMX D3 ; DRDRO = D3 'DROI' INUMY A3 ; PELIM = DX1 / (5. * INUMX) ; * *- Creation maillage GEOMETRIQUE * PTOT2 = 'DALL' DRBAS DRGAU DRHAU DRDRO ; * *- Creation maillage HYBRIDE y compris sous-objets (cond. limites) * HYTOT = 'DOMA' PTOT2 PELIM ; EXT1 = 'MANU' 'POI1' C1 ; DRMIC = C1 'DROI' INUM1 C3 ; 'ELIM' HYTOT.CENTRE DRMIC PELIM ; * * *================ * INITIALISATIONS *================ * * T0 : Température au temps t=0 régnant uniformément sur la barre * T1 : Température au temps t>0 régnant aux extrémités de la barre * C : Coefficient d'emmagasinement * VK : Valeur du coefficient de conductivité thermique * TMAX : Temps final * TSUP : Temps pour conditions aux limites * DT : Pas de temps * T0 = 0.D0 ; T1 = 100.D0 ; C = 1.D0 ; VK = 1.D0 ; TMIN = 0.D0 ; TMAX = 100.0D0 ; DT = 0.005D0 ; * RV = 'EQEX' HYTOT 'ITMA' 20 'OPTI' 'VF' 'IMPL' 'CENTREE' 'ZONE' HYTOT 'OPER' 'POPO' 'ZONE' HYTOT 'OPER' 'DFDT' C 'CNM' 'DT' 'INCO' 'CN' 'ZONE' HYTOT 'OPER' 'LAPN' 'DIFF' 'INCO' 'CN' 'CLIM' 'CN' 'TIMP' EXT1 T1 ; VEXT1 = 'MANU' 'CHPO' EXT1 1 'SCAL' T1 ; RV . 'INCO' = TABLE 'INCO' ; RV . 'INCO' . 'CN' = 'KCHT' HYTOT 'SCAL' 'CENTRE' T0 VEXT1 ; RV . 'INCO' . 'CNM' = 'KCHT' HYTOT 'SCAL' 'CENTRE' T0 VEXT1 ; RV . 'INCO' . 'DIFF' = 'KCHT' HYTOT 'SCAL' 'CENTRE' VK ; RV . 'INCO' . 'DT' = DT ; * *======================= * Resolution transitoire *======================= * EXEC RV ; * * *- Gestion ERREUR * Ecart inferieur à EPS0 degré à t=0.1 sec * VAL1 = POPO (RV.'1POPO') ; 'MESS' 'MAX ERREUR ABSOLUE :' VAL1 ; * EPS0 = 1. ; LOG1 = VAL1 > EPS0 ; 'SI' ( LOG1 ) ; 'ERRE' 5 ; 'SINO' ; 'ERRE' 0 ; 'FINS' ; 'FIN' ;