Você está na página 1de 3

nodos=length(coor(:,1)); elementos=length(conec(:,1)); %Ingreso de datos de entrada %calculo del numero total de condiciones de contorno (nrocbd=l) l=0; for i=1:nodos

if coor(i,1)<0.00001 l=l+1; end if coor(i,1)>2.44449 l=l+1; end cb=zeros(l,2); end % Armado de matriz condiciones de borde (fila=nro nodo, columna=condicion de bor de) t=1; for i=1:nodos if coor(i,1)<0.00001 cb(t,1)=(i); cb(t,2)=(273); t=t+1; end if coor(i,1)>2.44449 cb(t,1)=(i); cb(t,2)=(278); t=t+1; end end rg=[1/3^(1/2); -1/3^(1/2)];sg=[1/3^(1/2); -1/3^(1/2)];wi=1;wj=1; y funciones peso de Gauss Kg=sparse(nodos,nodos); k=440; % Funciones de forma syms r;syms s; h4=1/4*(1+r)*(1-s);h3=1/4*(1-r)*(1-s);h2=1/4*(1-r)*(1+s);h1=1/4*(1+r)*(1+s); % Derivadas de Funciones de forma respecto a las coord naturales (r y s) dh1r=diff(h1,r);dh2r=diff(h2,r);dh3r=diff(h3,r);dh4r=diff(h4,r); dh1s=diff(h1,s);dh2s=diff(h2,s);dh3s=diff(h3,s);dh4s=diff(h4,s); dh=[dh1r dh2r dh3r dh4r; dh1s dh2s dh3s dh4s]; for n=1:elementos; or elemento % Comienzo a trabajar elemento p % puntos

% Expresiones de coordenadas cartesianas y matrices Jacobiano y B, en coordenada s naturales syms r;syms s; x=h1*coor(conec(n,1),1)+h2*coor(conec(n,2),1)+h3*coor(conec(n,3),1)+h4*coor(cone

c(n,4),1); y=h1*coor(conec(n,1),2)+h2*coor(conec(n,2),2)+h3*coor(conec(n,3),2)+h4*coor(cone c(n,4),2); Jsymb=[diff(x,r) diff(y,r);diff(x,s) diff(y,s)]; Bsymb=inv(Jsymb)*dh; % Evaluacin de matrices Jacobiano y DH en puntos de Gauss, y clculo de matriz Ke ( integracion por Gauss) for i=1:2 for j=1:2 r=rg(i,1);s=sg(j,1); J=eval(Jsymb); detJ= det(J); B=eval(Bsymb); Ke=zeros(4,4); Ke=Ke+k*B'*B*detJ*wi*wj; end end %Ensamble de Ke en matriz global Kg for il=1:4 for jl=1:4 ig=conec(n,il); jg=conec(n,jl); Kg(ig,jg)=Kg(ig,jg)+Ke(il,jl); end end end lemento %Fin del analisis elemento por e

%Aplico condiciones de borde Dirichlet (temperaturas) t=size(cb); nro_filas_cb=t(1); s=size(coor); nro_filas_coor=s(1); ncb=nro_filas_cb; nng=nro_filas_coor; Rg=zeros(nodos,1); for i=1:ncb for j=1:nng nodo=cb(i,1); Kg(nodo,j)=0; end Kg(nodo,nodo)=1; Rg(nodo)=cb(i,2); end %Resolucion T=Kg\Rg; result=[n',T]; %Calculo de Flujos for n=1:elementos; %nmero de condiciones de contorno %nmero de nodos globales

for il=1:4; Td(il)=T(conec(n,il),1); end Te=Td'; for i=1:2 for j=1:2 r=rg(i,1);s=sg(j,1); J=eval(Jsymb);detJ= det(J);B=eval(Bsymb); q=-k*B*Te; end end end plot(x,T) title('Transferencia de calor 2D, estado estacionario') ylabel('Temperatura (C)') xlabel('Longitud x (m)') %Resultados: % T= Vector Temperatura = [T1 T2 T3 T4] (temperaturas nodales) % q= Vector Flujo de calor =[qx,qy] (flujos en ejes x e y) T q

Você também pode gostar