* 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' ;
© Cast3M 2003 - All rights reserved.
Disclaimer