Question: How to calculate flux in the heat equation?

I solve a boundary value problem for a linear system of first order PDEs
in the unknowns u(x, t) and "v(x,t)."  Ultimately, I am interested in the graph
of the function v(0, t) but numerical artifacts distort that graph badly by
imposing spurious oscillation.

Is there a way to maneuver the calculations to obtain the graph of v(0, t)
without the oscillation?

restart;

pde1 := diff(u(x,t),t)=diff(v(x,t),x);

diff(u(x, t), t) = diff(v(x, t), x)

pde2 := diff(u(x,t),x)=v(x,t);

diff(u(x, t), x) = v(x, t)

ibc := u(x,0)=1, u(0,t)=0, u(1,t)=0;

u(x, 0) = 1, u(0, t) = 0, u(1, t) = 0

dsol := pdsolve({pde1,pde2}, {ibc}, numeric, spacestep=0.01, timestep=0.01);

_m139872446597344

dsol:-value(output=listprocedure):
my_u := eval(u(x,t), %):
my_v := eval(v(x,t), %%):

plot3d(my_u(x,t), x=0..1, t=0..0.5);

plot3d(my_v(x,t), x=0..1, t=0..0.5);

The oscillations are numerical artifacts.  Can they be avoided?

plot(my_v(0,t), t=0..0.5);

A side comment: By eliminating vbetween the two PDEs we see that u
satisfies the standard heat equation, thus vis the flux.  The expression
v(0, t) expresses the heat flux at the boundary, and that's what I am after.
 


 

Download calculating-flux-in-the-heat-equation.mw

Please Wait...