How to formulate boundary conditions for a PDE system?

5 views (last 30 days)
I have the following PDE system steaming from Flash Photolysis:
I formulated the PDEs in the form reqired by pdepe and coded pdefun as follows:
function [C,F,S] = photopde (x,t,U,DUDX)
C = [0;1];
F = [0;0];
S = [epsilon*U(1)*U(2);phi*epsilon*U(1)*U(2)];
end
The initial coditions are:
which are encoded into an icfun:
function U = photoic (x)
U = [I0*exp(-C0*epsilon*phi*x);C0];
end
However I have only 2 boundary conditions at the left side at t = 0 and none on the right side:
How do I code corresponding bcfun? How do I define PR and QR outputs from bcfun? Thanks.

Answers (2)

Torsten
Torsten on 20 Jun 2016
Don't use "pdepe" to solve this system.
Discretize dI/dx in space. This will result in algebraic equations for I in each spatial grid point.
Then use ODE15S to solve the second ordinary differential equation for C in each of these spatial grid points.
Best wishes
Torsten.
  4 Comments
Mikael Hakman
Mikael Hakman on 20 Jun 2016
What you are suggesting is that I should integrate I(x,t) by "hand" using the simplest of all integration methods - the Euler method. Then why not do the same for C(x,t) if that is what was required. But then we can do that in C++ or Java as easy as in MATLAB, don't we?
Torsten
Torsten on 20 Jun 2016
It's the method-of-lines approach - the same approach "pdepe" would use if it was able to solve your equations.
My advise is to start simple. You may try a 2nd order scheme in space for I later, but then it must be an upwind scheme for stability reasons. Centered differences will lead to oscillations, I guess.
Best wishes
Torsten.

Sign in to comment.


Bill Greene
Bill Greene on 20 Jun 2016
pdepe is specifically designed for PDEs that are second-order in the spatial direction. That is why it requires you to specify boundary conditions at both ends.
But that doesn't mean it won't solve first-order PDEs and, since you already have most of the code implemented, I suggest you try it. Since your flux is zero everywhere, a boundary condition you can use at the right end to satisfy pdepe is qr=1, pr=0.
Sometimes when solving first-order PDEs with pdepe the solution shows some spurious oscillations. One simple way to deal with this problem is to add a small amount of "artificial diffusion", e.g.
F = 1e-6*[1;1];
where the factor can be adjusted so that it damps out the oscillations without having a large effect on the solution.
  2 Comments
Mikael Hakman
Mikael Hakman on 20 Jun 2016
I tried this method before I asked the question here. I get the following picture from MATLAB:
The analytical solution gives:
I'm attaching full MATLAB source here. Thanks.
Hitesh Saini
Hitesh Saini on 16 Mar 2020
Hi Bill
How can we apply boundary conditions while solving PDE using line of approach method?
Is it possible?

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!