Télécharger source3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : SOURCE3.dgibi
  2. * section : thermique
  3. *----------------------------------------------------------------------*
  4. * SOURCE3.DGIBI *
  5. *----------------------------------------------------------------------*
  6. *
  7. * Objet :
  8. * -------
  9. *
  10. * Verfication / validation d'un modele de source de chaleur.
  11. * Cas d'une SOURCE GAUSSIENNE ISOTROPE-TRANSVERSE.
  12. *
  13. * Description :
  14. * -------------
  15. * Comparaison des flux nodaux equivalents obtenus avec le modele a
  16. * ceux obtenus en construisant le champ "a la main", puis en l'integrant
  17. * avec l'operateur SOURCE.
  18. *
  19. * Type de calcul : Aucun
  20. * Mode de calcul : 2D PLAN, AXIS et 3D
  21. * Type d'element : TRI3 TRI6 QUA4 QUA8 TET4 TE10 PYR5 PY13 PRI6 PR15
  22. * CUB8 CU20
  23. * Objectifs : Ecart relatif entre flux integres < 1.e-12
  24. * Ecart relatif entre la chaleur totale fournie (QTOT)
  25. * et la resultante sur le champ integre < 1.e-12
  26. *
  27. *----------------------------------------------------------------------*
  28. *
  29. * IG1 vrai : traces actives
  30. IG1 = faux ;
  31. *
  32. *------------------------ 2D ELEMENTS LINEAIRES -----------------------*
  33. *
  34. opti dime 2 elem qua4 ;
  35.  
  36. * Parametres du maillage :
  37. lo1 = 50.e-3 ;
  38. ep1 = 10.e-3 ;
  39.  
  40. * Parametres de la source :
  41. QT1 = 1.e3 ;
  42. OR1 = 30.e-3 8.e-3 ;
  43. DR1 = 1. 2. ;
  44. RG1 = 5.e-3 ;
  45. ZG1 = 9.e-3 ;
  46.  
  47. * Maillage :
  48. l1 = (0 0) droi 10 (0 ep1) ;
  49. s1 = l1 tran 50 (lo1 0) ;
  50. l2 = s1 cote 3 ;
  51. s2 = l2 tran 50 (lo1 ep1) ;
  52. s2 = s2 chan tri3 ;
  53. s0 = s1 et s2 ;
  54.  
  55. si IG1 ;
  56. ltyp1 = s0 elem type ;
  57. mot1 = mot 'ELEM =' ;
  58. repe bm1 (dime ltyp1) ;
  59. mot1 = chai mot1 ' ' (ltyp1 extr &bm1) ;
  60. fin bm1 ;
  61. mot1 = chai ' Maillage test en 2D (' mot1 ')' ;
  62. trac s0 titr mot1 ;
  63. fins;
  64.  
  65. * MODE PLAN :
  66. * -----------
  67. *
  68. opti mode plan ;
  69. *
  70. moq1 = mode s0 thermique source gaussienne isotrope_transverse ;
  71. maq1 = mate moq1 'QTOT' QT1 'ORIG' OR1 'RGAU' RG1 'DIRE' DR1 'ZGAU' ZG1 ;
  72. sq1 = sour moq1 maq1 ;
  73.  
  74. qtmoq1 = sq1 resu maxi ;
  75.  
  76. mo1 = mode s0 thermique ;
  77. ma1 = mate mo1 k 25. ;
  78.  
  79. x1 y1 = s0 coor ;
  80. x1 y1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) ;
  81. x1 y1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) ;
  82. r1 = (x1 * x1) + (y1 * y1) ;
  83. z1 = (x1 * (DR1 coor 1)) + (y1 * (DR1 coor 2)) / (norm DR1) ;
  84. r1 = r1 - (z1 * z1) ;
  85. sqref1 = exp (-1. * ((r1 / RG1 / RG1) + (z1 * z1 / ZG1 / ZG1))) ;
  86. qtref1 = intg mo1 sqref1 ;
  87. sqref1 = sqref1 / qtref1 * QT1 ;
  88. sqref1 = sour mo1 sqref1 ;
  89.  
  90. si IG1 ;
  91. trac sq1 S0 titr ' Flux nodaux du champ de source Gaussienne du MODELE ';
  92. trac sqref1 s0 titr ' Flux nodaux du champ de source Gaussienne REFERENCE' ;
  93. trac (sq1 - sqref1) s0 titr ' Difference des 2 champs' ;
  94. fins ;
  95.  
  96. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  97. list err1 ;
  98. err2 = (abs (qtmoq1 - qt1)) / (abs qt1) ;
  99. list err2 ;
  100. err1 = maxi (prog err1 err2) ;
  101. si (err1 > 1.e-12) ;
  102. ERRE ' Probleme MODE SOURCE' ;
  103. fins ;
  104.  
  105. * MODE AXIS :
  106. * -----------
  107. *
  108. opti mode axis ;
  109. *
  110. moq1 = mode s0 thermique source gaussienne isotrope_transverse ;
  111. maq1 = mate moq1 'QTOT' QT1 'ORIG' OR1 'RGAU' RG1 'DIRE' DR1 'ZGAU' ZG1 ;
  112. sq1 = sour moq1 maq1 ;
  113.  
  114. qtmoq1 = sq1 resu maxi ;
  115.  
  116. mo1 = mode s0 thermique ;
  117. ma1 = mate mo1 k 25. ;
  118.  
  119. x1 y1 = s0 coor ;
  120. x1 y1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) ;
  121. x1 y1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) ;
  122. r1 = (x1 * x1) + (y1 * y1) ;
  123. z1 = (x1 * (DR1 coor 1)) + (y1 * (DR1 coor 2)) / (norm DR1) ;
  124. r1 = r1 - (z1 * z1) ;
  125. sqref1 = exp (-1. * ((r1 / RG1 / RG1) + (z1 * z1 / ZG1 / ZG1))) ;
  126. qtref1 = intg mo1 sqref1 ;
  127. sqref1 = sqref1 / qtref1 * QT1 ;
  128. sqref1 = sour mo1 sqref1 ;
  129.  
  130. si IG1 ;
  131. trac sq1 S0 titr ' Flux nodaux du champ de source Gaussienne du MODELE ';
  132. trac sqref1 s0 titr ' Flux nodaux du champ de source Gaussienne REFERENCE' ;
  133. trac (sq1 - sqref1) s0 titr ' Difference des 2 champs' ;
  134. fins ;
  135.  
  136. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  137. list err1 ;
  138. err2 = (abs (qtmoq1 - qt1)) / (abs qt1) ;
  139. list err2 ;
  140. err1 = maxi (prog err1 err2) ;
  141. si (err1 > 1.e-12) ;
  142. ERRE ' Probleme MODE SOURCE' ;
  143. fins ;
  144.  
  145. *---------------------- 2D ELEMENTS QUADRATIQUES ----------------------*
  146.  
  147. * Passage en EF quadratiques :
  148. s0 = s0 chan quad ;
  149.  
  150. si IG1 ;
  151. ltyp1 = s0 elem type ;
  152. mot1 = mot 'ELEM =' ;
  153. repe bm1 (dime ltyp1) ;
  154. mot1 = chai mot1 ' ' (ltyp1 extr &bm1) ;
  155. fin bm1 ;
  156. mot1 = chai ' Maillage test en 2D (' mot1 ')' ;
  157. trac s0 titr mot1 ;
  158. fins;
  159.  
  160. * MODE PLAN :
  161. * -----------
  162. *
  163. opti mode plan ;
  164. *
  165. moq1 = mode s0 thermique source gaussienne isotrope_transverse ;
  166. maq1 = mate moq1 'QTOT' QT1 'ORIG' OR1 'RGAU' RG1 'DIRE' DR1 'ZGAU' ZG1 ;
  167. sq1 = sour moq1 maq1 ;
  168.  
  169. qtmoq1 = sq1 resu maxi ;
  170.  
  171. mo1 = mode s0 thermique ;
  172. ma1 = mate mo1 k 25. ;
  173.  
  174. x1 y1 = s0 coor ;
  175. x1 y1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) ;
  176. x1 y1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) ;
  177. r1 = (x1 * x1) + (y1 * y1) ;
  178. z1 = (x1 * (DR1 coor 1)) + (y1 * (DR1 coor 2)) / (norm DR1) ;
  179. r1 = r1 - (z1 * z1) ;
  180. sqref1 = exp (-1. * ((r1 / RG1 / RG1) + (z1 * z1 / ZG1 / ZG1))) ;
  181. qtref1 = intg mo1 sqref1 ;
  182. sqref1 = sqref1 / qtref1 * QT1 ;
  183. sqref1 = sour mo1 sqref1 ;
  184.  
  185. si IG1 ;
  186. trac sq1 S0 titr ' Flux nodaux du champ de source Gaussienne du MODELE ';
  187. trac sqref1 s0 titr ' Flux nodaux du champ de source Gaussienne REFERENCE' ;
  188. trac (sq1 - sqref1) s0 titr ' Difference des 2 champs' ;
  189. fins ;
  190.  
  191. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  192. list err1 ;
  193. err2 = (abs (qtmoq1 - qt1)) / (abs qt1) ;
  194. list err2 ;
  195. err1 = maxi (prog err1 err2) ;
  196. si (err1 > 1.e-12) ;
  197. ERRE ' Probleme MODE SOURCE' ;
  198. fins ;
  199.  
  200. * MODE AXIS :
  201. * -----------
  202. *
  203. opti mode axis ;
  204. *
  205. moq1 = mode s0 thermique source gaussienne isotrope_transverse ;
  206. maq1 = mate moq1 'QTOT' QT1 'ORIG' OR1 'RGAU' RG1 'DIRE' DR1 'ZGAU' ZG1 ;
  207. sq1 = sour moq1 maq1 ;
  208.  
  209. qtmoq1 = sq1 resu maxi ;
  210.  
  211. mo1 = mode s0 thermique ;
  212. ma1 = mate mo1 k 25. ;
  213.  
  214. x1 y1 = s0 coor ;
  215. x1 y1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) ;
  216. x1 y1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) ;
  217. r1 = (x1 * x1) + (y1 * y1) ;
  218. z1 = (x1 * (DR1 coor 1)) + (y1 * (DR1 coor 2)) / (norm DR1) ;
  219. r1 = r1 - (z1 * z1) ;
  220. sqref1 = exp (-1. * ((r1 / RG1 / RG1) + (z1 * z1 / ZG1 / ZG1))) ;
  221. qtref1 = intg mo1 sqref1 ;
  222. sqref1 = sqref1 / qtref1 * QT1 ;
  223. sqref1 = sour mo1 sqref1 ;
  224.  
  225. si IG1 ;
  226. trac sq1 S0 titr ' Flux nodaux du champ de source Gaussienne du MODELE ';
  227. trac sqref1 s0 titr ' Flux nodaux du champ de source Gaussienne REFERENCE' ;
  228. trac (sq1 - sqref1) s0 titr ' Difference des 2 champs' ;
  229. fins ;
  230.  
  231. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  232. list err1 ;
  233. err2 = (abs (qtmoq1 - qt1)) / (abs qt1) ;
  234. list err2 ;
  235. err1 = maxi (prog err1 err2) ;
  236. si (err1 > 1.e-12) ;
  237. ERRE ' Probleme MODE SOURCE' ;
  238. fins ;
  239.  
  240. *------------------------ 3D ELEMENTS LINEAIRES -----------------------*
  241. *
  242. opti dime 3 elem cub8 ;
  243. s0 = s0 chan line ;
  244.  
  245. * Maillage du volume :
  246. v0 = s0 volu tran 5 (0 0 ep1) ;
  247. x1 = v0 coor 1 ;
  248.  
  249. * Ajour de tetraedres :
  250. v3 = v0 elem appu stri (x1 poin supe (1.5 * lo1)) ;
  251. v0 = v0 diff v3 ;
  252. v0 = v0 et (v3 chan tet4) ;
  253.  
  254. * Ajout d'un element pyramide :
  255. el1 = (v0 elem cub8) elem 1 ;
  256. pe1 = el1 chan poi1 ;
  257. ps1 = pe1 poin 8 ;
  258. py1 = manu pyr5 (pe1 poin 1) (pe1 poin 2) (pe1 poin 3) (pe1 poin 4) ps1 ;
  259. py2 = manu pyr5 (pe1 poin 1) (pe1 poin 2) (pe1 poin 6) (pe1 poin 5) ps1 ;
  260. py3 = manu pyr5 (pe1 poin 2) (pe1 poin 3) (pe1 poin 7) (pe1 poin 6) ps1 ;
  261. py0 = py1 et py2 et py3 ;
  262. v0 = (v0 diff el1) et py0 ;
  263.  
  264. si IG1 ;
  265. ltyp1 = v0 elem type ;
  266. mot1 = mot 'ELEM =' ;
  267. repe bm1 (dime ltyp1) ;
  268. mot1 = chai mot1 ' ' (ltyp1 extr &bm1) ;
  269. fin bm1 ;
  270. mot1 = chai ' Maillage test en 3D (' mot1 ')' ;
  271. trac v0 titr mot1 ;
  272. fins;
  273.  
  274. * Parametres de la source en 3D
  275. OR1 = 30.e-3 8.e-3 8.e-3 ;
  276. DR1 = 1. 2. 1. ;
  277.  
  278. * Modeles :
  279. moq1 = mode V0 thermique source gaussienne isotrope_transverse ;
  280. maq1 = mate moq1 'QTOT' QT1 'ORIG' OR1 'RGAU' RG1 'DIRE' DR1 'ZGAU' ZG1 ;
  281. sq1 = sour moq1 maq1 ;
  282.  
  283. qtmoq1 = sq1 resu maxi ;
  284.  
  285. mo1 = mode V0 thermique ;
  286. ma1 = mate mo1 k 25. ;
  287.  
  288. x1 y1 z1 = V0 coor ;
  289. x1 y1 z1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) (z1 - (or1 coor 3)) ;
  290. x1 y1 z1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) (chan cham z1 mo1 stresses) ;
  291. r1 = (x1 * x1) + (y1 * y1) + (z1 * z1) ;
  292. z1 = (x1 * (DR1 coor 1)) + (y1 * (DR1 coor 2)) + (z1 * (DR1 coor 3)) / (norm DR1) ;
  293. r1 = r1 - (z1 * z1) ;
  294. sqref1 = exp (-1. * ((r1 / RG1 / RG1) + (z1 * z1 / ZG1 / ZG1))) ;
  295. qtref1 = intg mo1 sqref1 ;
  296. sqref1 = sqref1 / qtref1 * QT1 ;
  297. sqref1 = sour mo1 sqref1 ;
  298.  
  299. si IG1 ;
  300. trac sq1 V0 titr ' Flux nodaux du champ de source Gaussienne du MODELE ' coup or1 (0 1 0) (0 0 1) ;
  301. trac sqref1 V0 titr ' Flux nodaux du champ de source Gaussienne REFERENCE' coup or1 (0 1 0) (0 0 1) ;
  302. trac (sq1 - sqref1) V0 titr ' Difference des 2 champs' coup or1 (0 1 0) (0 0 1) ;
  303. fins ;
  304.  
  305. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  306. list err1 ;
  307. err2 = (abs (qtmoq1 - qt1)) / (abs qt1) ;
  308. list err2 ;
  309. err1 = maxi (prog err1 err2) ;
  310. si (err1 > 1.e-12) ;
  311. ERRE ' Probleme MODE SOURCE' ;
  312. fins ;
  313.  
  314. *---------------------- 3D ELEMENTS QUADRATIQUES ----------------------*
  315. *
  316. v0 = v0 chan quad ;
  317.  
  318. si IG1 ;
  319. ltyp1 = v0 elem type ;
  320. mot1 = mot 'ELEM =' ;
  321. repe bm1 (dime ltyp1) ;
  322. mot1 = chai mot1 ' ' (ltyp1 extr &bm1) ;
  323. fin bm1 ;
  324. mot1 = chai ' Maillage test en 3D (' mot1 ')' ;
  325. trac v0 titr mot1 ;
  326. fins;
  327.  
  328. * Modeles :
  329. moq1 = mode V0 thermique source gaussienne isotrope_transverse ;
  330. maq1 = mate moq1 'QTOT' QT1 'ORIG' OR1 'RGAU' RG1 'DIRE' DR1 'ZGAU' ZG1 ;
  331. sq1 = sour moq1 maq1 ;
  332.  
  333. qtmoq1 = sq1 resu maxi ;
  334.  
  335. mo1 = mode V0 thermique ;
  336. ma1 = mate mo1 k 25. ;
  337.  
  338. x1 y1 z1 = V0 coor ;
  339. x1 y1 z1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) (z1 - (or1 coor 3)) ;
  340. x1 y1 z1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) (chan cham z1 mo1 stresses) ;
  341. r1 = (x1 * x1) + (y1 * y1) + (z1 * z1) ;
  342. z1 = (x1 * (DR1 coor 1)) + (y1 * (DR1 coor 2)) + (z1 * (DR1 coor 3)) / (norm DR1) ;
  343. r1 = r1 - (z1 * z1) ;
  344. sqref1 = exp (-1. * ((r1 / RG1 / RG1) + (z1 * z1 / ZG1 / ZG1))) ;
  345. qtref1 = intg mo1 sqref1 ;
  346. sqref1 = sqref1 / qtref1 * QT1 ;
  347. sqref1 = sour mo1 sqref1 ;
  348.  
  349. si IG1 ;
  350. trac sq1 V0 titr ' Flux nodaux du champ de source Gaussienne du MODELE ' ;
  351. trac sqref1 V0 titr ' Flux nodaux du champ de source Gaussienne REFERENCE' ;
  352. trac (sq1 - sqref1) V0 titr ' Difference des 2 champs' ;
  353. fins ;
  354.  
  355. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  356. list err1 ;
  357. err2 = (abs (qtmoq1 - qt1)) / (abs qt1) ;
  358. list err2 ;
  359. err1 = maxi (prog err1 err2) ;
  360. si (err1 > 1.e-12) ;
  361. ERRE ' Probleme MODE SOURCE' ;
  362. fins ;
  363.  
  364. *---------------/!\ SOURCES SUR PLUSIEURS SOUS-ZONES /!\---------------*
  365. *
  366. * Maillage :
  367. v0 = v0 chan line ;
  368. ptsv1 = (v0 coor 1) poin egin lo1 ;
  369. v1 = v0 elem appu stri ptsv1 ;
  370. v1 = v1 coul vert ;
  371. v2 = v0 diff v1;
  372. v2 = v2 coul oran ;
  373.  
  374. si IG1 ;
  375. trac (v1 et v2) titr ' Maillage a 2 sous-zones' ;
  376. fins ;
  377.  
  378. * DEUX SOURCES : GAUSSIENNE & UNIFORME :
  379. * --------------------------------------
  380. *
  381. * Sur 2 sous-zones disctinctes :
  382. * ------------------------------
  383. *
  384. * Modeles / caracteristiques / sources :
  385. moq1 = mode v1 thermique source gaussienne ;
  386. moq2 = mode v2 thermique source ;
  387. maq1 = mate moq1 qtot qt1 orig or1 rgau rg1 ;
  388. maq2 = mate moq2 qvol 1.e9 ;
  389. moq0 = moq1 et moq2 ;
  390. maq0 = maq1 et maq2 ;
  391. sq1 = sour moq1 maq1 ;
  392. sq2 = sour moq2 maq2 ;
  393. sq0 = sour moq0 maq0 ;
  394.  
  395. mo1 = mode v1 thermique ;
  396. ma1 = mate mo1 k 25. ;
  397. x1 y1 z1 = V1 coor ;
  398. x1 y1 z1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) (z1 - (or1 coor 3)) ;
  399. x1 y1 z1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) (chan cham z1 mo1 stresses) ;
  400. r1 = (x1 * x1) + (y1 * y1) + (z1 * z1) ;
  401. sqref1 = exp (-1. * (r1 / RG1 / RG1)) ;
  402. qtref1 = intg mo1 sqref1 ;
  403. sqref1 = sqref1 / qtref1 * QT1 ;
  404. sqref1 = sour mo1 sqref1 ;
  405.  
  406. mo2 = mode v2 thermique ;
  407. ma2 = mate mo2 k 25. ;
  408. sqref2 = sour mo2 v2 1.e9 ;
  409.  
  410. sqref0 = sqref1 et sqref2 ;
  411.  
  412. si IG1 ;
  413. trac sq0 v0 titr ' Flux nodaux des deux modeles de source ' ;
  414. trac sqref0 v0 titr ' Flux nodaux REFERENCE' ;
  415. trac (sq0 - sqref0) v0 titr ' Difference des deux champs' ;
  416. fins ;
  417.  
  418. err0 = (maxi abs (sq0 - sqref0)) / (maxi abs sqref0) ;
  419. list err0 ;
  420. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  421. list err1 ;
  422. err2 = (maxi abs (sq2 - sqref2)) / (maxi abs sqref2) ;
  423. list err2 ;
  424. err1 = maxi (prog err0 err1 err2) ;
  425. si (err1 > 1.e-12) ;
  426. ERRE ' Probleme MODE SOURCE' ;
  427. fins ;
  428.  
  429. * Sur 2 sous-zones "a cheval" :
  430. * -----------------------------
  431. *
  432. * Modeles / caracteristiques / sources :
  433. moq1 = mode v0 thermique source gaussienne ;
  434. moq2 = mode v2 thermique source ;
  435. maq1 = mate moq1 qtot qt1 orig or1 rgau rg1 ;
  436. maq2 = mate moq2 qvol 1.e9 ;
  437. moq0 = moq1 et moq2 ;
  438. maq0 = maq1 et maq2 ;
  439. sq1 = sour moq1 maq1 ;
  440. sq2 = sour moq2 maq2 ;
  441. sq0 = sour moq0 maq0 ;
  442.  
  443. mo1 = mode v0 thermique ;
  444. x1 y1 z1 = V0 coor ;
  445. x1 y1 z1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) (z1 - (or1 coor 3)) ;
  446. x1 y1 z1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) (chan cham z1 mo1 stresses) ;
  447. r1 = (x1 * x1) + (y1 * y1) + (z1 * z1) ;
  448. sqref1 = exp (-1. * (r1 / RG1 / RG1)) ;
  449. qtref1 = intg mo1 sqref1 ;
  450. sqref1 = sqref1 / qtref1 * QT1 ;
  451. sqref1 = sour mo1 sqref1 ;
  452.  
  453. mo2 = mode v2 thermique ;
  454. sqref2 = sour mo2 v2 1.e9 ;
  455.  
  456. sqref0 = sqref1 et sqref2 ;
  457.  
  458. si IG1 ;
  459. trac sq0 V0 titr ' Flux nodaux des deux modeles de source ' ;
  460. trac sqref0 V0 titr ' Flux nodaux REFERENCE' ;
  461. trac (sq0 - sqref0) V0 titr ' Difference des deux champs' ;
  462. fins ;
  463.  
  464. err0 = (maxi abs (sq0 - sqref0)) / (maxi abs sqref0) ;
  465. list err0 ;
  466. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  467. list err1 ;
  468. err2 = (maxi abs (sq2 - sqref2)) / (maxi abs sqref2) ;
  469. list err2 ;
  470. err1 = maxi (prog err0 err1 err2) ;
  471. si (err1 > 1.e-12) ;
  472. ERRE ' Probleme MODE SOURCE' ;
  473. fins ;
  474.  
  475.  
  476. * DEUX SOURCES GAUSSIENNES : ISOTROPE & ISOTROPE-TRANSVERSE :
  477. * -----------------------------------------------------------
  478.  
  479. * Sur 2 sous-zones disctinctes :
  480. * ------------------------------
  481. *
  482. * Parametres de la source en 3D
  483. qt2 = 0.5 * qt1 ;
  484. OR2 = 60.e-3 3.e-3 5.e-3 ;
  485. DR2 = 1. -1. 2. ;
  486.  
  487. * Modeles / caracteristiques / sources :
  488. moq1 = mode v1 thermique source gaussienne ;
  489. moq2 = mode v2 thermique source gaussienne isotrope_transverse ;
  490. maq1 = mate moq1 qtot qt1 orig or1 rgau rg1 ;
  491. maq2 = mate moq2 qtot qt2 orig or2 rgau rg1 dire dr2 zgau zg1 ;
  492. moq0 = moq1 et moq2 ;
  493. maq0 = maq1 et maq2 ;
  494. sq1 = sour moq1 maq1 ;
  495. sq2 = sour moq2 maq2 ;
  496. sq0 = sour moq0 maq0 ;
  497.  
  498. mo1 = mode v1 thermique ;
  499. ma1 = mate mo1 k 25. ;
  500. x1 y1 z1 = V1 coor ;
  501. x1 y1 z1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) (z1 - (or1 coor 3)) ;
  502. x1 y1 z1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) (chan cham z1 mo1 stresses) ;
  503. r1 = (x1 * x1) + (y1 * y1) + (z1 * z1) ;
  504. sqref1 = exp (-1. * (r1 / RG1 / RG1)) ;
  505. qtref1 = intg mo1 sqref1 ;
  506. sqref1 = sqref1 / qtref1 * qt1 ;
  507. sqref1 = sour mo1 sqref1 ;
  508.  
  509. mo2 = mode v2 thermique ;
  510. ma2 = mate mo2 k 25. ;
  511. x2 y2 z2 = V2 coor ;
  512. x2 y2 z2 = (x2 - (or2 coor 1)) (y2 - (or2 coor 2)) (z2 - (or2 coor 3)) ;
  513. x2 y2 z2 = (chan cham x2 mo2 stresses) (chan cham y2 mo2 stresses) (chan cham z2 mo2 stresses) ;
  514. r2 = (x2 * x2) + (y2 * y2) + (z2 * z2) ;
  515. z2 = (x2 * (dr2 coor 1)) + (y2 * (dr2 coor 2)) + (z2 * (dr2 coor 3)) / (norm dr2) ;
  516. r2 = r2 - (z2 * z2) ;
  517. sqref2 = exp (-1. * ((r2 / RG1 / RG1) + (z2 * z2 / ZG1 / ZG1))) ;
  518. qtref2 = intg mo2 sqref2 ;
  519. sqref2 = sqref2 / qtref2 * qt2 ;
  520. sqref2 = sour mo2 sqref2 ;
  521.  
  522. sqref0 = sqref1 et sqref2 ;
  523.  
  524. si IG1 ;
  525. trac sq0 V0 titr ' Flux nodaux des deux modeles de source ' ;
  526. trac sqref0 V0 titr ' Flux nodaux REFERENCE' ;
  527. trac (sq0 - sqref0) V0 titr ' Difference des deux champs' ;
  528. fins ;
  529.  
  530. err0 = (maxi abs (sq0 - sqref0)) / (maxi abs sqref0) ;
  531. list err0 ;
  532. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  533. list err1 ;
  534. err2 = (maxi abs (sq2 - sqref2)) / (maxi abs sqref2) ;
  535. list err2 ;
  536. err1 = maxi (prog err0 err1 err2) ;
  537. si (err1 > 1.e-12) ;
  538. ERRE ' Probleme MODE SOURCE' ;
  539. fins ;
  540.  
  541. * Sur 2 sous-zones "a cheval" :
  542. * -----------------------------
  543. *
  544. * Modeles / caracteristiques / sources :
  545. moq1 = mode v0 thermique source gaussienne ;
  546. moq2 = mode v0 thermique source gaussienne isotrope_transverse ;
  547. maq1 = mate moq1 qtot qt1 orig or1 rgau rg1 ;
  548. maq2 = mate moq2 qtot qt2 orig or2 rgau rg1 dire dr2 zgau zg1 ;
  549. moq0 = moq1 et moq2 ;
  550. maq0 = maq1 et maq2 ;
  551. sq1 = sour moq1 maq1 ;
  552. sq2 = sour moq2 maq2 ;
  553. sq0 = sour moq0 maq0 ;
  554.  
  555. mo1 = mode v0 thermique ;
  556. ma1 = mate mo1 k 25. ;
  557. x1 y1 z1 = v0 coor ;
  558. x1 y1 z1 = (x1 - (or1 coor 1)) (y1 - (or1 coor 2)) (z1 - (or1 coor 3)) ;
  559. x1 y1 z1 = (chan cham x1 mo1 stresses) (chan cham y1 mo1 stresses) (chan cham z1 mo1 stresses) ;
  560. r1 = (x1 * x1) + (y1 * y1) + (z1 * z1) ;
  561. sqref1 = exp (-1. * (r1 / RG1 / RG1)) ;
  562. qtref1 = intg mo1 sqref1 ;
  563. sqref1 = sqref1 / qtref1 * qt1 ;
  564. sqref1 = sour mo1 sqref1 ;
  565.  
  566. mo2 = mode v0 thermique ;
  567. ma2 = mate mo2 k 25. ;
  568. x2 y2 z2 = v0 coor ;
  569. x2 y2 z2 = (x2 - (or2 coor 1)) (y2 - (or2 coor 2)) (z2 - (or2 coor 3)) ;
  570. x2 y2 z2 = (chan cham x2 mo2 stresses) (chan cham y2 mo2 stresses) (chan cham z2 mo2 stresses) ;
  571. r2 = (x2 * x2) + (y2 * y2) + (z2 * z2) ;
  572. z2 = (x2 * (dr2 coor 1)) + (y2 * (dr2 coor 2)) + (z2 * (dr2 coor 3)) / (norm dr2) ;
  573. r2 = r2 - (z2 * z2) ;
  574. sqref2 = exp (-1. * ((r2 / RG1 / RG1) + (z2 * z2 / ZG1 / ZG1))) ;
  575. qtref2 = intg mo2 sqref2 ;
  576. sqref2 = sqref2 / qtref2 * qt2 ;
  577. sqref2 = sour mo2 sqref2 ;
  578.  
  579. sqref0 = sqref1 et sqref2 ;
  580.  
  581. si IG1 ;
  582. trac sq0 V0 titr ' Flux nodaux des deux modeles de source ' ;
  583. trac sqref0 V0 titr ' Flux nodaux REFERENCE' ;
  584. trac (sq0 - sqref0) V0 titr ' Difference des deux champs' ;
  585. fins ;
  586.  
  587. err0 = (maxi abs (sq0 - sqref0)) / (maxi abs sqref0) ;
  588. list err0 ;
  589. err1 = (maxi abs (sq1 - sqref1)) / (maxi abs sqref1) ;
  590. list err1 ;
  591. err2 = (maxi abs (sq2 - sqref2)) / (maxi abs sqref2) ;
  592. list err2 ;
  593. err1 = maxi (prog err0 err1 err2) ;
  594. si (err1 > 1.e-12) ;
  595. ERRE ' Probleme MODE SOURCE' ;
  596. fins ;
  597.  
  598. *-------------------------------- FIN ---------------------------------*
  599. fin ;
  600.  
  601.  
  602.  

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