Re: helmholtz equation and divergence condition
- From: DharmaFog <Agile.Aspect@xxxxxxxxx>
- Date: Sat, 14 Jun 2008 10:16:13 -0700 (PDT)
On Jun 5, 3:26 pm, Nico <n...@xxxxxxxxxxxxxx> wrote:
I'm trying to solve the following elliptic problem :
S = B - \mu\nabla^2 B
Where S(x,y) and B(x,y) are 3 component vectors.
I have \nabla\cdot S = 0 and I want B such that \nabla\cdot B = 0
everywhere.
I'm using finite differences on a grid with nx+1 in the x direction and
ny+1 points in the y direction. The x=0 and x=nx boundaries are
periodic, so we have :
Bx(0,y) = Bx(nx,y)
By(0,y) = By(nx,y)
Bz(0,y) = Bz(nx,y)
I thought that maybe the following boundary conditions would ensure
\nabla\cdot B=0 :
Bx(x,0) = B_1
Bx(x,ny) = B_2
dBy/dy = 0 at y=0 and y=ny
(this make the divergence of B equal to zero on the y=0 and y=ny boundaries)
and homogenous dirichlet conditions for Bz at y=0 and y=ny.
Do you so far agree with that ?
I'm using centered second order scheme to discretize my equation
(standard 5 point laplacien). And for the Neumann BC I'm doing :
By(x,-1) = By(x,1) for the y=0 border
By(x,ny+1) = By(x,ny-1) for the y=ny border.
This is supposed to be second order first derivative. Thanks to this, I
can replace the "ghost" point in my Laplacian when I'm on the top or
bottom border.
But I have a problem, when I look at [tex]\nabla\cdot B[/tex], it is 0
in the middle of my domain but on a small length from the y=constant
borders, the divergence of B is starting to raise anormally.
example :
http://nico.aunai.free.fr/divB.png
another one (del dot B versus y-direction) :
http://nico.aunai.free.fr/divb.png
you can see that there is no problem at all on the periodic boundaries :-s
When I'm solving the equation for an analytical source term for which I
know the analytical solution, I can notice that there is a small error
(but definitly bigger than everywhere else in the domain) on the Y
boundary regarding to the Neumann BC.
Please, would you know where I should look at to fix this problem ?
Is my boundary conditions are bad to satisfy \nabla\cdot B=0 ?
Is my discretisation not correct ? I've checked the local truncation
error which seems to be second order consistant, and eigenvalues of my
linear operator looks pretty much the same that those of the Laplacian
(1- L), and if I'm correct it should be stable and so converge towards
the solution with second order accuracy everywhere, no ?
I can post my gauss-seidel routine if needed.
Thanks a lot !
Please tell me if something's not clear.
Isn't
\nabla^2 = grad(del B) - curl(curl B)
valid for vector fields?
You're missing a piece.
Suppose that both S and B are functions instead of vectors, then the
Helmhotz equations would be
S = (1 - \mu\nabla^2) B
= -mu(-1/mu+\nabla^2) B
or
-S/mu = (k^2 + \nabla^2) B
where k=i /sqrt(mu)
i.e., k is imaginary.
.
- References:
- helmholtz equation and divergence condition
- From: Nico
- helmholtz equation and divergence condition
- Prev by Date: Re: Ellipse - Ellipse Intersection
- Next by Date: Sexy iPhone Themes
- Previous by thread: helmholtz equation and divergence condition
- Next by thread: Re: extract rotation angle from 3D for a 2D image
- Index(es):
Relevant Pages
|