Chapitre 3
3.3.5. Programme (matrice_K) de Calcul de la matrice de
rigidité élémentaire pour un élément
tétraédrique à 4 noeuds
3.3.5.1. Structure du programme
? Données du problème (Input)
- Module de Young E ;
- Coefficient de Poisson y ;
- Coordonnées des noeuds de l'élément
réel (xi, yi, zi).
? Résultat (Output):
- Matrice de rigidité élémentaire Ke
3.3.5.2. Code source en FORTRAN
Program matrice_k
implicit none
integer, parameter :: n=3 ! dimension du tableau
real, dimension(1:3,1:12) ::B1,B2,B3,B4
real, dimension(1:3,1:3):: jacb_inv
integer :: i,j,lin,col,lin1,col1
real, dimension(1:12,1:12)::Ke
real, dimension(1:6,1:12)::B,res1,res2,res3,res4
real, dimension(1:12,1:6)::Bt,res5
real, dimension(1:6,1:3)::B_1,B_2,B_3,B_4
real, dimension(1:6,1:6)::H !!!!!!! matrice des constantes
d'élasticté
real::x_1,y_1,z_1,x_2,y_2,z_2,x_3,y_3,z_3,x_4,y_4,z_4,vol,det_jab,nu,E
real,dimension(1:3,1:4)::c_noeud
lin=6;col=12;;lin1=6;col1=6
!!! Entrer des donnees
26 write(*,*)"Entrer le module de young E et le coefficient de
POISSON v"
read(*,*,err=26)E,nu
!!!!!! Verification de la valeur de E et nu
if ((E.le.0).or.((nu.lt.0).or.(nu.gt.0.4999))) then
write(*,28)
write(*,*)" Veuillez entrer des valeurs convenables pour E et v
(E>0)
(0<v<0.5) "
write(*,28)
goto 26
endif
do j=1,4
27 write(*,24)"Entrer les coordonnees du noeud ",j 24
format(x,A,2x,I1)
read(*,*,err=27)c_noeud(1,j),c_noeud(2,j),c_noeud(3,j) enddo
write(*,28)
!!! Affectation des coordonnées
x_1=c_noeud(1,1);y_1=c_noeud(2,1);z_1=c_noeud(3,1)
x_2=c_noeud(1,2);y_2=c_noeud(2,2);z_2=c_noeud(3,2)
x_3=c_noeud(1,3);y_3=c_noeud(2,3);z_3=c_noeud(3,3)
x_4=c_noeud(1,4);y_4=c_noeud(2,4);z_4=c_noeud(3,4) !!!!!!! vérification
de la singularité de J if
((det_jab(x_1,y_1,z_1,x_2,y_2,z_2,x_3,y_3,z_3,x_4,y_4,z_4)).eq.0) then
write(*,*)" la matrice jacobienne de transformation est singuliere "
write(*,*)" cela peut etre du a une grande distorsion de l'element "
write(*,*)" Veuillez changer svp les coordonnees des noeuds"
write(*,28);28 format(/:)
86 /176
|