Utente:Kiban/Solution1

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % solution.m % linear elastic analyses for plane problems %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close all clear all

global displ analysis coor connec stress

disp 'reading input'; [val_dbc,val_tbc,tbc_number,pname,mnane]=read_input_analysis;  % read input data

[element_number,node_number,node_bc,node_force]=read_input_mesh(val_dbc,val_tbc,tbc_number,pname,mnane); %read input mesh %% Lettura delle proprietà del materiale E1=analysis.young1; E2=analysis.young2; nu1=analysis.poisson1; nu2=analysis.poisson2; G2=analysis.tangenziale2; beta=analysis.beta; type=analysis.type;

%% Calcolo la matrice di rigidezza disp 'Calcolo della matrice di rigidezza'; x=zeros(3,1); y=zeros(3,1); Ke=zeros(6,6); KK=zeros(2*node_number,2*node_number); FF=zeros(2*node_number,1);

for k=1:element_number,  % loop over the elements

   n=connec(k,:);                  % element nodes
   for i=1:3,
      x(i)=coor(n(i),1);           % coordinates of the nodes of the element
      y(i)=coor(n(i),2);
   end
   [Ke]=stiff_t3(x,y, E1, E2, nu1, nu2, G2, beta);             % computes element stiffness matrix
   
   for i=1:3,                      % matrix assemblage
      for j=1:3,
          KK(2*n(i)-1,2*n(j)-1)=KK(2*n(i)-1,2*n(j)-1)+Ke(2*i-1,2*j-1);
          KK(2*n(i),2*n(j))=KK(2*n(i),2*n(j))+Ke(2*i,2*j);
          KK(2*n(i)-1,2*n(j))=KK(2*n(i)-1,2*n(j))+Ke(2*i-1,2*j);
          KK(2*n(i),2*n(j)-1)=KK(2*n(i),2*n(j)-1)+Ke(2*i,2*j-1);
      end
   end

end

%%%% BC imposition disp 'computing BC condition and traction forces'; for j=1:node_number,

  if (node_bc(j,1)==1),
      KK(2*j-1,2*j-1)=1e10;
      FF(2*j-1)=1e10*node_bc(j,3);
  end
  if (node_bc(j,2)==1),
      KK(2*j,2*j)=1e10;
      FF(2*j)=1e10*node_bc(j,4);
  end

end

%%% computing nodal forces for j=1:node_number,

   if (node_force(j,1)==1),
      FF(2*j-1)= FF(2*j-1)+node_force(j,3);
  end
  if (node_force(j,2)==1),
      FF(2*j)=FF(2*j)+node_force(j,4);
  end
  

end

%% solving linear system disp 'solving linear system'; u=KK\FF;


%% compute stresses disp 'computing stress'; stress=stress_function(u,node_number,element_number, E1, E2, nu1, nu2, G2, beta, type);

for i=1:node_number,

  displ(i,1)=u(2*i-1); 
  displ(i,2)=u(2*i);

end

%%% results interface interface('Initialize',[' mesh-undef| mesh-def| mesh-both| u1|'...

         ' u2| s11| s22| s12'],'output_matlab(infopost)');