1 : C DEVFB5 SOURCE CHAT 05/01/12 22:45:35 5004 2 : SUBROUTINE DEVFB5(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB, 3 : & NLIAB,NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2, 4 : & FEXPSM,NPC1,I,XABSCI,XORDON,NIP,IANNUL) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8(A-H,O-Z) 7 : *--------------------------------------------------------------------* 8 : * * 9 : * Operateur DYNE : algorithme de Fu - de Vogelaere * 10 : * ________________________________________________ * 11 : * * 12 : * Calcul des forces de choc sur base B pour les liaisons de * 13 : * type POINT_POINT_DEPLACEMENT_PLASTIQUE. * 14 : * * 15 : * Parametres: * 16 : * * 17 : * e ITYP type de la liaison. * 18 : * es FTOTB Forces exterieures totalisees sur la base B. * 19 : * e XPTB Tableau des deplacements des points * 20 : * e IPALB Renseigne sur la liaison. * 21 : * e IPLIB Tableau contenant les numeros "DYNE" de la liaison. * 22 : * e XPALB Tableau contenant les parametres de la liaison. * 23 : * es XVALB Tableau contenant les variables internes de liaisons. * 24 : * e NLIAB Nombre de liaisons sur la base B. * 25 : * e NPLB Nombre total de points intervenant dans les liaisons. * 26 : * e IND Indice du pas. * 27 : * e I numero de la liaison. * 28 : * e XABSCI Tableau contenant les abscisses de la loi plastique * 29 : * pour la liaison point-point-plastique * 30 : * e XORDON Tableau contenant les ordonnees de la loi plastique * 31 : * pour la liaison point-point-plastique * 32 : * e NIP Nombre de points dans l'evolution de la loi * 33 : * * 34 : * Auteur, date de creation: * 35 : * * 36 : * Nicolas WECXSTEEN 04/96 point-point- ... -plastique * 37 : * * 38 : *--------------------------------------------------------------------* 39 : * 40 : INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*) 41 : REAL*8 XPALB(NLIAB,*),XPTB(NPLB,4,*),FTOTB(NPLB,*) 42 : REAL*8 XVALB(NLIAB,4,*),FEXPSM(NPLB,NPC1,2,*) 43 : REAL*8 XABSCI(NLIAB,*),XORDON(NLIAB,*) 44 : 45 : * 46 : * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE sans amortissement 47 : * 48 : IF (ITYP.EQ.16) THEN 49 : NPOA = IPLIB(I,1) 50 : NPOB = IPLIB(I,2) 51 : IDIM = IPALB(I,3) 52 : IPERM = IPALB(I,5) 53 : XJEU = XPALB(I,1) 54 : XDPLAS = XPALB(I,2+IDIM) 55 : XELA = XPALB(I,3+IDIM) 56 : XDPLAC = XPALB(I,4+IDIM) 57 : XDEP = 0.D0 58 : XAMO = 0.d0 59 : XVIT = 0.d0 60 : DO 10 ID = 1,IDIM 61 : IDA = 3 + ID 62 : IDB = 3 + IDIM + ID 63 : XDEA = XPTB(NPOA,IND,ID) 64 : XDEB = XPTB(NPOB,IND,ID) 65 : XVALB(I,IND,IDA) = XDEA 66 : XVALB(I,IND,IDB) = XDEB 67 : XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID) 68 : XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID) 69 : * 70 : * Dans le tableau XPALB(I,1+ID) se trouve les coord de la normale 71 : * 72 : XDEP = XDEP + (XDEA - XDEB) * XPALB(I,1+ID) 73 : 10 CONTINUE 74 : * end do 75 : * On appel DYCHEC, SP qui calcul ,avec le deplacement xdep, 76 : * la force xfla et le dep plastique xdplas sur l'evolution xabsci/xordon 77 : * (loi de comportement) 78 : * 78 : call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI, 79 : & XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul) 80 : 81 : * 82 : XFLB = -1.D0 * XFLA 83 : XVALB(I,IND,1) = XFLA 84 : XVALB(I,IND,2) = XFLB 85 : XPALB(I,2+IDIM) = XDPLAS 86 : XPALB(I,3+IDIM) = XELA 87 : XPALB(I,4+IDIM) = XDPLAC 88 : XVALB(I,IND,13) = XDPLAS 89 : XVALB(I,IND,14) = XELA 90 : XVALB(I,IND,15) = XDPLAC 91 : * 92 : DO 12 ID = 1,IDIM 93 : FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,1+ID) 94 : FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,1+ID) 95 : 12 CONTINUE 96 : * end do 97 : * 98 : * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE avec amortissement 99 : * 100 : ELSE IF (ITYP.EQ.17) THEN 101 : NPOA = IPLIB(I,1) 102 : NPOB = IPLIB(I,2) 103 : IDIM = IPALB(I,3) 104 : IPERM = IPALB(I,5) 105 : XJEU = XPALB(I,1) 106 : XAMO = XPALB(I,2) 107 : XDPLAS = XPALB(I,3+IDIM) 108 : XELA = XPALB(I,4+IDIM) 109 : XDPLAC = XPALB(I,5+IDIM) 110 : XDEP = 0.D0 111 : XDEPM1 = 0.D0 112 : DO 20 ID = 1,IDIM 113 : IDA = 3 + ID 114 : IDB = 3 + IDIM + ID 115 : * 116 : * Ici, l'indice IND2 sert a calculer les vitesses 117 : * 118 : XDEA = XPTB(NPOA,IND,ID) 119 : XDMA = XPTB(NPOA,IND2,ID) 120 : XDEB = XPTB(NPOB,IND,ID) 121 : XDMB = XPTB(NPOB,IND2,ID) 122 : XVALB(I,IND,IDA) = XDEA 123 : XVALB(I,IND,IDB) = XDEB 124 : XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID) 125 : XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID) 126 : XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID) 127 : XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID) 128 : XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID) 129 : * 130 : * Dans le tableau XPALB(I,2+ID) on trouve les coord de la normale 131 : * 132 : XDEP = XDEP + (XDEA - XDEB) * XPALB(I,2+ID) 133 : XDEPM1 = XDEPM1 + (XDMA - XDMB) * XPALB(I,2+ID) 134 : 20 CONTINUE 135 : * end do 136 : XVIT = (XDEP - XDEPM1) / PDTS2 137 : XVALB(I,IND,3) = XVIT 138 : * 139 : * Appel a DYCHEC pour calcul de la force et depla plastique 140 : * 140 : call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI, 141 : & XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul) 142 : 143 : XFLB = -1.D0 * XFLA 144 : XVALB(I,IND,1) = XFLA 145 : XVALB(I,IND,2) = XFLB 146 : XPALB(I,3+IDIM) = XDPLAS 147 : XPALB(I,4+IDIM) = XELA 148 : XPALB(I,5+IDIM) = XDPLAC 149 : XVALB(I,IND,13) = XDPLAS 150 : XVALB(I,IND,14) = XELA 151 : XVALB(I,IND,15) = XDPLAC 152 : * 153 : DO 22 ID = 1,IDIM 154 : FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,2+ID) 155 : FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,2+ID) 156 : 22 CONTINUE 157 : * 158 : C Rotule [ 159 : * 160 : * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE sans amortissement 161 : * 162 : ELSE IF (ITYP.EQ.50) THEN 163 : NPOA = IPLIB(I,1) 164 : NPOB = IPLIB(I,2) 165 : IDIM = IPALB(I,3) 166 : IPERM = IPALB(I,5) 167 : XJEU = XPALB(I,1) 168 : XDPLAS = XPALB (I,2+IDIM) 169 : XELA = XPALB (I,3+IDIM) 170 : XDPLAC = XPALB(I,4+IDIM) 171 : XROT = 0.D0 172 : xamo = 0.d0 173 : xvit = 0.d0 174 : DO 30 ID = 1,IDIM 175 : IDA = 3 + ID 176 : IDB = 3 + IDIM + ID 177 : * 178 : * On recupere les rotations des points A et B 179 : * XROA = rotation point A 180 : * XROB = rotation point B 181 : * 182 : XROA = XPTB(NPOA,IND,ID+3) 183 : XROB = XPTB(NPOB,IND,ID+3) 184 : XVALB(I,IND,IDA) = XROA 185 : XVALB(I,IND,IDB) = XROB 186 : XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3) 187 : XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3) 188 : * 189 : * Dans le tableau XPALB(I,1+ID) se trouve les coord de l'axe de rotation 190 : * 191 : XROT = XROT + (XROA - XROB) * XPALB(I,1+ID) 192 : 30 CONTINUE 193 : * end do 194 : * On appel DYCHEC, SP qui calcul ,avec la rotation xrot, 195 : * le moment xmla et la rota plastique xdplas sur l'evolution xabsci/xordon 196 : * (loi de comportement) 197 : * 197 : call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI, 198 : & XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul) 199 : 200 : XMLB = -1.D0 * XMLA 201 : XVALB(I,IND,1) = XMLA 202 : XVALB(I,IND,2) = XMLB 203 : XPALB(I,2+IDIM) = XDPLAS 204 : XPALB(I,3+IDIM) = XELA 205 : XPALB(I,4+IDIM) = XDPLAC 206 : XVALB(I,IND,13) = XDPLAS 207 : XVALB(I,IND,14) = XELA 208 : XVALB(I,IND,15) = XDPLAC 209 : * 210 : DO 32 ID = 1,IDIM 211 : FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,1+ID) 212 : FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,1+ID) 213 : 32 CONTINUE 214 : * end do 215 : * 216 : * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE avec amortissement 217 : * 218 : ELSE IF (ITYP.EQ.51) THEN 219 : NPOA = IPLIB(I,1) 220 : NPOB = IPLIB(I,2) 221 : IDIM = IPALB(I,3) 222 : IPERM = IPALB(I,5) 223 : XJEU = XPALB(I,1) 224 : XAMO = XPALB(I,2) 225 : XDPLAS = XPALB(I,3+IDIM) 226 : XELA = XPALB(I,4+IDIM) 227 : XDPLAC = XPALB(I,5+IDIM) 228 : XROT = 0.D0 229 : XDRPM1 = 0.D0 230 : DO 40 ID = 1,IDIM 231 : IDA = 3 + ID 232 : IDB = 3 + IDIM + ID 233 : * Ici, l'indice IND2 sert a calculer les vitesses 234 : * 235 : XROA = XPTB(NPOA,IND,ID+3) 236 : XDMA = XPTB(NPOA,IND2,ID+3) 237 : XROB = XPTB(NPOB,IND,ID+3) 238 : XDMB = XPTB(NPOB,IND2,ID+3) 239 : XVALB(I,IND,IDA) = XROA 240 : XVALB(I,IND,IDB) = XROB 241 : ** Verifier indice pseudo-modes*** 242 : XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3) 243 : XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3) 244 : XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID+3) 245 : XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID+3) 246 : C 247 : * Dans le tableau XPALB(I,2+ID) on trouve les coord de l'axe de rotation 248 : * 249 : XROT = XROT + (XROA - XROB) * XPALB(I,2+ID) 250 : XDRPM1 = XDRPM1 + (XDMA - XDMB) * XPALB(I,2+ID) 251 : 40 CONTINUE 252 : * end do 253 : XVIT = (XROT - XDRPM1) / PDTS2 254 : XVALB(I,IND,3) = XVIT 255 : * 256 : * Appel a DYCHEC pour calcul du moment et rotation plastique XDPLAS 257 : * 257 : call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI, 258 : & XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul) 259 : 260 : XMLB = -1.D0 * XMLA 261 : XVALB(I,IND,1) = XMLA 262 : XVALB(I,IND,2) = XMLB 263 : XPALB(I,3+IDIM) = XDPLAS 264 : XPALB(I,4+IDIM) = XELA 265 : XPALB(I,5+IDIM) = XDPLAC 266 : XVALB(I,IND,13) = XDPLAS 267 : XVALB(I,IND,14) = XELA 268 : XVALB(I,IND,15) = XDPLAC 269 : * 270 : DO 42 ID = 1,IDIM 271 : FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,2+ID) 272 : FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,2+ID) 273 : 42 CONTINUE 274 : * 275 : C Rotule ] 276 : C 277 : * end do 278 : * 279 : * --- choc ........... 280 : * 281 : * ELSE IF (ITYP.EQ. ) THEN 282 : * ....... 283 : * ....... 284 : * 285 : ENDIF 286 : * 287 : END 288 : 289 : 290 : 291 : 292 : 293 : 294 :
© Cast3M 2003 - All rights reserved.
Disclaimer