Télécharger mocon4.eso

Retour à la liste

Numérotation des lignes :

mocon4
  1. C MOCON4 SOURCE MB234859 26/10/02 21:15:05 12659
  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. IF (NBMAI0.NE.0) IPT1=LISOUS(IMAI)
  74. ITYEL = IPT1.ITYPEL
  75. IF (IDIM.EQ.2) THEN
  76. IF (ITYEL.EQ.2) THEN
  77. IPT2=IPT1
  78. ELSEIF (ITYEL.EQ.3) THEN
  79. CALL RELAMI(0,IPT1,IRI2)
  80. C Changer SEG3 -> SEG2
  81. CCC CALL CHANGE(IPT1,IS2)
  82. CCC IPT2=IPT1
  83. CALL CHANL2(IPT1,IPT2)
  84. ENDIF
  85. ELSEIF (IDIM.EQ.3) THEN
  86. IF (ITYEL.EQ.4) THEN
  87. IPT2=IPT1
  88. ELSEIF (ITYEL.EQ.6) THEN
  89. IPT0=IPT1
  90. CALL RELAMI(0,IPT0,IRI2)
  91. C Changer TRI6 -> TRI3
  92. CCC CALL CHANGE(IPT1,IT3)
  93. CCC IPT2=IPT1
  94. CALL CHANL2(IPT1,IPT2)
  95. ELSEIF (ITYEL.EQ.8) THEN
  96. C Changer QUA4 -> TRI3
  97. CALL CHANGE(IPT1,IT3)
  98. IPT2=IPT1
  99. ELSEIF (ITYEL.EQ.10) THEN
  100. IPT0=IPT1
  101. CALL RELAMI(0,IPT0,IRI2)
  102. C Changer QUA8 -> TRI3
  103. CALL CHANL2(IPT1,IPT2)
  104. IPT1=IPT2
  105. CALL CHANGE(IPT1,IT3)
  106. IPT2=IPT1
  107. ENDIF
  108. IF (IERR.NE.0) RETURN
  109. ENDIF
  110. C
  111. C Fusionner les rigidites
  112. IF (IRI2.NE.0) THEN
  113. IF (IPRIG.NE.0) THEN
  114. CALL FUSRIG(IRI2,IPRIG,IRI3)
  115. IPRIG=IRI3
  116. ELSE
  117. IPRIG=IRI2
  118. ENDIF
  119. ENDIF
  120. C
  121. C Fusionner les maillages
  122. IF (IPMAI.NE.0) THEN
  123. CALL FUSE(IPT2,IPMAI,IPT3,.FALSE.)
  124. IPMAI=IPT3
  125. ELSE
  126. IPMAI=IPT2
  127. ENDIF
  128. C
  129. ENDDO
  130. IF (IPMAI.EQ.0) IPMAI=MELEME
  131. END
  132.  
  133.  
  134.  

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