5
$\begingroup$

I am trying to solve two simultaneous partial differential equation for $P[x,t]$ and $V[x,t]$. I have a piecewise boundary condition for $V[L,t]$. When using that piecewise condition, I get the error

NDSolve::ndnum : Encountered non-numerical value for a derivative at t==0

However, I get a solution when I manually solve within the piecewise ranges.

Vout = 
  Piecewise[
    {{1.1182586384 t, 0 <= t <= 1}, {1.11826, 1 <= t <= 14}, 
     {644.41640535 (0.00173530 - 0.00173530 (-14 + t)), 14 <= t <= 15}}];

NDSolve[
  {D[P[x, t], t] + 7.17358*^8 D[V[x, t], x] == 0, 
   D[V[x, t], t] + D[P[x, t], t]/1000 == 
     Piecewise[
       {{-0.00984252 Abs[V[x, t]] V[x, t], 0 < x < 3100}, 
        {-0.00656168 Abs[V[x, t]] V[x, t], 3100 < x < 5800}, 
        {-0.02249719 Abs[V[x, t]] V[x, t], 5800 < x < 5809.144}}],
   V[x, 0] == 0., P[x, 0] == 3.4474*^7, P[0, t] == 3.447*^7, V[5809.144, t] == Vout}, 
  {P, V}, {x, 0, 5809.144}, {t, 0, 15}]
$\endgroup$
  • 1
    $\begingroup$ Did you try defining Vout as a function? Specifically use Vout[t_?NumericQ]:=... to make sure it is only evaluated with numeric values $\endgroup$ – Eric William Smith Mar 21 at 3:44
4
$\begingroup$

The problem is that by limiting the domain of Vout to 0 <= t < 15, its derivative becomes Indeterminate at the boundaries t = 0, 15:

Mathematica graphics

We can fix it by extending the definition of Vout beyond the time interval. The extension won't be used, except in values of its derivative at the endpoints of the time interval.

Clear[x, t, V, P];
Vout = Piecewise[{
    {1.1182586384 t, t <= 1},
    {1.11826, 1 <= t <= 14},
    {644.41640535 (0.00173530 - 0.00173530 (-14 + t)), 14 <= t}}];

NDSolve[{
  D[P[x, t], t] + 7.17358*^8 D[V[x, t], x] == 0,
  D[V[x, t], t] + D[P[x, t], t]/1000 == Piecewise[{
     {-0.00984252 Abs[V[x, t]] V[x, t], 0 < x < 3100},
     {-0.00656168 Abs[V[x, t]] V[x, t], 3100 < x < 5800},
     {-0.02249719 Abs[V[x, t]] V[x, t], 5800 < x < 5809.144}}],
  V[x, 0] == 0., P[x, 0] == 3.4474*^7, P[0, t] == 3.447*^7, V[5809.144, t] == Vout},
 {P, V}, {x, 0, 5809.144}, {t, 0, 15}]

Mathematica graphics

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.