Download pas_init.procedur

Back to the list

   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