Télécharger dcov2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dcov2.dgibi
  2. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  3. *
  4. DX = 2.D0 ;
  5. NX = 1 ;
  6. NY = 1 ;
  7. *
  8. PBG = 0.D0 0.D0 ;
  9. PBD = DX 0.D0 ;
  10. PHG = 0.D0 DX ;
  11. PHD = DX DX ;
  12. *
  13. LB = PBG 'DROI' NX PBD ;
  14. LH = PHG 'DROI' NX PHD ;
  15. *
  16. CARRE = LB 'REGLER' NY LH ;
  17. CARREP = 'CHAN' CARRE POI1 ;
  18. *
  19. ZSIG = 0.5D0 ;
  20. ZL1 = 3.D0 ;
  21. ZL2 = 12.D0 ;
  22. ANGL = 30.D0 ;
  23. *
  24. NN = 'NBNO' CARRE ;
  25. NN1 = ('NBNO' CARRE) - 1 ;
  26. NN2 = ('NBNO' CARRE) - 2 ;
  27. *
  28. PHI = TABLE ;
  29. PHI.1 = 'PROG' 1.D0 NN1*0.D0 ;
  30. I = 1 ;
  31. 'REPE' BLOC NN2 ;
  32. PHI.(I + 1) = 'PROG' I*0.D0 1.D0 (NN1 - I)*0.D0 ;
  33. I = I + 1 ;
  34. 'FIN' BLOC ;
  35. PHI.NN = 'PROG' NN1*0.D0 1.D0 ;
  36. *
  37. PSI = TABLE ;
  38. I = 1 ;
  39. 'REPE' BLOC NN ;
  40. PSI.I = 'MANU' 'CHPO' CARREP 1 'SCAL' PHI.I ;
  41. I = I + 1 ;
  42. 'FIN' BLOC ;
  43. *
  44. *
  45. *
  46. MMEIC = 'DCOV' CARRE 'EXPO' 'SIGMA' ZSIG 'LAMBDA' ZL1 ;
  47. *
  48. YYEICT = TABLE ;
  49. I = 1 ;
  50. 'REPE' BLOC NN ;
  51. YYEICT.I = MMEIC * (PSI.I) ;
  52. I = I + 1 ;
  53. 'FIN' BLOC ;
  54. *
  55. YYEIC = TABLE ;
  56. I = 1 ;
  57. 'REPE' BLOCI NN ;
  58. YYEICI = 'MAXI' ('REDU' YYEICT.1 ('POIN' CARREP I)) ;
  59. YYEIC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYEICI)
  60. 'NATURE' 'DISCRET' ;
  61. J = 2 ;
  62. 'REPE' BLOCJ NN1 ;
  63. YYEICI = 'MAXI' ('REDU' YYEICT.J ('POIN' CARREP I)) ;
  64. YYEICI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYEICI)
  65. 'NATURE' 'DISCRET' ;
  66. YYEIC.I = YYEIC.I 'ET' YYEICI ;
  67. J = J + 1 ;
  68. 'FIN' BLOCJ ;
  69. I = I + 1 ;
  70. 'FIN' BLOCI ;
  71. *
  72. CCEIC = TABLE ;
  73. I = 1 ;
  74. 'REPE' BLOCI NN ;
  75. CCEIC.I = TABLE ;
  76. J = 1 ;
  77. 'REPE' BLOCJ NN ;
  78. CCEIC.I.J = 'MAXI' ('RESU' (YYEIC.I * YYEIC.J)) ;
  79. J = J + 1 ;
  80. 'FIN' BLOCJ ;
  81. I = I + 1 ;
  82. 'FIN' BLOCI ;
  83. *
  84. CCEIT = TABLE ;
  85. I = 1 ;
  86. 'REPE' BLOCI NN ;
  87. CCEIT.I = TABLE ;
  88. XXI = 'COOR' 1 ('POIN' CARREP I) ;
  89. YYI = 'COOR' 2 ('POIN' CARREP I) ;
  90. J = 1 ;
  91. 'REPE' BLOCJ NN ;
  92. XXJ = 'COOR' 1 ('POIN' CARREP J) ;
  93. YYJ = 'COOR' 2 ('POIN' CARREP J) ;
  94. DXIJ = XXI - XXJ ;
  95. DYIJ = YYI - YYJ ;
  96. RRIJ = ((DXIJ*DXIJ) + (DYIJ * DYIJ)) ** 0.5D0 ;
  97. CCEIT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ / ZL1)) ;
  98. J = J + 1 ;
  99. 'FIN' BLOCJ ;
  100. I = I + 1 ;
  101. 'FIN' BLOCI ;
  102. *
  103. I = 1 ;
  104. 'REPE' BLOCI NN ;
  105. J = 1 ;
  106. 'REPE' BLOCJ NN ;
  107. ECART = 'ABS' ((CCEIC.I.J - CCEIT.I.J) / CCEIT.I.J) ;
  108. 'SI' (ECART > 1.D-12) ;
  109. 'ERRE' 5 ;
  110. 'FINSI' ;
  111. J = J + 1 ;
  112. 'FIN' BLOCJ ;
  113. I = I + 1 ;
  114. 'FIN' BLOCI ;
  115. *
  116. MMEAC = 'DCOV' CARRE 'EXPO' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2 ;
  117. *
  118. YYEACT = TABLE ;
  119. I = 1 ;
  120. 'REPE' BLOC NN ;
  121. YYEACT.I = MMEAC * (PSI.I) ;
  122. I = I + 1 ;
  123. 'FIN' BLOC ;
  124. *
  125. YYEAC = TABLE ;
  126. I = 1 ;
  127. 'REPE' BLOCI NN ;
  128. YYEACI = 'MAXI' ('REDU' YYEACT.1 ('POIN' CARREP I)) ;
  129. YYEAC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYEACI)
  130. 'NATURE' 'DISCRET' ;
  131. J = 2 ;
  132. 'REPE' BLOCJ NN1 ;
  133. YYEACI = 'MAXI' ('REDU' YYEACT.J ('POIN' CARREP I)) ;
  134. YYEACI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYEACI)
  135. 'NATURE' 'DISCRET' ;
  136. YYEAC.I = YYEAC.I 'ET' YYEACI ;
  137. J = J + 1 ;
  138. 'FIN' BLOCJ ;
  139. I = I + 1 ;
  140. 'FIN' BLOCI ;
  141. *
  142. CCEAC = TABLE ;
  143. I = 1 ;
  144. 'REPE' BLOCI NN ;
  145. CCEAC.I = TABLE ;
  146. J = 1 ;
  147. 'REPE' BLOCJ NN ;
  148. CCEAC.I.J = 'MAXI' ('RESU' (YYEAC.I * YYEAC.J)) ;
  149. J = J + 1 ;
  150. 'FIN' BLOCJ ;
  151. I = I + 1 ;
  152. 'FIN' BLOCI ;
  153. *
  154. CCEAT = TABLE ;
  155. I = 1 ;
  156. 'REPE' BLOCI NN ;
  157. CCEAT.I = TABLE ;
  158. XXI = 'COOR' 1 ('POIN' CARREP I) ;
  159. YYI = 'COOR' 2 ('POIN' CARREP I) ;
  160. J = 1 ;
  161. 'REPE' BLOCJ NN ;
  162. XXJ = 'COOR' 1 ('POIN' CARREP J) ;
  163. YYJ = 'COOR' 2 ('POIN' CARREP J) ;
  164. DXIJ2 = ((XXI - XXJ) / ZL1) ** 2 ;
  165. DYIJ2 = ((YYI - YYJ) / ZL2) ** 2 ;
  166. RRIJ = (DXIJ2 + DYIJ2) ** 0.5D0 ;
  167. CCEAT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
  168. J = J + 1 ;
  169. 'FIN' BLOCJ ;
  170. I = I + 1 ;
  171. 'FIN' BLOCI ;
  172. *
  173. I = 1 ;
  174. 'REPE' BLOCI NN ;
  175. J = 1 ;
  176. 'REPE' BLOCJ NN ;
  177. ECART = 'ABS' ((CCEAC.I.J - CCEAT.I.J) / CCEAT.I.J) ;
  178. 'SI' (ECART > 1.D-12) ;
  179. 'ERRE' 5 ;
  180. 'FINSI' ;
  181. J = J + 1 ;
  182. 'FIN' BLOCJ ;
  183. I = I + 1 ;
  184. 'FIN' BLOCI ;
  185. *
  186. MMEDC = 'DCOV' CARRE 'EXPO' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2
  187. 'DIRECTION' (('COS' ANGL) ('SIN' ANGL)) ;
  188. *
  189. YYEDCT = TABLE ;
  190. I = 1 ;
  191. 'REPE' BLOC NN ;
  192. YYEDCT.I = MMEDC * (PSI.I) ;
  193. I = I + 1 ;
  194. 'FIN' BLOC ;
  195. *
  196. YYEDC = TABLE ;
  197. I = 1 ;
  198. 'REPE' BLOCI NN ;
  199. YYEDCI = 'MAXI' ('REDU' YYEDCT.1 ('POIN' CARREP I)) ;
  200. YYEDC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYEDCI)
  201. 'NATURE' 'DISCRET' ;
  202. J = 2 ;
  203. 'REPE' BLOCJ NN1 ;
  204. YYEDCI = 'MAXI' ('REDU' YYEDCT.J ('POIN' CARREP I)) ;
  205. YYEDCI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYEDCI)
  206. 'NATURE' 'DISCRET' ;
  207. YYEDC.I = YYEDC.I 'ET' YYEDCI ;
  208. J = J + 1 ;
  209. 'FIN' BLOCJ ;
  210. I = I + 1 ;
  211. 'FIN' BLOCI ;
  212. *
  213. CCEDC = TABLE ;
  214. I = 1 ;
  215. 'REPE' BLOCI NN ;
  216. CCEDC.I = TABLE ;
  217. J = 1 ;
  218. 'REPE' BLOCJ NN ;
  219. CCEDC.I.J = 'MAXI' ('RESU' (YYEDC.I * YYEDC.J)) ;
  220. J = J + 1 ;
  221. 'FIN' BLOCJ ;
  222. I = I + 1 ;
  223. 'FIN' BLOCI ;
  224. *
  225. CCEDT = TABLE ;
  226. I = 1 ;
  227. 'REPE' BLOCI NN ;
  228. CCEDT.I = TABLE ;
  229. XXI = 'COOR' 1 ('POIN' CARREP I) ;
  230. YYI = 'COOR' 2 ('POIN' CARREP I) ;
  231. J = 1 ;
  232. 'REPE' BLOCJ NN ;
  233. XXJ = 'COOR' 1 ('POIN' CARREP J) ;
  234. YYJ = 'COOR' 2 ('POIN' CARREP J) ;
  235. DXIJ2 =
  236. ((((XXI - XXJ) * ('COS' ANGL)) + ((YYI - YYJ) * ('SIN' ANGL)))
  237. / ZL1) ** 2 ;
  238. DYIJ2 =
  239. ((((XXI - XXJ) * ('SIN' ANGL)) - ((YYI - YYJ) * ('COS' ANGL)))
  240. / ZL2) ** 2 ;
  241. RRIJ = (DXIJ2 + DYIJ2) ** 0.5D0 ;
  242. CCEDT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
  243. J = J + 1 ;
  244. 'FIN' BLOCJ ;
  245. I = I + 1 ;
  246. 'FIN' BLOCI ;
  247. *
  248. I = 1 ;
  249. 'REPE' BLOCI NN ;
  250. J = 1 ;
  251. 'REPE' BLOCJ NN ;
  252. ECART = 'ABS' ((CCEDC.I.J - CCEDT.I.J) / CCEDT.I.J) ;
  253. 'SI' (ECART > 1.D-12) ;
  254. 'ERRE' 5 ;
  255. 'FINSI' ;
  256. J = J + 1 ;
  257. 'FIN' BLOCJ ;
  258. I = I + 1 ;
  259. 'FIN' BLOCI ;
  260. *
  261. *
  262. MMGIC = 'DCOV' CARRE 'GAUS' 'SIGMA' ZSIG 'LAMBDA' ZL1 ;
  263. *
  264. YYGICT = TABLE ;
  265. I = 1 ;
  266. 'REPE' BLOC NN ;
  267. YYGICT.I = MMGIC * (PSI.I) ;
  268. I = I + 1 ;
  269. 'FIN' BLOC ;
  270. *
  271. YYGIC = TABLE ;
  272. I = 1 ;
  273. 'REPE' BLOCI NN ;
  274. YYGICI = 'MAXI' ('REDU' YYGICT.1 ('POIN' CARREP I)) ;
  275. YYGIC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYGICI)
  276. 'NATURE' 'DISCRET' ;
  277. J = 2 ;
  278. 'REPE' BLOCJ NN1 ;
  279. YYGICI = 'MAXI' ('REDU' YYGICT.J ('POIN' CARREP I)) ;
  280. YYGICI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYGICI)
  281. 'NATURE' 'DISCRET' ;
  282. YYGIC.I = YYGIC.I 'ET' YYGICI ;
  283. J = J + 1 ;
  284. 'FIN' BLOCJ ;
  285. I = I + 1 ;
  286. 'FIN' BLOCI ;
  287. *
  288. CCGIC = TABLE ;
  289. I = 1 ;
  290. 'REPE' BLOCI NN ;
  291. CCGIC.I = TABLE ;
  292. J = 1 ;
  293. 'REPE' BLOCJ NN ;
  294. CCGIC.I.J = 'MAXI' ('RESU' (YYGIC.I * YYGIC.J)) ;
  295. J = J + 1 ;
  296. 'FIN' BLOCJ ;
  297. I = I + 1 ;
  298. 'FIN' BLOCI ;
  299. *
  300. CCGIT = TABLE ;
  301. I = 1 ;
  302. 'REPE' BLOCI NN ;
  303. CCGIT.I = TABLE ;
  304. XXI = 'COOR' 1 ('POIN' CARREP I) ;
  305. YYI = 'COOR' 2 ('POIN' CARREP I) ;
  306. J = 1 ;
  307. 'REPE' BLOCJ NN ;
  308. XXJ = 'COOR' 1 ('POIN' CARREP J) ;
  309. YYJ = 'COOR' 2 ('POIN' CARREP J) ;
  310. DXIJ = XXI - XXJ ;
  311. DYIJ = YYI - YYJ ;
  312. RRIJ = (DXIJ*DXIJ) + (DYIJ * DYIJ) ;
  313. CCGIT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ / ZL1)) ;
  314. J = J + 1 ;
  315. 'FIN' BLOCJ ;
  316. I = I + 1 ;
  317. 'FIN' BLOCI ;
  318. *
  319. I = 1 ;
  320. 'REPE' BLOCI NN ;
  321. J = 1 ;
  322. 'REPE' BLOCJ NN ;
  323. ECART = 'ABS' ((CCGIC.I.J - CCGIT.I.J) / CCGIT.I.J) ;
  324. 'SI' (ECART > 1.D-12) ;
  325. 'ERRE' 5 ;
  326. 'FINSI' ;
  327. J = J + 1 ;
  328. 'FIN' BLOCJ ;
  329. I = I + 1 ;
  330. 'FIN' BLOCI ;
  331. *
  332. MMGAC = 'DCOV' CARRE 'GAUS' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2 ;
  333. *
  334. YYGACT = TABLE ;
  335. I = 1 ;
  336. 'REPE' BLOC NN ;
  337. YYGACT.I = MMGAC * (PSI.I) ;
  338. I = I + 1 ;
  339. 'FIN' BLOC ;
  340. *
  341. YYGAC = TABLE ;
  342. I = 1 ;
  343. 'REPE' BLOCI NN ;
  344. YYGACI = 'MAXI' ('REDU' YYGACT.1 ('POIN' CARREP I)) ;
  345. YYGAC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYGACI)
  346. 'NATURE' 'DISCRET' ;
  347. J = 2 ;
  348. 'REPE' BLOCJ NN1 ;
  349. YYGACI = 'MAXI' ('REDU' YYGACT.J ('POIN' CARREP I)) ;
  350. YYGACI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYGACI)
  351. 'NATURE' 'DISCRET' ;
  352. YYGAC.I = YYGAC.I 'ET' YYGACI ;
  353. J = J + 1 ;
  354. 'FIN' BLOCJ ;
  355. I = I + 1 ;
  356. 'FIN' BLOCI ;
  357. *
  358. CCGAC = TABLE ;
  359. I = 1 ;
  360. 'REPE' BLOCI NN ;
  361. CCGAC.I = TABLE ;
  362. J = 1 ;
  363. 'REPE' BLOCJ NN ;
  364. CCGAC.I.J = 'MAXI' ('RESU' (YYGAC.I * YYGAC.J)) ;
  365. J = J + 1 ;
  366. 'FIN' BLOCJ ;
  367. I = I + 1 ;
  368. 'FIN' BLOCI ;
  369. *
  370. CCGAT = TABLE ;
  371. I = 1 ;
  372. 'REPE' BLOCI NN ;
  373. CCGAT.I = TABLE ;
  374. XXI = 'COOR' 1 ('POIN' CARREP I) ;
  375. YYI = 'COOR' 2 ('POIN' CARREP I) ;
  376. J = 1 ;
  377. 'REPE' BLOCJ NN ;
  378. XXJ = 'COOR' 1 ('POIN' CARREP J) ;
  379. YYJ = 'COOR' 2 ('POIN' CARREP J) ;
  380. DXIJ2 = ((XXI - XXJ) / ZL1) ** 2 ;
  381. DYIJ2 = ((YYI - YYJ) / ZL2) ** 2 ;
  382. RRIJ = DXIJ2 + DYIJ2 ;
  383. CCGAT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
  384. J = J + 1 ;
  385. 'FIN' BLOCJ ;
  386. I = I + 1 ;
  387. 'FIN' BLOCI ;
  388. *
  389. I = 1 ;
  390. 'REPE' BLOCI NN ;
  391. J = 1 ;
  392. 'REPE' BLOCJ NN ;
  393. ECART = 'ABS' ((CCGAC.I.J - CCGAT.I.J) / CCGAT.I.J) ;
  394. 'SI' (ECART > 1.D-12) ;
  395. 'ERRE' 5 ;
  396. 'FINSI' ;
  397. J = J + 1 ;
  398. 'FIN' BLOCJ ;
  399. I = I + 1 ;
  400. 'FIN' BLOCI ;
  401. *
  402. MMGDC = 'DCOV' CARRE 'GAUS' 'SIGMA' ZSIG 'LAMBDA1' ZL1 'LAMBDA2' ZL2
  403. 'DIRECTION' (('COS' ANGL) ('SIN' ANGL)) ;
  404. *
  405. YYGDCT = TABLE ;
  406. I = 1 ;
  407. 'REPE' BLOC NN ;
  408. YYGDCT.I = MMGDC * (PSI.I) ;
  409. I = I + 1 ;
  410. 'FIN' BLOC ;
  411. *
  412. YYGDC = TABLE ;
  413. I = 1 ;
  414. 'REPE' BLOCI NN ;
  415. YYGDCI = 'MAXI' ('REDU' YYGDCT.1 ('POIN' CARREP I)) ;
  416. YYGDC.I = 'MANU' 'CHPO' ('POIN' CARREP 1) 1 'SCAL' ('PROG' YYGDCI)
  417. 'NATURE' 'DISCRET' ;
  418. J = 2 ;
  419. 'REPE' BLOCJ NN1 ;
  420. YYGDCI = 'MAXI' ('REDU' YYGDCT.J ('POIN' CARREP I)) ;
  421. YYGDCI = 'MANU' 'CHPO' ('POIN' CARREP J) 1 'SCAL' ('PROG' YYGDCI)
  422. 'NATURE' 'DISCRET' ;
  423. YYGDC.I = YYGDC.I 'ET' YYGDCI ;
  424. J = J + 1 ;
  425. 'FIN' BLOCJ ;
  426. I = I + 1 ;
  427. 'FIN' BLOCI ;
  428. *
  429. CCGDC = TABLE ;
  430. I = 1 ;
  431. 'REPE' BLOCI NN ;
  432. CCGDC.I = TABLE ;
  433. J = 1 ;
  434. 'REPE' BLOCJ NN ;
  435. CCGDC.I.J = 'MAXI' ('RESU' (YYGDC.I * YYGDC.J)) ;
  436. J = J + 1 ;
  437. 'FIN' BLOCJ ;
  438. I = I + 1 ;
  439. 'FIN' BLOCI ;
  440. *
  441. CCGDT = TABLE ;
  442. I = 1 ;
  443. 'REPE' BLOCI NN ;
  444. CCGDT.I = TABLE ;
  445. XXI = 'COOR' 1 ('POIN' CARREP I) ;
  446. YYI = 'COOR' 2 ('POIN' CARREP I) ;
  447. J = 1 ;
  448. 'REPE' BLOCJ NN ;
  449. XXJ = 'COOR' 1 ('POIN' CARREP J) ;
  450. YYJ = 'COOR' 2 ('POIN' CARREP J) ;
  451. DXIJ2 =
  452. ((((XXI - XXJ) * ('COS' ANGL)) + ((YYI - YYJ) * ('SIN' ANGL)))
  453. / ZL1) ** 2 ;
  454. DYIJ2 =
  455. ((((XXI - XXJ) * ('SIN' ANGL)) - ((YYI - YYJ) * ('COS' ANGL)))
  456. / ZL2) ** 2 ;
  457. RRIJ = DXIJ2 + DYIJ2 ;
  458. CCGDT.I.J = ZSIG * ZSIG * ('EXP' (-1.D0 * RRIJ )) ;
  459. J = J + 1 ;
  460. 'FIN' BLOCJ ;
  461. I = I + 1 ;
  462. 'FIN' BLOCI ;
  463. *
  464. I = 1 ;
  465. 'REPE' BLOCI NN ;
  466. J = 1 ;
  467. 'REPE' BLOCJ NN ;
  468. ECART = 'ABS' ((CCGDC.I.J - CCGDT.I.J) / CCGDT.I.J) ;
  469. 'SI' (ECART > 1.D-12) ;
  470. 'ERRE' 5 ;
  471. 'FINSI' ;
  472. J = J + 1 ;
  473. 'FIN' BLOCJ ;
  474. I = I + 1 ;
  475. 'FIN' BLOCI ;
  476. *
  477. 'ERRE' 0 ;
  478. *
  479. 'FIN' ;
  480.  
  481.  
  482.  
  483.  
  484.  

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