/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it under
    the terms of the GNU General Public License as published by the Free
    Software Foundation, either version 3 of the License, or (at your option)
    any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY
    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
    details.

    You should have received a copy of the GNU General Public License along with
    OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

\page pageBoundaryConditions Boundary Conditions
\ref grpBoundaryConditions are required to 'close' the simulation problem.
Careful attention should be applied to their selection so as to create a
well-posed system of equations, which can be solved numerically.

\section secBoundaryConditionsOverview Overview
The set of available \ref grpBoundaryConditions comprise of basic, turbulent and
thermophysical types.

\subsection secBC1 Basic boundary conditions
    - \ref grpConstraintBoundaryConditions
    - \ref grpInletBoundaryConditions
    - \ref grpOutletBoundaryConditions
    - \ref grpGenericBoundaryConditions
    - \ref grpCoupledBoundaryConditions
    - \ref grpWallBoundaryConditions

\subsection secBC2 Turbulent flow boundary conditions
    - \ref grpRASBoundaryConditions

\subsection secBC3 Thermophysical boundary conditions
    - \ref grpThermoBoundaryConditions


\section secWallFunctions Wall functions
Wall functions in OpenFOAM are modelled as boundary conditions, applied to
the viscosity for momentum, and thermal diffusivity for energy.  Two groups of
wall functions are available, which vary in terms of the underlying
compressibility assumption.

Wall functions for incompressible flow
    - \ref grpIcoWallFunctions

Wall functions for compressible flow
    - \ref grpCmpWallFunctions


\section secBoundaryConditions Typical usage for pressure-velocity systems
The choice as to the most appropriate set of boundary conditions is dictated by
the type of flow problem.  In many cases, multiple possible selections exist;
the following tables offer suggestions for subsonic flow.

subsonic inlet (flow specified):
\table
    Variable             | Symbol | Type
    pressure             | p      | \link Foam::zeroGradientFvPatchField zeroGradient\endlink
    velocity             | U      | \link Foam::fixedValueFvPatchField fixedValue\endlink
    transported property | -      | \link Foam::fixedValueFvPatchField fixedValue\endlink
    derived property     | -      | \link Foam::calculatedFvPatchField calculated\endlink or \link Foam::zeroGradientFvPatchField zeroGradient\endlink
\endtable

subsonic outlet:
\table
    Variable             | Symbol | Type
    pressure             | p      | \link Foam::fixedValueFvPatchField fixedValue\endlink
    velocity             | U      | \link Foam::inletOutletFvPatchField inletOutlet\endlink or \link Foam::pressureInletOutletVelocityFvPatchVectorField pressureInletOutletVelocity\endlink
    transported property | -      | \link Foam::inletOutletFvPatchField inletOutlet\endlink
    derived property     | -      | \link Foam::calculatedFvPatchField calculated\endlink or \link Foam::zeroGradientFvPatchField zeroGradient\endlink
\endtable

wall (impermeable, non-slip):
\table
    Variable             | Symbol | Type
    pressure             | p      | \link Foam::zeroGradientFvPatchField zeroGradient\endlink
    velocity             | U      | \link Foam::fixedValueFvPatchField fixedValue\endlink
    transported property | -      | \link Foam::fixedValueFvPatchField fixedValue\endlink
    derived property     | -      | \link Foam::calculatedFvPatchField calculated\endlink or \link Foam::zeroGradientFvPatchField zeroGradient\endlink
\endtable


\*---------------------------------------------------------------------------*/