* fichier :  dzvdp.dgibi
* -------------- VARI option DZVDP -------------------------------
* Test de l'opérateur VARI DZVDP(P,T)
* dervivee partielle du facteur de compressibilite de la vapeur
* d'eau par rapport a la pression
* Les données sont un FLOTTANT, un LISTREEL ou un CHPO
* notation : DT**** derivee partielle
* notation : DC**** derivee calculee par accroissement

'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
'OPTI' 'ECHO' 0 ;
DELTAT=0.1D0 ;
DELTAP=1000D0;
*---------------- FLOTTANT----------------------------------------
P1 = 1.0133D5 ;
T1=373.15 ; 
P2 = 5.021D5 ;
T2=425.15; 
P3 = 10.027D5;
T3=453.15 ; 

DTPOINT1 = VARI DZVDP P1 T1 ;
DTPOINT2 = VARI DZVDP P2 T2 ;
DTPOINT3 = VARI DZVDP P3 T3 ;

R2=(VARI ROVAP (P1+DELTAP) T1);
R1=(VARI ROVAP (P1) T1);
R4=(VARI ROVAP (P2+DELTAP) T2);
R3=(VARI ROVAP (P2) T2);
R6=(VARI ROVAP (P3+DELTAP) T3);
R5=(VARI ROVAP (P3) T3);

DCPOINT4=((VARI ZVAP R2 T1)-(VARI ZVAP R1 T1))/DELTAP;
DCPOINT5=((VARI ZVAP R4 T2)-(VARI ZVAP R3 T2))/DELTAP;
DCPOINT6=((VARI ZVAP R6 T3)-(VARI ZVAP R5 T3))/DELTAP;
*----------------- LISTREEL----------------------------------------

T1 = 'PROG' 373.15D0 425.15D0 453.15D0 ;
P1 = 'PROG' 1.0133D5 5.021D5 10.027D5 ;
DELTAP2 = 'PROG' 1000D0 1000D0 1000D0 ;
DELTAT2 = 'PROG' 0.1D0 0.1D0 0.1D0 ;
R6= VARI ROVAP P1 T1;
R7 = VARI ROVAP (P1+DELTAP2) T1 ;
DTLIST1 = VARI DZVDP P1 T1 ;

DCLIST1= ((VARI ZVAP (R7) (T1))-(VARI ZVAP R6 T1))/DELTAP2;
*-----------------CHAMPOINT-----------------------------------------
P11 = 1.0133D5 0. ;
P22 = 5.021D5 0. ;
P33 = 10.027D5 0. ;
P11P33 = P11 'DROI' 1 P22 'DROI' 1 P33 ;
P11P33_1 = CHAN 'POI1' P11P33 ;
CT1= MANU 'CHPO' P11P33_1 'REAL' T1 ;
CP1= MANU 'CHPO' P11P33_1 'REAL' P1;
CP2 = MANU 'CHPO' P11P33_1 'REAL' (P1+DELTAP2);
R8= VARI ROVAP CP1 CT1 ;
R9 = VARI ROVAP CP2 CT1 ;
DCCHPO1= ((VARI ZVAP R9 CT1)-(VARI ZVAP R8 CT1))/DELTAP;
DTCHPO1 = VARI DZVDP CP1 CT1 ;
*--------------------------------------------------------------------
*----RESULTATS ET STOCKAGES DES DONNEES------------------
*----------extraction des listreal-----------------------
LPOINT1=  'EXTR' DTLIST1 1 ;
LPOINT2 = 'EXTR' DTLIST1 2 ;
LPOINT3=  'EXTR' DTLIST1 3 ;
LPOINT4 = 'EXTR' DCLIST1 1 ;
LPOINT5 = 'EXTR' DCLIST1 2 ;
LPOINT6=  'EXTR' DCLIST1 3 ;
*----------extraction des champoints---------------------
CPOINT4 = 'EXTR' DCCHPO1 'REAL' P11 ;
CPOINT5 = 'EXTR' DCCHPO1 'REAL' P22 ;
CPOINT6 = 'EXTR' DCCHPO1 'REAL' P33 ;
CPOINT1 = 'EXTR' DTCHPO1 'REAL' P11 ;
CPOINT2 = 'EXTR' DTCHPO1 'REAL' P22 ;
CPOINT3=  'EXTR' DTCHPO1 'REAL' P33 ;
*-----------------------------------------------------------------------
*----CALCULS VALEURS REFERENCES XREFi CASTEM----------------------------
*-----------------------------------------------------------------------
XREF1=(DCPOINT4+LPOINT4+CPOINT4)/3;
XREF2=(DCPOINT5+LPOINT5+CPOINT5)/3;
XREF3=(DCPOINT6+LPOINT6+CPOINT6)/3;
*MESS DCPOINT4 LPOINT4 CPOINT4;


*------------CALCULS DES ERREURS---------------------------------------
CTRL1 = DTPOINT1+  LPOINT1 + CPOINT1 / 3.d0 - DTPOINT1 / DTPOINT1 ;
CTRL2 = DTPOINT2 + LPOINT2 + CPOINT2 / 3.d0 - DTPOINT2 / DTPOINT2 ;
CTRL3 = DTPOINT3 + LPOINT3 + CPOINT3 / 3.d0 - DTPOINT3 / DTPOINT2 ;
CTRL4 = CTRL1 + CTRL2 + CTRL3 ;
CTRL5 = DTPOINT1 + LPOINT1 + CPOINT1 / 3.d0 - XREF1 / XREF1 ;
CTRL6 = DTPOINT2 + LPOINT2 + CPOINT2 / 3.d0 - XREF2 / XREF2 ;
CTRL7 = DTPOINT3 + LPOINT3 + CPOINT3 / 3.d0 - XREF3 / XREF3 ;
CTRL8 = CTRL5 + CTRL6 + CTRL7 ;
*-------------------------------------------> Affichage
'MESS' '     ' ;
'MESS' '     ' ;
'MESS' 'Pt 1  VARI DZVDP ----->' DTPOINT1 LPOINT1 CPOINT1 XREF1 ;
'MESS' 'Pt 2  VARI DZVDP ----->' DTPOINT2 LPOINT2 CPOINT2 XREF2 ;
'MESS' 'Pt 3  VARI DZVDP ----->' DTPOINT3 LPOINT3 CPOINT3 XREF3 ;
'MESS' '     ' ;
'MESS' 'Comparaison calculs rel.----->' CTRL4 ;
'MESS' 'Erreur rel. VDI         ----->' CTRL8 ;
'MESS' '     ' ;
'MESS' '     ' ;
'MESS' '     ' ;
'MESS' '     ' ;
'MESS' '     ' ;
*------------------------------------------> Compte-rendu et sortie
EPS4  = 1.E-14 ;
EPS8  = 5.E-4  ;
CTRL4 = ABS CTRL4 ;
CTRL8 = ABS CTRL8 ;
LOG4 = CTRL4 > EPS4 ;
LOG8 = CTRL8 > EPS8 ;
L0   = LOG4 'OU' LOG8 ;
'SI' L0        ;
   'ERREUR' 5  ;
'SINON'        ;
   'ERREUR' 0  ;
'FINSI'        ;
'FIN' ;
 

 

