Télécharger darcy4.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : darcy4.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. ************************** CAS TEST : darcy4.dgibi ******************
  6. *
  7. GRAPH = 'N' ;
  8. 'SAUT' 'PAGE' ;
  9. *
  10. *---------------------------------------------------------------------
  11. * TEST DARCY4
  12. * CALCUL DARCY ISOTROPE TRANSITOIRE
  13. * AVEC TERME SOURCE
  14. * Résolution par une méthode d'éléments finis mixtes hybrides.
  15. *
  16. * Ce test permet de vérifier le bon fonctionnement des opérateurs
  17. * utilisés afin de résoudre les équations de DARCY transitoire par
  18. * une méthode d'éléments finis mixtes hybrides dans CASTEM2000.
  19. *
  20. * On effectue un calcul sur un domaine 2D maillé par des
  21. * quadrangles réguliers. Le phénomène étudié est monodimensionnel.
  22. * Les conditions aux limites sont de type trace de charge imposée
  23. * à gauche du domaine, flux imposé à droite et flux nul en haut et
  24. * en bas.
  25. *
  26. * La solution analytique en charge est un polynome de degré 2
  27. * en x et en t, les variables x et t étant séparées.
  28. * La vitesse est donc linéaire en x et indépendante du temps.
  29. * Le terme source dépend de x et de t.
  30. *
  31. * Solution analytique :
  32. * H(x,t) = a * t**2 + b * t + c * x**2 + d * x + e
  33. * V(x,t) = - K * ( 2. * c * x + d )
  34. * S(x,t) = 2 * a * f * t + b * f - 2 * c * K
  35. *
  36. * avec K : Conductivité hydraulique ................. 1.
  37. * a : Coefficient .............................. -1.
  38. * b : Coefficient .............................. 20.
  39. * c : Coefficient .............................. -0.01
  40. * d : Coefficient .............................. 2.
  41. * e : Coefficient .............................. 10.
  42. * f : Coefficient d'emmagasinnement ............ 2.
  43. *
  44. * Remarque : Ne pas prendre t>40 car h devient négatif et on peut
  45. * planter le calcul d'erreur relative.
  46. *
  47. * Parametres de maillage :
  48. * L : longueur du domaine ....................... 100.
  49. * H : hauteur du domaine ........................ 1.
  50. * INUMX : Nombre d'éléments en x .................... 25
  51. * INUMY : Nombre d'éléments en y .................... 1 car 1D
  52. *
  53. *----------------------------------------------------------------
  54. *
  55. *------------------
  56. * Options generales
  57. *------------------
  58. *
  59. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  60. 'OPTI' 'ISOV' 'SURF' ;
  61. 'OPTI' 'ECHO' 0 ;
  62. *
  63. *
  64. *=========
  65. * MAILLAGE
  66. *=========
  67. *
  68. *
  69. * d1------------d3
  70. * | | Post-traitement via les lignes b1b3 et c1c3
  71. * b1 c1------c3 b3 b1b3 : Extrémités de la droite joignant les faces
  72. * | | c1c3 : Extrémités de la droite joignant les centres
  73. * a1------------a3
  74. *
  75. *
  76. *- Création des points supports des DROITES
  77. *
  78. L = 100.D0 ;
  79. H = 1.D0 ;
  80. X0 = 0.D0 ;
  81. X1 = L ;
  82. Y0 = 0.D0 ;
  83. Y1 = Y0 + H ;
  84. INUMX = 25 ;
  85. INUMY = 1 ;
  86. INUM1 = INUMX - 1 ;
  87. DL = L / INUMX ;
  88. DH = H / INUMY ;
  89. Y01 = Y0 + Y1 * 0.5D0 ;
  90. DX1 = X1 - X0 / INUMX / 2.D0 ;
  91. XG = X0 + DX1 ;
  92. XD = X1 - DX1 ;
  93. *
  94. A1 = X0 Y0 ;
  95. A3 = X1 Y0 ;
  96. D1 = X0 Y1 ;
  97. D3 = X1 Y1 ;
  98. B1 = X0 Y01 ;
  99. B3 = X1 Y01 ;
  100. C1 = XG Y01 ;
  101. C3 = XD Y01 ;
  102. *
  103. *- Création des DROITES frontieres
  104. *
  105. DRBAS = A3 'DROI' INUMX A1 ;
  106. DRGAU = A1 'DROI' INUMY D1 ;
  107. DRHAU = D1 'DROI' INUMX D3 ;
  108. DRDRO = D3 'DROI' INUMY A3 ;
  109. DRMIF = B1 'DROI' INUMX B3 ;
  110. DRMIC = C1 'DROI' INUM1 C3 ;
  111. ELI0 = DH / 10.D0 ;
  112. *
  113. *- Creation maillage GEOMETRIQUE
  114. *
  115. PTOT1 = 'DALL' DRBAS DRGAU DRHAU DRDRO ;
  116. PTOT2 = 'ORIE' PTOT1 ;
  117. QFTOT = CHANGE PTOT2 QUAF ;
  118. QFGAU = CHANGE DRGAU QUAF ;
  119. QFDRO = CHANGE DRDRO QUAF ;
  120. ELIM ELI0 ( QFTOT ET QFGAU ET QFDRO ET DRMIF ET DRMIC) ;
  121. *
  122.  
  123. *
  124. *
  125. *
  126. * ----------------
  127. * = MODELISATION =
  128. * ----------------
  129. MODHYB = MODE QFTOT 'DARCY' 'ISOTROPE' ;
  130. MODGAU = MODE QFGAU 'DARCY' 'ISOTROPE' ;
  131. MODDRO = MODE QFDRO 'DARCY' 'ISOTROPE' ;
  132. CHYB1 = 'DOMA' MODHYB 'SURFACE' ;
  133. CHYB2 = 'DOMA' MODHYB 'NORMALE' ;
  134. CETOT = DOMA MODHYB 'CENTRE' ;
  135. CEDRO = DOMA MODDRO 'CENTRE' ;
  136. CEGAU = DOMA MODGAU 'CENTRE' ;
  137. *
  138. *=====================================
  139. * CONDITIONS INITIALES : CAS PERMANENT
  140. *=====================================
  141. *
  142. * -----------------------
  143. * = Solution analytique =
  144. * -----------------------
  145. A = -1.D0 ;
  146. B = 20.D0 ;
  147. C = -0.01D0 ;
  148. D = 2.D0 ;
  149. E = 10.D0 ;
  150. F = 2.D0 ;
  151. VK = 1.D0 ;
  152. * TRACE DE CHARGE
  153. XX YY = 'COOR' (DOMA MODHYB 'FACE' ) ;
  154. PANAF0 = C * XX * XX + ( D * XX ) + E ;
  155. PANAF0 = 'EXCO' PANAF0 'SCAL' 'TH' ;
  156. PANAF0 = 'CHAN' 'ATTRIBUT' PANAF0 'NATURE' 'DISCRET' ;
  157. * CHARGE
  158. XXC YYC = 'COOR' CETOT ;
  159. PANAC0 = C * XXC * XXC + ( D * XXC ) + E ;
  160. PANAC0 = 'EXCO' PANAC0 'SCAL' 'H' ;
  161. PANAC0 = 'CHAN' 'ATTRIBUT' PANAC0 'NATURE' 'DISCRET' ;
  162. * VITESSE
  163. VXANA = -1.D0 * VK * ( 2.D0 * C * XXC + D ) ;
  164. VXANA = 'EXCO' VXANA 'SCAL' 'VX' ;
  165. VXANA = 'CHAN' VXANA 'ATTRIBUT' 'NATURE' 'DISCRET' ;
  166. VYANA = 'MANU' 'CHPO' CETOT 1 'VY' 0.D0 'NATURE' 'DISCRET' ;
  167. VANAC = VXANA 'ET' VYANA ;
  168. MOT1 = 'MOTS' 'VX' 'VY' ;
  169. * ----------------
  170. * = Tenseur K =
  171. * ----------------
  172. MATI1 = 'MATE' MODHYB 'K' VK ;
  173. * -------------------------
  174. * = matrice Masse HYBride =
  175. * -------------------------
  176. CND1A = 'MHYB' MODHYB MATI1 ;
  177. * -------------------------
  178. * = MAtrice globale en TH =
  179. * -------------------------
  180. HND1A = 'MATP' MODHYB CND1A ;
  181. * -----------------------
  182. * = Second membre en TH =
  183. * -----------------------
  184. AIRE = DL * DH ;
  185. SR0 = -2.D0 * VK * C * AIRE ;
  186. SRCVA0 = 'MANU' 'CHPO' CETOT 1 'SOUR' SR0 'NATURE' 'DISCRET' ;
  187. SMSOUR = 'SMTP' MODHYB CND1A SRCVA0 ;
  188. * -----------------
  189. * = TH imposée =
  190. * -----------------
  191. BBGAU = 'BLOQ' CEGAU 'TH' ;
  192. BBDRO = 'BLOQ' CEDRO 'TH' ;
  193. EEGAU = 'DEPI' BBGAU PANAF0 ;
  194. EEDRO = 'DEPI' BBDRO PANAF0 ;
  195. * -----------------
  196. * = Résolution TH =
  197. * * -----------------
  198. CCC1 = HND1A 'ET' BBDRO 'ET' BBGAU ;
  199. FFF1 = SMSOUR 'ET' EEDRO 'ET' EEGAU ;
  200. CHTER1 = 'RESO' CCC1 FFF1 ;
  201. TH1 = 'EXCO' CHTER1 'TH' 'TH' ;
  202. * -----------------------------
  203. * = Post-traitement Q, H et V =
  204. * -----------------------------
  205. PCEN1 = 'HYBP' MODHYB CND1A TH1 SRCVA0 ;
  206. QFACE1 = 'HDEB' MODHYB CND1A PCEN1 TH1 ;
  207. VCENT1 = 'HVIT' MODHYB QFACE1 ;
  208. *
  209. *
  210. *
  211. *===================================
  212. * DONNEES SPECIFIQUES AU TRANSITOIRE
  213. *===================================
  214. *
  215. *
  216. *
  217. TINI = 0.D0 ;
  218. TFINAL = 20.D0 ;
  219. TSUP = 1.5D0 * TFINAL ;
  220. DELTAT = 1.0D0 ;
  221. LICALC = 'PROG' 0.D0 'PAS' DELTAT TFINAL ;
  222. LISAUV = 'PROG' 0.D0 'PAS' 5.D0 TFINAL ;
  223. COEMM = 'MANU' 'CHML' (DOMA MODHYB 'MAILLAGE') 'CK' F ;
  224. * ------------------------------------
  225. * = Nouvelles conditions aux limites =
  226. * ------------------------------------
  227. *
  228. * Définition d'un listreel contenant les valeurs des temps de calcul
  229. * Ce LISTREEL sert à définir les chargements variables en temps
  230. *
  231. TDEF = PROG 0.D0 PAS 0.001D0 TSUP ;
  232. *
  233. * Valeur imposée à gauche = a*t*t + b*t + e
  234. *
  235. BLCGE = BBGAU ;
  236. VALGA0 = 'MANU' 'CHPO' CEGAU 1 'TH' E ;
  237. VALGA0 = 'DEPI' BBGAU VALGA0 ;
  238. VALI0 = 'CHAR' VALGA0
  239. ('EVOL' 'MANU' ('PROG' 0.D0 TSUP) ('PROG' 1.D0 1.D0)) ;
  240. VALGA1 = 'MANU' 'CHPO' CEGAU 1 'TH' B ;
  241. VALGA1 = 'DEPI' BBGAU VALGA1 ;
  242. VALI1 = 'CHAR' VALGA1
  243. ('EVOL' 'MANU' ('PROG' 0.D0 TSUP) ('PROG' 0.D0 TSUP)) ;
  244. VALGA2 = 'MANU' 'CHPO' CEGAU 1 'TH' A ;
  245. VALGA2 = 'DEPI' BBGAU VALGA2 ;
  246. TDEF2 = TDEF * TDEF ;
  247. VALI2 = 'CHAR' VALGA2 ('EVOL' 'MANU' TDEF TDEF2) ;
  248. TPGAU = VALI0 'ET' VALI1 'ET' VALI2 ;
  249. *
  250. * Flux imposé à droite = -K * ( 2. * c * x + d ) * dh
  251. *
  252. FLVAL = 2.D0 * C * X1 + D * (-1.D0) * VK * DH ;
  253. FLDRO = 'MANU' 'CHPO' CEDRO 1 'FLUX' FLVAL ;
  254. FLXDRO = 'CHAR' FLDRO
  255. ('EVOL' 'MANU' ('PROG' 0.D0 TSUP) ('PROG' 1.D0 1.D0) ) ;
  256. *
  257. * Définition de la source moyenne par élément sur un pas de temps
  258. * s(t) = (2 * a * f * tmoy + b * f - 2 * c * K) * aire
  259. * avec aire = aire des éléments
  260. * tmoy = t(n+1) - deltat/2 = t(n) + deltat/2
  261. *
  262. SRCE01 = B * F - ( 2.D0 * VK * C ) ;
  263. SRCE02 = (-1.D0) * F * A * DELTAT ;
  264. SR0 = SRCE01 + SRCE02 * AIRE ;
  265. SRCV10 = 'MANU' 'CHPO' CETOT 1 'SOUR' SR0 'NATURE' 'DISCRET' ;
  266. SRCVA0 = SRCV10 ;
  267. NTDEF = 'DIME' TDEF ;
  268. LIST1 = 'PROG' NTDEF * 1.D0 ;
  269. CHSRC0 = 'CHAR' SRCVA0 ('EVOL' 'MANU' TDEF LIST1) ;
  270. PRSR1 = 2.D0 * A * F * AIRE * TDEF ;
  271. SRCVA1 = 'MANU' 'CHPO' CETOT 1 'SOUR' 1.D0 'NATURE' 'DISCRET' ;
  272. CHSRC1 = 'CHAR' SRCVA1 ('EVOL' 'MANU' TDEF PRSR1 ) ;
  273. CHSRCE = CHSRC0 'ET' CHSRC1 ;
  274. *
  275. * ---------------------------
  276. * = Table DARCY_TRANSITOIRE =
  277. * ---------------------------
  278. TRANS2 = 'TABLE' ;
  279. TRANS2. 'TEMPS' = 'TABLE' ;
  280. TRANS2. 'TRACE_CHARGE' = 'TABLE' ;
  281. TRANS2. 'CHARGE' = 'TABLE' ;
  282. TRANS2. 'FLUX' = 'TABLE' ;
  283. *
  284. TRANS2.'SOUSTYPE' = 'DARCY_TRANSITOIRE' ;
  285. TRANS2.'MODELE' = MODHYB ;
  286. TRANS2.'CARACTERISTIQUES' = MATI1 ;
  287. TRANS2.'EMMAGASINEMENT' = COEMM ;
  288. TRANS2.'DOMAINE' = DOMA MODHYB 'TABLE' ;
  289. *
  290. TRANS2. 'TEMPS' . 0 = TINI ;
  291. TRANS2. 'TRACE_CHARGE' . 0 = TH1 ;
  292. TRANS2. 'CHARGE' . 0 = PCEN1 ;
  293. TRANS2. 'FLUX' . 0 = QFACE1 ;
  294. *
  295. TRANS2.'BLOCAGE' = BLCGE ;
  296. TRANS2.'TRACE_IMPOSE' = TPGAU ;
  297. TRANS2.'FLUX_IMPOSE' = FLXDRO ;
  298. TRANS2.'SOURCE' = CHSRCE ;
  299. *
  300. TRANS2.'THETA' = 0.5D0 ;
  301. TRANS2.'TEMPS_CALCULES' = LICALC ;
  302. TRANS2.'TEMPS_SAUVES' = LISAUV ;
  303. *
  304. *=======================
  305. * Resolution transitoire
  306. *=======================
  307. *
  308. DARCYTRA TRANS2 ;
  309. *
  310. *
  311. *=================
  312. * POST-TRAITEMENT
  313. *=================
  314. * --------------------------
  315. * = Calcul ERREUR ET TRACE =
  316. * --------------------------
  317. *--------------------------------------------------------------------
  318. * Dans chaque cas on trace (si GRAPH<>N)
  319. *--------------------------------------------------------------------
  320. * Les traces de charge le long de DRMIF (ligne b1b3)
  321. * L'erreur relative et l'erreur absolue en Trace de charge
  322. * La charge le long de DRMIC (ligne c1c3)
  323. * L'erreur relative et l'erreur absolue sur la charge
  324. * La Vitesse aux centres des elements (calculé et analytique)
  325. * L'erreur relative et l'erreur absolue sur la vitesse au centre
  326. *--------------------------------------------------------------------
  327. *
  328. *
  329. VDVD = 'PSCA' VANAC VANAC MOT1 MOT1 ;
  330. VCANA = 'VECT' VANAC 0.01D0 VX VY 'ROUG' ;
  331. *--------------------------------------------------
  332. *
  333. * VISURESU
  334. * Calcul des solutions analytiques et des erreurs
  335. * Visualisation sur DRMIF et DRMIC des courbes y=f(x) à t fixé
  336. *
  337. * ISOR1 : Liste des indices de la table TRANS2.'TEMPS'
  338. * NTSOR : Nombre de pas de temps sauvegardés
  339. * IOK : Booleen indiquant si le critère de précision
  340. * demandé est vérifiée (Gestion des erreurs)
  341. * IRESU : Compteur interne permettant de récuperer les
  342. * indices de table via l'index ISOR1.
  343. *
  344. ISOR1 = 'INDEX' ( TRANS2 . 'TEMPS') ;
  345. NTSOR = 'DIME' ISOR1 ;
  346. IOK = FAUX ;
  347. IRESU = 0 ;
  348. *--------------------------------------------------
  349. 'REPETER' VISURESU NTSOR ;
  350. *
  351. IRESU = IRESU + 1 ;
  352. INDI1 = ISOR1 . IRESU ;
  353. TTRA = TRANS2 . 'TEMPS' . INDI1 ;
  354. * Erreurs en trace de charge
  355. PANAF1 = A*TTRA*TTRA + (B*TTRA) + (C*XX*XX) + (D*XX) + E ;
  356. PANAD1 = 'REDU' PANAF1 DRMIF ;
  357. CALCF1 = TRANS2 . 'TRACE_CHARGE' . INDI1 ;
  358. CALCF1 = 'EXCO' CALCF1 'TH' 'SCAL' ;
  359. CALCD1 = 'REDU' CALCF1 DRMIF ;
  360. ETPAB1 = CALCD1 - PANAD1 ;
  361. ETPAB1 = 'ABS' ETPAB1 ;
  362. ETPRE1 = ETPAB1 / PANAD1 ;
  363. ETPRE1 = 'ABS' ETPRE1 ;
  364. * Erreurs en charge
  365. K1 = C * AIRE * AIRE /12.D0 + E ;
  366. PANAC1 = A*TTRA*TTRA + (B*TTRA) + (C*XXC*XXC) + (D*XXC) + K1 ;
  367. CALC1 = TRANS2 . 'CHARGE' . INDI1 ;
  368. CALC1 = 'EXCO' CALC1 'H' 'SCAL' ;
  369. EPAB1 = CALC1 - PANAC1 ;
  370. EPAB1 = 'ABS' EPAB1 ;
  371. EPRE1 = EPAB1 / PANAC1 ;
  372. EPRE1 = 'ABS' EPRE1 ;
  373. * Erreurs en vitesse
  374. EFL1 = TRANS2 . 'FLUX' . INDI1 ;
  375. EVI1 = 'HVIT' MODHYB EFL1 ;
  376. VCAL1 = 'VECT' EVI1 0.01D0 'VX' 'VY' 'VERT' ;
  377. ERRV1 = EVI1 - VANAC ;
  378. EVAB1 = 'PSCA' ERRV1 ERRV1 MOT1 MOT1 ;
  379. EVRE1 = 'ABS' ( EVAB1 / VDVD ) ;
  380. EVAB1 = EVAB1 '**' 0.5D0 ;
  381. EVRE1 = EVRE1 '**' 0.5D0 ;
  382. * Evolutions des solutions analytiques
  383. AV1 = 'EVOL' 'ROUG' 'CHPO' PANAD1 'SCAL' DRMIF ;
  384. AV3 = 'EVOL' 'ROUG' 'CHPO' PANAC1 'SCAL' DRMIC ;
  385. * Tracés
  386. 'SI' ('NEG' GRAPH 'N' ) ;
  387. LTITRE = 'TEXTE' 'darcy4 Th temps ' TTRA ;
  388. 'TITR' LTITRE ;
  389. EV1 = 'EVOL' 'VERT' 'CHPO' CALCD1 'SCAL' DRMIF ;
  390. 'DESS' (EV1 ET AV1) ;
  391. LTITRE = 'TEXTE' 'darcy4 erreur relative Th temps ' TTRA ;
  392. 'TITR' LTITRE ;
  393. EV2 = 'EVOL' 'VERT' 'CHPO' ETPRE1 'SCAL' DRMIF ;
  394. 'DESS' EV2 ;
  395. LTITRE = 'TEXTE' 'darcy4 erreur absolue Th temps ' TTRA ;
  396. 'TITR' LTITRE ;
  397. EV3 = 'EVOL' 'VERT' 'CHPO' ETPAB1 'SCAL' DRMIF ;
  398. 'DESS' EV3 ;
  399. LTITRE = 'TEXTE' 'darcy4 h temps ' TTRA ;
  400. 'TITR' LTITRE ;
  401. EV4 = 'EVOL' 'VERT' 'CHPO' CALC1 'SCAL' DRMIC ;
  402. 'DESS' (EV4 ET AV3) ;
  403. LTITRE = 'TEXTE' 'darcy4 erreur relative h temps' TTRA ;
  404. 'TITR' LTITRE ;
  405. EV5 = 'EVOL' 'VERT' 'CHPO' EPRE1 'SCAL' DRMIC ;
  406. 'DESS' EV5 ;
  407. LTITRE = 'TEXTE' 'darcy4 erreur absolue h temps' TTRA ;
  408. 'TITR' LTITRE ;
  409. EV6 = 'EVOL' 'VERT' 'CHPO' EPAB1 'SCAL' DRMIC ;
  410. 'DESS' EV6 ;
  411. LTITRE = 'TEXTE' 'darcy4 erreur relat V temps ' TTRA ;
  412. 'TITR' LTITRE ;
  413. EV7 = 'EVOL' 'VERT' 'CHPO' EVRE1 'SCAL' DRMIC ;
  414. 'DESS' EV7 ;
  415. LTITRE = 'TEXTE' 'darcy4 erreur absolue V temps ' TTRA ;
  416. 'TITR' LTITRE ;
  417. EV8 = 'EVOL' 'VERT' 'CHPO' EVAB1 'SCAL' DRMIC ;
  418. 'DESS' EV8 ;
  419. 'FINSI' ;
  420. *
  421. *- Gestion ERREUR
  422. *
  423. MAXTP1 = 'MAXI' ETPRE1 ;
  424. MAXP1 = 'MAXI' EPRE1 ;
  425. MAXVC1 = 'MAXI' EVRE1 ;
  426. LOGRES = IRESU 'EGA' 1 ;
  427. 'SI' (LOGRES) ;
  428. 'SAUT' 'PAGE' ;
  429. 'SAUT' 2 'LIGNE' ;
  430. 'MESS' ' ERREURS RELATIVES ';
  431. 'SAUT' 1 'LIGNE' ;
  432. 'MESS' ' temps TH H Vc';
  433. 'SAUT' 1 'LIGNE' ;
  434. 'FINSI' ;
  435. 'MESS' ttra ' ' maxtp1 ' ' maxp1 ' ' maxvc1 ;
  436. EPS0 = 1.E-04 ;
  437. LOG1 = MAXTP1 > EPS0 ;
  438. LOG2 = MAXP1 > EPS0 ;
  439. LOG3 = MAXVC1 > EPS0 ;
  440. L0 = LOG1 'OU' LOG2 'OU' LOG3 ;
  441. 'SI' ( L0 ) ;
  442. IOK = VRAI ;
  443. 'FINSI' ;
  444. 'FIN' VISURESU ;
  445. *
  446. *********************************
  447. *- En cas de tracé uniquement
  448. *********************************
  449. *
  450. 'SI' ('NEG' GRAPH 'N' ) ;
  451. *--------------------------------------------------
  452. *
  453. * CONSTAB
  454. * (préparation pour VISPTS)
  455. * Transformation des champoints TH=f(t) en listreels
  456. *
  457. * TABEVOL : Table contenant TH=f(t) sous forme de LISTREEL
  458. * IRESU : Compteur interne permettant de récuperer les
  459. * indices de table via l'index ISOR1.
  460. *
  461. TABEVOL = 'TABLE' ;
  462. IRESU = 0 ;
  463. *
  464. *--------------------------------------------------
  465. 'REPETER' CONSTAB NTSOR ;
  466. IRESU = IRESU + 1 ;
  467. INDI1 = ISOR1 . IRESU ;
  468. TTRA = TRANS2 . 'TEMPS' . INDI1 ;
  469. ETP1 = TRANS2 . 'TRACE_CHARGE' . INDI1 ;
  470. ETP1 = 'EXCO' ETP1 'TH' 'SCAL' ;
  471. EV1 = 'EVOL' 'VERT' 'CHPO' ETP1 'SCAL' DRMIF ;
  472. ORD1 = 'EXTR' EV1 'ORDO' ;
  473. TABEVOL . IRESU = ORD1 ;
  474. 'SI' ( IRESU 'EGA' 1) ;
  475. LITRAC = 'PROG' TTRA ;
  476. 'SINO' ;
  477. LITRAC = LITRAC 'ET' ('PROG' TTRA) ;
  478. 'FINSI' ;
  479. 'FIN' CONSTAB ;
  480. *--------------------------------------------------
  481. *
  482. * VISPTS
  483. * Visualisation des courbes TH=f(t) pour un x fixé
  484. *
  485. * NTTRA : Nombre de valeurs en temps à considérer
  486. * LISTX : Listreel des abscisses
  487. * NXTOT : Nombre de points sur la ligne DRMIF
  488. * IX : Position dans LISTX du premier point à dépouiller
  489. * PASX : Incrément pour le pas suivant à dépouiller
  490. *
  491. *
  492. NTTRA = 'DIME' LITRAC ;
  493. LISTX = 'EXTR' EV1 'ABSC' ;
  494. NXTOT = 'NBNO' DRMIF ;
  495. IX = 5 ;
  496. PASX = 10 ;
  497. *
  498. *--------------------------------------------------
  499. 'REPETER' VISTPS ;
  500. * Solution analytique
  501. VALX = 'EXTR' LISTX IX ;
  502. PPROG0 = 'PROG' NTTRA * (C*VALX*VALX + (D*VALX) + E ) ;
  503. PPROG1 = A * LITRAC * LITRAC + (B * LITRAC) ;
  504. PEVOL1 = PPROG0 + PPROG1 ;
  505. EVOL1 = 'EVOL' 'ROUG' 'MANU' 'Temps' LITRAC 'Th' PEVOL1 ;
  506. * Solution calculée
  507. ICRB = 0 ;
  508. 'REPETER' CONSTR NTSOR ;
  509. ICRB = ICRB + 1 ;
  510. VAL1 = 'EXTR' TABEVOL.ICRB IX ;
  511. 'SI' ( ICRB 'EGA' 1 ) ;
  512. PROG1 = 'PROG' VAL1 ;
  513. 'SINO' ;
  514. PROG1 = PROG1 'ET' ('PROG' VAL1 ) ;
  515. 'FINSI' ;
  516. 'FIN' CONSTR ;
  517. EVOL2 = 'EVOL' 'VERT' 'MANU' 'Temps' LITRAC 'Th' PROG1 ;
  518. * Tracés
  519. LTITRE = 'TEXTE' 'darcy4 Th en x=' VALX ;
  520. 'TITR' LTITRE ;
  521. 'DESS' ( EVOL1 ET EVOL2 ) ;
  522. LTITRE = 'TEXTE' 'erreur relative Th x=' VALX ;
  523. 'TITR' LTITRE ;
  524. ERRTP1 = PEVOL1 - PROG1 / PEVOL1 ;
  525. EVOL3 = 'EVOL' 'VERT' 'MANU' 'Temps' LITRAC 'Th' ERRTP1 ;
  526. 'DESS' EVOL3 ;
  527. * Test de sortie de boucle
  528. 'DETR' PROG1 ;
  529. IX = IX + PASX ;
  530. 'SI' (IX > NXTOT ) ;
  531. 'QUITTER' VISTPS ;
  532. 'FINSI' ;
  533. 'FIN' VISTPS ;
  534. *
  535. 'FINSI' ;
  536. *
  537. ****************************
  538. * FIN des tracés
  539. ****************************
  540. *
  541. 'SAUT' 4 'LIGNE' ;
  542. *
  543. 'SI' ( IOK ) ;
  544. 'ERRE' 5 ;
  545. 'SINO' ;
  546. 'ERRE' 0 ;
  547. 'FINSI' ;
  548. *
  549. 'FIN' ;
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  

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