Message Boards Message Boards

Error solving convection-diffusion equation with continuity equation

Posted 1 year ago

I'm trying to resolve the convection-diffusion equation coupled with the continuity equation. I wrote this next code

A = 4;
h = 190;
Media = -60*h/190;
DesEst = 0.15*h;
Distribucion = A*PDF[SkewNormalDistribution[Media, DesEst, -5], x];
d1 = 17;
s3 = NDSolve[{D[c[x, t], t] - d1*D[c[x, t], x, x] + 
     V[x]*D[c[x, t], x] == 0, c[x, t]*D[V[x], x] == 0, 
   c[x, 0] == Distribucion, 
   c[-10*DesEst, t] == Distribucion /. x -> -10*DesEst, 
   DirichletCondition[V[x] == V[5000], x == -10*DesEst], 
   Derivative[1, 0][c][-10*DesEst, t] == 0}, {c[x, t], 
   V[x]}, {x, -10*DesEst, 5000}, {t, 0, 70}]

But I received the next message

NDSolve::overdet: There are fewer dependent variables, {c[x,t]}, than equations, so the system is overdetermined.

I don't understand what's the problem if I'm declaring c and V like dependent variables to resolve. Does anybody know how to fix it?

POSTED BY: Osmart Ochoa
Posted 11 months ago

Your prescriptions are 1 to much. A boundary condition can specify the value, the value of the derivative or a linear combination of both.

c[-10*DesEst, t] == Distribucion /. x -> -10*DesEst, 
Derivative[1, 0][c][-10*DesEst, t] == 0}

Physically clear immediately: You cannot specify the temperature and the heat transfer independently at the surface.

in a lattice discretization, there is a single rule to be applied how to calculate f(0,t+dt) from f(0,t) and f(1, t) on the spatial unit lattice, while everywhere else the rule is simply

f(x,t+dt) = mean_y( kernel(x-y),  f(y,t)).
POSTED BY: Roland Franzius
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract