Télécharger matp2.eso

Retour à la liste

Numérotation des lignes :

matp2
  1. C MATP2 SOURCE CB215821 19/08/20 21:19:38 10287
  2. SUBROUTINE MATP2(xMATR1,THETA,DELTAT,MELVAL,xMATRI)
  3. C-----------------------------------------------------------------------
  4. C Calcul des matrices élémentaires en trace de charge pour une zone
  5. C élémentaire d'un maillage dans le cadre de la résolution des équations
  6. C de Darcy par une méthode d'éléments finis mixtes hybrides.
  7. C-----------------------------------------------------------------------
  8. C
  9. C---------------------------
  10. C Parametres Entree/Sortie :
  11. C---------------------------
  12. C -1
  13. C E/ IMATR1 : DARCY de la zone en cours (contient RE ).
  14. C E/ THETA : Parametre de discretisation temporelle (theta-methode)
  15. C E/ DELTAT : Pas de temps
  16. C E/ MELVAL : Pointeur vers Ck|K| pour les éléments de la zone en cours
  17. C /S IMATRI : Pointeur vers matrices elem. finales de la zone en cours
  18. C
  19. C THETA, DELTAT et MELVAL sont utilisés en transitoire UNIQUEMENT
  20. C
  21. C
  22. C----------------------
  23. C Tableaux de travail :
  24. C----------------------
  25. C
  26. C NBDDL : Nombre de noeuds support des ddl dans l'element
  27. C (dimension des matrices masses elementaires)
  28. C NBELEM : Nombre d'element dans le maillage elementaire
  29. C (nombre de matrices masses elementaires)
  30. C
  31. C-----------------------------------------------------------------------
  32. C
  33. C Langage : ESOPE + FORTRAN77
  34. C
  35. C Auteurs : 08/93 F.DABBENE - Cas permanent
  36. C 09/94 X.NOUVELLON - Extension au cas transitoire
  37. C
  38. C-----------------------------------------------------------------------
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8 (A-H,O-Z)
  41. *
  42. -INC SMCHAML
  43. -INC SMRIGID
  44. *
  45. SEGMENT MTRAV
  46. REAL*8 RLIGNE(NBDDL),RCOLON(NBDDL)
  47. ENDSEGMENT
  48. *
  49. * Recuperation des caracteristiques de RIGIDITE de sous type DARCY
  50. *
  51. SEGACT xMATR1
  52. NBELEM = xMATR1.re(/3)
  53. * XMATRI = IMATR1.IMATTT(1)
  54. SEGACT XMATRI
  55. NBDDL = RE(/1)
  56. SEGDES XMATRI
  57. *
  58. * Création du segment de travail et initialisations pour XMATRI
  59. *
  60. NLIGRP = NBDDL
  61. NLIGRD = NBDDL
  62. SEGINI MTRAV
  63. *
  64. *-------------------------------------------------
  65. * BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE
  66. *-------------------------------------------------
  67. *
  68. SEGACT xMATRI*MOD
  69. IF (MELVAL.NE.0) SEGACT MELVAL
  70. DO 90 IEL=1,NBELEM
  71. *
  72. *- Recuperation de la matrice elementaire
  73. *
  74. * XMATR1 = IMATR1.IMATTT(IEL)
  75. ** SEGACT XMATR1
  76. * SEGINI , XMATRI=XMATR1
  77. *
  78. * SEGDES XMATR1
  79. *
  80. *- Calcul de la somme des coefs pour une ligne ; une colonne
  81. *- -1 t t -1
  82. *- LIGNE = RE * DIV ; COLON = DIV * RE
  83. *- -1 t
  84. *- Calcul de CONSD = DIV * RE * DIV
  85. *
  86. CONSD = 0.D0
  87. DO 20 I=1,NBDDL
  88. RCOLON(I) = 0.D0
  89. RLIGNE(I) = 0.D0
  90. DO 10 J=1,NBDDL
  91. RCOLON(I) = RCOLON(I) + RE(J,I,iel)
  92. RLIGNE(I) = RLIGNE(I) + RE(I,J,iel)
  93. 10 CONTINUE
  94. CONSD = CONSD + RLIGNE(I)
  95. 20 CONTINUE
  96. *
  97. * Calcul de la matrice élémentaite en permanent ou en transitoire
  98. *
  99. IF (MELVAL.EQ.0) THEN
  100. DO 40 I=1,NBDDL
  101. DO 30 J=1,NBDDL
  102. RE(I,J,iel) = RCOLON(J)*RLIGNE(I)/CONSD-RE(I,J,iel)
  103. 30 CONTINUE
  104. 40 CONTINUE
  105. ELSE
  106. COEF=THETA*CONSD*DELTAT/(VELCHE(1,IEL)+THETA*CONSD*DELTAT)
  107. DO 60 I=1,NBDDL
  108. DO 50 J=1,NBDDL
  109. RE(I,J,iel)=RCOLON(J)*RLIGNE(I)*COEF/CONSD-RE(I,J,iel)
  110. 50 CONTINUE
  111. 60 CONTINUE
  112. ENDIF
  113. *
  114. * Remplissage de IMATRI
  115. *
  116. * IMATTT(IEL) = XMATRI
  117. * SEGDES XMATRI
  118. 90 CONTINUE
  119. *
  120. * Desactivation des segments
  121. *
  122. SEGDES xMATRI,xMATR1
  123. END
  124.  
  125.  
  126.  

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