Télécharger konv_impl2ord_murs.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : konv_impl2ord_murs.dgibi
  2. ***********************************************************
  3. ***********************************************************
  4. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  5. **** solution des ****
  6. **** Equations d'Euler pour un gaz parfait ****
  7. **** OPERATEURS PRIM, PRET, KONV ****
  8. **** Implicit: calcul du jacobien du residu ****
  9. **** (2nd order consistent) ****
  10. **** ****
  11. **** Cas gaz monoespece, "calorically perfect" ****
  12. **** ****
  13. **** Methodes: VLH ****
  14. **** ****
  15. **** A. BECCANTINI DRN/DMT/SEMT/LTMF SEPT 2000 ****
  16. ***********************************************************
  17. ***********************************************************
  18.  
  19. 'OPTION' 'DIME' 2 ;
  20. 'OPTION' 'ELEM' QUA4 ;
  21. 'OPTION' 'ECHO' 0 ;
  22. 'OPTION' 'TRAC' 'X' ;
  23.  
  24. 'MESSAGE' 'A eliminer' ;
  25. 'FIN' ;
  26.  
  27. *
  28. *** GRAPH
  29. *
  30.  
  31. GRAPH = FAUX ;
  32. * GRAPH = VRAI ;
  33.  
  34. ERRTOL = 1.0D-3 ;
  35.  
  36. NOMRN = 'MOTS' 'SCAL' ;
  37. NOMVN = 'MOTS' 'UX' 'UY' ;
  38.  
  39. *****************************************************
  40. *****************************************************
  41. ******** PROCEDURES *********************************
  42. *****************************************************
  43. *****************************************************
  44.  
  45. *
  46. * Derivé partielle du residu en un point par rapport
  47. * aux variable en un autre point
  48. *
  49.  
  50. 'DEBPROC' JACOVA JACO*'MATRIK' $MODE*'MMODEL' LISTINCO*'LISTMOTS'
  51. PPRIM*'POINT' PDUAL*'POINT' MOTPRI*'MOT' MOTDUA*'MOT';
  52.  
  53. * PPRIM = point ou est localisé la variable primale
  54. * PDUAL = point ou est localisé la variable duale
  55. * MOTPRI = nom de la composante concernante la variable primale
  56. * MOTDUA = nom de la composante concernante la variable duale
  57.  
  58. ELT1 = 'MANUEL' 'POI1' PPRIM ;
  59. NDIM = 'DIME' LISTINCO ;
  60. CHPUN = 'MANUEL' 'CHPO' ELT1 1 MOTPRI 1.0 'NATURE' 'DISCRET' ;
  61. 'REPETER' BL1 NDIM ;
  62. MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ;
  63. CHPUN = CHPUN 'ET' ('MANUEL' 'CHPO' ('DOMA' $MODE 'CENTRE')
  64. 1 MOTCEL 0.0 'NATURE' 'DISCRET') ;
  65. 'FIN' BL1 ;
  66. D_DMOT = 'KOPS' JACO 'MULT' CHPUN ;
  67. SCAL = 'EXTRAIRE' D_DMOT PDUAL MOTDUA ;
  68.  
  69. 'FINPROC' SCAL ;
  70.  
  71.  
  72.  
  73. 'DEBPROC' JACNUM $MODE*'MMODEL' NOMMET*'MOT' RN*'CHPOINT' GN*'CHPOINT'
  74. RETN*'CHPOINT' GAMN*'CHPOINT' VNLIM*'CHPOINT'
  75. IARN*'CHPOINT' IAVN*'CHPOINT' IAPN*'CHPOINT'
  76. LISTINCO*'LISTMOTS' PPRIM*'POINT' PDUAL*'POINT'
  77. MOTPRI*'MOT' MOTDUA*'MOT' EPSILON*'FLOTTANT';
  78.  
  79. * PPRIM = point ou est localisé la variable primale
  80. * PDUAL = point ou est localisé la variable duale
  81. * MOTPRI = nom de la composante concernante la variable primale
  82. * MOTDUA = nom de la composante concernante la variable duale
  83.  
  84. * Le valeur dans l'état non-perturbé en PDUAL ;
  85.  
  86. RNCEL = 'COPIER' RN ;
  87. GNCEL = 'COPIER' GN ;
  88. RETNCEL = 'COPIER' RETN ;
  89.  
  90. VITESSE PRES = 'PRIM' 'PERFMONO' RNCEL GNCEL RETNCEL GAMN ;
  91.  
  92.  
  93. GRN IARN0 CHAMRN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE'
  94. NOMRN RNCEL ;
  95. GPN IAPN0 CHAMPN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE'
  96. NOMRN PRES ;
  97. GVN IAVN0 CHAMVN = 'PENT' $MODE 'CENTRE' 'EULEVECT' 'NOLIMITE'
  98. NOMVN VITESSE 'CLIM' VNLIM ;
  99.  
  100. * IARN0, IAPN0, IAVN0 ne sont pas utilisés
  101.  
  102. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 2 1
  103. $MODE
  104. RNCEL GRN IARN
  105. VITESSE GVN IAVN
  106. PRES GPN IAPN
  107. GAMN ;
  108.  
  109. CHPRES0 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' NOMMET
  110. $MODE ROF VITF PF GAMF LISTINCO ;
  111.  
  112. VAL0 = 'EXTRAIRE' CHPRES0 PDUAL MOTDUA ;
  113.  
  114. * EPSILON = perturbation
  115.  
  116. * Adimensionalisation
  117.  
  118. dens0 = 'EXTRAIRE' RN PPRIM 'SCAL' ;
  119.  
  120. VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN ;
  121. CN2 = GAMN '*' (PN '/' RN) ;
  122. cson0 = ('EXTRAIRE' CN2 PPRIM 'SCAL') '**' 0.5 ;
  123.  
  124. ret0 = ('EXTRAIRE' RETN PPRIM 'SCAL') '**' 0.5 ;
  125.  
  126. * On etabli la variable à perturber
  127.  
  128.  
  129. NDIM = 'DIME' LISTINCO ;
  130. ICEL = NDIM '+' 1 ;
  131. 'REPETER' BL1 NDIM ;
  132. MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ;
  133. 'SI' ('EGA' MOTCEL MOTPRI) ;
  134. ICEL = &BL1 ;
  135. 'QUITTER' BL1 ;
  136. 'FINSI' ;
  137. 'FIN' BL1 ;
  138.  
  139. 'SI' (ICEL > NDIM) ;
  140. 'MESSAGE' 'Procedure JACNUM' ;
  141. 'MESSAGE' 'MOTPRI = ??? ';
  142. 'ERREUR' 21 ;
  143. 'FINSI' ;
  144.  
  145. ELT1 = 'MANUEL' 'POI1' PPRIM ;
  146.  
  147. * ICEL = 1 -> On perturbe la densité
  148.  
  149. 'SI' ('EGA' ICEL 1) ;
  150. DELTATOT = (EPSILON * dens0) ;
  151. RNCEL = ('MANUEL' 'CHPO' ELT1 1 'SCAL' DELTATOT
  152. 'NATURE' 'DISCRET') 'ET' RN ;
  153. GNCEL = 'COPIER' GN ;
  154. RETNCEL = 'COPIER' RETN ;
  155. 'FINSI' ;
  156.  
  157. * ICEL = 2 -> On perturbe la q.d.m. long l'ax x
  158.  
  159. 'SI' ('EGA' ICEL 2) ;
  160. DELTATOT = (EPSILON * dens0 * cson0) ;
  161. GNCEL = ('MANUEL' 'CHPO' ELT1 1 'UX' DELTATOT
  162. 'NATURE' 'DISCRET') 'ET' GN ;
  163. RNCEL = 'COPIER' RN ;
  164. RETNCEL = 'COPIER' RETN ;
  165. 'FINSI' ;
  166.  
  167. * ICEL = 3 -> On perturbe la q.d.m. long l'ax y
  168.  
  169. 'SI' ('EGA' ICEL 3) ;
  170. DELTATOT = (EPSILON * dens0 * cson0) ;
  171. GNCEL = ('MANUEL' 'CHPO' ELT1 1 'UY' DELTATOT
  172. 'NATURE' 'DISCRET') 'ET' GN ;
  173. RNCEL = 'COPIER' RN ;
  174. RETNCEL = 'COPIER' RETN ;
  175. 'FINSI' ;
  176.  
  177. * ICEL = 4 -> On perturbe l'énergie totale
  178.  
  179. 'SI' ('EGA' ICEL 4) ;
  180. DELTATOT = (EPSILON * ret0) ;
  181. RETNCEL = ('MANUEL' 'CHPO' ELT1 1 'SCAL' DELTATOT
  182. 'NATURE' 'DISCRET') 'ET' RETN ;
  183. RNCEL = 'COPIER' RN ;
  184. GNCEL = 'COPIER' GN ;
  185. 'FINSI' ;
  186.  
  187. VITESSE PRES = 'PRIM' 'PERFMONO' RNCEL GNCEL RETNCEL GAMN ;
  188.  
  189.  
  190. GRN IARN0 CHAMRN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE'
  191. NOMRN RNCEL ;
  192. GPN IAPN0 CHAMPN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE'
  193. NOMRN PRES ;
  194. GVN IAVN0 CHAMVN = 'PENT' $MODE 'CENTRE' 'EULEVECT' 'NOLIMITE'
  195. NOMVN VITESSE 'CLIM' VNLIM ;
  196.  
  197. * IARN0, IAPN0, IAVN0 ne sont pas utilisés
  198.  
  199. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 2 1
  200. $MODE
  201. RNCEL GRN IARN
  202. VITESSE GVN IAVN
  203. PRES GPN IAPN
  204. GAMN ;
  205.  
  206. CHPRES1 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' NOMMET
  207. $MODE ROF VITF PF GAMF LISTINCO ;
  208.  
  209. VAL1 = 'EXTRAIRE' CHPRES1 PDUAL MOTDUA ;
  210.  
  211. 'FINPROC' ((VAL1 '-' VAL0) '/' DELTATOT) ;
  212.  
  213. *****************************************************
  214. *****************************************************
  215. ******** FIN PROCEDURES *****************************
  216. *****************************************************
  217. *****************************************************
  218. *****************************************************
  219.  
  220. ***************************
  221. ***** DOMAINE SPATIAL ****
  222. ***************************
  223.  
  224.  
  225. A0 = 0.0D0 0.0D0;
  226. A1 = 1.0D0 0.0D0;
  227. A2 = 2.0D0 0.0D0;
  228. A3 = 3.0D0 0.0D0;
  229.  
  230. A0A1 = A0 'DROIT' 1 A1;
  231. A1A2 = A1 'DROIT' 1 A2;
  232. A2A3 = A2 'DROIT' 1 A3;
  233.  
  234.  
  235. DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ;
  236.  
  237. DOMTOT = DOM1 ;
  238. DOMCON = 'CONTOUR' DOMTOT ;
  239.  
  240. $DOMTOT = 'MODELISER' DOMTOT 'EULER';
  241. $DOMCON = 'MODELISER' DOMCON 'EULER';
  242.  
  243. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  244. TDOMCON = 'DOMA' $DOMCON 'VF';
  245.  
  246. MDOMCON = TDOMCON . 'QUAF' ;
  247. MDOMTOT = TDOMTOT . 'QUAF' ;
  248.  
  249. 'ELIMINATION' (MDOMTOT ET MDOMCON) 0.0001 ;
  250.  
  251. **************************************
  252. **************************************
  253. **************************************
  254. ***** TEST 1: VNLIM imposée **********
  255. **************************************
  256. **************************************
  257. **************************************
  258.  
  259. VNLIM = 'MANUEL' 'CHPO' ('DOMA' $DOMCON 'CENTRE') 2 'UX' 1.0
  260. 'UY' 0.0 ;
  261.  
  262. ***************************************************
  263. ***** Densité, pression, vitesse, gamma ***********
  264. ***************************************************
  265.  
  266. RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
  267. PN0 = 'BRUI' 'BLAN' 'UNIF' 1234.1 800 ('DOMA' $DOMTOT 'CENTRE') ;
  268. GAMMAN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
  269. 'NATU' 'DISCRET' ;
  270. CSONN = (GAMMAN '*' PN0) '/' RN0 ;
  271. CSONN = 'KOPS' CSONN '**' 0.5 ;
  272. UXN0 = 0.2 * CSONN ;
  273. UYN0 = 0.3 * CSONN ;
  274.  
  275. GN0 = ('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
  276. ('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET') ;
  277.  
  278. ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
  279. RETN0 = 'NOMC' 'SCAL' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN)
  280. 'NATU' 'DISCRET' ;
  281.  
  282. VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  283.  
  284. ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
  285. ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
  286. ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS' ;
  287.  
  288. 'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
  289. 'MESSAGE' 'Problem 0' ;
  290. 'ERREUR' 5 ;
  291. 'FINSI' ;
  292.  
  293. 'SI' GRAPH;
  294. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE' ) 'ET'
  295. ('DOMA' $DOMTOT 'CENTRE')) 'TITRE' 'Domaine et centre' ;
  296. 'FINSI' ;
  297.  
  298. *
  299. **** Les variables conservative
  300. *
  301. * RN0 (densité)
  302. * GN0 (quantité de mouvement)
  303. * RETN0 (énergie totale par unité de volume)
  304. *
  305. * sont definiés
  306. *
  307.  
  308. ****************************************************
  309. ****************************************************
  310. ******* Calcul du jacobien et du residu **********
  311. ****************************************************
  312. ****************************************************
  313. *
  314. * JACO est le jacobien
  315. *
  316. * DEBRN0 le residu concernant la densité
  317. * DEBGNX0 le residu concernant la quantité de mouvement (axe x)
  318. * DEBGNY0 le residu concernant la quantité de mouvement (axe y)
  319. * DEBRETN0 le residu concernant l'enrgie totale par unité de volume
  320. *
  321.  
  322. * Noms des variables
  323.  
  324. NOMDEN = 'RN ' ;
  325. NOMMOX = 'RUXN' ;
  326. NOMMOY = 'RUYN' ;
  327. NOMRET = 'RETN' ;
  328.  
  329. * Metode
  330.  
  331. METO = 'VLH' ;
  332.  
  333.  
  334. LISTINCO = 'MOTS' NOMDEN NOMMOX NOMMOY NOMRET ;
  335.  
  336. VITESSE PRES = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  337.  
  338.  
  339. GRN IARN CHAMRN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  340. NOMRN RN0 ;
  341. GPN IAPN CHAMPN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  342. NOMRN PRES ;
  343. GVN IAVN CHAMVN = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE'
  344. NOMVN VITESSE 'CLIM' VNLIM ;
  345.  
  346.  
  347. IARN = IARN ;
  348. IAVN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  349. 2 'P1' 0.15 'P2' 0.25 ;
  350. IAPN = IAPN * 0.75 ;
  351.  
  352. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 2 1
  353. $DOMTOT
  354. RN0 GRN IARN
  355. VITESSE GVN IAVN
  356. PRES GPN IAPN
  357. GAMMAN ;
  358.  
  359. CHPRES0 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' METO
  360. $DOMTOT LISTINCO ROF VITF PF GAMF ;
  361.  
  362. JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCON2' METO
  363. $DOMTOT LISTINCO ROF VITF PF GAMF
  364. RN0 VITESSE PRES GAMMAN
  365. GRN GVN GPN
  366. IARN IAVN IAPN
  367. CHAMRN CHAMVN CHAMPN VNLIM ;
  368.  
  369. DEBRN0 = 'EXCO' NOMDEN CHPRES0 ;
  370. DEBGNX0 = 'EXCO' NOMMOX CHPRES0 ;
  371. DEBGNY0 = 'EXCO' NOMMOY CHPRES0 ;
  372. DEBRETN0 = 'EXCO' NOMRET CHPRES0 ;
  373.  
  374. *
  375. * On compare le jacobien et la variation du residu
  376. * en $DOMTOT . 'CENTRE' par rapport à une variation
  377. * infinitésimal en $DOMTOT .'CENTRE'
  378. *
  379.  
  380. PCEN1 = 'POIN' 1 ('DOMA' $DOMTOT 'CENTRE') ;
  381.  
  382. * Les grandeurs pour adimesionner les erreurs
  383.  
  384. ro0 = 'EXTRAIRE' RN0 PCEN1 'SCAL' ;
  385.  
  386. VN0 PN0 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  387. CN20 = GAMMAN '*' (PN0 '/' RN0) ;
  388. cson0 = ('EXTRAIRE' CN20 PCEN1 'SCAL') '**' 0.5 ;
  389.  
  390. ret0 = ('EXTRAIRE' RETN0 PCEN1 'SCAL') '**' 0.5 ;
  391.  
  392. *
  393. * Le jacobien exact.
  394. * DRR = d(RES_ro)/dro (variable primale en PCEN1, variable duale en PCEN1) ;
  395. * DGXR = d(RES_gx)/dro (variable primale en PCEN1, variable duale en PCEN1) ;
  396. * ...
  397.  
  398. DRR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMDEN ;
  399. DGXR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMMOX ;
  400. DGYR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMMOY ;
  401. DRETR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMRET ;
  402.  
  403. DRGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMDEN ;
  404. DGXGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMMOX ;
  405. DGYGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMMOY ;
  406. DRETGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMRET ;
  407.  
  408. DRGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMDEN ;
  409. DGXGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMMOX ;
  410. DGYGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMMOY ;
  411. DRETGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMRET ;
  412.  
  413. DRRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMDEN ;
  414. DGXRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMMOX ;
  415. DGYRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMMOY ;
  416. DRETRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMRET ;
  417.  
  418. * Le jacobien numerique
  419.  
  420.  
  421. DELTA = 1.0D-5 ;
  422.  
  423. DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  424. IARN IAVN IAPN LISTINCO
  425. PCEN1 PCEN1
  426. NOMDEN NOMDEN DELTA ;
  427. DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  428. IARN IAVN IAPN LISTINCO
  429. PCEN1 PCEN1
  430. NOMDEN NOMMOX DELTA ;
  431. DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  432. IARN IAVN IAPN LISTINCO
  433. PCEN1 PCEN1
  434. NOMDEN NOMMOY DELTA ;
  435. DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  436. IARN IAVN IAPN LISTINCO
  437. PCEN1 PCEN1
  438. NOMDEN NOMRET DELTA ;
  439.  
  440. DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  441. IARN IAVN IAPN LISTINCO
  442. PCEN1 PCEN1
  443. NOMMOX NOMDEN DELTA ;
  444. DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  445. IARN IAVN IAPN LISTINCO
  446. PCEN1 PCEN1
  447. NOMMOX NOMMOX DELTA ;
  448. DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  449. IARN IAVN IAPN LISTINCO
  450. PCEN1 PCEN1
  451. NOMMOX NOMMOY DELTA ;
  452. DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  453. IARN IAVN IAPN LISTINCO
  454. PCEN1 PCEN1
  455. NOMMOX NOMRET DELTA ;
  456.  
  457. DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  458. IARN IAVN IAPN LISTINCO
  459. PCEN1 PCEN1
  460. NOMMOY NOMDEN DELTA ;
  461. DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  462. IARN IAVN IAPN LISTINCO
  463. PCEN1 PCEN1
  464. NOMMOY NOMMOX DELTA ;
  465. DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  466. IARN IAVN IAPN LISTINCO
  467. PCEN1 PCEN1
  468. NOMMOY NOMMOY DELTA ;
  469. DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  470. IARN IAVN IAPN LISTINCO
  471. PCEN1 PCEN1
  472. NOMMOY NOMRET DELTA ;
  473.  
  474. DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  475. IARN IAVN IAPN LISTINCO
  476. PCEN1 PCEN1
  477. NOMRET NOMDEN DELTA ;
  478. DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  479. IARN IAVN IAPN LISTINCO
  480. PCEN1 PCEN1
  481. NOMRET NOMMOX DELTA ;
  482. DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  483. IARN IAVN IAPN LISTINCO
  484. PCEN1 PCEN1
  485. NOMRET NOMMOY DELTA ;
  486. DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  487. IARN IAVN IAPN LISTINCO
  488. PCEN1 PCEN1
  489. NOMRET NOMRET DELTA ;
  490.  
  491.  
  492. * Test des comparaisons jacobien exact-jacobien numerique
  493.  
  494. ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ;
  495. 'SI' (ERR1 > ERRTOL) ;
  496. 'MESSAGE' 'Problem 1';
  497. 'ERREUR' 5 ;
  498. 'FINSI' ;
  499.  
  500. ERR1 = ('ABS' (DGXRN '-' DGXR)) '*'
  501. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  502. 'SI' (ERR1 > ERRTOL) ;
  503. 'MESSAGE' 'Problem 2';
  504. 'ERREUR' 5 ;
  505. 'FINSI' ;
  506.  
  507. ERR1 = ('ABS' (DGYRN '-' DGYR)) '*'
  508. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  509. 'SI' (ERR1 > ERRTOL) ;
  510. 'MESSAGE' 'Problem 3';
  511. 'ERREUR' 5 ;
  512. 'FINSI' ;
  513.  
  514. ERR1 = ('ABS' (DRETRN '-' DRETR)) '*'
  515. (ro0 '/' (ret0 '*' cson0)) ;
  516. 'SI' (ERR1 > ERRTOL) ;
  517. 'MESSAGE' 'Problem 4';
  518. 'ERREUR' 5 ;
  519. 'FINSI' ;
  520.  
  521.  
  522. ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
  523. 'SI' (ERR1 > ERRTOL) ;
  524. 'MESSAGE' 'Problem 5';
  525. 'ERREUR' 5 ;
  526. 'FINSI' ;
  527.  
  528. ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
  529. 'SI' (ERR1 > ERRTOL) ;
  530. 'MESSAGE' 'Problem 6';
  531. 'ERREUR' 5 ;
  532. 'FINSI' ;
  533.  
  534. ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
  535. 'SI' (ERR1 > ERRTOL) ;
  536. 'MESSAGE' 'Problem 7';
  537. 'ERREUR' 5 ;
  538. 'FINSI' ;
  539.  
  540.  
  541. ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
  542. (ro0 / ret0) ;
  543. 'SI' (ERR1 > ERRTOL) ;
  544. 'MESSAGE' 'Problem 8';
  545. 'ERREUR' 5 ;
  546. 'FINSI' ;
  547.  
  548. ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
  549. 'SI' (ERR1 > ERRTOL) ;
  550. 'MESSAGE' 'Problem 9';
  551. 'ERREUR' 5 ;
  552. 'FINSI' ;
  553.  
  554. ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
  555. 'SI' (ERR1 > ERRTOL) ;
  556. 'MESSAGE' 'Problem 10';
  557. 'ERREUR' 5 ;
  558. 'FINSI' ;
  559.  
  560. ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
  561. 'SI' (ERR1 > ERRTOL) ;
  562. 'MESSAGE' 'Problem 11';
  563. 'ERREUR' 5 ;
  564. 'FINSI' ;
  565.  
  566. ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
  567. (ro0 / ret0) ;
  568. 'SI' (ERR1 > ERRTOL) ;
  569. 'MESSAGE' 'Problem 12';
  570. 'ERREUR' 5 ;
  571. 'FINSI' ;
  572.  
  573. ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ;
  574. 'SI' (ERR1 > ERRTOL) ;
  575. 'MESSAGE' 'Problem 13';
  576. 'ERREUR' 5 ;
  577. 'FINSI' ;
  578.  
  579. ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
  580. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  581. 'SI' (ERR1 > ERRTOL) ;
  582. 'MESSAGE' 'Problem 14';
  583. 'ERREUR' 5 ;
  584. 'FINSI' ;
  585.  
  586. ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
  587. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  588. 'SI' (ERR1 > ERRTOL) ;
  589. 'MESSAGE' 'Problem 15';
  590. 'ERREUR' 5 ;
  591. 'FINSI' ;
  592.  
  593.  
  594. ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
  595. 'SI' (ERR1 > ERRTOL) ;
  596. 'MESSAGE' 'Problem 16';
  597. 'ERREUR' 5 ;
  598. 'FINSI' ;
  599.  
  600. ******************************************
  601. ******************************************
  602. ******************************************
  603. ***** TEST 2: VNLIM non imposée **********
  604. ******************************************
  605. ******************************************
  606. ******************************************
  607.  
  608. VNLIM CACCA = 'KOPS' 'MATRIK' ;
  609.  
  610. ***************************************************
  611. ***** Densité, pression, vitesse, gamma ***********
  612. ***************************************************
  613.  
  614. RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
  615. PN0 = 'BRUI' 'BLAN' 'UNIF' 1234.1 800 ('DOMA' $DOMTOT 'CENTRE') ;
  616. GAMMAN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
  617. 'NATU' 'DISCRET' ;
  618. CSONN = (GAMMAN '*' PN0) '/' RN0 ;
  619. CSONN = 'KOPS' CSONN '**' 0.5 ;
  620. UXN0 = 0.2 * CSONN ;
  621. UYN0 = 0.3 * CSONN ;
  622.  
  623. GN0 = ('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
  624. ('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET') ;
  625.  
  626. ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
  627. RETN0 = 'NOMC' 'SCAL' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN)
  628. 'NATU' 'DISCRET' ;
  629.  
  630. VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  631.  
  632. ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
  633. ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
  634. ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS' ;
  635.  
  636. 'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
  637. 'MESSAGE' 'Problem 0' ;
  638. 'ERREUR' 5 ;
  639. 'FINSI' ;
  640.  
  641. 'SI' GRAPH;
  642. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET'
  643. ('DOMA' $DOMTOT 'CENTRE')) 'TITRE' 'Domaine et centre' ;
  644. 'FINSI' ;
  645.  
  646. *
  647. **** Les variables conservative
  648. *
  649. * RN0 (densité)
  650. * GN0 (quantité de mouvement)
  651. * RETN0 (énergie totale par unité de volume)
  652. *
  653. * sont definiés
  654. *
  655.  
  656. ****************************************************
  657. ****************************************************
  658. ******* Calcul du jacobien et du residu **********
  659. ****************************************************
  660. ****************************************************
  661. *
  662. * JACO est le jacobien
  663. *
  664. * DEBRN0 le residu concernant la densité
  665. * DEBGNX0 le residu concernant la quantité de mouvement (axe x)
  666. * DEBGNY0 le residu concernant la quantité de mouvement (axe y)
  667. * DEBRETN0 le residu concernant l'enrgie totale par unité de volume
  668. *
  669.  
  670. * Noms des variables
  671.  
  672. NOMDEN = 'RN ' ;
  673. NOMMOX = 'RUXN' ;
  674. NOMMOY = 'RUYN' ;
  675. NOMRET = 'RETN' ;
  676.  
  677. * Metode
  678.  
  679. METO = 'VLH' ;
  680.  
  681.  
  682. LISTINCO = 'MOTS' NOMDEN NOMMOX NOMMOY NOMRET ;
  683.  
  684. VITESSE PRES = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  685.  
  686.  
  687. GRN IARN CHAMRN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  688. NOMRN RN0 ;
  689. GPN IAPN CHAMPN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
  690. NOMRN PRES ;
  691. GVN IAVN CHAMVN = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE'
  692. NOMVN VITESSE 'CLIM' VNLIM ;
  693.  
  694.  
  695. IARN = IARN ;
  696. IAVN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  697. 2 'P1' 0.15 'P2' 0.25 ;
  698. IAPN = IAPN * 0.75 ;
  699.  
  700. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 2 1
  701. $DOMTOT
  702. RN0 GRN IARN
  703. VITESSE GVN IAVN
  704. PRES GPN IAPN
  705. GAMMAN ;
  706.  
  707. CHPRES0 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' METO
  708. $DOMTOT LISTINCO ROF VITF PF GAMF ;
  709.  
  710. JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCON2' METO
  711. $DOMTOT ROF VITF PF GAMF LISTINCO
  712. RN0 VITESSE PRES GAMMAN
  713. GRN GVN GPN
  714. IARN IAVN IAPN
  715. CHAMRN CHAMVN CHAMPN VNLIM ;
  716.  
  717. DEBRN0 = 'EXCO' NOMDEN CHPRES0 ;
  718. DEBGNX0 = 'EXCO' NOMMOX CHPRES0 ;
  719. DEBGNY0 = 'EXCO' NOMMOY CHPRES0 ;
  720. DEBRETN0 = 'EXCO' NOMRET CHPRES0 ;
  721.  
  722. *
  723. * On compare le jacobien et la variation du residu
  724. * en $DOMTOT 'CENTRE' par rapport à une variation
  725. * infinitésimal en $DOMTOT 'CENTRE'
  726. *
  727.  
  728.  
  729. PCEN1 = 'POIN' 1 ('DOMA' $DOMTOT 'CENTRE') ;
  730.  
  731. * Les grandeurs pour adimesionner les erreurs
  732.  
  733. ro0 = 'EXTRAIRE' RN0 PCEN1 'SCAL' ;
  734.  
  735. VN0 PN0 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  736. CN20 = GAMMAN '*' (PN0 '/' RN0) ;
  737. cson0 = ('EXTRAIRE' CN20 PCEN1 'SCAL') '**' 0.5 ;
  738.  
  739. ret0 = ('EXTRAIRE' RETN0 PCEN1 'SCAL') '**' 0.5 ;
  740.  
  741. *
  742. * Le jacobien exact.
  743. * DRR = d(RES_ro)/dro (variable primale en PCEN1, variable duale en PCEN1) ;
  744. * DGXR = d(RES_gx)/dro (variable primale en PCEN1, variable duale en PCEN1) ;
  745. * ...
  746.  
  747. DRR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMDEN ;
  748. DGXR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMMOX ;
  749. DGYR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMMOY ;
  750. DRETR = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMDEN NOMRET ;
  751.  
  752. DRGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMDEN ;
  753. DGXGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMMOX ;
  754. DGYGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMMOY ;
  755. DRETGX = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOX NOMRET ;
  756.  
  757. DRGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMDEN ;
  758. DGXGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMMOX ;
  759. DGYGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMMOY ;
  760. DRETGY = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMMOY NOMRET ;
  761.  
  762. DRRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMDEN ;
  763. DGXRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMMOX ;
  764. DGYRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMMOY ;
  765. DRETRET = JACOVA JACO $DOMTOT LISTINCO PCEN1 PCEN1 NOMRET NOMRET ;
  766.  
  767. * Le jacobien numerique
  768.  
  769.  
  770. DELTA = 1.0D-5 ;
  771.  
  772. DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  773. IARN IAVN IAPN LISTINCO
  774. PCEN1 PCEN1
  775. NOMDEN NOMDEN DELTA ;
  776. DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  777. IARN IAVN IAPN LISTINCO
  778. PCEN1 PCEN1
  779. NOMDEN NOMMOX DELTA ;
  780. DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  781. IARN IAVN IAPN LISTINCO
  782. PCEN1 PCEN1
  783. NOMDEN NOMMOY DELTA ;
  784. DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  785. IARN IAVN IAPN LISTINCO
  786. PCEN1 PCEN1
  787. NOMDEN NOMRET DELTA ;
  788.  
  789. DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  790. IARN IAVN IAPN LISTINCO
  791. PCEN1 PCEN1
  792. NOMMOX NOMDEN DELTA ;
  793. DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  794. IARN IAVN IAPN LISTINCO
  795. PCEN1 PCEN1
  796. NOMMOX NOMMOX DELTA ;
  797. DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  798. IARN IAVN IAPN LISTINCO
  799. PCEN1 PCEN1
  800. NOMMOX NOMMOY DELTA ;
  801. DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  802. IARN IAVN IAPN LISTINCO
  803. PCEN1 PCEN1
  804. NOMMOX NOMRET DELTA ;
  805.  
  806. DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  807. IARN IAVN IAPN LISTINCO
  808. PCEN1 PCEN1
  809. NOMMOY NOMDEN DELTA ;
  810. DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  811. IARN IAVN IAPN LISTINCO
  812. PCEN1 PCEN1
  813. NOMMOY NOMMOX DELTA ;
  814. DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  815. IARN IAVN IAPN LISTINCO
  816. PCEN1 PCEN1
  817. NOMMOY NOMMOY DELTA ;
  818. DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  819. IARN IAVN IAPN LISTINCO
  820. PCEN1 PCEN1
  821. NOMMOY NOMRET DELTA ;
  822.  
  823. DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  824. IARN IAVN IAPN LISTINCO
  825. PCEN1 PCEN1
  826. NOMRET NOMDEN DELTA ;
  827. DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  828. IARN IAVN IAPN LISTINCO
  829. PCEN1 PCEN1
  830. NOMRET NOMMOX DELTA ;
  831. DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  832. IARN IAVN IAPN LISTINCO
  833. PCEN1 PCEN1
  834. NOMRET NOMMOY DELTA ;
  835. DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM
  836. IARN IAVN IAPN LISTINCO
  837. PCEN1 PCEN1
  838. NOMRET NOMRET DELTA ;
  839.  
  840.  
  841. * Test des comparaisons jacobien exact-jacobien numerique
  842.  
  843. ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ;
  844. 'SI' (ERR1 > ERRTOL) ;
  845. 'MESSAGE' 'Problem 1';
  846. 'ERREUR' 5 ;
  847. 'FINSI' ;
  848.  
  849. ERR1 = ('ABS' (DGXRN '-' DGXR)) '*'
  850. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  851. 'SI' (ERR1 > ERRTOL) ;
  852. 'MESSAGE' 'Problem 2';
  853. 'ERREUR' 5 ;
  854. 'FINSI' ;
  855.  
  856. ERR1 = ('ABS' (DGYRN '-' DGYR)) '*'
  857. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  858. 'SI' (ERR1 > ERRTOL) ;
  859. 'MESSAGE' 'Problem 3';
  860. 'ERREUR' 5 ;
  861. 'FINSI' ;
  862.  
  863. ERR1 = ('ABS' (DRETRN '-' DRETR)) '*'
  864. (ro0 '/' (ret0 '*' cson0)) ;
  865. 'SI' (ERR1 > ERRTOL) ;
  866. 'MESSAGE' 'Problem 4';
  867. 'ERREUR' 5 ;
  868. 'FINSI' ;
  869.  
  870.  
  871. ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
  872. 'SI' (ERR1 > ERRTOL) ;
  873. 'MESSAGE' 'Problem 5';
  874. 'ERREUR' 5 ;
  875. 'FINSI' ;
  876.  
  877. ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
  878. 'SI' (ERR1 > ERRTOL) ;
  879. 'MESSAGE' 'Problem 6';
  880. 'ERREUR' 5 ;
  881. 'FINSI' ;
  882.  
  883. ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
  884. 'SI' (ERR1 > ERRTOL) ;
  885. 'MESSAGE' 'Problem 7';
  886. 'ERREUR' 5 ;
  887. 'FINSI' ;
  888.  
  889.  
  890. ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
  891. (ro0 / ret0) ;
  892. 'SI' (ERR1 > ERRTOL) ;
  893. 'MESSAGE' 'Problem 8';
  894. 'ERREUR' 5 ;
  895. 'FINSI' ;
  896.  
  897. ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
  898. 'SI' (ERR1 > ERRTOL) ;
  899. 'MESSAGE' 'Problem 9';
  900. 'ERREUR' 5 ;
  901. 'FINSI' ;
  902.  
  903. ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
  904. 'SI' (ERR1 > ERRTOL) ;
  905. 'MESSAGE' 'Problem 10';
  906. 'ERREUR' 5 ;
  907. 'FINSI' ;
  908.  
  909. ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
  910. 'SI' (ERR1 > ERRTOL) ;
  911. 'MESSAGE' 'Problem 11';
  912. 'ERREUR' 5 ;
  913. 'FINSI' ;
  914.  
  915. ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
  916. (ro0 / ret0) ;
  917. 'SI' (ERR1 > ERRTOL) ;
  918. 'MESSAGE' 'Problem 12';
  919. 'ERREUR' 5 ;
  920. 'FINSI' ;
  921.  
  922. ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ;
  923. 'SI' (ERR1 > ERRTOL) ;
  924. 'MESSAGE' 'Problem 13';
  925. 'ERREUR' 5 ;
  926. 'FINSI' ;
  927.  
  928. ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
  929. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  930. 'SI' (ERR1 > ERRTOL) ;
  931. 'MESSAGE' 'Problem 14';
  932. 'ERREUR' 5 ;
  933. 'FINSI' ;
  934.  
  935. ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
  936. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  937. 'SI' (ERR1 > ERRTOL) ;
  938. 'MESSAGE' 'Problem 15';
  939. 'ERREUR' 5 ;
  940. 'FINSI' ;
  941.  
  942.  
  943. ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
  944. 'SI' (ERR1 > ERRTOL) ;
  945. 'MESSAGE' 'Problem 16';
  946. 'ERREUR' 5 ;
  947. 'FINSI' ;
  948.  
  949. 'FIN' ;
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales