Main Page | Report this Page
 
   
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
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>
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
 
Page 1 of 1       All times are GMT - 5 Hours
The time now is Fri Dec 05, 2008 7:34 am