b3_tai
C B3_TAI SOURCE PV090527 23/01/27 21:15:08 11574
subroutine b3_tai(xmat,nmat,ifou,mfr1,nmat1,
# t33,n33,err1,xe3d,NBNMAX3D,NBNB3D,idimb3d,Mjacob,Mnoeuds)
c chargement des tailles de l element en cours pour la procedure
c de Hillerborgh, en fonction de la formulation
c declarations externes
real*8 ray
integer nmat,ifou,mfr1,nmat1,err1
real*8 xmat(nmat)
real*8 n33(3,3)
real*8 t33(3,3)
integer NBNMAX3D,NBNB3D,idimb3d
real*8 xe3d(3,NBNMAX3D)
logical Mjacob,Mnoeuds
c print*,'ds b3_tai:'
c print*,'nmat,ifou,mfr1,nmat1'
c print*, nmat,ifou,mfr1,nmat1
c nombre de parametres obligatoires endommagement:nmat1
c initiation variable logique methode de calcul de li
c a reinitialiser ds nfin3d,majw3d,endo3d egalement
if (Mjacob) then
c methode des fonctions de forme
print*,'Cette methode n est plus utilisee pour estimer'
print*,'la taille des elements lineaires'
ierr1=1
return
C if ((mfr1.eq.1).or.(mfr1.eq.33)) then
C c elements massifs(1) ou poreux(33)
C if (ifou.eq.2) then
C c formulation tridimensionelle
C t33(1,1)=xmat(nmat1+1)
C t33(2,2)=xmat(nmat1+2)
C t33(3,3)=xmat(nmat1+3)
C t33(1,2)=xmat(nmat1+4)
C t33(1,3)=xmat(nmat1+5)
C t33(2,3)=xmat(nmat1+6)
C t33(2,1)=t33(1,2)
C t33(3,1)=t33(1,3)
C t33(3,2)=t33(2,3)
C n33(1,1)=xmat(nmat1+7)
C n33(2,2)=xmat(nmat1+8)
C n33(3,3)=xmat(nmat1+9)
C n33(1,2)=xmat(nmat1+10)
C n33(1,3)=xmat(nmat1+11)
C n33(2,3)=xmat(nmat1+12)
C n33(2,1)=n33(1,2)
C n33(3,1)=n33(1,3)
C n33(3,2)=n33(2,3)
C end if
C if ((ifou.eq.0).or.(ifou.eq.-1)) then
C c mode axisymetrique(0) ou deformation plane(-1)
C c chargement des matrices des tailles de EF
C t33(1,1)=xmat(nmat1+1)
C t33(2,2)=xmat(nmat1+2)
C if(ifou.eq.0) then
C c axisymetrie
C t33(3,3)=xmat(nmat1+8)
C c print*,t33(3,3)
C else
C c deformations planes on recupere l epaisseur vraie
C t33(3,3)=xmat(nmat1+8)
C end if
C t33(1,2)=xmat(nmat1+4)
C t33(1,3)=0.d0
C t33(2,3)=0.d0
C t33(2,1)=t33(1,2)
C t33(3,1)=t33(1,3)
C t33(3,2)=t33(2,3)
C n33(1,1)=xmat(nmat1+5)
C n33(2,2)=xmat(nmat1+6)
C n33(3,3)=1.d0
C n33(1,2)=xmat(nmat1+7)
C n33(1,3)=0.d0
C n33(2,3)=0.d0
C n33(2,1)=n33(1,2)
C n33(3,1)=n33(1,3)
C n33(3,2)=n33(2,3)
C end if
C else
C print*,'b3_tai, non implante pour cette formulation'
C err1=1
C return
C end if
C c variable logique localisation
C c la transformation de Hillerborgh n est activee que si t33 non nul
C c c a d fourni en prametres materiaux
C if ((t33(1,1).eq.0.).and.Mjacob) then
C print*, 'Traitement Hillerborgh necessite les tailles'
C print*, 'Dans b3_tai'
C err1=1
C return
C end if
else
c on utilisera la methode des noeuds ou la non locale on met a un
c les matrices pour la methode des jacobiennes
do i=1,3
do j=1,3
if(i.eq.j) then
t33(i,j)=1.d0
n33(i,j)=1.d0
else
t33(i,j)=0.d0
n33(i,j)=0.d0
end if
end do
end do
c print*,'dans b3_tai la methode des neouds n est pas appelee'
c call afic33(t33)
c read*
c ierr=1
end if
return
end
******************************************************************************************
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales