Télécharger pret_ther4.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : pret_ther4.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. **********************************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation" pour la solution des ****
  6. **** Equations d'Euler pour un gaz parfait. ****
  7. **** ****
  8. **** OPERATEUR PRET ****
  9. **** Operateur qui 'recontruit les variables primitives aux faces ****
  10. **** Cas gaz "thermally perfect" multi-especes ****
  11. **** Interieur et Mur ****
  12. **** Splitting des scalaires passifs ****
  13. **** ****
  14. **** A. BECCANTINI DRN/DMT/SEMT/TTMF FEVRIER 2000 ****
  15. **********************************************************************
  16.  
  17. 'OPTION' 'DIME' 2 ;
  18. 'OPTION' 'ELEM' QUA4 ;
  19. 'OPTION' 'ECHO' 0 ;
  20. 'OPTION' 'TRAC' 'X' ;
  21.  
  22. *
  23. *** GRAPH
  24. *
  25.  
  26. * GRAPH = VRAI ;
  27. GRAPH = FAUX ;
  28.  
  29.  
  30. ***************************
  31. *** PROCEDURE RUO1 ****
  32. ***************************
  33. *
  34. *** Precedure pour la rotation d'un tenseur de premier
  35. * ordre
  36. *
  37.  
  38. 'DEBPROC' RUO1 ;
  39. 'ARGUMENT' ALPHA*'FLOTTANT' UN*'FLOTTANT' UT*'FLOTTANT';
  40.  
  41. SINA = 'SIN' ALPHA ;
  42. COSA = 'COS' ALPHA ;
  43.  
  44. UX = (UN * COSA ) '-' (UT * SINA) ;
  45. UY = (UN * SINA ) '+' (UT * COSA) ;
  46.  
  47.  
  48. 'FINPROC' UX UY;
  49.  
  50. ***************************
  51. *** PROCEDURE RUO2 ****
  52. ***************************
  53. *
  54. *** Precedure pour la rotation d'un tenseur de deuxieme
  55. * ordre
  56. *
  57.  
  58. 'DEBPROC' RUO2 ;
  59. 'ARGUMENT' ALPHA*'FLOTTANT' UNN*'FLOTTANT' UNT*'FLOTTANT'
  60. UTN*'FLOTTANT' UTT*'FLOTTANT';
  61. *
  62. **** (n,t) -> (x,y)
  63. *
  64. * n = CA x '+' SA y ;
  65. * t = -SA x '+' CA y ;
  66. *
  67. * UNT = DUN/DT
  68. *
  69.  
  70. SA = 'SIN' ALPHA ;
  71. CA = 'COS' ALPHA ;
  72. CA2 = CA * CA ;
  73. CASA = CA * SA ;
  74. SA2 = SA * SA;
  75.  
  76. UXX = (CA2 * UNN) '-' (CASA * (UNT '+' UTN)) '+' (SA2 *UTT) ;
  77. UYX = (CASA * (UNN '-' UTT)) '-' (SA2 * UNT) '+' (CA2 * UTN ) ;
  78. UXY = (CASA * (UNN '-' UTT)) '+' (CA2 * UNT) '-' (SA2 * UTN ) ;
  79. UYY = (SA2 * UNN) '+' (CASA * (UNT '+' UTN)) '+' (CA2 *UTT) ;
  80.  
  81. 'FINPROC' UXX UXY UYX UYY;
  82.  
  83. *******************************************************
  84. **** Cas multi-especes : la table proprieté de gaz ****
  85. *******************************************************
  86.  
  87. PGAZ = 'TABLE' ;
  88. PGAZ2= 'TABLE' ;
  89.  
  90. *
  91. **** Especes qui sont dans les equations d'Euler
  92. *
  93.  
  94. PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'N2 ' ;
  95. PGAZ2. 'ESPEULE' = 'MOTS' 'H2 ' 'N2 ' ;
  96.  
  97. *
  98. **** Espece qui n'y est pas
  99. *
  100.  
  101.  
  102. PGAZ . 'ESPNEULE' = 'O2 ';
  103. PGAZ2. 'ESPNEULE' = 'O2 ';
  104.  
  105. *
  106.  
  107. PGAZ . 'H2 ' = 'TABLE' ;
  108. PGAZ . 'N2 ' = 'TABLE' ;
  109. PGAZ . 'O2 ' = 'TABLE' ;
  110. PGAZ2. 'H2 ' = 'TABLE' ;
  111. PGAZ2. 'N2 ' = 'TABLE' ;
  112. PGAZ2. 'O2 ' = 'TABLE' ;
  113.  
  114. *
  115. **** R (J/Kg/K)
  116. *
  117.  
  118. PGAZ . 'H2 ' . 'R' = 4130.0 ;
  119. PGAZ . 'N2 ' . 'R' = 296.8 ;
  120. PGAZ . 'O2 ' . 'R' = 259.8 ;
  121. PGAZ2. 'H2 ' . 'R' = 4130.0 ;
  122. PGAZ2. 'N2 ' . 'R' = 296.8 ;
  123. PGAZ2. 'O2 ' . 'R' = 259.8 ;
  124.  
  125.  
  126. *
  127. **** Regressions polynomials
  128. *
  129.  
  130. PGAZ . 'H2 ' . 'A' = 'PROG' 9834.91866 0.0 0.0 0.0 0.0 ;
  131. PGAZ . 'O2 ' . 'A' = 'PROG' 575.012333 0.0 0.0 0.0 0. ;
  132. PGAZ . 'N2 ' . 'A' = 'PROG' 652.940766 0.0 0.0 0.0 0.0 ;
  133. PGAZ2. 'H2 ' . 'A' = 'PROG' 9834.91866 0.0 0.0 0.0 0.0 ;
  134. PGAZ2. 'O2 ' . 'A' = 'PROG' 575.012333 0.0 0.0 0.0 0. ;
  135. PGAZ2. 'N2 ' . 'A' = 'PROG' 652.940766 0.0 0.0 0.0 0.0 ;
  136.  
  137. *
  138. **** "Enthalpies" (ou energies) de formations a OK (J/Kg)
  139. * Note: ce sont des entites numeriques
  140. * h_i = h_i(T0) '-' \int_0^{T0} cp_i(x) dx =
  141. * h_i(T0) '-' (\int_0^{T0} cv_i(x) dx '+' R_i * T0)
  142. *
  143.  
  144. PGAZ . 'H2 ' . 'H0K' = -4.195D6 ;
  145. PGAZ . 'O2 ' . 'H0K' = -2.634D5 ;
  146. PGAZ . 'N2 ' . 'H0K' = -2.953D5 ;
  147. PGAZ2. 'H2 ' . 'H0K' = -4.195D6 ;
  148. PGAZ2. 'O2 ' . 'H0K' = -2.634D5 ;
  149. PGAZ2. 'N2 ' . 'H0K' = -2.953D5 ;
  150.  
  151. PGAZ2 . 'SCALPASS' = 'MOTS' 'TITI' 'TUTU' 'TATA' ;
  152.  
  153. ***************************
  154. ***** DOMAINE SPATIAL ****
  155. ***************************
  156.  
  157. *
  158. **** Deux carre
  159. *
  160.  
  161. A1 = 0.0D0 0.0D0 ;
  162. A2 = 1.0D0 0.0D0 ;
  163. A3 = 2.0D0 0.0D0 ;
  164. A4 = 2.0D0 1.0D0 ;
  165. A5 = 1.0D0 1.0D0 ;
  166. A6 = 0.0D0 1.0D0 ;
  167.  
  168. L12 = A1 'DROIT' 1 A2 ;
  169. L23 = A2 'DROIT' 1 A3 ;
  170. L34 = A3 'DROIT' 1 A4 ;
  171. L45 = A4 'DROIT' 1 A5 ;
  172. L56 = A5 'DROIT' 1 A6 ;
  173. L61 = A6 'DROIT' 1 A1 ;
  174. L25 = A2 'DROIT' 1 A5 ;
  175.  
  176.  
  177. DOM10 = 'DALL' L12 L25 L56 L61
  178. 'PLANE';
  179. DOM20 = 'DALL' L23 L34 L45 ('INVERSE' L25)
  180. 'PLANE';
  181.  
  182. *
  183. **** P10: Point face entre le deux carre, ou on fait les controlles
  184. **** P20: Point face sur le "mur"
  185. **
  186.  
  187. P10 = 1.0 0.5 ;
  188. P20 = 2.0 0.5 ;
  189.  
  190. DOM1 = DOM10 ;
  191. DOM2 = DOM20 ;
  192.  
  193.  
  194. DOMTOT = DOM1 ET DOM2;
  195. 'ELIMINATION' (DOM1 ET DOM2) 1D-6;
  196. DOMTOT = DOM1 ET DOM2;
  197.  
  198.  
  199. $DOMTOT = 'MODELISER' DOMTOT 'EULER';
  200.  
  201. $DOM1 = 'MODELISER' DOM1 'EULER';
  202. $DOM2 = 'MODELISER' DOM2 'EULER';
  203.  
  204. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  205.  
  206. TDOM1 = 'DOMA' $DOM1 'VF';
  207. TDOM2 = 'DOMA' $DOM2 'VF';
  208.  
  209. MDOM1 = TDOM1 . 'QUAF' ;
  210. MDOM2 = TDOM2 . 'QUAF' ;
  211. MDOMTOT = TDOMTOT . 'QUAF' ;
  212.  
  213. 'ELIMINATION' (MDOMTOT ET MDOM1) 0.0001 ;
  214. 'ELIMINATION' (MDOMTOT ET MDOM2) 0.0001 ;
  215.  
  216. 'SI' GRAPH;
  217. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET' ('DOMA' $DOMTOT 'FACEL')
  218. 'ET' P10 'ET' P20) 'TITRE' 'Domaine et FACEL';
  219. 'FINSI' ;
  220.  
  221.  
  222. *
  223. **** TEST1: si les limiteurs sont nuls ou les gradients son nuls
  224. * le deuxieme ordre en espace 'et premier ordre
  225. * en temps degenere en premier ordre en espace
  226. *
  227.  
  228.  
  229. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 1.0D0;
  230.  
  231. PN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 2.0D0;
  232.  
  233. VIT = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (4.0 5.0);
  234.  
  235. GAMMA = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 1.5D0;
  236.  
  237.  
  238. *
  239. **** Limiteurs nuls, gradients non-nuls
  240. *
  241.  
  242.  
  243.  
  244. GRADR = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  245. (1.0D0 1.0D0);
  246.  
  247.  
  248.  
  249. GRADP = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  250. (1.0D0 1.0D0);
  251.  
  252.  
  253.  
  254. GRADVX = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  255. (1.0D0 1.0D0);
  256.  
  257.  
  258. GRADVY = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  259. (1.0D0 1.0D0);
  260.  
  261. GRADV = GRADVX 'ET' GRADVY ;
  262.  
  263.  
  264.  
  265. ALR = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1' 0.0D0 ;
  266.  
  267.  
  268. ALP = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1' 0.0D0 ;
  269.  
  270.  
  271. ALV = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  272. (0.0 0.0D0) ;
  273.  
  274. * YN
  275.  
  276.  
  277. YG = 'PROG' 0.2 0.1 ;
  278. YD = 'PROG' 0.0 0.13 ;
  279.  
  280. YN1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' ('MOTS' 'H2 ' 'N2 ' )
  281. (('EXTRAIRE' 1 YG) ('EXTRAIRE' 2 YG)) ;
  282. YN2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' ('MOTS' 'H2 ' 'N2 ')
  283. (('EXTRAIRE' 1 YD) ('EXTRAIRE' 2 YD)) ;
  284. YN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' ('MOTS' 'H2 ' 'N2 ')
  285. (YN1 'ET' YN2) ;
  286.  
  287. GRADYH2 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  288. (1.0D0 1.0D0);
  289.  
  290. GRADYN2 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  291. (1.0D0 1.0D0);
  292. GRADYN = GRADYH2 'ET' GRADYN2 ;
  293.  
  294. ALYN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1' 'P2' (0.0 0.0) ;
  295.  
  296. *
  297.  
  298. scag = 11.342 ;
  299. scad = 34.2;
  300.  
  301. SCAC11 = 'KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'TITI' scag ;
  302. SCAC12 = 'KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'TITI' scad ;
  303. SCAC1 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'TITI'
  304. (SCAC11 'ET' SCAC12) ;
  305.  
  306. SCAC21 = 'KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'TUTU' scag ;
  307. SCAC22 = 'KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'TUTU' scad ;
  308. SCAC2 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'TUTU'
  309. (SCAC21 'ET' SCAC22) ;
  310.  
  311. SCAC31 = 'KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'TATA' scag ;
  312. SCAC32 = 'KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'TATA' scad ;
  313. SCAC3 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'TATA'
  314. (SCAC31 'ET' SCAC32) ;
  315.  
  316.  
  317. SCAC = SCAC1 'ET' SCAC2 'ET' SCAC3 ;
  318.  
  319.  
  320. GRADS1 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  321. (1.0D0 1.0D0);
  322. GRADS2 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  323. (1.0D0 1.0D0);
  324. GRADS3 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P3DX' 'P3DY'
  325. (1.0D0 1.0D0);
  326.  
  327. GRADS = GRADS1 'ET' GRADS2 'ET' GRADS3 ;
  328.  
  329. ALS1 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1' 0.0 ;
  330. ALS2 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P2' 0.0 ;
  331. ALS3 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P3' 0.0 ;
  332.  
  333. ALS = ALS1 'ET' ALS2 'ET' ALS3 ;
  334.  
  335. *
  336.  
  337. ORDESP = 1;
  338. ORDTEM = 1;
  339.  
  340.  
  341. ROF1 VITF1 PF1 YF1 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  342. $DOMTOT PGAZ RN VIT PN YN ;
  343.  
  344. ROF11 VITF11 PF11 YF11 SCAF11 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  345. $DOMTOT PGAZ2 RN VIT PN YN SCAC ;
  346.  
  347.  
  348. ORDESP = 2;
  349. ORDTEM = 1;
  350.  
  351.  
  352. ROF VITF PF YF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  353. $DOMTOT PGAZ RN GRADR ALR
  354. VIT GRADV ALV
  355. PN GRADP ALP
  356. YN GRADYN ALYN;
  357.  
  358. ROF22 VITF22 PF22 YF22 SCAF22 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  359. $DOMTOT PGAZ2 RN GRADR ALR
  360. VIT GRADV ALV
  361. PN GRADP ALP
  362. YN GRADYN ALYN
  363. SCAC GRADS ALS;
  364.  
  365.  
  366. ERRO = 'MAXIMUM' ('PROG'
  367. ('MAXIMUM' (ROF '-' ROF1) 'ABS') ('MAXIMUM' (ROF '-' ROF11) 'ABS')
  368. ('MAXIMUM' (ROF '-' ROF22) 'ABS')
  369. ('MAXIMUM' (PF '-' PF1) 'ABS') ('MAXIMUM' (PF '-' PF11) 'ABS')
  370. ('MAXIMUM' (PF '-' PF22) 'ABS')
  371. ('MAXIMUM' (VITF '-' VITF1) 'ABS') ('MAXIMUM'(VITF '-' VITF11)'ABS')
  372. ('MAXIMUM' (VITF '-' VITF22) 'ABS') ) ;
  373.  
  374. ERRO = 'MAXIMUM' ('PROG' ERRO
  375. ('MAXIMUM' (YF '-' YF1) 'ABS') ('MAXIMUM' (YF '-' YF11) 'ABS')
  376. ('MAXIMUM' (YF '-' YF22) 'ABS') ('MAXIMUM' (SCAF11 '-' SCAF22) 'ABS'));
  377.  
  378.  
  379. 'SI' (ERRO > 1.0D-12);
  380. 'ERREUR' 5;
  381. 'FINSI' ;
  382.  
  383.  
  384. *
  385. **** Limiteurs non-nuls, gradients nuls
  386. *
  387.  
  388.  
  389. GRADR = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  390. (0.0D0 0.0D0);
  391.  
  392. GRADP = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  393. (0.0D0 0.0D0);
  394.  
  395. GRADVX = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  396. (0.0D0 0.0D0);
  397. GRADVY = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  398. (0.0D0 0.0D0);
  399. GRADV = GRADVX 'ET' GRADVY ;
  400.  
  401. ALR = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1' 0.4D0 ;
  402.  
  403.  
  404. ALP = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1' 0.8D0 ;
  405.  
  406.  
  407. ALV = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  408. (0.9 0.9D0) ;
  409.  
  410. GRADYN = ('KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  411. (0.0D0 0.0D0)) 'ET'
  412. ('KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  413. (0.0D0 0.0D0));
  414.  
  415. ALYN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1' 'P2 ' (1.0 1.0) ;
  416.  
  417.  
  418.  
  419. GRADS1 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  420. (0.0D0 0.0D0);
  421. GRADS2 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  422. (0.0D0 0.0D0);
  423. GRADS3 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P3DX' 'P3DY'
  424. (0.0D0 0.0D0);
  425.  
  426. GRADS = GRADS1 'ET' GRADS2 'ET' GRADS3 ;
  427.  
  428. ALS1 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1' 1.0 ;
  429. ALS2 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P2' 1.0 ;
  430. ALS3 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P3' 1.0 ;
  431.  
  432. ALS = ALS1 'ET' ALS2 'ET' ALS3 ;
  433.  
  434. *
  435.  
  436.  
  437. ORDESP = 1;
  438. ORDTEM = 1;
  439.  
  440.  
  441. ROF1 VITF1 PF1 YF1 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  442. $DOMTOT PGAZ RN VIT PN YN ;
  443.  
  444. ROF11 VITF11 PF11 YF11 SCAF11 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  445. $DOMTOT PGAZ2 RN VIT PN YN SCAC ;
  446.  
  447.  
  448. ORDESP = 2;
  449. ORDTEM = 1;
  450.  
  451.  
  452. ROF VITF PF YF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  453. $DOMTOT PGAZ RN GRADR ALR
  454. VIT GRADV ALV
  455. PN GRADP ALP
  456. YN GRADYN ALYN;
  457.  
  458. ROF22 VITF22 PF22 YF22 SCAF22 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  459. $DOMTOT PGAZ2 RN GRADR ALR
  460. VIT GRADV ALV
  461. PN GRADP ALP
  462. YN GRADYN ALYN
  463. SCAC GRADS ALS;
  464.  
  465.  
  466. ERRO = 'MAXIMUM' ('PROG'
  467. ('MAXIMUM' (ROF '-' ROF1) 'ABS') ('MAXIMUM' (ROF '-' ROF11) 'ABS')
  468. ('MAXIMUM' (ROF '-' ROF22) 'ABS')
  469. ('MAXIMUM' (PF '-' PF1) 'ABS') ('MAXIMUM' (PF '-' PF11) 'ABS')
  470. ('MAXIMUM' (PF '-' PF22) 'ABS')
  471. ('MAXIMUM' (VITF '-' VITF1) 'ABS') ('MAXIMUM'(VITF '-' VITF11)'ABS')
  472. ('MAXIMUM' (VITF '-' VITF22) 'ABS') ) ;
  473.  
  474. ERRO = 'MAXIMUM' ('PROG' ERRO
  475. ('MAXIMUM' (YF '-' YF1) 'ABS') ('MAXIMUM' (YF '-' YF11) 'ABS')
  476. ('MAXIMUM' (YF '-' YF22) 'ABS') ('MAXIMUM' (SCAF11 '-' SCAF22) 'ABS'));
  477.  
  478.  
  479. 'SI' (ERRO > 1.0D-12);
  480. 'ERREUR' 5;
  481. 'FINSI' ;
  482.  
  483.  
  484. *
  485. **** TEST2 : Deuxieme ordre en espace, deuxieme ordre en
  486. * temps: invariance par rotation
  487. *
  488. * Il faut remarquer que:
  489. * densite, pression sont des tenseurs d'ordre 0,
  490. * donc leurs gradients sont des tenseurs d'ordre 1
  491. * la vitesse est un tenseur d'ordre 1,
  492. * donc sont gradient est un tenseur d'ordre 2
  493. *
  494. **** On considere un repere solidal avec la surface, (n,t),
  495. * et un repere (x,y)
  496. * On consider une probleme 1D dans le repaire (n,t)
  497. *
  498. * Dans le cas de transort de scalaires passifs
  499. * (PGAZ2 . 'SCALPASS' = 'MOTS' 'TITI' 'TUTU' 'TATA')
  500. * on impose TITI = N2, TOTO = H2, TATA = N2
  501. *
  502. *** Etats gauche et droite
  503. *
  504.  
  505.  
  506.  
  507. gamg = 1.4D0;
  508. rog = 1.00 ;
  509. grong = -1.0D0 ;
  510. grotg = 0.0D0;
  511. alrog = 0.1 ;
  512. pg = 2.0D0 ;
  513. gpng = -3.0D0 ;
  514. gptg = 0.0D0;
  515. alpg = 0.2 ;
  516. ung = 3.0D0 ;
  517. gunng = -5.0D0 ;
  518. guntg = 0.0D0 ;
  519. utg = 0.0D0 ;
  520. gutng = 0.0D0 ;
  521. guttg = 0.0D0;
  522. alug = 0.3 ;
  523. yh2g = 0.1 ;
  524. gyh2ng = -0.0111 ;
  525. gyh2tg = 0.0 ;
  526. alyh2g = 0.123 ;
  527. yn2g = 0.34 ;
  528. gyn2ng = -0.0311 ;
  529. gyn2tg = 0.0 ;
  530. alyn2g = 0.323 ;
  531.  
  532. c2g = gamg '*' pg '/' rog ;
  533.  
  534.  
  535. gamd = 1.8 ;
  536. rod = 1.50 ;
  537. grond = -1.5D0 ;
  538. grotd = 0.0D0 ;
  539. alrod = 0.25 ;
  540. pd = 2.5D0 ;
  541. gpnd = -3.5D0 ;
  542. gptd = 0.0D0 ;
  543. alpd = 0.3 ;
  544. und = 3.5D0 ;
  545. gunnd = -5.5D0 ;
  546. guntd = 0.0D0 ;
  547. utd = 0.0D0 ;
  548. gutnd = 0.0D0 ;
  549. guttd = 0.0D0;
  550. alud = 0.15 ;
  551. yh2d = 0.1131 ;
  552. gyh2nd = -0.03111 ;
  553. gyh2td = 0.0 ;
  554. alyh2d = 0.4123 ;
  555. yn2d = 0.134 ;
  556. gyn2nd = -0.01311 ;
  557. gyn2td = 0.0 ;
  558. alyn2d = 0.1323 ;
  559.  
  560. c2d = gamd '*' pd '/' rod ;
  561.  
  562. deltat = 1.0 ;
  563.  
  564. * Encrement predictive
  565.  
  566. drog = -1.0 '*' ((ung '*' grong '*' alrog) '+' (rog '*' gunng '*' alug))
  567. ;
  568. drog = drog '*' deltat ;
  569.  
  570. drod = -1.0 '*' ((und '*' grond '*' alrod) '+' (rod '*' gunnd '*' alud))
  571. ;
  572. drod = drod '*' deltat ;
  573.  
  574. dung = -1.0 '*' ((ung '*' gunng '*' alug) '+' (alpg '*' gpng '/' rog)) ;
  575. dung = dung '*' deltat ;
  576.  
  577. dund = -1.0 '*' ((und '*' gunnd '*' alud) '+' (alpd '*' gpnd '/' rod)) ;
  578. dund = dund '*' deltat ;
  579.  
  580. dpg = -1.0 '*' ((rog '*' c2g '*' gunng '*' alug) '+'
  581. (ung '*' gpng '*' alpg)) ;
  582. dpg = dpg '*' deltat ;
  583.  
  584. dpd = -1.0 '*' ((rod '*' c2d '*' gunnd '*' alud) '+'
  585. (und '*' gpnd '*' alpd)) ;
  586. dpd = dpd '*' deltat ;
  587.  
  588. dyh2g = -1.0 '*' ((ung '*' gyh2ng '*' alyh2g)) ;
  589. dyh2g = dyh2g '*' deltat ;
  590.  
  591. dyh2d = -1.0 '*' ((und '*' gyh2nd '*' alyh2d)) ;
  592. dyh2d = dyh2d '*' deltat ;
  593.  
  594. dyn2g = -1.0 '*' ((ung '*' gyn2ng '*' alyn2g)) ;
  595. dyn2g = dyn2g '*' deltat ;
  596.  
  597. dyn2d = -1.0 '*' ((und '*' gyn2nd '*' alyn2d)) ;
  598. dyn2d = dyn2d '*' deltat ;
  599.  
  600. * Encrement corrective; dxg = -dxd = 0.5 (point P1)
  601.  
  602. dsrog = 0.5 '*' grong '*' alrog ;
  603. dsrod = -0.5 '*' grond '*' alrod ;
  604.  
  605. dspg = 0.5 '*' gpng '*' alpg ;
  606. dspd = -0.5 '*' gpnd '*' alpd ;
  607.  
  608. dsung = 0.5 '*' gunng '*' alug ;
  609. dsund = -0.5 '*' gunnd '*' alud ;
  610.  
  611. dsyh2g = 0.5 '*' gyh2ng '*' alyh2g ;
  612. dsyh2d = -0.5 '*' gyh2nd '*' alyh2d ;
  613.  
  614. dsyn2g = 0.5 '*' gyn2ng '*' alyn2g ;
  615. dsyn2d = -0.5 '*' gyn2nd '*' alyn2d ;
  616.  
  617. * Encrement corrective; dxd = 0.5 (point P2)
  618.  
  619.  
  620. dsrod2 = -1.0 '*' dsrod ;
  621. dspd2 = -1.0 '*' dspd ;
  622. dsund2 = -1.0 '*' dsund ;
  623. dsyh2d2 = -1.0 '*' dsyh2d ;
  624. dsyn2d2 = -1.0 '*' dsyn2d ;
  625.  
  626. * Les etats (point P1)
  627.  
  628. etrog = rog '+' drog '+' dsrog ;
  629. etrod = rod '+' drod '+' dsrod ;
  630.  
  631. etung = ung '+' dung '+' dsung ;
  632. etund = und '+' dund '+' dsund ;
  633.  
  634. etpg = pg '+' dpg '+' dspg ;
  635. etpd = pd '+' dpd '+' dspd ;
  636.  
  637. etyh2g = yh2g '+' dyh2g '+' dsyh2g ;
  638. etyh2d = yh2d '+' dyh2d '+' dsyh2d ;
  639.  
  640. etyn2g = yn2g '+' dyn2g '+' dsyn2g ;
  641. etyn2d = yn2d '+' dyn2d '+' dsyn2d ;
  642.  
  643. * Les etats (point P2)
  644.  
  645. etrod2 = rod '+' drod '+' dsrod2 ;
  646. etund2 = und '+' dund '+' dsund2 ;
  647. etpd2 = pd '+' dpd '+' dspd2 ;
  648. etyh2d2 = yh2d '+' dyh2d '+' dsyh2d2 ;
  649. etyn2d2 = yn2d '+' dyn2d '+' dsyn2d2 ;
  650.  
  651.  
  652. *
  653. *** Etats a gauche et a droite du point face P1
  654. *
  655. * ro, un, ut, p, yh2, yn2
  656.  
  657. ETATG = 'PROG' etrog etung 0.0 etpg etyh2g etyn2g ;
  658. ETATD = 'PROG' etrod etund 0.0 etpd etyh2d etyn2d ;
  659.  
  660. *
  661. *** Etats a gauche et a droite du point face P1
  662. *
  663. * ro, un, ut, p, yh2, yn2
  664.  
  665. ETATG2 = 'PROG' etrod2 etund2 0.0 etpd2 etyh2d2 etyn2d2 ;
  666. ETATD2 = 'PROG' etrod2 (-1.0 '*'etund2) 0.0 etpd2 etyh2d2 etyn2d2 ;
  667.  
  668. *
  669. *** Rotation
  670. *
  671.  
  672. DANGLE = 85;
  673. ANGLE = -1.0 '*' DANGLE ;
  674. ORIG = 0.0D0 0.0D0;
  675.  
  676.  
  677. 'REPETER' BL1 5;
  678.  
  679. ANGLE = ANGLE '+' DANGLE ;
  680.  
  681. uxg uyg = RUO1 ANGLE UNG UTG ;
  682. uxd uyd = RUO1 ANGLE UND UTD ;
  683.  
  684. groxg groyg = RUO1 ANGLE grong grotg;
  685. groxd groyd = RUO1 ANGLE grond grotd;
  686.  
  687. gpxg gpyg = RUO1 ANGLE gpng gptg;
  688. gpxd gpyd = RUO1 ANGLE gpnd gptd;
  689.  
  690. guxxg guxyg guyxg guyyg = RUO2 ANGLE gunng guntg gutng guttg;
  691. guxxd guxyd guyxd guyyd = RUO2 ANGLE gunnd guntd gutnd guttd;
  692.  
  693. gyh2xg gyh2yg = RUO1 ANGLE gyh2ng gyh2tg ;
  694. gyh2xd gyh2yd = RUO1 ANGLE gyh2nd gyh2td ;
  695.  
  696. gyn2xg gyn2yg = RUO1 ANGLE gyn2ng gyn2tg ;
  697. gyn2xd gyn2yd = RUO1 ANGLE gyn2nd gyn2td ;
  698.  
  699. 'MESSAGE' ;
  700. 'MESSAGE' (CHAIN 'Angle de rotation= ' ANGLE);
  701. 'MESSAGE' ;
  702.  
  703. DOM1 = DOM10 'TOURNER' ANGLE ORIG;
  704. DOM2 = DOM20 'TOURNER' ANGLE ORIG;
  705. P1 = P10 'TOURNER' ANGLE ORIG;
  706. P2 = P20 'TOURNER' ANGLE ORIG;
  707.  
  708. DOMTOT = DOM1 ET DOM2;
  709. 'ELIMINATION' (DOM1 ET DOM2) 1D-6;
  710. DOMTOT = DOM1 ET DOM2;
  711.  
  712.  
  713. $DOMTOT = 'MODELISER' DOMTOT 'EULER';
  714.  
  715. $DOM1 = 'MODELISER' DOM1 'EULER';
  716. $DOM2 = 'MODELISER' DOM2 'EULER';
  717.  
  718. TDOMTOT = 'DOMA' $DOMTOT 'VF';
  719.  
  720. TDOM1 = 'DOMA' $DOM1 'VF';
  721. TDOM2 = 'DOMA' $DOM2 'VF';
  722.  
  723. MDOM1 = TDOM1 . 'QUAF' ;
  724. MDOM2 = TDOM2 . 'QUAF' ;
  725. MDOMTOT = TDOMTOT . 'QUAF' ;
  726.  
  727. 'ELIMINATION' (MDOMTOT ET MDOM1) 0.0001 ;
  728. 'ELIMINATION' (MDOMTOT ET MDOM2) 0.0001 ;
  729.  
  730. 'SI' GRAPH;
  731. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET' ('DOMA' $DOMTOT 'FACEL')
  732. 'ET' P1 'ET' P2) 'TITRE' 'Domaine et FACEL';
  733. 'FINSI' ;
  734.  
  735. *
  736. **** Redefinition de P1 dans $DOMTOT . 'FACE'
  737. *
  738.  
  739. P1 = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P1;
  740. P2 = ('DOMA' $DOMTOT 'FACE') 'POIN' 'PROC' P2;
  741.  
  742.  
  743. ***********************
  744. **** Les CHPOINTs ****
  745. ***********************
  746.  
  747. GAM1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' gamg ;
  748. GAM2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' gamd ;
  749. GAMMA = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (GAM1 'ET' GAM2) ;
  750.  
  751. RN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog;
  752. RN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod;
  753. RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RN1 'ET' RN2);
  754.  
  755.  
  756. VIT1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (uxg uyg);
  757. VIT2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (uxd uyd);
  758. VIT = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (VIT1 'ET' VIT2);
  759.  
  760. PN1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' pg;
  761. PN2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' pd;
  762. PN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (PN1 'ET' PN2);
  763.  
  764. YN1 = 'KCHT' $DOM1 'VECT' 'CENTRE'
  765. 'COMP' 'H2 ' 'N2 ' (yh2g yn2g) ;
  766. YN2 = 'KCHT' $DOM2 'VECT' 'CENTRE'
  767. 'COMP' 'H2 ' 'N2 ' (yh2d yn2d) ;
  768. YN = YN1 'ET' YN2 ;
  769.  
  770. *
  771. **** On impose les gradients et le limiteurs
  772. *
  773.  
  774. ALR1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'P1' alrog ;
  775. ALR2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'P1' alrod ;
  776. ALR = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1'
  777. (ALR1 'ET' ALR2) ;
  778.  
  779.  
  780. ALP1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' 'COMP' 'P1' alpg ;
  781. ALP2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' 'COMP' 'P1' alpd ;
  782. ALP = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 'COMP' 'P1'
  783. (ALP1 'ET' ALP2) ;
  784.  
  785.  
  786. ALV1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  787. (alug alug) ;
  788. ALV2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  789. (alud alud) ;
  790. ALV = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  791. (ALV1 'ET' ALV2) ;
  792.  
  793.  
  794. ALY1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  795. (alyh2g alyn2g) ;
  796. ALY2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  797. (alyh2d alyn2d) ;
  798. ALYN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1' 'P2'
  799. (ALY1 'ET' ALY2) ;
  800.  
  801.  
  802. GRADR1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  803. (groxg groyg) ;
  804.  
  805. GRADR2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  806. (groxd groyd) ;
  807.  
  808. GRADR = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  809. (GRADR1 'ET' GRADR2);
  810.  
  811.  
  812.  
  813. GRADP1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  814. (gpxg gpyg) ;
  815.  
  816. GRADP2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  817. (gpxd gpyd) ;
  818.  
  819. GRADP = 'KCHT' $DOMTOT 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  820. (GRADP1 'ET' GRADP2);
  821.  
  822.  
  823.  
  824. GRADVX1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  825. (guxxg guxyg);
  826.  
  827. GRADVX2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  828. (guxxd guxyd);
  829.  
  830. GRADVY1 = 'KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  831. (guyxg guyyg);
  832.  
  833. GRADVY2 = 'KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  834. (guyxd guyyd);
  835.  
  836. GRADVX = GRADVX1 'ET' GRADVX2 ;
  837. GRADVY = GRADVY1 'ET' GRADVY2 ;
  838. GRADV = GRADVX 'ET' GRADVY ;
  839.  
  840. GRADYN = ('KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  841. (gyh2xg gyh2yg )) 'ET'
  842. ('KCHT' $DOM1 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  843. (gyn2xg gyn2yg )) 'ET'
  844. ('KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P1DX' 'P1DY'
  845. (gyh2xd gyh2yd )) 'ET'
  846. ('KCHT' $DOM2 'VECT' 'CENTRE' 'COMP' 'P2DX' 'P2DY'
  847. (gyn2xd gyn2yd ));
  848.  
  849.  
  850. *N.B: PGAZ2 . 'SCALPASS' = 'MOTS' 'TITI' 'TUTU' 'TATA'
  851. * PGAZ2 . 'ESPEULE' = 'MOTS' 'H2' 'N2'
  852.  
  853.  
  854. SCAC = 'EXCO' ('MOTS' 'N2' 'H2' 'N2') YN
  855. ('MOTS' 'TITI' 'TUTU' 'TATA') 'NATURE' 'DISCRET' ;
  856.  
  857. GRADS = 'EXCO' ('MOTS' 'P2DX' 'P2DY' 'P1DX' 'P1DY' 'P2DX' 'P2DY')
  858. GRADYN
  859. ('MOTS' 'P1DX' 'P1DY' 'P2DX' 'P2DY' 'P3DX' 'P3DY' )
  860. 'NATURE' 'DISCRET' ;
  861.  
  862. ALS = 'EXCO' ('MOTS' 'P2' 'P1' 'P2') ALYN ('MOTS' 'P1' 'P2' 'P3')
  863. 'NATURE' 'DISCRET' ;
  864.  
  865.  
  866.  
  867.  
  868.  
  869. ORDESP = 2;
  870. ORDTEM = 1;
  871.  
  872. ROF VITF PF YF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  873. $DOMTOT PGAZ RN GRADR ALR
  874. VIT GRADV ALV
  875. PN GRADP ALP
  876. YN GRADYN ALYN ;
  877.  
  878.  
  879. ROF1 VITF1 PF1 YF1 SCAF1 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  880. $DOMTOT PGAZ2 RN GRADR ALR
  881. VIT GRADV ALV
  882. PN GRADP ALP
  883. YN GRADYN ALYN
  884. SCAC GRADS ALS ;
  885.  
  886. YF11 = 'EXCO' 'H2' YF1 'SCAL' ;
  887. YF12 = 'EXCO' 'N2' YF1 'SCAL' ;
  888.  
  889. SCAF11 = 'EXCO' 'TITI' SCAF1 'SCAL' ;
  890. SCAF12 = 'EXCO' 'TUTU' SCAF1 'SCAL' ;
  891. SCAF13 = 'EXCO' 'TATA' SCAF1 'SCAL' ;
  892.  
  893. ERRO = 'MAXIMUM' ('PROG'
  894. ('MAXIMUM' (ROF '-' ROF) 'ABS')
  895. ('MAXIMUM' (PF '-' PF1) 'ABS')
  896. ('MAXIMUM' (VITF '-' VITF1) 'ABS')
  897. ('MAXIMUM' (YF '-' YF1) 'ABS') );
  898.  
  899. ERRO = 'MAXIMUM' ('PROG' ERRO
  900. ('MAXIMUM' (YF11 '-' SCAF12) 'ABS')
  901. ('MAXIMUM' (YF12 '-' SCAF11) 'ABS')
  902. ('MAXIMUM' (YF12 '-' SCAF13) 'ABS')) ;
  903.  
  904.  
  905. 'SI' (ERRO > 1.0D-12);
  906. 'ERREUR' 5;
  907. 'FINSI' ;
  908.  
  909.  
  910. *
  911.  
  912. ORDESP = 2;
  913. ORDTEM = 2;
  914.  
  915. ROF VITF PF YF = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  916. $DOMTOT PGAZ RN GRADR ALR
  917. VIT GRADV ALV
  918. PN GRADP ALP
  919. YN GRADYN ALYN
  920. GAMMA deltat ;
  921.  
  922.  
  923. ROF1 VITF1 PF1 YF1 SCAF1 = 'PRET' 'PERFTEMP' ORDESP ORDTEM
  924. $DOMTOT PGAZ2 RN GRADR ALR
  925. VIT GRADV ALV
  926. PN GRADP ALP
  927. YN GRADYN ALYN
  928. SCAC GRADS ALS
  929. GAMMA deltat ;
  930.  
  931. YF11 = 'EXCO' 'H2' YF1 'SCAL' ;
  932. YF12 = 'EXCO' 'N2' YF1 'SCAL' ;
  933.  
  934. SCAF11 = 'EXCO' 'TITI' SCAF1 'SCAL' ;
  935. SCAF12 = 'EXCO' 'TUTU' SCAF1 'SCAL' ;
  936. SCAF13 = 'EXCO' 'TATA' SCAF1 'SCAL' ;
  937.  
  938. ERRO = 'MAXIMUM' ('PROG'
  939. ('MAXIMUM' (ROF '-' ROF) 'ABS')
  940. ('MAXIMUM' (PF '-' PF1) 'ABS')
  941. ('MAXIMUM' (VITF '-' VITF1) 'ABS')
  942. ('MAXIMUM' (YF '-' YF1) 'ABS') );
  943.  
  944. ERRO = 'MAXIMUM' ('PROG' ERRO
  945. ('MAXIMUM' (YF11 '-' SCAF12) 'ABS')
  946. ('MAXIMUM' (YF12 '-' SCAF11) 'ABS')
  947. ('MAXIMUM' (YF12 '-' SCAF13) 'ABS')) ;
  948.  
  949.  
  950. 'SI' (ERRO > 1.0D-12);
  951. 'ERREUR' 5;
  952. 'FINSI' ;
  953.  
  954.  
  955.  
  956. *********************************************************
  957. *** Control des etats sur la surface qui contient P1 ****
  958. *********************************************************
  959.  
  960.  
  961. GEOP1 = ('DOMA' $DOMTOT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT' P1 ;
  962. GEOP2 = ('DOMA' $DOMTOT 'FACE') 'ELEM' 'APPUYE' 'LARGEMENT' P1 ;
  963. GEOP12 = ('DOMA' $DOMTOT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT' P2 ;
  964.  
  965.  
  966.  
  967. ROGEOP1 = 'REDU' ROF GEOP1;
  968. VGEOP1 = 'REDU' VITF GEOP1;
  969. PGEOP1 = 'REDU' PF GEOP1;
  970. REFGEOP1 = 'REDU' VITF GEOP2;
  971. YNGEOP1 = 'REDU' YF GEOP1 ;
  972.  
  973. ROGEOP2 = 'REDU' ROF GEOP12 ;
  974. VGEOP2 = 'REDU' VITF GEOP12 ;
  975. PGEOP2 = 'REDU' PF GEOP12 ;
  976. YNGEOP2 = 'REDU' YF GEOP12 ;
  977.  
  978. rofag = 'EXTRAIRE' ROGEOP1 'SCAL' 1 1 1;
  979. rofad = 'EXTRAIRE' ROGEOP1 'SCAL' 1 1 3;
  980. unfag = 'EXTRAIRE' VGEOP1 'UN ' 1 1 1;
  981. unfad = 'EXTRAIRE' VGEOP1 'UN ' 1 1 3;
  982. utfag = 'EXTRAIRE' VGEOP1 'UT ' 1 1 1;
  983. utfad = 'EXTRAIRE' VGEOP1 'UT ' 1 1 3;
  984. pfag = 'EXTRAIRE' PGEOP1 'SCAL' 1 1 1;
  985. pfad = 'EXTRAIRE' PGEOP1 'SCAL' 1 1 3;
  986. yh2fag = 'EXTRAIRE' YNGEOP1 'H2 ' 1 1 1;
  987. yh2fad= 'EXTRAIRE' YNGEOP1 'H2 ' 1 1 3;
  988. yn2fag = 'EXTRAIRE' YNGEOP1 'N2 ' 1 1 1;
  989. yn2fad= 'EXTRAIRE' YNGEOP1 'N2 ' 1 1 3;
  990.  
  991. rofag2 = 'EXTRAIRE' ROGEOP2 'SCAL' 1 1 1;
  992. rofad2 = 'EXTRAIRE' ROGEOP2 'SCAL' 1 1 3;
  993. unfag2 = 'EXTRAIRE' VGEOP2 'UN ' 1 1 1;
  994. unfad2 = 'EXTRAIRE' VGEOP2 'UN ' 1 1 3;
  995. utfag2 = 'EXTRAIRE' VGEOP2 'UT ' 1 1 1;
  996. utfad2 = 'EXTRAIRE' VGEOP2 'UT ' 1 1 3;
  997. pfag2 = 'EXTRAIRE' PGEOP2 'SCAL' 1 1 1;
  998. pfad2 = 'EXTRAIRE' PGEOP2 'SCAL' 1 1 3;
  999. yh2fag2 = 'EXTRAIRE' YNGEOP2 'H2 ' 1 1 1;
  1000. yh2fad2 = 'EXTRAIRE' YNGEOP2 'H2 ' 1 1 3;
  1001. yn2fag2 = 'EXTRAIRE' YNGEOP2 'N2 ' 1 1 1;
  1002. yn2fad2 = 'EXTRAIRE' YNGEOP2 'N2 ' 1 1 3;
  1003.  
  1004. *
  1005. **** Orientation de la normal n de castem par raport a la
  1006. * notre; t est par consequence (sur P1)
  1007. *
  1008.  
  1009. NCOS = 'EXTRAIRE' REFGEOP1 'NX' 1 1 1;
  1010. NSIN = 'EXTRAIRE' REFGEOP1 'NY' 1 1 1;
  1011.  
  1012. 'SI' (('ABS' NCOS) > ('ABS' NSIN));
  1013. ORIENT = ('COS' ANGLE) '/' NCOS;
  1014. 'SINON';
  1015. ORIENT = ('SIN' ANGLE) '/' NSIN;
  1016. 'FINSI' ;
  1017.  
  1018. ORIENT = 'SIGN' ORIENT;
  1019.  
  1020.  
  1021. *
  1022. **** ORIENT = -1 -> Mon etat gauche est son etat droite
  1023. *
  1024.  
  1025. 'SI' (ORIENT > 0);
  1026.  
  1027. ERRLIG = 'PROG' rofag (unfag '*' ORIENT)
  1028. (utfag '*' ORIENT) pfag yh2fag yn2fag ;
  1029.  
  1030. ERRLID = 'PROG' rofad (unfad '*' ORIENT)
  1031. (utfad '*' ORIENT) pfad yh2fad yn2fad ;
  1032.  
  1033. 'SINON' ;
  1034.  
  1035. ERRLID = 'PROG' rofag (unfag '*' ORIENT)
  1036. (utfag '*' ORIENT) pfag yh2fag yn2fag;
  1037.  
  1038. ERRLIG = 'PROG' rofad (unfad '*' ORIENT)
  1039. (utfad '*' ORIENT) pfad yh2fad yn2fad ;
  1040.  
  1041. 'FINSI' ;
  1042.  
  1043. ERRO = 'MAXIMUM' ('PROG'
  1044. ('MAXIMUM' (ETATG '-' ERRLIG) 'ABS')
  1045. ('MAXIMUM' (ETATD '-' ERRLID) 'ABS')
  1046. );
  1047.  
  1048. 'SI' (ERRO > 1.0D-14)
  1049. 'MESSAGE' 'Ordre en espace = 2';
  1050. 'MESSAGE' 'Ordre en temps = 2';
  1051. 'ERREUR' 5 ;
  1052. 'FINSI' ;
  1053.  
  1054. *
  1055. **** Sir le mur (P2)
  1056. *
  1057.  
  1058. ERRLIG = 'PROG' rofag2 unfag2 utfag2 pfag2 yh2fag2 yn2fag2 ;
  1059.  
  1060. ERRLID = 'PROG' rofad2 unfad2 utfad2 pfad2 yh2fad2 yn2fad2 ;
  1061.  
  1062. ERRO = 'MAXIMUM' ('PROG'
  1063. ('MAXIMUM' (ETATG2 '-' ERRLIG) 'ABS')
  1064. ('MAXIMUM' (ETATD2 '-' ERRLID) 'ABS')
  1065. );
  1066.  
  1067.  
  1068. 'SI' (ERRO > 1.0D-14)
  1069. 'Message' 'Mur' ;
  1070. 'MESSAGE' 'Ordre en espace = 2';
  1071. 'MESSAGE' 'Ordre en temps = 2';
  1072. 'ERREUR' 5 ;
  1073. 'FINSI' ;
  1074.  
  1075. 'FIN' BL1;
  1076.  
  1077.  
  1078.  
  1079. 'FIN' ;
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  

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