Télécharger mocon4.eso

Retour à la liste

Numérotation des lignes :

mocon4
  1. C MOCON4 SOURCE MB234859 26/05/13 21:15:07 12548
  2. C----------------------------------------------------------------------
  3. C Verification et adaptation du maillage de contact
  4. C
  5. C Verifier les elements supports du maillage de contact.
  6. C S'il ne s'agit pas de SEG2 (2D) ou de TRI3 (3D), adapter le
  7. C maillage et construire, s'il s'agit d'elements quadratiques,
  8. C les conditions cinematiques a imposer aux noeuds milieu.
  9. C
  10. C Entrees :
  11. C --------
  12. C MELEME : Pointeur sur le maillage du modele de contact.
  13. C
  14. C Sorties :
  15. C --------
  16. C IPMAI : Si le type d'element n'etait pas celui attendu et que
  17. C le maillage a pu etre adapte, pointeur sur ce maillage.
  18. C Sinon, pointeur sur le maillagei initial.
  19. C IPRIG : Si necessaire, pointeur sur un objet MRIGID imposant des
  20. C conditions cinematiques sur les noeuds milieu. Sinon vaut 0
  21. C
  22. C Remarque :
  23. C ----------
  24. C En presence d'elements quadratiques, ces derniers sont remplaces par
  25. C des elements lineaires.
  26. C Si on souhaite remplace 1 element quadratique par 1 element lineaire,
  27. C il faut uitliser la subroutine CHANL2 au lieu de CHANGE.
  28. C
  29. C Appelee par : MOCON1
  30. C----------------------------------------------------------------------
  31. SUBROUTINE MOCON4(MELEME,IPMAI,IPRIG)
  32. C
  33. IMPLICIT INTEGER(I-N)
  34. IMPLICIT REAL*8 (A-H,O-Z)
  35. C
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC SMELEME
  39. -INC CCGEOME
  40. C
  41. IPMAI=0
  42. IPRIG=0
  43. C
  44. NBMAI0=LISOUS(/1)
  45. NBMAI=NBMAI0
  46. IF (NBMAI0.EQ.0) NBMAI=1
  47. IPT1=MELEME
  48. C
  49. C Verification du type d'element
  50. DO IMAI=1,NBMAI
  51. C
  52. IF (NBMAI0.NE.0) IPT1=LISOUS(IMAI)
  53. C
  54. ITYEL = IPT1.ITYPEL
  55. IF (IDIM.EQ.2) THEN
  56. C Elements SEG2 ou SEG3
  57. IF ((ITYEL.NE.2).AND.(ITYEL.NE.3)) CALL ERREUR(16)
  58. ELSEIF (IDIM.EQ.3) THEN
  59. C Elements TRI3 TRI6 QUA4 ou QUA8
  60. IF ((ITYEL.NE.4).AND.(ITYEL.NE.6).AND.
  61. & (ITYEL.NE.8).AND.(ITYEL.NE.10)) CALL ERREUR(16)
  62. ENDIF
  63. IF (IERR.NE.0) RETURN
  64. ENDDO
  65. C
  66. CALL PLACE(NOMS,NOMBR,IS2,'SEG2')
  67. CALL PLACE(NOMS,NOMBR,IT3,'TRI3')
  68. CALL PLACE(NOMS,NOMBR,IQ4,'QUA4')
  69. C
  70. C Modifier les elements si necessaire
  71. DO IMAI=1,NBMAI
  72. IRI2=0
  73. IPT2=0
  74. IF (NBMAI0.NE.0) IPT1=LISOUS(IMAI)
  75. ITYEL = IPT1.ITYPEL
  76. IF (IDIM.EQ.2) THEN
  77. IF (ITYEL.EQ.3) THEN
  78. CALL RELAMI(0,IPT1,IRI2)
  79. C Changer SEG3 -> SEG2
  80. CALL CHANGE(IPT1,IS2)
  81. IPT2=IPT1
  82. ENDIF
  83. ELSEIF (IDIM.EQ.3) THEN
  84. IF (ITYEL.EQ.6) THEN
  85. IPT0=IPT1
  86. CALL RELAMI(0,IPT0,IRI2)
  87. C Changer TRI6 -> TRI3
  88. CALL CHANGE(IPT1,IT3)
  89. IPT2=IPT1
  90. ELSEIF (ITYEL.EQ.8) THEN
  91. C Changer QUA4 -> TRI3
  92. CALL CHANGE(IPT1,IT3)
  93. IPT2=IPT1
  94. ELSEIF (ITYEL.EQ.10) THEN
  95. IPT0=IPT1
  96. CALL RELAMI(0,IPT0,IRI2)
  97. C Changer QUA8 -> TRI3
  98. CALL CHANGE(IPT1,IT3)
  99. IPT2=IPT1
  100. ENDIF
  101. IF (IERR.NE.0) RETURN
  102. ENDIF
  103. C
  104. C Fusionner les rigidites
  105. IF (IRI2.NE.0) THEN
  106. IF (IPRIG.NE.0) THEN
  107. CALL FUSRIG(IRI2,IPRIG,IRI3)
  108. IPRIG=IRI3
  109. ELSE
  110. IPRIG=IRI2
  111. ENDIF
  112. ENDIF
  113. C
  114. C Fusionner les maillages
  115. IF (IPT2.NE.0) THEN
  116. IF (IPMAI.NE.0) THEN
  117. CALL FUSE(IPT2,IPMAI,IPT3,.FALSE.)
  118. IPMAI=IPT3
  119. ELSE
  120. IPMAI=IPT2
  121. ENDIF
  122. ELSE
  123. IPMAI=IPT1
  124. ENDIF
  125. C
  126. ENDDO
  127. IF (IPMAI.EQ.0) IPMAI=MELEME
  128. END
  129.  
  130.  

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