Télécharger coq3sh.eso

Retour à la liste

Numérotation des lignes :

coq3sh
  1. C COQ3SH SOURCE CHAT 05/01/12 22:21:34 5004
  2. SUBROUTINE COQ3SH(QSI,ETA,XEL,VNM)
  3. C=======================================================================
  4. C
  5. C EVALUATION DES FONCTIONS DE FORME DU DKT OU COQ3
  6. C BASE SUR UNE INTERPOLATION CUBIQUE DES FCTNS DE FORME
  7. C
  8. C ENTREES
  9. C QSI ETA COORDONNEES REDUITES DU POINT DE GAUSS
  10. C XEL(3,3)=COORDONNEES LOCALES DE L ELEMENT
  11. C NOEUD 1 2 SUR L AXE QSI NOEUD 1 EN 0,0,0
  12. C NOEUD 3 DANS LE PLAN QSI ETA
  13. C SORTIES
  14. C VNM(3,9) = FONCTION DE FORME POUR W
  15. C VNM(1,1:9)= VALEUR DE W
  16. C VNM(2,1:9)= DERIVEE W,X
  17. C VNM(3,1:9)= DERIVEE W,Y
  18. C
  19. C EBERSOLT SEPTEMBRE 85
  20. C IL EXISTE UNE AUTRE ROUTINE QUI CALCULE QUE W
  21. C C EST MFDKT
  22. C=======================================================================
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8(A-H,O-Z)
  25. DIMENSION XEL(3,*),VNM(3,*),VNX(9),VNY(9)
  26. DATA UN,DEUX,TROIS,SIX,UNDEMI/1.D0,2.D0,3.D0,6.D0,.5D0/
  27. DATA XZER/0.D0/
  28. C
  29. C MISE A ZERO DE VNM
  30. C
  31. DO 10 IA=1,9
  32. DO 10 IB=1,3
  33. VNM(IB,IA)=XZER
  34. 10 CONTINUE
  35. C
  36. C CALCUL DES FONCTIONS D INTERPOLATION
  37. C
  38. AL=UN-QSI-ETA
  39. A=QSI*ETA*AL
  40. C
  41. VNM(1,1)= AL*AL*(TROIS-DEUX*AL) +A*DEUX
  42. VNM(1,2)= AL*AL*QSI +A*UNDEMI
  43. VNM(1,3)= AL*AL*ETA +A*UNDEMI
  44. C
  45. VNM(1,4)=(TROIS-DEUX*QSI)*QSI*QSI +A*DEUX
  46. VNM(1,5)=(QSI-UN)*QSI*QSI -A
  47. VNM(1,6)= QSI*QSI*ETA +A*UNDEMI
  48. C
  49. VNM(1,7)=(TROIS-DEUX*ETA)*ETA*ETA +A*DEUX
  50. VNM(1,8)= ETA*ETA*QSI +A*UNDEMI
  51. VNM(1,9)=(ETA-UN)*ETA*ETA -A
  52. C
  53. C DERIVEES PAR RAPPORT A QSI
  54. C
  55. B = ETA*(AL-QSI)
  56. C
  57. VNX(1)= SIX*AL*(AL-UN) +B*DEUX
  58. VNX(2)=(AL-DEUX*QSI)*AL +B*UNDEMI
  59. VNX(3)=-DEUX*AL*ETA +B*UNDEMI
  60. C
  61. VNX(4)= SIX*QSI*(UN-QSI) +B*DEUX
  62. VNX(5)= QSI*(TROIS*QSI-DEUX) -B
  63. VNX(6)= DEUX*QSI*ETA +B*UNDEMI
  64. C
  65. VNX(7)= B*DEUX
  66. VNX(8)= ETA*ETA +B*UNDEMI
  67. VNX(9)= -B
  68. C
  69. C DERIVEES PAR RAPPORT A ETA
  70. C
  71. C = QSI*(AL-ETA)
  72. C
  73. VNY(1)= SIX*AL*(AL-UN) +C*DEUX
  74. VNY(2)=-DEUX*QSI*AL +C*UNDEMI
  75. VNY(3)=(AL-DEUX*ETA)*AL +C*UNDEMI
  76. C
  77. VNY(4)= C*DEUX
  78. VNY(5)= -C
  79. VNY(6)= QSI*QSI +C*DEUX
  80. C
  81. VNY(7)= SIX*ETA*(UN-ETA) +C*DEUX
  82. VNY(8)= DEUX*QSI*ETA +C*UNDEMI
  83. VNY(9)= ETA*(TROIS*ETA-DEUX) -C
  84. C
  85. C VARIABLES DANS LE REPERE X,Y
  86. C
  87. X21=XEL(1,2)-XEL(1,1)
  88. X13=XEL(1,1)-XEL(1,3)
  89. Y13=XEL(2,1)-XEL(2,3)
  90. C
  91. C CHANGEMENT DE REPERE POUR W
  92. C
  93. CC =VNM(1,2)*X21-VNM(1,3)*X13
  94. VNM(1,2)=-VNM(1,3)*Y13
  95. VNM(1,3)=-CC
  96. CC =VNM(1,5)*X21-VNM(1,6)*X13
  97. VNM(1,5)=-VNM(1,6)*Y13
  98. VNM(1,6)=-CC
  99. CC =VNM(1,8)*X21-VNM(1,9)*X13
  100. VNM(1,8)=-VNM(1,9)*Y13
  101. VNM(1,9)=-CC
  102. C
  103. C CHANGEMENT DE REPERE POUR W,X
  104. C
  105. VNM(2,1)= VNX(1)/X21
  106. VNM(2,2)=-VNX(3)*Y13/X21
  107. VNM(2,3)=-VNX(2) +VNX(3)*X13/X21
  108. C
  109. VNM(2,4)= VNX(4)/X21
  110. VNM(2,5)=-VNX(6)*Y13/X21
  111. VNM(2,6)=-VNX(5) +VNX(6)*X13/X21
  112. C
  113. VNM(2,7)= VNX(7)/X21
  114. VNM(2,8)=-VNX(9)*Y13/X21
  115. VNM(2,9)=-VNX(8) +VNX(9)*X13/X21
  116. C
  117. C CHANGEMENT DE REPERE POUR W,Y
  118. C
  119. VNM(3,1)=-VNX(1)*X13/(X21*Y13) - VNY(1)/Y13
  120. VNM(3,2)= VNX(3)*X13/X21 + VNY(3)
  121. VNM(3,3)= VNX(2)*X13/Y13 -VNX(3)*X13*X13/(X21*Y13)
  122. 1 +VNY(2)*X21/Y13 -VNY(3)*X13/Y13
  123. C
  124. VNM(3,4)=-VNX(4)*X13/(X21*Y13) - VNY(4)/Y13
  125. VNM(3,5)= VNX(6)*X13/X21 + VNY(6)
  126. VNM(3,6)= VNX(5)*X13/Y13 -VNX(6)*X13*X13/(X21*Y13)
  127. 1 +VNY(5)*X21/Y13 -VNY(6)*X13/Y13
  128. C
  129. VNM(3,7)=-VNX(7)*X13/(X21*Y13) - VNY(7)/Y13
  130. VNM(3,8)= VNX(9)*X13/X21 + VNY(9)
  131. VNM(3,9)= VNX(8)*X13/Y13 -VNX(9)*X13*X13/(X21*Y13)
  132. 1 +VNY(8)*X21/Y13 -VNY(9)*X13/Y13
  133. C
  134. RETURN
  135. END
  136.  
  137.  

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