Télécharger bsigel.eso

Retour à la liste

Numérotation des lignes :

bsigel
  1. C BSIGEL SOURCE OF166741 25/02/21 21:15:11 12166
  2.  
  3. SUBROUTINE BSIGEL (IPMAIL,IPMINT,NBPGAU,IVASTR,NSTRS,LRE,LPERM,
  4. & IVAFOR,NFOR)
  5.  
  6. *----------------------------------------------------------------------*
  7. * CALCUL DES INDUCTIONS (FLUX) ELECTRIQUES NODAUX EQUIVALENTES *
  8. * Formulation 'ELECTROSTATIQUE' (MFR=71) - Elements MASSIFs *
  9. *----------------------------------------------------------------------*
  10. * IPMAIL (E) Pointeur sur un segment MELEME *
  11. * IPMINT (E) Pointeur sur un segment MINTE (ACTIF) *
  12. * NBPGAU (E) Nombre de points d'integration pour les "contraintes" *
  13. * IVASTR (E) pointeur sur un segment MPTVAL contenant les *
  14. * les melvals de contraints *
  15. * NSTRS (E) Nombre de composantes de "contraintes/deformations" *
  16. * LRE (E) Nombre de DDL dans la matrice de "rigidite" *
  17. * LPERM (E) Nombre de composantes de "deformations" = NSTRS *
  18. * IVAFOR (E) pointeur sur un segment MPTVAL contenant les *
  19. * les melvals de forces *
  20. * NFOR (E) Nombre de composantes de "flux" LRE = NBNN * NFOR *
  21. *----------------------------------------------------------------------*
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24.  
  25. -INC PPARAM
  26. -INC CCOPTIO
  27. -INC CCREEL
  28.  
  29. -INC SMCHAML
  30. -INC SMELEME
  31. -INC SMCOORD
  32. -INC SMINTE
  33.  
  34. -INC TMPTVAL
  35.  
  36. SEGMENT MWRK1
  37. REAL*8 XFORC(LRE), XFLUE(NSTRS), XEL(3,NBNN)
  38. REAL*8 SHP(6,NBNN), BGRELE(LPERM,LRE)
  39. ENDSEGMENT
  40.  
  41. MELEME = IPMAIL
  42. NBNN = meleme.NUM(/1)
  43. NBELEM = meleme.NUM(/2)
  44.  
  45. MINTE = IPMINT
  46. * NBPGAU = minte.POIGAU(/1)
  47.  
  48. SEGINI,MWRK1
  49.  
  50. C-------------------------
  51. C Boucle sur les elements
  52. C-------------------------
  53. DO IEL = 1, NBELEM
  54.  
  55. C - Recuperation des coordonnees des noeuds de l element IEL
  56. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IEL,XEL)
  57.  
  58. C - Initialisation des flux nodaux equivalents
  59. DO ICOMP = 1, LRE
  60. XFORC(ICOMP) = XZero
  61. ENDDO
  62. C
  63. MPTVAL = IVASTR
  64. C-- -- -- -- -- -- -- -- --
  65. C - Boucle sur les points de Gauss
  66. C-- -- -- -- -- -- -- -- --
  67. ISDJC = 0
  68. DO IGAU = 1, NBPGAU
  69. C -- Calcul de la matrice Bel et du jacobien au point de Gauss IGAU
  70. CALL BELEC(XEL,SHPTOT(1,1,IGAU),NBNN,LPERM,1,
  71. & SHP,BGRELE,DJAC)
  72. IF (DJAC.EQ.XZero) THEN
  73. INTERR(1) = IEL
  74. CALL ERREUR(259)
  75. GOTO 999
  76. ENDIF
  77. IF (DJAC.LT.XZero) ISDJC = ISDJC+1
  78. DJAC = ABS(DJAC)*POIGAU(IGAU)
  79. C -- Recuperation des inductions Del au point d'integration (IGAU)
  80. DO ICOMP = 1, NSTRS
  81. MELVAL = IVAL(ICOMP)
  82. IGMN = MIN(IGAU,VELCHE(/1))
  83. IEMN = MIN(IEL ,VELCHE(/2))
  84. XFLUE(ICOMP) = VELCHE(IGMN,IEMN)
  85. ENDDO
  86. C -- Calcul du terme Bel * Del et de la contribution du point IGAU
  87. DO ICOMP = 1, LRE
  88. r_z = XZero
  89. DO JCOMP = 1, NSTRS
  90. r_z = r_z + BGRELE(JCOMP,ICOMP) * XFLUE(JCOMP)
  91. ENDDO
  92. XFORC(ICOMP) = XFORC(ICOMP) + r_z*DJAC
  93. ENDDO
  94. C-- -- -- -- -- -- -- -- --
  95. ENDDO
  96. C-- -- -- -- -- -- -- -- --
  97. IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN
  98. INTERR(1) = IEL
  99. CALL ERREUR(195)
  100. GOTO 999
  101. ENDIF
  102. C - Stockage de XFORC dans le MELVAL IVAFOR
  103. MPTVAL = IVAFOR
  104. IE = 0
  105. DO IGAU = 1, NBNN
  106. DO ICOMP = 1, NFOR
  107. IE = IE + 1
  108. MELVAL = IVAL(ICOMP)
  109. IEMN = MIN(IEL,VELCHE(/2))
  110. VELCHE(IGAU,IEMN) = XFORC(IE)
  111. ENDDO
  112. ENDDO
  113. C-------------------------
  114. ENDDO
  115. C-------------------------
  116.  
  117. 999 CONTINUE
  118. SEGSUP,MWRK1
  119.  
  120. RETURN
  121. END
  122.  
  123.  
  124.  

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