Poisson Equation Neumann boundaries singularity

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 2K views
vector_problems
Messages
9
Reaction score
0
I am trying to solve the poisson equation with neumann BC's in a 2D cartesian geometry as part of a Navier-Stokes solver routine and was hoping for some help.

I am using a fast Fourier transform in the x direction and a finite difference scheme in the y. This means the poisson equation becomes

-kx^2p_{i,j}+(((p_{i,j-1})-(2*p_{i,j})+(p_{i,j+1}))/(dy^2))=RHS

with dp/dy=0 at the boundaries being enforced using ghost boundary points

this inverts easily for all wavenumbers except when kx=0 when the matrix is singular.

I was wondering if anyone had any experience dealing with this problem and any standard methods of solving such a problem?

Can you simply set p_{hat}=0 at these points and then convert back to real space?

Thanks
 
Is p_{i,j} the Fourier transform? You should take care that the method does not produce some unwanted complex phase which might ruin the solution.
The kx=0 entry is the mean value for that "row" so you can not just set it equal to zero. I would imagine it depends a bit on your RHS how to best proceed.

PS: If you want to keep it fully spectral you could solve in the y-direction using a cosine transform.