1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
[D,B]=Constantes2;
[Nx,Ny,Connect,nx,ny]=MaillagePoutre2D;
[MatAssemble2DDL]=CreatMatriceAssemblages(Connect);
[Kglob]=AssembleKglob2D2(Connect,MatAssemble2DDL,Nx,Ny,B,D);
[F]=AssembleF(nx,ny,Nx);
[Kglob,ListeDdl]=ImposeCLpoutre(Kglob,Nx,Ny);
U=zeros(1,2*length(Nx));
U(ListeDdl)=(Kglob(ListeDdl,ListeDdl))\F(ListeDdl);
[Vxresult,Vyresult]=PostTraitement2(U,Nx,Ny,Connect,MatAssemble2DDL,B,D);
%function [D,B]=Constantes2()
%nu=0.3;
%E=210000;
%lam=(E*nu)/((1+nu)*(1-2*nu));
%mu=E/(2*(1+nu));
%C=[(lam+2*mu) lam 0
% lam (lam+2*mu) 0
% 0 0 mu];
%A=[1 0 0 0
% 0 0 0 0
% 0 1 1 0];
%D=A'*C*A;
%B=[-1 0 1 0 0 0
% -1 0 0 0 1 0
% 0 -1 0 1 0 0
% 0 -1 0 0 0 1];
function [Nx,Ny,Connect,nx,ny]=MaillagePoutre2D()
L=input('entrez la longueur L (50)');
H=input('entrez la hauteur H(10)');
nx=input('entrez le nombre de noeuds sur la longueur(15)');
ny=input('entrez le nombre de noeuds sur la hauteur(6)');
l=L/(nx-1);
h=H/(ny-1);
k=0;
for i=1:nx
for j=1:ny
k=k+1;
Nx(k)=(i-1)*l;
Ny(k)=(j-1)*h;
end
end
plot(Nx,Ny,'k.')
axis equal
hold on |
Partager