From: Esther Rojas on
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
> 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
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
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
> 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.
 |  Next  |  Last
Pages: 1 2 3
Prev: Trajectory in VRML
Next: close('name') or close(handle)