Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to "embed" Piecewise in NDSolve in Mathematica
    primarykey
    data
    text
    <ol> <li>I am using <code>NDSolve</code> to solve a non-linear partial differential equation. </li> <li>I'd like one of the variables (Kvar) to be a function of the time step currently being solved and hence and using <code>Piecewise</code>. </li> <li>Mathematica generates an error message saying:</li> </ol> <blockquote> <p>SetDelayed::write: Tag Real in 0.05[t_] is Protected. >> NDSolve::deqn: Equation or list of equations expected instead of $Failed in the first argument ....</p> <p>ReplaceAll::reps: ....</p> </blockquote> <p>I haven't included the entire error message for ease of reading.</p> <p>My code is as follows:</p> <pre><code>Needs["VectorAnalysis`"] Needs["DifferentialEquations`InterpolatingFunctionAnatomy`"]; Clear[Eq4, EvapThickFilm, h, S, G, E1, K1, D1, VR, M, R] Eq4[h_, {S_, G_, E1_, K1_, D1_, VR_, M_, R_}] := \!\( \*SubscriptBox[\(\[PartialD]\), \(t\)]h\) + Div[-h^3 G Grad[h] + h^3 S Grad[Laplacian[h]] + (VR E1^2 h^3)/(D1 (h + K1)^3) Grad[h] + M (h/(1 + h))^2 Grad[h]] + E1/( h + K1) + (R/6) D[D[(h^2/(1 + h)), x] h^3, x] == 0; SetCoordinates[Cartesian[x, y, z]]; EvapThickFilm[S_, G_, E1_, K1_, D1_, VR_, M_, R_] := Eq4[h[x, y, t], {S, G, E1, K1, D1, VR, M, R}]; TraditionalForm[EvapThickFilm[S, G, E1, K1, D1, VR, M, R]]; </code></pre> <p>And the second cell where I am trying to implement <code>Piecewise</code> in <code>NDSolve</code>:</p> <pre><code>L = 318; TMax = 7.0; Off[NDSolve::mxsst]; (*Ktemp = Array[0.001+0.001#^2&amp;,13]*) hSol = h /. NDSolve[{ (*S,G,E,K,D,VR,M*) Kvar[t_] := Piecewise[{{0.01, t &lt;= 4}, {0.05, t &gt; 4}}], EvapThickFilm[1, 3, 0.1, Kvar[t], 0.01, 0.1, 0, 160], h[0, y, t] == h[L, y, t], h[x, 0, t] == h[x, L, t], (*h[x,y,0] == 1.1+Cos[x] Sin[2y] *) h[x, y, 0] == 1 + (-0.25 Cos[2 \[Pi] x/L] - 0.25 Sin[2 \[Pi] x/L]) Cos[ 2 \[Pi] y/L] }, h, {x, 0, L}, {y, 0, L}, {t, 0, TMax} ][[1]] hGrid = InterpolatingFunctionGrid[hSol]; </code></pre> <p>PS: I am sorry but the first cell block doesn't display so well here. And thanks to not having enough "reputation", I can't post images.</p> <p>The error message occurs when using the <code>NDSolve</code> cell block.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload