Prev: Trajectory in VRML
Next: close('name') or close(handle)
From: Esther Rojas on 23 Jul 2010 08:04 I need to know the temperature evolution of a packed bed througth which a fluid flows, thus, the adimensional equation to solve is the following: A1*dT/dt+A2*dT/dz=A3*d^2T/dz^2+A4*T, where A1=1.46;A2=-1;A3=-1.56E-7;A4=-9.68e-5; the inicitial condition is T(z,0)=T0 and the boundary conditions are dT(1,t)/dz=(1-T(1,t))/0.1; dT(0,t)/dz=0; I've used pdepe function, but after some calculations the following error message appears: "This DAE appears to be of index greater than 1". Any clue where to look at?. thank you very much,
From: Torsten Hennig on 23 Jul 2010 04:37 > I need to know the temperature evolution of a packed > bed througth which a fluid flows, thus, the > adimensional equation to solve is the following: > A1*dT/dt+A2*dT/dz=A3*d^2T/dz^2+A4*T, > where A1=1.46;A2=-1;A3=-1.56E-7;A4=-9.68e-5; > the inicitial condition is T(z,0)=T0 and the boundary > conditions are > dT(1,t)/dz=(1-T(1,t))/0.1; dT(0,t)/dz=0; > I've used pdepe function, but after some calculations > the following error message appears: "This DAE > appears to be of index greater than 1". > Any clue where to look at?. thank you very much, Usually this message is due to errors in the user-supplied subroutines. Maybe we could find the reason if you posted the relevant part of your code. Best wishes Torsten.
From: Esther Rojas on 26 Jul 2010 05:33 Thank you Torsten. Here you have the relevant part of the code. % function Termoclinov2 clear all tTOTAL=3*60; %tiempo total para la simulación (s) %GEOMETRÏA: D= 3 ;%diámetro del almacenador,m L= 6.1 ;%altura del almacenador,m A0=pi*(D/2)^2;%sección de paso en el tanque VTOT=pi*(D/2)^2*L; %volumen del almacenamiento poros=0.22 ;%porosidad (entre 0 y 1) %FLUIDO de TRABAJO: Eutectico de Nitratos rhof=1950; %CONDICIONES de OPERACIÓN: mp=6*poros*VTOT*rhof/(3*60) ;%caudal másico, kg/s; Nz=10; %matriz de posiciones adimensionales espaciales, {zA} z=linspace(0,1,Nz); %sí que se utiliza en la simulación DtD= 0.5*DzD*rhof*poros*A0/mp ; %0.5 veces el tiempo que tarda el fluido en %recorrer un volumen elemental %para adimensionalizarlo habría que definir el tiempo total que se quiere %correr la simulación, tTOTAL (=> se incluye como dato en el fichero de %entrada) Nt=tTOTAL/DtD/10;% número de intervalos de tiempo Dt=1/Nt; %intervalo adimensional de tiempo para el que se muestran los %resultados. No se utiliza directamente en la simulación pues el solver %busca dinamicamente qué intervalo de tiempo y fórmula usar t=linspace(0,1,Nt); %1D + 1SF ---------------------------------------------------------- % Hipo: Unidimensional (en la dirección del movimiento del fluido) y % T(fluid)=T(sólido)=fhi => tambien vale para sistemas sin relleno % (sólo fluido) %Equación (37) => fhi=fhi({zi},t, Tamb, Tf_in)=Result0 Sol0=pdepe(0,@pd1D1SFpdev2,@pd1D1SFicv2,@pd1D1SFbcv2,z,t); Result0=Sol0(:,:,1); % function [c,f,s]=pd1D1SFpdev2(z,t,u,DuDz) c=1.46; f=-1.56e-7*DuDz; s=-9.68e-5*u+DuDz; function [p1 q1 pr qr]=pd1D1SFbcv2(z1,u1,zr,ur,t) p1=0; q1=0; pr=(ur-1)/(0.1)*(-1.56e-7); qr=1; %pr=0; function u0 = pd1D1SFicv2(z) Tf_in= 396 ;%temperatura de entrada en CARGA ( Tf_out=296; %temperatura más baja del fluido (ºC)=>de entrada en DESCARGA (y T0D=0.5*(Tf_in+Tf_out); Tamb= 30 ;%temperatura ambiente (ºC); T0=(T0D-Tamb)/(Tf_in-Tamb); u0=T0;
From: Esther Rojas on 26 Jul 2010 07:51 I think I've got it!!. My mistake seems to be when defining boundary conditions: the two coefficients can not be equal to 0 at a boundary location, since this allows either the function or its derivate to be any value. Thank you again, Esther
From: Torsten Hennig on 26 Jul 2010 04:33
> Thank you Torsten. Here you have the relevant part of > the code. > > > % > function Termoclinov2 > > clear all > > tTOTAL=3*60; %tiempo total para la simulación (s) > > %GEOMETRÏA: > D= 3 ;%diámetro del almacenador,m > L= 6.1 ;%altura del almacenador,m > A0=pi*(D/2)^2;%sección de paso en el tanque > VTOT=pi*(D/2)^2*L; %volumen del almacenamiento > poros=0.22 ;%porosidad (entre 0 y 1) > > %FLUIDO de TRABAJO: Eutectico de Nitratos > rhof=1950; > > %CONDICIONES de OPERACIÓN: > mp=6*poros*VTOT*rhof/(3*60) ;%caudal másico, kg/s; > > Nz=10; > %matriz de posiciones adimensionales espaciales, {zA} > z=linspace(0,1,Nz); %sí que se utiliza en la > simulación > > DtD= 0.5*DzD*rhof*poros*A0/mp ; %0.5 veces el tiempo > que tarda el fluido en > %recorrer un volumen > %recorrer un volumen elemental > %para adimensionalizarlo habría que definir el tiempo > total que se quiere > %correr la simulación, tTOTAL (=> se incluye como > dato en el fichero de > %entrada) > Nt=tTOTAL/DtD/10;% número de intervalos de tiempo > Dt=1/Nt; %intervalo adimensional de tiempo para el > que se muestran los > %resultados. No se utiliza directamente en la > simulación pues el solver > %busca dinamicamente qué intervalo de tiempo y > fórmula usar > t=linspace(0,1,Nt); > > > %1D + 1SF > > > > > ----------------------------------------------------- > ----- > % Hipo: Unidimensional (en la dirección del > movimiento del fluido) y > % T(fluid)=T(sólido)=fhi => tambien vale para > sistemas sin relleno > % (sólo fluido) > %Equación (37) => fhi=fhi({zi},t, Tamb, > Tf_in)=Result0 > Sol0=pdepe(0,@pd1D1SFpdev2,@pd1D1SFicv2,@pd1D1SFbcv2,z > ,t); > Result0=Sol0(:,:,1); > > % > function [c,f,s]=pd1D1SFpdev2(z,t,u,DuDz) > c=1.46; > f=-1.56e-7*DuDz; Are you sure about the negative sign of f=-1.56e-7*DuDz ? > s=-9.68e-5*u+DuDz; > > function [p1 q1 pr qr]=pd1D1SFbcv2(z1,u1,zr,ur,t) > p1=0; > q1=0; pl = 0; ql = 1 ; > pr=(ur-1)/(0.1)*(-1.56e-7); > qr=1; > %pr=0; > > function u0 = pd1D1SFicv2(z) > Tf_in= 396 ;%temperatura de entrada en CARGA ( > Tf_out=296; %temperatura más baja del fluido (ºC)=>de > entrada en DESCARGA (y > T0D=0.5*(Tf_in+Tf_out); > Tamb= 30 ;%temperatura ambiente (ºC); > T0=(T0D-Tamb)/(Tf_in-Tamb); > u0=T0; Best wishes Torsten. |