Télécharger pas_init.procedur

Retour à la liste

Numérotation des lignes :

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

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