Télécharger konv_scal_impl3d.dgibi
* fichier : konv_scal_impl3d.dgibi ************************************************************************ ************************************************************************ *********************************************************** *********************************************************** **** APPROCHE VF "Cell-Centred Formulation" pour le **** **** transport des scalaires **** **** OPERATEURS PRET, KONV **** **** Implicit: calcul du jacobien du residu **** **** **** **** Methodes: UPWIND, CENTERED **** **** **** **** A. BECCANTINI SFME/LMTF DECEMBRE 2001 **** *********************************************************** *********************************************************** ***************************************************** ***************************************************** ******** PROCEDURES ********************************* ***************************************************** ***************************************************** * * Derivé partielle du residu en un point par rapport * aux variable en un autre point * * PPRIM = point ou est localisé la variable primale * PDUAL = point ou est localisé la variable duale * MOTPRI = nom de la composante concernante la variable primale * MOTDUA = nom de la composante concernante la variable duale ELT1 = 'MANUEL' 'POI1' PPRIM ; 'REPETER' BL1 NDIM ; MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ; 1 MOTCEL 0.0 'NATURE' 'DISCRET') ; 'FIN' BL1 ; SCAL = 'EXTRAIRE' D_DMOT PDUAL MOTDUA ; 'FINPROC' SCAL ; PPRIM*'POINT' PDUAL*'POINT' * PPRIM = point ou est localisé la variable primale * PDUAL = point ou est localisé la variable duale * MOTPRI = nom de la composante concernante la variable primale * MOTDUA = nom de la composante concernante la variable duale * Le valeur dans l'état non-perturbé en PDUAL ; SNCEL = 'COPIER' SN ; $MODE SF UN ; VAL0 = 'EXTRAIRE' CHPRES0 PDUAL MOTDUA ; * On etabli la variable à perturber 'REPETER' BL1 NDIM ; MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ; 'SI' ('EGA' MOTCEL MOTPRI) ; ICEL = &BL1 ; 'QUITTER' BL1 ; 'FINSI' ; 'FIN' BL1 ; 'SI' (ICEL > NDIM) ; 'MESSAGE' 'Procedure JACNUM' ; 'MESSAGE' 'MOTPRI = ??? '; 'ERREUR' 21 ; 'FINSI' ; ELT1 = 'MANUEL' 'POI1' PPRIM ; '+' SN ; $MODE SF UN ; VAL1 = 'EXTRAIRE' CHPRES1 PDUAL MOTDUA ; 'FINPROC' ((VAL1 '-' VAL0) '/' EPSILON) ; ***************************************************** ***************************************************** ******** FIN PROCEDURES ***************************** ***************************************************** ***************************************************** ***************************************************** * *** GRAPH * GRAPH = FAUX ; * GRAPH = VRAI ; ERRTOL = 1.0D-6 ; *************************** ***** DOMAINE SPATIAL **** *************************** *************************** ***** DOMAINE SPATIAL **** *************************** A0 = 0.0D0 0.0D0 0.0D0; A1 = 1.0D0 0.0D0 0.0D0; A2 = 1.0D0 1.0D0 0.0D0; A3 = 0.0D0 1.0D0 0.0D0; SUR1 = 'MANUEL' 'QUA4' A0 A1 A2 A3 ; DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET' DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ET' DOM10 'ET' DOM11 'ET' DOM12 'ET' DOM13 'ET' DOM14 'ET' DOM15 'ET' DOM16 'ET' DOM17 'ET' DOM18 'ET' DOM19 'ET' DOM20 'ET' DOM21 'ET' DOM22 'ET' DOM23 'ET' DOM24 'ET' DOM25 'ET' DOM26 'ET' DOM27 ; 'ELIMINATION' DOMTOT 0.0001 ; * **** Perturbation du domaine * 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET'); 'FORME' CHPBRU ; $DOMTOT = 'MODELISER' DOMTOT 'EULER'; $DOM6 = 'MODELISER' DOM6 'EULER'; $DOM9 = 'MODELISER' DOM9 'EULER'; MDOM6 = TDOM6 . 'QUAF' ; MDOM9 = TDOM9 . 'QUAF' ; MDOMTOT = TDOMTOT . 'QUAF' ; 'SI' GRAPH; 'FINSI' ; * ***** Densité, pression, gamma *********** * 'NOMC' 'RN' 'NATU' 'DISCRET' ; 'NOMC' 'PN' 'NATU' 'DISCRET' ; 'NOMC' 'GAMN' 'NATU' 'DISCRET' ; SN = RN 'ET' PN 'ET' GAMMAN ; * **** Vitesse aux faces * **************************************************** **************************************************** ******* Calcul du jacobien et du residu ********** **************************************************** **************************************************** * * JACO est le jacobien * * 'REPETER' BLMETO 2 ; 'SI' (&BLMETO 'EGA' 1) ; METO = 'UPWIND' ; 'FINSI' ; 'SI' (&BLMETO 'EGA' 2) ; METO = 'CENTERED' ; 'FINSI' ; 'MESSAGE' ; 'MESSAGE' ('CHAINE' 'METHODE = ' METO) ; 'MESSAGE' ; $DOMTOT SF UN ; $DOMTOT SF UN ; ***************************************************** ******* TEST1 *************************************** ***************************************************** * * On compare le jacobien et la variation du residu * en $DOM9 'CENTRE' par rapport à une variation * infinitésimal en $DOM9 'CENTRE' * * * Le jacobien exact. * DSiSj = d(RES_Si)/dSj (variable primale en PCEN9, variable duale en PCEN9) ; * ... 'SI' (('ABS' DS1S3) > ERRTOL) ; 'ERREUR' 5 ; 'FINSI' ; * Le jacobien numerique DELTA = 1.0D-3 ; DS1S1N = JACNUM $DOMTOT METO SN UN PCEN9 PCEN9 'RN' 'RN' DELTA ; DS2S2N = JACNUM $DOMTOT METO SN UN PCEN9 PCEN9 'PN' 'PN' DELTA ; DS3S3N = JACNUM $DOMTOT METO SN UN PCEN9 PCEN9 'GAMN' 'GAMN' DELTA ; (DS3S3 '-' DS3S3N)) 'ABS' ; 'SI' (ERRO > ERRTOL) ; 'ERREUR' 5 ; 'FINSI' ; ***************************************************** ***************************************************** ******* TEST2 *************************************** ***************************************************** ***************************************************** * * On compare le jacobien et la variation du residu * en $DOM9 'CENTRE' par rapport à une variation * infinitésimal en $DOM6 'CENTRE' * * * Le jacobien exact. * 'SI' (('ABS' DS1S3) > ERRTOL) ; 'ERREUR' 5 ; 'FINSI' ; * Le jacobien numerique DELTA = 1.0D-3 ; DS1S1N = JACNUM $DOMTOT METO SN UN PCEN6 PCEN9 'RN' 'RN' DELTA ; DS2S2N = JACNUM $DOMTOT METO SN UN PCEN6 PCEN9 'PN' 'PN' DELTA ; DS3S3N = JACNUM $DOMTOT METO SN UN PCEN6 PCEN9 'GAMN' 'GAMN' DELTA ; (DS3S3 '-' DS3S3N)) 'ABS' ; 'SI' (ERRO > ERRTOL) ; 'ERREUR' 5 ; 'FINSI' ; ***************************************************** ***************************************************** ******* TEST2 *************************************** ***************************************************** ***************************************************** * * On compare le jacobien et la variation du residu * en $DOM6 'CENTRE' par rapport à une variation * infinitésimal en $DOM9 'CENTRE' * * * Le jacobien exact. * 'SI' (('ABS' DS1S3) > ERRTOL) ; 'ERREUR' 5 ; 'FINSI' ; * Le jacobien numerique DELTA = 1.0D-3 ; DS1S1N = JACNUM $DOMTOT METO SN UN PCEN9 PCEN6 'RN' 'RN' DELTA ; DS2S2N = JACNUM $DOMTOT METO SN UN PCEN9 PCEN6 'PN' 'PN' DELTA ; DS3S3N = JACNUM $DOMTOT METO SN UN PCEN9 PCEN6 'GAMN' 'GAMN' DELTA ; (DS3S3 '-' DS3S3N)) 'ABS' ; 'SI' (ERRO > ERRTOL) ; 'ERREUR' 5 ; 'FINSI' ; 'FIN' BLMETO ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales