Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

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!



  • Prev by Date: Re: How to write reports and books in Mathematica
  • Next by Date: Unstructured Interpolation in V7?
  • Previous by thread: PDE coupling boundary problem
  • Next by thread: Number of ways of permutations to form a certain pattern of cycles?