Prev: 2D phase unwrapping
Next: HoldFirst, Unevaluated
From: Sunt on 7 May 2010 06:23 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 11 May 2010 06:26 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 |