* fichier : ccar_forc1.dgibi ************************************************************************ ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : VALREL * DESCRIPTION : Calcul d'une valeur relative * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 16/12/2004, version initiale * HISTORIQUE : v1, 16/12/2004, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * 'DEBPROC' VALREL ; 'ARGUMENT' val*'FLOTTANT' ; 'ARGUMENT' valref*'FLOTTANT' ; * 'SI' ('<' ('ABS' valref) 1.D-10) ; echref = 1.D0 ; 'SINON' ; echref = valref ; 'FINSI' ; * valabs = '/' val echref; * 'RESPRO' valabs ; * * End of procedure file VALREL * 'FINPROC' ; * * Tracé des vitesses * 'DEBPROC' TRACVIT ; 'ARGUMENT' rvx*'TABLE' ; nuit = rv . 'NUITER' ; chv = rv . 'INCO' . 'UN' ; maxv = 'MAXIMUM' chv 'ABS' ; 'SI' ('<' maxv 1.D-8) ; maxv = 1.D0 ; 'FINSI' ; echvit = maxv ; vref = '/' ('*' echmvi 2.D0) echvit ; * Vecteur unité 'NATURE' 'DISCRET' ; vecvit = vecvit1 'ET' vecvit2 ; tit = 'CHAINE' 'Vitesse ; nuiter=' nuit ' ; echvit=' echvit ; 'RESPRO' mat chpo ; 'FINPROC' ; * * Stratégie de pas de temps automatique et de gestion de * la non-linéarité * 'DEBPROC' STRANLIN ; 'ARGUMENT' rvx*'TABLE' ; nuit = rv . 'NUITER' ; chv = rv . 'INCO' . 'UN' ; 'SI' ('EGA' nuit 1) ; rv . 'UI' = 'COPIER' chv ; rv . 'UIP' = 'COPIER' chv ; 'SINON' ; chvi = rv . 'UIP' ; dchv = '-' chv chvi ; rv . 'UIP' = 'COPIER' chv ; ndui = VALREL ('MAXIMUM' dchv) ('MAXIMUM' chv) ; * 'MESSAGE' ('CHAINE' 'ndui = ' ndui) ; tes1 = ('EGA' nuit nitermax) ; tes2 = ('<' ndui cvgnlin) ; quitnlin = 'OU' tes1 tes2 ; 'SI' quitnlin ; 'SI' tes2 ; ifmul = '/' ndui objdv ; ifmul = '+' ifmul 1.D-10 ; fmul = '/' 1.D0 ifmul ; 'SI' ('>' fmul fmdt) ; fmul = fmdt ; 'FINSI' ; 'SI' ('<' fmul ('/' 1.D0 fmdt)) ; fmul = '/' 1.D0 fmdt ; 'FINSI' ; 'SINON' ; fmul = fredt ; 'FINSI' ; * 'MESSAGE' ('CHAINE' 'fmul=' fmul) ; rv . 'INCO' . 'DT' = '*' fmul (rv . 'INCO' . 'DT') ; rv . 'STOPITER' = VRAI ; * tps = rv . 'PASDETPS' . 'TPS' ; ittps = rv . 'PASDETPS' . 'NUPASDT' ; chvp = rv . 'UI' ; dchv = '-' chv chvp ; ndup = VALREL ('MAXIMUM' dchv) ('MAXIMUM' chv) ; test1 = 'OU' ('>' tps tfinal) ('>' ittps npdtmax) ; test2 = ('<' ndup dvfinal) ; quitpdt = 'OU' test1 test2 ; 'SI' quitpdt ; rv . 'STOPPDT' = VRAI ; rv . 'CVGOK' = test2 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'RESPRO' mat chpo ; 'FINPROC' ; ************************************************************************ * NOM : CCAR_FORC1 * DESCRIPTION : Cavité à paroi défilante avec cisaillement imposé * en surface. * Le but est de tester les nouveaux indices de exec : * STOPPDT, STOPITER et NUITER * * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 13/12/2006, version initiale * HISTORIQUE : v1, 13/12/2006, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * interact = FAUX ; graph = FAUX ; * 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PS' ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; * * Stratégie pour le pas de temps et la non-linéarité * tfinal : temps d'arrêt * npdtmax : nombre de pas de temps maxi. * dvfinal : deltav d'arrêt * dtdeb : pas de temps de départ * fmdt : facteur de variation maxi du pas de temps * fredt : facteur de réduction du pas de temps si non convergence * sur la non-linéarité * objdv : variation voulue du champ de vitesse pour un pas de temps * fred : facteur de réduction du delta v pour les itérations * non-linéaires. * nitermax : nombre maxi d'itérations non-linéaires * omeg : sous-relaxation tfinal = 1000. ; npdtmax = 30 ; dvfinal = 1.D-5 ; dtdeb = 1.D-1 ; fmdt = 1.4D0 ; fredt = 0.5D0 ; objdv = 5.D-2 ; fred = 10. ; cvgnlin = '/' objdv fred ; nitermax = 10 ; omeg = 0.9 ; * * Maillage + discrétisation * nm = 10 ; disv = 'QUAF' ; disp = 'CENTREP1' ; dec = 'CENTREE' ; * * Physique * Re = 50. ; dif = '/' 1. Re ; * p0 = 0. 0. ; p1 = 1. 0. ; p2 = 1. 1. ; p3 = 0. 1. ; bas = 'DROIT' nm p0 p1 ; dro = 'DROIT' nm p1 p2 ; hau = 'DROIT' nm p2 p3 ; gau = 'DROIT' nm p3 p0 ; mt = 'DALLER' bas dro hau gau ; _mt = 'CHANGER' mt 'QUAF' ; $mt = 'MODELISER' _mt 'NAVIER_STOKES' disv ; $hau = 'MODELISER' hau 'NAVIER_STOKES' disv ; mp1 = 'MANUEL' ppres 'POI1' ; * * Discrétisation * * On met des entiers arbitrairement grands : * c'est la procédure STRANLIN qui s'occupe de gérer les itérations ngrand = 100000 ; * 'ZONE' $mt 'OPER' 'STRANLIN' ; 'SI' graph ; rv = 'EQEX' rv 'ZONE' $mt 'OPER' 'TRACVIT' ; 'FINSI' ; rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' dec disp 'ZONE' $mt 'OPER' 'NS' 1. 'UN' dif 'INCO' 'UN' 'OPTI' 'EF' 'IMPL' dec disp 'ZONE' $mt 'OPER' 'KBBT' 1. 'INCO' 'UN' 'PN' 'OPTI' 'EF' 'IMPL' 'CENTREE' disp rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' 'CENTREE' disp rv = 'EQEX' rv 'CLIM' 'UN' 'UIMP' (gau 'ET' bas 'ET' dro) 0. 'UN' 'VIMP' (gau 'ET' bas 'ET' dro 'ET' hau) 0. 'PN' 'TIMP' mp1 0. ; rv . 'INCO' = 'TABLE' 'INCO' ; rv . 'INCO' . 'DT' = dtdeb ; * EXEC rv ; * * * Post-traitement * * Tracés 'SI' graph ; vit = rv . 'INCO' . 'UN' ; nvit = '**' ('PSCAL' vit vit ncovit ncovit) 0.5 ; mvit = 'MAXIMUM' nvit ; cmt = 'CONTOUR' mt ; pre = rv . 'INCO' . 'PN' ; 'TRACER' prep mt cmt 'TITR' 'Pression' ; 'FINSI' ; * ok = rv . 'CVGOK' ; * 'SI' ('NON' ok) ; 'MESSAGE' ('CHAINE' 'Il ny a pas eu convergence') ; 'ERREUR' 5 ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'ECHO' 1 ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file CCAR_FORC1 * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales