Télécharger transnon.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRANSNON PROCEDUR CB215821 21/08/20 21:15:33 11089
  2. 'DEBPROC' TRANSNON PRECED*'TABLE';
  3. *--------------------------------------------------------------------------------*
  4. * *
  5. * T R A N S N O N *
  6. * --------------- *
  7. * *
  8. * RESOLUTION D'UN PROBLEME DE THERMIQUE TRANSITOIRE NON-LINEAIRE *
  9. * METHODE A UN PAS DE TEMPS ( THETA SCHEMA ) *
  10. * *
  11. * ETAB, TABLE CONTENANT EN ENTREE : *
  12. * *
  13. * INDICE 'TET1' CHAMP DE TEMPERATURE INITIAL AU PAS 0 *
  14. * INDICE 'RAYO' LOGIQUE VALANT VRAI POUR UNE CONDITION *
  15. * DE RAYONNEMENT *
  16. * INDICE 'EMISSIVITE' MCHAML DECRIVANT LES FACTEURS D'EMISSIVITE *
  17. * NOM DE LA COMPOSANTE : EMIS *
  18. * INDICE 'CELSIUS' LOGIQUE VALANT VRAI SI L'UNITE EST LE *
  19. * DEGRE CELSIUS (CAPITAL SI RAYONNEMENT) *
  20. * INDICE 'MOD_THE' OBJET MODELE THERMIQUE *
  21. * INDICE 'MOD_CON' OBJET MODELE CONVECTION *
  22. * INDICE 'BLOCAGES_THERMIQUES' MATRICE DE BLOCAGE *
  23. * INDICE 'MAT_THE' OBJET MATERIAU THERMIQUE. *
  24. * CE CHAMP PEUT AVOIR DES COMPOSANTES DE *
  25. * TYPE FLOTTANT OU EVOLUTION (ABS-ORD). *
  26. * ABS : VARIABLE QUELCONQUE *
  27. * ORD : VALEUR DE LA COMPOSANTE CONCERNE POUR *
  28. * LA VALEUR ABS. *
  29. * INDICE 'MAT_CON' OBJET MATERIAU CONVECTION *
  30. * INDICE 'CHARGEMENT' CHARGEMENT DECRIVANT LES *
  31. * VALEURS DES VARIABLES EXTERNES (EX: TE, *
  32. * FLUX,TEMPERATURES IMPOSEES ,...) *
  33. * INDICE 'PHASE' LOGIQUE VALANT VRAI SI CHGT DE PHASE 'PARFAIT' *
  34. * INDICE 'SOLUBILITE' LOGIQUE VALANT VRAI SI CHGT DE PHASE 'SOLUBILITE' *
  35. * INDICE 'TEMPS0' TEMPS INITIAL (CORRESPOND A TET1) *
  36. * INDICE 'TEM_CALC' LISTREEL : TEMPS DES RESULTATS A CALCULER *
  37. * INDICE 'RELAXATION_THETA' VALEUR DU COEFFICIENT DE RELAXATION *
  38. * (VALEUR PAR DEFAUT 0.5) *
  39. * INDICE 'SOUS_RELAXATION' VALEUR DU COEFF. DE SOUS-RELAXATION *
  40. * (VALEUR PAR DEFAUT 0.5) *
  41. * INDICE 'PRECISION' VALEUR DU CRITERE DE CONVERGENCE *
  42. * (VALEUR PAR DEFAUT 1.E-4) *
  43. * INDICE 'MAXITERATION' NOMBRE MAXIMUM D'ITERATIONS AUTORISEES *
  44. * INDICE 'PROJECTION' LOGIQUE VALANT VRAI SI COUPLAGE ET SI LE *
  45. * MAILLAGE DE LA MECANIQUE ET DE LA THERMIQUE *
  46. * EST DIFFERENT *
  47. * INDICE 'TTOL' PRECISION ABSOLUE pour la THERMIQUE et la DIFFUSION *
  48. * *
  49. * ETAB CONTIENT EN SORTIE *
  50. * *
  51. * INDICE INITIAL(2) DERNIER CHAMP DE TEMPERATURE CALCULE *
  52. * *
  53. * REMARQUE : CERTAINES VARIABLES ONT DES NOMS IMPOSES. *
  54. * LE TEMPS : TEMPS *
  55. * LA TEMPERATURE : T *
  56. * LA TEMPERATURE EXTERIEURE : TE *
  57. * LES TEMPERATURES IMPOSEES : TIMP *
  58. * LES FLUX : Q *
  59. * *
  60. * LE NOM DES AUTRES VARIABLES EST LAISSE AU CHOIX DE *
  61. * L'UTILISATEUR *
  62. * *
  63. **********************************************************************************
  64. * Recuperation de l'information contenue dans ETAB *
  65. **********************************************************************************
  66. ERR_VAL = FAUX ;
  67. STAB ='TABL' ;
  68. ETAB = PRECED.'WTABLE';
  69.  
  70. LPRIM1 = ETAB.'PRIM_TOT' ;
  71. LDUAL1 = ETAB.'DUAL_TOT' ;
  72. LPRIM2 =('MOTS' 'TEMP') 'ET' LPRIM1 ;
  73. NBDUA1 = 'DIME' LDUAL1 ;
  74.  
  75. * Recuperation des tolerence absolues (Tout est dans l'indice TTOL)
  76. 'SI' ('NEG' ETAB.'TTOL' ('MOT' 'INCONNU')) ;
  77. LOG_TOL = VRAI ;
  78. TTOL = ETAB.'TTOL' ;
  79. 'SINO' ;
  80. LOG_TOL = FAUX ;
  81. 'FINS' ;
  82. XPETI = ('VALE' 'PETIT') / ('VALE' 'PREC') ;
  83.  
  84. * Appel a PAS_MODL :
  85. * Mise a jour des indices de PRECED.WTABLE relatifs aux modeles
  86. * si PRECED.WTABLE.MODELE a ete modifie
  87. PAS_MODL PRECED ;
  88.  
  89. MODMEC = ETAB.'MO_TOT' ; 'COMM' 'Formulation MECANIQUE & POREUX' ;
  90.  
  91. MODTOT = ETAB.'MOD_TOT' ; 'COMM' 'Formulation THERMIQUE & THERMOHYDRIQUE & DIFFUSION & CHANGEMENT_PHASE' ;
  92. MATTOT0 ='REDU' MODTOT ETAB.'MAT_TOT' ;
  93. MAILTOT ='EXTR' MODTOT 'MAIL';
  94.  
  95. * -------------- presence de conduction
  96. ICONDU = ETAB.'CONDUCTION';
  97. 'SI' ICONDU;
  98. MATCOND0=ETAB.'MAT_COND';
  99. MODCOND =ETAB.'MOD_COND';
  100. 'FINS';
  101.  
  102. * -------------- presence de convection
  103. ICONVE= ETAB.'CONVECTION' ;
  104. 'SI' ICONVE;
  105. MATCONV0=ETAB.'MAT_CON';
  106. MODCONV =ETAB.'MOD_CON';
  107. 'FINS';
  108.  
  109. * -------------- presence d'advection
  110. IADVEC=ETAB.'ADVECTION';
  111. 'SI' IADVEC;
  112. MATADV0 = ETAB.'MAT_ADV';
  113. MODADV = ETAB.'MOD_ADV';
  114. 'FINS';
  115.  
  116. * -------------- presence de rayonnement
  117. IRADI = ETAB.'RAYO';
  118. 'SI' IRADI ;
  119. MATRAY0 = ETAB.'MAT_RAY';
  120. MODRAY = ETAB.'MOD_RAY';
  121. 'SI' ('NON' ('EXIS' ETAB 'CTE_STEFAN_BOLTZMANN')) ;
  122. CTE_SB = 5.67037321E-8 ;
  123. 'MESS' 'ATTENTION ! Constante de Stefan-Boltzmann en unites SI' ;
  124. 'MESS' ' soit ' CTE_SB ;
  125. ETAB.'CTE_STEFAN_BOLTZMANN' = CTE_SB ;
  126. 'FINS' ;
  127. 'FINS' ;
  128.  
  129. * -------------- presence de sources de chaleur
  130. ISOURQ = ETAB.'SOURCE_Q';
  131. 'SI' ISOURQ ;
  132. MATSOQ0 = ETAB.'MAT_SOQ';
  133. MODSOQ = ETAB.'MOD_SOQ';
  134. 'FINS';
  135.  
  136. * -------------- presence de changement de phase 'PARFAIT'
  137. IPHASE=ETAB.'PHASE';
  138. 'SI' IPHASE;
  139. MODPHA = ETAB.'MOD_PHA' ;
  140. MATPHA0 = ETAB.'MAT_PHA' ;
  141. BLOPHA = ETAB.'BLO_PHASE';
  142. PROPHA0 = ETAB.'PROPPHAS' ;
  143. PROPHA1 = PROPHA0 ;
  144. 'FINS';
  145.  
  146. * -------------- presence de changement de phase 'SOLUBILITE'
  147. ISOLU=ETAB.'SOLUBILITE';
  148. 'SI' ISOLU;
  149. BLOSOL = ETAB.'BLO_SOL' ;
  150. 'FINS';
  151.  
  152. * -------------- presence Modele Metallurgie (T.L. en juin 2018)
  153. IMETAL = ETAB.'FOR_METALLU' ;
  154. 'SI' IMETAL;
  155. MODMET = ETAB.'MOD_MET' ;
  156. PHA_MET0= PRECED.'ESTIMATION'.'PROPORTIONS_PHASES' ;
  157. 'FINS';
  158.  
  159. * -------------- presence de thermohydrohydrique
  160. ITHM1=ETAB.'THM1';
  161. 'SI' ITHM1;
  162. MATTHM0 = ETAB.'MAT_THM';
  163. MODTHM = ETAB.'MOD_THM';
  164. 'FINS';
  165.  
  166. * -------------- presence de diffusion
  167. IDIFF=ETAB.'FOR_DIFF';
  168. 'SI' IDIFF;
  169. MATDIF0 = ETAB.'MAT_DIF' ;
  170. MODDIF = ETAB.'MOD_DIF' ;
  171. 'FINS';
  172.  
  173. * CB215821 : Je crois que 'RIBLO_T' et 'LISEA_T' ne sont jamais remplis... (Voir pasapas ; pas_defa ; transnon)
  174. IRIB = 'NEG' ETAB.'RIBLO_T' 'INCONNU' ;
  175. 'SI' IRIB;
  176. RIBL_VAL = ETAB.'RIBLO_T' ;
  177. LISE_VAL = ETAB.'LISEA_T' ;
  178. 'FINS' ;
  179.  
  180. * Parallelisation automatique des calculs ?
  181. IPARAL ='EGA' ETAB.'PROCESSEURS' 'AUTOMATIQUE' ;
  182. 'OPTI' 'PARA' IPARAL ;
  183.  
  184. 'SI' IPARAL ;
  185. NBPART=ETAB.'NBPART';
  186.  
  187. MODRTOT ='PART' 'ARLE' MODTOT NBPART ;
  188. MATRTOT0 ='REDU' MATTOT0 MODRTOT ;
  189. 'SI' ICONDU;
  190. MODRCOND='PART' 'ARLE' MODCOND NBPART ;
  191. MATRCOND='REDU' MATCOND0 MODRCOND ;
  192. 'FINS';
  193. 'SI' ICONVE;
  194. MODRCON ='PART' 'ARLE' MODCONV NBPART ;
  195. MATRCON ='REDU' MATCONV0 MODRCON ;
  196. 'FINS';
  197. 'SI' IADVEC;
  198. MODRADV ='PART' 'ARLE' MODADV NBPART ;
  199. MATRADV ='REDU' MATADV0 MODRADV ;
  200. 'FINS' ;
  201. 'SI' IRADI;
  202. MODRRAY ='PART' 'ARLE' MODRAY NBPART ;
  203. MATRRAY ='REDU' MATRAY0 MODRRAY ;
  204. 'FINS';
  205. 'SI' ISOURQ;
  206. MODRSOQ ='PART' 'ARLE' MODSOQ NBPART ;
  207. MATRSOQ ='REDU' MATSOQ0 MODRSOQ ;
  208. 'FINS';
  209. 'SI' IPHASE;
  210. MODRPHA ='PART' 'ARLE' MODPHA NBPART ;
  211. MATRPHA ='REDU' MATPHA0 MODRPHA ;
  212. 'FINS';
  213. 'SI' IMETAL;
  214. MODRMET ='PART' 'ARLE' MODMET NBPART ;
  215. PHA_MET0='REDU' PHA_MET0 MODRMET ;
  216. 'FINS';
  217. 'SI' ITHM1;
  218. MODRTHM ='PART' 'ARLE' MODTHM NBPART ;
  219. MATRTHM ='REDU' MATTHM0 MODRTHM ;
  220. 'FINS' ;
  221. 'SI' IDIFF ;
  222. MODRDIFF='PART' 'ARLE' MODDIF NBPART ;
  223. MATRDIFF='REDU' MATDIF0 MODRDIFF ;
  224. 'FINS' ;
  225.  
  226. 'SINO' ;
  227. MODRTOT = MODTOT ;
  228. MATRTOT0 = MATTOT0 ;
  229. 'SI' ICONDU;
  230. MODRCOND= MODCOND ;
  231. MATRCOND= MATCOND0;
  232. 'FINS';
  233. 'SI' ICONVE;
  234. MODRCON = MODCONV ;
  235. MATRCON = MATCONV0;
  236. 'FINS';
  237. 'SI' IADVEC;
  238. MODRADV = MODADV ;
  239. MATRADV = MATADV0 ;
  240. 'FINS';
  241. 'SI' IRADI;
  242. MODRRAY = MODRAY ;
  243. MATRRAY = MATRAY0 ;
  244. 'FINS';
  245. 'SI' ISOURQ;
  246. MODRSOQ = MODSOQ ;
  247. MATRSOQ = MATSOQ0 ;
  248. 'FINS';
  249. 'SI' IPHASE;
  250. MODRPHA = MODPHA ;
  251. MATRPHA = MATPHA0 ;
  252. 'FINS';
  253. 'SI' IMETAL;
  254. MODRMET =MODMET ;
  255. 'FINS';
  256. 'SI' ITHM1;
  257. MODRTHM = MODTHM ;
  258. MATRTHM = MATTHM0 ;
  259. 'FINS';
  260. 'SI' IDIFF;
  261. MODRDIFF = MODDIF ;
  262. MATRDIFF = MATDIF0 ;
  263. 'FINS' ;
  264. 'FINS' ;
  265.  
  266. *------- Initialisation de la liste des temps a calculer ---------
  267. TE_CALC = ETAB.'TEM_CALC' ;
  268. DCALC ='DIME' TE_CALC ;
  269. ITE_IT = 0 ;
  270.  
  271. *-------------- Calcul du premier pas de calcul -------------------
  272. TEM0 = ETAB.'TEMPS0' ;
  273. TEM1 ='EXTR' TE_CALC 1;
  274. T_PAS = TEM1 - TEM0 ;
  275.  
  276. *-------------- modif pour recuperer le temps du dernier pas de calcul
  277. TEM_VAL = TEM1 ;
  278. *-------------- fin de modif -----------------------------------------
  279.  
  280. *---- Initialisation de la valeur du critere de fin d'iteration ---
  281. ZPREC1 = ETAB.'PRECISION' ;
  282.  
  283. *--------- Initialisation du nombre d'iterations autorisees -------
  284. 'SI' ('EXIS' ETAB 'MAXITERATION');
  285. MAX1 = ETAB.'MAXITERATION';
  286. 'SINO';
  287. MAX1 = 150;
  288. 'FINS';
  289.  
  290. *-------- Recherche des variables selon lesquelles varie ----------
  291. *---------------------- le champ de materiau ----------------------
  292. * Si couplage, on regarde les caracteristiques variables du modele complet
  293. si ETAB.'COUPLAGE' ;
  294. LVAREX = 'EXTR' (ETAB.'CARACTERISTIQUES') 'DEVA';
  295. sino ;
  296. LVAREX = 'EXTR' MATTOT0 'DEVA';
  297. fins ;
  298. ILVA = 'DIME' LVAREX;
  299. IMATCHG = 'EXIS' LVAREX 'TEMP' ;
  300. NONLIN1 = (('EGA' ILVA 1) 'ET' ('NON' IMATCHG))
  301. 'OU' ('>EG' ILVA 2)
  302. 'OU' ETAB.'PROCEDURE_PARATHER' ;
  303. 'SI' NONLIN1 ;
  304. 'SI' ETAB.'COUPLAGE';
  305. CONTI=PRECED.'CONTINUATION';
  306. *--- Creation du MCHAML contenant tous les parametres mecaniques --
  307. *-------- Ces parametres sont determines au temps TEM0 ------------
  308. *----- Ces parametres sont projetes sur le maillage thermique -----
  309. DEP1 ='CHAN' 'CHAM' CONTI.'DEPLACEMENTS' MODMEC 'NOEUD';
  310. CON1 ='CHAN' 'NOEUD' CONTI.'CONTRAINTES' MODMEC ;
  311. CHAR1_ME = DEP1 'ET' CON1 ;
  312. * 'SI' ('EXIS' CONTI 'VITESSES');
  313. * VIT1 = 'CHAN' 'CHAM' CONTI.'VITESSES' MODMEC 'NOEUD';
  314. * CHAR1_ME = CHAR1_ME 'ET' VIT1;
  315. * 'FINS';
  316. 'SI' ('EXIS' CONTI 'VARIABLES_INTERNES');
  317. VAR1 ='CHAN' 'NOEUD' CONTI.'VARIABLES_INTERNES' MODMEC ;
  318. CHAR1_ME = CHAR1_ME 'ET' VAR1 ;
  319. * DEF1 ='CHAN' 'NOEUD' ETAB.'DEI_EST' MODMEC ;
  320. * CHAR1_ME = CHAR1_ME 'ET' VAR1 'ET' DEF1;
  321. 'FINS';
  322. 'SI' ETAB.'PROJECTION';
  323. CHAR_ME ='CHAN' 'CHAM' ('PROI' MAILTOT CHAR1_ME) MODRTOT 'RIGIDITE';
  324. 'SINO';
  325. CHAR_ME ='CHAN' 'CHAM' ('CHAN' 'CHPO' CHAR1_ME MODMEC) MODRTOT 'RIGIDITE';
  326. 'FINS';
  327. 'FINS';
  328. 'FINS';
  329.  
  330. *-----------recherche des composantes de materiau qui varient et initialisation
  331. * --------- des logiques de recalcul des matrices.-------------------
  332. LCOREX = 'EXTR' MATTOT0 'COVA' ;
  333.  
  334. IKDEP =('EXIS' LCOREX 'K ') 'OU' ('EXIS' LCOREX 'K1 ') 'OU' ('EXIS' LCOREX 'K11 ') ;
  335. ICDEP =('EXIS' LCOREX 'RHO ') 'OU' ('EXIS' LCOREX 'C ') 'OU' ('EXIS' LCOREX 'M ') ;
  336. IECDEP = 'EXIS' LCOREX 'H ' ;
  337. IKDDEP =('EXIS' LCOREX 'KD ') 'OU' ('EXIS' LCOREX 'KD1 ') 'OU' ('EXIS' LCOREX 'KD11') ;
  338. ICDDEP = 'EXIS' LCOREX 'CDIF' ;
  339. IKVITE = 'EXIS' LCOREX 'VITE' ;
  340.  
  341. ICPCONS = ETAB.'CAPACONST' ;
  342. IKCONS = ETAB.'CONDCONST' ;
  343.  
  344. 'SI' ITHM1 ;
  345. IKDEP= VRAI ;
  346. ICDEP= VRAI ;
  347. 'FINS' ;
  348.  
  349. *------- Cas particulier ou il n'y a pas de CAPACITE ------------------*
  350. *- Ceci correspond au cas ou, au moins, une des 2 composantes 'C ' -*
  351. *- et/ou 'RHO ' n'est pas definie dans le materiau (facultatives). -*
  352. LCOMPM = 'EXTR' MATTOT0 'COMP' ;
  353.  
  354. ICAPATH = ETAB.'FOR_THER' 'ET' ('EXIS' LCOMPM 'C ') 'ET' (('EXIS' LCOMPM 'RHO ') 'OU' ('EXIS' LCOMPM 'M '));
  355. ICAPADI = IDIFF 'ET' ('EXIS' LCOMPM 'CDIF') ;
  356. ICAPA = ICAPATH 'OU' ICAPADI 'OU' ICPCONS ;
  357. 'SI' ('NON' ICAPATH) ;
  358. ICDEP = FAUX ;
  359. 'FINS' ;
  360. 'SI' ('NON' ICAPADI) ;
  361. ICDDEP = FAUX ;
  362. 'FINS' ;
  363.  
  364. *---------- Initialisation de l'unite de temperature --------------
  365. 'SI' ('EXIS' ETAB 'CELSIUS');
  366. ICELS = ETAB.'CELSIUS' 'ET' ETAB.'FOR_THER' ;
  367. 'SINO';
  368. ICELS = FAUX;
  369. 'FINS';
  370.  
  371. *---------- Initialisation de la temperature de reference----------
  372. 'SI' ICELS;
  373. TREF = 273.15 ;
  374. 'SINO';
  375. TREF = 0. ;
  376. 'FINS';
  377. ETAB.'TREF'=TREF;
  378.  
  379. *----------- Initialisation du champ de temperatures ------------
  380. CHTREF ='VIDE' 'CHPOINT' / 'DIFFUS' ;
  381. U0 ='VIDE' 'CHPOINT' / 'DIFFUS' ;
  382. 'SI' ETAB.'FOR_THER' ;
  383. U0 = ETAB.'TET1';
  384. 'SI' ICELS ;
  385. CHTREF =(0. * U0) + TREF ;
  386. 'FINS' ;
  387. 'FINS' ;
  388.  
  389. 'SI' IDIFF ;
  390. U0 = U0 'ET' ETAB.'CO1';
  391. 'FINS' ;
  392.  
  393. ETAB.'THER_COURANT' = U0 ;
  394. U0MTREF = U0 ;
  395. U0 = U0 + CHTREF ;
  396.  
  397. *---------- y-a-t-il definition des coefficients lambda ----------
  398. * En regime stationnaire (sans CAPACITE), ou en presence d'advection on force LAMBDA1 a 1.
  399. * SINO on ne resout pas le bon probleme !
  400. 'SI' (IADVEC 'OU' ('NON' ICAPA)) ;
  401. LAMBDA1 = 1. ;
  402. 'SINO';
  403. 'SI' ( 'EXIS' ETAB 'RELAXATION_THETA' ) ;
  404. LAMBDA1 = ETAB.'RELAXATION_THETA' ;
  405. 'SINO' ;
  406. LAMBDA1 = 1. ;
  407. 'FINS' ;
  408. 'FINS' ;
  409. ETAB.'RELAXATION_THETA' = LAMBDA1 ;
  410.  
  411.  
  412. 'SI' ('<EG' (LAMBDA1 - 1.0) 1.E-6) ;
  413. I_LAMBD1 = 3 ;
  414. 'SINO' ;
  415. 'SI' ('<EG' (LAMBDA1 - 0.5) 1.E-6) ;
  416. I_LAMBD1 = 2 ;
  417. 'SINO' ;
  418. 'SI' ('<EG' LAMBDA1 1.E-6) ;
  419. I_LAMBD1 = 1 ;
  420. 'SINO' ;
  421. I_LAMBD1 = 0 ;
  422. 'FINS' ;
  423. 'FINS' ;
  424. 'FINS' ;
  425.  
  426. *---- En cas de rayonnement : recalcul des facteurs de forme -----------
  427. *---- Si geometrie modifiee ou s'il n'existent pas, --------------
  428. 'SI' IRADI ;
  429. ETAB.'CHMAT' = MATTOT ;
  430. IAPPEL = 2 ;
  431. t_rayo = PAS_RAYO PRECED tem1 IAPPEL ;
  432. t_rayo ='MOT' 'INCONNU' ;
  433. 'FINS' ;
  434.  
  435. ********************************************************************
  436. * Rappel des donnees du probleme *
  437. ********************************************************************
  438. 'SI' ETAB.'MESSTHER' ;
  439. ETAB.'MESSTHER' = FAUX ;
  440. 'SI' ICAPA ;
  441. 'MESS' ' *** Probleme TRANSITOIRE ' ;
  442. 'SINO' ;
  443. 'MESS' ' *** Probleme STATIONNAIRE' ;
  444. 'FINS' ;
  445.  
  446. 'SI' ('EGA' ETAB.'PROCEDURE_THERMIQUE' 'NONLINEAIRE');
  447. 'MESS' ' *** Methode a un pas de temps (theta methode) ' ;
  448. 'SINO';
  449. 'MESS' ' *** Methode a deux pas de temps (DUPONT2) ' ;
  450. 'MESS' ' > Calcul du premier pas par la theta-methode ' ;
  451. 'FINS';
  452.  
  453. 'MESS' ' *** Donnees utilisees du probleme :';
  454. 'MESS' ' > Champ de temperatures a l instant : ' TEM0;
  455. 'SI' NONLIN1;
  456. 'MESS' ' > K,C ou H variables.';
  457. 'SINO';
  458. 'MESS' ' > K,C et H constants.';
  459. 'FINS';
  460.  
  461. 'SI' ICELS;
  462. 'MESS' ' > Unite de temperature utilisee : Celsius.';
  463. 'SINO';
  464. 'MESS' ' > Unite de temperature utilisee : Kelvin.';
  465. 'FINS';
  466.  
  467. 'SI' ('EGA' ETAB.'PROCEDURE_THERMIQUE' 'NONLINEAIRE');
  468. 'MESS' ' > Coefficient de relaxation : ' LAMBDA1;
  469. 'SINO';
  470. 'MESS' ' > Coefficient de relaxation pour la theta-methode : ' LAMBDA1 ;
  471. 'MESS' ' > Coefficient de relaxation pour la methode Dupont2 : ' ETAB.'RELAXATION_DUPONT' ;
  472. 'MESS' ' > Coefficient de sous-relaxation : ' LAMBDA2;
  473. 'FINS';
  474.  
  475. 'SI' (IPHASE 'OU' ISOLU);
  476. 'SI' (IPHASE 'ET' ISOLU) ;
  477. 'MESS' ' > Changement de phase ''PARFAIT'' et ''SOLUBILITE'' prevus.';
  478. 'SINO' ;
  479. 'SI' IPHASE ;
  480. 'MESS' ' > Changement de phase ''PARFAIT'' prevu.';
  481. 'SINO';
  482. 'MESS' ' > Changement de phase ''SOLUBILITE'' prevu.';
  483. 'FINS';
  484. 'FINS' ;
  485. 'SINO';
  486. 'MESS' ' > Pas de changement de phase prevu.';
  487. 'FINS';
  488.  
  489. 'SI' ('NEG' ETAB.'BLOCAGES_THERMIQUES' 'INCONNU');
  490. 'MESS' ' > Presence de temperatures imposees.';
  491. 'SINO';
  492. 'MESS' ' > Pas de temperatures imposees.';
  493. 'FINS';
  494.  
  495. 'SI' ('EXIS' ETAB.'CHARGEMENT' 'Q ');
  496. 'MESS' ' > Presence de flux.';
  497. 'SINO';
  498. 'MESS' ' > Pas de presence de flux.';
  499. 'FINS';
  500.  
  501. 'SI' ICONDU;
  502. 'MESS' ' > Presence de conduction';
  503. 'SINO';
  504. 'MESS' ' > Pas de presence de conduction ';
  505. 'FINS';
  506.  
  507. 'SI' ICONVE;
  508. 'MESS' ' > Presence de convection.';
  509. 'SINO';
  510. 'MESS' ' > Pas de terme de convection.';
  511. 'FINS';
  512.  
  513. 'SI' IRADI;
  514. 'MESS' ' > Presence de rayonnement.';
  515. 'SINO';
  516. 'MESS' ' > Pas de presence de rayonnement.';
  517. 'FINS';
  518.  
  519. 'SI' IADVEC;
  520. 'MESS' ' > Presence d advection.';
  521. 'SINO';
  522. 'MESS' ' > Pas de presence d advection';
  523. 'FINS';
  524.  
  525. 'SI' ICPCONS ;
  526. 'MESS' ' > Presence d une capacite constante.';
  527. 'FINS';
  528.  
  529. 'SI' IKCONS ;
  530. 'MESS' ' > Presence d une conductivite constante.';
  531. 'FINS';
  532. 'MESS' ' ';
  533. 'FINS';
  534.  
  535. ********************************************************************
  536. * Boucle sur les pas de temps *
  537. ********************************************************************
  538. 'REPETER' BOUC_SO ;
  539. ITE3 = &BOUC_SO;
  540. TEMM = (LAMBDA1 * TEM1) + ((1 - LAMBDA1) * TEM0);
  541. TH_COUR = U0MTREF ;
  542. ETAB.'THER_COURANT' = TH_COUR ;
  543.  
  544. 'MESS' ' ';
  545. 'MESS' '---- Calcul du champ de temperature au temps :'TEM1;
  546. 'MESS' ' ';
  547. *---- initialisation du materiau
  548. 'SI' (NONLIN1 'OU' IMATCHG) ;
  549. *-------------- Cas de la temperature et du temps ---------------
  550. CHVAR ='CHAN' 'CHAM' TH_COUR MODRTOT 'RIGIDITE' ;
  551. CHVAR2 ='MANU' 'CHML' MODRTOT 'TEMP' TEMM 'RIGIDITE' ;
  552. CHVAR = CHVAR 'ET' CHVAR2 ;
  553. *-------------- Cas des variables mecaniques --------------------
  554. *---- si il y a couplage on les "rentre" toutes dans CHVAR ------
  555. 'SI' ETAB.'COUPLAGE';
  556. CHVAR = CHVAR 'ET' CHAR_ME;
  557. 'FINS';
  558. *-------------- Mise a jour des variables externes --------------
  559. 'SI' ETAB.'PROCEDURE_PARATHER' ;
  560. PARATHER PRECED TEMM ;
  561.  
  562. * Remise en place des MCHAML sur les bons MMODELS car on suppose
  563. * que l'utilisateur ne connais pas tous les indices de ETAB.
  564. MATRTOT0 ='REDU' ETAB.'MAT_TOT' MODRTOT ;
  565. 'SI' ICONDU;
  566. MATRCOND='REDU' ETAB.'MAT_COND' MODRCOND;
  567. 'FINS';
  568. 'SI' ICONVE;
  569. MATRCON ='REDU' ETAB.'MAT_CON' MODRCON ;
  570. 'FINS';
  571. 'SI' IADVEC;
  572. MATRADV ='REDU' ETAB.'MAT_ADV' MODRADV ;
  573. 'FINS' ;
  574. 'SI' IRADI;
  575. MATRRAY ='REDU' ETAB.'MAT_RAY' MODRRAY ;
  576. 'FINS';
  577. 'SI' IPHASE;
  578. MATRPHA ='REDU' ETAB.'MAT_PHA' MODRPHA ;
  579. 'FINS';
  580. 'SI' ITHM1;
  581. MATRTHM ='REDU' ETAB.'MAT_THM' MODRTHM ;
  582. 'FINS' ;
  583. 'SI' IDIFF ;
  584. MATRDIFF='REDU' ETAB.'MAT_DIF' MODRDIFF;
  585. 'FINS' ;
  586. 'FINS' ;
  587.  
  588. *-------------- Cas des autres variables --------------------
  589. 'REPETER' BOU_NU2 ILVA;
  590. ITE2 = &BOU_NU2;
  591. MOTI = 'EXTR' LVAREX ITE2;
  592. 'SI' ('EXIS' LPRIM2 MOTI) ;
  593. 'ITER' BOU_NU2 ;
  594. 'FINS' ;
  595. 'SI' ETAB.'COUPLAGE';
  596. 'SI' ('EXIS' CHAR_ME MOTI );
  597. 'SI' ('NEG' LAMBDA1 0.);
  598. 'MESS'
  599. '*** Le materiau thermique depend de parametres mecaniques';
  600. 'ERRE' '*** Il faut initialiser SOUS-RELAXATION a 0.';
  601. 'FINS';
  602. 'ITERER' BOU_NU2;
  603. 'FINS';
  604. 'FINS';
  605. 'SI' ('EXIS' ETAB.'CHARGEMENT' MOTI);
  606. CH_1 = 'TIRE' ETAB.'CHARGEMENT' MOTI TEMM;
  607. TYP_1 = 'TYPE' CH_1;
  608.  
  609. * on suppose que les chargements qui ne sont pas d'origine mecanique
  610. * sont appuyes sur le maillage thermique.
  611. 'SI' ('EGA' TYP_1 'CHPOINT');
  612. CHVAR2 = 'CHAN' 'CHAM' CH_1 MODRTOT 'RIGIDITE';
  613. 'SINO';
  614. CHVAR2 = 'CHAN' 'RIGIDITE' CH_1 MODRTOT;
  615. 'FINS';
  616. CHVAR = CHVAR + CHVAR2;
  617. 'SINO';
  618. 'MESS' '*** Il manque une donnee du chargement ***';
  619. 'MESS' '*** Variable concernee : 'MOTI;
  620. 'ERREUR' ' ';
  621. 'FINS';
  622. 'FIN' BOU_NU2;
  623. 'FINS';
  624.  
  625. *----------------- Calcul du champ de materiau a T= U0 -----------------
  626. 'SI' (NONLIN1 'OU' IMATCHG) ;
  627. CHVAR1 ='REDU' CHVAR MODRTOT;
  628. CHMAT ='VARI' 'NUAG' MODRTOT MATRTOT0 CHVAR1 'RIGIDITE';
  629. 'SI' (IDIFF 'OU' ETAB.'THE1') ;
  630. CHMAT1 = 'REDU' CHMAT ETAB.'MOD_THE' ;
  631. 'SI' ITHM1 ;
  632. ma ff0 = @MATETHM MODRTHM TH_COUR ;
  633. CHMAT1 = CHMAT1 'ET' ma ;
  634. 'FINS' ;
  635. 'SINO' ;
  636. 'SI' ITHM1 ;
  637. CHMAT1 ff0 = @MATETHM MODRTHM TH_COUR ;
  638. 'FINS' ;
  639. 'FINS' ;
  640.  
  641. 'SINO';
  642. CHMAT = MATRTOT0 ;
  643. 'SI' (IDIFF 'OU' ETAB.'THE1') ;
  644. CHMAT1 = 'REDU' CHMAT ETAB.'MOD_THE' ;
  645. 'SI' ITHM1 ;
  646. ma ff0 = @MATETHM MODRTHM TH_COUR ;
  647. CHMAT1 = CHMAT1 'ET' ma ;
  648. 'FINS' ;
  649. 'SINO' ;
  650. 'SI' ITHM1 ;
  651. CHMAT1 ff0 = @MATETHM MODRTHM TH_COUR ;
  652. 'FINS' ;
  653. 'FINS' ;
  654. 'FINS';
  655.  
  656. * On conserve le materiau instancie CHMAT dans ETAB (Pour PAS_RAYO...)
  657. ETAB.'CHMAT' ='REDU' CHMAT MODTOT ;
  658.  
  659. MATRTOT ='REDU' CHMAT1 MODRTOT ;
  660. 'SI' ICONDU;
  661. MATRCOND='REDU' CHMAT1 MODRCOND;
  662. 'FINS';
  663. 'SI' ICONVE;
  664. MATRCON ='REDU' CHMAT1 MODRCON;
  665. 'FINS';
  666. 'SI' IRADI;
  667. MATRRAY ='REDU' CHMAT1 MODRRAY;
  668. 'FINS';
  669. 'SI' IADVEC;
  670. MATRADV ='REDU' CHMAT1 MODRADV;
  671. 'FINS' ;
  672. 'SI' ISOURQ ;
  673. MATRSOQ ='REDU' CHMAT1 MODRSOQ ;
  674. 'FINS' ;
  675. 'SI' IPHASE;
  676. MATRPHA ='REDU' CHMAT1 MODRPHA;
  677. 'FINS';
  678. 'SI' ITHM1;
  679. MATRTHM ='REDU' CHMAT1 MODRTHM ;
  680. 'FINS' ;
  681. 'SI' IDIFF ;
  682. MATRDIFF='REDU' CHMAT1 MODRDIFF;
  683. 'FINS' ;
  684.  
  685. *--- Calcul des matrices d'iteration On les recalcule a cause de perso
  686. IKDETO=FAUX;IBCONS=FAUX;
  687. 'SI' ICONDU ;
  688. KDETO ='COND' MODRCOND MATRCOND;
  689. IKDETO= VRAI;
  690. 'FINS';
  691. 'SI' ITHM1;
  692. KDCC ='COND' MODRTHM MATRTHM;
  693. 'SI' IKDETO;
  694. KDETO=KDETO 'ET' KDCC;
  695. 'SINO';
  696. KDETO=KDCC;
  697. IKDETO=VRAI;
  698. 'FINS';
  699. 'FINS';
  700. 'SI' (('NON' IKDEP) 'ET' IKDETO);
  701. BCONS= KDETO;
  702. IBCONS=VRAI;
  703. 'FINS';
  704.  
  705. 'SI' ICONVE;
  706. KDCCG= 'COND' MODRCON MATRCON;
  707. 'SI' IKDETO;
  708. KDETO=KDETO 'ET' KDCCG;
  709. 'SINO';
  710. KDETO=KDCCG;
  711. IKDETO=VRAI;
  712. 'FINS';
  713. 'SI' ('NON' IECDEP);
  714. 'SI' IBCONS ;
  715. BCONS=BCONS 'ET' KDCCG;
  716. 'SINO';
  717. BCONS=KDCCG;
  718. IBCONS=VRAI;
  719. 'FINS';
  720. 'FINS';
  721. 'FINS';
  722.  
  723. 'SI' IADVEC;
  724. * la conduction de du model d'advection est deja calculer grace a icondu
  725. 'SI' ('NON' IKVITE);
  726. KDCC2= 'ADVE' MODRADV MATRADV;
  727. 'SI' IKDETO;
  728. KDETO=KDETO 'ET' KDCC2;
  729. 'SINO';
  730. KDETO= KDCC2 ;
  731. IKDETO=VRAI;
  732. 'FINS';
  733. 'SI' IBCONS;
  734. BCONS = BCONS 'ET' KDCC2;
  735. 'SINO';
  736. BCONS= KDCC2;
  737. IBCONS=VRAI;
  738. 'FINS';
  739. 'FINS';
  740. 'FINS';
  741.  
  742. 'SI' IDIFF;
  743. KDEDI = 'COND' MODRDIFF MATRDIFF ;
  744. 'SI' IKDETO;
  745. KDETO=KDETO 'ET' KDEDI;
  746. 'SINO';
  747. KDETO=KDEDI;
  748. IKDETO=VRAI;
  749. 'FINS';
  750. 'SI' ('NON' IKDDEP);
  751. 'SI' IBCONS;
  752. BCONS=BCONS 'ET' KDEDI;
  753. 'SINO';
  754. BCONS = KDEDI;
  755. IBCONS= VRAI ;
  756. 'FINS';
  757. 'FINS';
  758. 'FINS' ;
  759.  
  760. 'SI' IKCONS ;
  761. 'SI' IKDETO ;
  762. KDETO = KDETO 'ET' ETAB.'CONDUCTIVITE_CONSTANTE' ;
  763. 'SINO' ;
  764. KDETO = ETAB.'CONDUCTIVITE_CONSTANTE' ; KDETO = VRAI ;
  765. 'FINS' ;
  766. 'SI' IBCONS;
  767. BCONS=BCONS 'ET' ETAB.'CONDUCTIVITE_CONSTANTE' ;
  768. 'SINO';
  769. BCONS= ETAB.'CONDUCTIVITE_CONSTANTE' ; IBCONS=VRAI ;
  770. 'FINS';
  771. 'FINS' ;
  772. *
  773. AA = KDETO * LAMBDA1 ;
  774. CCONS = AA ;
  775. BB = KDETO ;
  776. 'SI' ('NON' IBCONS) ;
  777. BCONS = EXTR KDETO 'RIGI' 'MULT'; IBCONS=VRAI;
  778. 'FINS';
  779. *
  780. 'SI' ICAPA ;
  781. 'SI' ICAPATH ;
  782. 'SI' ICONDU;
  783. CDET= 'CAPA' MODRCOND MATRCOND / T_PAS;
  784. AA= CDET 'ET' AA ;
  785. 'SI' ICDEP ; CCONS = CDET 'ET' CCONS ; 'FINS' ;
  786. 'FINS';
  787. 'SI' ITHM1;
  788. CDET= 'CAPA' MODRTHM MATRTHM / T_PAS;
  789. AA= CDET 'ET' AA ;
  790. 'SI' ICDEP; CCONS = CDET 'ET' CCONS ; 'FINS' ;
  791. 'FINS';
  792. 'FINS';
  793. 'SI' ICAPADI ;
  794. CDET = 'CAPA' MODRDIFF MATRDIFF / T_PAS ;
  795. AA = CDET 'ET' AA ;
  796. 'SI' ICDDEP ; CCONS = CDET 'ET' CCONS ; 'FINS' ;
  797. 'FINS' ;
  798. 'SI' ICPCONS ;
  799. CDET = ETAB.'CAPACITE_CONSTANTE' / T_PAS ;
  800. AA = CDET 'ET' AA ;
  801. 'SI' ICDDEP ; CCONS = CDET 'ET' CCONS ; 'FINS' ;
  802. 'FINS' ;
  803. 'FINS' ;
  804.  
  805. *----------------- y-a-t-il des blocages ---------------------------
  806. * on le laisse ici car perso peut l'avoir modifie de memepour les autres
  807. * matrices
  808. IKBLOC=FAUX;
  809. 'SI' ETAB.'FOR_THER' ;
  810. IKBLOC=VRAI;
  811. MAT_BLOC = ETAB.'BLOCAGES_THERMIQUES' ;
  812. 'SI' ('EGA' MAT_BLOC 'INCONNU') ;
  813. MAT_BLOC = 'EXTR' KDETO 'RIGI' 'MULT' ;
  814. 'FINS' ;
  815. MAT_BLTH = MAT_BLOC ;
  816. 'FINS' ;
  817.  
  818. 'SI' IDIFF ;
  819. MAT_BLDI = ETAB.'BLOCAGES_DIFFUSIONS' ;
  820. 'SI' ('EGA' MAT_BLDI 'INCONNU') ;
  821. MAT_BLDI = 'EXTR' KDEDI 'RIGI' 'MULT' ;
  822. 'FINS' ;
  823. 'SI' IKBLOC;
  824. MAT_BLOC = MAT_BLOC 'ET' MAT_BLDI;
  825. 'SINO';
  826. MAT_BLOC = MAT_BLDI;
  827. 'FINS';
  828. 'FINS' ;
  829.  
  830. AA = AA 'ET' MAT_BLOC ;
  831. MAT_CHPO = MAT_BLOC * U0 ;
  832. SECON = MAT_CHPO ;
  833.  
  834. *------------------- y-a-t-il des temperatures imposees--------
  835. ICHUIMP=FAUX;
  836. 'SI' ETAB.'FOR_THER' ;
  837. 'SI' ('EXIS' ETAB.'CHARGEMENT' 'TIMP') ;
  838. CH_UIMP = 'TIRE' ETAB.'CHARGEMENT' 'TIMP' TEM1 ;
  839. 'SI' ICELS ;
  840. CH_UIMP = CH_UIMP + TREF ;
  841. 'FINS' ;
  842. ICHUIMP=VRAI;
  843. 'FINS';
  844. 'FINS';
  845. 'SI' IDIFF;
  846. 'SI' ('EXIS' ETAB.'CHARGEMENT' 'CIMP') ;
  847. CH_CI = 'TIRE' ETAB.'CHARGEMENT' 'CIMP' TEM1 ;
  848. 'SI' ICHUIMP;
  849. CH_UIMP= CH_UIMP 'ET' CH_CI;
  850. 'SINO';
  851. CH_UIMP=CH_CI;
  852. 'FINS';
  853. ICHUIMP=VRAI;
  854. 'FINS';
  855. 'FINS';
  856. 'SI' ('NON' ICHUIMP);
  857. CH_UIMP='DEPI' MAT_BLOC 0.;
  858. 'FINS';
  859. MAT_CHPO = CH_UIMP - MAT_CHPO ;
  860. SECON = CH_UIMP - SECON ;
  861.  
  862. *---------- Si convection on cherche TE ------------
  863. *----------calcul convection second membre --------------
  864. 'SI' ICONVE;
  865. 'SI' ('EXIS' ETAB.'CHARGEMENT' 'TECO' ) ;
  866. CH_TEC ='TIRE' ETAB.'CHARGEMENT' 'TECO' TEMM ;
  867. 'SI' ICELS ;
  868. CH_TEC = CH_TEC + TREF ;
  869. 'FINS' ;
  870. CHAL_TEI ='CONV' MODRCON MATRCON CH_TEC ;
  871.  
  872. MAT_CHPO = MAT_CHPO + CHAL_TEI;
  873. 'SI' ('NON' IECDEP) ;
  874. SECON = SECON + CHAL_TEI;
  875. 'FINS' ;
  876. 'SINO' ;
  877. 'SI' ('EXIS' MATRCON 'TC') ;
  878. CH_TEC = 'EXCO' MATRCON 'TC' 'T' ;
  879. CH_TEC = 'CHAN' 'CHPO' MODRCON CH_TEC ;
  880. 'SI' ICELS ;
  881. CH_TEC = CH_TEC + TREF ;
  882. 'FINS' ;
  883. CHAL_TEI ='CONV' MODRCON MATRCON CH_TEC ;
  884. MAT_CHPO = MAT_CHPO + CHAL_TEI;
  885. 'SI' ('NON' IECDEP) ;
  886. SECON = SECON + CHAL_TEI;
  887. 'FINS' ;
  888. 'FINS' ;
  889. 'FINS';
  890. 'FINS';
  891.  
  892. *--------- SI terme de flux -------------------------------
  893.  
  894. 'SI' ITHM1 ;
  895. ma FTGC = @MATETHM MODRTHM TH_COUR ;
  896. MAT_CHPO = MAT_CHPO - FTGC;
  897. SECON = SECON - FTGC;
  898. 'FINS';
  899.  
  900. 'REPE' Boucle NBDUA1 ;
  901. MOTCOMP = 'EXTR' LDUAL1 &Boucle ;
  902. 'SI' ('EXIS' ETAB.'CHARGEMENT' MOTCOMP) ;
  903. CH_DUA = 'TIRE' ETAB.'CHARGEMENT' MOTCOMP TEMM ;
  904. MAT_CHPO = MAT_CHPO + CH_DUA ;
  905. SECON = SECON + CH_DUA ;
  906. 'FINS' ;
  907. 'FIN' Boucle ;
  908.  
  909. *------------- calcul des termes rayonnement --------------------------
  910.  
  911. 'SI' IRADI ;
  912. IAPPEL = 3 ;
  913. t_rayo = PAS_RAYO PRECED TEMM IAPPEL ;
  914. 'SI' ('EXIS' t_rayo 'ADDI_MATRICE') ;
  915. RIG_RAYO = LAMBDA1 '*' t_rayo.'ADDI_MATRICE';
  916. ccons = RIG_RAYO 'ET' ccons ;
  917. aa = RIG_RAYO 'ET' aa ;
  918. bb = t_rayo.'ADDI_MATRICE' 'ET' bb;
  919. 'FINS';
  920. 'SI' ('EXIS' t_rayo 'ADDI_SECOND') ;
  921. MAT_CHPO = MAT_CHPO 'ET' t_rayo.'ADDI_SECOND' ;
  922. 'FINS';
  923. 'SI' ('EXIS' t_rayo 'RAYO_VALEUR');
  924. STAB.'RAYONNEMENT' = t_rayo.'RAYO_VALEUR' ;
  925. 'FINS';
  926. t_rayo = 'MOT' 'INCONNU' ;
  927. 'FINS';
  928.  
  929. *------------- calcul des sources de chaleur --------------------
  930.  
  931. 'SI' ISOURQ ;
  932. CHQ1 = SOUR MODRSOQ MATRSOQ ;
  933. MAT_CHPO = MAT_CHPO 'ET' CHQ1 ;
  934. SECON = SECON 'ET' CHQ1 ;
  935. 'FINS';
  936.  
  937. *------------- en cas de procedure utilisateur CHARTHER --------------
  938.  
  939. 'SI' etab.'PROCEDURE_CHARTHER' ;
  940. taat = charther preced temm ;
  941. 'SI' ('EXIS' taat 'ADDI_MATRICE') ;
  942. mat_z = lambda1 '*' taat.'ADDI_MATRICE' ;
  943. ccons = mat_z 'ET' ccons ;
  944. aa = mat_z 'ET' aa ;
  945. bb = taat.'ADDI_MATRICE' 'ET' bb ;
  946. 'FINS';
  947. 'SI' ('EXIS' taat 'ADDI_SECOND') ;
  948. MAT_CHPO = MAT_CHPO 'ET' taat.'ADDI_SECOND' ;
  949. 'FINS';
  950. oublier taat ;
  951. 'FINS';
  952.  
  953. * Pour le Changement de phase 'PARFAIT' : Blocages et Jeux
  954. 'SI' IPHASE;
  955. AA = AA 'ET' BLOPHA ;
  956. Q_LAT_INT=('SOUR' MODPHA ('EXCO' MATTOT0 'DUAL') MATTOT0 'ELEM') / T_PAS ;
  957. JEU_PHAS = 'PHAJ' MODTOT MATTOT0 U0MTREF ;
  958. MAT_CHPO = MAT_CHPO + JEU_PHAS ;
  959. SECON = SECON + JEU_PHAS ;
  960. 'FINS';
  961.  
  962. * Pour le Changement de phase 'SOLUBILITE' : Blocages et Jeux
  963. 'SI' ISOLU;
  964. AA = AA 'ET' BLOSOL ;
  965. JEU_SOL = 'PHAJ' MODTOT MATRTOT0 U0MTREF ;
  966. MAT_CHPO = MAT_CHPO + JEU_SOL ;
  967. SECON = SECON + JEU_SOL ;
  968. 'FINS';
  969. *--------------- Calcul du premier residu --------------------------
  970.  
  971. B3 = BB * U0 ;
  972. MAT_CHPO = MAT_CHPO - B3 ;
  973. ********************************************************************
  974. * Boucle sur les iterations *
  975. ********************************************************************
  976. * on peut mettre n'importe quoi c'est pour
  977. * ne pas faire de tests dans la boucle
  978. ZNACCE = 2 ;
  979. ZITAC = 0 ;
  980. IT = 0 ;
  981. ITDEP = 3 ;
  982. 'SI' IPHASE;
  983. ITDEP=5;
  984. 'FINS';
  985. ITACC = 0 ;
  986. ACFP1 = MAT_CHPO * 0. ;
  987. ACFP2 = ACFP1 ;
  988. MAT_CHPP= ACFP1 ;
  989. ACFP3 = ACFP1 ;
  990. ACFEP1 = ACFP1 ;
  991. ACFEP2 = ACFP1 ;
  992. CORREC = 0.;
  993. U0 ='ENLE' U0 'LX';
  994. U1 = U0 ;
  995. DU0 ='VIDE' 'CHPOINT' / 'DIFFUS' ;
  996. DU1 ='VIDE' 'CHPOINT' / 'DIFFUS' ;
  997. EXCPHA ='VIDE' 'CHPOINT' / 'DISCRET';
  998.  
  999. 'REPETER' BOU_IT1;
  1000. * IT est le compteur de BOU_IT1, ITACC doit etre =< 0 pour qu'on accelere
  1001. IT = IT + 1 ;
  1002. ITACC = ITACC - 1 ;
  1003. ZITAC = ZITAC + 1 ;
  1004. ITE_IT = &BOU_IT1;
  1005.  
  1006. * Nombre max d'iteration autorise est-il depasse?
  1007. 'SI' (ITE_IT '>' MAX1);
  1008. 'SAUTER' 1 'LIGNE' ;
  1009. 'MESS' '*** LE CALCUL N A PAS CONVERGE ***';
  1010. ERR_VAL= VRAI;
  1011. 'QUIT' BOUC_SO ;
  1012. 'FINS';
  1013. AUTORISA= VRAI;
  1014. BB = BCONS;CC=CCONS;
  1015. *
  1016. *---------------------------------------------------------------------
  1017. * La force motrice de l'iteration est fixee: RESIDU
  1018. * on va calculer un nouveau champ de deplacement
  1019. *
  1020. * calcul de l'increment de l'increment de deplacement zdep1
  1021. * par resolution lineaire
  1022. *
  1023. *
  1024. * acceleration de convergence
  1025. *
  1026. CORRECP = CORREC;
  1027. CORREC = 0;
  1028. ACFP0 = (MAT_CHPO - MAT_CHPP) 'ENLE' FLX ;
  1029. ACFEP0 = ACFP0;
  1030. ACFEP0 = ACFEP0 - CORRECP ;
  1031. 'SI' ('MULT' IT ZNACCE) ;
  1032. 'SI' (IT > ITDEP);
  1033. CORREC = 'ACT3' ACFEP2 ACFEP1 ACFEP0 ACFP3 ACFP2 ACFP1 ACFP0 ;
  1034. MAT_CHPO = MAT_CHPO - CORREC ;
  1035. 'FINS';
  1036. 'FINS';
  1037. MAT_CHPP=MAT_CHPO ;
  1038.  
  1039. SI (IT > 3);
  1040. 'DETR' ACFP3;
  1041. 'DETR' ACFEP2;
  1042. 'FINS';
  1043. ACFP3 = ACFP2 ; ACFP2 = ACFP1 ; ACFP1 = ACFP0 ;
  1044. ACFEP2 = ACFEP1 ; ACFEP1 = ACFEP0 ;
  1045.  
  1046. MENAGE;
  1047.  
  1048. 'SOUC' 0;
  1049. 'SI' IRIB ;
  1050. 'SI' IPHASE;
  1051. DU1 BID BID BID BID = 'RESO' AA MAT_CHPO 'INIB' RIBL_VAL LISE_VAL EXCPHA ;
  1052. 'SINO';
  1053. DU1 BID BID BID = 'RESO' AA MAT_CHPO 'INIB' RIBL_VAL LISE_VAL ;
  1054. 'FINS';
  1055. 'SINO';
  1056. 'SI' IPHASE;
  1057. DU1 = 'RESO' AA MAT_CHPO EXCPHA ;
  1058. 'SINO';
  1059. DU1 = 'RESO' AA MAT_CHPO ;
  1060. * mess ' ITeration ' it;
  1061. * aaa= extr aa rigi mult ; mess ' aaa ' ; list aaa;
  1062. * mess ' mat_chpo' ; list mat_chpo;
  1063. * mess ' du1 ' ; list du1;
  1064. 'FINS';
  1065. 'FINS';
  1066.  
  1067. ZRAID_T = 'EXTR' AA 'CONT';
  1068. 'SI' ('EXIS' ZRAID_T 'NITER');
  1069. RIBL_VAL = ZRAID_T.7;
  1070. LISE_VAL = ZRAID_T.6;
  1071. IRIB=VRAI;
  1072. 'FINS';
  1073.  
  1074.  
  1075. 'SI' IPHASE;
  1076. * Flux generalises ('LX')
  1077. EXCPHA ='EXCP' MODTOT MATPHA0 PROPHA0 Q_LAT_INT U0MTREF DU1 ;
  1078. 'SOUC' 0;
  1079. PROPHA1 ='PROP' MODTOT PROPHA0 Q_LAT_INT DU1 ;
  1080. AUTORISA=(ITE_IT '>' 1) 'ET' ('NON' ('SOUC')) ;
  1081. 'FINS';
  1082.  
  1083.  
  1084. * 'SI' ISOLU;
  1085. ** Flux generalises ('LX')
  1086. * EXCPHA =('EXCS' MODTOT CHMAT U0MTREF DU1) 'ET' EXCPHA ;
  1087. * AUTORISA=(ITE_IT '>' 1) 'ET' ('NON' ('SOUC')) ;
  1088. * 'FINS';
  1089.  
  1090. U1 = U0 + DU1 ;
  1091.  
  1092. 'SI' ('EGA' I_LAMBD1 0) ;
  1093. U_BOU1 = (LAMBDA1 * U1) + ((1 - LAMBDA1) * U0);
  1094. 'SINO' ;
  1095. 'SI' ('EGA' I_LAMBD1 1) ; U_BOU1 = U0 ; 'FINS' ;
  1096. 'SI' ('EGA' I_LAMBD1 2) ; U_BOU1 = 0.5 * (U0 + U1) ; 'FINS' ;
  1097. 'SI' ('EGA' I_LAMBD1 3) ; U_BOU1 = U1 ; 'FINS' ;
  1098. 'FINS' ;
  1099.  
  1100. TH_COUR = U_BOU1 - CHTREF;
  1101. ETAB.'THER_COURANT' = TH_COUR ;
  1102.  
  1103.  
  1104. * Calcul des Proportions de Phases (Modele Metallurgique par T.L. en mai 2018)
  1105. 'SI' IMETAL ;
  1106. CHT0 ='CHAN' 'CHAM' ('EXCO' U0 'T' 'T') MODRMET ;
  1107. CHT1 ='CHAN' 'CHAM' ('EXCO' U1 'T' 'T') MODRMET ;
  1108. CHETPS0 ='MANU' 'CHML' MODRMET 'TEMP' tem0 'STRESSES' ;
  1109. CHETPS1 ='MANU' 'CHML' MODRMET 'TEMP' tem1 'STRESSES' ;
  1110. PHA_MET1 ='COMP' MODRMET (PHA_MET0 'ET' CHETPS0 'ET' CHT0 'ET' CHMAT) ( CHETPS1 'ET' CHT1 'ET' CHMAT ) ;
  1111. 'FINS' ;
  1112.  
  1113.  
  1114. *-------- Calcul du critere de fin d'iteration -------------------
  1115. DDU_SANS ='EXCO' ('ABS' (DU1 - DU0)) LPRIM1 ;
  1116. 'SI' LOG_TOL ;
  1117. ZPREC3 ='MAXI' DDU_SANS ;
  1118. 'MESS' ' Iteration numero :' ITE_IT/23 ' Critere absolu :' ZPREC3 ;
  1119. CRITABS ='MAXI' ('MASQ' (DDU_SANS - TTOL) 'SUPE' 0.D0) ;
  1120. 'SI' ((CRITABS '&lt;EG' 0.5) 'ET' AUTORISA) ;
  1121. 'QUITTER' BOU_IT1 ;
  1122. 'FINS' ;
  1123.  
  1124. 'SINO' ;
  1125. CHP_CRIT_REL = DDU_SANS * ((('ABS' U1) + XPETI) ** -1) LPRIM1 LPRIM1 LPRIM1 ;
  1126. ZPREC2 = 'MAXI' 'ABS' CHP_CRIT_REL ;
  1127. 'MESS' ' Iteration numero :' ITE_IT/23 ' Critere relatif :'ZPREC2 ;
  1128. 'SI' ((ZPREC2 '&lt;EG' ZPREC1) 'ET' AUTORISA) ;
  1129. 'QUITTER' BOU_IT1 ;
  1130. 'FINS' ;
  1131. 'FINS' ;
  1132.  
  1133. DU0 = DU1 ;
  1134.  
  1135.  
  1136. *****************************************************************
  1137. * CALCUL DU NOUVEAU RESIDU *
  1138. *****************************************************************
  1139. MAT_CHPO = SECON ;
  1140. * Gestion des variables externes *
  1141. *****************************************************************
  1142.  
  1143. 'SI' NONLIN1 ;
  1144.  
  1145. *-------------- Cas de la temperature et du temps ---------------
  1146.  
  1147.  
  1148. CHVAR ='CHAN' 'CHAM' TH_COUR MODRTOT 'RIGIDITE' ;
  1149. CHVAR2 ='MANU' 'CHML' MODRTOT 'TEMP' TEMM 'RIGIDITE' ;
  1150. CHVAR = CHVAR 'ET' CHVAR2 ;
  1151.  
  1152. *-------------- Cas des variables mecaniques --------------------
  1153. *---- si il y a couplage on les "rentre" toutes dans CHVAR ------
  1154.  
  1155. 'SI' ETAB.'COUPLAGE';
  1156. CHVAR = CHVAR 'ET' CHAR_ME;
  1157. 'FINS';
  1158.  
  1159. *-------------- Mise a jour des variables externes --------------
  1160. 'SI' ETAB.'PROCEDURE_PARATHER' ;
  1161. PARATHER PRECED TEMM ;
  1162.  
  1163. * Remise en place des MCHAML sur les bons MMODELS car on suppose
  1164. * que l'utilisateur ne connais pas tous les indices de ETAB.
  1165. MATRTOT0 ='REDU' ETAB.'MAT_TOT' MODRTOT ;
  1166. 'SI' ICONDU;
  1167. MATRCOND='REDU' ETAB.'MAT_COND' MODRCOND;
  1168. 'FINS';
  1169. 'SI' ICONVE;
  1170. MATRCON ='REDU' ETAB.'MAT_CON' MODRCON ;
  1171. 'FINS';
  1172. 'SI' IADVEC;
  1173. MATRADV ='REDU' ETAB.'MAT_ADV' MODRADV ;
  1174. 'FINS' ;
  1175. 'SI' IRADI;
  1176. MATRRAY ='REDU' ETAB.'MAT_RAY' MODRRAY ;
  1177. 'FINS';
  1178. 'SI' IPHASE;
  1179. MATRPHA ='REDU' ETAB.'MAT_PHA' MODRPHA ;
  1180. MATPHA ='REDU' ETAB.'MAT_PHA' MODPHA ;
  1181. 'FINS';
  1182. 'SI' ITHM1;
  1183. MATRTHM ='REDU' ETAB.'MAT_THM' MODRTHM ;
  1184. 'FINS' ;
  1185. 'SI' IDIFF ;
  1186. MATRDIFF='REDU' ETAB.'MAT_DIF' MODRDIFF;
  1187. 'FINS' ;
  1188. 'FINS' ;
  1189.  
  1190. *-------------- Cas des autres variables --------------------
  1191. 'REPETER' BOU_NU2 ILVA;
  1192. ITE2 = &BOU_NU2;
  1193. MOTI = 'EXTR' LVAREX ITE2;
  1194. 'SI' ('EXIS' LPRIM2 MOTI) ;
  1195. 'ITER' BOU_NU2 ;
  1196. 'FINS' ;
  1197. 'SI' ETAB.'COUPLAGE';
  1198. 'SI' ('EXIS' CHAR_ME MOTI );
  1199. 'SI' ('NEG' LAMBDA1 0.);
  1200. 'MESS' '*** Le materiau thermique depend de parametres mecaniques';
  1201. 'ERRE' '*** Il faut initialiser SOUS-RELAXATION a 0.';
  1202. 'FINS';
  1203. 'ITERER' BOU_NU2;
  1204. 'FINS';
  1205. 'FINS';
  1206. 'SI' ('EXIS' ETAB.'CHARGEMENT' MOTI);
  1207. CH_1 = 'TIRE' ETAB.'CHARGEMENT' MOTI TEMM;
  1208. TYP_1 = 'TYPE' CH_1;
  1209.  
  1210. * on suppose que les chargements qui ne sont pas d'origine mecanique
  1211. * sont appuyes sur le maillage thermique.
  1212. 'SI' ('EGA' TYP_1 'CHPOINT ');
  1213. CHVAR2 = 'CHAN' 'CHAM' CH_1 MODRTOT 'RIGIDITE';
  1214. 'SINO';
  1215. CHVAR2 = 'CHAN' 'RIGIDITE' CH_1 MODRTOT;
  1216. 'FINS';
  1217. CHVAR = CHVAR + CHVAR2;
  1218. 'SINO';
  1219. 'MESS' '*** Il manque une donnee du chargement ***';
  1220. 'MESS' '*** Variable concernee : 'MOTI;
  1221. 'ERREUR' ' ';
  1222. 'FINS';
  1223. 'FIN' BOU_NU2;
  1224. 'FINS';
  1225.  
  1226. *----------------- Calcul du champ de materiau a T= U_BOU1--------------
  1227. 'SI' NONLIN1 ;
  1228. CHVAR1 = 'REDU' CHVAR MODRTOT;
  1229. CHMAT = 'VARI' 'NUAG' MODRTOT MATRTOT0 CHVAR1 'RIGIDITE';
  1230.  
  1231. 'SI' (IDIFF 'OU' ETAB.'THE1') ;
  1232. CHMAT1 = 'REDU' CHMAT ETAB.'MOD_THE' ;
  1233. 'SI' ITHM1 ;
  1234. ma ff0 = @MATETHM MODRTHM TH_COUR ;
  1235. CHMAT1 = CHMAT1 'ET' ma ;
  1236. 'FINS' ;
  1237. 'SINO' ;
  1238. 'SI' ITHM1 ;
  1239. CHMAT1 ff0 = @MATETHM MODRTHM TH_COUR ;
  1240. 'FINS' ;
  1241. 'FINS' ;
  1242.  
  1243. 'SINO';
  1244. CHMAT = MATRTOT0 ;
  1245. 'SI' (IDIFF 'OU' ETAB.'THE1') ;
  1246. CHMAT1 = 'REDU' MATRTOT ETAB.'MOD_THE' ;
  1247. 'SI' ITHM1 ;
  1248. ma ff0 = @MATETHM MODRTHM TH_COUR ;
  1249. CHMAT1=CHMAT1 'ET' ma ;
  1250. 'FINS' ;
  1251. 'SINO' ;
  1252. 'SI' ITHM1 ;
  1253. CHMAT1 ff0 = @MATETHM MODRTHM TH_COUR ;
  1254. 'FINS' ;
  1255. 'FINS' ;
  1256. 'FINS';
  1257.  
  1258. ETAB.'CHMAT' ='REDU' CHMAT MODTOT ;
  1259.  
  1260. MATRTOT ='REDU' CHMAT1 MODRTOT ;
  1261. 'SI' ICONDU;
  1262. MATRCOND='REDU' CHMAT1 MODRCOND;
  1263. 'FINS';
  1264. 'SI' ICONVE;
  1265. MATRCON ='REDU' CHMAT1 MODRCON ;
  1266. 'FINS';
  1267. 'SI' IRADI;
  1268. MATRRAY ='REDU' CHMAT1 MODRRAY ;
  1269. 'FINS';
  1270. 'SI' IADVEC;
  1271. MATRADV ='REDU' CHMAT1 MODRADV ;
  1272. 'FINS' ;
  1273. 'SI' IPHASE;
  1274. MATRPHA ='REDU' CHMAT1 MODRPHA ;
  1275. MATPHA ='REDU' CHMAT1 MODPHA ;
  1276. 'FINS';
  1277. 'SI' ITHM1;
  1278. MATRTHM ='REDU' CHMAT1 MODRTHM ;
  1279. 'FINS' ;
  1280. 'SI' IDIFF ;
  1281. MATRDIFF='REDU' CHMAT1 MODRDIFF;
  1282. 'FINS' ;
  1283.  
  1284. *-------------- CALCUL matrice de conductivite si besoin --------------
  1285. 'SI' IKDEP ;
  1286. 'SI' ICONDU; BB = ('COND' MODRCOND MATRCOND) 'ET' BB;'FINS';
  1287. 'SI' ITHM1 ; BB = ('COND' MODRTHM MATRTHM ) 'ET' BB;'FINS';
  1288. 'FINS' ;
  1289. 'SI' IECDEP;
  1290. 'SI' ICONVE; BB = ('COND' MODRCON MATRCON ) 'ET' BB;'FINS';
  1291. 'FINS';
  1292. 'SI' IKVITE; BB = ('ADVE' MODRADV MATRADV ) 'ET' BB;'FINS';
  1293. 'SI' IKDDEP ; BB = ('COND' MODRDIFF MATRDIFF) 'ET' BB;'FINS';
  1294.  
  1295. *-------------- CALCUL matrice de capacite si besoin------------------
  1296. XDIV = -1.d0 * T_PAS ;
  1297. 'SI' ICDEP ;
  1298. 'SI' ICONDU;CC=(('CAPA' MODRCOND MATRCOND)/XDIV) 'ET' CC;'FINS';
  1299. 'SI' ITHM1 ;CC=(('CAPA' MODRTHM MATRTHM) /XDIV) 'ET' CC;'FINS';
  1300. 'FINS';
  1301. 'SI' ICDDEP ;CC=(('CAPA' MODRDIFF MATRDIFF)/XDIV) 'ET' CC;'FINS';
  1302.  
  1303. *-------------- CALCUL des termes de convection si besoin ---------
  1304. 'SI' ICONVE;
  1305. 'SI' IECDEP;
  1306. 'SI' (('EXIS' ETAB.'CHARGEMENT' 'TECO') 'OU' ('EXIS' MATRCON 'TC')) ;
  1307. CHAL_TE = 'CONV' MODRCON MATRCON CH_TEC ;
  1308. MAT_CHPO = MAT_CHPO + CHAL_TE ;
  1309. 'FINS';
  1310. 'FINS';
  1311. 'FINS';
  1312.  
  1313. *
  1314. *------------- calcul des termes rayonnement --------------------------
  1315. 'SI' IRADI ;
  1316. IAPPEL = 3 ;
  1317. t_rayo = PAS_RAYO PRECED TEM1 IAPPEL ;
  1318. 'SI' ('EXIS' t_rayo 'ADDI_MATRICE') ;
  1319. bb = bb 'ET' t_rayo.'ADDI_MATRICE' ;
  1320. 'FINS';
  1321. 'SI' ('EXIS' t_rayo 'ADDI_SECOND') ;
  1322. MAT_CHPO = MAT_CHPO 'ET' t_rayo.'ADDI_SECOND' ;
  1323. 'FINS';
  1324. 'SI' ('EXIS' t_rayo 'RAYO_VALEUR');
  1325. STAB.'RAYONNEMENT' = t_rayo.'RAYO_VALEUR';
  1326. 'FINS';
  1327. t_rayo = 'MOT' 'INCONNU' ;
  1328. 'FINS';
  1329.  
  1330. *------------- en cas de procedure utilisateur CHARTHER --------------
  1331.  
  1332. 'SI' etab.'PROCEDURE_CHARTHER' ;
  1333. TAAT = charther preced TEM1 ;
  1334. 'SI' ('EXIS' TAAT 'ADDI_MATRICE') ;
  1335. bb = bb 'ET' taat.'ADDI_MATRICE' ;
  1336. 'FINS';
  1337. 'SI' ('EXIS' taat 'ADDI_SECOND') ;
  1338. MAT_CHPO = MAT_CHPO 'ET' taat.'ADDI_SECOND' ;
  1339. 'FINS';
  1340. oublier taat ;
  1341. 'FINS' ;
  1342.  
  1343. *--------------- calcul K*u1 et (lambda1*k + C/DT) * DDU1
  1344. 'SI' ('EGA' I_LAMBD1 1) ;
  1345. DS = BB * U0 ;
  1346. 'SINO' ;
  1347. 'SI' ('NEG' I_LAMBD1 3) ;
  1348. chp_z = LAMBDA1 * DU1 ;
  1349. 'SINO' ;
  1350. chp_z = DU1 ;
  1351. 'FINS' ;
  1352. DS = BB * ( chp_z + U0 ) ;
  1353. 'FINS' ;
  1354. DS2 = CC * DU1;
  1355. MAT_CHPO = MAT_CHPO + DS2 - DS ;
  1356. 'SI' ITHM1 ;
  1357. ma FTGC = @MATETHM MODRTHM TH_COUR ;
  1358. MAT_CHPO = MAT_CHPO - FTGC ;
  1359. 'FINS';
  1360. 'FIN' BOU_IT1;
  1361.  
  1362. 'SI' IPHASE ;
  1363. * Evolution de la proportion de phase (impossible actuellement en parallele car Non-Local)
  1364. PROPHA1 ='PROP' MODTOT PROPHA0 Q_LAT_INT DU1 ;
  1365. PROPHA0 = PROPHA1 ;
  1366. 'FINS' ;
  1367.  
  1368. TH_COUR = U1 - CHTREF ;
  1369. ETAB.'THER_COURANT' = TH_COUR ;
  1370.  
  1371. *--------------- Appel a la procedure utilisateur PERSO2 ---------------
  1372. 'SI' ETAB.'PROCEDURE_PERSO2';
  1373. * CB215821 : Il serait bien de mettre dans ESTIMATION la solution COURANTE
  1374. * 'SI' ('EXIS' PRECED 'TEMPERATURES' ) ;
  1375. * tab_z = 'INDEX' PRECED.'TEMPERATURES' ;
  1376. * IND0 = tab_z. ('DIME' tab_z) ;
  1377. * ETAB.'TEMI' = PRECED.'TEMPERATURES' . IND0 ;
  1378. * 'SINO';
  1379. * tab_z = 'INDEX' PRECED.'CONCENTRATIONS' ;
  1380. * IND0 = tab_z. ('DIME' tab_z) ;
  1381. * ETAB.'TEMI' = PRECED.'CONCENTRATIONS' . IND0 ;
  1382. * 'FINS' ;
  1383. PERSO2 PRECED ;
  1384. * ETAB = 'ENLEVER' ETAB 'TEMI' ;
  1385. 'SI' ('EXIS' PRECED 'ARRET') ;
  1386. ETAB.'ARRET' = PRECED.'ARRET' ;
  1387. 'FINS' ;
  1388. 'FINS';
  1389.  
  1390. *******************************************************************
  1391. * Reinitialisation des variables en vue du pas suivant *
  1392. *******************************************************************
  1393. 'SI' ((ITE3+1) '&lt;EG' DCALC);
  1394. TEM0 = TEM1;
  1395. TEM1 ='EXTR' TE_CALC (ITE3 + 1);
  1396. T_PAS = TEM1 - TEM0 ;
  1397. U0 = U1 ;
  1398. U0MTREF= U0 - CHTREF ;
  1399.  
  1400. 'SINO';
  1401. 'QUIT' BOUC_SO;
  1402. 'FINS';
  1403.  
  1404. *------------------------ On fait le menage -----------------------
  1405. 'MENA' ;
  1406. 'FIN' BOUC_SO ;
  1407.  
  1408. 'SAUT' 1 'LIGN' ;
  1409.  
  1410. STAB.'ERREUR' = ERR_VAL ;
  1411. 'SI' ETAB.'FOR_THER' ;
  1412. CHTMP ='EXCO' TH_COUR ETAB.'PRIM_T' 'NOID' ;
  1413. STAB.'INITIAL(2)' ='CHAN' 'ATTRIBUT' CHTMP 'NATURE' 'DIFFUS';
  1414. STAB.'CLIT' = MAT_BLTH ;
  1415. 'FINS' ;
  1416. 'SI' IDIFF ;
  1417. CHTMP ='EXCO' TH_COUR ETAB.'PRIM_DIF' 'NOID' ;
  1418. STAB.'CO2' ='CHAN' 'ATTRIBUT' CHTMP 'NATURE' 'DIFFUS';
  1419. STAB.'CLID' = MAT_BLDI ;
  1420. 'FINS' ;
  1421.  
  1422. 'SI' IRIB ;
  1423. STAB.'RIBLO_T' = RIBL_VAL ;
  1424. STAB.'LISEA_T' = LISE_VAL ;
  1425. 'FINS' ;
  1426.  
  1427. 'SI' IPHASE ;
  1428. STAB.'PROPPHAS' = PROPHA1 ;
  1429. 'FINS' ;
  1430.  
  1431. *Ecriture des Proportions de Phases en sortie (Modele Metallurgique par T.L. en mai 2018)
  1432. 'SI' IMETAL ;
  1433. STAB.'PROPORTIONS_PHASES' ='REDU' PHA_MET1 ETAB.'MOD_MET' ;
  1434. 'FINS' ;
  1435.  
  1436. 'OPTI' 'PARA' FAUX ;
  1437. 'FINPROC' STAB ;
  1438.  
  1439.  
  1440.  
  1441.  

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