# Solve decoupled PDE's with NDSolve?

Posted 7 months ago
786 Views
|
7 Replies
|
2 Total Likes
|
 I have one NDSolve with a system of equations that solves just fine NDSolve[eqns1, depVars1, {z,0,zf}, {t,0,tf}] I have another completely decoupled NDSolve that solves NDSolve[eqns2, depVars2, {z,0,zf}, {t,0,tf}] But when I put them together... NDSolve[Join@@{eqns1,eqns2},Join@@{depVar1,depVar2},{z,0,zf},{t,0,tf}] even when they're completely decoupled, I get the error "The given initial conditions were not consistent with the differential-algebraic equations." Anyone know why?
7 Replies
Sort By:
Posted 7 months ago
 Works for me on my example. I guess it has to do with your code. Generally speaking, except for very common errors, problems with code require the code for the problem to be diagnosed.
Posted 7 months ago
 Yeah, sorry about not including the code, it's a bit involved, difficult to simplify, and I was in a rush. Here's the best I can do to simplify it:Equations to solve: eqns = {{x[Nonacosane][z, 0] == 0.04365546804923613, x[Triacontane][z, 0] == 0.06241482157451062, s[Nonacosane][z, 0] == 0, s[Triacontane][z, 0] == 0}, {DirichletCondition[x[Nonacosane][z, t] == 0.04365546804923613, z <= 0], DirichletCondition[x[Triacontane][z, t] == 0.06241482157451062, z <= 0]}, {3138.4698592919644*Derivative[0, 1][s[Nonacosane]][z, t] == -0.00635626711262017*(0.0028844741322105526*s[Nonacosane][z, t] - x[Nonacosane][z, t]), 3138.4698592919644*Derivative[0, 1][s[Triacontane]][ z, t] == -0.007114201335734374* (0.0019632116886399483*s[Triacontane][z, t] - x[Triacontane][z, t])}, {3138.4698592919644*Derivative[0, 1][x[Nonacosane]][z, t] + 999.0059837024828*Derivative[1, 0][x[Nonacosane]][z, t] == NeumannValue[0, z >= 100] + 0.00635626711262017* (0.0028844741322105526*s[Nonacosane][z, t] - x[Nonacosane][z, t]), 3138.4698592919644*Derivative[0, 1][x[Triacontane]][z, t] + 999.0059837024828*Derivative[1, 0][x[Triacontane]][z, t] == NeumannValue[0, z >= 100] + 0.007114201335734374* (0.0019632116886399483*s[Triacontane][z, t] - x[Triacontane][z, t])}} The dependent variables depVars = {x[Nonacosane][z, t], s[Nonacosane][z, t], x[Triacontane][z, t], s[Triacontane][z, t]} NDSolve[eqns,depVars,{z,0,1000},{t,0,5000}] In these equations, a reaction is taking place between two states "s" and "x". It solves without a problem. I want to calculate the accumulated rates by saying D[m[z,t],t]=Sum(rates[z,t]). I do that by adding "D[sArea[z,t],t]=Sum(rates)" and "sArea[z,0]=0" to the equations {-9.27269625879322*^-9*s[Nonacosane][z, t] - 7.574037191466946*^-9* s[Triacontane][z, t] + 3.214692118485727*^-6*x[Nonacosane][z, t] + 3.857982934440454*^-6*x[Triacontane][z, t] == Derivative[0, 1][sArea][z, t], sArea[z, 0] == 0} This fails. I tried a completely random equation that solves in NDSolve but when added to the equation list, it fails.
Posted 7 months ago
 Hi! Just a grammatic error in equations...eons =; Correct it to eqns and you get the solutions (Interpolating functions)!
Posted 7 months ago
 Thanks, but this is a copy-paste of some code. I added “eons” (should have been “eqns”) for this post. Did you happen to try the code? It fails for meUpdate: original typo fixed
Posted 7 months ago
 That's right, the first set of equations solves fine. My question is when adding another equation (given in post) it fails. I'm adding to the notebook and will send it back in a few minutes