Télécharger konv_fmm_test.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : konv_fmm_test.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************************
  5. * *
  6. * 'KONV' OPERATOR *
  7. * FREE MATRIX METHOD implicitation. *
  8. * *
  9. * VF "cell-centered" discretization of the Euler equations. *
  10. * Unknowns : U (density, momentum, total energy per volume unity *
  11. * (conservative variables)) *
  12. * In the i-th cell we have to compute *
  13. * *
  14. * (U_i^{n+1} - U_i^{n}) * AN_i(U^{n}) = *
  15. * RES_i(U^{n}) + BN_i(U^{n}) - BN_i(U_i^{n+1}) *
  16. * *
  17. * In this test case we compute AN et BN in GIBIANE et en ESOPE. *
  18. * *
  19. * A. Beccantini *
  20. * SFME/LTMF *
  21. * 03/05/01 *
  22. ***********************************************************************
  23. *
  24.  
  25. TYEL = 'QUA4' ;
  26. * TYEL = 'TRI3' ;
  27.  
  28. 'OPTION' 'DIME' 2 'ELEM' TYEL 'ISOV' 'SULI'
  29. 'ECHO' 0 'TRAC' 'X' ;
  30.  
  31. GRAPH = VRAI ;
  32. GRAPH = FAUX ;
  33.  
  34. ******************
  35. **** MAILLAGE ****
  36. ******************
  37.  
  38. RAF = 1 ;
  39.  
  40. NX = 4 ;
  41. NY = 4 ;
  42. DX = 1. ;
  43.  
  44. A0 = 0.11 0.0 ;
  45. A1 = 3.11 0.0 ;
  46. A2 = 3.13 4.1 ;
  47. A3 = 0.0 4.12 ;
  48.  
  49. *
  50. **** LIGB
  51. *
  52.  
  53. LIGB= A0 'DROIT' NX A1 ;
  54.  
  55. *
  56. **** LIGH
  57. *
  58.  
  59. LIGH = A3 'DROIT' NX A2 ;
  60.  
  61. *
  62. **** DOMINT
  63. *
  64.  
  65. DOMINT = LIGH 'REGLER' NY LIGB ;
  66. LIGCON = 'CONTOUR' DOMINT ;
  67.  
  68. *
  69. *** LIGG
  70. *
  71.  
  72. LIGG = LIGCON 'ELEM' 'COMP' A0 A3 ;
  73.  
  74. *
  75. **** LIGD
  76. *
  77.  
  78. LIGD = LIGCON 'ELEM' 'COMP' A2 A1 ;
  79. FROD = LIGD 'TRANSLATION' 1 (DX 0.0) ;
  80. FROG = LIGG 'TRANSLATION' 1 ((-1.0 '*' DX) 0.0) ;
  81.  
  82. DOMTOT = DOMINT 'ET' FROG 'ET' FROD ;
  83. 'ELIMINATION' DOMTOT (1.0D-3 '/' RAF) ;
  84.  
  85. *
  86. **** Creation of DOMAINE tables via the MODEL object
  87. *
  88.  
  89. $DOMTOT = 'MODELISER' DOMTOT 'EULER' ;
  90. $DOMINT = 'MODELISER' DOMINT 'EULER' ;
  91. $FROD = 'MODELISER' FROD 'EULER' ;
  92. $FROG = 'MODELISER' FROG 'EULER' ;
  93. $LIGG = 'MODELISER' LIGG 'EULER' ;
  94. $LIGD = 'MODELISER' LIGD 'EULER' ;
  95.  
  96. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  97. TDOMINT = 'DOMA' $DOMINT 'VF' ;
  98. TFROD = 'DOMA' $FROD 'VF' ;
  99. TFROG = 'DOMA' $FROG 'VF' ;
  100. TLIGG = 'DOMA' $LIGG 'VF' ;
  101. TLIGD = 'DOMA' $LIGD 'VF' ;
  102.  
  103. QDOMTOT = TDOMTOT . 'QUAF' ;
  104. QDOMINT = TDOMINT . 'QUAF' ;
  105. QFROD = TFROD . 'QUAF' ;
  106. QFROG = TFROG . 'QUAF' ;
  107. QLIGG = TLIGG . 'QUAF' ;
  108. QLIGD = TLIGD . 'QUAF' ;
  109.  
  110.  
  111. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QDOMINT ;
  112. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROD ;
  113. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROG ;
  114. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGD ;
  115. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGG ;
  116.  
  117. *
  118. **** SEG2 mesh for BC
  119. *
  120.  
  121. ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' $LIGD 'CENTRE')) ;
  122. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  123. ELP1 ;
  124. ELTFRO = 'ELEM' ('DOMA' $FROD 'FACEL') 'APPUYE' 'LARGEMENT'
  125. ELP1 ;
  126. P1 = 'POIN' 1 ELTINT ;
  127. P2 = 'POIN' 1 ELTFRO ;
  128. COND = 'MANUEL' 'SEG2' P1 P2 ;
  129.  
  130. NBL1 = ('NBNO' ('DOMA' $LIGD 'CENTRE')) '-' 1 ;
  131. 'SI' (NBL1 > 0) ;
  132. 'REPETER' BL1 NBL1 ;
  133. ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
  134. ('DOMA' $LIGD 'CENTRE')) ;
  135. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  136. ELP1 ;
  137. ELTFRO = 'ELEM' ('DOMA' $FROD 'FACEL') 'APPUYE' 'LARGEMENT'
  138. ELP1 ;
  139. P1 = 'POIN' 1 ELTINT ;
  140. P2 = 'POIN' 1 ELTFRO ;
  141. COND = COND 'ET' ('MANUEL' 'SEG2' P1 P2) ;
  142. 'FIN' BL1 ;
  143. 'FINSI' ;
  144.  
  145. COND = COND 'COULEUR' 'ROUG' ;
  146.  
  147. ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' $LIGG 'CENTRE')) ;
  148. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  149. ELP1 ;
  150. ELTFRO = 'ELEM' ('DOMA' $FROG 'FACEL') 'APPUYE' 'LARGEMENT'
  151. ELP1 ;
  152. P1 = 'POIN' 1 ELTINT ;
  153. P2 = 'POIN' 1 ELTFRO ;
  154. CONG = 'MANUEL' 'SEG2' P1 P2 ;
  155.  
  156. 'SI' (NBL1 > 0) ;
  157. NBL1 = ('NBNO' ('DOMA' $LIGG 'CENTRE')) '-' 1 ;
  158. 'REPETER' BL1 NBL1 ;
  159. ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
  160. ('DOMA' $LIGG 'CENTRE')) ;
  161. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  162. ELP1 ;
  163. ELTFRO = 'ELEM' ('DOMA' $FROG 'FACEL') 'APPUYE' 'LARGEMENT'
  164. ELP1 ;
  165. P1 = 'POIN' 1 ELTINT ;
  166. P2 = 'POIN' 1 ELTFRO ;
  167. CONG = CONG 'ET' ('MANUEL' 'SEG2' P1 P2) ;
  168. 'FIN' BL1 ;
  169. 'FINSI' ;
  170.  
  171. CONG = CONG 'COULEUR' 'ROUG' ;
  172.  
  173. 'SI' GRAPH ;
  174. 'TRACER' (DOMTOT 'ET' COND 'ET' CONG) 'TITRE'
  175. 'Domaine total' ;
  176. 'FINSI' ;
  177.  
  178. *****************************************************
  179. *****************************************************
  180. ******* Initial conditions **************************
  181. *****************************************************
  182. *****************************************************
  183.  
  184. ***************************************************************
  185. ***** PROCEDURE POUR CALCULER LES VARIABLES CONSERVATIVES *****
  186. ***************************************************************
  187.  
  188. 'DEBPROC' CONS ;
  189. 'ARGUMENT' RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ;
  190.  
  191. RVN = RN '*' VN ('MOTS' 'SCAL' 'SCAL') ('MOTS' 'UX' 'UY')
  192. ('MOTS' 'UX' 'UY') ;
  193. CELL = 'PSCAL' RVN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  194. RECIN = 0.5 '*' CELL ;
  195. REIN = PN '/' (GAMN '-' 1.0) ;
  196. RETN = RECIN '+' REIN ;
  197.  
  198. DETR CELL ;
  199. DETR RECIN ;
  200. DETR REIN ;
  201. 'RESPRO' RVN RETN ;
  202.  
  203. 'FINPROC' ;
  204.  
  205. ***************************************************************
  206. ***************************************************************
  207. ***************************************************************
  208.  
  209. RN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
  210. 'NATURE' 'DISCRET') '*'
  211. ('BRUI' 'BLAN' 'UNIF' 1.0 0.5 ('DOMA' $DOMTOT 'CENTRE')) ;
  212.  
  213. VN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 2 'UX' 0.5
  214. 'UY' 0.0 'NATURE' 'DISCRET') '*'
  215. ('BRUI' 'BLAN' 'UNIF' 0.0 0.5 ('DOMA' $DOMTOT 'CENTRE')) ;
  216.  
  217. PN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.0
  218. 'NATURE' 'DISCRET') '*'
  219. ('BRUI' 'BLAN' 'UNIF' 1.0 0.5 ('DOMA' $DOMTOT 'CENTRE')) ;
  220.  
  221. GAMN = 'MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
  222. 'NATURE' 'DISCRET' ;
  223.  
  224. GN0 RETN0 = CONS RN0 VN0 PN0 GAMN ;
  225.  
  226. VN1 PN1 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMN ;
  227.  
  228. ERRO = 'MAXIMUM' (PN1 '-' PN0) 'ABS' ;
  229.  
  230. 'SI' (ERRO > 1.0D-6) ;
  231. 'MESSAGE' 'Problem in the ic file!!!'
  232. 'ERREUR' 5 ;
  233. 'FINSI' ;
  234.  
  235. *
  236. **** Plot of IC
  237. *
  238.  
  239. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE' ) 'THERMIQUE';
  240.  
  241. 'SI' GRAPH ;
  242.  
  243. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN0 ;
  244. CHM_PN = 'KCHA' $DOMTOT 'CHAM' PN0 ;
  245. CHM_VN = 'KCHA' $DOMTOT 'CHAM' VN0 ;
  246.  
  247. 'TRACER' CHM_RN MOD1
  248. 'TITR' ('CHAINE' 'RN at t=' 0.0);
  249. 'TRACER' CHM_PN MOD1
  250. 'TITR' ('CHAINE' 'PN at t=' 0.0);
  251. 'TRACER' CHM_VN MOD1
  252. 'TITR' ('CHAINE' 'MACHN at t=' 0.0);
  253.  
  254. 'FINSI' ;
  255.  
  256. MOTRN = 'RN' ;
  257. MOTRNX = 'RUX' ;
  258. MOTRNY = 'RUY' ;
  259. MOTRETN = 'RETN' ;
  260. LISTINCO = 'MOTS' MOTRN MOTRNX MOTRNY MOTRETN ;
  261.  
  262. *********************************************************************
  263. ********************** TEST *****************************************
  264. *********************************************************************
  265.  
  266. ZERO = 1.0D-8 ;
  267.  
  268. *
  269. **** Parameter for the computations
  270. *
  271. *
  272.  
  273. * Safety Factor fot the time step
  274.  
  275. SAFFAC = 0.5 ;
  276.  
  277. *
  278. ********** Procedure qui calcule F \cdot n =
  279. *
  280. * COEFF1 = \rho u_n
  281. * COEFF2 = \rho u_n ux '+' p nx
  282. * COEFF2 = \rho u_n uy '+' p ny
  283. * COEFF4 = \rho u_n h_t
  284. *
  285. 'DEBPROC' FSCALN;
  286. 'ARGUMENT' UX'*'FLOTTANT UY'*'FLOTTANT NX'*'FLOTTANT NY'*'FLOTTANT
  287. RHO'*'FLOTTANT P'*'FLOTTANT GAMMA'*'FLOTTANT;
  288.  
  289. UN = (UX '*' NX) '+' (UY '*' NY) ;
  290. RECIN = 0.5 '*' RHO '*' ((UX '*' UX) '+' (UY '*' UY)) ;
  291. RH = (GAMMA '/' (GAMMA '-' 1.)) '*' P ;
  292. COEF1 = RHO '*' UN ;
  293. COEF2 = (RHO '*' UN '*' UX) '+' (P '*' NX) ;
  294. COEF3 = (RHO '*' UN '*' UY) '+' (P '*' NY) ;
  295. COEF4 = UN '*' (RH '+' RECIN) ;
  296.  
  297. 'FINPROC' COEF1 COEF2 COEF3 COEF4 ;
  298.  
  299. *
  300. **** Beginning of the main program
  301. *
  302.  
  303.  
  304. RN = 'COPIER' RN0 ;
  305. GN = 'COPIER' GN0 ;
  306. RETN = 'COPIER' RETN0 ;
  307.  
  308.  
  309. * We define DIAMIN = CHAMPOINT 'CENTRE' (diameter minimum of the cell).
  310. * One component, 'SCAL'.
  311. * DOMVOL = CHAMPOINT 'CENTRE' (volume of the cell).
  312. * One component, 'SCAL'.
  313. * SURDOM = CHAMPOINT 'FACE' (surface of each interface).
  314. * One component, 'SCAL'.
  315. * NORDOM = CHAMPOINT 'FACE' (normales to each interface)
  316. * 2 components, 'UX', 'UY'
  317. *
  318. * Names of the residuum components
  319. *
  320.  
  321. DIAMIN = 'DOMA' $DOMTOT 'DIAMIN' ;
  322. DOMVOL = 'DOMA' $DOMTOT 'VOLUME' ;
  323. SURDOM = 'DOMA' $DOMTOT 'SURFACE' ;
  324. NORDOM = 'DOMA' $DOMTOT 'NORMALE' ;
  325.  
  326. *
  327. **** Primitive variables
  328. *
  329.  
  330. VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN ;
  331.  
  332. *
  333. **** Local time step UNSDT = 1 '/' DT
  334. *
  335.  
  336. UNSDT = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.0 ;
  337.  
  338. *
  339. **** Loop to solve the FMM linear system with JACOBI
  340. *
  341. * a_i (DELTA U)_i^n = RES_{expl,i} '+' b_i^n '-' b_i^{n+1}
  342. *
  343. * a_i is a CHAMPOINT centre with one componenent ('SCAL)
  344. *
  345. * b_i is a CHAMPOINT centre with four components (see LISTINCO)
  346. *
  347. * b_i^{n+1} a CHAMPOINT centre with four components (see LISTINCO)
  348. *
  349. * First of all we compute a_i et b_i^n
  350. *
  351. * We also compute SIGMAF = CHAMPOINT face with one component. It
  352. * contains (un '+' c) at each face.
  353. *
  354. ANI = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.0 ;
  355. BNI = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 4 MOTRN 0.0
  356. MOTRNX 0.0 MOTRNY 0.0 MOTRETN 0.0 ;
  357. SIGMAF = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'FACE') 1 'SCAL' 0.0 ;
  358.  
  359. *
  360. **** LOOP ON 'FACEL'
  361. *
  362. NPOIFA = 'NBEL' ('DOMA' $DOMTOT 'FACEL') ;
  363. 'REPETER' BLFAC NPOIFA ;
  364. ELTINI = ('ELEM' ('DOMA' $DOMTOT 'FACEL') &BLFAC) ;
  365.  
  366. *
  367. * Each elements has tree points
  368. * |
  369. * +L +Cf +R
  370. * |
  371. * L,R are cell centers
  372. * Cf is a the face center
  373. * Normal are always directed frol L to Cf
  374. *
  375. ELT = 'CHANGER' 'POI1' ELTINI ;
  376. 'SI' (('NBNO' ELT) 'EGA' 2) ;
  377. *
  378. ********** Murs
  379. *
  380. PL = 'POIN' 1 ELT ;
  381. PF = 'POIN' 2 ELT ;
  382. ELTL = 'MANUEL' 'POI1' PL ;
  383. ELTF = 'MANUEL' 'POI1' PF ;
  384. * Geometric parameters
  385. VOLL = 'EXTRAIRE' DOMVOL PL 'SCAL' ;
  386. DIAL = 'EXTRAIRE' DIAMIN PL 'SCAL' ;
  387. SURC = 'EXTRAIRE' SURDOM PF 'SCAL' ;
  388. NORX = 'EXTRAIRE' NORDOM PF 'UX' ;
  389. NORY = 'EXTRAIRE' NORDOM PF 'UY' ;
  390. * Physical values
  391. UNXL = 'EXTRAIRE' VN PL 'UX' ;
  392. UNYL = 'EXTRAIRE' VN PL 'UY' ;
  393. RNL = 'EXTRAIRE' RN PL 'SCAL' ;
  394. PNL = 'EXTRAIRE' PN PL 'SCAL' ;
  395. GAML = 'EXTRAIRE' GAMN PL 'SCAL' ;
  396. UNNL = (UNXL '*' NORX) '+' (UNYL '*' NORY) ;
  397. UNTL = (UNYL '*' NORX) '-' (UNXL '*' NORY) ;
  398. *
  399. RNR = RNL ;
  400. PNR = PNL ;
  401. GAMR = GAML ;
  402. UNNR = -1.0 '*' UNNL ;
  403. UNTR = UNTL ;
  404. UNXR = (UNNR '*' NORX) '-' (UNTR '*' NORY) ;
  405. UNYR = (UNNR '*' NORY) '+' (UNTR '*' NORX) ;
  406. * Computations
  407. RETL = ((1. '/' (GAML '-' 1.)) '*' PNL) '+' (0.5 '*'
  408. ((UNXL '*' UNXL) '+' (UNYL '*' UNYL)) '*' RNL) ;
  409. RETR = ((1. '/' (GAMR '-' 1.)) '*' PNR) '+' (0.5 '*'
  410. ((UNXR '*' UNXR) '+' (UNYR '*' UNYR)) '*' RNR) ;
  411. CSONF = ((0.5 '*' (GAML '+' GAMR)) '*' (PNL '+' PNR) '/'
  412. (RNL '+' RNR)) ;
  413. CSONF = CSONF '**' 0.5 ;
  414. UNF = 0.5 '*' (('ABS' UNNL) '+' ('ABS' UNNR)) ;
  415. SIGF = CSONF '+' UNF ;
  416. * SIGMAF
  417. SIGNF = 'MANUEL' 'CHPO' ELTF 1 'SCAL' SIGF ;
  418. SIGMAF = SIGMAF '+' SIGNF ;
  419. * UNSDT
  420. UNSDTL = 'MANUEL' 'CHPO' ELTL 1 'SCAL'
  421. (SIGF '/' DIAL) ;
  422. UNSDT = 0.5 '*' ( (UNSDT '+' UNSDTL) '+'
  423. ('ABS' (UNSDT '-' UNSDTL)) ) ;
  424. * ANI
  425. ANL = 'MANUEL' 'CHPO' ELTL 1 'SCAL' ((SURC '*' SIGF) '/'
  426. (2. '*' VOLL)) ;
  427. ANI = ANI '+' ANL ;
  428. * BNI
  429. *
  430. ********** Procedure qui calcule F \cdot n =
  431. *
  432. * COEFF1 = \rho u_n
  433. * COEFF2 = \rho u_n ux '+' p nx
  434. * COEFF2 = \rho u_n uy '+' p ny
  435. * COEFF4 = \rho u_n h_t
  436. *
  437. *
  438. COEF1L COEF2L COEF3L COEF4L = FSCALN
  439. UNXL UNYL NORX NORY RNL PNL GAML ;
  440. COEF1R COEF2R COEF3R COEF4R = FSCALN
  441. UNXR UNYR NORX NORY RNR PNR GAMR ;
  442. SSDVL = SURC '/' (2. '*' VOLL) ;
  443. BNL = 'MANUEL' 'CHPO' ELTL 4
  444. MOTRN ((COEF1L '+' COEF1R '-' (SIGF '*' RNR)) '*' SSDVL)
  445. MOTRNX ((COEF2L '+' COEF2R '-' (SIGF '*' RNR '*' UNXR))
  446. '*' SSDVL)
  447. MOTRNY ((COEF3L '+' COEF3R '-' (SIGF '*' RNR '*' UNYR))
  448. '*' SSDVL)
  449. MOTRETN ((COEF4L '+' COEF4R '-' (SIGF '*' RETR))
  450. '*' SSDVL) ;
  451. BNI = BNI '+' BNL ;
  452. 'SINON' ;
  453. *
  454. ********** Domaine interieur
  455. *
  456. PL = 'POIN' 1 ELT ;
  457. PF = 'POIN' 2 ELT ;
  458. PR = 'POIN' 3 ELT ;
  459. ELTL = 'MANUEL' 'SEG2' PL PR ;
  460. ELTL1 = 'CHANGER' 'POI1' ELTL ;
  461. ELTF = 'MANUEL' 'POI1' PF ;
  462. * Geometric parameters
  463. VOLL = 'EXTRAIRE' DOMVOL PL 'SCAL' ;
  464. VOLR = 'EXTRAIRE' DOMVOL PR 'SCAL' ;
  465. DIAL = 'EXTRAIRE' DIAMIN PL 'SCAL' ;
  466. DIAR = 'EXTRAIRE' DIAMIN PR 'SCAL' ;
  467. SURC = 'EXTRAIRE' SURDOM PF 'SCAL' ;
  468. NORX = 'EXTRAIRE' NORDOM PF 'UX' ;
  469. NORY = 'EXTRAIRE' NORDOM PF 'UY' ;
  470. * Physical values
  471. UNXL = 'EXTRAIRE' VN PL 'UX' ;
  472. UNYL = 'EXTRAIRE' VN PL 'UY' ;
  473. RNL = 'EXTRAIRE' RN PL 'SCAL' ;
  474. PNL = 'EXTRAIRE' PN PL 'SCAL' ;
  475. GAML = 'EXTRAIRE' GAMN PL 'SCAL' ;
  476. *
  477. UNXR = 'EXTRAIRE' VN PR 'UX' ;
  478. UNYR = 'EXTRAIRE' VN PR 'UY' ;
  479. RNR = 'EXTRAIRE' RN PR 'SCAL' ;
  480. PNR = 'EXTRAIRE' PN PR 'SCAL' ;
  481. GAMR = 'EXTRAIRE' GAMN PR 'SCAL' ;
  482. * Computations
  483. UNNL = (UNXL '*' NORX) '+' (UNYL '*' NORY) ;
  484. UNNR = (UNXR '*' NORX) '+' (UNYR '*' NORY) ;
  485. RETL = ((1. '/' (GAML '-' 1.)) '*' PNL) '+' (0.5 '*'
  486. ((UNXL '*' UNXL) '+' (UNYL '*' UNYL)) '*' RNL) ;
  487. RETR = ((1. '/' (GAMR '-' 1.)) '*' PNR) '+' (0.5 '*'
  488. ((UNXR '*' UNXR) '+' (UNYR '*' UNYR)) '*' RNR) ;
  489. CSONF = ((0.5 '*' (GAML '+' GAMR)) '*' (PNL '+' PNR) '/'
  490. (RNL '+' RNR)) ;
  491. CSONF = CSONF '**' 0.5 ;
  492. UNF = 0.5 '*' (('ABS' UNNL) '+' ('ABS' UNNR)) ;
  493. SIGF = CSONF '+' ('ABS' UNF) ;
  494. * SIGMAF
  495. SIGNF = 'MANUEL' 'CHPO' ELTF 1 'SCAL' SIGF ;
  496. SIGMAF = SIGMAF '+' SIGNF ;
  497. * UNSDT
  498. UNSDTL = 'MANUEL' 'CHPO' ELTL1 1 'SCAL'
  499. ('PROG' (SIGF '/' DIAL) (SIGF '/' DIAR)) ;
  500. UNSDT = 0.5 '*' ( (UNSDT '+' UNSDTL) '+'
  501. ('ABS' (UNSDT '-' UNSDTL)) ) ;
  502. * ANI
  503. ANL = 'MANUEL' 'CHPO' ELTL1 1 'SCAL'
  504. ('PROG' ((SURC '*' SIGF) '/' (2. '*' VOLL))
  505. ((SURC '*' SIGF) '/' (2. '*' VOLR))) ;
  506. ANI = ANI '+' ANL ;
  507. * BNI
  508. COEF1L COEF2L COEF3L COEF4L = FSCALN
  509. UNXL UNYL NORX NORY RNL PNL GAML ;
  510. COEF1R COEF2R COEF3R COEF4R = FSCALN
  511. UNXR UNYR NORX NORY RNR PNR GAMR ;
  512. SSDVL = SURC '/' (2. '*' VOLL) ;
  513. SSDVR = SURC '/' (-2. '*' VOLR) ;
  514. BNL1 = 'MANUEL' 'CHPO' ELTL1 2
  515. MOTRN ('PROG'
  516. ((COEF1L '+' COEF1R '-' (SIGF '*' RNR)) '*' SSDVL)
  517. ((COEF1L '+' COEF1R '+' (SIGF '*' RNL)) '*' SSDVR))
  518. MOTRNX ('PROG'
  519. ((COEF2L '+' COEF2R '-' (SIGF '*' RNR '*' UNXR)) '*' SSDVL)
  520. ((COEF2L '+' COEF2R '+' (SIGF '*' RNL '*' UNXL)) '*' SSDVR))
  521. ;
  522. BNL2 = 'MANUEL' 'CHPO' ELTL1 2
  523. MOTRNY ('PROG'
  524. ((COEF3L '+' COEF3R '-' (SIGF '*' RNR '*' UNYR)) '*' SSDVL)
  525. ((COEF3L '+' COEF3R '+' (SIGF '*' RNL '*' UNYL)) '*' SSDVR))
  526. MOTRETN ('PROG'
  527. ((COEF4L '+' COEF4R '-' (SIGF '*' RETR)) '*' SSDVL)
  528. ((COEF4L '+' COEF4R '+' (SIGF '*' RETL)) '*' SSDVR)) ;
  529. BNI = BNI '+' BNL1 '+' BNL2 ;
  530. 'FINSI' ;
  531. 'FIN' BLFAC ;
  532. UNSDT = UNSDT '/' (0.5 * SAFFAC) ;
  533. ANI = ANI '+' UNSDT ;
  534.  
  535. ANI1 = 'KONV' 'VF' 'PMONOFMM' 'AN' LISTINCO
  536. $DOMTOT RN GN RETN GAMN SAFFAC ;
  537.  
  538. BNI1 = 'KONV' 'VF' 'PMONOFMM' 'BN' LISTINCO
  539. $DOMTOT RN GN RETN GAMN ;
  540.  
  541.  
  542. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  543.  
  544. 'SI' GRAPH ;
  545.  
  546. CHM_ER1 = 'KCHA' $DOMTOT 'CHAM' ('ABS' (BNI '-' BNI1)) ;
  547. 'TRAC' CHM_ER1 MOD1 ;
  548. CHM_ER2 = 'KCHA' $DOMTOT 'CHAM' ('ABS' (ANI '-' ANI1)) ;
  549. 'TRAC' CHM_ER2 MOD1 ;
  550.  
  551. 'FINSI' ;
  552.  
  553. ERR1 = 'MAXIMUM' (BNI '-' BNI1) 'ABS' ;
  554. 'SI' (ERR1 > ZERO) ;
  555. 'MESSAGE' 'Probleme en KONV' ;
  556. 'ERREUR' 5 ;
  557. 'FINSI' ;
  558.  
  559. ERR2 = 'MAXIMUM' (BNI '-' BNI1) 'ABS' ;
  560. 'SI' (ERR2 > ZERO) ;
  561. 'MESSAGE' 'Probleme en KONV' ;
  562. 'ERREUR' 5 ;
  563. 'FINSI' ;
  564.  
  565. 'FIN' ;
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  

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