CFD Online Logo CFD Online URL
Home > Forums > General Forums > Main CFD Forum

Implicit vs. explicit treatment of variables at zero gradient outflow boundaries

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

LinkBack Thread Tools Search this Thread Display Modes
Old   February 21, 2015, 15:37
Default Implicit vs. explicit treatment of variables at zero gradient outflow boundaries
New Member
Fabian Gabel
Join Date: Oct 2014
Location: Darmstadt
Posts: 13
Rep Power: 10
eltenedor is on a distinguished road
Studying Perić's CAFFA code (collocated FVM discretization and SIMPLE-type algorithm for Navier-Stokes) I came across two different implementations of the Neumann zero gradient outflow boundary condition. In the code the outflow boundary condition for scalars is implemented as

      DO IO=IOS(K)+1,IOS(K)+NOUT(K)
     *              ONE,ZERO,FI)
      END DO
in another version of the code the same boundary condition is implemented as

      DO IO=IOS(K)+1,IOS(K)+NOUT(K)
     *              ONE,ZERO,FI)
      END DO
The first version implements the Neumann zero gradient boundary condition implicitly, i.e. if P is a boundary control volume and f corresponds to the outflow boundary face of the volume, the boundary condition implies \phi_f = \phi_P. This would lead to a vanishing diffusive term for this boundary face. The convective contribution would depend entirely on \phi_P. This is accounted for at a later stage in the code.

On the other side, the second version uses the zero gradient condition to create a "lagged" (by one outer iteration) Dirichlet boundary condition. As before \phi_f = \phi_P but this time in an explicit manner. With respect to the implementation, this boundary condition is handled as if it was an inflow (Dirichlet) boundary condition.

I have a guess on why someone would decide to choose either one of the two previous approaches and I would appreciate getting some comments on it, maybe even a reference I could read, since I didn't find it in Ferziger/Perić nor in Versteeg:

The first approach favors convergence with respect to the number of outer iterations needed, because the boundary values are treated in an implicit way. The second approach (explicit) favors convergence with respect to the solution of the linear system at each outer iteration, because the explicit treatment of the boundary values increases the diagonal dominance of the linear system to be solved.

While I have found both described implementations used for scalar transport, I have only come across the second approach for the treatment of outflow boundary conditions for the velocities. Do you have an idea, why the explicit treatment of boundary values at Neumann zero gradient boundaries is recommendable especially for the velocities? Is it maybe, because fixing the mass flux at outflow boundaries is necessary for the velocity outflow boundary condition to be compatible with the Neumann zero gradient boundary condition for the pressure correction? (p. 206 of Ferziger/Perić Computational Methods for Fluid Dynamics (3rd Ed.) seems to imply this)

Last edited by eltenedor; February 25, 2015 at 02:42.
eltenedor is offline   Reply With Quote


collocated grid, finite volume, neumann bcs, outflow boundary, simple algorithm

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 Off
Trackbacks are Off
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
outflow boundary condition ravi_adepu FLUENT 11 January 19, 2018 07:13
Boundaries and conservative variables pankos Main CFD Forum 0 April 2, 2011 03:50
Implicit treatment of advection terms and pressure correction nikosb Main CFD Forum 0 January 17, 2010 16:07
Implicit or explicit treatment of convective terms CH Main CFD Forum 1 March 14, 2007 07:51
Point implicit treatment of k-e source terms andy Main CFD Forum 5 June 9, 2006 11:03

All times are GMT -4. The time now is 12:51.