Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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 :
    http://nico.aunai.free.fr/divB.png [Broken]

    another one (del dot B versus y-direction) :
    http://nico.aunai.free.fr/divb.png [Broken]

    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 by a moderator: May 3, 2017
  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" [Broken], 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.
    Last edited by a moderator: May 3, 2017
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook