* fichier : fvol.dgibi
************************************************************************
* NOM : FVOL
* DESCRIPTION : Cas test : gravité : comparaison de deux méthodes
* de projection VPI1 et VPI2 éléments P2/P1 ou Q2/Q1
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 13/12/2002, version initiale
* HISTORIQUE : v1, 13/12/2002, 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 !
************************************************************************
* Insertion de procédures utilitaires
************************************************************************
* NOM : CALRESI
* DESCRIPTION :
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 13/12/2002, version initiale
* HISTORIQUE : v1, 13/12/2002, 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' CALRESI ;
'ARGUMENT' rvx*'TABLE ' ;
rv = rvx . 'EQEX' ;
rvi = rv . 'INCO' ;
rvr = rv . 'RESIDU' ;
* freq1 : fréquence d'impression
* freq2 : fréquence du stockage d'infos pour FILM et PHOTO
* eps0 : Sortie de la boucle de EQEX si convergence
freq1 = 'ENTIER' ('+' (rvx . 'ARG1') 0.001D0) ;
freq2 = 'ENTIER' ('+' (rvx . 'ARG2') 0.001D0) ;
eps0 = rvx . 'ARG3' ;
'SI' ('NON' ('EXISTE' rv 'CURRIT')) ;
currit = 0 ;
'SINON' ;
currit = rv . 'CURRIT' ;
'FINSI' ;
currit = '+' currit 1 ;
time0 = rv . 'PASDETPS' . 'TPS' ;
un = rvi . 'UN' ;
uex = rvr . 'UNEX' ;
unm1 = rvr . 'UNM1' ;
pn = 'NOMC' 'SCAL' (rvi . 'PRESSION') ;
pn = ELNOPRES pn ;
pex = rvr . 'PNEX' ;
pex = ELNOPRES pex ;
pnm1 = rvr . 'PNM1' ;
pnm1 = ELNOPRES pnm1 ;
*
mmu = rvr . 'MMU' ;
mmp = rvr . 'MMP' ;
*
* Calcul des résidus par rapport à la solution exacte
* Pour la vitesse, on norme par 1
* Pour la pression, on norme par ||pexact||
*
uinco = 'MOTS' 'UX' 'UY' ;
uinco2 = 'MOTS' '1UN' '2UN' ;
diffu = 'NOMC' uinco uinco2 ('-' un uex) ;
resiu = 'XTY' diffu ('KOPS' mmu '*' diffu) uinco2 uinco2 ;
pinco = 'MOTS' 'SCAL' ;
pinco2 = 'MOTS' 'PN' ;
diffp = 'NOMC' pinco pinco2 ('-' pn pex) ;
pex2 = 'NOMC' pinco pinco2 pex ;
resip = 'XTY' diffp ('KOPS' mmp '*' diffp) pinco2 pinco2 ;
normp = 'XTY' pex2 ('KOPS' mmp '*' pex2) pinco2 pinco2 ;
erru = '+' ('**' ('ABS' resiu) 0.5D0) 1.D-16 ;
errp = '+' ('**' ('ABS' ('/' resip normp)) 0.5D0) 1.D-16 ;
*
* Calcul des erreurs relatives
*
diffru = 'NOMC' uinco uinco2 ('-' un unm1) ;
* 'MESSAGE' 'un' ;
* 'LISTE' un ;
* 'MESSAGE' 'unm1' ;
* 'LISTE' unm1 ;
* 'MESSAGE' 'diffru' ;
* 'LISTE' diffru ;
resiru = 'XTY' diffru ('KOPS' mmu '*' diffru) uinco2 uinco2 ;
diffrp = 'NOMC' pinco pinco2 ('-' pn pnm1) ;
resirp = 'XTY' diffrp ('KOPS' mmp '*' diffrp) pinco2 pinco2 ;
errrelu = '+' ('**' ('ABS' resiru) 0.5D0) 1.D-16 ;
errrelp = '+' ('**' ('ABS' ('/' resirp normp)) 0.5D0) 1.D-16 ;
*
'SI' ('EGA' (MODULO ('-' currit 1) freq1) 0) ;
titmess = 'CHAINE' 'FORMAT' formflot
'It=' currit ' ; erru=' erru ' ; errp=' errp
' ; errrelu=' errrelu ' ; errrelp=' errrelp ;
'MESSAGE' titmess ;
'FINSI' ;
rvr . 'IT' = 'ET' (rvr . 'IT') ('PROG' currit) ;
rvr . 'TI' = 'ET' (rvr . 'TI') ('PROG' time0) ;
rvr . 'ERU'= 'ET' (rvr . 'ERU') ('PROG' erru) ;
rvr . 'ERP'= 'ET' (rvr . 'ERP') ('PROG' errp) ;
rvr . 'ERRELU'= 'ET' (rvr . 'ERU') ('PROG' errrelu) ;
rvr . 'ERRELP'= 'ET' (rvr . 'ERP') ('PROG' errrelp) ;
*
'SI' ('EGA' (MODULO ('-' currit 1) freq2) 0) ;
rvf = rv . 'FILM' ;
dimtab = '+' ('DIME' rvf) 1 ;
rvf . dimtab = 'TABLE' ;
rvf . dimtab . 'IT' = currit ;
rvf . dimtab . 'TI' = time0 ;
rvf . dimtab . 'UN' = 'COPIER' un ;
rvf . dimtab . 'PN' = 'COPIER' pn ;
'FINSI' ;
*
rvr . 'UNM1' = 'COPIER' un ;
rvr . 'PNM1' = 'COPIER' pn ;
rv . 'CURRIT' = currit ;
mat1 chp1 = 'KOPS' 'MATRIK' ;
'RESPRO' mat1 chp1 ;
*
* End of procedure file CALRESI
*
'FINPROC' ;
************************************************************************
* NOM : ELNOPRES
* DESCRIPTION :
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 13/12/2002, version initiale
* HISTORIQUE : v1, 13/12/2002, 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' ELNOPRES ;
'ARGUMENT' pn*'CHPOINT ' ;
*
* Correction de la constante de pression
* A enlever quand tout ira bien
*
pvoul = 'EXTRAIRE' pexact 'SCAL' pmp1 ;
pcour = 'EXTRAIRE' pn 'SCAL' pmp1 ;
pn = '+' pn ('-' pvoul pcour) ;
*
*
*
pn2 = 'KCHT' $mt 'SCAL' kpres pn ;
'RESPRO' pn2 ;
*
* End of procedure file ELNOPRES
*
'FINPROC' ;
************************************************************************
* NOM : FILM
* DESCRIPTION : Affiche sous forme d'animation des infos stockées
* dans la table rvf
* On peut préciser un indice de début, un indice de fin
* et un pas pour n'afficher qu'une partie des informations
* contenues dans la table.
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 13/12/2002, version initiale
* HISTORIQUE : v1, 13/12/2002, 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' FILM ;
'ARGUMENT' rvf*'TABLE ' ;
'ARGUMENT' ndebu/'ENTIER ' ;
'ARGUMENT' nfin/'ENTIER ' ;
'ARGUMENT' ninter/'ENTIER ' ;
*
* Un champ nul pour les déformées
*
dxmt = 'MANUEL' 'CHPO' mt 2 'UX' 0.D0 'UY' 0.D0
'NATURE' 'DISCRET';
*
dimtab = 'DIME' rvf ;
liv = 'ET' ('EXISTE' ndebu) ('EXISTE' nfin) ;
'SI' (liv) ;
livok = 'ET' liv
('ET' ('<' ndebu nfin)
('ET' ('>EG' ndebu 1) ('<EG' nfin dimtab))
) ;
'FINSI' ;
lviv = 'ET' ('EXISTE' ninter) ('EXISTE' livok) ;
'SI' (lviv) ;
* On corrige nfin pour que MODULO (- nfin ndebu) ninter =0
npouet = '/' ('-' nfin ndebu) ninter ;
nfin = '+' ndebu ('*' npouet ninter) ;
'FINSI' ;
'SI' (liv) ;
'SI' (livok) ;
'SI' (lviv) ;
lindic = 'LECT' ndebu 'PAS' ninter nfin ;
'SINON' ;
lindic = 'LECT' ndebu 'PAS' 1 nfin ;
'FINSI' ;
'SINON' ;
'ERREUR' 'Bornes de l"intervalle incorrectes' ;
'FINSI' ;
'SINON' ;
lindic = 'LECT' 1 'PAS' 1 dimtab ;
'FINSI' ;
ladens = (** ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME'))) ;
*
* Détermination de l'échelle de vitesse
*
lemax = 'PROG' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lavit = rvf . idimt . 'UN' ;
lemax = 'ET' lemax ('PROG' ('MAXIMUM' lavit 'ABS')) ;
'FIN' iindic ;
echvit = 'MAXIMUM' lemax 'ABS' ;
uref = '/' ('*' ladens 4.0D0) echvit ;
*
* Animation de la vitesse
*
tabvit = 'TABLE' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lavit = rvf . idimt . 'UN' ;
* latem = rvf . idimt . 'TN' ;
vecvit = 'VECTEUR' lavit uref 'UX' 'UY' 'JAUN' ;
* defvit = 'DEFORME' mt dxmt 0.D0 vecvit latem ;
defvit = 'DEFORME' mt dxmt 0.D0 vecvit ;
tabvit . &iindic = defvit ;
'FIN' iindic ;
vitani = @STBL tabvit ;
titvit = 'CHAINE' 'FORMAT' formflot
'Vitesse ; echvit=' echvit titglob ;
'TRACER' vitani 'ANIME' 'TITR' titvit ;
'OUBLIER' tabvit ; 'MENAGE' ;
*
* Animation de la pression
*
isovorig = 'VALEUR' 'ISOV' ;
'OPTION' 'ISOV' 'SURF' ;
tabpre = 'TABLE' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lapre = ELNOPRES (rvf . idimt . 'PN') ;
* lapre = ('-' (ELNOPRES (rvf . idimt . 'PN')) (elnopres pexact)) ;
defpre = 'DEFORME' mt dxmt 0.D0 lapre ;
tabpre . &iindic = defpre ;
'FIN' iindic ;
preani = @STBL tabpre ;
titpre = 'CHAINE' 'FORMAT' formflot
'Pression' titglob ;
'TRACER' preani 'ANIME' 'TITR' titpre ;
'OUBLIER' tabpre ; 'MENAGE' ;
'OPTION' 'ISOV' isovorig ;
*
* End of procedure file FILM
*
'FINPROC' ;
************************************************************************
* NOM : MAILLAGE
* DESCRIPTION :
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 13/12/2002, version initiale
* HISTORIQUE : v1, 13/12/2002, 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' MAILLAGE ;
*
* Paramètres
*
*
* Valeurs possibles :
* typmail = 'TRIG' : maillage de triangles
* typmail = 'CARR' : maillage de carrés
'ARGUMENT' typmail*'MOT ' ;
*
* Génération du maillage
*
pA = 0.0D0 0.D0 ;
pB = 1.D0 0.D0 ;
pC = 1.D0 1.D0 ;
pD = 0.D0 1.D0 ;
nX = 3 ; nY = 3 ;
*nX = 1 ; nY = 1 ;
*
bas = 'DROIT' nX pA pB ;
dro = 'DROIT' nY pB pC ;
hau = 'DROIT' nX pC pD ;
gau = 'DROIT' nY pD pA ;
pourt = 'ET' ('ET' ('ET' bas dro) hau) gau ;
'SI' ('EGA' typmail 'TRIG') ;
'OPTION' 'ELEM' 'TRI3' ;
mt = 'SURFACE' pourt 'PLAN' ;
'FINSI' ;
'SI' ('EGA' typmail 'CARR') ;
'OPTION' 'ELEM' 'QUA4' ;
mt = 'DALLER' bas dro hau gau 'PLAN' ;
ladens = '**' ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME')) ;
ampbruit = (0.1 * ladens) ;
cnt = 'CONTOUR' mt ;
pmt = 'CHANGER' mt 'POI1' ;
pcnt= 'CHANGER' cnt 'POI1' ;
inmt= 'DIFF' pmt pcnt;
brbl1 = 'BRUIT' 'BLAN' 'GAUS' 0.D0 ampbruit inmt ;
brbl2 = 'BRUIT' 'BLAN' 'GAUS' 0.D0 ampbruit inmt ;
brbl = 'ET' ('NOMC' 'UX' brbl1) ('NOMC' 'UY' brbl2) ;
mt = 'PLUS' mt brbl;
'FINSI' ;
'RESPRO' mt ;
*
* End of procedure file MAILLAGE
*
'FINPROC' ;
************************************************************************
* NOM : MODULO
* DESCRIPTION : Calcule un entier modulo un autre...
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 15/10/2002, version initiale
* HISTORIQUE : v1, 15/10/2002, 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' MODULO ;
'ARGUMENT' i*'ENTIER' j*'ENTIER' ;
'SI' ('EGA' j 0) ;
'MESSAGE' 'Impossible de faire modulo 0' ;
'ERREUR' 5 ;
'SINON' ;
k=i '/' j ;
mod=i '-' ( k '*'j ) ;
'RESPRO' mod ;
'FINSI' ;
*
* End of procedure file MODULO
*
'FINPROC' ;
************************************************************************
* NOM : PHOTO
* DESCRIPTION : Trace des infos stockées dans la table rvf
* (comme la procédure FILM mais sans faire d'animations)
* On peut préciser un indice de début, un indice de fin
* et un pas pour n'afficher qu'une partie des informations
* contenues dans la table.
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 13/12/2002, version initiale
* HISTORIQUE : v1, 13/12/2002, 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' PHOTO ;
'ARGUMENT' rvf*'TABLE ' ;
'ARGUMENT' ndebu/'ENTIER ' ;
'ARGUMENT' nfin/'ENTIER ' ;
'ARGUMENT' ninter/'ENTIER ' ;
*
* Un champ nul pour les déformées
*
dxmt = 'MANUEL' 'CHPO' mt 2 'UR' 0.D0 'UZ' 0.D0
'NATURE' 'DISCRET';
*
dimtab = 'DIME' rvf ;
liv = 'ET' ('EXISTE' ndebu) ('EXISTE' nfin) ;
'SI' (liv) ;
livok = 'ET' liv
('ET' ('<' ndebu nfin)
('ET' ('>EG' ndebu 1) ('<EG' nfin dimtab))
) ;
'FINSI' ;
lviv = 'ET' ('EXISTE' ninter) ('EXISTE' livok) ;
'SI' (lviv) ;
* On corrige nfin pour que MODULO (- nfin ndebu) ninter =0
npouet = '/' ('-' nfin ndebu) ninter ;
nfin = '+' ndebu ('*' npouet ninter) ;
'FINSI' ;
'SI' (liv) ;
'SI' (livok) ;
'SI' (lviv) ;
lindic = 'LECT' ndebu 'PAS' ninter nfin ;
'SINON' ;
lindic = 'LECT' ndebu 'PAS' 1 nfin ;
'FINSI' ;
'SINON' ;
'ERREUR' 'Bornes de l"intervalle incorrectes' ;
'FINSI' ;
'SINON' ;
lindic = 'LECT' 1 'PAS' 1 dimtab ;
'FINSI' ;
ladens = (** ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME'))) ;
*
* Détermination de l'échelle de vitesse
*
lemax = 'PROG' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lavit = rvf . idimt . 'UN' ;
lemax = 'ET' lemax ('PROG' ('MAXIMUM' lavit 'ABS')) ;
'FIN' iindic ;
echvit = 'MAXIMUM' lemax 'ABS' ;
uref = '/' ('*' ladens 2.0D0) echvit ;
*
* Photos de la vitesse
*
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
letem = rvf . idimt . 'TI' ;
lavit = rvf . idimt . 'UN' ;
titvit = 'CHAINE' 'FORMAT' formflot
'Vitesse ; tps=' letem ;
* TRACVIT lavit titvit echvit ;
TRACVIT 0 lavit titvit ;
'FIN' iindic ;
*
* Photos de la pression
*
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
letem = rvf . idimt . 'TI' ;
lapre = ELNOPRES (rvf . idimt . 'PN') ;
titpre = 'CHAINE' 'FORMAT' formflot
'Pression ; tps=' letem ;
TRACCHPO 0 lapre titpre ;
'FIN' iindic ;
*
* End of procedure file PHOTO
*
'FINPROC' ;
************************************************************************
* NOM : RAFFMAIL
* DESCRIPTION :
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 14/10/2002, version initiale
* HISTORIQUE : v1, 14/10/2002, 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' RAFFMAIL ;
*
* Paramètres
*
*
* Valeurs possibles :
* mt : la maillage à raffiner
* nraff = i : raffinement de maillage i fois par dichotomie
'ARGUMENT' mt*'MAILLAGE' ;
'ARGUMENT' nraff*'ENTIER ' ;
'SI' ('>' nraff 0) ;
'REPETER' bcl nraff ;
_mt = 'CHANGER' mt 'QUAF' ;
$mt = 'MODELISER' _mt 'NAVIER_STOKES' 'MACRO' ;
mt = 'DOMA' $mt 'MAILLAGE' ;
'FIN' bcl ;
'FINSI' ;
'RESPRO' mt ;
*
* End of procedure file RAFFMAIL
*
'FINPROC' ;
************************************************************************
* NOM : TRACCHML
* DESCRIPTION : Trace un CHPOINT défini sur les centres des éléments
* (valeur constante par élément) avec titre optionnel
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 04/11/2002, version initiale
* HISTORIQUE : v1, 04/11/2002, 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' TRACCHML ;
'ARGUMENT' chml*'CHPOINT ' ;
'ARGUMENT' tit/'MOT ' ;
rescal = 'KCHA' $mt chml 'CHAM' ;
tituap = 'CHAINE' tit ' ' titglob ;
'TRACER' rescal modbid 'TITR' tituap ;
*
* End of procedure file TRACCHML
*
'FINPROC' ;
************************************************************************
* NOM : TRACCHPO
* DESCRIPTION : Tracé d'un chpoint avec titre optionnel.
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 14/10/2002, version initiale
* HISTORIQUE : v1, 14/10/2002, 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' TRACCHPO ;
'ARGUMENT' KK*'ENTIER' ;
'ARGUMENT' pn*'CHPOINT ' ;
'ARGUMENT' tit/'MOT ' ;
'SI' (EGA KK 0); KLIK = 'NCLK'; 'SINON' ; KLIK =TEXT ' ' ; 'FINSI';
'SI' ('EXISTE' tit) ;
titpn = 'CHAINE' 'FORMAT' formflot tit titglob ;
'SINON' ;
titpn = 'CHAINE' 'FORMAT' formflot 'PRES' titglob ;
'FINSI' ;
rescal = pn ;
'TRACER' rescal mt mt 'TITR' titpn nbisov KLIK;
*
* End of procedure file TRACCHPO
*
'FINPROC' ;
************************************************************************
* NOM : TRACVIT
* DESCRIPTION : Trace un champ vectoriel sous forme de flèches avec
* titre optionnel.
* On peut préciser une échelle pour les vitesses. Si on ne
* la précise pas, elle est calculée automatiquement
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 14/10/2002, version initiale
* HISTORIQUE : v1, 14/10/2002, 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' TRACVIT ;
'ARGUMENT' KK*'ENTIER' ;
'ARGUMENT' vit*'CHPOINT ' ;
'ARGUMENT' tit/'MOT ' ;
'ARGUMENT' echvit/'FLOTTANT' ;
ladens = ('**' ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME'))) ;
'SI' (EGA KK 0); KLIK = 'NCLK'; 'SINON' ; KLIK =TEXT ' ' ; 'FINSI';
'SI' ('NON' ('EXISTE' echvit)) ;
echvit = 'MAXIMUM' vit 'ABS' ;
'SINON' ;
echvit = 'ABS' echvit ;
'FINSI' ;
'SI' ('<' echvit 1.D-30) ;
echvit = 1.D0 ;
'FINSI' ;
uref = '/' ('*' ladens 2.0D0) echvit ;
vecvit = 'VECTEUR' vit uref 'UX' 'UY' 'JAUN' ;
'SI' ('EXISTE' tit) ;
titvit = 'CHAINE' 'FORMAT' formflot tit ' echvit=' echvit titglob ;
'SINON' ;
titvit = 'CHAINE' 'FORMAT' formflot 'VIT echvit=' echvit titglob ;
'FINSI' ;
'TRACER' vecvit mt 'TITR' titvit KLIK ;
*
* End of procedure file TRACVIT
*
'FINPROC' ;
*
************************************************************************
misaup = VRAI ;
post = VRAI ;
interact= VRAI ;
graph = VRAI ;
graph = FAUX ;
'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
'OPTION' 'ISOV' 'SULI' ;
nbisov = 15 ;
'SI' ('NON' interact) ;
'OPTION' 'TRAC' 'PSC' ;
'SINON' ;
'OPTION' 'TRAC' 'X' ;
'FINSI' ;
formflot ='(1PE9.2)' ;
******************************************************************
*
* Paramètres
*
*
* Valeurs possibles :
* ireso = 1 : méthode de projection VPI2
* ireso = 2 : méthode de projection VPI1
* typmail = 'TRIG' : maillage de triangles
* typmail = 'CARR' : maillage de carrés
* iraff = i : raffinement de maillage i fois par dichotomie
*lreso = 'LECT' 1 2 ;
*lmail = 'MOTS' 'TRIG' 'CARR' ;
*lraff = 'LECT' 0 PAS 1 3 ;
lreso = 'LECT' 1 2 ;
lmail = 'MOTS' 'TRIG' 'CARR';
lraff = 'LECT' 2 ;
lechvit = prog 7.e-4 7.e-4 5.e-5 5.e-5;
idsauv = 'CHAINE' 'projection' ;
titsauv = 'CHAINE' '/test4/gounand/validation/' idsauv '.sauv' ;
*
* Fin des paramètres
*
******************************************************************
'SI' ('OU' ('NON' post) misaup) ;
res = 'TABLE' ;
*
*
'REPETER' jreso ('DIME' lreso) ;
ireso = 'EXTRAIRE' lreso &jreso ;
res . ireso = 'TABLE' ;
*
'REPETER' jmail ('DIME' lmail) ;
typmail = 'EXTRAIRE' lmail &jmail ;
res . ireso . typmail = 'TABLE' ;
*
mt = MAILLAGE typmail ;
*
'REPETER' jraff ('DIME' lraff) ;
iraff = 'EXTRAIRE' lraff &jraff ;
res . ireso . typmail . iraff = 'TABLE' ;
******************************************************************
*
* Paramètres numériques
*
discr = 'QUAF' ;
kpres = 'MSOMMET' ;
*kpres = 'CENTREP1';
ksupg = 'CENTREE' ;
*
'SI' ('EGA' ireso 1) ;
kmeth = 'VPI1' ;
'FINSI' ;
'SI' ('EGA' ireso 2) ;
kmeth = 'VPI2' ;
'FINSI' ;
* titre global pour les dessins
titglob = 'CHAINE' ' ' typmail ' ' kmeth ' raf=' iraff ;
*
titdgibi = 'CHAINE' 'Cas test gravite seule' titglob ;
'MESSAGE' ('CHAINE' '********************************') ;
'MESSAGE' titdgibi ;
'MESSAGE' ('CHAINE' '********************************') ;
mt = RAFFMAIL mt iraff ;
* Tracé
*'SI' (graph) ;
* titgeo = 'CHAINE' 'Maillage ' 'NBPO=' ('NBNO' mt)
* ' NBELEM=' ('NBEL' mt) titglob ;
* 'TRACER' mt 'TITRE' titgeo ;
*'FINSI' ;
*
cmt = 'CONTOUR' mt ;
_mt = 'CHANGER' mt 'QUAF' ;
_cmt = 'CHANGER' cmt 'QUAF' ;
'ELIMINATION' ('ET' _mt _cmt) 1.D-5 ;
$mt = 'MODELISER' _mt 'NAVIER_STOKES' discr ;
$cmt = 'MODELISER' _cmt 'NAVIER_STOKES' discr ;
mp1 = 'ELEM' ('DOMA' $mt kpres) 1 ;
pmp1 = 'POIN' mp1 1 ;
*
*==========================================================
* Définition des équations vitesse, pression
*==========================================================
*
*
* Paramètres physiques et pas de temps
nu = 1.D0 ;
alph = -70.D0 ;
gx = 'COS' alph ;
gy = 'SIN' alph ;
*gx=0. ; gy = -1. ;
g = gx gy ;
ax = coor 1 mt ;
ay = coor 2 mt ;
fi1=(ax**5.) + (((ax*ay)**3.)*ax) + (((ax*ay)**2.)*ay) + (ay**4.);
fi1=ax ;
fi1 = kcht $mt scal sommet fi1 ;
*g = kops 'GRADS' fi1 $mt;
*trace (exco g ux);
*trace (exco g uy);
*opti donn 5 ;
* Solution exact
* Vitesse
uexact = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
mailp = 'DOMA' $mt kpres ;
xmp ymp = 'COORDONNEE' mailp ;
pexact = 'KCHT' $mt 'SCAL' kpres
('+' ('*' xmp gx) ('*' ymp gy)) ;
'SI' (graph) ;
rescal = uexact ;
tituap = 'CHAINE' 'Vitesse exacte';
TRACVIT 1 rescal tituap ;
rescal = ELNOPRES pexact ;
tituap = 'CHAINE' 'Pression exacte';
TRACCHPO 1 rescal tituap ;
'FINSI' ;
*
* Paramètres numériques
dt = 1.e-3 ;
npdt = 10 ;
*
nimpr = 1 ;
nfilm = 1 ;
nresi = 1.D-6 ;
*
'TEMPS' 'ZERO' ;
******************************************************************
*
* Paramètres
*
* Equations en vitesse
* ITMA : Nombre de pas de temps
* NITER : Nombre d'itérations internes
* OMEGA : Facteur de relaxation des itérations internes
* FIDT : Nombre maximum de pas de temps
*
rv = 'EQEX' 'ITMA' npdt 'NITER' 1 'FIDT' 1000 ;
rv = 'EQEX' rv
'OPTI' 'EF' ksupg 'IMPL' kpres
'ZONE' $mt 'OPER' 'CALRESI' nimpr nfilm nresi
'OPTI' 'EF' ksupg 'IMPL' kpres
'ZONE' $mt 'OPER' 'NS' 1. 'UN' nu g 'INCO' 'UN'
* 'ZONE' $mt 'OPER' 'TOIMP' g 'INCO' 'UN'
'OPTI' 'EF' ksupg 'IMPL' kpres
'ZONE' $mt 'OPER' 'DFDT' 1.D0 'UN' dt 'INCO' 'UN'
;
*
* Equation en pression avec condition de Dirichlet en un point
*
* Methode projection sans iterations internes
rvp = 'EQEX' 'OPTI' 'EF' ksupg 'IMPL' kpres
'ZONE' $mt 'OPER' 'KBBT' -1.D0 'INCO' 'UN' 'PN'
'CLIM' 'PN' 'TIMP' mp1 ('EXTRAIRE' pexact 'SCAL' pmp1)
;
*
* Conditions aux limites en vitesse
*
rv = 'EQEX' rv 'CLIM'
'UN' 'UIMP' ('DOMA' $cmt 'SOMMET') 0.D0
'UN' 'VIMP' ('DOMA' $cmt 'SOMMET') 0.D0
;
*
* Initialisation des champs (table INCO)
rv . 'INCO' = TABLE 'INCO' ;
rv . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
rv . 'INCO' . 'PN' = 'KCHT' $mt 'SCAL' kpres 0.D0 ;
rv . 'INCO' . 'PRESSION' = 'NOMC' 'PN'
('KCHT' $mt 'SCAL' kpres 0.D0) ;
*
* Champs supplémentaires pour la procédure CALRESI
rv . 'RESIDU' = 'TABLE' 'RESIDU' ;
* Champs
rv . 'RESIDU' . 'UNM1' = 'COPI' rv . 'INCO' . 'UN' ;
rv . 'RESIDU' . 'PNM1' = 'NOMC' 'SCAL' (rv . 'INCO' . 'PN') ;
rv . 'RESIDU' . 'UNEX' = 'COPI' uexact ;
rv . 'RESIDU' . 'PNEX' = 'COPI' pexact ;
* Matrices masse pour le calcul des résidus
rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
'ZONE' $mt 'OPER' 'DFDT' 1.D0 'UN' 1.D0 'INCO' 'UN' ;
rk . 'INCO' = TABLE 'INCO' ;
rk . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
toto mm = 'DFDT' (rk . '1DFDT') ;
rv . 'RESIDU' . 'MMU' = mm ;
$mt2 = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ;
rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
'ZONE' $mt2 'OPER' 'DFDT' 1.D0 'PN' 1.D0 'INCO' 'PN' ;
rk . 'INCO' = TABLE 'INCO' ;
rk . 'INCO' . 'PN' = 'KCHT' $mt2 'SCAL' 'SOMMET' 0.D0 ;
toto mm = 'DFDT' (rk . '1DFDT') ;
rv . 'RESIDU' . 'MMP' = mm ;
* Erreurs
rv . 'RESIDU' . 'IT' = 'PROG' ;
rv . 'RESIDU' . 'TI' = 'PROG' ;
rv . 'RESIDU' . 'ERU' = 'PROG' ;
rv . 'RESIDU' . 'ERP' = 'PROG' ;
rv . 'RESIDU' . 'ERRELU' = 'PROG' ;
rv . 'RESIDU' . 'ERRELP' = 'PROG' ;
* Infos supplémentaires pour les films
rv . 'FILM' = 'TABLE' ;
* Méthode d'inversion du problème en vitesse
rv . 'METHINV' . 'TYPINV' = 1 ;
rv . 'METHINV' . 'IMPINV' = 0 ;
rv . 'METHINV' . 'FCPRECT' = 1 ;
rv . 'METHINV' . 'FCPRECI' = 1 ;
*
* Méthode d'inversion du problème en pression
rvp . 'METHINV' . 'TYPINV' = 1 ;
rvp . 'METHINV' . 'IMPINV' = 0 ;
rvp . 'METHINV' . 'FCPRECT' = 1 ;
rvp . 'METHINV' . 'FCPRECI' = 1 ;
*
* Couplage vitesse/pression : Méthode de projection
rv . 'PROJ' = rvp ;
rv.'TYPROJ'=kmeth ;
*
*==========================================================
* Résolution
*==========================================================
*
EXEC rv ;
tcpu = 'TEMPS' 'NOEC' ;
tcpus = '/' ('FLOTTANT' tcpu) 100.D0 ;
rvi = rv . 'INCO' ;
rvr = rv . 'RESIDU' ;
*
* Résultats intéressants dans la table res
*
res . ireso . typmail . iraff . 'TCPU' = tcpus ;
res . ireso . typmail . iraff . 'MAILLAGE' = mt ;
res . ireso . typmail . iraff . 'MODELE' = $mt ;
res . ireso . typmail . iraff . 'IT' = rvr . 'IT' ;
res . ireso . typmail . iraff . 'ERU' = rvr . 'ERU' ;
res . ireso . typmail . iraff . 'ERP' = rvr . 'ERP' ;
res . ireso . typmail . iraff . 'ERU' = rvr . 'ERRELU' ;
res . ireso . typmail . iraff . 'ERP' = rvr . 'ERRELP' ;
res . ireso . typmail . iraff . 'VIT' = rvi . 'UN' ;
*
* Pression
pe = 'NOMC' 'SCAL' (rvi . 'PRESSION') ;
res . ireso . typmail . iraff . 'PRES' = pe ;
res . ireso . typmail . iraff . 'FILM' = rv . 'FILM' ;
Si graph ;
tituap = 'CHAINE' 'Vitesse' ;
TRACVIT 1 (rvi . 'UN') un tituap ;
tituap = 'CHAINE' 'Pression' ;
TRACCHPO 1 (ELNOPRES pe) tituap ;
*tituap = 'CHAINE' 'Pression' ;
*TRACCHPO ('-' (ELNOPRES pe) (ELNOPRES pexact)) tituap ;
*film (rv . 'FILM') ;
photo (rv . 'FILM') ;
Finsi ;
echvit = Maxi ((PSCAL (rvi . 'UN') (MOTS 'UX' 'UY')
(rvi . 'UN') (MOTS 'UX' 'UY'))**0.5);
nbk = &jmail + ((dime lreso)*(&jreso - 1));
mess ' ECHVIT= ' ECHVIT ' nbk=' nbk (extr lechvit nbk);
mess 'jraff= ' &jraff ' jmail=' &jmail ' jreso=' &jreso;
Si (ECHVIT > (extr lechvit nbk)); erreur 5 ; Finsi ;
'FIN' jraff ;
'FIN' jmail ;
'FIN' jreso ;
'FIN' jchoi ;
'SI' ('NON' misaup) ;
'OPTION' 'SAUV' titsauv ;
'SAUVER' ;
'FINSI' ;
'FINSI' ;
*
*
*==========================================================
* Post traitement
*==========================================================
'SI' ('OU' post misaup) ;
'SI' ('NON' misaup) ;
'OPTION' 'REST' titsauv ;
'RESTITUER' ;
'FINSI' ;
*
* Calcul des ordres
*
'REPETER' jchoi ('DIME' lchoi) ;
ichoi = 'EXTRAIRE' lchoi &jchoi ;
*
'REPETER' jreso ('DIME' lreso) ;
ireso = 'EXTRAIRE' lreso &jreso ;
*
'REPETER' jmail ('DIME' lmail) ;
typmail = 'EXTRAIRE' lmail &jmail ;
*
lechloc = 'PROG' ;
ltcpu = 'PROG' ;
lerrl2u = 'PROG' ;
lerrl2p = 'PROG' ;
lxreatt = 'PROG' ;
'REPETER' jraff ('DIME' lraff) ;
iraff = 'EXTRAIRE' lraff &jraff ;
*
******************************************************************
*
* Paramètres numériques
*
'SI' ('EGA' ichoi 1) ;
discr = 'MACRO' ;
kpres = 'CENTREP1' ;
'FINSI' ;
'SI' ('EGA' ichoi 2) ;
discr = 'QUAF' ;
kpres = 'CENTREP1' ;
'FINSI' ;
'SI' ('EGA' ichoi 3) ;
discr = 'QUAF' ;
kpres = 'MSOMMET' ;
'FINSI' ;
'SI' ('EGA' idcen 0) ;
ksupg = 'CENTREE' ;
'FINSI' ;
'SI' ('EGA' idcen 1) ;
ksupg = 'SUPG' ;
'FINSI' ;
*
'SI' ('EGA' ireso 1) ;
kmeth = 'IMPL' ;
'FINSI' ;
'SI' ('EGA' ireso 2) ;
kmeth = 'MOT' 'PROJ' ;
'FINSI' ;
'SI' ('EGA' ireso 3) ;
kmeth = 'MOT' 'PRIT' ;
'FINSI' ;
* titre global pour les dessins
titglob = 'CHAINE' ' ' typmail ' ' kmeth ' ' discr ' ' kpres ' ' ksupg
' raf=' iraff ;
titglo2 = 'CHAINE' ' ' typmail ' ' kmeth ' ' discr ' ' kpres ' ' ksupg ;
tcpu = res . ichoi . ireso . typmail . iraff . 'TCPU' ;
mt = res . ichoi . ireso . typmail . iraff . 'MAILLAGE' ;
$mt = res . ichoi . ireso . typmail . iraff . 'MODELE' ;
lit = res . ichoi . ireso . typmail . iraff . 'IT' ;
leru = res . ichoi . ireso . typmail . iraff . 'ERU' ;
lerp = res . ichoi . ireso . typmail . iraff . 'ERP' ;
un = res . ichoi . ireso . typmail . iraff . 'VIT' ;
pn = res . ichoi . ireso . typmail . iraff . 'PRES' ;
tfilm = res . ichoi . ireso . typmail . iraff . 'FILM' ;
evcf = res . ichoi . ireso . typmail . iraff . 'EVCF' ;
xrea = res . ichoi . ireso . typmail . iraff . 'XREATTAC' ;
* Quelques graphiques
*xeveru = lit ;
*yeveru = '/' ('LOG' leru) ('LOG' 10.D0) ;
*everu = 'EVOL' 'MANU' 'Iteration' xeveru 'Log Err L2 U' yeveru ;
*tituap = 'CHAINE' 'Conv. vitesse' titglob ;
*'DESSIN' everu 'TITR' tituap ;
*xeverp = lit ;
*yeverp = '/' ('LOG' lerp) ('LOG' 10.D0) ;
*everp = 'EVOL' 'MANU' 'Iteration' xeverp 'Log Err L2 P' yeverp ;
*tituap = 'CHAINE' 'Conv. pression' titglob ;
*'DESSIN' everp 'TITR' tituap ;
* Champ de déformée (pour l'échelle)
xmt ymt = 'COORDONNEE' ('DOMA' $mt 'SOMMET') ;
dxmt = 'ET' ('NOMC' 'UX' ('*' xmt 0.D0) 'NATURE' 'DISCRET')
('NOMC' 'UY' ('*' ymt 5.D0) 'NATURE' 'DISCRET') ;
orig = 'FORME' ;
'FORME' dxmt ;
tituap = 'CHAINE' 'Vitesse' ;
TRACVIT 0 un tituap ;
tituap = 'CHAINE' 'Pression' ;
TRACCHPO 0 pn tituap ;
*film tfilm ;
'FORME' orig ;
'DESSIN' evcf 'TITR' 'EVCF' 'TITX' 'X' 'TITY' 'CF' ;
chevcf = 'CHAINE' 'Abscisse reattac =' xrea ;
'MESSAGE' chevcf ;
'OPTION' 'DONN' 5 ;
*
'SI' ('>' ('DIME' lraff) 1) ;
echloc = '**' ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME')) ;
lechloc = 'ET' lechloc ('PROG' echloc) ;
ltcpu = 'ET' ltcpu ('PROG' tcpu) ;
lerrl2u = 'ET' lerrl2u ('PROG' ('EXTRAIRE' leru ('DIME' leru))) ;
lerrl2p = 'ET' lerrl2p ('PROG' ('EXTRAIRE' lerp ('DIME' lerp))) ;
lxreatt = 'ET' lxreatt ('PROG' xrea) ;
'FINSI' ;
'FIN' jraff ;
*
'SI' ('>' ('DIME' lraff) 1) ;
lechloc = '/' ('LOG' lechloc) ('LOG' 10.D0) ;
ltcpu = '/' ('LOG' ltcpu) ('LOG' 10.D0) ;
lerrl2u = '/' ('LOG' lerrl2u) ('LOG' 10.D0) ;
lerrl2p = '/' ('LOG' lerrl2p) ('LOG' 10.D0) ;
dimevo = 'DIME' lechloc ;
evtcpu = 'EVOL' 'MANU' lechloc ltcpu ;
everru = 'EVOL' 'MANU' lechloc lerrl2u ;
everrp = 'EVOL' 'MANU' lechloc lerrl2p ;
evxrea = 'EVOL' 'MANU' lechloc lxreatt ;
tab = 'TABLE' ;
tab . 'TITRE' = 'TABLE' ;
tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
tab . 'TITRE'. 1 = 'CHAINE' 'Tps CPU (s)' ;
evterrt = evtcpu ;
tituap = 'CHAINE' 'Tps CPU' titglo2 ;
'DESSIN' evterrt 'LEGE'
'TITR' tituap
'TITX' 'log h'
'TITY' 'log tcpu'
tab ;
tab = 'TABLE' ;
tab . 'TITRE' = 'TABLE' ;
tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
tab . 'TITRE'. 1 = 'CHAINE' 'Err. calculée' ;
evterru = everru ;
tituap = 'CHAINE' 'Err L2 U' titglo2 ;
'DESSIN' evterru 'LEGE'
'TITR' tituap
'TITX' 'log h'
'TITY' 'log errl2'
tab ;
tab = 'TABLE' ;
tab . 'TITRE' = 'TABLE' ;
tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
tab . 'TITRE'. 1 = 'CHAINE' 'Err. calculée' ;
evterrp = everrp ;
tituap = 'CHAINE' 'Err L2 P' titglo2 ;
'DESSIN' evterrp 'LEGE'
'TITR' tituap
'TITX' 'log h'
'TITY' 'log errl2'
tab ;
tab = 'TABLE' ;
tab . 'TITRE' = 'TABLE' ;
tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
tab . 'TITRE'. 1 = 'CHAINE' 'Xreattac' ;
evtxrea = evxrea ;
tituap = 'CHAINE' 'X reattac' titglo2 ;
'DESSIN' evtxrea 'LEGE'
'TITR' tituap
'TITX' 'log h'
'TITY' 'X reattac'
tab ;
* res . ichoi . ireso . typmail . 'ORDU' = orderru ;
* res . ichoi . ireso . typmail . 'ORDP' = orderrp ;
* res . ichoi . ireso . typmail . 'LMIERL2U' = 'MINIMUM' lerrl2u ;
* res . ichoi . ireso . typmail . 'LMIERL2P' = 'MINIMUM' lerrl2p ;
'FINSI' ;
'FIN' jmail ;
'FIN' jreso ;
'FIN' jchoi ;
*
* 2eme partie du post-traitement : affichage des ordres et min des
* erreurs L2 de façon claire avant inclusion dans LateX
* On affiche également vitesse et pression sur le maillage le plus fin
*
*'SI' ('>' ('DIME' lraff) 1) ;
**
*tittab = 'CHAINE' 'Methode'/1 'Ord. u '/31 'Ord. p'/41
* 'Lminerru'/51 'Lminerrp'/61 ;
*optecho = 'VALEUR' 'ECHO' ;
*'OPTION' 'ECHO' 0 ;
*'MESSAGE' tittab ;
**
*'REPETER' jreso ('DIME' lreso) ;
*ireso = 'EXTRAIRE' lreso &jreso ;
**
*'REPETER' jmail ('DIME' lmail) ;
*typmail = 'EXTRAIRE' lmail &jmail ;
**
*'REPETER' jchoi ('DIME' lchoi) ;
*ichoi = 'EXTRAIRE' lchoi &jchoi ;
**
** Paramètres numériques
**
*'SI' ('EGA' ichoi 1) ;
* discr = 'MACRO' ;
* kpres = 'CENTREP1' ;
*'FINSI' ;
*'SI' ('EGA' ichoi 2) ;
* discr = 'QUAF' ;
* kpres = 'CENTREP1' ;
*'FINSI' ;
*'SI' ('EGA' ichoi 3) ;
* discr = 'QUAF' ;
* kpres = 'MSOMMET' ;
*'FINSI' ;
*'SI' ('EGA' idcen 0) ;
* ksupg = 'CENTREE' ;
*'FINSI' ;
*'SI' ('EGA' idcen 1) ;
* ksupg = 'SUPG' ;
*'FINSI' ;
**
*'SI' ('EGA' ireso 1) ;
* kmeth = 'IMPL' ;
*'FINSI' ;
*'SI' ('EGA' ireso 2) ;
* kmeth = 'MOT' 'PROJ' ;
*'FINSI' ;
*'SI' ('EGA' ireso 3) ;
* kmeth = 'MOT' 'PRIT' ;
*'FINSI' ;
** titre global pour les dessins
*titglob = 'CHAINE' ' ' kmeth ' ' typmail ' ' discr ' ' kpres ;
*ordu = res . ichoi . ireso . typmail . 'ORDU' ;
*ordp = res . ichoi . ireso . typmail . 'ORDP' ;
*mleu = res . ichoi . ireso . typmail . 'LMIERL2U' ;
*mlep = res . ichoi . ireso . typmail . 'LMIERL2P' ;
*formf ='(F9.2)' ;
*titord = 'CHAINE' 'FORMAT' formf titglob/1 ordu/31 ordp/41
* mleu/51 mlep/61 ;
*'MESSAGE' titord ;
**'SI' (graph) ;
* maxraff = 'DIME' lraff ;
* imraff = 'EXTRAIRE' lraff maxraff ;
* mt = res . ichoi . ireso . typmail . imraff . 'MAILLAGE' ;
* $mt = res . ichoi . ireso . typmail . imraff . 'MODELE' ;
* rescal = res . ichoi . ireso . typmail . imraff . 'VIT' ;
* tituap = 'CHAINE' 'Vitesse maillage fin' ;
* TRACVIT rescal tituap ;
* rescal = res . ichoi . ireso . typmail . imraff . 'PRES' ;
* tituap = 'CHAINE' 'Pression maillage fin';
* TRACPRES rescal tituap ;
**'FINSI' ;
*'FIN' jchoi ;
*'FIN' jmail ;
*'FIN' jreso ;
**
*'OPTION' 'ECHO' optecho ;
**'SI' ('>' ('DIME' lraff) 1) ;
*'FINSI' ;
*'SI' (post) ;
'FINSI' ;
'OPTION' 'DONN' 5 ;
*
* End of dgibi file MARCHE_DESC
*
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer