1 : * PAS_INIT PROCEDUR CHAT 13/04/17 21:15:07 7768 2 : 'DEBPROC' PAS_INIT PRECED*'TABLE' ; 3 : *cette procédure crée l'état initial des inconnues , le met dans conti. 4 : * initialise au passage les tables de sorties en mettant l'état 5 : * initial sous l'indice 0 6 : * on fait compliqué car on veut pouvoir continuer des 7 : * calculs sauvegardés avant que la table de continuation n'existe 8 : WTAB=PRECED.'WTABLE';TABSAUV=WTAB.'TABSAUV'; 9 : 'SI' ( 'EXIS' PRECED 'CONTINUATION'); 10 : conti=PRECED.'CONTINUATION';inouv=faux; 11 : WTAB.'TEMPS0'=conti.'TEMPS'; 12 : 'SINON'; 13 : * il suffit d'initialiser à zero ou de reprendre ce qui est donné 14 : * par l'utilisateur ( vitesses initiales ,temperatuires initiales etc.. 15 : conti='TABLE';inouv=vrai; 16 : PRECED.'CONTINUATION'= CONTI; 17 : 'FINSI'; 18 : *---------- initialisation du temps et table sortie temps 19 : 'SI' ('EXIS' PRECED TEMPS) ; 20 : NSOR= ('DIME' (PRECED . 'TEMPS' )) - 1;WTAB.'NSOR'=NSOR; 21 : 'SI' ('EXIS' conti 'TEMPS'); 22 : WTAB.'TEMPS0'=conti.'TEMPS';TEMP0=WTAB.'TEMPS0'; 23 : 'SINON'; 24 : TEMP0=PRECED.'TEMPS' . NSOR; 25 : WTAB.'TEMPS0'=TEMP0; 26 : 'FINSI'; 27 : 'SINON'; 28 : NSOR= 0; PRECED.'TEMPS'='TABLE'; 29 : 'SI' WTAB.'FREQUENTIEL' ; 30 : TEMP0 = WTAB.'TEMPS0' ; 31 : 'SINON' ; 32 : TEMP0 = 0.D0 ; 33 : 'FINSI' ; 34 : PRECED.'TEMPS' . 0 = TEMP0 ; 35 : WTAB.'TEMPS0'=TEMP0;WTAB.'NSOR'=NSOR; 36 : 'FINSI'; 37 : conti.'TEMPS'=WTAB.'TEMPS0'; 38 : * 39 : *-------- pour la mécanique 40 : * 41 : 'SI' WTAB.'FOR_MECA' ; 42 : MO_TOT=WTAB.'MO_TOT'; 43 : *---------- initialisation du déplacement et table sortie 44 : 'SI' ('NON' ('EXIS' PRECED 'DEPLACEMENTS' )); 45 : DDDD = 'ZERO' MO_TOT 'DEPLACEM'; 46 : DEP_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD; 47 : 'DETRUIRE' DDDD; 48 : PRECED.'DEPLACEMENTS' = 'TABLE'; 49 : PRECED.'DEPLACEMENTS'. 0 = DEP_COUR; 50 : 'FINSI'; 51 : * WTAB.'FOR'= 'FORM' PRECED.'DEPLACEMENTS'. NSOR ; 52 : 'FORM' WTAB.'FOR0'; 53 : 'SI' inouv; conti.'DEPLACEMENTS'= PRECED. 'DEPLACEMENTS' . NSOR; 54 : * conti.'GEODEB'=WTAB.'FOR';conti.'GEOFIN'=conti.'GEODEB'; 55 : 'FINS'; 56 : *--------- initialisation des contraintes et table de sortie 57 : 'SI' ('NON' ('EXIS' PRECED 'CONTRAINTES')); 58 : SIG_COUR = 'ZERO' MO_TOT 'CONTRAIN'; 59 : PRECED.'CONTRAINTES' = 'TABLE'; 60 : PRECED.'CONTRAINTES'. 0 = SIG_COUR; 61 : 'FINSI'; 62 : 'SI' inouv; conti.'CONTRAINTES' = PRECED.'CONTRAINTES'.NSOR;'FINS'; 63 : *--------- initialisation des vitesses et table de sortie 64 : 'SI' (WTAB.'DYNAMIQUE' 'OU' ('EXISTE' WTAB 'MOD_LIA')); 65 : 'SI' ('EXISTE' PRECED 'VITESSES') ; 66 : TABINT=INDEX (PRECED.'VITESSES'); 67 : IND0=TABINT.('DIME' TABINT); 68 : VIT_COUR=PRECED.'VITESSES' . IND0; 69 : 'SINON'; 70 : DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS'; 71 : VIT_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD; 72 : 'DETRUIRE' DDDD; 73 : PRECED.'VITESSES'=TABLE; 74 : PRECED.'VITESSES'. 0 = VIT_COUR; 75 : 'FINSI'; 76 : 'SI' inouv; conti.'VITESSES'=VIT_COUR;'FINS'; 77 : 'FINSI'; 78 : 'SI' WTAB.'DYNAMIQUE'; 79 : 'SI' ('EXISTE' PRECED 'ACCELERATIONS') ; 80 : TABINT=INDEX (PRECED.'ACCELERATIONS') ; 81 : IND0=TABINT.('DIME' TABINT); 82 : ACC_COUR=PRECED.'ACCELERATIONS' . IND0; 83 : 'SINON'; 84 : DDDD = 'ZERO' MO_TOT 'DEPLACEMENTS'; 85 : ACC_COUR = 'CHANGER' 'CHPO' MO_TOT DDDD; 86 : 'DETRUIRE' DDDD; 87 : PRECED.'ACCELERATIONS'=TABLE; 88 : PRECED.'ACCELERATIONS'. 0 = ACC_COUR; 89 : 'FINSI'; 90 : 'SI' inouv; conti.'ACCELERATIONS'=ACC_COUR;'FINS'; 91 : 'FINSI'; 92 : *---------- REACTIONS et table de sortie 93 : 'SI' ('NON' ('EXIS' PRECED 'REACTIONS')); 94 : 'SI' ('EXIS' PRECED 'BLOCAGES_MECANIQUES'); 95 : REA_COUR='REAC' PRECED.'BLOCAGES_MECANIQUES' conti.'DEPLACEMENTS'; 96 : 'SINON' ; 97 : 'SI' WTAB.'FREQUENTIEL' ; 98 : MMT = 'MANU' 'CHML' MO_TOT 'TEMP' TEMP0 'RIGIDITE'; 99 : MMM='VARI' 'NUAG' MO_TOT PRECED.'CARACTERISTIQUES' MMT 'RIGIDITE'; 100 : REA_COUR = 'BSIGMA' conti.'CONTRAINTES' MO_TOT MMM * 0. ; 101 : 'SINON' ; 102 : REA_COUR = 'ZERO' MO_TOT 'FORCES' ; 103 : 'FINSI' ; 104 : 'FINSI' ; 105 : PRECED.'REACTIONS' = TABLE; 106 : PRECED.'REACTIONS' . 0 = REA_COUR; 107 : 'FINSI'; 108 : 'SI' inouv; conti.'REACTIONS'=PRECED.'REACTIONS'.NSOR;'FINS'; 109 : *------------ variables_internes et table de sortie 110 : 'SI' WTAB.'IPLAVI'; 111 : 'SI' ('EXIS' PRECED 'VARIABLES_INTERNES' ); 112 : TABINT=INDEX (PRECED.'VARIABLES_INTERNES'); 113 : IND0=TABINT.('DIME' TABINT) ; 114 : VAR_COUR=PRECED.'VARIABLES_INTERNES' . IND0; 115 : 'SINON'; 116 : VAR_COUR = 'ZERO' MO_TOT 'VARINTER'; 117 : PRECED.'VARIABLES_INTERNES' = 'TABLE'; 118 : PRECED.'VARIABLES_INTERNES'. 0 = VAR_COUR; 119 : 'FINSI'; 120 : 'SI' inouv; conti.'VARIABLES_INTERNES'=VAR_COUR;'FINS'; 121 : 'FINSI'; 122 : *---------- déformations inélastiques et table de sortie 123 : 'SI' ('EXISTE' PRECED 'DEFORMATIONS_INELASTIQUES'); 124 : TABINT=INDEX (PRECED.'DEFORMATIONS_INELASTIQUES'); 125 : IND0=TABINT.('DIME' TABINT); 126 : DEI_COUR=PRECED.'DEFORMATIONS_INELASTIQUES' . IND0; 127 : 'SINON'; 128 : DEI_COUR = 'ZERO' MO_TOT 'DEFINELA'; 129 : 'SI' ('EXIS' TABSAUV 'DEFIN'); 130 : 'SI' TABSAUV.'DEFIN'; 131 : PRECED.'DEFORMATIONS_INELASTIQUES'='TABLE'; 132 : PRECED.'DEFORMATIONS_INELASTIQUES' . 0=DEI_COUR; 133 : 'FINSI'; 134 : 'FINSI'; 135 : 'FINSI'; 136 : 'SI' inouv; conti.'DEFORMATIONS_INELASTIQUES'=DEI_COUR;'FINS'; 137 : *----------- déformations totales et table de sortie 138 : 'SI' ('EXISTE' PRECED 'DEFORMATIONS'); 139 : TABINT=INDEX (PRECED.'DEFORMATIONS'); 140 : IND0=TABINT.('DIME' TABINT); 141 : DEF_COUR=PRECED.'DEFORMATIONS' . IND0; 142 : 'SINON'; 143 : DEF_COUR = 'ZERO' MO_TOT 'DEFORMATIONS'; 144 : 'SI' ('EXIS' TABSAUV 'DEFTO'); 145 : 'SI' TABSAUV.'DEFTO'; 146 : PRECED.'DEFORMATIONS'='TABLE'; 147 : PRECED.'DEFORMATIONS' . 0=DEF_COUR; 148 : 'FINSI'; 149 : 'FINSI'; 150 : 'FINSI'; 151 : 'SI' inouv; conti.'DEFORMATIONS'=DEF_COUR;'FINS'; 152 : * initialisation du gradient de la transformation 153 : 'SI' ( 'NEG' WTAB.'MOD_MEC' 'INCONNU'); 154 : DFG_COUR = 'GRADIENT' conti.'DEPLACEMENTS' WTAB.'MOD_MEC' 155 : WTAB .'CARACTERISTIQUES'; 156 : WTAB.'DFGRAD' = DFG_COUR ; 157 : 'SINON'; 158 : WTAB.'DFGRAD'='INCONNU'; 159 : 'FINSI'; 160 : 161 : * en cas de chargement thermique initialisation de wtab.tet1 et wtab.tet2 162 : 'SI' ( 'EXIS' WTAB.'CHARGEMENT' 'T'); 163 : WTAB.'TET1'= 'TIRE' WTAB.'CHARGEMENT' 'T' TEMP0; 164 : WTAB.'TET2' = WTAB . 'TET1'; 165 : 'FINSI'; 166 : * en cas de chargement de deformations initiales initialisation 167 : * de defor1 etdefor2 168 : 'SI' WTAB.'CHAR_DEFI'; 169 : WTAB.'DEFOR1'='TIRE' WTAB.'CHARGEMENT' 'DEFI' WTAB.'TEMPS0'; 170 : WTAB.'DEFOR2'=WTAB.'DEFOR1'; 171 : 'FINSI'; 172 : 'FINSI'; 173 : *-----------pour la thermique 174 : * 175 : 'SI' WTAB.'FOR_THER'; 176 : *---------- initialisation de la temperatuure et table de sortie 177 : 'SI' ('EXISTE' PRECED 'TEMPERATURES'); 178 : TABINT=INDEX (PRECED.'TEMPERATURES'); 179 : IND0=TABINT.('DIME' TABINT ); 180 : TH_COUR=PRECED.'TEMPERATURES' . IND0; 181 : 'SI' (IND0 '>EG' 2) ; 182 : WTAB.'TET0'=PRECED.'TEMPERATURES' . (IND0 - 2); 183 : 'FINSI'; 184 : 'SINON'; 185 : DDDD = 'ZERO' WTAB.'MOD_T' 'TEMPERAT' ; 186 : TH_COUR = 'CHANGER' 'CHPO' WTAB.'MOD_T' DDDD; 187 : PRECED.'TEMPERATURES' = 'TABLE'; 188 : PRECED.'TEMPERATURES'. 0 = TH_COUR; 189 : 'FINSI'; 190 : 'SI' inouv; conti.'TEMPERATURES'=TH_COUR;'FINS'; 191 : WTAB.'TET_INI'=PRECED.'TEMPERATURES'. 0; 192 : WTAB.'TET1'=TH_COUR; WTAB.'TET2'=TH_COUR; 193 : *---------- initialisation proportions de phase et table sortie 194 : 'SI' WTAB.'PHASE'; 195 : 'SI' ( 'EXISTE' PRECED 'PROPORTIONS_PHASE'); 196 : TABINT=INDEX (PRECED.'PROPORTIONS_PHASE'); 197 : IND0=TABINT.('DIME' TABINT); 198 : PP_COUR=PRECED.'PROPORTIONS_PHASE' . IND0; 199 : 'SINON'; 200 : DDDD= WTAB.'MAT_PHA' 'EXCO' TPHA; 201 : DDD = EXTRAI WTAB.'MAT_PHA' 'COVA'; 202 : 'SI' ( 'EXISTE' DDD 'TPHA'); 203 : DDDD = 'VARI' 'NUAG' WTAB.'MOD_PHA' 204 : DDD WTAB.'CHARGEMENT' 'NOEUD'; 205 : 'FINSI'; 206 : DDD=('CHANG' DDDD WTAB.'MOD_PHA' 'NOEUD') 'NOMC' 'T'; 207 : XXXX = 'CHANG' 'CHAM' TH_COUR WTAB.'MOD_PHA' 208 : 'NOEUD';XXXX = XXXX 'NOMC' 'T'; 209 : PRECED.'PROPORTIONS_PHASE'='TABLE'; 210 : PP_COUR= (MASQUE DDD EGINFE XXXX) 211 : 'NOMC' 'PPHA'; 212 : PRECED.'PROPORTIONS_PHASE' . 0 =PP_COUR; 213 : 214 : 'FINSI'; 215 : 'SI' inouv; conti.'PROPORTIONS_PHASE'=PP_COUR;'FINS'; 216 : WTAB.'PROPPHAS'=PP_COUR; 217 : 'FINSI'; 218 : 'FINSI'; 219 : *'FINSI'; 220 : * 221 : * SP DIFF : 222 : *----------------- Initialisations pour la diffusion -----------------* 223 : * * 224 : 'SI' WTAB.'FOR_DIFF' ; 225 : 'SI' ('EXIS' PRECED 'CONCENTRATIONS') ; 226 : TABIND0 = 'INDE' (PRECED.'CONCENTRATIONS') ; 227 : IND0 = TABIND0 . ('DIME' TABIND0) ; 228 : CHCO0 = PRECED. 'CONCENTRATIONS' . IND0 ; 229 : 'SINO' ; 230 : CHCO0 = 'ZERO' WTAB. 'MOD_DIF' 'DEPLACEMENTS' ; 231 : CHCO0 = 'CHAN' 'CHPO' WTAB. 'MOD_DIF' CHCO0 ; 232 : PRECED.'CONCENTRATIONS' = 'TABL' ; 233 : PRECED.'CONCENTRATIONS'. 0 = CHCO0 ; 234 : 'FINS' ; 235 : 'SI' INOUV ; 236 : CONTI . 'CONCENTRATIONS' = CHCO0 ; 237 : 'FINS' ; 238 : WTAB . 'CO1' = CHCO0 ; WTAB . 'CO2' = CHCO0 ; 239 : 'FINS' ; 240 : *--------- des reprises de pas d'avant 241 : 'SI'(WTAB.'CHAR_THE' 'OU' WTAB.'FOR_THER'); 242 : 'SI' WTAB.'FOR_MECA';WTAB.'ETHER1'=WTAB.'ETHER2';'FINSI'; 243 : 'SI' WTAB.'POR1'; WTAB.'MSRTHER1'=WTAB.'MSRTHER2';'FINSI'; 244 : 'FINSI'; 245 : 'SI' WTAB.'CHAR_DEFI' ; WTAB.'DEFOR1'=WTAB.'DEFOR2';'FINSI'; 246 : 'SI' WTAB.'FOR_DIFF' ; WTAB.'CO1'=WTAB.'CO2'; 'FINSI' ; 247 : * * 248 : *---------------------------------------------------------------------* 249 : * * 250 : PRECED.'ESTIMATION'='COPIER' conti; 251 : 'FINPROC'; 252 : 253 :
© Cast3M 2003 - All rights reserved.
Disclaimer