Prev: date on x axis feather plot
Next: Need Help Attempted to access hx(0,0); index must be a positive integer or logical.
From: Alina Stoian on 1 Jun 2010 11:13 "Hello, I'm trying to solve a system of 3 partial differential equations (3 diffusion equations, 2nd law of Fick) using ode15s! First of all, I transformed my system in an ODE system using the finite difference method to discretize each equation. After, I attached the boundary conditions , that after the discretization are become algebraic equations , and so in the end I' m obliged to solve a DAE system. From my readings I understood that I have to use ode15s to solve M*y'=f(t,y)! I defined the matrix M, by putting 0 where ever I have an algebraic equation, and I 've created a separate function file for f(t,y), in which I defined the coefficients of the variables. The function f(t,y) has the form B(n,n)*C(n), where B is the matrix with the variable's coefficients and C is the variable vector! After the first run of the code I obtained negative results so I thought that it's best to adimensionalize the variables, and I did so, and now I'm confronting with a warning message :'Warning: Failure at t=3.124127e+00. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (7.105427e-15) at time t. '' . I know that the coefficient 's matrix is ill conditionned but what I don't know is how to handle this problem!"" I forgot to mention that the equations are coupled and that I'm trying to simulate the transfer of a specie through three different phases ( that's why I have 3 basic diffusion equations).
From: Torsten Hennig on 1 Jun 2010 07:16 > "Hello, > > I'm trying to solve a system of 3 partial > differential equations (3 diffusion equations, 2nd > law of Fick) using ode15s! First of all, I > transformed my system in an ODE system using the > finite difference method to discretize each equation. > After, I attached the boundary conditions , that > after the discretization are become algebraic > equations , and so in the end I' m obliged to solve a > DAE system. From my readings I understood that I have > to use ode15s to solve M*y'=f(t,y)! I defined the > matrix M, by putting 0 where ever I have an algebraic > equation, and I 've created a separate function file > for f(t,y), in which I defined the coefficients of > the variables. The function f(t,y) has the form > B(n,n)*C(n), where B is the matrix with the > variable's coefficients and C is the variable vector! > After the first run of the code I obtained negative > results so I thought that it's best to > adimensionalize the variables, and I did so, and now > I'm confronting with a warning message :'Warning: > Failure at t=3.124127e+00. Unable to meet integration > tolerances without reducing the step > size below the smallest value allowed (7.105427e-15) > at time t. '' . I know that the coefficient 's matrix > is ill conditionned but what I don't know is how to > handle this problem!"" > > > I forgot to mention that the equations are coupled > and that I'm trying to simulate the transfer of a > specie through three different phases ( that's why I > have 3 basic diffusion equations). Did you try MATLAB's pdepe ? Best wishes Torsten.
From: Torsten Hennig on 1 Jun 2010 22:25 > > "Hello, > > > > I'm trying to solve a system of 3 partial > > differential equations (3 diffusion equations, 2nd > > law of Fick) using ode15s! First of all, I > > transformed my system in an ODE system using the > > finite difference method to discretize each > equation. > > After, I attached the boundary conditions , that > > after the discretization are become algebraic > > equations , and so in the end I' m obliged to solve > a > > DAE system. From my readings I understood that I > have > > to use ode15s to solve M*y'=f(t,y)! I defined the > > matrix M, by putting 0 where ever I have an > algebraic > > equation, and I 've created a separate function > file > > for f(t,y), in which I defined the coefficients of > > the variables. The function f(t,y) has the form > > B(n,n)*C(n), where B is the matrix with the > > variable's coefficients and C is the variable > vector! > > After the first run of the code I obtained > negative > > results so I thought that it's best to > > adimensionalize the variables, and I did so, and > now > > I'm confronting with a warning message :'Warning: > > Failure at t=3.124127e+00. Unable to meet > integration > > tolerances without reducing the step > > size below the smallest value allowed > (7.105427e-15) > > at time t. '' . I know that the coefficient 's > matrix > > is ill conditionned but what I don't know is how > to > > handle this problem!"" > > > > > > I forgot to mention that the equations are coupled > > and that I'm trying to simulate the transfer of a > > specie through three different phases ( that's why > I > > have 3 basic diffusion equations). > > > Did you try MATLAB's pdepe ? > > Best wishes > Torsten. ... and if you want to use your discretized form of the equations, integrate up to t=3.124127e+00 and inspect the solution. Maybe this will give you some hint why the ODE integrator quits. Best wishes Torsten.
From: Alina Stoian on 7 Jun 2010 06:02 Torsten Hennig <Torsten.Hennig(a)umsicht.fhg.de> wrote in message <735098493.260351.1275405399232.JavaMail.root(a)gallium.mathforum.org>... > > "Hello, > > > > I'm trying to solve a system of 3 partial > > differential equations (3 diffusion equations, 2nd > > law of Fick) using ode15s! First of all, I > > transformed my system in an ODE system using the > > finite difference method to discretize each equation. > > After, I attached the boundary conditions , that > > after the discretization are become algebraic > > equations , and so in the end I' m obliged to solve a > > DAE system. From my readings I understood that I have > > to use ode15s to solve M*y'=f(t,y)! I defined the > > matrix M, by putting 0 where ever I have an algebraic > > equation, and I 've created a separate function file > > for f(t,y), in which I defined the coefficients of > > the variables. The function f(t,y) has the form > > B(n,n)*C(n), where B is the matrix with the > > variable's coefficients and C is the variable vector! > > After the first run of the code I obtained negative > > results so I thought that it's best to > > adimensionalize the variables, and I did so, and now > > I'm confronting with a warning message :'Warning: > > Failure at t=3.124127e+00. Unable to meet integration > > tolerances without reducing the step > > size below the smallest value allowed (7.105427e-15) > > at time t. '' . I know that the coefficient 's matrix > > is ill conditionned but what I don't know is how to > > handle this problem!"" > > > > > > I forgot to mention that the equations are coupled > > and that I'm trying to simulate the transfer of a > > specie through three different phases ( that's why I > > have 3 basic diffusion equations). > > > Did you try MATLAB's pdepe ? > > Best wishes > Torsten. Hello, So I did what you told me and the answer form matlab is : ''aliq = 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 9.9999e-01 9.9357e-01 1.0000e+00 1.0000e+00 1.0000e+00 9.9996e-01 9.8743e-01 1.0000e+00 1.0000e+00 1.0000e+00 9.9990e-01 9.8149e-01 1.0000e+00 1.0000e+00 1.0000e+00 9.9983e-01 9.7574e-01 1.0000e+00 1.0000e+00 1.0000e+00 9.9974e-01 9.7013e-01 1.0000e+00 1.0000e+00 1.0000e+00 9.9963e-01 9.6466e-01 1.0000e+00 1.0000e+00 1.0000e+00 9.9950e-01 9.5932e-01 1.0000e+00 1.0000e+00 9.9999e-01 9.9936e-01 9.5414e-01 1.0000e+00 1.0000e+00 9.9999e-01 9.9920e-01 9.4951e-01 == 1.0000e+00 1.0000e+00 9.9999e-01 9.9903e-01 9.5065e-01=== 11th time step 1.0000e+00 1.0000e+00 9.9999e-01 9.9894e-01 1.0235e+00 1.0000e+00 1.0000e+00 1.0000e+00 1.0166e+00 1.4504e+01 1.0000e+00 1.0000e+00 1.0003e+00 1.2295e+00 1.7303e+02 1.0000e+00 1.0000e+00 1.0039e+00 3.9296e+00 2.1823e+03 1.0000e+00 1.0001e+00 1.0499e+00 3.8166e+01 2.7658e+04'' it seems that is working well until it reach the 11th time step! Anyway I know that my J matrix is not stable because the rcond is 1.475e-10, but from my point of view my equations are written correctly. I tried to use' pdepe ' but I have problems to impose two conditions at the same boundary ( that are the flow continuity and an equilibrium condition; the flow continuity is like : D_liq*dcliq/dx=D_gaz*dcgaz/dx (x= liquid height ) and cgaz=P*cliq, where P is a partition coefficient)! Thank you very much for answering me and if you have any other ideas please tell me! Best regards, A. Stoian
From: Torsten Hennig on 7 Jun 2010 06:25
> Torsten Hennig <Torsten.Hennig(a)umsicht.fhg.de> wrote > in message > <735098493.260351.1275405399232.JavaMail.root(a)gallium. > mathforum.org>... > > > "Hello, > > > > > > I'm trying to solve a system of 3 partial > > > differential equations (3 diffusion equations, > 2nd > > > law of Fick) using ode15s! First of all, I > > > transformed my system in an ODE system using the > > > finite difference method to discretize each > equation. > > > After, I attached the boundary conditions , that > > > after the discretization are become algebraic > > > equations , and so in the end I' m obliged to > solve a > > > DAE system. From my readings I understood that I > have > > > to use ode15s to solve M*y'=f(t,y)! I defined the > > > matrix M, by putting 0 where ever I have an > algebraic > > > equation, and I 've created a separate function > file > > > for f(t,y), in which I defined the coefficients > of > > > the variables. The function f(t,y) has the form > > > B(n,n)*C(n), where B is the matrix with the > > > variable's coefficients and C is the variable > vector! > > > After the first run of the code I obtained > negative > > > results so I thought that it's best to > > > adimensionalize the variables, and I did so, and > now > > > I'm confronting with a warning message :'Warning: > > > Failure at t=3.124127e+00. Unable to meet > integration > > > tolerances without reducing the step > > > size below the smallest value allowed > (7.105427e-15) > > > at time t. '' . I know that the coefficient 's > matrix > > > is ill conditionned but what I don't know is how > to > > > handle this problem!"" > > > > > > > > > I forgot to mention that the equations are > coupled > > > and that I'm trying to simulate the transfer of a > > > specie through three different phases ( that's > why I > > > have 3 basic diffusion equations). > > > > > > Did you try MATLAB's pdepe ? > > > > Best wishes > > Torsten. > > > Hello, > So I did what you told me and the answer form matlab > is : > ''aliq = > > 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 > +00 1.0000e+00 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9999e-01 > -01 9.9357e-01 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9996e-01 > -01 9.8743e-01 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9990e-01 > -01 9.8149e-01 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9983e-01 > -01 9.7574e-01 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9974e-01 > -01 9.7013e-01 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9963e-01 > -01 9.6466e-01 > 1.0000e+00 1.0000e+00 1.0000e+00 9.9950e-01 > -01 9.5932e-01 > 1.0000e+00 1.0000e+00 9.9999e-01 9.9936e-01 > -01 9.5414e-01 > 1.0000e+00 1.0000e+00 9.9999e-01 9.9920e-01 > -01 9.4951e-01 > == 1.0000e+00 1.0000e+00 9.9999e-01 > 9.9903e-01 9.5065e-01=== 11th time step > 1.0000e+00 1.0000e+00 9.9999e-01 9.9894e-01 > -01 1.0235e+00 > 1.0000e+00 1.0000e+00 1.0000e+00 1.0166e+00 > 00 1.4504e+01 > 1.0000e+00 1.0000e+00 1.0003e+00 1.2295e+00 > +00 1.7303e+02 > 1.0000e+00 1.0000e+00 1.0039e+00 3.9296e+00 > +00 2.1823e+03 > 1.0000e+00 1.0001e+00 1.0499e+00 3.8166e+01 > +01 2.7658e+04'' > it seems that is working well until it reach the > 11th time step! Anyway I know that my J matrix is not > stable because the rcond is 1.475e-10, but from my > point of view my equations are written correctly. > I tried to use' pdepe ' but I have problems to impose > two conditions at the same boundary ( that are the > flow continuity and an equilibrium condition; the > flow continuity is like : > D_liq*dcliq/dx=D_gaz*dcgaz/dx (x= liquid height ) > and cgaz=P*cliq, where P is a partition > n coefficient)! > Thank you very much for answering me and if you have > any other ideas please tell me! > Best regards, > A. Stoian If I got it right, you have interface conditions at the two phase boundaries. How did you discretize them ? Best wishes Torsten. |