Message Boards Message Boards

Numerical solution to an integro-partial differential equation?

Please help me to solve this integro-PDE.

POSTED BY: chelirem tayeb
2 Replies

Here is my answer using pdetoode

With[u = u[t, x],
  eq@1 = 
   D[u, t, t] - 2 P D[u, x, x] + (  D[u, x, x, x, x]) + 
    4 F D[u, x, x] cos[x] + \[Alpha] D[u, x, 
      x] *(Integrate[D[u, x]^2, {x, 0, Pi}]) ;
  ic@1 = u[0, x] == 0;
  bc@1 = {u[t, 0] = u[t, Pi] == 0   , D[u, x, x] == 0 /. x -> 0, 
    D[u, x] == 0 /. x -> Pi }];
P = 1; F = 4; \[Alpha] = 3;
points = 25; difforder = 4; domain = {0, Pi};

{nodes, weights} = 
  Most[NIntegrate`GaussRuleData[points, MachinePrecision]];
midgrid = Rescale[nodes, {0, 1}, domain];

intrule = 
  HoldPattern@
    Integrate[__] -> -Subtract @@ domain weights . 
     Map[u[#][t] &, midgrid];

grid = Flatten[{domain[[1]], midgrid, domain[[-1]]}];

ptoofunc = pdetoode[u[t, x], t, grid, difforder, True];
ode@1 = ptoofunc@eq@1 /. intrule ;;
     odeic@1 = ptoofunc@ic@1;
odebc@1 = ptoofunc@bc@1
tend = 2;
usol = NDSolveValue[{ode /@ 1, odeic /@ 1, 
    odebc /@ 1}, {u /@ grid}, {t, 0, tend}];
Plot3D[usol[t, x], {t, 0, tend}, {x, 0, Pi}] & @@ domain

and there is a response

Part::partw: Part 1 of {} does not exist.
Symbol::argx: Symbol called with 0 arguments; 1 argument is expected.
NDSolveValue::deqn: Equation or list of equations expected instead of 1 in the first argument {1,1,1}.
NDSolveValue::dsvar: 0.00014299999999999998` cannot be used as a variable.
POSTED BY: chelirem tayeb

Your last comment is absolutely unreadable and unusable as copy-paste for Mathematica. Can you please read how to post properly and edit your post to improve formatting ? http://wolfr.am/READ-1ST

POSTED BY: Sam Carrettie
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