Télécharger pas_init.procedur

Retour à la liste

Numérotation des lignes :

  1. * PAS_INIT PROCEDUR BR232186 16/12/05 21:40:16 9238
  2. 'DEBPROC' PAS_INIT PRECED*'TABLE' ;
  3. *cette procedure cree l'etat initial des inconnues , le met dans conti.
  4. * initialise au passage les tables de sorties en mettant l'etat
  5. * initial sous l'indice 0
  6. * on fait complique car on veut pouvoir continuer des
  7. * calculs sauvegardes avant que la table de continuation n'existe
  8. WTAB =PRECED.'WTABLE' ;
  9. TABSAUV=WTAB .'TABSAUV';
  10. 'SI' ( 'EXIS' PRECED 'CONTINUATION');
  11. conti=PRECED.'CONTINUATION';
  12. inouv=faux;
  13. WTAB.'TEMPS0'=conti.'TEMPS';
  14. 'SINON';
  15. * il suffit d'initialiser a zero ou de reprendre ce qui est donne
  16. * par l'utilisateur ( vitesses initiales ,temperatuires initiales etc..
  17. conti='TABL';
  18. inouv=vrai;
  19. PRECED.'CONTINUATION'= CONTI;
  20. 'FINSI';
  21. *---------- initialisation du temps et table sortie temps
  22. 'SI' ('EXIS' PRECED TEMPS) ;
  23. NSOR= ('DIME' (PRECED . 'TEMPS' )) - 1;
  24. WTAB.'NSOR'=NSOR;
  25. 'SI' ('EXIS' conti 'TEMPS');
  26. WTAB.'TEMPS0'=conti.'TEMPS';
  27. TEMP0=WTAB.'TEMPS0';
  28. 'SINON';
  29. TEMP0=PRECED.'TEMPS' . NSOR;
  30. WTAB.'TEMPS0'=TEMP0;
  31. 'FINSI';
  32. 'SINON';
  33. NSOR= 0; PRECED.'TEMPS'='TABLE';
  34. 'SI' WTAB.'FREQUENTIEL' ;
  35. TEMP0 = WTAB.'TEMPS0' ;
  36. 'SINON' ;
  37. TEMP0 = 0.D0 ;
  38. 'FINSI' ;
  39. PRECED.'TEMPS' . 0 = TEMP0 ;
  40. WTAB.'TEMPS0'=TEMP0;
  41. WTAB.'NSOR'=NSOR;
  42. 'FINSI';
  43. conti.'TEMPS'=WTAB.'TEMPS0';
  44.  
  45. ************************************************************************
  46. *-------- pour la mecanique
  47. ************************************************************************
  48. 'SI' WTAB.'FOR_MECA' ;
  49. MO_TOT=WTAB.'MO_TOT';
  50. *---------- initialisation du deplacement et table sortie
  51. 'SI' ('NON' ('EXIS' PRECED 'DEPLACEMENTS' ));
  52. DDDD = 'ZERO' MO_TOT 'DEPLACEM';
  53. DEP_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  54. 'DETRUIRE' DDDD;
  55. PRECED.'DEPLACEMENTS' = 'TABLE';
  56. PRECED.'DEPLACEMENTS'. 0 = DEP_COUR;
  57. 'FINSI';
  58. * WTAB.'FOR'= 'FORM' PRECED.'DEPLACEMENTS'. NSOR ;
  59. 'FORM' WTAB.'FOR0';
  60. 'SI' inouv;
  61. conti.'DEPLACEMENTS'= PRECED. 'DEPLACEMENTS' . NSOR;
  62. * conti.'GEODEB'=WTAB.'FOR';conti.'GEOFIN'=conti.'GEODEB';
  63. 'FINS';
  64. *--------- initialisation des contraintes et table de sortie
  65. 'SI' ('NON' ('EXIS' PRECED 'CONTRAINTES'));
  66. SIG_COUR = 'ZERO' MO_TOT 'CONTRAIN';
  67. PRECED.'CONTRAINTES' = 'TABLE';
  68. PRECED.'CONTRAINTES'. 0 = SIG_COUR;
  69. 'FINSI';
  70. 'SI' inouv; conti.'CONTRAINTES' = PRECED.'CONTRAINTES'.NSOR;'FINS';
  71. *--------- initialisation des vitesses et table de sortie
  72. 'SI' (WTAB.'DYNAMIQUE' 'OU' ('EXISTE' WTAB 'MOD_LIA'));
  73. 'SI' ('EXISTE' PRECED 'VITESSES') ;
  74. TABINT=INDEX (PRECED.'VITESSES');
  75. IND0=TABINT.('DIME' TABINT);
  76. VIT_COUR=PRECED.'VITESSES' . IND0;
  77. 'SINON';
  78. DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS';
  79. VIT_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  80. 'DETRUIRE' DDDD;
  81. PRECED.'VITESSES'=TABLE;
  82. PRECED.'VITESSES'. 0 = VIT_COUR;
  83. 'FINSI';
  84. 'SI' inouv; conti.'VITESSES'=VIT_COUR;'FINS';
  85. 'FINSI';
  86. 'SI' WTAB.'DYNAMIQUE';
  87. 'SI' ('EXISTE' PRECED 'ACCELERATIONS') ;
  88. TABINT=INDEX (PRECED.'ACCELERATIONS') ;
  89. IND0=TABINT.('DIME' TABINT);
  90. ACC_COUR=PRECED.'ACCELERATIONS' . IND0;
  91. 'SINON';
  92. DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS';
  93. ACC_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD;
  94. 'DETRUIRE' DDDD;
  95. PRECED.'ACCELERATIONS'=TABLE;
  96. PRECED.'ACCELERATIONS'. 0 = ACC_COUR;
  97. 'FINSI';
  98. 'SI' inouv; conti.'ACCELERATIONS'=ACC_COUR;'FINS';
  99. 'FINSI';
  100. *---------- REACTIONS et table de sortie
  101. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS'));
  102. 'SI' ('EXIS' PRECED 'BLOCAGES_MECANIQUES');
  103. REA_COUR='REAC' PRECED.'BLOCAGES_MECANIQUES' conti.'DEPLACEMENTS';
  104. 'SINON' ;
  105. REA_COUR = 'CHAN' 'CHPO' MO_TOT ('ZERO' MO_TOT 'FORCES') ;
  106. 'FINSI' ;
  107. PRECED.'REACTIONS' = TABLE;
  108. PRECED.'REACTIONS' . 0 = REA_COUR;
  109. 'FINSI';
  110. 'SI' inouv; conti.'REACTIONS'=PRECED.'REACTIONS'.NSOR;'FINS';
  111. *------------ variables_internes et table de sortie
  112. 'SI' WTAB.'IPLAVI';
  113. 'SI' ('EXIS' PRECED 'VARIABLES_INTERNES' );
  114. TABINT=INDEX (PRECED.'VARIABLES_INTERNES');
  115. IND0=TABINT.('DIME' TABINT) ;
  116. VAR_COUR=PRECED.'VARIABLES_INTERNES' . IND0;
  117. 'SINON';
  118. VAR_COUR = 'ZERO' MO_TOT 'VARINTER';
  119. PRECED.'VARIABLES_INTERNES' = 'TABLE';
  120. PRECED.'VARIABLES_INTERNES'. 0 = VAR_COUR;
  121. 'FINSI';
  122. 'SI' inouv; conti.'VARIABLES_INTERNES'=VAR_COUR;'FINS';
  123. 'FINSI';
  124. *--------- initialisation des tables pour un tracking
  125. 'SI' ('EXIS' PRECED.'MODELE' 'MATE' 'EFEM');
  126. 'SI' ('EXIS' PRECED 'TRACKING');
  127. 'SI' (PRECED.'TRACKING');
  128. 'SI' ('NON' ('EXIS' PRECED 'PROOTS'));
  129. PRECED.'PROOTS' = 'TABLE';
  130. PRECED.'PROOTS'. 0 = 0.;
  131. 'FINSI';
  132. * 'SI' inouv; conti.'PROOTS' = PRECED.'PROOTS'.NSOR;'FINS';
  133. 'SI' ('NON' ('EXIS' PRECED 'EROOTS'));
  134. PRECED.'EROOTS' = 'TABLE';
  135. PRECED.'EROOTS'. 0 = 0.;
  136. 'FINSI';
  137. * 'SI' inouv; conti.'PROOTS' = PRECED.'PROOTS'.NSOR;'FINS';
  138. 'SI' ('NON' ('EXIS' PRECED 'NROOTS'));
  139. PRECED.'NROOTS' = 0;
  140. 'FINSI';
  141. * 'SI' inouv; conti.'EROOTS' = PRECED.'EROOTS'.NSOR;'FINS';
  142. 'SI' ('NON' ('EXIS' PRECED 'TABISO'));
  143. PRECED.'TABISO' = 'TABLE';
  144. PRECED.'TABISO'. 0 = 0.;
  145. 'FINSI';
  146. * 'SI' inouv; conti.'TABISO' = PRECED.'TABISO'.NSOR;'FINS';
  147. 'SI' ('NON' ('EXIS' PRECED 'RESTH'));
  148. PRECED.'RESTH' = 'TABLE';
  149. PRECED.'RESTH'. 0 = 0.;
  150. 'FINSI';
  151. * 'SI' inouv; conti.'RESTH' = PRECED.'RESTH'.NSOR;'FINS';
  152. 'SI' ('NON' ('EXIS' PRECED 'ISOTEST'));
  153. PRECED.'ISOTEST' = 'TABLE';
  154. PRECED.'ISOTEST'. 0 = 0.;
  155. 'FINSI';
  156. * 'SI' inouv; conti.'ISOTEST' = PRECED.'ISOTEST'.NSOR;'FINS';
  157. 'SI' ('NON' ('EXIS' PRECED 'ISOTOT'));
  158. PRECED.'ISOTOT' = 'TABLE';
  159. PRECED.'ISOTOT'. 0 = 0.;
  160. 'FINSI';
  161. * 'SI' inouv; conti.'ISOTOT' = PRECED.'ISOTOT'.NSOR;'FINS';
  162. 'SI' ('NON' ('EXIS' PRECED 'MESH_ISO'));
  163. PRECED.'MESH_ISO' = 'TABLE';
  164. PRECED.'MESH_ISO'. 0 = 0.;
  165. 'FINSI';
  166. * 'SI' inouv; conti.'MESH_ISO' = PRECED.'MESH_ISO'.NSOR;'FINS';
  167. 'SI' ('NON' ('EXIS' PRECED 'MESH'));
  168. PRECED.'MESH' = 'TABLE';
  169. PRECED.'MESH'. 0 = 0.;
  170. 'FINSI';
  171. * 'SI' inouv; conti.'MESH' = PRECED.'MESH'.NSOR;'FINS';
  172. 'FINSI';
  173. 'FINSI';
  174. 'FINSI';
  175. *---------- deformations inelastiques et table de sortie
  176. 'SI' ('EXISTE' PRECED 'DEFORMATIONS_INELASTIQUES');
  177. TABINT=INDEX (PRECED.'DEFORMATIONS_INELASTIQUES');
  178. IND0=TABINT.('DIME' TABINT);
  179. DEI_COUR=PRECED.'DEFORMATIONS_INELASTIQUES' . IND0;
  180. 'SINON';
  181. DEI_COUR = 'ZERO' MO_TOT 'DEFINELA';
  182. 'SI' ('EXIS' TABSAUV 'DEFIN');
  183. 'SI' TABSAUV.'DEFIN';
  184. PRECED.'DEFORMATIONS_INELASTIQUES'='TABLE';
  185. PRECED.'DEFORMATIONS_INELASTIQUES' . 0=DEI_COUR;
  186. 'FINSI';
  187. 'FINSI';
  188. 'FINSI';
  189. 'SI' inouv; conti.'DEFORMATIONS_INELASTIQUES'=DEI_COUR;'FINS';
  190. *----------- deformations totales et table de sortie
  191. 'SI' ('EXISTE' PRECED 'DEFORMATIONS');
  192. TABINT=INDEX (PRECED.'DEFORMATIONS');
  193. IND0=TABINT.('DIME' TABINT);
  194. DEF_COUR=PRECED.'DEFORMATIONS' . IND0;
  195. 'SINON';
  196. DEF_COUR = 'ZERO' MO_TOT 'DEFORMATIONS';
  197. 'SI' ('EXIS' TABSAUV 'DEFTO');
  198. 'SI' TABSAUV.'DEFTO';
  199. PRECED.'DEFORMATIONS'='TABLE';
  200. PRECED.'DEFORMATIONS' . 0=DEF_COUR;
  201. 'FINSI';
  202. 'FINSI';
  203. 'FINSI';
  204. 'SI' inouv; conti.'DEFORMATIONS'=DEF_COUR;'FINS';
  205. * SP : initialisation DFGRAD reportee dans UNPAS :
  206. WTAB.'DFGRAD' = 'MOT' 'INCONNU' ;
  207. * en cas de chargement thermique initialisation de wtab.tet1 et wtab.tet2
  208. 'SI' ( 'EXIS' WTAB.'CHARGEMENT' 'T');
  209. WTAB.'TET1' = 'TIRE' WTAB.'CHARGEMENT' 'T' TEMP0;
  210. WTAB.'TET2' = WTAB.'TET1';
  211. 'FINSI';
  212. * en cas de chargement de deformations initiales initialisation
  213. * de defor1 etdefor2
  214. 'SI' WTAB.'CHAR_DEFI';
  215. WTAB.'DEFOR1'='TIRE' WTAB.'CHARGEMENT' 'DEFI' WTAB.'TEMPS0';
  216. WTAB.'DEFOR2'= WTAB.'DEFOR1';
  217. 'FINSI';
  218. 'FINSI';
  219.  
  220. ************************************************************************
  221. *-----------pour la thermique
  222. ************************************************************************
  223. 'SI' WTAB.'FOR_THER';
  224. *---------- initialisation de la temperatuure et table de sortie
  225. 'SI' ('EXISTE' PRECED 'TEMPERATURES');
  226. TABINT = INDEX (PRECED.'TEMPERATURES');
  227. IND0 = TABINT.('DIME' TABINT );
  228. TH_COUR = PRECED.'TEMPERATURES' . IND0;
  229. 'SI' (IND0 '>EG' 2) ;
  230. WTAB.'TET0'=PRECED.'TEMPERATURES' . (IND0 - 2);
  231. 'FINSI';
  232. 'SINON';
  233. DDDD = 'ZERO' WTAB.'MOD_T' 'TEMPERAT' ;
  234. TH_COUR = 'CHANGER' 'CHPO' WTAB.'MOD_T' DDDD;
  235. PRECED.'TEMPERATURES' = 'TABL';
  236. PRECED.'TEMPERATURES'. 0 = TH_COUR;
  237. 'FINSI';
  238. 'SI' INOUV ;
  239. CONTI.'TEMPERATURES' = TH_COUR;
  240. 'FINS';
  241.  
  242. WTAB.'TET1' = TH_COUR;
  243. WTAB.'TET2' = TH_COUR;
  244. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS_THERMIQUES')) ;
  245. 'SI' ('EXIS' PRECED 'BLOCAGES_THERMIQUES') ;
  246. QTH_COUR ='REAC' PRECED.'BLOCAGES_THERMIQUES' TH_COUR ;
  247. 'SINON' ;
  248. QTH_COUR ='CHAN' 'CHPO' WTAB.'MOD_T'
  249. ('ZERO' WTAB.'MOD_T' 'FORCES') ;
  250. 'FINSI' ;
  251. PRECED.'REACTIONS_THERMIQUES' = 'TABL' ;
  252. PRECED.'REACTIONS_THERMIQUES' . 0 = QTH_COUR ;
  253. 'FINS' ;
  254. 'SI' inouv;
  255. conti.'REACTIONS_THERMIQUES' = PRECED.'REACTIONS_THERMIQUES'.NSOR ;
  256. 'FINS';
  257. *---------- initialisation proportions de phase et table sortie
  258. 'SI' WTAB.'PHASE';
  259. 'SI' ( 'EXISTE' PRECED 'PROPORTIONS_PHASE');
  260. TABINT=INDEX (PRECED.'PROPORTIONS_PHASE');
  261. IND0=TABINT.('DIME' TABINT);
  262. PP_COUR=PRECED.'PROPORTIONS_PHASE' . IND0;
  263. 'SINON';
  264. DDDD= WTAB.'MAT_PHA' 'EXCO' TPHA;
  265. DDD = EXTRAI WTAB.'MAT_PHA' 'COVA';
  266. 'SI' ( 'EXISTE' DDD 'TPHA');
  267. DDDD = 'VARI' 'NUAG' WTAB.'MOD_PHA'
  268. DDD WTAB.'CHARGEMENT' 'NOEUD';
  269. 'FINSI';
  270. DDD=('CHANG' DDDD WTAB.'MOD_PHA' 'NOEUD') 'NOMC' 'T';
  271. XXXX = 'CHANG' 'CHAM' TH_COUR WTAB.'MOD_PHA'
  272. 'NOEUD';XXXX = XXXX 'NOMC' 'T';
  273. PRECED.'PROPORTIONS_PHASE'='TABLE';
  274. PP_COUR= (MASQUE DDD EGINFE XXXX)
  275. 'NOMC' 'PPHA';
  276. PRECED.'PROPORTIONS_PHASE' . 0 =PP_COUR;
  277.  
  278. 'FINSI';
  279. 'SI' inouv;
  280. conti.'PROPORTIONS_PHASE'=PP_COUR;
  281. 'FINS';
  282. WTAB.'PROPPHAS'=PP_COUR;
  283. 'FINSI';
  284. 'FINSI';
  285. *'FINSI';
  286.  
  287. ************************************************************************
  288. *----------------- Initialisations pour la diffusion ------------------*
  289. ************************************************************************
  290. 'SI' WTAB.'FOR_DIFF' ;
  291. 'SI' ('EXIS' PRECED 'CONCENTRATIONS') ;
  292. TABIND0 = 'INDE' (PRECED.'CONCENTRATIONS') ;
  293. IND0 = TABIND0 . ('DIME' TABIND0) ;
  294. CHCO0 = PRECED. 'CONCENTRATIONS' . IND0 ;
  295. 'SINO' ;
  296. CHCO0 = 'ZERO' WTAB. 'MOD_DIF' 'DEPLACEMENTS' ;
  297. CHCO0 = 'CHAN' 'CHPO' WTAB. 'MOD_DIF' CHCO0 ;
  298. PRECED.'CONCENTRATIONS' = 'TABL' ;
  299. PRECED.'CONCENTRATIONS'. 0 = CHCO0 ;
  300. 'FINS' ;
  301. 'SI' INOUV ;
  302. CONTI . 'CONCENTRATIONS' = CHCO0 ;
  303. 'FINS' ;
  304. WTAB . 'CO1' = CHCO0 ; WTAB . 'CO2' = CHCO0 ;
  305. 'SI' ('NON' ('EXIS' PRECED 'REACTIONS_DIFFUSIONS')) ;
  306. 'SI' ('EXIS' PRECED 'BLOCAGES_DIFFUSIONS') ;
  307. QDI_COUR = 'REAC' PRECED.'BLOCAGES_DIFFUSIONS' CHCO0 ;
  308. 'SINON' ;
  309. QDI_COUR = 'CHAN' 'CHPO' WTAB.'MOD_DIF'
  310. ('ZERO' WTAB.'MOD_DIF' 'FORCES') ;
  311. 'FINSI' ;
  312. PRECED.'REACTIONS_DIFFUSIONS' = 'TABL' ;
  313. PRECED.'REACTIONS_DIFFUSIONS' . 0 = QDI_COUR ;
  314. 'FINS' ;
  315. 'SI' INOUV ;
  316. CONTI . 'REACTIONS_DIFFUSIONS' =
  317. PRECED . 'REACTIONS_DIFFUSIONS'. NSOR ;
  318. 'FINS' ;
  319. 'FINS' ;
  320.  
  321. * *
  322. *---------------------------------------------------------------------*
  323. * *
  324. PRECED.'ESTIMATION'='COPIER' conti;
  325. 'FINP';
  326.  
  327.  
  328.  
  329.  

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