Re: PDE coupling boundary problem
- To: mathgroup at smc.vnet.net
- Subject: [mg109665] Re: PDE coupling boundary problem
- From: schochet123 <schochet123 at gmail.com>
- Date: Tue, 11 May 2010 06:26:55 -0400 (EDT)
- References: <hs0pnj$drm$1@smc.vnet.net>
As you discovered, NDSolve cannot handle interface problems with
conditions in the middle of a domain. You therefore need to map both
sides into a single domain and formulate the interface condition as a
boundary condition in the new domain. For your problem you can let
q3[t,x] equal q2[t,2-x] so that q3, like q1, is defined for 0<x<1, and
the interface condition becomes a boundary condition at x=1
Steve
On May 7, 1:23 pm, Sunt <sunting... at gmail.com> wrote:
> Hi all,
> I'm facing an uneasy problem while implementing a Green Roof
> Simulation Model, in which temperature at the interface of soil matrix
> and roof is hard to handle.
>
> According to my model, during the process of water transfer, the
> gradient of water content at the interface of soil matrix and roof
> would be the same.
> Then the PDE system:
> -------------------------------------------------------------------------=
-----
> pde = {
> (*soil matrix process*)
> D[q1[t, x], t] == D[q1[t, x], x, x],
> (*concrete roof process*)
> D[q2[t, x], t] ==D[q2[t, x], x, x] + f1[t]};
>
> (*f1[t] is a source function depending on variable t*)
> -------------------------------------------------------------------------=
-----
>
> and boundary conditions:
> -------------------------------------------------------------------------=
-----
> bc = {
> (*initial conditions*)
> q1[0, x] == 1,
> q2[0, x] == 0.1,
> (*boudary condition*)
> q1[t, 0] == 1 + Sin[t],
> q2[t, 2] == t Cos[t] + .1,
> (*coupling condition at the interface*)
> Derivative[0, 1][q1][t, 1] == Derivative[0, 1][q2][t, 1]
> };
> -------------------------------------------------------------------------=
-----
>
> finally the NDSolve:
> -------------------------------------------------------------------------=
-----
> NDSolve[{
> pde,
> bc},
>
> {q1, q2},
> {x, 0, 2},
> {t, 0, 20},
> MaxSteps -> 100000]
> -------------------------------------------------------------------------=
-----
>
> However, an error message appeared:
> NDSolve::bcedge: Boundary condition (q1^(0,1))[t,1]==(q2^(0,1))[t,1]
> is not specified on a single edge of the boundary of the computational
> domain.
>
> If I want to specify a coupling condition that the coupling point is
> in the computational domain, what should I do?(q1 is defined in {t,
> 0,10}&&{x,0,1}, and q2 in {t,0,10}&&{x,1,2})
>
> Thanks a lot!