Télécharger pas_init.procedur

Retour à la liste

Numérotation des lignes :

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

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