From: Sunt on
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!



From: schochet123 on
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...(a)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!


 | 
Pages: 1
Prev: 2D phase unwrapping
Next: HoldFirst, Unevaluated