CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   Poisson equation with Neumann boundary conditions (http://www.cfd-online.com/Forums/main/7859-poisson-equation-neumann-boundary-conditions.html)

cregeo July 22, 2004 21:19

Poisson equation with Neumann boundary conditions
 
May I add one question to this thread?

For the poisson equation that will turn out

to be matrix equation:

div(grad(p)) = f

how can I insert the Neumann boundary conditions into the matrix:

<grad(p), n>= 0

where <,> is inner product and n is a unit normal of (n_x, n_y) on the boundary.

In a staggered grid, the boundary condition turns out to be as follows usually:

p_i = (- n_x * p_(j))/(n_x + n_y) + (-n_y * p(k))/(n_x + n_y)

where p_i, p_j, and p_k are the pressure at cell centers and neighbor to each other..

My question is whether I should replace this into the poisson equation modifying the poisson equation without changing the size of the matrix or use the boundary condition as a Lagrange Multiplier?

Please help me..

Cregeo


cregeo July 22, 2004 21:20

Re: Poisson equation with Neumann boundary conditi
 
May I add one question to this thread?

For the poisson equation that will turn out

to be matrix equation:

div(grad(p)) = f

how can I insert the Neumann boundary conditions into the matrix:

[grad(p), n]= 0

where [,] is the inner product and n is a unit normal of (n_x, n_y) on the boundary.

In a staggered grid, the boundary condition turns out to be as follows usually:

p_i = (- n_x * p_(j))/(n_x + n_y) + (-n_y * p(k))/(n_x + n_y)

where p_i, p_j, and p_k are the pressure at cell centers and neighbor to each other..

My question is whether I should replace this into the poisson equation modifying the poisson equation without changing the size of the matrix or use the boundary condition as a Lagrange Multiplier?

Please help me..

Cregeo


cregeo July 23, 2004 16:41

A clearer question
 
Maybe, my question was too absurd or too basic. :)

My question was whether I should replace the neumann boundary conditions into the matrix system for the poisson equation, Au = b, without changing the size of the matrix, or use the boundary condition as a Lagrange Multiplier?

Replacing means that each [grad(p_i), n] = 0 changes a row of the matrix A and b's component.

Please save me..

Cregeo


Rami July 25, 2004 02:27

Re: A clearer question
 
Just a note: If you use a weak formulation (FVM, FEM), the Neumann BC is a so-called "natural BC". More specifically, if the normal derivative is 0, then this term is 0. For example, if you solve heat transfer using FVM, boundaries you do not specify any BC data on are actually adiabatic walls.

Aspect July 25, 2004 05:46

Re: A clearer question
 
Rami, could not you specify: in FEM if a normal derivative = 0 than it is "natural BC". But if the normal derivative > 0 or < 0 is it "natural BC" too? Thx.

Rami July 25, 2004 05:52

Re: A clearer question
 
In the weak formulation lingo, a Neumann-type BC is termed "natural BC", no matter if homogeneous or not, i.e., the derivative may be anything. A Dirichlet-type BC is termed "essential BC".

Being an engineer, I hope I did not commit any mathematical crime here...

cregeo July 25, 2004 10:27

Re: A clearer question
 
Thanks, Rami.

When [grad(p), n] = 0, grad(p) does not need to be only zero. For example, when grad(p) is on the plane perpendicular to the normal, n, the equation [grad(p), n] = 0 is met---where, [a,b] means dot product.

Do you have any idea, how can I enforce this boundary condition when I solve the poisson equation

div(grad(p)) = f ?

When the boundary condition is not like the above, e.g., [grad(p), n] = F (no longer essential condition), how can I specify it with the matrix obtained by the poisson equation?

Should that be solved by using the Lagrange multiplier? Or by updating some rows of the poisson equation with the boundary condition imposed at each point on the boundary?

Thanks again,

Cregeo

Rami July 26, 2004 04:37

Re: A clearer question
 
1. I never claimed that the homogeneous Neumann BC (i.e., normal derivative of grad(p) = 0) implies grad(p) = 0.

2. "Essential BC" is not limited to normal derivative = 0 (see also my former post http://www.cfd-online.com/Forum/main.cgi?read=32432).

3. I have no experience in the implementation of the pressure correction solver, so I cannot comment on the specific BC you wish to use. Assuming you need an inhomogeneous Neumann BC, you may use either methods you asked about (Lagrange multiplier or rows update).

4. Are you using a weak- (FVM, FEM) or strong- (FDM) formulation?

cregeo July 26, 2004 04:58

Re: A clearer question
 
You are right about the essential boundary conditions.

I got some hints about the third item of your posting and my main question, from

http://www.ap.univie.ac.at/usersves/cp0102/dxnode89.htm

I'm using strong formulation.

Thanks a lot, Rami



All times are GMT -4. The time now is 08:05.