/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | www.openfoam.com
     \\/     M anipulation  |
-------------------------------------------------------------------------------
    Copyright (C) 2012-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
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.

Wall-functions
    - \ref grpWallFunctions

Thermal wall-functions for incompressible flow
    - \ref grpIcoWallFunctions

Thermal 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


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