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!