==================================================================== programmes Maple - 24/03/06 Méthode des éléments finis : treillis plan à noeuds articulés Yves DEBARD Institut Universitaire de Technologie du MANS Département Génie Mécanique et Productique Avenue Olivier Messiaen 72085 LE MANS CEDEX 9 ==================================================================== tre_mat # calculs élémentaires restart:with(linalg): # allongement unitaire eps:=(nx*(uj-ui)+ny*(vj-vi))/L; # énergie de déformation Edef:=EA*eps^2*L/2-eps*EA*alpha*DT*L; # matrice de rigidité k:=hessian(Edef,[ui,vi,uj,vj]); # efforts nodaux fnod:=grad(Edef,[ui,vi,uj,vj]); # remarque k:=jacobian(fnod,[ui,vi,uj,vj]); # vecteur dû au gradient thermique fth:=-jacobian(fnod,[DT]); ____________________________________________________________ Exemple 1 restart:with(linalg): # application numérique # L:=200;E:=200000;A:=100;P:=-10000; # matrice de rigidité KL:=matrix([[2,0,-1],[0,2,-1],[-1,-1,1+sqrt(2)]]): KL:=scalarmul(KL,E*A/2/sqrt(2)/L); # vecteur FL FL:=vector([0,P,0]); # calcul des déplacements nodaux UL:=linsolve(KL,FL); # map(evalf,UL); ___________________________________________________________ Exemple 2 restart:with(linalg): # application numérique # L:=700;E:=200000;A:=10000;P:=-120e3; # matrice de rigidité KL:=matrix([[1+2*sqrt(2),1,-1],[1,1+2*sqrt(2),-1],[-1,-1,1]]): KL:=scalarmul(KL,E*A/2/sqrt(2)/L); # vecteur FL FL:=vector([0,P,3*P]); # calcul des déplacements nodaux UL:=linsolve(KL,FL); # map(evalf,UL); _________________________________________________________ Exemple 3 restart:with(linalg): # application numérique # L:=100;E:=200000;A:=100;alpha:=1e-5;DT:=100; # matrice de rigidité x:=1+2*sqrt(2): KL:=matrix([[x,1],[1,x]]): KL:=scalarmul(KL,E*A/2/sqrt(2)/L); # vecteurs F x:=E*A*alpha*DT/2: FLcas1:=vector([(sqrt(2)-2)*x,(sqrt(2)+2)*x]); FLcas2:=vector([0,E*A*alpha*DT]); # calcul des déplacements nodaux ULcas1:=linsolve(KL,FLcas1); ULcas2:=linsolve(KL,FLcas2); # map(evalf,ULcas1); # map(evalf,ULcas2);