Poisson Equation Neumann boundaries singularity

Click For Summary
SUMMARY

The discussion focuses on solving the Poisson equation with Neumann boundary conditions in a 2D Cartesian geometry as part of a Navier-Stokes solver. The user employs a fast Fourier transform in the x-direction and a finite difference scheme in the y-direction, leading to a singular matrix when kx=0. Participants suggest that setting p_{hat}=0 at these points is not advisable, as it represents the mean value for that row, and recommend considering the right-hand side (RHS) for appropriate solutions. Additionally, using a cosine transform in the y-direction is proposed to maintain a fully spectral approach.

PREREQUISITES
  • Understanding of the Poisson equation and Neumann boundary conditions
  • Familiarity with fast Fourier transforms (FFT) and finite difference methods
  • Knowledge of spectral methods in numerical analysis
  • Basic principles of Navier-Stokes equations
NEXT STEPS
  • Research methods for handling singular matrices in numerical solutions
  • Learn about the implications of using ghost boundary points in finite difference schemes
  • Explore the application of cosine transforms in solving PDEs
  • Investigate the effects of different RHS formulations on Poisson equation solutions
USEFUL FOR

Numerical analysts, computational fluid dynamics researchers, and engineers working on Navier-Stokes solvers or similar PDE problems will benefit from this discussion.

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.
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
1K
Replies
11
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K