Télécharger lapn_impl_centre.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : lapn_impl_centre.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************
  5. ***********************************************************
  6. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  7. **** solution des ****
  8. **** Equations d'Euler pour un gaz parfait ****
  9. **** OPERATEURS PRIM, PENT, LAPN ****
  10. **** Implicit: calcul du jacobien du residu ****
  11. **** ****
  12. **** Cas gaz monoespece, "calorically perfect" ****
  13. **** ****
  14. **** Methodes: DIAMANT ****
  15. **** ****
  16. **** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2000 ****
  17. **** S. GOUNAND DEN/DM2S/SFME/LTMF AOUT 2001 ****
  18. ***********************************************************
  19. ***********************************************************
  20.  
  21. 'OPTION' 'DIME' 2 ;
  22. 'OPTION' 'ELEM' QUA4 ;
  23. 'OPTION' 'ECHO' 0 ;
  24. 'OPTION' 'TRAC' 'X' ;
  25.  
  26. *
  27. *** GRAPH
  28. *
  29.  
  30. GRAPH = FAUX ;
  31. * GRAPH = VRAI ;
  32.  
  33. ERRTOL = 1.0D-3 ;
  34.  
  35. ***************************
  36. ***** DOMAINE SPATIAL ****
  37. ***************************
  38.  
  39.  
  40. A0 = 0.0D0 0.0D0;
  41. A1 = 1.0D0 0.0D0;
  42. A2 = 2.0D0 0.0D0;
  43. A3 = 3.0D0 0.0D0;
  44.  
  45. A0A1 = A0 'DROIT' 1 A1;
  46. A1A2 = A1 'DROIT' 1 A2;
  47. A2A3 = A2 'DROIT' 1 A3;
  48.  
  49.  
  50. DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ;
  51. DOM2 = DOM1 'PLUS' (0.0 1.0) ;
  52. DOM3 = DOM2 'PLUS' (0.0 1.0) ;
  53. DOM4 = 'TRANSLATION' A1A2 1 (0.0 1.0) ;
  54. DOM5 = DOM4 'PLUS' (0.0 1.0) ;
  55. DOM6 = DOM5 'PLUS' (0.0 1.0) ;
  56. DOM7 = 'TRANSLATION' A2A3 1 (0.0 1.0) ;
  57. DOM8 = DOM7 'PLUS' (0.0 1.0) ;
  58. DOM9 = DOM8 'PLUS' (0.0 1.0) ;
  59.  
  60. DOM5 = DOM5 'COULEUR' 'ROUG ' ;
  61. DOM6 = DOM6 'COULEUR' 'VERT' ;
  62. DOM7 = DOM7 'COULEUR' 'JAUN' ;
  63.  
  64. DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET'
  65. DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ELIMINATION' 0.0001 ;
  66.  
  67. *
  68. **** On calcule le JACOBIAN dans le centre de DOM5;
  69. * qui doit dependre de la valeur en DOM5, DOM6, mais il ne doit
  70. * pas dependre de DOM7
  71. *
  72.  
  73. $DOMTOT = 'MODELISER' DOMTOT 'EULER';
  74.  
  75. $DOM6 = 'MODELISER' DOM6 'EULER';
  76. $DOM7 = 'MODELISER' DOM7 'EULER';
  77. $DOM5 = 'MODELISER' DOM5 'EULER';
  78.  
  79. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  80.  
  81. TDOM6 = 'DOMA' $DOM6 'VF';
  82. TDOM7 = 'DOMA' $DOM7 'VF';
  83. TDOM5 = 'DOMA' $DOM5 'VF';
  84.  
  85. MDOM6 = TDOM6 . 'QUAF' ;
  86. MDOM7 = TDOM7 . 'QUAF' ;
  87. MDOM5 = TDOM5 . 'QUAF' ;
  88.  
  89. **** old stuff $DOMTOT = 'DOMA' DOMTOT ;
  90.  
  91. MDOMTOT = TDOMTOT . 'QUAF' ;
  92.  
  93. 'ELIMINATION' (MDOMTOT ET MDOM6) 0.0001 ;
  94. 'ELIMINATION' (MDOMTOT ET MDOM7) 0.0001 ;
  95. 'ELIMINATION' (MDOMTOT ET MDOM5) 0.0001 ;
  96.  
  97. RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
  98. RN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 ;
  99. PN0 = 'BRUI' 'BLAN' 'UNIF' 1234.1 800 ('DOMA' $DOMTOT 'CENTRE') ;
  100. GAMMAN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 1.4 ;
  101.  
  102. CSONN = (GAMMAN '*' PN0) '/' RN0 ;
  103. CSONN = 'KOPS' CSONN '**' 0.5 ;
  104. UXN0 = 0.2 * CSONN ;
  105. UYN0 = 0.3 * CSONN ;
  106.  
  107. GN0 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (
  108. ('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
  109. ('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET')) ;
  110.  
  111. *
  112. *** retgd
  113. *
  114.  
  115. ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
  116. RETN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  117. ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN) ;
  118.  
  119. CV=PI ;
  120. TN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  121. ((PN0 '/' (GAMMAN '-' 1.0)) '/' (RN0 '*' CV)) ;
  122.  
  123. VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  124.  
  125. ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
  126. ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
  127. ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS' ;
  128.  
  129. 'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
  130. 'MESSAGE' 'Problem 0' ;
  131. 'ERREUR' 5 ;
  132. 'FINSI' ;
  133.  
  134.  
  135. 'SI' GRAPH;
  136. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE' ) 'ET'
  137. ('DOMA' $DOMTOT 'CENTRE')) 'TITRE' 'Domaine et centre' ;
  138. 'FINSI' ;
  139.  
  140. *
  141. ***** Les valeurs en $DOM5 'CENTRE'
  142. *
  143.  
  144. PCON = ('DOMA' $DOM5 'CENTRE') 'POIN' 1 ;
  145. ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ;
  146. cson0 = 'EXTRAIRE' CSONN PCON 'SCAL' ;
  147. ret0 = 'EXTRAIRE' RETN0 PCON 'SCAL' ;
  148.  
  149.  
  150. ***********************
  151. **** Les CHPOINTs ****
  152. ***********************
  153.  
  154. RN = 'COPIER' RN0 ;
  155.  
  156. GN = 'COPIER' GN0 ;
  157.  
  158. RETN = 'COPIER' RETN0 ;
  159.  
  160. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  161.  
  162. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  163.  
  164. CV = PI ;
  165. MU = '*' PI PI ;
  166. KAPPA = '*' ('*' PI PI) PI ;
  167. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  168. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  169. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  170. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  171. *
  172. JACO CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  173. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  174. LISTINCO ;
  175.  
  176. ***********************
  177. ***** Le residu *******
  178. ***********************
  179.  
  180. DEBRN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  181. DEBGNX0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  182. DEBGNY0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  183. DEBRETN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  184.  
  185.  
  186. *****************************************************
  187. *****************************************************
  188. ******* TEST1 ***************************************
  189. *****************************************************
  190. *****************************************************
  191. *
  192. * On compare le jacobien et la variation du residu
  193. * en $DOM5 'CENTRE' par rapport à une variation
  194. * infinitésimal en $DOM5 'CENTRE'
  195. *
  196.  
  197. UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  198. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  199. 'NATURE' 'DISCRET') 'ET'
  200. ('MANUEL' 'CHPO' ('DOMA' $DOM5 'CENTRE') 4 'RN' 1.0
  201. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  202. 'NATURE' 'DISCRET') ;
  203. UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  204. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  205. 'NATURE' 'DISCRET') 'ET'
  206. ('MANUEL' 'CHPO' ('DOMA' $DOM5 'CENTRE') 4 'RN' 0.0
  207. 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
  208. 'NATURE' 'DISCRET') ;
  209. UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  210. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  211. 'NATURE' 'DISCRET') 'ET'
  212. ('MANUEL' 'CHPO' ('DOMA' $DOM5 'CENTRE') 4 'RN' 0.0
  213. 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
  214. 'NATURE' 'DISCRET') ;
  215. UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  216. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  217. 'NATURE' 'DISCRET') 'ET'
  218. ('MANUEL' 'CHPO' ('DOMA' $DOM5 'CENTRE') 4 'RN' 0.0
  219. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0
  220. 'NATURE' 'DISCRET') ;
  221.  
  222.  
  223. DDRHO = 'KOPS' JACO 'MULT' UNRO ;
  224.  
  225. *
  226. *
  227. ***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
  228. * dRES_GXN '/' dRN ('RUXN') ;
  229. * dRES_GYN '/' dRN ('RUYN') ;
  230. * dRES_RETN '/' dRN ('RETN') ;
  231. * DDGX contient ...
  232. *
  233. *
  234.  
  235. DDGX = 'KOPS' JACO 'MULT' UNGX ;
  236. DDGY = 'KOPS' JACO 'MULT' UNGY ;
  237. DDRET = 'KOPS' JACO 'MULT' UNRET ;
  238.  
  239. DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
  240. DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
  241. DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
  242. DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
  243.  
  244. DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
  245. DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
  246. DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
  247. DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
  248.  
  249. DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
  250. DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
  251. DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
  252. DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
  253.  
  254. DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
  255. DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
  256. DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
  257. DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
  258.  
  259.  
  260. *********************************************************************
  261. *********************************************************************
  262. ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) *******
  263. *********************************************************************
  264. *********************************************************************
  265.  
  266. DELTA = 1.0D-6 ;
  267. ro1 = ro0 '*' (1 '+' DELTA) ;
  268. RNDOM5 = 'KCHT' $DOM5 'SCAL' 'CENTRE' ro1 ;
  269.  
  270. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM5 ;
  271.  
  272. GN = 'COPIER' GN0 ;
  273.  
  274. RETN = 'COPIER' RETN0 ;
  275.  
  276. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  277. CV = PI ;
  278. MU = '*' PI PI ;
  279. KAPPA = '*' ('*' PI PI) PI ;
  280. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  281. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  282. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  283. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  284. *
  285. *
  286. *
  287. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  288. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  289. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  290. LISTINCO ;
  291.  
  292. ***********************
  293. ***** Le residu *******
  294. ***********************
  295.  
  296. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  297. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  298. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  299. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  300.  
  301. *
  302. **** On calcule le jacobien numeriquement
  303. *
  304.  
  305. DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
  306. DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
  307. DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
  308. DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
  309.  
  310.  
  311. ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ;
  312. 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ;
  313. 'SI' (ERR1 > ERRTOL) ;
  314. 'MESSAGE' 'Problem 1';
  315. 'ERREUR' 5 ;
  316. 'FINSI' ;
  317.  
  318. ERR1 = ('ABS' (DGXRN '-' DGXR)) '*'
  319. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  320. 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ;
  321. 'SI' (ERR1 > ERRTOL) ;
  322. 'MESSAGE' 'Problem 2';
  323. 'ERREUR' 5 ;
  324. 'FINSI' ;
  325.  
  326. ERR1 = ('ABS' (DGYRN '-' DGYR)) '*'
  327. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  328. 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ;
  329. 'SI' (ERR1 > ERRTOL) ;
  330. 'MESSAGE' 'Problem 3';
  331. 'ERREUR' 5 ;
  332. 'FINSI' ;
  333.  
  334. ERR1 = ('ABS' (DRETRN '-' DRETR)) '*'
  335. (ro0 '/' (ret0 '*' cson0)) ;
  336. 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ;
  337. 'SI' (ERR1 > ERRTOL) ;
  338. 'MESSAGE' 'Problem 4';
  339. 'ERREUR' 5 ;
  340. 'FINSI' ;
  341.  
  342.  
  343. ***************************************************************************
  344. ***************************************************************************
  345. ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) *****
  346. ***************************************************************************
  347. ***************************************************************************
  348.  
  349.  
  350. DELTA = 1.0D-6 ;
  351. gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ;
  352. gny0 = 'EXTRAIRE' GN0 PCON 'UY' ;
  353. gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ;
  354. GNDOM5 = 'KCHT' $DOM5 'VECT' 'CENTRE' (gnx1 gny0) ;
  355.  
  356.  
  357. RN = 'COPIER' RN0 ;
  358.  
  359. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM5 ;
  360.  
  361. RETN = 'COPIER' RETN0 ;
  362.  
  363. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  364. CV = PI ;
  365. MU = '*' PI PI ;
  366. KAPPA = '*' ('*' PI PI) PI ;
  367. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  368. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  369. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  370. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  371. *
  372. *
  373. *
  374. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  375. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  376. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  377. LISTINCO ;
  378.  
  379. ***********************
  380. ***** Le residu *******
  381. ***********************
  382.  
  383. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  384. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  385. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  386. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  387.  
  388. *
  389. **** On calcule le jacobien numeriquement
  390. *
  391.  
  392. DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  393. DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  394. DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  395. DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  396.  
  397. ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
  398. 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ;
  399. 'SI' (ERR1 > ERRTOL) ;
  400. 'MESSAGE' 'Problem 5';
  401. 'ERREUR' 5 ;
  402. 'FINSI' ;
  403.  
  404. ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
  405. 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ;
  406. 'SI' (ERR1 > ERRTOL) ;
  407. 'MESSAGE' 'Problem 6';
  408. 'ERREUR' 5 ;
  409. 'FINSI' ;
  410.  
  411. ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
  412. 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ;
  413. 'SI' (ERR1 > ERRTOL) ;
  414. 'MESSAGE' 'Problem 7';
  415. 'ERREUR' 5 ;
  416. 'FINSI' ;
  417.  
  418. ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
  419. (ro0 / ret0) ;
  420. 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ;
  421. 'SI' (ERR1 > ERRTOL) ;
  422. 'MESSAGE' 'Problem 8';
  423. 'ERREUR' 5 ;
  424. 'FINSI' ;
  425.  
  426.  
  427. ***************************************************************************
  428. ***************************************************************************
  429. ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ******
  430. ***************************************************************************
  431. ***************************************************************************
  432.  
  433.  
  434. DELTA = 1.0D-6 ;
  435.  
  436. gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ;
  437. gny0 = 'EXTRAIRE' GN0 PCON 'UY' ;
  438. gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ;
  439. GNDOM5 = 'KCHT' $DOM5 'VECT' 'CENTRE' (gnx0 gny1) ;
  440.  
  441.  
  442. RN = 'COPIER' RN0 ;
  443.  
  444. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM5 ;
  445.  
  446. RETN = 'COPIER' RETN0 ;
  447.  
  448. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  449. CV = PI ;
  450. MU = '*' PI PI ;
  451. KAPPA = '*' ('*' PI PI) PI ;
  452. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  453. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  454. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  455. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  456. *
  457. *
  458. *
  459. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  460. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  461. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  462. LISTINCO ;
  463.  
  464. ***********************
  465. ***** Le residu *******
  466. ***********************
  467.  
  468. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  469. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  470. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  471. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  472.  
  473. *
  474. **** On calcule le jacobien numeriquement
  475. *
  476.  
  477. DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  478. DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  479. DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  480. DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  481.  
  482. ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
  483. 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ;
  484. 'SI' (ERR1 > ERRTOL) ;
  485. 'MESSAGE' 'Problem 9';
  486. 'ERREUR' 5 ;
  487. 'FINSI' ;
  488.  
  489. ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
  490. 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ;
  491. 'SI' (ERR1 > ERRTOL) ;
  492. 'MESSAGE' 'Problem 10';
  493. 'ERREUR' 5 ;
  494. 'FINSI' ;
  495.  
  496. ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
  497. 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ;
  498. 'SI' (ERR1 > ERRTOL) ;
  499. 'MESSAGE' 'Problem 11';
  500. 'ERREUR' 5 ;
  501. 'FINSI' ;
  502.  
  503.  
  504. ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
  505. (ro0 / ret0) ;
  506. 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ;
  507. 'SI' (ERR1 > ERRTOL) ;
  508. 'MESSAGE' 'Problem 12';
  509. 'ERREUR' 5 ;
  510. 'FINSI' ;
  511.  
  512.  
  513. ***************************************************************************
  514. ***************************************************************************
  515. ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ******
  516. ***************************************************************************
  517. ***************************************************************************
  518.  
  519.  
  520. DELTA = 1.0D-6 ;
  521. ret1 = ret0 '*' (1. '+' DELTA) ;
  522. RETNDOM5 = 'KCHT' $DOM5 'SCAL' 'CENTRE' ret1 ;
  523.  
  524. RN = 'COPIER' RN0 ;
  525.  
  526. GN = 'COPIER' GN0 ;
  527.  
  528. RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM5 ;
  529.  
  530. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  531. CV = PI ;
  532. MU = '*' PI PI ;
  533. KAPPA = '*' ('*' PI PI) PI ;
  534. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  535. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  536. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  537. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  538. *
  539. *
  540. *
  541. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  542. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  543. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  544. LISTINCO ;
  545.  
  546. ***********************
  547. ***** Le residu *******
  548. ***********************
  549.  
  550. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  551. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  552. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  553. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  554.  
  555. *
  556. **** On calcule le jacobien numeriquement
  557. *
  558.  
  559. DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
  560. DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
  561. DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
  562. DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
  563.  
  564. ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ;
  565. 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ;
  566. 'SI' (ERR1 > ERRTOL) ;
  567. 'MESSAGE' 'Problem 13';
  568. 'ERREUR' 5 ;
  569. 'FINSI' ;
  570.  
  571. ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
  572. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  573. 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ;
  574. 'SI' (ERR1 > ERRTOL) ;
  575. 'MESSAGE' 'Problem 14';
  576. 'ERREUR' 5 ;
  577. 'FINSI' ;
  578.  
  579. ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
  580. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  581. 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ;
  582. 'SI' (ERR1 > ERRTOL) ;
  583. 'MESSAGE' 'Problem 15';
  584. 'ERREUR' 5 ;
  585. 'FINSI' ;
  586.  
  587.  
  588. ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
  589. 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ;
  590. 'SI' (ERR1 > ERRTOL) ;
  591. 'MESSAGE' 'Problem 16';
  592. 'ERREUR' 5 ;
  593. 'FINSI' ;
  594.  
  595. *****************************************************
  596. *****************************************************
  597. ******* TEST2 ***************************************
  598. *****************************************************
  599. *****************************************************
  600. *
  601. * On compare le jacobien et la variation du residu
  602. * en $DOM5 'CENTRE' par rapport à une variation
  603. * infinitésimal en $DOM6 'CENTRE'
  604. *
  605.  
  606. PCELL = ('DOMA' $DOM6 'CENTRE') 'POIN' 1 ;
  607. ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ;
  608. cson0 = 'EXTRAIRE' CSONN PCELL 'SCAL' ;
  609. ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ;
  610.  
  611.  
  612. UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  613. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  614. 'NATURE' 'DISCRET') 'ET'
  615. ('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 4 'RN' 1.0
  616. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  617. 'NATURE' 'DISCRET') ;
  618. UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  619. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  620. 'NATURE' 'DISCRET') 'ET'
  621. ('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 4 'RN' 0.0
  622. 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
  623. 'NATURE' 'DISCRET') ;
  624. UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  625. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  626. 'NATURE' 'DISCRET') 'ET'
  627. ('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 4 'RN' 0.0
  628. 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
  629. 'NATURE' 'DISCRET') ;
  630. UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  631. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  632. 'NATURE' 'DISCRET') 'ET'
  633. ('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 4 'RN' 0.0
  634. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0
  635. 'NATURE' 'DISCRET') ;
  636.  
  637.  
  638. DDRHO = 'KOPS' JACO 'MULT' UNRO ;
  639.  
  640. *
  641. *
  642. ***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
  643. * dRES_GXN '/' dRN ('RUXN') ;
  644. * dRES_GYN '/' dRN ('RUYN') ;
  645. * dRES_RETN '/' dRN ('RETN') ;
  646. * DDGX contient ...
  647. *
  648. *
  649.  
  650. DDGX = 'KOPS' JACO 'MULT' UNGX ;
  651. DDGY = 'KOPS' JACO 'MULT' UNGY ;
  652. DDRET = 'KOPS' JACO 'MULT' UNRET ;
  653.  
  654. DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
  655. DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
  656. DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
  657. DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
  658.  
  659. DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
  660. DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
  661. DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
  662. DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
  663.  
  664. DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
  665. DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
  666. DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
  667. DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
  668.  
  669. DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
  670. DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
  671. DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
  672. DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
  673.  
  674.  
  675.  
  676. *********************************************************************
  677. *********************************************************************
  678. ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) *******
  679. *********************************************************************
  680. *********************************************************************
  681.  
  682. DELTA = 1.0D-6 ;
  683. ro1 = ro0 '*' (1 '+' DELTA) ;
  684. RNDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ro1 ;
  685.  
  686. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM6 ;
  687.  
  688. GN = 'COPIER' GN0 ;
  689.  
  690. RETN = 'COPIER' RETN0 ;
  691.  
  692. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  693. CV = PI ;
  694. MU = '*' PI PI ;
  695. KAPPA = '*' ('*' PI PI) PI ;
  696. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  697. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  698. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  699. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  700. *
  701. *
  702. *
  703. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  704. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  705. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  706. LISTINCO ;
  707.  
  708. ***********************
  709. ***** Le residu *******
  710. ***********************
  711.  
  712. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  713. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  714. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  715. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  716.  
  717.  
  718. *
  719. **** On calcule le jacobien numeriquement
  720. *
  721.  
  722. DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
  723. DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
  724. DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
  725. DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
  726.  
  727.  
  728. ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ;
  729. 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ;
  730. 'SI' (ERR1 > ERRTOL) ;
  731. 'MESSAGE' 'Problem 1';
  732. 'ERREUR' 5 ;
  733. 'FINSI' ;
  734.  
  735. ERR1 = ('ABS' (DGXRN '-' DGXR)) '*'
  736. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  737. 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ;
  738. 'SI' (ERR1 > ERRTOL) ;
  739. 'MESSAGE' 'Problem 2';
  740. 'ERREUR' 5 ;
  741. 'FINSI' ;
  742.  
  743. ERR1 = ('ABS' (DGYRN '-' DGYR)) '*'
  744. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  745. 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ;
  746. 'SI' (ERR1 > ERRTOL) ;
  747. 'MESSAGE' 'Problem 3';
  748. 'ERREUR' 5 ;
  749. 'FINSI' ;
  750.  
  751. ERR1 = ('ABS' (DRETRN '-' DRETR)) '*'
  752. (ro0 '/' (ret0 '*' cson0)) ;
  753. 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ;
  754. 'SI' (ERR1 > ERRTOL) ;
  755. 'MESSAGE' 'Problem 4';
  756. 'ERREUR' 5 ;
  757. 'FINSI' ;
  758.  
  759. ***************************************************************************
  760. ***************************************************************************
  761. ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) ******
  762. ***************************************************************************
  763. ***************************************************************************
  764.  
  765. DELTA = 1.0D-6 ;
  766. gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
  767. gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
  768. gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ;
  769. GNDOM6 = 'KCHT' $DOM6 'VECT' 'CENTRE' (gnx1 gny0) ;
  770.  
  771.  
  772. RN = 'COPIER' RN0 ;
  773.  
  774. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM6 ;
  775.  
  776. RETN = 'COPIER' RETN0 ;
  777.  
  778. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  779. CV = PI ;
  780. MU = '*' PI PI ;
  781. KAPPA = '*' ('*' PI PI) PI ;
  782. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  783. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  784. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  785. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  786. *
  787. *
  788. *
  789. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  790. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  791. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  792. LISTINCO ;
  793.  
  794. ***********************
  795. ***** Le residu *******
  796. ***********************
  797.  
  798. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  799. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  800. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  801. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  802.  
  803. *
  804. **** On calcule le jacobien numeriquement
  805. *
  806.  
  807. DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  808. DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  809. DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  810. DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  811.  
  812. ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
  813. 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ;
  814. 'SI' (ERR1 > ERRTOL) ;
  815. 'MESSAGE' 'Problem 5';
  816. 'ERREUR' 5 ;
  817. 'FINSI' ;
  818.  
  819. ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
  820. 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ;
  821. 'SI' (ERR1 > ERRTOL) ;
  822. 'MESSAGE' 'Problem 6';
  823. 'ERREUR' 5 ;
  824. 'FINSI' ;
  825.  
  826. ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
  827. 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ;
  828. 'SI' (ERR1 > ERRTOL) ;
  829. 'MESSAGE' 'Problem 7';
  830. 'ERREUR' 5 ;
  831. 'FINSI' ;
  832.  
  833.  
  834. ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
  835. (ro0 / ret0) ;
  836. 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ;
  837. 'SI' (ERR1 > ERRTOL) ;
  838. 'MESSAGE' 'Problem 8';
  839. 'ERREUR' 5 ;
  840. 'FINSI' ;
  841.  
  842.  
  843. ***************************************************************************
  844. ***************************************************************************
  845. ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ******
  846. ***************************************************************************
  847. ***************************************************************************
  848.  
  849.  
  850. DELTA = 1.0D-6 ;
  851.  
  852. gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
  853. gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
  854. gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ;
  855. GNDOM6 = 'KCHT' $DOM6 'VECT' 'CENTRE' (gnx0 gny1) ;
  856.  
  857.  
  858. RN = 'COPIER' RN0 ;
  859.  
  860. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM6 ;
  861.  
  862. RETN = 'COPIER' RETN0 ;
  863.  
  864. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  865. CV = PI ;
  866. MU = '*' PI PI ;
  867. KAPPA = '*' ('*' PI PI) PI ;
  868. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  869. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  870. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  871. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  872. *
  873. *
  874. *
  875. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  876. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  877. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  878. LISTINCO ;
  879.  
  880. ***********************
  881. ***** Le residu *******
  882. ***********************
  883.  
  884. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  885. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  886. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  887. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  888.  
  889.  
  890. *
  891. **** On calcule le jacobien numeriquement
  892. *
  893.  
  894. DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  895. DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  896. DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  897. DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  898.  
  899. ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
  900. 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ;
  901. 'SI' (ERR1 > ERRTOL) ;
  902. 'MESSAGE' 'Problem 9';
  903. 'ERREUR' 5 ;
  904. 'FINSI' ;
  905.  
  906. ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
  907. 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ;
  908. 'SI' (ERR1 > ERRTOL) ;
  909. 'MESSAGE' 'Problem 10';
  910. 'ERREUR' 5 ;
  911. 'FINSI' ;
  912.  
  913. ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
  914. 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ;
  915. 'SI' (ERR1 > ERRTOL) ;
  916. 'MESSAGE' 'Problem 11';
  917. 'ERREUR' 5 ;
  918. 'FINSI' ;
  919.  
  920. ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
  921. (ro0 / ret0) ;
  922. 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ;
  923. 'SI' (ERR1 > ERRTOL) ;
  924. 'MESSAGE' 'Problem 12';
  925. 'ERREUR' 5 ;
  926. 'FINSI' ;
  927.  
  928.  
  929. ***************************************************************************
  930. ***************************************************************************
  931. ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ******
  932. ***************************************************************************
  933. ***************************************************************************
  934.  
  935.  
  936. DELTA = 1.0D-6 ;
  937. ret1 = ret0 '*' (1. '+' DELTA) ;
  938. RETNDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ret1 ;
  939.  
  940. RN = 'COPIER' RN0 ;
  941.  
  942. GN = 'COPIER' GN0 ;
  943.  
  944. RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM6 ;
  945.  
  946. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  947. CV = PI ;
  948. MU = '*' PI PI ;
  949. KAPPA = '*' ('*' PI PI) PI ;
  950. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  951. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  952. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  953. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  954. *
  955. *
  956. *
  957. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  958. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  959. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  960. LISTINCO ;
  961.  
  962. ***********************
  963. ***** Le residu *******
  964. ***********************
  965.  
  966. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  967. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  968. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  969. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  970.  
  971. *
  972. **** On calcule le jacobien numeriquement
  973. *
  974.  
  975. DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
  976. DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
  977. DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
  978. DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
  979.  
  980. ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ;
  981. 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ;
  982. 'SI' (ERR1 > ERRTOL) ;
  983. 'MESSAGE' 'Problem 13';
  984. 'ERREUR' 5 ;
  985. 'FINSI' ;
  986.  
  987.  
  988. ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
  989. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  990. 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ;
  991. 'SI' (ERR1 > ERRTOL) ;
  992. 'MESSAGE' 'Problem 14';
  993. 'ERREUR' 5 ;
  994. 'FINSI' ;
  995.  
  996. ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
  997. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  998. 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ;
  999. 'SI' (ERR1 > ERRTOL) ;
  1000. 'MESSAGE' 'Problem 15';
  1001. 'ERREUR' 5 ;
  1002. 'FINSI' ;
  1003.  
  1004.  
  1005. ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
  1006. 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ;
  1007. 'SI' (ERR1 > ERRTOL) ;
  1008. 'MESSAGE' 'Problem 16';
  1009. 'ERREUR' 5 ;
  1010. 'FINSI' ;
  1011.  
  1012.  
  1013. 'FIN' ;
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  

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