Q4_ep.m 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. function [Ke,Fe] = Q4_ep(iel)
  2. % Calcul de la matrice raideur Ke et de la force generalisee Fe
  3. % pour un element Q4 d'une structure en elasticite plane
  4. %
  5. % appel [Ke,Fe] = Q4_ep(iel)
  6. % ou [Ke,Fe] = feval('Q4_ke',iel)
  7. % en entree iel : numero de l'element
  8. % en sortie Ke : matrice raideur elementaire (8,8)
  9. % Fe : force generalisee elementaire (8,1)
  10. %
  11. % H.Oudin
  12. global Coord Connec Nprop Prop
  13. %X = Coord(Connec(iel,[1:4]),:);
  14. npg = 4; %----- integration a 4 points de Gauss
  15. wg = [1,1,1,1]; %----- poids et position
  16. c = 1/sqrt(3); posg = [ -c -c ; c -c ; c c ; -c c ];
  17. %npg = 3; wg = [4/3, 4/3, 4/3]; posg = [sqrt(2/3) 0 ; -sqrt(1/6) sqrt(1/2) ; -sqrt(1/6) -sqrt(1/2)];
  18. %npg = 7; wg = [8/7, 20/63, 20/63, 20/36, 20/36, 20/36, 20/36];
  19. %c = sqrt(3/5); d = sqrt(14/5); posg = [0 0 ; 0 d ; 0 -d ; -c -c ; c -c ; c c ; -c c ];
  20. E=Prop(Nprop(iel),1); %----- matrice d'elasticite D
  21. nu=Prop(Nprop(iel),2);
  22. ep=Prop(Nprop(iel),3);
  23. if ep > 0 a = 0 ; else a = 1 ; ep = 1; end
  24. coef = ep * E * (1-a*nu)/((1+nu)*(1-nu-a*nu));
  25. D = coef * [ 1 nu/(1-a*nu) 0 ;...
  26. nu/(1-a*nu) 1 0 ;...
  27. 0 0 .5*(1-nu-a*nu)/(1-a*nu)];
  28. ndle = 8; %----- initialisations
  29. Ke = zeros(ndle); Fe = zeros(ndle,1); % aire=0
  30. for ipg=1:npg %----- boucle d'integration
  31. s = posg(ipg,1); t = posg(ipg,2); poids = wg(ipg);
  32. %----- vecteur <N(s,t)>
  33. N = .25*[(1-s)*(1-t) (1+s)*(1-t) (1+s)*(1+t) (1-s)*(1+t)];
  34. %----- matrice [dN/ds ;dN/dt]
  35. dN = .25*[-(1-t) (1-t) (1+t) -(1+t)
  36. -(1-s) -(1+s) (1+s) (1-s)];
  37. %----- matrice jacobienne
  38. J = dN*Coord(Connec(iel,[1:4]),:);
  39. detj = J(1,1)*J(2,2)-J(1,2)*J(2,1);
  40. J_1 = [J(2,2) -J(1,2); -J(2,1) J(1,1)]/detj ;
  41. %----- matrice [dN/dx ;dN/dy]
  42. dNx = J_1*dN;
  43. %----- matrice B(3x8)
  44. B=zeros(3,8);
  45. B(1,[1 3 5 7])=dNx(1,:);
  46. B(2,[2 4 6 8])=dNx(2,:);
  47. B(3,[1 3 5 7,2 4 6 8])=[dNx(2,:),dNx(1,:)];
  48. %----- matrice Ke(8x8) %aire=aire+detj*poids;
  49. Ke=Ke+(B'*D*B)*detj*poids;
  50. %----- vecteur Fe(8,1)
  51. fx=Prop(Nprop(iel),4); fy=Prop(Nprop(iel),5);
  52. Fe([1 3 5 7],1) = Fe([1 3 5 7],1)+ ep*fx*detj*poids*N';
  53. Fe([2 4 6 8],1) = Fe([2 4 6 8],1)+ ep*fy*detj*poids*N';
  54. end
  55. %disp(Ke),disp(Fe)
  56. return