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 
 |