Télécharger lapn_impl.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : lapn_impl.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. DOM9 = DOM9 '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 DOM9;
  69. * qui doit dependre de la valeur en DOM9, 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. $DOM9 = 'MODELISER' DOM9 'EULER';
  78.  
  79. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  80.  
  81. TDOM6 = 'DOMA' $DOM6 'VF';
  82. TDOM7 = 'DOMA' $DOM7 'VF';
  83. TDOM9 = 'DOMA' $DOM9 'VF';
  84.  
  85. MDOM6 = TDOM6 . 'QUAF' ;
  86. MDOM7 = TDOM7 . 'QUAF' ;
  87. MDOM9 = TDOM9 . '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 MDOM9) 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. vitimp = 'KCHT' $DOMTOT 'VECT' 'FACE' (1.D0 1.D0) ;
  112. tauimp = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'FACE') 3
  113. 'TXX' 1.D0 'TYY' 1.D0 'TXY' 1.D0 ;
  114.  
  115. *
  116. *** retgd
  117. *
  118.  
  119. ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
  120. RETN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  121. ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN) ;
  122.  
  123. CV=PI ;
  124. TN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  125. ((PN0 '/' (GAMMAN '-' 1.0)) '/' (RN0 '*' CV)) ;
  126.  
  127. VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  128.  
  129. ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
  130. ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
  131. ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS' ;
  132.  
  133. 'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
  134. 'MESSAGE' 'Problem 0' ;
  135. 'ERREUR' 5 ;
  136. 'FINSI' ;
  137.  
  138.  
  139. 'SI' GRAPH;
  140. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE' ) 'ET'
  141. ('DOMA' $DOMTOT 'CENTRE')) 'TITRE' 'Domaine et centre' ;
  142. 'FINSI' ;
  143.  
  144. *
  145. ***** Les valeurs en $DOM9 'CENTRE'
  146. *
  147.  
  148. PCON = ('DOMA' $DOM9 'CENTRE') 'POIN' 1 ;
  149. ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ;
  150. cson0 = 'EXTRAIRE' CSONN PCON 'SCAL' ;
  151. ret0 = 'EXTRAIRE' RETN0 PCON 'SCAL' ;
  152.  
  153.  
  154. ***********************
  155. **** Les CHPOINTs ****
  156. ***********************
  157.  
  158. RN = 'COPIER' RN0 ;
  159.  
  160. GN = 'COPIER' GN0 ;
  161.  
  162. RETN = 'COPIER' RETN0 ;
  163.  
  164. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  165.  
  166. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  167.  
  168. CV = PI ;
  169. MU = '*' PI PI ;
  170. KAPPA = '*' ('*' PI PI) PI ;
  171. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  172. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  173. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  174. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  175. *
  176. JACO CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  177. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  178. * 'TAUI' tauimp
  179. LISTINCO ;
  180.  
  181. ***********************
  182. ***** Le residu *******
  183. ***********************
  184.  
  185. DEBRN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  186. DEBGNX0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  187. DEBGNY0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  188. DEBRETN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  189.  
  190.  
  191. *****************************************************
  192. *****************************************************
  193. ******* TEST1 ***************************************
  194. *****************************************************
  195. *****************************************************
  196. *
  197. * On compare le jacobien et la variation du residu
  198. * en $DOM9 'CENTRE' par rapport à une variation
  199. * infinitésimal en $DOM9 'CENTRE'
  200. *
  201.  
  202. UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  203. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  204. 'NATURE' 'DISCRET') 'ET'
  205. ('MANUEL' 'CHPO' ('DOMA' $DOM9 CENTRE) 4 'RN' 1.0
  206. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  207. 'NATURE' 'DISCRET') ;
  208. UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  209. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  210. 'NATURE' 'DISCRET') 'ET'
  211. ('MANUEL' 'CHPO' ('DOMA' $DOM9 CENTRE) 4 'RN' 0.0
  212. 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
  213. 'NATURE' 'DISCRET') ;
  214. UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  215. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  216. 'NATURE' 'DISCRET') 'ET'
  217. ('MANUEL' 'CHPO' ('DOMA' $DOM9 CENTRE) 4 'RN' 0.0
  218. 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
  219. 'NATURE' 'DISCRET') ;
  220. UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  221. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  222. 'NATURE' 'DISCRET') 'ET'
  223. ('MANUEL' 'CHPO' ('DOMA' $DOM9 CENTRE) 4 'RN' 0.0
  224. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0
  225. 'NATURE' 'DISCRET') ;
  226.  
  227.  
  228. DDRHO = 'KOPS' JACO 'MULT' UNRO ;
  229.  
  230. *
  231. *
  232. ***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
  233. * dRES_GXN '/' dRN ('RUXN') ;
  234. * dRES_GYN '/' dRN ('RUYN') ;
  235. * dRES_RETN '/' dRN ('RETN') ;
  236. * DDGX contient ...
  237. *
  238. *
  239.  
  240. DDGX = 'KOPS' JACO 'MULT' UNGX ;
  241. DDGY = 'KOPS' JACO 'MULT' UNGY ;
  242. DDRET = 'KOPS' JACO 'MULT' UNRET ;
  243.  
  244. DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
  245. DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
  246. DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
  247. DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
  248.  
  249. DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
  250. DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
  251. DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
  252. DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
  253.  
  254. DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
  255. DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
  256. DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
  257. DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
  258.  
  259. DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
  260. DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
  261. DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
  262. DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
  263.  
  264.  
  265. *********************************************************************
  266. *********************************************************************
  267. ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) *******
  268. *********************************************************************
  269. *********************************************************************
  270.  
  271. DELTA = 1.0D-6 ;
  272. ro1 = ro0 '*' (1 '+' DELTA) ;
  273. RNDOM9 = 'KCHT' $DOM9 'SCAL' 'CENTRE' ro1 ;
  274.  
  275. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM9 ;
  276.  
  277. GN = 'COPIER' GN0 ;
  278.  
  279. RETN = 'COPIER' RETN0 ;
  280.  
  281. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  282. CV = PI ;
  283. MU = '*' PI PI ;
  284. KAPPA = '*' ('*' PI PI) PI ;
  285. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  286. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  287. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  288. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  289. *
  290. *
  291. *
  292. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  293. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  294. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  295. * 'TAUI' tauimp
  296. LISTINCO ;
  297.  
  298. ***********************
  299. ***** Le residu *******
  300. ***********************
  301.  
  302. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  303. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  304. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  305. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  306.  
  307. *
  308. **** On calcule le jacobien numeriquement
  309. *
  310.  
  311. DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
  312. DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
  313. DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
  314. DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
  315.  
  316.  
  317. ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ;
  318. 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ;
  319. 'SI' (ERR1 > ERRTOL) ;
  320. 'MESSAGE' 'Problem 1';
  321. 'ERREUR' 5 ;
  322. 'FINSI' ;
  323.  
  324. ERR1 = ('ABS' (DGXRN '-' DGXR)) '*'
  325. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  326. 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ;
  327. 'SI' (ERR1 > ERRTOL) ;
  328. 'MESSAGE' 'Problem 2';
  329. 'ERREUR' 5 ;
  330. 'FINSI' ;
  331.  
  332. ERR1 = ('ABS' (DGYRN '-' DGYR)) '*'
  333. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  334. 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ;
  335. 'SI' (ERR1 > ERRTOL) ;
  336. 'MESSAGE' 'Problem 3';
  337. 'ERREUR' 5 ;
  338. 'FINSI' ;
  339.  
  340. ERR1 = ('ABS' (DRETRN '-' DRETR)) '*'
  341. (ro0 '/' (ret0 '*' cson0)) ;
  342. 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ;
  343. 'SI' (ERR1 > ERRTOL) ;
  344. 'MESSAGE' 'Problem 4';
  345. 'ERREUR' 5 ;
  346. 'FINSI' ;
  347.  
  348.  
  349. ***************************************************************************
  350. ***************************************************************************
  351. ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) *****
  352. ***************************************************************************
  353. ***************************************************************************
  354.  
  355.  
  356. DELTA = 1.0D-6 ;
  357. gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ;
  358. gny0 = 'EXTRAIRE' GN0 PCON 'UY' ;
  359. gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ;
  360. GNDOM9 = 'KCHT' $DOM9 'VECT' 'CENTRE' (gnx1 gny0) ;
  361.  
  362.  
  363. RN = 'COPIER' RN0 ;
  364.  
  365. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM9 ;
  366.  
  367. RETN = 'COPIER' RETN0 ;
  368.  
  369. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  370. CV = PI ;
  371. MU = '*' PI PI ;
  372. KAPPA = '*' ('*' PI PI) PI ;
  373. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  374. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  375. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  376. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  377. *
  378. *
  379. *
  380. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  381. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  382. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  383. * 'TAUI' tauimp
  384. LISTINCO ;
  385.  
  386. ***********************
  387. ***** Le residu *******
  388. ***********************
  389.  
  390. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  391. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  392. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  393. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  394.  
  395. *
  396. **** On calcule le jacobien numeriquement
  397. *
  398.  
  399. DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  400. DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  401. DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  402. DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  403.  
  404. ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
  405. 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ;
  406. 'SI' (ERR1 > ERRTOL) ;
  407. 'MESSAGE' 'Problem 5';
  408. 'ERREUR' 5 ;
  409. 'FINSI' ;
  410.  
  411. ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
  412. 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ;
  413. 'SI' (ERR1 > ERRTOL) ;
  414. 'MESSAGE' 'Problem 6';
  415. 'ERREUR' 5 ;
  416. 'FINSI' ;
  417.  
  418. ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
  419. 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ;
  420. 'SI' (ERR1 > ERRTOL) ;
  421. 'MESSAGE' 'Problem 7';
  422. 'ERREUR' 5 ;
  423. 'FINSI' ;
  424.  
  425. ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
  426. (ro0 / ret0) ;
  427. 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ;
  428. 'SI' (ERR1 > ERRTOL) ;
  429. 'MESSAGE' 'Problem 8';
  430. 'ERREUR' 5 ;
  431. 'FINSI' ;
  432.  
  433.  
  434. ***************************************************************************
  435. ***************************************************************************
  436. ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ******
  437. ***************************************************************************
  438. ***************************************************************************
  439.  
  440.  
  441. DELTA = 1.0D-6 ;
  442.  
  443. gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ;
  444. gny0 = 'EXTRAIRE' GN0 PCON 'UY' ;
  445. gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ;
  446. GNDOM9 = 'KCHT' $DOM9 'VECT' 'CENTRE' (gnx0 gny1) ;
  447.  
  448.  
  449. RN = 'COPIER' RN0 ;
  450.  
  451. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM9 ;
  452.  
  453. RETN = 'COPIER' RETN0 ;
  454.  
  455. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  456. CV = PI ;
  457. MU = '*' PI PI ;
  458. KAPPA = '*' ('*' PI PI) PI ;
  459. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  460. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  461. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  462. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  463. *
  464. *
  465. *
  466. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  467. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  468. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  469. * 'TAUI' tauimp
  470. LISTINCO ;
  471.  
  472. ***********************
  473. ***** Le residu *******
  474. ***********************
  475.  
  476. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  477. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  478. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  479. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  480.  
  481. *
  482. **** On calcule le jacobien numeriquement
  483. *
  484.  
  485. DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  486. DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  487. DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  488. DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  489.  
  490. ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
  491. 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ;
  492. 'SI' (ERR1 > ERRTOL) ;
  493. 'MESSAGE' 'Problem 9';
  494. 'ERREUR' 5 ;
  495. 'FINSI' ;
  496.  
  497. ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
  498. 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ;
  499. 'SI' (ERR1 > ERRTOL) ;
  500. 'MESSAGE' 'Problem 10';
  501. 'ERREUR' 5 ;
  502. 'FINSI' ;
  503.  
  504. ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
  505. 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ;
  506. 'SI' (ERR1 > ERRTOL) ;
  507. 'MESSAGE' 'Problem 11';
  508. 'ERREUR' 5 ;
  509. 'FINSI' ;
  510.  
  511.  
  512. ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
  513. (ro0 / ret0) ;
  514. 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ;
  515. 'SI' (ERR1 > ERRTOL) ;
  516. 'MESSAGE' 'Problem 12';
  517. 'ERREUR' 5 ;
  518. 'FINSI' ;
  519.  
  520.  
  521. ***************************************************************************
  522. ***************************************************************************
  523. ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ******
  524. ***************************************************************************
  525. ***************************************************************************
  526.  
  527.  
  528. DELTA = 1.0D-6 ;
  529. ret1 = ret0 '*' (1. '+' DELTA) ;
  530. RETNDOM9 = 'KCHT' $DOM9 'SCAL' 'CENTRE' ret1 ;
  531.  
  532. RN = 'COPIER' RN0 ;
  533.  
  534. GN = 'COPIER' GN0 ;
  535.  
  536. RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM9 ;
  537.  
  538. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  539. CV = PI ;
  540. MU = '*' PI PI ;
  541. KAPPA = '*' ('*' PI PI) PI ;
  542. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  543. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  544. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  545. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  546. *
  547. *
  548. *
  549. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  550. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  551. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  552. * 'TAUI' tauimp
  553. LISTINCO ;
  554.  
  555. ***********************
  556. ***** Le residu *******
  557. ***********************
  558.  
  559. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  560. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  561. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  562. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  563.  
  564. *
  565. **** On calcule le jacobien numeriquement
  566. *
  567.  
  568. DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
  569. DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
  570. DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
  571. DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
  572.  
  573. ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ;
  574. 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ;
  575. 'SI' (ERR1 > ERRTOL) ;
  576. 'MESSAGE' 'Problem 13';
  577. 'ERREUR' 5 ;
  578. 'FINSI' ;
  579.  
  580. ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
  581. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  582. 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ;
  583. 'SI' (ERR1 > ERRTOL) ;
  584. 'MESSAGE' 'Problem 14';
  585. 'ERREUR' 5 ;
  586. 'FINSI' ;
  587.  
  588. ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
  589. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  590. 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ;
  591. 'SI' (ERR1 > ERRTOL) ;
  592. 'MESSAGE' 'Problem 15';
  593. 'ERREUR' 5 ;
  594. 'FINSI' ;
  595.  
  596.  
  597. ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
  598. 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ;
  599. 'SI' (ERR1 > ERRTOL) ;
  600. 'MESSAGE' 'Problem 16';
  601. 'ERREUR' 5 ;
  602. 'FINSI' ;
  603. *****************************************************
  604. *****************************************************
  605. ******* TEST2 ***************************************
  606. *****************************************************
  607. *****************************************************
  608. *
  609. * On compare le jacobien et la variation du residu
  610. * en $DOM9 'CENTRE' par rapport à une variation
  611. * infinitésimal en $DOM6 'CENTRE'
  612. *
  613.  
  614. PCELL = ('DOMA' $DOM6 'CENTRE') 'POIN' 1 ;
  615. ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ;
  616. cson0 = 'EXTRAIRE' CSONN PCELL 'SCAL' ;
  617. ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ;
  618.  
  619.  
  620. UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  621. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  622. 'NATURE' 'DISCRET') 'ET'
  623. ('MANUEL' 'CHPO' ('DOMA' $DOM6 CENTRE) 4 'RN' 1.0
  624. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  625. 'NATURE' 'DISCRET') ;
  626. UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  627. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  628. 'NATURE' 'DISCRET') 'ET'
  629. ('MANUEL' 'CHPO' ('DOMA' $DOM6 CENTRE) 4 'RN' 0.0
  630. 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
  631. 'NATURE' 'DISCRET') ;
  632. UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  633. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  634. 'NATURE' 'DISCRET') 'ET'
  635. ('MANUEL' 'CHPO' ('DOMA' $DOM6 CENTRE) 4 'RN' 0.0
  636. 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
  637. 'NATURE' 'DISCRET') ;
  638. UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  639. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  640. 'NATURE' 'DISCRET') 'ET'
  641. ('MANUEL' 'CHPO' ('DOMA' $DOM6 CENTRE) 4 'RN' 0.0
  642. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0
  643. 'NATURE' 'DISCRET') ;
  644.  
  645.  
  646. DDRHO = 'KOPS' JACO 'MULT' UNRO ;
  647.  
  648. *
  649. *
  650. ***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
  651. * dRES_GXN '/' dRN ('RUXN') ;
  652. * dRES_GYN '/' dRN ('RUYN') ;
  653. * dRES_RETN '/' dRN ('RETN') ;
  654. * DDGX contient ...
  655. *
  656. *
  657.  
  658. DDGX = 'KOPS' JACO 'MULT' UNGX ;
  659. DDGY = 'KOPS' JACO 'MULT' UNGY ;
  660. DDRET = 'KOPS' JACO 'MULT' UNRET ;
  661.  
  662. DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
  663. DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
  664. DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
  665. DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
  666.  
  667. DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
  668. DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
  669. DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
  670. DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
  671.  
  672. DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
  673. DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
  674. DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
  675. DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
  676.  
  677. DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
  678. DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
  679. DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
  680. DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
  681.  
  682.  
  683.  
  684. *********************************************************************
  685. *********************************************************************
  686. ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) *******
  687. *********************************************************************
  688. *********************************************************************
  689.  
  690. DELTA = 1.0D-6 ;
  691. ro1 = ro0 '*' (1 '+' DELTA) ;
  692. RNDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ro1 ;
  693.  
  694. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM6 ;
  695.  
  696. GN = 'COPIER' GN0 ;
  697.  
  698. RETN = 'COPIER' RETN0 ;
  699.  
  700. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  701. CV = PI ;
  702. MU = '*' PI PI ;
  703. KAPPA = '*' ('*' PI PI) PI ;
  704. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  705. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  706. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  707. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  708. *
  709. *
  710. *
  711. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  712. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  713. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  714. LISTINCO ;
  715.  
  716. ***********************
  717. ***** Le residu *******
  718. ***********************
  719.  
  720. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  721. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  722. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  723. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  724.  
  725.  
  726. *
  727. **** On calcule le jacobien numeriquement
  728. *
  729.  
  730. DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
  731. DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
  732. DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
  733. DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
  734.  
  735.  
  736. ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ;
  737. 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ;
  738. 'SI' (ERR1 > ERRTOL) ;
  739. 'MESSAGE' 'Problem 1';
  740. 'ERREUR' 5 ;
  741. 'FINSI' ;
  742.  
  743. ERR1 = ('ABS' (DGXRN '-' DGXR)) '*'
  744. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  745. 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ;
  746. 'SI' (ERR1 > ERRTOL) ;
  747. 'MESSAGE' 'Problem 2';
  748. 'ERREUR' 5 ;
  749. 'FINSI' ;
  750.  
  751. ERR1 = ('ABS' (DGYRN '-' DGYR)) '*'
  752. (ro0 '/' (ro0 '*' cson0 '*' cson0)) ;
  753. 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ;
  754. 'SI' (ERR1 > ERRTOL) ;
  755. 'MESSAGE' 'Problem 3';
  756. 'ERREUR' 5 ;
  757. 'FINSI' ;
  758.  
  759. ERR1 = ('ABS' (DRETRN '-' DRETR)) '*'
  760. (ro0 '/' (ret0 '*' cson0)) ;
  761. 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ;
  762. 'SI' (ERR1 > ERRTOL) ;
  763. 'MESSAGE' 'Problem 4';
  764. 'ERREUR' 5 ;
  765. 'FINSI' ;
  766.  
  767. ***************************************************************************
  768. ***************************************************************************
  769. ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) *****
  770. ***************************************************************************
  771. ***************************************************************************
  772.  
  773. DELTA = 1.0D-6 ;
  774. gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
  775. gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
  776. gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ;
  777. GNDOM6 = 'KCHT' $DOM6 'VECT' 'CENTRE' (gnx1 gny0) ;
  778.  
  779.  
  780. RN = 'COPIER' RN0 ;
  781.  
  782. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM6 ;
  783.  
  784. RETN = 'COPIER' RETN0 ;
  785.  
  786. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  787. CV = PI ;
  788. MU = '*' PI PI ;
  789. KAPPA = '*' ('*' PI PI) PI ;
  790. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  791. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  792. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  793. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  794. *
  795. *
  796. *
  797. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  798. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  799. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  800. LISTINCO ;
  801.  
  802. ***********************
  803. ***** Le residu *******
  804. ***********************
  805.  
  806. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  807. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  808. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  809. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  810.  
  811. *
  812. **** On calcule le jacobien numeriquement
  813. *
  814.  
  815. DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  816. DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  817. DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  818. DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  819.  
  820. ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
  821. 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ;
  822. 'SI' (ERR1 > ERRTOL) ;
  823. 'MESSAGE' 'Problem 5';
  824. 'ERREUR' 5 ;
  825. 'FINSI' ;
  826.  
  827. ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
  828. 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ;
  829. 'SI' (ERR1 > ERRTOL) ;
  830. 'MESSAGE' 'Problem 6';
  831. 'ERREUR' 5 ;
  832. 'FINSI' ;
  833.  
  834. ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
  835. 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ;
  836. 'SI' (ERR1 > ERRTOL) ;
  837. 'MESSAGE' 'Problem 7';
  838. 'ERREUR' 5 ;
  839. 'FINSI' ;
  840.  
  841.  
  842. ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
  843. (ro0 / ret0) ;
  844. 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ;
  845. 'SI' (ERR1 > ERRTOL) ;
  846. 'MESSAGE' 'Problem 8';
  847. 'ERREUR' 5 ;
  848. 'FINSI' ;
  849.  
  850.  
  851. ***************************************************************************
  852. ***************************************************************************
  853. ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ******
  854. ***************************************************************************
  855. ***************************************************************************
  856.  
  857.  
  858. DELTA = 1.0D-6 ;
  859.  
  860. gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
  861. gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
  862. gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ;
  863. GNDOM6 = 'KCHT' $DOM6 'VECT' 'CENTRE' (gnx0 gny1) ;
  864.  
  865.  
  866. RN = 'COPIER' RN0 ;
  867.  
  868. GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM6 ;
  869.  
  870. RETN = 'COPIER' RETN0 ;
  871.  
  872. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  873. CV = PI ;
  874. MU = '*' PI PI ;
  875. KAPPA = '*' ('*' PI PI) PI ;
  876. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  877. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  878. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  879. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  880. *
  881. *
  882. *
  883. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  884. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  885. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  886. LISTINCO ;
  887.  
  888. ***********************
  889. ***** Le residu *******
  890. ***********************
  891.  
  892. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  893. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  894. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  895. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  896.  
  897.  
  898. *
  899. **** On calcule le jacobien numeriquement
  900. *
  901.  
  902. DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
  903. DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
  904. DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
  905. DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
  906.  
  907. ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
  908. 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ;
  909. 'SI' (ERR1 > ERRTOL) ;
  910. 'MESSAGE' 'Problem 9';
  911. 'ERREUR' 5 ;
  912. 'FINSI' ;
  913.  
  914. ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
  915. 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ;
  916. 'SI' (ERR1 > ERRTOL) ;
  917. 'MESSAGE' 'Problem 10';
  918. 'ERREUR' 5 ;
  919. 'FINSI' ;
  920.  
  921. ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
  922. 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ;
  923. 'SI' (ERR1 > ERRTOL) ;
  924. 'MESSAGE' 'Problem 11';
  925. 'ERREUR' 5 ;
  926. 'FINSI' ;
  927.  
  928. ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
  929. (ro0 / ret0) ;
  930. 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ;
  931. 'SI' (ERR1 > ERRTOL) ;
  932. 'MESSAGE' 'Problem 12';
  933. 'ERREUR' 5 ;
  934. 'FINSI' ;
  935.  
  936.  
  937. ***************************************************************************
  938. ***************************************************************************
  939. ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ******
  940. ***************************************************************************
  941. ***************************************************************************
  942.  
  943.  
  944. DELTA = 1.0D-6 ;
  945. ret1 = ret0 '*' (1. '+' DELTA) ;
  946. RETNDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ret1 ;
  947.  
  948. RN = 'COPIER' RN0 ;
  949.  
  950. GN = 'COPIER' GN0 ;
  951.  
  952. RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM6 ;
  953.  
  954. V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
  955. CV = PI ;
  956. MU = '*' PI PI ;
  957. KAPPA = '*' ('*' PI PI) PI ;
  958. T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
  959. ((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
  960. GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
  961. GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
  962. *
  963. *
  964. *
  965. LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' ;
  966. IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
  967. $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
  968. LISTINCO ;
  969.  
  970. ***********************
  971. ***** Le residu *******
  972. ***********************
  973.  
  974. DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
  975. DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
  976. DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
  977. DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
  978.  
  979. *
  980. **** On calcule le jacobien numeriquement
  981. *
  982.  
  983. DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
  984. DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
  985. DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
  986. DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
  987.  
  988. ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ;
  989. 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ;
  990. 'SI' (ERR1 > ERRTOL) ;
  991. 'MESSAGE' 'Problem 13';
  992. 'ERREUR' 5 ;
  993. 'FINSI' ;
  994.  
  995.  
  996. ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
  997. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  998. 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ;
  999. 'SI' (ERR1 > ERRTOL) ;
  1000. 'MESSAGE' 'Problem 14';
  1001. 'ERREUR' 5 ;
  1002. 'FINSI' ;
  1003.  
  1004. ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
  1005. (ret0 '/' (ro0 '*' cson0 * cson0)) ;
  1006. 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ;
  1007. 'SI' (ERR1 > ERRTOL) ;
  1008. 'MESSAGE' 'Problem 15';
  1009. 'ERREUR' 5 ;
  1010. 'FINSI' ;
  1011.  
  1012.  
  1013. ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
  1014. 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ;
  1015. 'SI' (ERR1 > ERRTOL) ;
  1016. 'MESSAGE' 'Problem 16';
  1017. 'ERREUR' 5 ;
  1018. 'FINSI' ;
  1019.  
  1020.  
  1021. *****************************************************
  1022. *****************************************************
  1023. ******* TEST3 ***************************************
  1024. *****************************************************
  1025. *****************************************************
  1026. *
  1027. * On observe que la variation du residu
  1028. * en $DOM9 'CENTRE' par rapport à une variation
  1029. * infinitésimal en $DOM7 'CENTRE' doit etre nulle.
  1030. * Donc les elements du jacobien relatifs à ça
  1031. * doivent etre nuls.
  1032. *
  1033.  
  1034. PCELL = ('DOMA' $DOM7 'CENTRE') 'POIN' 1 ;
  1035.  
  1036. UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  1037. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  1038. 'NATURE' 'DISCRET') 'ET'
  1039. ('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 4 'RN' 1.0
  1040. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  1041. 'NATURE' 'DISCRET') ;
  1042. UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  1043. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  1044. 'NATURE' 'DISCRET') 'ET'
  1045. ('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 4 'RN' 0.0
  1046. 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
  1047. 'NATURE' 'DISCRET') ;
  1048. UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  1049. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  1050. 'NATURE' 'DISCRET') 'ET'
  1051. ('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 4 'RN' 0.0
  1052. 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
  1053. 'NATURE' 'DISCRET') ;
  1054. UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
  1055. 4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
  1056. 'NATURE' 'DISCRET') 'ET'
  1057. ('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 4 'RN' 0.0
  1058. 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0
  1059. 'NATURE' 'DISCRET') ;
  1060.  
  1061. DDRHO = 'KOPS' JACO 'MULT' UNRO ;
  1062.  
  1063. *
  1064. *
  1065. ***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
  1066. * dRES_GXN '/' dRN ('RUXN') ;
  1067. * dRES_GYN '/' dRN ('RUYN') ;
  1068. * dRES_RETN '/' dRN ('RETN') ;
  1069. * DDGX contient ...
  1070. *
  1071. *
  1072.  
  1073. DDGX = 'KOPS' JACO 'MULT' UNGX ;
  1074. DDGY = 'KOPS' JACO 'MULT' UNGY ;
  1075. DDRET = 'KOPS' JACO 'MULT' UNRET ;
  1076.  
  1077. DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
  1078. DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
  1079. DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
  1080. DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
  1081.  
  1082. DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
  1083. DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
  1084. DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
  1085. DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
  1086.  
  1087. DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
  1088. DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
  1089. DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
  1090. DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
  1091.  
  1092. DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
  1093. DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
  1094. DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
  1095. DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
  1096.  
  1097. 'MESSAGE' ('CHAINE' 'DRR =' DRR ' DGXR =' DGXR) ;
  1098. 'MESSAGE' ('CHAINE' 'DGYR=' DGYR ' DRETR=' DRETR) ;
  1099. 'MESSAGE' ('CHAINE' 'DRGX =' DRGX ' DGXGX =' DGXGX) ;
  1100. 'MESSAGE' ('CHAINE' 'DGYGX=' DGYGX ' DRETGX=' DRETGX) ;
  1101. 'MESSAGE' ('CHAINE' 'DRGY =' DRGY ' DGXGY =' DGXGY) ;
  1102. 'MESSAGE' ('CHAINE' 'DGYGY=' DGYGY ' DRETGY=' DRETGY) ;
  1103. 'MESSAGE' ('CHAINE' 'DRRET =' DRRET ' DGXRET =' DGXRET) ;
  1104. 'MESSAGE' ('CHAINE' 'DGYRET=' DGYRET ' DRETRET=' DRETRET) ;
  1105.  
  1106. 'SI' (('MAXIMUM'
  1107. ('PROG' DRR DGXR DGYR DRETR
  1108. DRGX DGXGX DGYGX DRETGX
  1109. DRGY DGXGY DGYGY DRETGY
  1110. DRRET DGXRET DGYRET DRETRET ) 'ABS' )
  1111. > ERRTOL) ;
  1112. 'MESSAGE' 'Problem 17' ;
  1113. 'ERREUR' 5 ;
  1114. 'FINSI' ;
  1115.  
  1116. 'FIN' ;
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  

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