Download @lafail.procedur

Back to the list

   1 : * @LAFAIL   PROCEDUR  KK2000    99/11/30    21:15:07     3720           
   2 : *
   3 : ************************************************************************
   4 : *                        PROCEDURA @LAFAIL
   5 : ************************************************************************
   6 : *
   7 : * Descrizione : permette di verificare la resistenza ultima di un
   8 : *               laminato annullando la proprieta' elastiche delle
   9 : *               lamine che man mano arrivano a rottura
  10 : *
  11 : * Sintassi    : @LAFAIL TAB_LAM TAB_FAIL ;
  12 : *
  13 : *
  14 : * Autore/Data : Miliozzi A.  10/04/1997
  15 : *
  16 : *
  17 : * Revisioni   :
  18 : *
  19 : ************************************************************************
  20 : *
  21 : *--- INPUT
  22 : *=========
  23 : *
  24 : * TAB_LAM  Tavola caratteristica del laminato
  25 : *
  26 : * TAB_FAIL Tavola caratteristica per condurre un calcolo di
  27 : *          resistenza per un laminato
  28 : *          La tavola contiene in ingresso:
  29 : *
  30 : *          Indice        Descrizione
  31 : *          'SOUSTYPE'    MOT di valore 'LAMINATE_FAIL'
  32 : *          'TYP_FAIL'    MOT identificante il tipo di verifica da
  33 : *                        effettuare. Essa puo' valere:
  34 : *                        'FPF' : First Ply Failure (Default)
  35 : *                        'LPF' : Last  Ply Failure
  36 : *          'ITERMAX'     ENTIER n. massimo di iterazioni per la
  37 : *                        convergenza. (Default 10)
  38 : *          'PREC'        FLOTTANT indicante il valore della
  39 : *                        precisione di convergenza. (Default 1.e-2)
  40 : *          'CLIM'        Oggetto RIGIDITE delle condizioni
  41 : *                        al contorno
  42 : *          'CHARG'       Oggetto CHPOINT dei carichi
  43 : *          'RIG2'        Oggetto RIGIDITE per una rigidezza
  44 : *                        aggiuntiva a quella del laminato (OPZIONALE)
  45 : *
  46 : *          In uscita invece conterra':
  47 : *
  48 : *          'FMF'         Fattore moltiplicativo del carico per
  49 : *                        First Ply Failure
  50 : *          'NPF'         N. identificativo prima lamina rotta
  51 : *          'NZF'         N. zona di appartenenza della prima
  52 : *                        lamina rotta
  53 : *          'FML'         Fattore moltiplicativo del carico per
  54 : *                        Last  Ply Failure
  55 : *--- OUTPUT
  56 : *==========
  57 : *
  58 : ************************************************************************
  59 : *
  60 : DEBPROC @LAFAIL TT1*TABLE TLPF*TABLE ;
  61 : *---------------------------------------------------------------------
  62 : *                FASE DI VERIFICA DEI DATI IN INGRESSO
  63 : *---------------------------------------------------------------------
  64 : *
  65 : * VERIFICA SULLA CORRETTEZZA DELLE TAVOLE IN INPUT
  66 : *
  67 :   SI (EXIST TLPF 'SOUSTYPE') ;
  68 :     SI (NEG (TLPF.'SOUSTYPE') 'LAMINATE_FAIL' ) ;
  69 :       MESS ' >>> ERROR : LAMINATE FAILURE TABLE NOT FOUND ! ' ;
  70 :       QUITTER @LAFAIL ;
  71 :     FINSI;
  72 :   SINON ;
  73 :     MESS ' >>> ERROR : LAMINATE FAILURE TABLE NOT FOUND ! ' ;
  74 :     QUITTER @LAFAIL ;
  75 :   FINSI;
  76 : *
  77 : * VERIFICA SULLA SCELTA DEL TIPO DI FAILURE PER IL LAMINATO
  78 : *
  79 :   MFAIL2 = 'FPF' ;
  80 :   SI ( EXIST TLPF 'TYP_FAIL' ) ;
  81 :     MFAIL1 = TLPF.'TYP_FAIL' ;
  82 :     SI (EGA MFAIL1 'FPF') ;
  83 :        MFAIL2 = MFAIL1 ;
  84 :     SINON ;
  85 :        SI (EGA MFAIL1 'LPF') ;
  86 :           MFAIL2 = MFAIL1 ;
  87 :        SINON ;
  88 :           MESS '>>> ERROR : LAMINATE FAILURE TYPE INCORRECT ! ' ;
  89 :           QUITTER @LAFAIL ;
  90 :        FINSI ;
  91 :     FINSI ;
  92 :   FINSI ;
  93 : *
  94 : * VERIFICA SULLA SCELTA DEL CRITERIO DI ROTTURA PER LA LAMINA
  95 : *
  96 :   SI (EXIST TLPF 'CRIT') ;
  97 :     MCR1 = TLPF.'CRIT' ;
  98 :     SI ( (NEG MCR1 'MAXSTRESS') ET (NEG MCR1 'MAXSTRAIN') ET
  99 :          (NEG MCR1 'TSAI-WU')   ET (NEG MCR1 'TSAI-HILL') ET
 100 :          (NEG MCR1 'HOFFMANN') ) ;
 101 :     MESS '>>> ERROR : LAMINA FAILURE CRITERIA DESCRIPTOR INCORRECT !' ;
 102 :     QUITTER @LAFAIL ;
 103 :     FINSI ;
 104 :   SINON ;
 105 :     MESS '>>> ERROR : LAMINA FAILURE CRITERIA DESCRIPTOR NOT FOUND !' ;
 106 :     QUITTER @LAFAIL ;
 107 :   FINSI ;
 108 : *
 109 : * DETERMINAZIONE DEL NUMERO DI ITERAZIONI MASSIMO PER LA CONVERGENZA
 110 : *
 111 :   NITMAX = 10 ;
 112 :   SI (EXIST TLPF 'ITERMAX') ; NITMAX = TLPF.'ITERMAX' ; FINSI ;
 113 : *
 114 : * DETERMINAZIONE DELLA PRECISIONE DA RAGGIUNGERE DURANTE LA ITERAZIONI
 115 : * PER LA CONVERGENZA
 116 : *
 117 :   DELTA  = 1.E-2 ;
 118 :   SI (EXIST TLPF 'PREC') ; DELTA  = TLPF.'PREC'    ; FINSI ;
 119 : *
 120 : * VERIFICA DELL'ESISTENZA DELL'OGGETTO RIGIDITE CONTENENTE LE CONDIZIONI
 121 : * AL CONTORNO PER LA STRUTTURA
 122 : *
 123 :   SI (EXIST TLPF 'CLIM') ;
 124 :     VTOT   = TLPF.'CLIM'  ;
 125 :   SINON ;
 126 :     MESS '>>> ERROR : RIGIDITE OBJET (LIMIT CONDITIONS) NOT FOUND !' ;
 127 :     QUITTER @LAFAIL ;
 128 :   FINSI ;
 129 : *
 130 : * VERIFICA DELL'ESISTENZA DELL'OGGETTO CHPOINT CONTENENTE IL CARICO CUI
 131 : * E' SOGGETTA LA STRUTTURA
 132 : *
 133 :   SI (EXIST TLPF 'CHARG') ;
 134 :     FFT    = TLPF.'CHARG' ;
 135 :   SINON ;
 136 :     MESS '>>> ERROR : CHPOINT OBJET (LOADS) NOT FOUND !' ;
 137 :     QUITTER @LAFAIL ;
 138 :   FINSI ;
 139 : *
 140 : * VERIFICA DELL'ESISTENZA DELL'OGGETTO RIGIDITE CONTENENTE UNA
 141 : * RIGIDEZZA AGGIUNTIVA RAPPRESENTATIVA DI UN PARTE DELLA STRUTTURA
 142 : * NON COMPOSTA DI MATERIALE COMPOSITO LAMINATO
 143 : *
 144 :   LOG1 = EXIST TLPF 'RIG2' ;
 145 : *
 146 : *--------------------------------------------------------------------
 147 : *           FASE DI VERIFICA DELLA RESISTENZA DI UN LAMINATO
 148 : *--------------------------------------------------------------------
 149 : *
 150 : * CALCOLO N. DEGLI STRATI COMPLESSIVI
 151 : *
 152 :  NZON = (DIME TT1) - 2 ;
 153 :  NITER = 0 ;
 154 :  NZ    = 0 ;
 155 :  REPETER LOOPX NZON ;
 156 :   NZ = NZ + 1 ;
 157 :   NITER = NITER + (DIME TT1.NZ) - 6 ;
 158 :  FIN LOOPX ;
 159 : *
 160 :  FM_PREV = 0. ;
 161 :  FMC0 = 0. ; RCT0 = 0. ; FMC1 = 1. ;
 162 :  NL1     = 0  ;
 163 :  REPETER ITER1 NITER ;
 164 :   NL1 = NL1 + 1 ;
 165 :   MESS '========================================================' ;
 166 :   MESS ' CHECK FOR FAILURE OF LAMINA N. ' NL1 ;
 167 :   MESS '========================================================' ;
 168 :   MESS ' ' ;
 169 :   MESS '  ITER     FAILURE          FM            ZONE    PLY ' ;
 170 :   MESS '   N.       RATE          FACTOR         NUMBER  NUMBER';
 171 :   MESS ' ' ;
 172 : *
 173 : * CALCOLO DEGLI SPOSTAMENTI
 174 : *
 175 :   SI LOG1 ; DEP1 = @LACALC TT1 VTOT FFT (TLPF . 'RIG2') ; SINON ;
 176 :             DEP1 = @LACALC TT1 VTOT FFT ; FINSI ;
 177 : *
 178 :   NIT  = 0  ;
 179 : *
 180 :   REPETER LOOP0 ;
 181 : *
 182 :     NIT = NIT + 1 ;
 183 :     RCT1 = -1. ; NPT1 = 0 ; NZT1 = 0 ;
 184 :     NZ1 = 0 ;
 185 :     REPETER LOOP1 NZON ;
 186 : *
 187 :       NZ1 = NZ1 + 1 ;
 188 : *
 189 :       SI (EGA MCR1 'MAXSTRAIN') ;
 190 :         TSIEP = @LASIEP TT1 NZ1 DEP1 'EPS' ;
 191 :       SINON ;
 192 :         TSIEP = @LASIEP TT1 NZ1 DEP1 'SIG' ;
 193 :       FINSI ;
 194 : *
 195 :       TCRIT = @LACRIT TT1 NZ1 TSIEP FMC1 MCR1 ;
 196 : *
 197 :       NPL = (DIME TT1 . NZ1) - 6 ;
 198 :       NP1 = 0.  ;
 199 :       NP2 = 0   ;
 200 :       RC1 = -1. ;
 201 :       REPETER LOOP2 NPL ;
 202 :         NP2 = NP2 + 1 ;
 203 :         RC2 = MAXI (TCRIT . NP2) ;
 204 :         SI (RC2 > RC1) ; RC1 = RC2 ; NP1 = NP2 ; FINSI ;
 205 :       FIN LOOP2 ;
 206 : *
 207 :       SI (RC1 > RCT1) ; RCT1 = RC1 ; NPT1 = NP1 ; NZT1 = NZ1 ; FINSI ;
 208 : *
 209 :     FIN LOOP1 ;
 210 : *
 211 :     MESS NIT RCT1 FMC1 NZT1 NPT1 ;
 212 : *
 213 :     DRC1 = ABS ( RCT1 - 1.) ;
 214 :     SI (DRC1 <EG DELTA) ; QUITTER LOOP0 ; FINSI ;
 215 :     SI (NIT EGA NITMAX) ;
 216 :       MESS '-----      ATTENTION !!      -----';
 217 :       MESS 'Maximum Iterations Number Reached.';
 218 :       MESS '    Forced Convergency Assumed    ';
 219 :       MESS '----------------------------------';
 220 :       QUITTER LOOP0 ;
 221 :     FINSI ;
 222 : *
 223 :     FMC2 = FMC0 + ( (FMC1 - FMC0) / (RCT1 - RCT0) * (1. - RCT0) ) ;
 224 : *
 225 :     FMC0 = FMC1 ;  FMC1 = FMC2 ;
 226 :     RCT0 = RCT1 ;
 227 : *
 228 :   FIN LOOP0 ;
 229 : *
 230 :     FMCX = ABS FMC1 ;
 231 : *
 232 :   SI (NL1 EGA 1) ;
 233 :     TLPF . 'FMF' = FMCX ;
 234 :     TLPF . 'RCF' = RCT1 ;
 235 :     TLPF . 'NPF' = NPT1 ;
 236 :     TLPF . 'NZF' = NZT1 ;
 237 :     FM_PREV      = FMC1 ;
 238 :   SINON ;
 239 :     SI (FM_PREV <EG FMCX) ; FM_PREV = FMCX ; FINSI ;
 240 :   FINSI ;
 241 : *
 242 :   SI (EGA MFAIL2 'FPF') ; QUITTER @LAFAIL ; FINSI ;
 243 : *
 244 : * AZZERAMENTO PROPRIETA' ELASTICHE DELLA LAMINA GIUNTA A ROTTURA
 245 : *
 246 :   TT = TT1 . MCLOL . (TT1 . NZT1 . NPT1 . IDM ) ;
 247 :   YYG1 = TT . YG1 ;
 248 :   YYG2 = TT . YG2 ;
 249 :   YG12 = TT . G12 ;
 250 :   TT . YG1 = 1.E-10 * YYG1 ;
 251 :   TT . YG2 = 1.E-10 * YYG2 ;
 252 :   TT . G12 = 1.E-10 * YG12 ;
 253 : *
 254 :   FMC0 = 0. ; RCT0 = 0. ; FMC1 = FMCX ;
 255 : *
 256 :  FIN ITER1 ;
 257 : *
 258 :  TLPF.'FML' = FM_PREV ;
 259 : *
 260 : ************************************************************************
 261 : *                       FINE PROCEDURA @LAFAIL
 262 : ************************************************************************
 263 : FINPROC TLPF ;
 264 : *
 265 :  

© Cast3M 2003 - All rights reserved.
Disclaimer