| |
 |
|
|
Science Forum Index » Math - Numerical Analysis Forum » multigrid, helmoltz equation...
Page 1 of 1
|
| Author |
Message |
| Nico... |
Posted: Tue May 06, 2008 10:15 am |
|
|
|
Guest
|
Hello,
I have an 2D elliptic problem to solve.
Let B(x,y) and S(x,y) be "3 dimensional vectors" (3 components). The
equation is :
S(x,y) = B(x,y) - d^2*Laplacian(B(x,y))
where d is a constant.
I have the following boundary conditions:
Left and Right sides (x=0 ET x=Lx, y)
-----------------------------------------------
Bx(0,y) = Bx(Lx,y) periodic
By(0,y) = By(Lx,y) periodic
Bz(0,y) = Bz(Lx,y) periodic
Bottom side (x, y=0)
------------------------------
dBx/dy(x,0) = 0 (Neumann)
By(x,0) = 0 (Dirichlet)
dBz/dy(x,0) = 0 (Neumann)
top side (x, y=Ly)
-------------------------------
dBx/dy(x,Ly) = 0 (Neumann)
By(x,Ly) = 0 (Dirichlet)
dBz/dy(x,Ly) = 0 (Neumann)
My 2D grid is a rectangle Lx*Ly, with dx and dy uniform spatial steps.
Before, I had periodic BCs for everyone so I used fourier transform
method, but now with this kind of BCs, I was told that multigrid methods
were the most adequate.
I've read a bit about those methods, I understand that the goal is to
speed up the convergence of "classic" relaxation methods by damping
low-frequency modes of the error on coarser grids.
But it seems to me that there are a lot of different ways to do that
(which cycle ? how many grids ? which relaxation method ? etc..?) i'm
looking for some help to find out what is the best for my equation (in
terms of speed and "easy to code")
Thanks a lot |
|
|
| Back to top |
|
| Oliver Ruebenkoenig... |
Posted: Wed May 07, 2008 1:49 am |
|
|
|
Guest
|
Hello Nico,
if you are looking for an introduction to Multigrid you may want to have a
look at a tutorial I wrote some time ago. The tutorial is written in
Mathematica but the code should be understandable without any prior
knowledge of Mathematica.
You can find the tutorial here:
http://www.imtek.uni-freiburg.de/simulation/mathematica/IMSweb/imsTOC/Lectures%20and%20Tips/Simulation%20I/MultiGrid_introDocu.html
hth,
Oliver
On Tue, 6 May 2008, Nico wrote:
Quote: Hello,
I have an 2D elliptic problem to solve.
Let B(x,y) and S(x,y) be "3 dimensional vectors" (3 components). The equation
is :
S(x,y) = B(x,y) - d^2*Laplacian(B(x,y))
where d is a constant.
I have the following boundary conditions:
Left and Right sides (x=0 ET x=Lx, y)
-----------------------------------------------
Bx(0,y) = Bx(Lx,y) periodic
By(0,y) = By(Lx,y) periodic
Bz(0,y) = Bz(Lx,y) periodic
Bottom side (x, y=0)
------------------------------
dBx/dy(x,0) = 0 (Neumann)
By(x,0) = 0 (Dirichlet)
dBz/dy(x,0) = 0 (Neumann)
top side (x, y=Ly)
-------------------------------
dBx/dy(x,Ly) = 0 (Neumann)
By(x,Ly) = 0 (Dirichlet)
dBz/dy(x,Ly) = 0 (Neumann)
My 2D grid is a rectangle Lx*Ly, with dx and dy uniform spatial steps.
Before, I had periodic BCs for everyone so I used fourier transform method,
but now with this kind of BCs, I was told that multigrid methods were the
most adequate.
I've read a bit about those methods, I understand that the goal is to speed
up the convergence of "classic" relaxation methods by damping low-frequency
modes of the error on coarser grids.
But it seems to me that there are a lot of different ways to do that (which
cycle ? how many grids ? which relaxation method ? etc..?) i'm looking for
some help to find out what is the best for my equation (in terms of speed and
"easy to code")
Thanks a lot
Oliver Ruebenkoenig, <ruebenko AT uni-freiburg.de> |
|
|
| Back to top |
|
| Nico... |
Posted: Sat May 10, 2008 2:35 am |
|
|
|
Guest
|
More specific question :
How can I impose Neumann boundary conditions with the smoother (gauss
seidel for example) ?
What smoother should I choose, and based on what argument ? single
proc/parallel ?
Thanks
Nico a écrit :
Quote: Hello,
I have an 2D elliptic problem to solve.
Let B(x,y) and S(x,y) be "3 dimensional vectors" (3 components). The
equation is :
S(x,y) = B(x,y) - d^2*Laplacian(B(x,y))
where d is a constant.
I have the following boundary conditions:
Left and Right sides (x=0 ET x=Lx, y)
-----------------------------------------------
Bx(0,y) = Bx(Lx,y) periodic
By(0,y) = By(Lx,y) periodic
Bz(0,y) = Bz(Lx,y) periodic
Bottom side (x, y=0)
------------------------------
dBx/dy(x,0) = 0 (Neumann)
By(x,0) = 0 (Dirichlet)
dBz/dy(x,0) = 0 (Neumann)
top side (x, y=Ly)
-------------------------------
dBx/dy(x,Ly) = 0 (Neumann)
By(x,Ly) = 0 (Dirichlet)
dBz/dy(x,Ly) = 0 (Neumann)
My 2D grid is a rectangle Lx*Ly, with dx and dy uniform spatial steps.
Before, I had periodic BCs for everyone so I used fourier transform
method, but now with this kind of BCs, I was told that multigrid methods
were the most adequate.
I've read a bit about those methods, I understand that the goal is to
speed up the convergence of "classic" relaxation methods by damping
low-frequency modes of the error on coarser grids.
But it seems to me that there are a lot of different ways to do that
(which cycle ? how many grids ? which relaxation method ? etc..?) i'm
looking for some help to find out what is the best for my equation (in
terms of speed and "easy to code")
Thanks a lot |
|
|
| Back to top |
|
| |
|
Page 1 of 1
All times are GMT - 5 Hours
The time now is Sun Jul 06, 2008 8:19 pm
|
|