Skip to main content
Bumped by Community user
Bumped by Community user
added 1 character in body
Source Link
user21
  • 40.7k
  • 8
  • 114
  • 170

I want to solve the diffusion equation on a disk centered at (0,0) with a radius of 1. I also want the flux at a radius of 0.8 to be zero. I have this initial condition at time zero:

u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]

The initial condition looks like this:

enter image description here

The solution after time 50 looks like this:

enter image description here

The problem is that I expected because the flux is zero at radius of 0.8 then at the distance more than 0.8 from the origin the value of variable u[x,y,t] should be different from that of at distances shorter than 0.8. However, everything looks equilibrated.

Here is the whole code:

sol = NDSolveValue[{
        Laplacian[u[x, y, t], {x, y}] == [u[xD[u[x, y, t], t] + 
          NeumannValue[0., {x, y} ∈ RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.8]]],
        u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + y^2)/0.01)]},
       u, {x, y} ∈ Disk[{0, 0}, 1],
       {t, 0, 50}
      ]

Plot3D[sol[x, y, 0], {x, y} ∈ Disk[{0, 0}, 1], PlotRange -> All]

enter image description here

I want to solve the diffusion equation on a disk centered at (0,0) with a radius of 1. I also want the flux at a radius of 0.8 to be zero. I have this initial condition at time zero:

u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]

The initial condition looks like this:

enter image description here

The solution after time 50 looks like this:

enter image description here

The problem is that I expected because the flux is zero at radius of 0.8 then at the distance more than 0.8 from the origin the value of variable u[x,y,t] should be different from that of at distances shorter than 0.8. However, everything looks equilibrated.

Here is the whole code:

sol = NDSolveValue[{
        Laplacian[u[x, y, t], {x, y}] == [u[x, y, t], t] + 
          NeumannValue[0., {x, y} ∈ RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.8]]],
        u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + y^2)/0.01)]},
       u, {x, y} ∈ Disk[{0, 0}, 1],
       {t, 0, 50}
      ]

Plot3D[sol[x, y, 0], {x, y} ∈ Disk[{0, 0}, 1], PlotRange -> All]

enter image description here

I want to solve the diffusion equation on a disk centered at (0,0) with a radius of 1. I also want the flux at a radius of 0.8 to be zero. I have this initial condition at time zero:

u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]

The initial condition looks like this:

enter image description here

The solution after time 50 looks like this:

enter image description here

The problem is that I expected because the flux is zero at radius of 0.8 then at the distance more than 0.8 from the origin the value of variable u[x,y,t] should be different from that of at distances shorter than 0.8. However, everything looks equilibrated.

Here is the whole code:

sol = NDSolveValue[{
        Laplacian[u[x, y, t], {x, y}] == D[u[x, y, t], t] + 
          NeumannValue[0., {x, y} ∈ RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.8]]],
        u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + y^2)/0.01)]},
       u, {x, y} ∈ Disk[{0, 0}, 1],
       {t, 0, 50}
      ]

Plot3D[sol[x, y, 0], {x, y} ∈ Disk[{0, 0}, 1], PlotRange -> All]

enter image description here

edited tags
Link
user21
  • 40.7k
  • 8
  • 114
  • 170
Formatted code, special characters
Source Link
MarcoB
  • 67.7k
  • 18
  • 96
  • 198

I want to solve the diffusion equation on a disk centered at (0,0) with a radius of 1. I also want the flux at a radius of 0.8 to be zero. I have this initial condition at time zero:

 u[x, y, 0] == 
 Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]

The initial condition looks like this:

enter image description here

The solution after time 50 looks like this:

enter image description here

The problem is that I expected because the flux is zero at radius of 0.8 then at the distance more than 0.8 from the origin the value of variable u[x,y,t] should be different from that of at distances shorter than 0.8. However, everything looks equilibrated.

Here is the whole code:

sol = NDSolveValue[{\!\(
\*SubsuperscriptBox[\(\[Del]\), \({x       Laplacian[u[x, y}\), \(2\)]\(u[xt], y{x, t]\)\)y}] == 
    D[u[x[u[x, y, t], t] + 
     NeumannValue[
      0NeumannValue[0., {x, y} \[Element] 
       RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.8]]], 
        u[x, y, 0] == 
    Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2y^2)/0.01)]}, 
       u, {x, y} \[Element] Disk[{0, 0}, 1],
       {t, 0, 50}]
      ]

Plot3D[sol[x, y, 0], {x, y} \[Element] Disk[{0, 0}, 1], 
 PlotRange -> All]

enter image description here

I want to solve the diffusion equation on a disk centered at (0,0) with a radius of 1. I also want the flux at a radius of 0.8 to be zero. I have this initial condition at time zero:

 u[x, y, 0] == 
 Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]

The initial condition looks like this:

enter image description here

The solution after time 50 looks like this:

enter image description here

The problem is that I expected because the flux is zero at radius of 0.8 then at the distance more than 0.8 from the origin the value of variable u[x,y,t] should be different from that of at distances shorter than 0.8. However, everything looks equilibrated.

Here is the whole code:

sol = NDSolveValue[{\!\(
\*SubsuperscriptBox[\(\[Del]\), \({x, y}\), \(2\)]\(u[x, y, t]\)\) == 
    D[u[x, y, t], t] + 
     NeumannValue[
      0., {x, y} \[Element] 
       RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.8]]], 
   u[x, y, 0] == 
    Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]}, 
  u, {x, y} \[Element] Disk[{0, 0}, 1], {t, 0, 50}]


Plot3D[sol[x, y, 0], {x, y} \[Element] Disk[{0, 0}, 1], 
 PlotRange -> All]

enter image description here

I want to solve the diffusion equation on a disk centered at (0,0) with a radius of 1. I also want the flux at a radius of 0.8 to be zero. I have this initial condition at time zero:

u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + (y)^2)/0.01)]

The initial condition looks like this:

enter image description here

The solution after time 50 looks like this:

enter image description here

The problem is that I expected because the flux is zero at radius of 0.8 then at the distance more than 0.8 from the origin the value of variable u[x,y,t] should be different from that of at distances shorter than 0.8. However, everything looks equilibrated.

Here is the whole code:

sol = NDSolveValue[{
        Laplacian[u[x, y, t], {x, y}] == [u[x, y, t], t] + 
          NeumannValue[0., {x, y}  RegionDifference[Disk[{0, 0}, 1], Disk[{0, 0}, 0.8]]],
        u[x, y, 0] == Exp[(-x^2 - y^2)/0.01] + 10*Exp[-(((x - 1)^2 + y^2)/0.01)]},
       u, {x, y}  Disk[{0, 0}, 1],
       {t, 0, 50}
      ]

Plot3D[sol[x, y, 0], {x, y}  Disk[{0, 0}, 1], PlotRange -> All]

enter image description here

Tweeted twitter.com/StackMma/status/1109107637529006080
deleted 30 characters in body
Source Link
MOON
  • 3.9k
  • 24
  • 49
Loading
Source Link
MOON
  • 3.9k
  • 24
  • 49
Loading