Télécharger MATHEL.INC

Retour à la liste

Numérotation des lignes :

  1. c ********** parametres pour le non local **************************
  2.  
  3. c NBVIA3D nombre de non locales actives transmises par c'modele'
  4. c INLVIA3D(l): pointeur sur les variables actives transmis par 'cmodele'
  5. c NMAT3 : nombre de parametres du materiaux support
  6. c (renforts et decalage castem compris)
  7.  
  8. c ** initialisation des tableaux pour Helmholtz ********************
  9. do i=1,NB_HELM
  10. c capacite
  11. CAPAH(i)=1.d0
  12. c source
  13. DEPIH(i)=0.d0
  14. c blocage a la valeur initial
  15. BLOQH(i)=.false.
  16. c valeur initiale
  17. INITH(i)=0.d0
  18. c non lineaire par defaut
  19. LINEH(i)=0.d0
  20. do j=1,3
  21. c diffusions principales orthotrope
  22. DIFFH(i,j) =0.d0
  23. do k=1,3
  24. c directions des diffusions principales
  25. if(j.eq.k) then
  26. VECTH(i,j,k)=1.d0
  27. else
  28. VECTH(i,j,k)=0.d0
  29. end if
  30. end do
  31. end do
  32. end do
  33.  
  34. c ****** reperage des variables actives si on est en non local *****
  35. if(istep.ne.0) then
  36. c recuperation des parametres materiaux pour VARI non locales actives
  37. c print*,'Etape 1-1 ds charge_materiaux_helmholtz.h istep',istep
  38. do i=1,NBVIA3D
  39. c capacite
  40. CAPAH(i)=xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+1)
  41. c print*,'CAPAH(',i,')=',CAPAH(i)
  42. c blocage
  43. if(xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+2).eq.1.) then
  44. BLOQH(i)=.true.
  45. else
  46. BLOQH(i)=.false.
  47. end if
  48. c print*,'BLOQH(',i,')=',xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+2)
  49. c # ,'->',BLOQH(i)
  50. c valeur imposee sur le blocage
  51. DEPIH(i)=xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+3)
  52. c print*,'DEPIH(',i,')=',DEPIH(i)
  53. c valeur initiale
  54. INITH(i)=xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+4)
  55. c print*,'INITH(',i,')=',INITH(i)
  56. c boucle sur les diffusions principales
  57. c valeur initiale
  58. LINEH(i)=int(xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+5))
  59. c print*,'INITH(',i,')=',INITH(i)
  60. c boucle sur les diffusions principales
  61. do j=1,3
  62. c coefficient de diffusion
  63. DIFFH(i,j)=xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+5+
  64. # +(j-1)*4+1)
  65. c print*,'DIFFH(',i,j,')=',DIFFH(i,j)
  66. c longueur caracteristique
  67. LCARH(i,j)=2.d0*(DIFFH(i,j)/CAPAH(i))**(1./2.)
  68. c print*,'LCARH(',i,j,')=',LCARH(i,j)
  69. c boucle sur les composantes du vecteur direction de la diffusion
  70. vnorm=0.d0
  71. do k=1,3
  72. VECTH(i,j,k)=xmat(NMAT3+(i-1)*NB_PARA_PAR_HELM+5+
  73. # +(j-1)*4+1+k)
  74. c print*,'VECTH(',i,j,k,')=',VECTH(i,j,k)
  75. vnorm=vnorm+VECTH(i,j,k)**2
  76. end do
  77. vnorm=sqrt(vnorm)
  78. if(vnorm.eq.0.) then
  79. c si la norme est nulle on suppose que les LCARH
  80. c sont portees par le repere fixe
  81. write(*,'(a22,1x,i2,a16,i2)')
  82. # 'Il manque la direction',j,' pour Helmholtz ',i
  83. ierr1=1
  84. return
  85. end if
  86. c matrice des tailles associees aux diffusions
  87. if(j.eq.1) then
  88. do k=1,3
  89. do l=1,3
  90. TAILH(i,k,l)=LCARH(i,j)*
  91. # (VECTH(i,j,k)*VECTH(i,j,l))
  92. end do
  93. end do
  94. else
  95. do k=1,3
  96. do l=1,3
  97. TAILH(i,k,l)=TAILH(i,k,l)+
  98. # LCARH(i,j)*(VECTH(i,j,k)*VECTH(i,j,l))
  99. end do
  100. end do
  101. end if
  102. c fin de la construction de la matrice des tailles
  103. end do
  104. C print*,'Dans charge_materiaux_helmholtz.h (MATHEL.INC)'
  105. C do j=1,3
  106. C do k=1,3
  107. C print*,'TailH(',i,j,k,')=',tailh(i,j,k)
  108. C end do
  109. C end do
  110. c fin de la boucle sur les diffusions principales
  111. end do
  112. c fin de la boucle sur les variables de Helmholtz
  113. end if
  114. c fin du chargement des parametres non locaux
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  

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