Télécharger pas_init.procedur

Retour à la liste

Numérotation des lignes :

  1. * PAS_INIT PROCEDUR MB234859 24/07/08 21:15:02 11958
  2. 'DEBPROC' PAS_INIT PRECED*'TABLE' ;
  3. ************************************************************************
  4. * Procedure qui renseigne les champs dans la table CONTINUATION.
  5. * et qui creee les tables ou seront sauves les resultats.
  6. *
  7. * Trois cas sont a distinguer :
  8. * - en cas d'un premier appel a PASAPAS, CONTINUATION n'existe pas
  9. * et elle est creee et completee de facon a contenir les champs
  10. * a l'instant TEMPS0 = 0.
  11. * - en cas de reprise d'un calcul, la procedure PAS_DEFA s'est chargee
  12. * de verifier que cet instant est bien present dans la liste des temps
  13. * calcules. Les champs resultats pour les instants posterieurs a cet
  14. * instant de reprise ont ete supprimes des tables de sauvegardes.
  15. * TEMPS0 = PRECED.'TEMPS'. NSOR et il faut renseigner CONTINUATION de
  16. * facon a ce qu'elle contienne les champs a cet instant.
  17. * - en cas de poursuite d'un calcul, on repart du dernier pas calcule.
  18. * La table CONTINUATION est redefinie dans le cas ou le modele
  19. * aurait change (cas de la fabrication additive ou des elements ont pu
  20. * etre ajoutes entre deux appels de PASAPAS).
  21. *
  22. * Entree : Table PRECED transmises a PASAPAS
  23. * Sortie : Aucune mais la table de PASAPAS contient desormais
  24. * - des tables pour stocker les resultats de calculs
  25. * - la table CONTINUATION qui contient les champs a TEMPS0
  26. * - la table ESTIMATION qui contiendra les champs a TI
  27. ************************************************************************
  28. WTAB = PRECED.'WTABLE';
  29. TABSAUV = WTAB.'TABSAUV';
  30. inouv = 'NON' ('EXIS' PRECED 'CONTINUATION') ;
  31. 'SI' inouv ;
  32. PRECED.'CONTINUATION' = 'TABLE';
  33. 'FINSI';
  34. conti = PRECED.'CONTINUATION';
  35. ************************************************************************
  36. * Initialisations de l'instant de calcul
  37. ************************************************************************
  38. 'SI' ('EXIS' PRECED 'TEMPS') ;
  39. NSOR = ('DIME' (PRECED.'TEMPS')) - 1;
  40. 'SI' inouv ;
  41. TEMP0 = PRECED.'TEMPS'. NSOR;
  42. 'SINON';
  43. TEMP0 = conti.'TEMPS';
  44. 'FINSI';
  45. 'SINON';
  46. NSOR = 0;
  47. 'SI' WTAB.'FREQUENTIEL' ;
  48. TEMP0 = WTAB.'TEMPS0' ;
  49. 'SINON' ;
  50. TEMP0 = 0.D0 ;
  51. 'FINSI' ;
  52. PRECED.'TEMPS' = 'TABLE';
  53. PRECED.'TEMPS'. 0 = TEMP0 ;
  54. 'FINSI';
  55. WTAB.'TEMPS0' = TEMP0;
  56. WTAB.'NSOR' = NSOR;
  57. conti.'TEMPS' = WTAB.'TEMPS0';
  58. ************************************************************************
  59. * Initialisation indices 'MODELES' de la table de sortie
  60. ************************************************************************
  61. 'SI' WTAB.'CHAR_MODE' ;
  62.  
  63. * Indices MODELES de la table de sortie :
  64. 'SI' ('NON' ('EXIS' PRECED 'MODELES')) ;
  65. PRECED.'MODELES' = 'TABLE' ;
  66. PRECED.'MODELES' . 0 = WTAB.'MODELE' ;
  67. * PRECED.'MAILLAGES' = 'TABLE' ;
  68. * PRECED.'MAILLAGES' . 0 = 'EXTR' (PRECED.'MODELES' . 0) 'MAIL' ;
  69. 'FINSI' ;
  70. conti.'MODELES' = PRECED.'MODELES'. NSOR ;
  71. * conti.'MAILLAGES' = PRECED.'MAILLAGES' . NSOR ;
  72.  
  73. 'FINSI' ;
  74. ************************************************************************
  75. * Initialisations pour la THERMIQUE
  76. ************************************************************************
  77. 'SI' WTAB.'FOR_THER';
  78. *
  79. * - Initialisation de la temperature
  80. 'SI' ('EXISTE' PRECED 'TEMPERATURES');
  81. TH_COUR = PRECED.'TEMPERATURES'. NSOR;
  82. 'SI' (NSOR '>EG' 2) ;
  83. WTAB.'TET0' = PRECED.'TEMPERATURES'. (NSOR - 2);
  84. 'FINSI';
  85. 'SINON';
  86. 'SI' ('EXIS' WTAB.'MAT_T' 'TINI') ;
  87. MOTSTEMP = 'EXTR' WTAB.'MOD_T' 'DEPL' ;
  88. DDDD = VIDE 'MCHAML' ;
  89. 'REPE' BMO ('DIME' MOTSTEMP) ;
  90. MOTEMPI = 'EXTR' MOTSTEMP &BMO ;
  91. DDDD = DDDD ET ('EXCO' WTAB.'MAT_T' 'TINI' MOTEMPI) ;
  92. 'FIN' BMO ;
  93. 'SINO' ;
  94. DDDD = 'ZERO' WTAB.'MOD_T' 'TEMPERAT' ;
  95. 'FINS' ;
  96. TH_COUR = 'CHANGER' 'CHPO' WTAB.'MOD_T' DDDD;
  97. PRECED.'TEMPERATURES' = 'TABLE';
  98. PRECED.'TEMPERATURES'. 0 = TH_COUR;
  99. 'FINSI';
  100. CONTI.'TEMPERATURES' = 'CHAN' 'ATTRIBUT' TH_COUR 'NATURE' 'DIFFUS';
  101. *
  102. * - Initialisation des reactions
  103. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS_THERMIQUES')) ;
  104. 'SI' WTAB.'CHAR_BLOT' ;
  105. BLOTHER = 'TIRE' WTAB.'BLOCAGES_THERMIQUES' 'BLOT' TEMP0 ;
  106. 'SINON' ;
  107. BLOTHER = WTAB.'BLOCAGES_THERMIQUES' ;
  108. 'FINSI' ;
  109. QTH_COUR = 'REAC' BLOTHER CONTI.'TEMPERATURES' ;
  110. PRECED.'REACTIONS_THERMIQUES' = 'TABLE' ;
  111. PRECED.'REACTIONS_THERMIQUES' . 0 = QTH_COUR ;
  112. 'FINS' ;
  113. conti.'REACTIONS_THERMIQUES' = PRECED.'REACTIONS_THERMIQUES'. NSOR ;
  114. *
  115. * Indice 'TEMPERATURES_APPORT' de la table de sortie :
  116. 'SI' WTAB.'CHAR_MODE' ;
  117. 'SI' ('NON' ('EXIS' PRECED 'TEMPERATURES_APPORT')) ;
  118. PRECED.'TEMPERATURES_APPORT' = TABLE ;
  119. NBT1 = 'DIME' PRECED.'TEMPERATURES' ;
  120. 'REPE' BTAPP1 NBT1 ;
  121. IBT1 = &BTAPP1 - 1 ;
  122. PRECED.'TEMPERATURES_APPORT' . IBT1 = PRECED.'TEMPERATURES' . IBT1 ;
  123. 'FIN' BTAPP1 ;
  124. 'FINSI' ;
  125. conti.'TEMPERATURES_APPORT' = PRECED.'TEMPERATURES_APPORT'. NSOR ;
  126. 'FINSI' ;
  127. *
  128. 'FINS';
  129. ************************************************************************
  130. * Initialisations pour la MECANIQUE
  131. ************************************************************************
  132. 'SI' WTAB.'FOR_MECA' ;
  133. MO_TOT = WTAB.'MO_TOT';
  134. *
  135. * - Initialisation du deplacement
  136. 'SI' ('NON' ('EXIS' PRECED 'DEPLACEMENTS'));
  137. DDDD = 'ZERO' MO_TOT 'DEPLACEM';
  138. DEP_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  139. 'DETRUIRE' DDDD;
  140. PRECED.'DEPLACEMENTS' = 'TABLE';
  141. PRECED.'DEPLACEMENTS'. 0 = DEP_COUR;
  142. 'FINSI';
  143. conti.'DEPLACEMENTS' = PRECED.'DEPLACEMENTS'. NSOR;
  144. *
  145. * - Initialisation des contraintes
  146. 'SI' ('NON' ('EXIS' PRECED 'CONTRAINTES'));
  147. SIG_COUR = 'ZERO' MO_TOT 'CONTRAIN';
  148. PRECED.'CONTRAINTES' = 'TABLE';
  149. PRECED.'CONTRAINTES'. 0 = SIG_COUR;
  150. 'SINON';
  151. SIG_COUR = PRECED.'CONTRAINTES'. NSOR ;
  152. 'SI' WTAB.'GRANDS_DEPLACEMENTS' ;
  153. SIG_COUR = 'CAPI' WTAB.'HYPOTHESE_DEFORMATIONS' SIG_COUR MO_TOT conti.'DEPLACEMENTS' ;
  154. 'FINSI';
  155. 'FINSI';
  156. conti.'CONTRAINTES' = SIG_COUR ;
  157. *
  158. * - Initialisation des vitesses
  159. 'SI' (WTAB.'DYNAMIQUE' 'OU' ('EXISTE' WTAB 'MOD_LIA'));
  160. 'SI' ('NON' ('EXISTE' PRECED 'VITESSES')) ;
  161. DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS';
  162. VIT_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  163. 'DETRUIRE' DDDD;
  164. PRECED.'VITESSES' = 'TABLE';
  165. PRECED.'VITESSES'. 0 = VIT_COUR;
  166. 'FINSI';
  167. conti.'VITESSES' = PRECED.'VITESSES'. NSOR;
  168. 'FINSI';
  169. *
  170. * - Initialisation des accelerations
  171. 'SI' WTAB.'DYNAMIQUE';
  172. 'SI' ('NON' ('EXISTE' PRECED 'ACCELERATIONS')) ;
  173. DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS';
  174. ACC_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  175. 'DETRUIRE' DDDD;
  176. PRECED.'ACCELERATIONS' = 'TABLE';
  177. PRECED.'ACCELERATIONS'. 0 = ACC_COUR;
  178. 'FINSI';
  179. conti.'ACCELERATIONS' = PRECED.'ACCELERATIONS'. NSOR;
  180. 'FINSI';
  181. *
  182. * - Initialisation des reactions
  183. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS'));
  184. 'SI' WTAB.'CHAR_BLOM' ;
  185. BLOMECA = 'TIRE' WTAB.'BLOCAGES_MECANIQUES' 'BLOM' TEMP0 ;
  186. 'SINON' ;
  187. BLOMECA = WTAB.'BLOCAGES_MECANIQUES' ;
  188. 'FINSI' ;
  189. REA_COUR = 'REAC' BLOMECA conti.'DEPLACEMENTS';
  190. PRECED.'REACTIONS' = 'TABLE' ;
  191. PRECED.'REACTIONS' . 0 = REA_COUR;
  192. 'FINSI';
  193. conti.'REACTIONS' = PRECED.'REACTIONS'. NSOR;
  194. *
  195. 'SI' WTAB.'IPLAVI';
  196. *
  197. * - Initialisation des variables internes
  198. 'SI' ('NON' ('EXIS' PRECED 'VARIABLES_INTERNES')) ;
  199. VAR_COUR = 'ZERO' MO_TOT 'VARINTER';
  200. PRECED.'VARIABLES_INTERNES' = 'TABLE';
  201. PRECED.'VARIABLES_INTERNES'. 0 = VAR_COUR;
  202. 'FINSI';
  203. conti.'VARIABLES_INTERNES' = PRECED.'VARIABLES_INTERNES'. NSOR ;
  204. *
  205. * - Initialisation des deformations inelastiques
  206. 'SI' ('EXISTE' PRECED 'DEFORMATIONS_INELASTIQUES');
  207. DEI_COUR = PRECED.'DEFORMATIONS_INELASTIQUES' . NSOR;
  208. 'SINON';
  209. 'SI' inouv ;
  210. DEI_COUR = 'ZERO' MO_TOT 'DEFINELA';
  211. 'SI' ('EXIS' TABSAUV 'DEFIN');
  212. 'SI' TABSAUV.'DEFIN';
  213. PRECED.'DEFORMATIONS_INELASTIQUES' = 'TABLE';
  214. PRECED.'DEFORMATIONS_INELASTIQUES'. 0 = DEI_COUR;
  215. 'FINSI';
  216. 'FINSI';
  217. 'SINON' ;
  218. DEI_COUR = conti.'DEFORMATIONS_INELASTIQUES' ;
  219. 'FINSI' ;
  220. 'FINSI';
  221. conti.'DEFORMATIONS_INELASTIQUES' = DEI_COUR;
  222. *
  223. 'FINSI';
  224. *
  225. * - Initialisation des deformations totales
  226. 'SI' ('EXISTE' PRECED 'DEFORMATIONS');
  227. DEF_COUR = PRECED.'DEFORMATIONS'. NSOR ;
  228. 'SI' WTAB.'GRANDS_DEPLACEMENTS' ;
  229. DEF_COUR = 'CAPI' WTAB.'HYPOTHESE_DEFORMATIONS' DEF_COUR MO_TOT conti.'DEPLACEMENTS' ;
  230. 'FINSI';
  231. 'SINON';
  232. 'SI' inouv ;
  233. DEF_COUR = 'ZERO' MO_TOT 'DEFORMATIONS';
  234. 'SI' ('EXIS' TABSAUV 'DEFTO');
  235. 'SI' TABSAUV.'DEFTO';
  236. PRECED.'DEFORMATIONS' = 'TABLE';
  237. PRECED.'DEFORMATIONS' . 0 = DEF_COUR;
  238. 'FINSI';
  239. 'FINSI';
  240. 'SINON' ;
  241. DEF_COUR = conti.'DEFORMATIONS' ;
  242. 'FINSI' ;
  243. 'FINSI';
  244. conti.'DEFORMATIONS' = DEF_COUR;
  245. *
  246. * - Initialisation des deformations apport
  247. 'SI' ('EXISTE' PRECED 'DEFORMATIONS_APPORT');
  248. DEF_APPO = PRECED.'DEFORMATIONS_APPORT'. NSOR ;
  249. 'SINON';
  250. 'SI' inouv;
  251. DEF_APPO = 'ZERO' MO_TOT 'DEFORMATIONS';
  252. 'SI' ('EXIS' TABSAUV 'DEFAP');
  253. 'SI' TABSAUV.'DEFAP';
  254. PRECED.'DEFORMATIONS_APPORT' = 'TABLE';
  255. PRECED.'DEFORMATIONS_APPORT' . 0 = DEF_APPO;
  256. 'FINSI';
  257. 'FINSI' ;
  258. 'SINON' ;
  259. DEF_APPO = conti.'DEFORMATIONS_APPORT' ;
  260. 'FINSI';
  261. 'FINSI';
  262. conti.'DEFORMATIONS_APPORT' = DEF_APPO;
  263.  
  264. * - Initialisation pour un tracking
  265. 'SI' ('EXIS' WTAB.'MODELE' 'MATE' 'EFEM');
  266. 'SI' ('EXIS' PRECED 'TRACKING');
  267. 'SI' PRECED.'TRACKING' ;
  268. 'SI' ('NON' ('EXIS' PRECED 'PROOTS'));
  269. PRECED.'PROOTS' = 'TABLE';
  270. PRECED.'PROOTS'. 0 = 0.;
  271. 'FINSI';
  272. * 'SI' inouv; conti.'PROOTS' = PRECED.'PROOTS'.NSOR;'FINS';
  273. 'SI' ('NON' ('EXIS' PRECED 'EROOTS'));
  274. PRECED.'EROOTS' = 'TABLE';
  275. PRECED.'EROOTS'. 0 = 0.;
  276. 'FINSI';
  277. * 'SI' inouv; conti.'PROOTS' = PRECED.'PROOTS'.NSOR;'FINS';
  278. 'SI' ('NON' ('EXIS' PRECED 'NROOTS'));
  279. PRECED.'NROOTS' = 0;
  280. 'FINSI';
  281. * 'SI' inouv; conti.'EROOTS' = PRECED.'EROOTS'.NSOR;'FINS';
  282. 'SI' ('NON' ('EXIS' PRECED 'TABISO'));
  283. PRECED.'TABISO' = 'TABLE';
  284. PRECED.'TABISO'. 0 = 0.;
  285. 'FINSI';
  286. * 'SI' inouv; conti.'TABISO' = PRECED.'TABISO'.NSOR;'FINS';
  287. 'SI' ('NON' ('EXIS' PRECED 'RESTH'));
  288. PRECED.'RESTH' = 'TABLE';
  289. PRECED.'RESTH'. 0 = 0.;
  290. 'FINSI';
  291. * 'SI' inouv; conti.'RESTH' = PRECED.'RESTH'.NSOR;'FINS';
  292. 'SI' ('NON' ('EXIS' PRECED 'ISOTEST'));
  293. PRECED.'ISOTEST' = 'TABLE';
  294. PRECED.'ISOTEST'. 0 = 0.;
  295. 'FINSI';
  296. * 'SI' inouv; conti.'ISOTEST' = PRECED.'ISOTEST'.NSOR;'FINS';
  297. 'SI' ('NON' ('EXIS' PRECED 'ISOTOT'));
  298. PRECED.'ISOTOT' = 'TABLE';
  299. PRECED.'ISOTOT'. 0 = 0.;
  300. 'FINSI';
  301. * 'SI' inouv; conti.'ISOTOT' = PRECED.'ISOTOT'.NSOR;'FINS';
  302. 'SI' ('NON' ('EXIS' PRECED 'MESH_ISO'));
  303. PRECED.'MESH_ISO' = 'TABLE';
  304. PRECED.'MESH_ISO'. 0 = 0.;
  305. 'FINSI';
  306. * 'SI' inouv; conti.'MESH_ISO' = PRECED.'MESH_ISO'.NSOR;'FINS';
  307. 'SI' ('NON' ('EXIS' PRECED 'MESH'));
  308. PRECED.'MESH' = 'TABLE';
  309. PRECED.'MESH'. 0 = 0.;
  310. 'FINSI';
  311. * 'SI' inouv; conti.'MESH' = PRECED.'MESH'.NSOR;'FINS';
  312. 'FINSI';
  313. 'FINSI';
  314. 'FINSI';
  315. *
  316. * - Initialisation pour le non-local HELM
  317. 'SI' WTAB.'NLOC' ;
  318. 'SI' ('EGA' WTAB.'NON_LOCAL' 'HELM');
  319. WTAB.'HELMHOLTZ' = 'TABLE' ;
  320. MOLVIA = 'EXTR' WTAB.'NLOC_MODL' 'NLOC' ;
  321. NHELM = 'DIME' MOLVIA ;
  322. WTAB.'HELMHOLTZ' . 'N_VARI_NL'= NHELM ;
  323. GEOHELM = 'EXTR' WTAB.'NLOC_MODL' 'MAIL' ;
  324. MAHELM = 'REDU' WTAB.'CARACTERISTIQUES' WTAB.'NLOC_MODL' ;
  325. * liste des parametres variables
  326. DDVA = 'EXTR' MAHELM 'COVA' ;
  327. WTAB.'HELMHOLTZ' . 'NLOC_COVA'= DDVA ;
  328. 'REPE' BH NHELM ;
  329. WTAB.'HELMHOLTZ'. &BH = 'TABLE' ;
  330. LEMO = 'EXTR' MOLVIA &BH ;
  331. chaih1=chai 'pas_init: Helmholtz pour :' LEMO;
  332. * mess chaih1;
  333. WTAB.'HELMHOLTZ'. &BH. 'NOM' = LEMO ;
  334. 'SI' ('EXIS' DDVA LEMO) ;
  335. WTAB.'HELMHOLTZ'. &BH. 'CTE' = FAUX ;
  336. 'SINON' ;
  337. WTAB.'HELMHOLTZ'. &BH. 'CTE' = VRAI ;
  338. 'FINSI' ;
  339. LEMOD = 'MODE' GEOHELM 'THERMIQUE' 'ANISOTROPE' ;
  340. WTAB.'HELMHOLTZ'. &BH . 'H_MODELE' = LEMOD ;
  341. * non linearite par defaut des helmholtz (sellier )
  342. WTAB.'HELMHOLTZ'. &BH . 'LINEAIRE' = FAUX ;
  343. 'FIN' BH ;
  344. 'FINSI';
  345. 'FINSI';
  346. *
  347. * En cas de chargement de deformations initialisation
  348. 'SI' WTAB.'CHAR_DEFI';
  349. WTAB.'DEFOR1' = 'TIRE' WTAB.'CHARGEMENT' 'DEFI' TEMP0 ;
  350. 'FINSI';
  351. *
  352. * En presence de THERMIQUE (CHARGEMENT ou FORMULATION) initialisation de TEMPERATURE_REFERENCE
  353. 'SI' WTAB.'ITHER' ;
  354. *
  355. * En cas de chargement thermique initialisation
  356. 'SI' WTAB.'CHAR_THE';
  357. WTAB.'TET1' = 'TIRE' WTAB.'CHARGEMENT' 'T' TEMP0;
  358. 'SINON';
  359. WTAB.'TET1' = CONTI.'TEMPERATURES' ;
  360. 'FINSI';
  361. *
  362. * On prend la temperature de reference dans le MATERIAU
  363. 'SI' ('EXIS' WTAB.'MA_TOT' 'TREF');
  364. TREF = 'ZERO' WTAB.'MO_TOT' 'TEMPERAT' ;
  365. TSZ = 'EXTR' WTAB.'MO_TOT' 'ZONE' ;
  366. ISZ = 1 ;
  367. 'REPE' BSZ (('DIME' TSZ) / 2) ;
  368. MOSZI = TSZ . ISZ ;
  369. MOTSTEMP = 'EXTR' MOSZI 'TEMP' ;
  370. 'REPE' BMO ('DIME' MOTSTEMP) ;
  371. MOTEMPI = 'EXTR' MOTSTEMP &BMO ;
  372. TREFI = 'CHAN' 'STRESSES' MOSZI ('EXCO' ('REDU' WTAB.'MA_TOT' MOSZI) 'TREF' MOTEMPI) ;
  373. TREF = TREF + TREFI ;
  374. 'FIN' BMO ;
  375. ISZ = ISZ + 2 ;
  376. 'FIN' BSZ ;
  377. WTAB.'TEMPERATURE_REFERENCE' = 'CHAN' 'TYPE' TREF 'TEMPERATURES' ;
  378. 'SINO';
  379. ERREUR 77 'AVEC' ('MOT' 'TREF') ('MOT' 'de MATERIAU');
  380. 'FINS';
  381. *
  382. *** Desormais initialise dans PASAPAS, au meme endroit que ETREF
  383. *** 'SI' ('EGA' WTAB.'ETHER1' 'INCONNU');
  384. *** On initialise les deformations thermiques a ZERO
  385. *** WTAB.'ETHER1' = 'ZERO' MO_TOT 'DEFORMATIONS' ;
  386. *** CB215821 : Pour une reprise propre, il faudrait mettre DEFORMATION_THERMIQUE dans CONTI
  387. *** 'FINS' ;
  388. 'FINS';
  389. 'FINS';
  390. ************************************************************************
  391. * Initialisation des differentes configurations (reference, debut pas)
  392. ************************************************************************
  393. WTAB.'FOR0' = 'FORM' ;
  394. WTAB.'GE0_DEB' = WTAB.'FOR0';
  395. 'SI' WTAB.'FOR_MECA' ;
  396. 'SI'(WTAB.'GRANDS_DEPLACEMENTS' 'OU' WTAB.'FEFP_FORMULATION');
  397. WTAB.'GE0_DEB' = 'FORM' conti.'DEPLACEMENTS';
  398. 'FINS';
  399. 'FORM' WTAB.'FOR0' ;
  400. 'FINS';
  401. ************************************************************************
  402. * Initialisations pour la MECANIQUE DES FLUIDES
  403. ************************************************************************
  404. 'SI' WTAB.'NVSTNL' ;
  405. 'SI' ('NON' ('EXISTE' PRECED 'VITESSES_FLUIDE')) ;
  406. DDDD = 'ZERO' WTAB.'MOD_NSL' 'DEPLACEMENTS' ;
  407. VFL_COUR = 'CHANGER' 'CHPO' WTAB.'MOD_NSL' DDDD ;
  408. 'DETRUIRE' DDDD ;
  409. PRECED.'VITESSES_FLUIDE' = 'TABLE' ;
  410. PRECED.'VITESSES_FLUIDE'. 0 = VFL_COUR ;
  411. 'FINSI' ;
  412. conti.'VITESSES_FLUIDE' = PRECED.'VITESSES_FLUIDE'. NSOR ;
  413. conti.'VITESSES_FLUIDE_0' = PRECED.'VITESSES_FLUIDE'. NSOR;
  414. 'FINSI' ;
  415. ************************************************************************
  416. * Initialisations pour la METALLURGIE (T.L. en juin 2018)
  417. ************************************************************************
  418. 'SI' WTAB.'FOR_METALLU' ;
  419. *
  420. * - Initialisation des proportions de phase
  421. 'SI' ('NON' ('EXIS' PRECED 'PROPORTIONS_PHASES')) ;
  422. * Valeurs par defaut : ZERO pour toutes les phases sauf la premiere : 1.D0
  423. CHMET0 ='ZERO' WTAB.'MOD_MET' 'VARINTER';
  424. LISCO ='EXTR' WTAB.'MOD_MET' 'VARI';
  425. CMP1 ='EXCO' CHMET0 ('EXTR' LISCO 1) ('EXTR' LISCO 1);
  426. CHMET0 = CHMET0 + (CMP1 + 1.D0);
  427. PRECED.'PROPORTIONS_PHASES' = 'TABLE' ;
  428. PRECED.'PROPORTIONS_PHASES'. 0 = CHMET0;
  429. 'FINS' ;
  430. conti.'PROPORTIONS_PHASES' = PRECED.'PROPORTIONS_PHASES'. NSOR ;
  431. CHTPOI0 = ('ZERO' WTAB.'MOD_MET' 'TEMPERATURES') 'NOMC' 'TPOI' ;
  432. CHTPOI0 = 'CHAN' 'CHPO' WTAB.'MOD_MET' CHTPOI0 ;
  433. WTAB . 'T_POINT0' = CHTPOI0 ;
  434. * 'SI' ('EXIS' PRECED 'T_POINT') ;
  435. * TAB_TPOI = 'INDE' (PRECED.'T_POINT') ;
  436. * CHTPOI0 = PRECED.'T_POINT'.NSOR ;
  437. * 'SINO' ;
  438. * CHTPOI0 = ('ZERO' WTAB.'MOD_MET' 'TEMPERATURES') 'NOMC' 'TPOI' ;
  439. * CHTPOI0 = 'CHAN' 'CHPO' WTAB.'MOD_MET' CHTPOI0 ;
  440. * PRECED.'T_POINT' = 'TABLE' ;
  441. * PRECED.'T_POINT' . 0 = CHTPOI0 ;
  442. * 'FINS' ;
  443. * conti . 'T_POINT' = CHTPOI0 ;
  444. 'FINSI' ;
  445. ************************************************************************
  446. * Initialisations pour la DIFFUSION
  447. ************************************************************************
  448. 'SI' WTAB.'FOR_DIFF' ;
  449. *
  450. * - Initialisation des concentrations
  451. 'SI' ('NON' ('EXIS' PRECED 'CONCENTRATIONS')) ;
  452. CHCO0 = 'ZERO' WTAB. 'MOD_DIF' 'DEPLACEMENTS' ;
  453. CHCO0 = 'CHAN' 'CHPO' WTAB. 'MOD_DIF' CHCO0 ;
  454. CHCO0 = 'CHAN' 'ATTRIBUT' CHCO0 'NATURE' 'DIFFUS';
  455. PRECED.'CONCENTRATIONS' = 'TABLE' ;
  456. PRECED.'CONCENTRATIONS'. 0 = CHCO0 ;
  457. 'FINS' ;
  458. CONTI.'CONCENTRATIONS' = PRECED.'CONCENTRATIONS'. NSOR ;
  459. *
  460. * - Initialisation des reactions
  461. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS_DIFFUSIONS')) ;
  462. 'SI' WTAB.'CHAR_BLOD' ;
  463. BLODIFF = 'TIRE' WTAB.'BLOCAGES_DIFFUSIONS' 'BLOD' TEMP0 ;
  464. 'SINON' ;
  465. BLODIFF = WTAB.'BLOCAGES_DIFFUSIONS' ;
  466. 'FINSI' ;
  467. QDI_COUR = 'REAC' BLODIFF CONTI.'CONCENTRATIONS' ;
  468. PRECED.'REACTIONS_DIFFUSIONS' = 'TABLE' ;
  469. PRECED.'REACTIONS_DIFFUSIONS' . 0 = QDI_COUR ;
  470. 'FINS' ;
  471. CONTI.'REACTIONS_DIFFUSIONS' = PRECED.'REACTIONS_DIFFUSIONS'. NSOR ;
  472. 'FINS' ;
  473. ************************************************************************
  474. * Initialisations pour le CHANGEMENT DE PHASE (CB@!%*@! 2019)
  475. *-----------Doit etre place en dernier car peut necessiter les autres
  476. *-----------champs
  477. ************************************************************************
  478. 'SI' WTAB.'PHASE';
  479. *
  480. MO_COVA ='EXTR' WTAB.'MAT_PHA' 'COVA';
  481. 'SI' (('DIME' MO_COVA) > 0);
  482. CHAI1 ='CHAI' ' Le materiau du modele CHANGEMENT_PHASE ne peut pas varier';
  483. 'ERRE' CHAI1 ;
  484. 'FINS';
  485.  
  486. 'SI' ( 'EXISTE' PRECED 'PROPORTIONS_PHASE') ;
  487. CHPHA0 ='REDU' WTAB.'MOD_PHA' PRECED.'PROPORTIONS_PHASE'.NSOR ;
  488. 'SINON';
  489. * On met un etat qui a du sens physique pour la proportion de phases
  490. TABPHA ='EXTR' WTAB.'MOD_PHA' 'ZONE';
  491. CHPHA0 ='VIDE' 'MCHAML';
  492. 'REPE' SURi (('DIME' TABPHA) / 2);
  493. * Boucle sur les modeles CHANGEMENT_PHASE
  494. MODEi = TABPHA.((&SURi-1)*2 + 1) ;
  495. MATEi =('REDU' MODEi WTAB.'MAT_PHA' ) 'EXCO' 'PRIM';
  496. LMOPRIM='EXTR' MODEi 'DEPL';
  497. MOPRIM ='EXTR' LMOPRIM 1;
  498. 'SI' ('EXIS' WTAB.'CHARGEMENT' MOPRIM);
  499. * On regarde dans le CHARGEMENT si la PRIMALE existe
  500. CHPRIM ='TIRE' WTAB.'CHARGEMENT' MOPRIM TEMP0;
  501. 'SI' ('EXIS' ('EXTR' CHPRIM 'COMP') MOPRIM);
  502. CHPRIM='CHAN' 'CHAM' CHPRIM MODEi 'NOEUD';
  503. CHPRIM= CHPRIM 'NOMC' 'PRIM';
  504. CHPHAi=('MASQ' (MATEi-CHPRIM) 'EGINFE' 0.D0) 'NOMC' 'PPHA';
  505. CHPHA0= CHPHAi 'ET' CHPHA0;
  506. 'ITER' SURi ;
  507. 'FINS';
  508. 'FINS';
  509.  
  510. * On regarde dans les indices connus de la TABLE PRECED
  511. 'SI' ('EXIS' PRECED 'TEMPERATURES');
  512. CHPRIM = TH_COUR;
  513. 'SI' ('EXIS' ('EXTR' CHPRIM 'COMP') MOPRIM);
  514. CHPRIM='CHAN' 'CHAM' CHPRIM MODEi 'NOEUD';
  515. CHPRIM= CHPRIM 'NOMC' 'PRIM';
  516. CHPHAi=('MASQ' (MATEi-CHPRIM) 'EGINFE' 0.D0) 'NOMC' 'PPHA';
  517. CHPHA0= CHPHAi 'ET' CHPHA0;
  518. 'ITER' SURi ;
  519. 'FINS';
  520. 'FINS';
  521.  
  522. 'SI' ('EXIS' PRECED 'CONCENTRATIONS');
  523. CHPRIM = CHCO0;
  524. 'SI' ('EXIS' ('EXTR' CHPRIM 'COMP') MOPRIM);
  525. CHPRIM='CHAN' 'CHAM' CHPRIM MODEi 'NOEUD';
  526. CHPRIM= CHPRIM 'NOMC' 'PRIM';
  527. CHPHAi=('MASQ' (MATEi-CHPRIM) 'EGINFE' 0.D0) 'NOMC' 'PPHA';
  528. CHPHA0= CHPHAi 'ET' CHPHA0;
  529. 'ITER' SURi ;
  530. 'FINS';
  531. 'FINS';
  532.  
  533. * Si on arrive ici c'est qu'on n'a pas trouve le champ primal : on met zero
  534. CHPHAi='ZERO' MODEi 'VARINTER';
  535. CHPHA0= CHPHAi 'ET' CHPHA0;
  536. 'FIN' SURi;
  537.  
  538. PRECED.'PROPORTIONS_PHASE' = 'TABLE' ;
  539. PRECED.'PROPORTIONS_PHASE'. 0 = CHPHA0;
  540. 'FINSI';
  541. conti.'PROPORTIONS_PHASE' = CHPHA0;
  542. WTAB.'BLO_PHASE'='PMAT' WTAB.'MOD_PHA' ;
  543. 'FINSI';
  544. *
  545. 'SI' WTAB.'SOLUBILITE';
  546. WTAB.'BLO_SOL' = 'PMAT' WTAB.'MOD_SOL' ;
  547. 'FINSI';
  548. *
  549. PRECED.'ESTIMATION' = 'COPIER' conti;
  550. 'FINP';
  551.  
  552.  
  553.  
  554.  
  555.  

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