Dismiss Notice
Join Physics Forums Today!

Helmholtz equation Neumann and divergence

  1. Jun 5, 2008 #1
    "Helmholtz equation" Neumann and divergence


    I'm trying to solve the following elliptic problem :

    [tex]S = B - \mu\nabla^2 B[/tex]

    Where S(x,y) and B(x,y) are 3 component vectors.

    I have [tex]\nabla\cdot S = 0[/tex] and I want B such that [tex]\nabla\cdot B = 0[/tex] 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 :

    [tex]Bx(0,y) = Bx(nx,y)[/tex]
    [tex]By(0,y) = By(nx,y)[/tex]
    [tex]Bz(0,y) = Bz(nx,y)[/tex]

    I thought that maybe the following boundary conditions would ensure [tex]\nabla\cdot B=0[/tex] :

    [tex]Bx(x,0) = B_1[/tex]
    [tex]Bx(x,ny) = B_2[/tex]

    [tex]\frac{\partial B_y}{\partial y}\left(x,ny\right)= \frac{\partial B_y}{\partial y}\left(x,0\right) = 0[/tex]

    (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 :

    another one (del dot B versus y-direction) :

    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 [tex]\nabla\cdot B=0 [/tex] ?
    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.
    Last edited: Jun 5, 2008
  2. jcsd
  3. Jul 15, 2008 #2
    Re: "Helmholtz equation" Neumann and divergence

    When [tex] \nabla \cdot B =0 [/tex] your equation can be written,

    [tex]\mu\nabla\times\nabla\times B + B = S[/tex].

    The correct boundary conditions for this equation are discussed in http://dx.doi.org, reference number doi:10.1016/j.jcp.2008.03.046.

    There it is shown that with [tex] \hat{n} \times B=0 [/tex] on the boundary,
    a compatibility condition,

    [tex] \int_{\partial D} \hat{n} \cdot [ B-S] \mathrm{d} \mathcal S=0 [/tex]

    must be satisfied,
    or with

    [tex] \hat{n} \times \nabla \times B=0 [/tex]

    on the boundary, the boundary condition,

    [tex] \hat{n} \cdot [B-S]=0 [/tex]

    must be imposed.

Similar Discussions: Helmholtz equation Neumann and divergence