Télécharger hbmzw.eso

Retour à la liste

Numérotation des lignes :

hbmzw
  1. C HBMZW SOURCE CB215821 23/01/25 21:15:24 11573
  2.  
  3. SUBROUTINE HBMZW(NT,NHBM,NDDL,KTQ,KTKAM,dZw)
  4.  
  5. *=======================================================================
  6. * calcule la derivee Z,w
  7. * Z,w = [ Z0,w 0 0 ... ]
  8. * [ Z1,w 0 ... ]
  9. * [ ... ]
  10. * [ Zh,w ]
  11. * Zj,w = [ -2j²wM jC ]
  12. * [ -jC -2j²wM ]
  13. *=======================================================================
  14.  
  15. IMPLICIT INTEGER(I-N)
  16. IMPLICIT REAL*8(A-H,O-Z)
  17.  
  18. INTEGER NT,NHBM,NDDL,I,J
  19. REAL*8 AA,BB,Mi,Ci, dZw(NT,NT)
  20. *
  21. *-INC TMDYNC.INC
  22. ************************** debut TMDYNC.INC ****************************
  23.  
  24. * TMDYNC : FUTUR INCLUDE POUR LES SEGMENTS DE L'OPERATEUR DYNC
  25. * TODO : a extraire dans un include des que stabilise
  26. *
  27. * Segment des variables generalisees:
  28. * -----------------------------------
  29. SEGMENT MTQ
  30. REAL*8 Q1(NT1)
  31. REAL*8 OMEG,XPARA
  32. REAL*8 JAC(NT1,NT1),ZZ(NT1,NT1),RX(NT1,NT1)
  33. REAL*8 dX(NT1), dw, dv
  34. ENDSEGMENT
  35. * Q1 : vecteur des inconnues frequentielles de dimension (2h+1)*n
  36. * Q1 = {q_0 q_c1 q_s1 ... q_sh}
  37. * avec q_i vecteur de dimension n ou n=nombre de modes
  38. * OMEG : frequence fondamentale de l'approximation
  39. * XPARA: parametre de continuation (par defaut la frequence)
  40. * \in [PARINI,PARFIN]
  41. * RX : matrice jacobienne = ZZ + dFnl/dX
  42. * JAC : jacobienne des efforts non-lineaires = dFnl/dX
  43. * ZZ : matrice dynamique associee aux matrices modales K, M et C
  44. * lineaires et constantes
  45. * {dX,dw,(dv)} : vecteur tangent utilise pour la prediction
  46. *
  47. *
  48. * Segment contenant les matrices XK, XASM et XM:
  49. * ---------------------------------------------
  50. SEGMENT MTKAM
  51. REAL*8 XK(NA1,NB1K),XASM(NA1,NB1C),XM(NA1,NB1M)
  52. REAL*8 GAM(NPC1,nl1),IGAM(nl1,NPC1),DL(nl1)
  53. * REAL*8 GAMFIN(NPC2,nl1)
  54. ENDSEGMENT
  55. * XK,XASM et XM : matrices de raideur, amortissement et masse
  56. * GAM et IGAM : matrices pour la FFT et son inverse
  57. * GAMFIN :
  58. *
  59. * Segment des deformees modales:
  60. * ------------------------------
  61. * (idem DYNE)
  62. SEGMENT MTPHI
  63. INTEGER IBASB(NPLB),IPLSB(NPLB),INMSB(NSB),IORSB(NSB)
  64. INTEGER IAROTA(NSB)
  65. REAL*8 XPHILB(NSB,NPLSB,NA2,IDIMB)
  66. ENDSEGMENT
  67. *
  68. * Segment descriptif des liaisons en base A:
  69. * ------------------------------------------
  70. * (idem DYNE)
  71. SEGMENT MTLIAA
  72. INTEGER IPALA(NLIAA,NIPALA),IPLIA(NLIAA,NPLAA),JPLIA(NPLA)
  73. REAL*8 XPALA(NLIAA,NXPALA)
  74. ENDSEGMENT
  75. *
  76. * Segment descriptif des liaisons en base B:
  77. * ------------------------------------------
  78. * (idem DYNE)
  79. SEGMENT MTLIAB
  80. INTEGER IPALB(NLIAB,NIPALB),IPLIB(NLIAB,NPLBB),JPLIB(NPLB)
  81. REAL*8 XPALB(NLIAB,NXPALB)
  82. REAL*8 XABSCI(NLIAB,NIP),XORDON(NLIAB,NIP)
  83. ENDSEGMENT
  84. *
  85. * Segment representant les chargements exterieurs:
  86. * -----------------------------------------------
  87. SEGMENT MTFEX
  88. REAL*8 FEXA(NT1)
  89. REAL*8 FEXPSM(NPLB,NPC1,2,IDIMB)
  90. INTEGER BAL
  91. ENDSEGMENT
  92. * FEXA : Vecteur des efforts ext. sous la forme de coefficients de
  93. * Fourier et exprimes en base A
  94. * FEXPSM: chargement/deplacement statique lie aux modes negliges
  95. * (neglige aussi les Fnl). Dans DYNC toujours =0, cree pour
  96. * compatibilite avec calcul des Fnl.
  97. * BAL : indique s'il s'agit d'un chargement de type balourd
  98. * (cad proportionnel a OMEG**2)
  99. *
  100. * Segment "local" pour DEVLFA:
  101. * ----------------------------
  102. SEGMENT LOCLFA
  103. REAL*8 FTEST(NA1,4)
  104. ENDSEGMENT
  105. *
  106. * Segment "local" pour DEVLB1:
  107. * ----------------------------
  108. SEGMENT LOCLB1
  109. REAL*8 FTEST2(NPLB,6)
  110. ENDSEGMENT
  111. *
  112. * Segment contenant les variables au cours d un pas de temps:
  113. * ----------------------------------------------------------
  114. SEGMENT MTPAS
  115. REAL*8 FTOTA(NA1,4),FTOTB(NPLB,IDIMB),FTOTBA(NA1)
  116. REAL*8 XPTB(NPLB,2,IDIMB),FINERT(NA1,4)
  117. REAL*8 XVALA(NLIAA,4,NTVAR),XVALB(NLIAB,4,NTVAR)
  118. REAL*8 FEXB(NPLB,2,IDIM),XCHPFB(2,NLIAB,4,NPLB)
  119. REAL*8 KTOTXA(NA1,NA1),KTOTVA(NA1,NA1)
  120. REAL*8 KTOTXB(NPLB,IDIMB,IDIMB), KTOTVB(NPLB,IDIMB,IDIMB)
  121. ENDSEGMENT
  122. * FTOTA/B/BA : forces sur base A, B et B projetees sur A
  123. * XPTB : deplacement du point d'une liaison en base B
  124. * XVALA/B : grandeurs de la liaison en base A/B a stocker
  125. * FEXB : forces exterieures en base B (a priori uniquement
  126. * pour les moments appliques aux rotations rigides ?)
  127. * XCHPFB : forces de contact en base B (lorsqu'on considere un
  128. * maillage de contact dans certaines liaisons)
  129. * KTOTXA/XB/VA/VB : Jacobienne par rapport au deplacement/vitesse en
  130. * base A/B (= contributions a dFnl/dX)
  131. *
  132. *
  133. * Segment des points de reference des modes (base A):
  134. * --------------------------------------------------
  135. SEGMENT MPREF
  136. INTEGER IPOREF(NPREF)
  137. ENDSEGMENT
  138. *
  139. * Segment des points en base B:
  140. * -----------------------------
  141. SEGMENT NCPR(NBPTS)
  142. * NCRP(#global) = #local dans XPTB (1er indice)
  143. *
  144. * Segment des parametres numeriques pour la continuation:
  145. * ------------------------------------------------------
  146. SEGMENT PARNUM
  147. CHARACTER*4 TYPS
  148. REAL*8 DS,DSMAX,DSMIN,ANGMIN,ANGMAX,ITERMOY,ISENS,TOLMIN
  149. REAL*8 PARINI,PARFIN
  150. INTEGER ITERMAX,NBPAS
  151. LOGICAL JANAL
  152. ENDSEGMENT
  153. *
  154. * Segment des resultats:
  155. * ---------------------
  156. SEGMENT PSORT
  157. REAL*8 QSAVE(NT1,NPAS),WSAVE(NPAS),LSAVE(2,2*NA1,NPAS)
  158. REAL*8 VSAVE(NPAS)
  159. LOGICAL ZSAVE(NPAS)
  160. CHARACTER*2 TYPBIF(NBIFU)
  161. REAL*8 QBIFU(NT1,NBIFU),WBIFU(NBIFU),WBIF2(NBIFU)
  162. REAL*8 QPSIR(NT1,NBIFU),QPSII(NT1,NBIFU)
  163. INTEGER CBIF
  164. ENDSEGMENT
  165. * QSAVE(i,j) = Q harmonique i au pas j
  166. * VSAVE(j) = parametre de continuation (si non w) au j-eme pas
  167. * ZSAVE(j) = stabilite au j-eme pas
  168. * LSAVE(1,j) : partie reelle de l'exposant de Floquet
  169. * LSAVE(2,j) : partie imaginaire de l'exposant de Floquet
  170. * TYPBIF = {LimitPoint, BranchPoint, NeimarkSacker, PeriodDoubling}
  171. * QBIFU,WBIFU : vecteur Q et w au point de bifurcation
  172. * WBIF2 : partie imaginaire de l'exposant de Floquet
  173. * QPSIR,QPSII : vecteur propre au point de bifurcation
  174.  
  175. * Segment des tableaux de travail:
  176. * -------------------------------
  177. SEGMENT MTEMP
  178. REAL*8 RW(NT1),A,T0(NT1+1),TP(NT1+1),AMPX,AUX
  179. REAL*8 T02(NT1+2), TP2(NT1+2)
  180. INTEGER IPIV(NT1),IPIV2(NT1+1),IPIV3(NT1+2)
  181. REAL*8 res
  182. REAL*8 RHS(NT1+1),Ja(NT1+1,NT1+1)
  183. REAL*8 QOLD(NT1),OMEGOLD
  184. REAL*8 MATJA(NT1+1,NT1+1),Rw2(NT1)
  185. REAL*8 Jaa(NT1+2,NT1+2),RHS2(NT1+2),Ra(NT1),VV,VVOLD
  186. ENDSEGMENT
  187. * Jacobiennes augmentees
  188. * Ja : [ RX Rw ; dX dw]
  189. * Jaa: [ RX Rw Ra; gx 0 0; dX dw da]
  190.  
  191. * SEGMENT NNNN
  192. * REAL*8 IGAM2(nl1,NPC2),DL2(nl1)
  193. * ENDSEGMENT
  194.  
  195. *************************** fin TMDYNC.INC *****************************
  196.  
  197. *
  198. * Segment des variables
  199. MTQ=KTQ
  200. * Segment des proprietes mecaniques
  201. MTKAM=KTKAM
  202.  
  203. * Initialisation
  204. c DO I = 1,NT
  205. DO J = 1,NT
  206. DO I = 1,NT
  207. dZw(I,J)=0.D0
  208. ENDDO
  209. ENDDO
  210. *
  211. * Remplissage
  212. DO J=2,2*NHBM,2
  213. DO I=1,NDDL
  214. c Mi = XM(I,1)
  215. c Ci = XASM(I,1)
  216. c AA = -2.*(OMEG*(J/2)**2)*Mi
  217. c BB = (J/2)*Ci
  218. AA = -2.D0 * (OMEG*(J/2)**2) * XM(I,1)
  219. BB = (J/2) * XASM(I,1)
  220. *
  221. dZw(NDDL*(1+(J-2))+I,NDDL*(1+(J-2))+I) = AA
  222. dZw(NDDL*(1+(J-2))+I,NDDL*(1+(J-1))+I) = BB
  223. dZw(NDDL*(1+(J-1))+I,NDDL*(1+(J-2))+I) = -BB
  224. dZw(NDDL*(1+(J-1))+I,NDDL*(1+(J-1))+I) = AA
  225. ENDDO
  226. ENDDO
  227. END
  228.  
  229.  
  230.  
  231.  

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