I Poisson Equation Neumann boundaries singularity

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.
 
There is the following linear Volterra equation of the second kind $$ y(x)+\int_{0}^{x} K(x-s) y(s)\,{\rm d}s = 1 $$ with kernel $$ K(x-s) = 1 - 4 \sum_{n=1}^{\infty} \dfrac{1}{\lambda_n^2} e^{-\beta \lambda_n^2 (x-s)} $$ where $y(0)=1$, $\beta>0$ and $\lambda_n$ is the $n$-th positive root of the equation $J_0(x)=0$ (here $n$ is a natural number that numbers these positive roots in the order of increasing their values), $J_0(x)$ is the Bessel function of the first kind of zero order. I...
Back
Top