Poisson equation with Neumann boundary conditions

 Register Blogs Members List Search Today's Posts Mark Forums Read

 July 22, 2004, 21:19 Poisson equation with Neumann boundary conditions #1 cregeo Guest   Posts: n/a 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: = 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

 July 22, 2004, 21:20 Re: Poisson equation with Neumann boundary conditi #2 cregeo Guest   Posts: n/a 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

 July 23, 2004, 16:41 A clearer question #3 cregeo Guest   Posts: n/a 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

 July 25, 2004, 02:27 Re: A clearer question #4 Rami Guest   Posts: n/a 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.

 July 25, 2004, 05:46 Re: A clearer question #5 Aspect Guest   Posts: n/a 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.

 July 25, 2004, 05:52 Re: A clearer question #6 Rami Guest   Posts: n/a 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...

 July 25, 2004, 10:27 Re: A clearer question #7 cregeo Guest   Posts: n/a 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

 July 26, 2004, 04:37 Re: A clearer question #8 Rami Guest   Posts: n/a 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?

 July 26, 2004, 04:58 Re: A clearer question #9 cregeo Guest   Posts: n/a 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

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Martin80 OpenFOAM Programming & Development 22 September 7, 2011 17:48 Pankaj CFX 9 November 23, 2009 05:05 Amir Main CFD Forum 0 September 17, 2008 02:26 Beginner Main CFD Forum 0 September 6, 2007 09:18 Oscar Salazar Main CFD Forum 1 October 12, 2004 11:37

All times are GMT -4. The time now is 18:14.