Télécharger precmat.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : precmat.dgibi
  2. ************************************************************
  3. **** OPERATEUR 'KOPS' ****
  4. **** Matrice de preconditionnement écoulements bas mach ****
  5. **** divisé par le pas de temps locale. ****
  6. **** ****
  7. **** A. BECCANTINI, S. V. KUDRIAKOV, LTMF ****
  8. **** NOVEMBRE 2001 ****
  9. ************************************************************
  10.  
  11. 'OPTION' 'ECHO' 1 ;
  12. 'OPTION' 'DIME' 2 ;
  13. 'OPTION' 'ELEM' 'TRI3' ;
  14. 'OPTION' 'TRAC' 'X' ;
  15.  
  16. GRAPH = FAUX ;
  17. * GRAPH = VRAI ;
  18.  
  19. *
  20. *** MAILLAGE
  21. *
  22.  
  23. P0 = 0.0D0 0.0D0 ;
  24. P1 = 3.0D0 0.0D0 ;
  25. P2 = 3.0D0 3.0D0 ;
  26. P3 = 0.0D0 3.0D0 ;
  27. P4 = 6.0D0 0.0D0 ;
  28. P5 = 6.0D0 3.0D0 ;
  29.  
  30. RAF = 1 ;
  31.  
  32. N1 = 2 '*' RAF ;
  33. N2 = 2 '*' RAF ;
  34. N3 = 2 '*' RAF ;
  35. N4 = 2 '*' RAF ;
  36. N5 = 1 '*' RAF ;
  37. N6 = 2 '*' RAF ;
  38. N7 = 2 '*' RAF ;
  39.  
  40. LINEXT1 = ((P0 'DROIT' N1 P1) 'ET' (P1 'DROIT' N2 P2) 'ET'
  41. (P2 'DROIT' N3 P3) 'ET' (P3 'DROIT' N4 P0)) ;
  42.  
  43. LINEXT2 = ((P1 'DROIT' N2 P2) 'ET' (P2 'DROIT' N5 P5) 'ET'
  44. (P5 'DROIT' N6 P4) 'ET' (P4 'DROIT' N7 P1)) ;
  45.  
  46. 'OPTION' 'ELEM' QUA4 ;
  47. DOM1 = 'SURFACE' LINEXT1 'PLAN' ;
  48.  
  49. 'OPTION' 'ELEM' TRI3 ;
  50. DOM2 = 'SURFACE' LINEXT2 'PLAN' ;
  51.  
  52. DOMTOT = DOM1 'ET' DOM2;
  53. 'ELIMINATION' 1D-6 DOMTOT;
  54.  
  55. CHPBRU = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 DOMTOT)
  56. 'NATU' 'DISCRET') 'ET'
  57. ('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 0.0 0.2 DOMTOT)
  58. 'NATU' 'DISCRET') ;
  59.  
  60. 'FORME' CHPBRU ;
  61.  
  62. 'SI' GRAPH ;
  63. 'TRACER' DOMTOT ;
  64. 'FINSI' ;
  65.  
  66. $DOMTOT = 'DOMA' DOMTOT ;
  67. DIAMIN = 'DOMA' $DOMTOT 'DIAMIN' ;
  68.  
  69. *
  70. **** 'KONV' pour la creation de la matrice identité
  71. *
  72.  
  73. LMOT = 'MOTS' 'R' 'UX' 'UY' 'RET' ;
  74.  
  75. MAT1 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
  76.  
  77. RN = ('BRUI' 'BLAN' 'UNIF' 1.0 0.4 ($DOMTOT . 'CENTRE')) ;
  78. PN = ('BRUI' 'BLAN' 'UNIF' 1.11 0.3 ($DOMTOT . 'CENTRE')) ;
  79. GAMN = ('BRUI' 'BLAN' 'UNIF' 1.4 0.1 ($DOMTOT . 'CENTRE')) ;
  80. CN = GAMN '*' (PN '/' RN) ;
  81. CN = CN '**' 0.5 ;
  82.  
  83. * Supersonic case
  84.  
  85. VN = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 1.5 0.25 ($DOMTOT . 'CENTRE'))
  86. 'NATU' 'DISCRET') 'ET'
  87. ('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 1.0 0.2 ($DOMTOT . 'CENTRE'))
  88. 'NATU' 'DISCRET') ;
  89.  
  90. VN = VN '*' CN ('MOTS' 'UX' 'UY') ('MOTS' 'SCAL' 'SCAL')
  91. ('MOTS' 'UX' 'UY') ;
  92.  
  93. * En ce cas particulier, MAT2 = matrice identité '/' dt
  94. * et DT = DIAMIN '/' (QQ '+' CN)
  95.  
  96. UINF = 'MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 1 'SCAL' 0.0 ;
  97. UINF1 = 'MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 1 'SCAL' 0.0 ;
  98.  
  99. MAT2 = 'KONV' 'VF' 'PERFMONO' 'GAMMCONS' LMOT ($DOMTOT . 'CENTRE')
  100. DIAMIN RN VN PN GAMN UINF UINF1 ;
  101.  
  102. QQ = 'PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  103. QQ = QQ ** 0.5 ;
  104. UNSDT = (QQ '+' CN) '/' DIAMIN ;
  105.  
  106. UTEST = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 4
  107. 'R' 11.0 'UX' 12.0 'UY' 13.0 'RET' 14.0 'NATU' 'DISCRET') ;
  108. UTEST1 = UTEST '*' UNSDT ;
  109.  
  110. ERRO = 'MAXIMUM'
  111. (('KOPS' 'MULT' MAT1 UTEST1) '-' ('KOPS' 'MULT' MAT2 UTEST))
  112. 'ABS' ;
  113.  
  114. 'SI' (ERRO > 1.0D-12) ;
  115. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  116. 'ERREUR' 5 ;
  117. 'FINSI' ;
  118.  
  119.  
  120. * Dans de vitesse subsonique, on calcules les elts de la matrice dans
  121. * l'elt3
  122.  
  123. DOM3 = 'ELEM' DOMTOT 'QUA4' 3 ;
  124. $DOM3 = 'DOMA' DOM3 'INCL' $DOMTOT ;
  125.  
  126. RN3 = 'MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1 'SCAL' 1.11 'NATU' 'DISCRET'
  127. ;
  128. PN3 = 'MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1 'SCAL' 7.17 'NATU' 'DISCRET'
  129. ;
  130. GAMN3 = 'MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1 'SCAL' 1.4 'NATU'
  131. 'DISCRET' ;
  132. CN3 = GAMN3 '*' (PN3 '/' RN3) ;
  133. CN3 = CN3 '**' 0.5 ;
  134. VN3 = 'MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 2 'UX' 0.1 'UY' 0.2
  135. 'NATU' 'DISCRET' ;
  136. VN3 = VN3 '*' CN3 ('MOTS' 'UX' 'UY') ('MOTS' 'SCAL' 'SCAL')
  137. ('MOTS' 'UX' 'UY') 'NATU' 'DISCRET' ;
  138.  
  139. RN = (RN '-' ('REDU' RN ($DOM3 . 'CENTRE'))) '+' RN3 ;
  140. PN = (PN '-' ('REDU' PN ($DOM3 . 'CENTRE'))) '+' PN3 ;
  141. VN = (VN '-' ('REDU' VN ($DOM3 . 'CENTRE'))) '+' VN3 ;
  142. GAMN = (GAMN '-' ('REDU' GAMN ($DOM3 . 'CENTRE'))) '+' GAMN3 ;
  143.  
  144.  
  145. MAT = 'KONV' 'VF' 'PERFMONO' 'GAMMCONS' LMOT ($DOMTOT . 'CENTRE')
  146. DIAMIN RN VN PN GAMN UINF UINF1 ;
  147.  
  148. UNZERO = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 4
  149. 'R' 0.0 'UX' 0.0 'UY' 0.0 'RET' 0.0 'NATU' 'DISCRET') ;
  150. UNRN3 = ('MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1
  151. 'R' 1.0 'NATU' 'DISCRET') 'ET' UNZERO ;
  152. UNVX3 = ('MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1
  153. 'UX' 1.0 'NATU' 'DISCRET') 'ET' UNZERO ;
  154. UNVY3 = ('MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1
  155. 'UY' 1.0 'NATU' 'DISCRET') 'ET' UNZERO ;
  156. UNRETN3 = ('MANUEL' 'CHPO' ($DOM3 . 'CENTRE') 1
  157. 'RET' 1.0 'NATU' 'DISCRET') 'ET' UNZERO ;
  158.  
  159. *
  160. * \Gamma(1,1) = 1.19000000000000394
  161. * \Gamma(1,2) = -0.252726909164141866
  162. * \Gamma(1,3) = -0.505453818328283733
  163. * \Gamma(1,4) = 0.840406455469216551
  164. * \Gamma(2,1) = 0.571367728421105434E-01
  165. * \Gamma(2,2) = 0.924000000000000044
  166. * \Gamma(2,3) = -0.151999999999999941
  167. * \Gamma(2,4) = 0.252726909164141866
  168. * \Gamma(3,1) = 0.114273545684221087
  169. * \Gamma(3,2) = -0.151999999999999941
  170. * \Gamma(3,3) = 0.696000000000000063
  171. * \Gamma(3,4) = 0.505453818328283733
  172. * \Gamma(4,1) = 4.33849594594603438
  173. * \Gamma(4,2) = -5.77081405705304729
  174. * \Gamma(4,3) = -11.5416281141060946
  175. * \Gamma(4,4) = 20.1899999999999906
  176. *
  177.  
  178. * We have to divide them by DT
  179. * In this case uref = qq
  180. *
  181. *
  182. QQ = 'PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  183. QQ = QQ ** 0.5 ;
  184. qq = 'EXTRAIRE' QQ ('POIN' 1 ($DOM3 . 'CENTRE')) 'SCAL' ;
  185. CN = ((GAMN * PN) '/' RN) ** 0.5 ;
  186. a = 'EXTRAIRE' CN ('POIN' 1 ($DOM3 . 'CENTRE')) 'SCAL' ;
  187. ur = qq ;
  188. mref=ur '/' a ;
  189. mref2=mref '*' mref ;
  190. mach=qq '/' a ;
  191. mach2=mach '*' mach ;
  192. lambda=(1.0D0 '-' mref2) '**' 2 ;
  193. lambda=(lambda '*' mach2) '+' (4.0D0 '*' mref2) ;
  194. lambda=(lambda '**' 0.5) * a ;
  195. lambda=( (1.0D0 '+' mref2) '*' qq) '+' lambda ;
  196. lambda=lambda '*' 0.5D0 ;
  197. dtau= ('EXTRAIRE' DIAMIN 'SCAL'
  198. ('POIN' 1 ($DOM3 . 'CENTRE'))) / lambda ;
  199.  
  200. ERRTOL = 1.0D-8 ;
  201.  
  202. * 'XTY' UNR3 donne la premiére ligne
  203.  
  204. GAMMA11 = ('XTY' UNRN3 ('KOPS' MAT 'MULT' UNRN3) LMOT LMOT) * dtau ;
  205. 'SI' (('ABS' (GAMMA11 '-' 1.19000000000000)) '>' ERRTOL) ;
  206. 'MESSAGE' ;
  207. 'MESSAGE' 'GAMMA11' ;
  208. 'MESSAGE' ;
  209. 'ERREUR' 5 ;
  210. 'FINSI' ;
  211.  
  212. GAMMA12 = 'XTY' UNRN3 ('KOPS' MAT 'MULT' UNVX3) LMOT LMOT ;
  213. GAMMA12 = GAMMA12 * dtau ;
  214. 'SI' (('ABS' (GAMMA12 '-' -0.25272690916414)) '>' ERRTOL) ;
  215. 'MESSAGE' ;
  216. 'MESSAGE' 'GAMMA12²' ;
  217. 'MESSAGE' ;
  218. 'ERREUR' 5 ;
  219. 'FINSI' ;
  220.  
  221. GAMMA13 = 'XTY' UNRN3 ('KOPS' MAT 'MULT' UNVY3) LMOT LMOT ;
  222. GAMMA13 = GAMMA13 * DTAU ;
  223. 'SI' (('ABS' (GAMMA13 '-' -0.50545381832828)) '>' ERRTOL) ;
  224. 'MESSAGE' ;
  225. 'MESSAGE' 'GAMMA13' ;
  226. 'MESSAGE' ;
  227. 'ERREUR' 5 ;
  228. 'FINSI' ;
  229.  
  230. GAMMA14 = 'XTY' UNRN3 ('KOPS' MAT 'MULT' UNRETN3) LMOT LMOT ;
  231. GAMMA14 = GAMMA14 * DTAU ;
  232. 'SI' (('ABS' (GAMMA14 '-' 0.840406455469217)) '>' ERRTOL) ;
  233. 'MESSAGE' ;
  234. 'MESSAGE' 'GAMMA14' ;
  235. 'MESSAGE' ;
  236. 'ERREUR' 5 ;
  237. 'FINSI' ;
  238.  
  239. * 'XTY' UVNX3 donne la deuxieme ligne
  240.  
  241. GAMMA21 = 'XTY' UNVX3 ('KOPS' MAT 'MULT' UNRN3) LMOT LMOT ;
  242. GAMMA21 = GAMMA21 * DTAU ;
  243. 'SI' (('ABS' (GAMMA21 '-' 0.571367728421105434E-01)) '>' ERRTOL) ;
  244. 'MESSAGE' ;
  245. 'MESSAGE' 'GAMMA21' ;
  246. 'MESSAGE' ;
  247. 'ERREUR' 5 ;
  248. 'FINSI' ;
  249.  
  250. GAMMA22 = 'XTY' UNVX3 ('KOPS' MAT 'MULT' UNVX3) LMOT LMOT ;
  251. GAMMA22 = GAMMA22 * DTAU ;
  252. 'SI' (('ABS' (GAMMA22 '-' 0.924000000000000044)) '>' ERRTOL) ;
  253. 'MESSAGE' ;
  254. 'MESSAGE' 'GAMMA22²' ;
  255. 'MESSAGE' ;
  256. 'ERREUR' 5 ;
  257. 'FINSI' ;
  258.  
  259. GAMMA23 = 'XTY' UNVX3 ('KOPS' MAT 'MULT' UNVY3) LMOT LMOT ;
  260. GAMMA23 = GAMMA23 * DTAU ;
  261. 'SI' (('ABS' (GAMMA23 '-' -0.151999999999999941)) '>' ERRTOL) ;
  262. 'MESSAGE' ;
  263. 'MESSAGE' 'GAMMA23' ;
  264. 'MESSAGE' ;
  265. 'ERREUR' 5 ;
  266. 'FINSI' ;
  267.  
  268. GAMMA24 = 'XTY' UNVX3 ('KOPS' MAT 'MULT' UNRETN3) LMOT LMOT ;
  269. GAMMA24 = GAMMA24 * DTAU ;
  270. 'SI' (('ABS' (GAMMA24 '-' 0.252726909164141866)) '>' ERRTOL) ;
  271. 'MESSAGE' ;
  272. 'MESSAGE' 'GAMMA24' ;
  273. 'MESSAGE' ;
  274. 'ERREUR' 5 ;
  275. 'FINSI' ;
  276.  
  277. * 'XTY' UNVY3 donne la deuxieme ligne
  278.  
  279. GAMMA31 = 'XTY' UNVY3 ('KOPS' MAT 'MULT' UNRN3) LMOT LMOT ;
  280. GAMMA31 = GAMMA31 * DTAU ;
  281. 'SI' (('ABS' (GAMMA31 '-' 0.114273545684221087)) '>' ERRTOL) ;
  282. 'MESSAGE' ;
  283. 'MESSAGE' 'GAMMA31' ;
  284. 'MESSAGE' ;
  285. 'ERREUR' 5 ;
  286. 'FINSI' ;
  287.  
  288. GAMMA32 = 'XTY' UNVY3 ('KOPS' MAT 'MULT' UNVX3) LMOT LMOT ;
  289. GAMMA32 = GAMMA32 * DTAU ;
  290. 'SI' (('ABS' (GAMMA32 '-' -0.151999999999999941)) '>' ERRTOL) ;
  291. 'MESSAGE' ;
  292. 'MESSAGE' 'GAMMA32' ;
  293. 'MESSAGE' ;
  294. 'ERREUR' 5 ;
  295. 'FINSI' ;
  296.  
  297. GAMMA33 = 'XTY' UNVY3 ('KOPS' MAT 'MULT' UNVY3) LMOT LMOT ;
  298. GAMMA33 = GAMMA33 * DTAU ;
  299. 'SI' (('ABS' (GAMMA33 '-' 0.696000000000000063)) '>' ERRTOL) ;
  300. 'MESSAGE' ;
  301. 'MESSAGE' 'GAMMA33' ;
  302. 'MESSAGE' ;
  303. 'ERREUR' 5 ;
  304. 'FINSI' ;
  305.  
  306. GAMMA34 = 'XTY' UNVY3 ('KOPS' MAT 'MULT' UNRETN3) LMOT LMOT ;
  307. GAMMA34 = GAMMA34 * DTAU ;
  308. 'SI' (('ABS' (GAMMA34 '-' 0.505453818328283733)) '>' ERRTOL) ;
  309. 'MESSAGE' ;
  310. 'MESSAGE' 'GAMMA34' ;
  311. 'MESSAGE' ;
  312. 'ERREUR' 5 ;
  313. 'FINSI' ;
  314.  
  315.  
  316. * 'XTY' UNVY3 donne la deuxieme ligne
  317.  
  318. GAMMA41 = 'XTY' UNRETN3 ('KOPS' MAT 'MULT' UNRN3) LMOT LMOT ;
  319. GAMMA41 = GAMMA41 * DTAU ;
  320. 'SI' (('ABS' (GAMMA41 '-' 4.33849594594603438)) '>' ERRTOL) ;
  321. 'MESSAGE' ;
  322. 'MESSAGE' 'GAMMA41' ;
  323. 'MESSAGE' ;
  324. 'ERREUR' 5 ;
  325. 'FINSI' ;
  326.  
  327. GAMMA42 = 'XTY' UNRETN3 ('KOPS' MAT 'MULT' UNVX3) LMOT LMOT ;
  328. GAMMA42 = GAMMA42 * DTAU ;
  329. 'SI' (('ABS' (GAMMA42 '-' -5.77081405705304729)) '>' ERRTOL) ;
  330. 'MESSAGE' ;
  331. 'MESSAGE' 'GAMMA42' ;
  332. 'MESSAGE' ;
  333. 'ERREUR' 5 ;
  334. 'FINSI' ;
  335.  
  336. GAMMA43 = 'XTY' UNRETN3 ('KOPS' MAT 'MULT' UNVY3) LMOT LMOT ;
  337. GAMMA43 = GAMMA43 * DTAU ;
  338. 'SI' (('ABS' (GAMMA43 '-' -11.5416281141060946)) '>' ERRTOL) ;
  339. 'MESSAGE' ;
  340. 'MESSAGE' 'GAMMA43' ;
  341. 'MESSAGE' ;
  342. 'ERREUR' 5 ;
  343. 'FINSI' ;
  344.  
  345. GAMMA44 = 'XTY' UNRETN3 ('KOPS' MAT 'MULT' UNRETN3) LMOT LMOT ;
  346. GAMMA44 = GAMMA44 * DTAU ;
  347. 'SI' (('ABS' (GAMMA44 '-' 20.1899999999999906)) '>' ERRTOL) ;
  348. 'MESSAGE' ;
  349. 'MESSAGE' 'GAMMA44' ;
  350. 'MESSAGE' ;
  351. 'ERREUR' 5 ;
  352. 'FINSI' ;
  353.  
  354.  
  355. * Gamma with respect to primitive variables
  356.  
  357. LMOT1 = LMOT ;
  358. LMOT2 = 'MOTS' 'RN' 'UX2' 'UY2' 'PN' ;
  359.  
  360. MAT = 'KONV' 'VF' 'PERFMONO' 'GAMMCONS' LMOT ($DOMTOT . 'CENTRE')
  361. DIAMIN RN VN PN GAMN UINF UINF1 ;
  362.  
  363. MATGP = 'KONV' 'VF' 'PERFMONO' 'GAMMPRIM' ($DOMTOT . 'CENTRE')
  364. LMOT1 LMOT2
  365. DIAMIN RN VN PN GAMN UINF UINF1 ;
  366.  
  367. MATJAC = 'PRIM' 'CONSPRIM' ($DOMTOT . 'CENTRE')
  368. LMOT1 LMOT2
  369. RN VN PN GAMN ;
  370.  
  371. * MATGP = MAT2 * MATJAC
  372. * 'KOPS' 'MULT' ne marche pas avec deux matrik
  373. * Mais MAT2 * MATJAC * UN = MATGP * UN
  374.  
  375. UN = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 4
  376. 'RN' 0.10 'UX2' 11.0 'UY2' 31.0 'PN' 41.0 'NATU' 'DISCRET') ;
  377.  
  378. UN1 = 'KOPS' 'MULT' MATJAC UN ;
  379.  
  380. UN2 = 'KOPS' 'MULT' MAT UN1 ;
  381.  
  382. UN3 = 'KOPS' 'MULT' MATGP UN ;
  383.  
  384. ERRO = 'MAXIMUM' (UN2 '-' UN3) 'ABS' ;
  385.  
  386. 'SI' (ERRO > 1.0D-12) ;
  387. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  388. 'ERREUR' 5 ;
  389. 'FINSI' ;
  390.  
  391. * What happens if UINF = CSON
  392.  
  393. MAT1 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
  394.  
  395. CN = ((GAMN '*' PN) '/' RN) '**' 0.5 ;
  396. MACHN = 'PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  397. MACHN = MACHN '**' 0.5 ;
  398. MACHN = MACHN '/' CN ;
  399.  
  400. UINF = CN ;
  401.  
  402. MAT2 = 'KONV' 'VF' 'PERFMONO' 'GAMMCONS' LMOT ($DOMTOT . 'CENTRE')
  403. DIAMIN RN VN PN GAMN UINF UINF1 ;
  404.  
  405. * UREF = UINF = CN -> DT = DIAMIN '/' (QQ '+' CN)
  406.  
  407. QQ = 'PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  408. QQ = QQ ** 0.5 ;
  409. UNSDT = (QQ '+' CN) '/' DIAMIN ;
  410.  
  411. UTEST = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 4
  412. 'R' 11.0 'UX' 12.0 'UY' 13.0 'RET' 14.0 'NATU' 'DISCRET') ;
  413. UTEST1 = UTEST '*' UNSDT ;
  414.  
  415. ERRO = 'MAXIMUM'
  416. (('KOPS' 'MULT' MAT1 UTEST1) '-' ('KOPS' 'MULT' MAT2 UTEST))
  417. 'ABS' ;
  418.  
  419. 'SI' (ERRO > 1.0D-12) ;
  420. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  421. 'ERREUR' 5 ;
  422. 'FINSI' ;
  423.  
  424.  
  425.  
  426. * What happens if UINF > CSON
  427.  
  428. MAT1 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
  429.  
  430. CN = ((GAMN '*' PN) '/' RN) '**' 0.5 ;
  431. MACHN = 'PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  432. MACHN = MACHN '**' 0.5 ;
  433. MACHN = MACHN '/' CN ;
  434.  
  435. UINF = 2. '*' CN ;
  436.  
  437. MAT2 = 'KONV' 'VF' 'PERFMONO' 'GAMMCONS' LMOT ($DOMTOT . 'CENTRE')
  438. DIAMIN RN VN PN GAMN UINF1 UINF ;
  439.  
  440. QQ = 'PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  441. QQ = QQ ** 0.5 ;
  442. UNSDT = (QQ '+' CN) '/' DIAMIN ;
  443.  
  444. UTEST = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 4
  445. 'R' 11.0 'UX' 12.0 'UY' 13.0 'RET' 14.0 'NATU' 'DISCRET') ;
  446. UTEST1 = UTEST '*' UNSDT ;
  447.  
  448. ERRO = 'MAXIMUM'
  449. (('KOPS' 'MULT' MAT1 UTEST1) '-' ('KOPS' 'MULT' MAT2 UTEST))
  450. 'ABS' ;
  451.  
  452. 'SI' (ERRO > 1.0D-12) ;
  453. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  454. 'ERREUR' 5 ;
  455. 'FINSI' ;
  456.  
  457.  
  458. * Gamma for primitive = jacobian for primitive
  459.  
  460. LMOT2 = LMOT ;
  461. LMOT1 = 'MOTS' 'RN' 'UX1' 'UY1' 'PN' ;
  462.  
  463. MATGP = 'KONV' 'VF' 'PERFMONO' 'GAMMPRIM' ($DOMTOT . 'CENTRE')
  464. LMOT1 LMOT2 DIAMIN
  465. RN VN PN GAMN UINF1 UINF ;
  466.  
  467. MATJAC = 'PRIM' 'CONSPRIM' ($DOMTOT . 'CENTRE')
  468. LMOT1 LMOT2
  469. RN VN PN GAMN ;
  470.  
  471. MATR1 = MATJAC 'ET' ('KOPS' 'MULT' MATGP -1.0) ;
  472.  
  473. UN = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 4
  474. 'RN' 1.0 'UX1' 1.0 'UY1' 1.0 'PN' 1.0 'NATU' 'DISCRET') ;
  475.  
  476. RIS1 = ('KOPS' MATR1 'MULT' UN) ;
  477.  
  478. ERRO = 'MAXIMUM' RIS1 'ABS' ;
  479.  
  480. 'SI' (ERRO > 1.0D-12) ;
  481. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  482. 'ERREUR' 5 ;
  483. 'FINSI' ;
  484.  
  485. 'FIN' ;
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  

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