diff --git a/applications/utilities/miscellaneous/foamHelp/Allwmake b/applications/utilities/miscellaneous/foamHelp/Allwmake
new file mode 100755
index 0000000000000000000000000000000000000000..4724935b92aafcaca83af530da8936424d25461c
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/Allwmake
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd ${0%/*} || exit 1    # run from this directory
+
+wmake libso helpTypes
+wmake
+
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/applications/utilities/miscellaneous/foamHelp/Make/files b/applications/utilities/miscellaneous/foamHelp/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..263901fe72896d9dd71a0c3d9eaa280349d03a61
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/Make/files
@@ -0,0 +1,3 @@
+foamHelp.C
+
+EXE = $(FOAM_APPBIN)/foamHelp
diff --git a/applications/utilities/miscellaneous/foamHelp/Make/options b/applications/utilities/miscellaneous/foamHelp/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..41ca9e9b573647baf223ed5feaaa2cb587a0d42b
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/Make/options
@@ -0,0 +1,15 @@
+EXE_INC = \
+    -IhelpTypes/lnInclude \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+EXE_LIBS = \
+    -lhelpTypes \
+    -lfiniteVolume \
+    -lincompressibleTurbulenceModel \
+    -lcompressibleTurbulenceModel \
+    -lincompressibleRASModels \
+    -lcompressibleRASModels \
+    -lincompressibleLESModels \
+    -lcompressibleLESModels \
+    -lradiationModels \
+    -lfluidThermophysicalModels
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermoNew.C b/applications/utilities/miscellaneous/foamHelp/foamHelp.C
similarity index 56%
rename from src/thermophysicalModels/basic/basicThermo/basicThermoNew.C
rename to applications/utilities/miscellaneous/foamHelp/foamHelp.C
index e7dda0d9d548d8543a47f6346c02de0895bdbacb..39e0cb9130d9fec38e8698a4adbd799c3c4ae843 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermoNew.C
+++ b/applications/utilities/miscellaneous/foamHelp/foamHelp.C
@@ -21,50 +21,47 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
+Application
+    foamHelp
+
+Description
+    Top level wrapper utility around foam help utilities
+
 \*---------------------------------------------------------------------------*/
 
-#include "basicThermo.H"
+#include "fvCFD.H"
+#include "helpType.H"
+
+using namespace Foam;
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::basicThermo> Foam::basicThermo::New
-(
-    const fvMesh& mesh
-)
+int main(int argc, char *argv[])
 {
-    // get model name, but do not register the dictionary
-    // otherwise it is registered in the database twice
-    const word modelType
+    #include "addRegionOption.H"
+    if (argc < 2)
+    {
+        FatalError
+            << "No help utility has been supplied" << nl
+            << exit(FatalError);
+    }
+
+    const word utilityName = argv[1];
+
+    Foam::autoPtr<Foam::helpType> utility
     (
-        IOdictionary
-        (
-            IOobject
-            (
-                "thermophysicalProperties",
-                mesh.time().constant(),
-                mesh,
-                IOobject::MUST_READ_IF_MODIFIED,
-                IOobject::NO_WRITE,
-                false
-            )
-        ).lookup("thermoType")
+        helpType::New(utilityName)
     );
 
-    Info<< "Selecting thermodynamics package " << modelType << endl;
+    utility().init();
 
-    fvMeshConstructorTable::iterator cstrIter =
-        fvMeshConstructorTablePtr_->find(modelType);
+    #include "setRootCase.H"
+    #include "createTime.H"
+    #include "createNamedMesh.H"
 
-    if (cstrIter == fvMeshConstructorTablePtr_->end())
-    {
-        FatalErrorIn("basicThermo::New(const fvMesh&)")
-            << "Unknown basicThermo type " << modelType << nl << nl
-            << "Valid basicThermo types are:" << nl
-            << fvMeshConstructorTablePtr_->sortedToc() << nl
-            << exit(FatalError);
-    }
+    utility().execute(args, mesh);
 
-    return autoPtr<basicThermo>(cstrIter()(mesh));
+    Info<< "End\n" << endl;
 }
 
 
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/files b/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..1f7de8d62e7fb2169fe9b02a8ecc00b368901f42
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/files
@@ -0,0 +1,8 @@
+helpType/helpType.C
+helpType/helpTypeNew.C
+helpBoundary/helpBoundary.C
+helpFunctionObject/helpFunctionObject.C
+
+doxygenXmlParser/doxygenXmlParser.C
+
+LIB = $(FOAM_LIBBIN)/libhelpTypes
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options b/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..1c130c5eb1c958841f729541993d6088312c0dae
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options
@@ -0,0 +1,13 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+EXE_LIBS = \
+    -lfiniteVolume \
+    -lincompressibleTurbulenceModel \
+    -lcompressibleTurbulenceModel \
+    -lincompressibleRASModels \
+    -lcompressibleRASModels \
+    -lincompressibleLESModels \
+    -lcompressibleLESModels \
+    -lradiationModels \
+    -lbasicThermophysicalModels
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C
new file mode 100644
index 0000000000000000000000000000000000000000..acf9a72d2406dcfa843de9092ba8885e21952ab7
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C
@@ -0,0 +1,246 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "doxygenXmlParser.H"
+#include "wordRe.H"
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::doxygenXmlParser::doxygenXmlParser
+(
+    const fileName& fName,
+    const string& startTag,
+    const string& searchStr,
+    const bool exactMatch
+)
+:
+    dictionary(dictionary::null)
+{
+    IFstream is(fName);
+
+    char c;
+
+    // skip forward to entry name
+    skipForward(is, startTag);
+
+    while (is.get(c))
+    {
+        if (c == '<')
+        {
+            // if in block, read block name
+            string blockName = "";
+            string params = "";
+            bool readingParam = false;
+            while (is.get(c)  && c != '>')
+            {
+                if (c == ' ')
+                {
+                    readingParam = true;
+                }
+                else
+                {
+                    if (readingParam)
+                    {
+                        params = params + c;
+                    }
+                    else
+                    {
+                        blockName = blockName + c;
+                    }
+                }
+            }
+
+            if (blockName == '/' + startTag)
+            {
+                break;
+            }
+
+            if ((blockName == "compound") && (params == "kind=\"file\""))
+            {
+                // keep entry
+                word name = "";
+                fileName path = "";
+                word fName = "";
+                bool foundName = false;
+                bool foundPath = false;
+                bool foundFName = false;
+                bool earlyExit = false;
+                while (!foundName || !foundPath || !foundFName)
+                {
+                    word entryName;
+                    getEntry<word>(is, entryName);
+                    if (entryName == "name")
+                    {
+                        getValue<word>(is, name);
+                        if (wordRe(".*.H", wordRe::DETECT).match(name))
+                        {
+                            foundName = true;
+                        }
+                        else
+                        {
+                            // not interested in this compound
+                            break;
+                        }
+                    }
+                    else if (entryName == "path")
+                    {
+                        getValue<fileName>(is, path);
+
+                        // filter path on regExp
+                        if (wordRe(searchStr, wordRe::DETECT).match(path))
+                        {
+                            foundPath = true;
+                        }
+                        else
+                        {
+                            // not interested in this compound
+                            break;
+                        }
+                    }
+                    else if (entryName == "filename")
+                    {
+                        getValue<word>(is, fName);
+                        foundFName = true;
+                    }
+                    else
+                    {
+                        skipBlock(is, entryName);
+                    }
+                }
+
+                if (foundPath && !earlyExit)
+                {
+                    word tName(path.components().last());
+
+                    // only insert if type is not already known
+                    // NOTE: not ideal for cases where there are multiple types
+                    //    but contained within different namespaces
+                    //    preferentially take exact match if it exists
+                    if (exactMatch && (tName + ".H") == name)
+                    {
+                        dictionary dict(dictionary::null);
+                        dict.add("name", name);
+                        dict.add("filename", fName + ".html");
+                        dict.add("path", path);
+                        this->add(tName, dict);
+                    }
+                    else if
+                    (
+                        !exactMatch
+                     && !found(tName)
+                     && wordRe(".*" + tName + ".*", wordRe::DETECT).match(name)
+                    )
+                    {
+                        dictionary dict(dictionary::null);
+                        dict.add("name", name);
+                        dict.add("filename", fName + ".html");
+                        dict.add("path", path);
+                        this->add(tName, dict);
+                    }
+                }
+
+                // skip remanining entries
+                skipBlock(is, blockName);
+            }
+            else
+            {
+                skipBlock(is, blockName);
+            }
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::doxygenXmlParser::skipBlock(IFstream& is, const word blockName) const
+{
+    // recurse to move forward in 'is' until come across </blockName>
+
+    string closeName = "";
+
+    // fast-forward until we reach a '<'
+    char c;
+    while (is.get(c) && c  != '<')
+    {}
+
+    // check to see if this is a closing block
+    if (is.get(c) && c  == '/')
+    {
+        while (is.get(c) && c  != '>')
+        {
+            closeName += c;
+        }
+
+        if (closeName == blockName)
+        {
+            // finished reading block
+            return;
+        }
+        else
+        {
+            skipBlock(is, blockName);
+        }
+    }
+    else
+    {
+        skipBlock(is, blockName);
+    }
+}
+
+
+void Foam::doxygenXmlParser::skipForward
+(
+    IFstream& is,
+    const word blockName
+) const
+{
+    // recurse to move forward in 'is' until come across <blockName>
+
+    // fast-forward until we reach a '<'
+    char c;
+    while (is.get(c) && c != '<')
+    {}
+    
+    string entryName = "";
+    while (is.get(c) && c  != '>')
+    {
+        entryName = entryName + c;
+    }
+
+    if (entryName == blockName)
+    {
+        return;
+    }
+    else
+    {
+        skipForward(is, blockName);
+    }
+}
+
+
+// ************************************************************************* //
+
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.H b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.H
new file mode 100644
index 0000000000000000000000000000000000000000..f2abdaee8d4f6c9f9e071b807f80e4e5b92663cf
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.H
@@ -0,0 +1,97 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::doxygenXmlParser
+
+Description
+
+SourceFiles
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef doxygenXmlParser_H
+#define doxygenXmlParser_H
+
+#include "dictionary.H"
+#include "IFstream.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                      Class doxygenXmlParser Declaration
+\*---------------------------------------------------------------------------*/
+
+class doxygenXmlParser
+:
+    public dictionary
+{
+
+public:
+
+    //- Construct from components
+    doxygenXmlParser
+    (
+        const fileName& fName,
+        const string& startTag,
+        const string& searchStr,
+        const bool exactMatch
+    );
+
+
+    // Member functions
+
+        //- Skip past a block
+        void skipBlock(IFstream& is, const word blockName) const;
+
+        //- Skip forward to block
+        void skipForward(IFstream& is, const word blockName) const;
+
+        //- Return the entry
+        template<class Type>
+        void getEntry(IFstream& is, Type& entry) const;
+
+        //- Return the entry value
+        template<class Type>
+        void getValue(IFstream& is, Type& entry) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "doxygenXmlParserTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParserTemplates.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParserTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..0ab6632da8738c714d39312e3c47dbf5da83c2bd
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParserTemplates.C
@@ -0,0 +1,67 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "doxygenXmlParser.H"
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class Type>
+void Foam::doxygenXmlParser::getEntry(IFstream& is, Type& entry) const
+{
+    char c;
+    while (is.get(c) && c != '<')
+    {}
+
+    entry = "";
+    if (is.get(c) && c  == '/')
+    {
+        return;
+    }
+    else
+    {
+        entry = entry + c;
+    }
+
+    while (is.get(c) && c  != '>')
+    {
+        entry = entry + c;
+    }
+}
+
+
+template<class Type>
+void Foam::doxygenXmlParser::getValue(IFstream& is, Type& entry) const
+{
+    char c;
+
+    entry = "";
+    while (is.get(c) && c  != '<')
+    {
+        entry = entry + c;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.C
new file mode 100644
index 0000000000000000000000000000000000000000..9fd46f35c106256928749ed0615759faf6b40aef
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.C
@@ -0,0 +1,192 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "helpBoundary.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    namespace helpTypes
+    {
+        defineTypeNameAndDebug(helpBoundary, 0);
+        addNamedToRunTimeSelectionTable
+        (
+            helpType,
+            helpBoundary,
+            dictionary,
+            boundary
+        );
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::helpTypes::helpBoundary::helpBoundary()
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::helpTypes::helpBoundary::~helpBoundary()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::helpTypes::helpBoundary::init()
+{
+    helpType::init();
+
+    argList::validArgs.append("boundary");
+
+    argList::addOption
+    (
+        "field",
+        "word",
+        "list available conditions for field"
+    );
+    argList::addBoolOption
+    (
+        "constraint",
+        "list constraint patches"
+    );
+    argList::addBoolOption
+    (
+        "fixedValue",
+        "list fixed value patches (use with -field option)"
+    );
+}
+
+
+void Foam::helpTypes::helpBoundary::execute
+(
+    const argList& args,
+    const fvMesh& mesh
+)
+{
+    bool abortVar(env("FOAM_ABORT"));
+    if (abortVar)
+    {
+        FatalErrorIn
+        (
+            "void Foam::helpTypes::helpBoundary::execute"
+            "("
+                "const argList&, "
+                "const fvMesh&"
+            ")"
+        )
+            << "Please unset FOAM_ABORT to use this utlity"
+            << exit(FatalError);
+    }
+
+    word condition(word::null);
+    word fieldName(word::null);
+
+    if (args.optionReadIfPresent("browse", condition))
+    {
+        // TODO: strip scoping info if present?
+        // e.g. conditions with leading "compressible::" will not be found
+        // ".*[fF]vPatchField.*" + className + ".*"
+        displayDoc(condition, ".*[fF]vPatchField.*", false);
+    }
+    else if (args.optionFound("constraint"))
+    {
+        HashSet<word> constraintTypes(fvPatch::constraintTypes());
+        Info<< "Constraint types:" << nl;
+        forAllConstIter(HashSet<word>, constraintTypes, iter)
+        {
+            Info<< "    " << iter.key() << nl;
+        }
+        Info<< endl;
+    }
+    else if (args.optionReadIfPresent("field", fieldName))
+    {
+        IOobject fieldHeader
+        (
+            fieldName,
+            mesh.time().timeName(),
+            mesh,
+            IOobject::MUST_READ
+        );
+
+        if (fieldHeader.headerOk())
+        {
+            if (args.optionFound("fixedValue"))
+            {
+                fixedValueFieldConditions<scalar>(fieldHeader);
+                fixedValueFieldConditions<vector>(fieldHeader);
+                fixedValueFieldConditions<sphericalTensor>(fieldHeader);
+                fixedValueFieldConditions<symmTensor>(fieldHeader);
+                fixedValueFieldConditions<tensor>(fieldHeader);
+            }
+            else
+            {
+                (void)fieldConditions<scalar>(fieldHeader, true);
+                (void)fieldConditions<vector>(fieldHeader, true);
+                (void)fieldConditions<sphericalTensor>(fieldHeader, true);
+                (void)fieldConditions<symmTensor>(fieldHeader, true);
+                (void)fieldConditions<tensor>(fieldHeader, true);
+            }
+        }
+        else
+        {
+            FatalErrorIn
+            (
+                "void Foam::helpTypes::helpBoundary::execute"
+                "("
+                    "const argList&, "
+                    "const fvMesh&"
+                ")"
+            )
+                << "Unable to read field " << fieldName << exit(FatalError);
+        }
+    }
+    else if (args.optionReadIfPresent("fixedValue", fieldName))
+    {
+        FatalErrorIn
+        (
+            "void Foam::helpTypes::helpBoundary::execute"
+            "("
+                "const argList&, "
+                "const fvMesh&"
+            ")"
+        )
+            << "-field option must be specified when using the -fixedValue "
+            << "option" << exit(FatalError);
+    }
+    else
+    {
+        // TODO: strip scoping info if present?
+        // e.g. conditions with leading "compressible::" will not be found
+        // ".*[fF]vPatchField.*" + className + ".*"
+        displayDocOptions(".*[fF]vPatchField.*", false);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.H b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.H
new file mode 100644
index 0000000000000000000000000000000000000000..6166e8e1f3b46df589951c0b9f63462102718210
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.H
@@ -0,0 +1,126 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::helpBoundary
+
+Description
+    This class provides help for boundary conditions (patch fields).  When no
+    additional arguments are given, the utility outputs all known boundary
+    conditions.
+
+    Usage:
+    \plaintable
+        \c -browse \<patch type\> | open documentation for patch in browser
+        \c -field \<name\>        | boundary conditions for a given field
+        \c -constraint            | list constraint boundary conditions
+        \c -fixedValue            | list \c fixedValue type boundary conditions
+    \endplaintable
+
+Note
+    To use the \c -fixedValue option, the \c -field option should also be used
+
+SeeAlso
+    Foam::helpType
+    Foam::fvPatchField
+
+SourceFiles
+    helpBoundary.C
+    helpBoundaryTemplates.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef helpBoundary_H
+#define helpBoundary_H
+
+#include "helpType.H"
+#include "IOobject.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace helpTypes
+{
+
+/*---------------------------------------------------------------------------*\
+                        Class helpBoundary Declaration
+\*---------------------------------------------------------------------------*/
+
+class helpBoundary
+:
+    public helpType
+{
+
+protected:
+
+    // Protected Member Functions
+
+        //- Return/output the available boundary conditions for fields of Type
+        template<class Type>
+        wordList fieldConditions(const IOobject& io, const bool write) const;
+
+        //- Output the available fixed boundary conditions for fields of Type
+        template<class Type>
+        void fixedValueFieldConditions(const IOobject& io) const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("helpBoundary");
+
+    //- Constructor
+    helpBoundary();
+
+    //- Destructor
+    virtual ~helpBoundary();
+
+
+    // Member Functions
+
+        //- Initialise - typically setting static variables,
+        //  e.g. command line arguments
+        virtual void init();
+
+        //- Execute the help
+        virtual void execute(const argList& args, const fvMesh& mesh);
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace helpTypes
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "helpBoundaryTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C
new file mode 100644
index 0000000000000000000000000000000000000000..f2ce4a0f006a411142109fbf77454bcc20fd9ddf
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundaryTemplates.C
@@ -0,0 +1,161 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+
+\*---------------------------------------------------------------------------*/
+
+#include "GeometricField.H"
+#include "fvPatchField.H"
+#include "volMesh.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::wordList Foam::helpTypes::helpBoundary::fieldConditions
+(
+    const IOobject& io,
+    const bool write
+) const
+{
+    typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
+
+    if (io.headerClassName() == fieldType::typeName)
+    {
+        wordList types
+        (
+            fvPatchField<Type>::dictionaryConstructorTablePtr_->sortedToc()
+        );
+
+        if (write)
+        {
+            Info<< "Available boundary conditions for "
+                << pTraits<Type>::typeName << " field: " << io.name() << nl;
+
+            forAll(types, i)
+            {
+                Info<< "    " << types[i] << nl;
+            }
+
+            Info<< endl;
+        }
+
+        return types;
+    }
+
+    return wordList();
+}
+
+
+template<class Type>
+void Foam::helpTypes::helpBoundary::fixedValueFieldConditions
+(
+    const IOobject& io
+) const
+{
+    wordList types(fieldConditions<Type>(io, false));
+
+    if (!types.size())
+    {
+        return;
+    }
+
+    typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
+
+    const fvMesh& mesh = dynamic_cast<const fvMesh&>(io.db());
+
+    fieldType fld
+    (
+        IOobject
+        (
+            "dummy",
+            mesh.time().timeName(),
+            mesh,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE,
+            false
+        ),
+        mesh,   
+        dimensioned<Type>("zero", dimless, pTraits<Type>::zero)
+    );
+
+
+    Info<< "Fixed value boundary conditions for "
+        << pTraits<Type>::typeName << " field: " << io.name() << nl;
+
+    // throw exceptions to avoid fatal errors when casting from generic patch
+    // type to incompatible patch type
+    FatalIOError.throwExceptions();
+    FatalError.throwExceptions();
+
+    bool foundFixed = false;
+    forAll(types, i)
+    {
+        const word& patchType = types[i];
+
+        try
+        {
+            polyPatch pp
+            (
+                "defaultFaces",
+                0,
+                mesh.nInternalFaces(),
+                0,
+                mesh.boundaryMesh(),
+                patchType
+            );
+
+            fvPatch fvp(pp, mesh.boundary());
+
+            tmp<fvPatchField<Type> > pf
+            (
+                fvPatchField<Type>::New
+                (
+                    patchType,
+                    fvp,
+                    fld
+                )
+            );
+
+            if (pf().fixesValue())
+            {
+                Info<< "    " << patchType << nl;
+                foundFixed = true;
+            }
+        }
+        catch (...)
+        {
+            // do nothing
+        }
+    }
+
+    if (!foundFixed)
+    {
+        // no conditions???
+        Info<< "    none" << nl;
+    }
+
+    Info<< endl;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpFunctionObject/helpFunctionObject.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpFunctionObject/helpFunctionObject.C
new file mode 100644
index 0000000000000000000000000000000000000000..631a1210ffbf4c186401f3a2c063bd9035227e2e
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpFunctionObject/helpFunctionObject.C
@@ -0,0 +1,88 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "helpFunctionObject.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    namespace helpTypes
+    {
+        defineTypeNameAndDebug(helpFunctionObject, 0);
+        addNamedToRunTimeSelectionTable
+        (
+            helpType,
+            helpFunctionObject,
+            dictionary,
+            functionObject
+        );
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::helpTypes::helpFunctionObject::helpFunctionObject()
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::helpTypes::helpFunctionObject::~helpFunctionObject()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::helpTypes::helpFunctionObject::init()
+{
+    helpType::init();
+
+    argList::validArgs.append("functionObject");
+}
+
+
+void Foam::helpTypes::helpFunctionObject::execute
+(
+    const argList& args,
+    const fvMesh& mesh
+)
+{
+    word function(word::null);
+
+    if (args.optionReadIfPresent("browse", function))
+    {
+        displayDoc(function, ".*[fF]unctionObject.*", true);
+    }
+    else
+    {
+        displayDocOptions(".*[fF]unctionObject.*", true);
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpFunctionObject/helpFunctionObject.H b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpFunctionObject/helpFunctionObject.H
new file mode 100644
index 0000000000000000000000000000000000000000..4e8276bcdb32cfa909b14211659733a6a774f12e
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpFunctionObject/helpFunctionObject.H
@@ -0,0 +1,98 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::helpFunctionObject
+
+Description
+    This class provides help for functionObjects.  When no additional arguments
+    are given, the utility outputs all known function objects.
+
+    Usage:
+    \plaintable
+        \c -browse \<patch type\> | open documentation for object in browser
+    \endplaintable
+
+SeeAlso
+    Foam::helpType
+    Foam::functionObject
+
+SourceFiles
+    helpFunctionObject.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef helpFunctionObject_H
+#define helpFunctionObject_H
+
+#include "helpType.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace helpTypes
+{
+
+/*---------------------------------------------------------------------------*\
+                     Class helpFunctionObject Declaration
+\*---------------------------------------------------------------------------*/
+
+class helpFunctionObject
+:
+    public helpType
+{
+
+public:
+
+    //- Runtime type information
+    TypeName("helpFunctionObject");
+
+    //- Constructor
+    helpFunctionObject();
+
+    //- Destructor
+    virtual ~helpFunctionObject();
+
+
+    // Member Functions
+
+        //- Initialise - typically setting static variables,
+        //  e.g. command line arguments
+        virtual void init();
+
+        //- Execute the help
+        virtual void execute(const argList& args, const fvMesh& mesh);
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace helpTypes
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpType.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpType.C
new file mode 100644
index 0000000000000000000000000000000000000000..0b982e76a7e03a466df79b076609b570ba810060
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpType.C
@@ -0,0 +1,185 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "helpType.H"
+#include "doxygenXmlParser.H"
+#include "SortableList.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeNameAndDebug(helpType, 0);
+    defineRunTimeSelectionTable(helpType, dictionary);
+}
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+Foam::fileName Foam::helpType::doxygenPath() const
+{
+    const dictionary& docDict = debug::controlDict().subDict("Documentation");
+    List<fileName> docDirs(docDict.lookup("doxyDocDirs"));
+
+    label dirI = -1;
+    forAll(docDirs, i)
+    {
+        if (isDir(docDirs[i].expand()))
+        {
+            dirI = i;
+            break;
+        }
+    }
+
+    if (dirI == -1)
+    {
+        Info<< "No Doxygen sources found under search paths: "
+            << docDirs << endl;
+        return fileName();
+    }
+
+    return docDirs[dirI];
+}
+
+
+void Foam::helpType::displayDocOptions
+(
+    const string& searchStr,
+    const bool exactMatch
+) const
+{
+    fileName doxyPath(doxygenPath());
+
+    if (doxyPath.empty())
+    {
+        return;
+    }
+
+    Info<< "Found doxygen help in " << doxyPath.c_str() << nl << endl;
+
+    doxygenXmlParser parser
+    (
+        doxyPath/"../DTAGS",
+        "tagfile",
+        searchStr,
+        exactMatch
+    );
+
+    Info<< "Valid types include:" << nl << SortableList<word>(parser.toc());
+}
+
+
+void Foam::helpType::displayDoc
+(
+    const word& className,
+    const string& searchStr,
+    const bool exactMatch
+) const
+{
+    fileName doxyPath(doxygenPath());
+
+    if (doxyPath.empty())
+    {
+        return;
+    }
+
+    Info<< "Found doxygen help in " << doxyPath.c_str() << nl << endl;
+
+    string docBrowser = getEnv("FOAM_DOC_BROWSER");
+    if (docBrowser.empty())
+    {
+        const dictionary& docDict =
+            debug::controlDict().subDict("Documentation");
+        docDict.lookup("docBrowser") >> docBrowser;
+    }
+
+    doxygenXmlParser parser
+    (
+        doxyPath/"../DTAGS",
+        "tagfile",
+        searchStr,
+        exactMatch
+    );
+
+    if (debug)
+    {
+        Info<< parser;
+    }
+
+    if (parser.found(className))
+    {
+        fileName docFile(doxyPath/parser.subDict(className).lookup("filename"));
+
+        // can use FOAM_DOC_BROWSER='application file://%f' if required
+        docBrowser.replaceAll("%f", docFile);
+
+        fileName classFolder(parser.subDict(className).lookup("path"));
+        word classFile(parser.subDict(className).lookup("name"));
+
+        Info<< "Showing documentation for type " << className << nl << endl;
+
+        Info<< "Source file: " << classFolder.c_str() << classFile << nl
+            << endl;
+
+        system(docBrowser);
+    }
+    else
+    {
+        FatalErrorIn
+        (
+            "void Foam::helpType::displayDoc(const word, const string)"
+        )
+            << "No help for type " << className << " found."
+            << "  Valid options include:" << SortableList<word>(parser.toc())
+            << exit(FatalError);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::helpType::helpType()
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::helpType::~helpType()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::helpType::init()
+{
+    argList::addOption
+    (
+        "browse",
+        "word",
+        "display documentation for boundary condition in browser"
+    );
+}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpType.H b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpType.H
new file mode 100644
index 0000000000000000000000000000000000000000..f5e65709c6afdbc330488818f975ccd0bb7bcb81
--- /dev/null
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpType.H
@@ -0,0 +1,125 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::helpType
+
+Description
+    Base class for foam help classes
+
+SourceFiles
+    helpType.C
+    helpTypeNew.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef helpType_H
+#define helpType_H
+
+#include "runTimeSelectionTables.H"
+#include "autoPtr.H"
+#include "argList.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// forward declaration of classes
+
+class fvMesh;
+
+/*---------------------------------------------------------------------------*\
+                          Class helpType Declaration
+\*---------------------------------------------------------------------------*/
+
+class helpType
+{
+
+protected:
+
+    //- Return file path to the Doxygen sources (if available)
+    fileName doxygenPath() const;
+
+    //- Display the list of documentation options
+    void displayDocOptions
+    (
+        const string& searchStr,
+        const bool exactMatch
+    ) const;
+
+    //- Display the help documentation in a browser
+    void displayDoc
+    (
+        const word& className,
+        const string& searchStr,
+        const bool exactMatch
+    ) const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("helpType");
+
+    // Declare runtime constructor selection table
+    declareRunTimeSelectionTable
+    (
+        autoPtr,
+        helpType,
+        dictionary,
+        (),
+        ()
+    );
+
+
+    //- Constructor
+    helpType();
+
+    //- Selector
+    static autoPtr<helpType> New(const word& helpTypeName);
+
+    //- Destructor
+    virtual ~helpType();
+
+
+    // Member Functions
+
+        //- Initialise - typically setting static variables,
+        //  e.g. command line arguments
+        virtual void init();
+
+        //- Execute the help
+        virtual void execute(const argList& args, const fvMesh& mesh) = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermoNew.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpTypeNew.C
similarity index 51%
rename from src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermoNew.C
rename to applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpTypeNew.C
index cf46160a586294ff19f12dc22a30d80b32f76613..607ca9b435538cc48b9f2ba073a8555dcdbfb7d2 100644
--- a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermoNew.C
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/helpType/helpTypeNew.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,49 +23,42 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "rhoThermo.H"
+#include "helpType.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::rhoThermo> Foam::rhoThermo::New
+Foam::autoPtr<Foam::helpType> Foam::helpType::New
 (
-    const fvMesh& mesh
+    const word& helpTypeName
 )
 {
-    // get model name, but do not register the dictionary
-    // otherwise it is registered in the database twice
-    const word modelType
-    (
-        IOdictionary
-        (
-            IOobject
-            (
-                "thermophysicalProperties",
-                mesh.time().constant(),
-                mesh,
-                IOobject::MUST_READ_IF_MODIFIED,
-                IOobject::NO_WRITE,
-                false
-            )
-        ).lookup("thermoType")
-    );
+    Info<< "Selecting helpType " << helpTypeName << endl;
 
-    Info<< "Selecting thermodynamics package " << modelType << endl;
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(helpTypeName);
 
-    fvMeshConstructorTable::iterator cstrIter =
-        fvMeshConstructorTablePtr_->find(modelType);
-
-    if (cstrIter == fvMeshConstructorTablePtr_->end())
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
     {
-        FatalErrorIn("rhoThermo::New(const fvMesh&)")
-            << "Unknown rhoThermo type "
-            << modelType << nl << nl
-            << "Valid rhoThermo types are:" << nl
-            << fvMeshConstructorTablePtr_->sortedToc() << nl
-            << exit(FatalError);
+        // special treatment for -help
+        // exit without stack trace
+        if (helpTypeName == "-help")
+        {
+            FatalErrorIn("helpType::New()")
+                << "Valid helpType selections are:" << nl
+                << dictionaryConstructorTablePtr_->sortedToc() << nl
+                << exit(FatalError);
+        }
+        else
+        {
+            FatalErrorIn("helpType::New()")
+                << "Unknown helpType type " << helpTypeName << nl
+                << "Valid helpType selections are:" << nl
+                << dictionaryConstructorTablePtr_->sortedToc() << nl
+                << abort(FatalError);
+        }
     }
 
-    return autoPtr<rhoThermo>(cstrIter()(mesh));
+    return autoPtr<helpType>(cstrIter()());
 }
 
 
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx
index babdd460c9224a78df31e6dbec77c08ec7fd1dd1..f795ed8eec77b749c1c94b1dd94eded37dc965dd 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/PV3FoamReader/pqPV3FoamReaderPanel.cxx
@@ -62,6 +62,9 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
     QGridLayout* form = new QGridLayout();
     this->PanelLayout->addLayout(form, 0, 0, 1, -1);
 
+    // ROW 0
+    // ~~~~~
+
     vtkSMProperty* prop = 0;
 
     // refresh button for updating times/fields
@@ -107,10 +110,16 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
         );
     }
 
+    // ROW 1
+    // ~~~~~
+
     QFrame* hline1 = new QFrame(this);
     hline1->setFrameStyle(QFrame::HLine | QFrame::Sunken);
     form->addWidget(hline1, 1, 0, 1, 3);
 
+    // ROW 2
+    // ~~~~~
+
     // checkbox for caching mesh
     if ((prop = this->proxy()->GetProperty("UiCacheMesh")) != 0)
     {
@@ -137,35 +146,38 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
         );
     }
 
+    // cell 2,1 empty
 
-    // checkbox for patch names
-    if ((prop = this->proxy()->GetProperty("UiShowPatchNames")) != 0)
+    // ROW 3
+    // ~~~~~
+
+    // checkbox for include sets
+    if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0)
     {
         // immediate update on the Server Manager side
         prop->SetImmediateUpdate(true);
 
-        ShowPatchNames_ = new QCheckBox("Patch Names");
-        ShowPatchNames_->setChecked
+        IncludeSets_ = new QCheckBox("Include Sets");
+        IncludeSets_->setChecked
         (
             vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
         );
-        ShowPatchNames_->setToolTip
+        IncludeSets_->setToolTip
         (
-            "Show patch names in render window."
+            "Search the polyMesh/sets/ directory."
         );
 
-        // row/col 0,1
-        form->addWidget(ShowPatchNames_, 2, 1, Qt::AlignLeft);
+        // row/col 1,0
+        form->addWidget(IncludeSets_, 3, 0, Qt::AlignLeft);
         connect
         (
-            ShowPatchNames_,
+            IncludeSets_,
             SIGNAL(stateChanged(int)),
             this,
-            SLOT(ShowPatchNamesToggled())
+            SLOT(IncludeSetsToggled())
         );
     }
 
-
     // checkbox for Groups Only
     if ((prop = this->proxy()->GetProperty("UiShowGroupsOnly")) != 0)
     {
@@ -183,7 +195,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
         );
 
         // row/col 2, 2
-        form->addWidget(ShowGroupsOnly_, 2, 2, Qt::AlignLeft);
+        form->addWidget(ShowGroupsOnly_, 3, 1, Qt::AlignLeft);
         connect
         (
             ShowGroupsOnly_,
@@ -194,62 +206,74 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
     }
 
 
-    // checkbox for include sets
-    if ((prop = this->proxy()->GetProperty("UiIncludeSets")) != 0)
+    // ROW 4
+    // ~~~~~
+
+    // checkbox for include zones
+    if ((prop = this->proxy()->GetProperty("UiIncludeZones")) != 0)
     {
         // immediate update on the Server Manager side
         prop->SetImmediateUpdate(true);
 
-        IncludeSets_ = new QCheckBox("Include Sets");
-        IncludeSets_->setChecked
+        IncludeZones_ = new QCheckBox("Include Zones");
+        IncludeZones_->setChecked
         (
             vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
         );
-        IncludeSets_->setToolTip
+        IncludeZones_->setToolTip
         (
-            "Search the polyMesh/sets/ directory."
+            "ZoneMesh information is used to find {cell,face,point}Zones. "
+            "The polyMesh/ directory is only checked on startup."
         );
 
-        // row/col 1,0
-        form->addWidget(IncludeSets_, 3, 0, Qt::AlignLeft);
+        // row/col 1,1
+        form->addWidget(IncludeZones_, 4, 0, Qt::AlignLeft);
         connect
         (
-            IncludeSets_,
+            IncludeZones_,
             SIGNAL(stateChanged(int)),
             this,
-            SLOT(IncludeSetsToggled())
+            SLOT(IncludeZonesToggled())
         );
     }
 
-
-    // checkbox for include zones
-    if ((prop = this->proxy()->GetProperty("UiIncludeZones")) != 0)
+    // checkbox for patch names
+    if ((prop = this->proxy()->GetProperty("UiShowPatchNames")) != 0)
     {
         // immediate update on the Server Manager side
         prop->SetImmediateUpdate(true);
 
-        IncludeZones_ = new QCheckBox("Include Zones");
-        IncludeZones_->setChecked
+        ShowPatchNames_ = new QCheckBox("Patch Names");
+        ShowPatchNames_->setChecked
         (
             vtkSMIntVectorProperty::SafeDownCast(prop)->GetElement(0)
         );
-        IncludeZones_->setToolTip
+        ShowPatchNames_->setToolTip
         (
-            "ZoneMesh information is used to find {cell,face,point}Zones. "
-            "The polyMesh/ directory is only checked on startup."
+            "Show patch names in render window."
         );
 
-        // row/col 1,1
-        form->addWidget(IncludeZones_, 3, 1, Qt::AlignLeft);
+        // row/col 0,1
+        form->addWidget(ShowPatchNames_, 4, 1, Qt::AlignLeft);
         connect
         (
-            IncludeZones_,
+            ShowPatchNames_,
             SIGNAL(stateChanged(int)),
             this,
-            SLOT(IncludeZonesToggled())
+            SLOT(ShowPatchNamesToggled())
         );
     }
 
+    // ROW 5
+    // ~~~~~
+
+    QFrame* hline2 = new QFrame(this);
+    hline2->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+    form->addWidget(hline2, 5, 0, 1, 3);
+
+    // ROW 6
+    // ~~~~~
+
     // checkbox for vol field interpolation
     if ((prop = this->proxy()->GetProperty("UiInterpolateVolFields")) != 0)
     {
@@ -267,7 +291,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
         );
 
         // row/col 1,1
-        form->addWidget(InterpolateVolFields_, 4, 0, Qt::AlignLeft);
+        form->addWidget(InterpolateVolFields_, 6, 0, Qt::AlignLeft);
         connect
         (
             InterpolateVolFields_,
@@ -294,7 +318,7 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
         );
 
         // row/col 1,1
-        form->addWidget(ExtrapolatePatches_, 4, 1, Qt::AlignLeft);
+        form->addWidget(ExtrapolatePatches_, 6, 1, Qt::AlignLeft);
         connect
         (
             ExtrapolatePatches_,
@@ -304,9 +328,12 @@ pqPV3FoamReaderPanel::pqPV3FoamReaderPanel
         );
     }
 
-    QFrame* hline2 = new QFrame(this);
-    hline2->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-    form->addWidget(hline2, 5, 0, 1, 3);
+    // ROW 7
+    // ~~~~~
+
+    QFrame* hline3 = new QFrame(this);
+    hline3->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+    form->addWidget(hline3, 7, 0, 1, 3);
 }
 
 
diff --git a/bin/tools/doxyFilter b/bin/tools/doxyFilter
index b5e59a2370e1d4005b4b2090249f8f080ec07352..2e370383e5dae0cf96fc9ce0211e199b2fa6c020 100755
--- a/bin/tools/doxyFilter
+++ b/bin/tools/doxyFilter
@@ -54,7 +54,8 @@ then
 #        ;;
     esac
 
-    awk -f $awkScript $1 | \
+    awk -f $WM_PROJECT_DIR/bin/tools/doxyFilter-table.awk $1 | \
+    awk -f $awkScript  | \
     sed -f $WM_PROJECT_DIR/bin/tools/doxyFilter.sed \
         -e s@%filePath%@$filePath@g \
         -e s@%fileName%@$fileName@g \
diff --git a/bin/tools/doxyFilter-table.awk b/bin/tools/doxyFilter-table.awk
new file mode 100644
index 0000000000000000000000000000000000000000..bfbd80785ba1951c882eb10cd40cab8c3cdbdb7b
--- /dev/null
+++ b/bin/tools/doxyFilter-table.awk
@@ -0,0 +1,135 @@
+BEGIN {
+    FS = "|";
+    data = "";
+    flag = 0;
+    firstRow = 0;
+}
+
+
+/\\table/ {
+    flag = 1;
+    firstRow = 1;
+    next;
+}
+
+
+/\\endtable/ {
+    if (data != "")
+    {
+        printf "<table class=\"OFTable\">\n";
+        printf data;
+        printf "</table>\n";
+    }
+
+    data = "";
+    flag = 0;
+    next;
+}
+
+
+/\\vartable/ {
+    flag = 2;
+    firstRow = 1;
+    next;
+}
+
+
+/\\endvartable/ {
+    if (data != "")
+    {
+        printf "<table border="0">\n";
+        printf data;
+        printf "</table>\n";
+    }
+
+    data = "";
+    flag = 0;
+    next;
+}
+
+
+/\\plaintable/ {
+    flag = 3;
+    firstRow = 1;
+    next;
+}
+
+
+/\\endplaintable/ {
+    if (data != "")
+    {
+        printf "<table border="0">\n";
+        printf data;
+        printf "</table>\n";
+    }
+
+    data = "";
+    flag = 0;
+    next;
+}
+
+{
+    if (flag > 0)
+    {
+        data = (data "<tr>\n");
+        if (flag == 1)
+        {
+            for (i = 0; i <= NF; i++)
+            {
+                if ((i != 0) && (firstRow == 1))
+                {
+                    data = (data "    <th align=\"center\"><b>"$i"</b></th>\n");
+                }
+                else
+                {
+                    if (i == 1)
+                    {
+                        data = (data "    <td>\\c "$i"</td>\n");
+                    }
+                    else if (i > 1)
+                    {
+                        data = (data "    <td>"$i"</td>\n");
+                    }
+                }
+            }
+        }
+        else if (flag == 2)
+        {
+            for (i = 0; i <= NF; i++)
+            {
+                if (i == 1)
+                {
+                    data = (data "    <td style=\"padding-left: 10px\">\\f$"$i"\\f$</td>\n");
+                    data = (data "    <td style=\"padding-left: 10px; padding-right: 10px;\">=</td>\n");
+                }
+                else if (i > 1)
+                {
+                    data = (data "    <td>"$i"</td>\n");
+                }
+            }
+        }
+        else if (flag == 3)
+        {
+            for (i = 0; i <= NF; i++)
+            {
+                if (i == 1)
+                {
+                    data = (data "    <td style=\"padding-left: 10px\">"$i"</td>\n");
+                    data = (data "    <td style=\"padding-left: 10px; padding-right: 10px;\">:</td>\n");
+                }
+                else if (i > 1)
+                {
+                    data = (data "    <td>"$i"</td>\n");
+                }
+            }
+        }
+        data = (data "</tr>\n");
+        firstRow = 0;
+    }
+    else
+    {
+        print $0
+    }
+}
+
+
diff --git a/bin/tools/doxyFilter.sed b/bin/tools/doxyFilter.sed
index 681929a90472c6483150ee532e3542ed81c3af9b..a0e6e4ff403556181d752c2f5f2ca50a9ab38b19 100644
--- a/bin/tools/doxyFilter.sed
+++ b/bin/tools/doxyFilter.sed
@@ -64,6 +64,17 @@ s/^    /\\class /
 }
 
 
+# Group
+#     groupName
+# =>
+# \ingroup namespaceName
+#
+/^Group *$/,/^[^ ]/{
+s/^Group//
+s/^    /\\ingroup /
+}
+
+
 # Namespace
 #     namespaceName
 # =>
@@ -150,6 +161,13 @@ s? *\([a-zA-Z0-9]*\.[a-zA-Z]*\)?  <li><a href="%dirName%/\1">\1</a></li>?
 
 s/.*\*\//\*\//
 
+
+# convert /heading in source files to bold font and add some space
+s#\\heading \(.*\)#<br><b>\1</b>#g
+
+# add a linebreak
+s#\\linebreak#<br>#g
+
 }
 
 # -----------------------------------------------------------------------------
diff --git a/doc/Doxygen/Doxyfile b/doc/Doxygen/Doxyfile
index 7c72c4595e92c3d02b24dfe96b7d99b0686d0840..4e3829d65a160d2be0b193f68ad7e6be977967ac 100644
--- a/doc/Doxygen/Doxyfile
+++ b/doc/Doxygen/Doxyfile
@@ -608,7 +608,8 @@ INPUT_ENCODING         = UTF-8
 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
 
 FILE_PATTERNS          = *.H \
-                         *.C
+                         *.C \
+                         *.dox
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories
 # should be searched for input files as well. Possible values are YES and NO.
diff --git a/doc/Doxygen/css/doxyMod.css b/doc/Doxygen/css/doxyMod.css
index 01a980b4636aa442bd0772e527883df386b1c6ca..e5909a50dbd2c910f9122586940b9af44185ecd9 100644
--- a/doc/Doxygen/css/doxyMod.css
+++ b/doc/Doxygen/css/doxyMod.css
@@ -61,3 +61,19 @@ tr.memlist
     margin-top: 0px;
     width: 200px;
 }
+
+.OFTable {
+    width: 100%;
+    border: 1px solid rgb(175,175,175);
+    margin-top: 10px;
+    margin-bottom: 10px;
+/*    background-color: #F0F0F0; */
+    padding: 5px;
+}
+
+.OFTable th {
+    padding: 5px;
+    border-bottom: 2px solid rgb(175,175,175);
+}
+
+
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.H b/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.H
index c6c4b53bf52cd340fc39ce303b3fb36c40126906..b8baa0183c207ecee7bb97f09b0f47ede13b0df3 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.H
+++ b/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.H
@@ -29,12 +29,12 @@ Description
     generate the entry itself. So
     - codeStream reads three entries: 'code', 'codeInclude' (optional),
     'codeOptions' (optional)
-    and uses those to generate library sources inside \f codeStream/
+    and uses those to generate library sources inside \c codeStream/
     - these get compiled using 'wmake libso'
     - the resulting library is loaded in executed with as arguments
     \code
         (const dictionary& dict, Ostream& os)
-     \endcode
+    \endcode
     where the dictionary is the current dictionary.
     - the code has to write into Ostream which is then used to construct
     the actual dictionary entry.
@@ -77,12 +77,12 @@ Description
       \c \$ and \c ~ sequences)
 
 Note
-    The code to be compiled is stored under the local \f codeStream directory
+    The code to be compiled is stored under the local \c codeStream directory
     with a subdirectory name corresponding to the SHA1 of the contents.
 
     The corresponding library code is located under the local
-    \f codeStream/platforms/$WM_OPTIONS/lib directory in a library
-    \f libcodeStream_SHA1.so
+    \c codeStream/platforms/$WM_OPTIONS/lib directory in a library
+    \c libcodeStream_SHA1.so
 
 SourceFiles
     codeStream.C
diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObjectsDoc.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..2e0930123294d0a3cde7550cc1bbe25dc23bda6e
--- /dev/null
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObjectsDoc.H
@@ -0,0 +1,31 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpFunctionObjects Function objects
+@{
+    This group contains function objects
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/OpenFOAM/global/argList/argList.H b/src/OpenFOAM/global/argList/argList.H
index 4ec3bd407503688ef63465b8c36b502fd989cbbc..4cc354d2cbe0ffd66d0beba7a4d5ac930cef072e 100644
--- a/src/OpenFOAM/global/argList/argList.H
+++ b/src/OpenFOAM/global/argList/argList.H
@@ -26,7 +26,7 @@ Class
 
 Description
     Extract command arguments and options from the supplied
-    \a argc and @a argv parameters.
+    \a argc and \a argv parameters.
 
     Sequences with "(" ... ")" are transformed into a stringList.
     For example,
diff --git a/src/OpenFOAM/global/foamDoc.H b/src/OpenFOAM/global/foamDoc.H
index 1a38387f5aef4fa9d2a0c27b840d4918f189471a..cd3f1998a5aecdbb2f4d2eaed8b2fe1a87716a6d 100644
--- a/src/OpenFOAM/global/foamDoc.H
+++ b/src/OpenFOAM/global/foamDoc.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,6 +21,8 @@ License
     You should have received a copy of the GNU General Public License along with
     OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 \mainpage OpenFOAM&reg;: open source CFD
 
 \section about About OpenFOAM
@@ -34,4 +36,29 @@ License
     turbulence and heat transfer, to solid dynamics and electromagnetics.
     <a href="http://www.openfoam.org/features">More ...</a>
 
+
+\section layout Code Layout
+
+    The OpenFOAM source code comprises of four main components:
+    - src:
+        the core OpenFOAM source code
+
+    - applications:
+        collections of library functionality wrapped up into applications,
+        such as solvers and utilities
+        
+    - tutorials:
+        a suite of test cases that highlight a broad cross-section of
+        OpenFOAM's capabilities
+
+    - doc:
+        supporting documentation
+
+
+\section usingTheCode Using the code
+
+    - \subpage pagePostProcessing
+    - \subpage pageBoundaryConditions
+
+
 \*---------------------------------------------------------------------------*/
diff --git a/src/OpenFOAM/primitives/strings/word/wordIOList.C b/src/OpenFOAM/primitives/strings/word/wordIOList.C
index dc85ced879f105cce714aa31b79fc0c39889a43a..ede987af5323b7779464e7d2c2f349fcd0f7eb47 100644
--- a/src/OpenFOAM/primitives/strings/word/wordIOList.C
+++ b/src/OpenFOAM/primitives/strings/word/wordIOList.C
@@ -37,4 +37,42 @@ namespace Foam
     defineTemplateTypeNameAndDebugWithName(wordListIOList, "wordListList", 0);
 }
 
+
+void Foam::printTable(const List<wordList>& wll, Ostream& os)
+{
+    if (!wll.size()) return;
+
+    // Find the maximum word length for each column
+    List<string::size_type> columnWidth(wll[0].size(), string::size_type(0));
+    forAll(columnWidth, j)
+    {
+        forAll(wll, i)
+        {
+            columnWidth[j] = max(columnWidth[j], wll[i][j].size());
+        }
+    }
+
+    // Print the rows adding spacing for the columns
+    forAll(wll, i)
+    {
+        forAll(wll[i], j)
+        {
+            os  << wll[i][j];
+            for
+            (
+                string::size_type k=0;
+                k<columnWidth[j] - wll[i][j].size() + 2;
+                k++
+            )
+            {
+                os  << ' ';
+            }
+        }
+        os  << nl;
+
+        if (i == 0) os  << nl;
+    }
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/strings/word/wordIOList.H b/src/OpenFOAM/primitives/strings/word/wordIOList.H
index 08e2e2cff6e5f6b136cc7ca202092741af4fee8a..c560a33a9564c88d834a5d90831183c6253f9aa1 100644
--- a/src/OpenFOAM/primitives/strings/word/wordIOList.H
+++ b/src/OpenFOAM/primitives/strings/word/wordIOList.H
@@ -41,6 +41,9 @@ namespace Foam
 {
     typedef IOList<word> wordIOList;
     typedef IOList<wordList> wordListIOList;
+
+    // Print word list list as a table
+    void printTable(const List<wordList>&, Ostream&);
 }
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/combustionModels/singleStepCombustion/singleStepCombustion.C b/src/combustionModels/singleStepCombustion/singleStepCombustion.C
index 8234e573c560002f57968323173e71b11541252d..7a354e0c6412f128e1e0191912e354b7850fbcb5 100644
--- a/src/combustionModels/singleStepCombustion/singleStepCombustion.C
+++ b/src/combustionModels/singleStepCombustion/singleStepCombustion.C
@@ -102,8 +102,7 @@ singleStepCombustion<CombThermoType, ThermoType>::~singleStepCombustion()
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
 template<class CombThermoType, class ThermoType>
-Foam::tmp<Foam::fvScalarMatrix>
-singleStepCombustion<CombThermoType, ThermoType>::R
+tmp<fvScalarMatrix> singleStepCombustion<CombThermoType, ThermoType>::R
 (
     volScalarField& Y
 ) const
@@ -131,8 +130,8 @@ singleStepCombustion<CombThermoType, ThermoType>::R
 
 
 template<class CombThermoType, class ThermoType>
-Foam::tmp<Foam::volScalarField>
-singleStepCombustion< CombThermoType, ThermoType>::Sh() const
+tmp<volScalarField>
+singleStepCombustion<CombThermoType, ThermoType>::Sh() const
 {
     const label fuelI = singleMixturePtr_->fuelIndex();
     volScalarField& YFuel =
@@ -143,8 +142,8 @@ singleStepCombustion< CombThermoType, ThermoType>::Sh() const
 
 
 template<class CombThermoType, class ThermoType>
-Foam::tmp<Foam::volScalarField>
-singleStepCombustion< CombThermoType, ThermoType>::dQ() const
+tmp<volScalarField>
+singleStepCombustion<CombThermoType, ThermoType>::dQ() const
 {
     tmp<volScalarField> tdQ
     (
@@ -175,7 +174,7 @@ singleStepCombustion< CombThermoType, ThermoType>::dQ() const
 
 
 template<class CombThermoType, class ThermoType>
-bool singleStepCombustion< CombThermoType, ThermoType>::read()
+bool singleStepCombustion<CombThermoType, ThermoType>::read()
 {
     if (CombThermoType::read())
     {
diff --git a/src/fieldSources/basicSource/explicitSetValue/ExplicitSetValue.H b/src/fieldSources/basicSource/explicitSetValue/ExplicitSetValue.H
index ec0a9d2ce1a18047d1b2d2dc3b305360907fa076..1c3adcb279fab9deb8f133aa8e8d3b4a36cc516e 100644
--- a/src/fieldSources/basicSource/explicitSetValue/ExplicitSetValue.H
+++ b/src/fieldSources/basicSource/explicitSetValue/ExplicitSetValue.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,19 +25,23 @@ Class
     Foam::explicitSetValue
 
 Description
-    Explicit set values on fields.
+    Set values field values explicity.
 
     Sources described by:
 
-        <Type>ExplicitSetValueCoeffs
+    \verbatim
+    <Type>ExplicitSetValueCoeffs
+    {
+        injectionRate
         {
-            injectionRate
-            {
-                k           30.7;
-                epsilon     1.5;
-            }
+            k           30.7;
+            epsilon     1.5;
         }
+    }
+    \endverbatim
 
+SeeAlso
+    Foam::basicSource
 
 SourceFiles
     explicitSetValue.C
diff --git a/src/fieldSources/basicSource/explicitSource/ExplicitSource.H b/src/fieldSources/basicSource/explicitSource/ExplicitSource.H
index 95e752d17bbae9bcb8bddab7632b929b9da39e6e..30a18dd5d39b8ecdfefdcf291b587ec73261f85c 100644
--- a/src/fieldSources/basicSource/explicitSource/ExplicitSource.H
+++ b/src/fieldSources/basicSource/explicitSource/ExplicitSource.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,20 +29,24 @@ Description
 
     Sources described by:
 
-        <Type>ExplicitSourceCoeffs
+    \verbatim
+    <Type>ExplicitSourceCoeffs
+    {
+        volumeMode      absolute; // specific
+        injectionRate
         {
-            volumeMode      absolute; // specific
-            injectionRate
-            {
-                k           30.7;
-                epsilon     1.5;
-            }
+            k           30.7;
+            epsilon     1.5;
         }
+    }
+    \verbatim
 
-    If volumeMode =
-        - absolute: values are given as <quantity>
-        - specific: values are given as <quantity>/m3
+    Valid options for the \c volumeMode entry include:
+    - absolute: values are given as \<quantity\>
+    - specific: values are given as \<quantity\>/m3
 
+SeeAlso
+    Foam::basicSource
 
 SourceFiles
     ExplicitSource.C
diff --git a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFFreestreamVelocityFvPatchVectorField/SRFFreestreamVelocityFvPatchVectorField.H b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFFreestreamVelocityFvPatchVectorField/SRFFreestreamVelocityFvPatchVectorField.H
index 7b7b18b63ed9646373c064e5603ea7bc89e6ddb1..58c7ab9ce081d103576f51f41df1c165427eb262 100644
--- a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFFreestreamVelocityFvPatchVectorField/SRFFreestreamVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFFreestreamVelocityFvPatchVectorField/SRFFreestreamVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,43 @@ Class
     Foam::SRFVelocityFvPatchVectorField
 
 Description
-    Freestream velocity patch to be used with SRF model
-    to apply the appropriate rotation transformation in time and space.
+    Freestream velocity condition to be used in conjunction with the single
+    rotating frame (SRF) model (see: SRFModel class)
+
+    Given the free stream velocity in the absolute frame, the condition 
+    applies the appropriate rotation transformation in time and space to
+    determine the local velocity using:
+
+        \f[
+            U_p = cos(\theta)*U_{Inf} + sin(theta) (n^UInf) - U_{p,srf}
+        \f]
+
+    where
+    \vartable
+        U_p     = patch velocity [m/s]
+        U_{Inf} = free stream velocity in the absolute frame [m/s]
+        theta   = swept angle [rad]
+        n       = axis direction of the SRF
+        U_{p,srf} = SRF velocity of the patch
+    \endvartable
+
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        UInf         | free stream velocity    | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            SRFFreestreamVelocity;
+        UInf            (0 0 0);
+        value           uniform (0 0 0);    // optional value entry
+    }
+    \endverbatim
 
 SourceFiles
     SRFVelocityFvPatchVectorField.C
@@ -44,7 +79,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-               Class SRFFreestreamVelocityFvPatchVectorField Declaration
+           Class SRFFreestreamVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class SRFFreestreamVelocityFvPatchVectorField
@@ -53,7 +88,7 @@ class SRFFreestreamVelocityFvPatchVectorField
 {
     // Private data
 
-        //- Velocity of the free stream in the absolute frame
+        //- Velocity of the free stream in the absolute frame [m/s]
         vector UInf_;
 
 
diff --git a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.H b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.H
index 829f2444befd20fe58066cb9ce9635c16b0b2715..32aaa246a76693adea2654d6b0533e9ca06cfe14 100644
--- a/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/cfdTools/general/SRF/derivedFvPatchFields/SRFVelocityFvPatchVectorField/SRFVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,61 @@ License
 Class
     Foam::SRFVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions grpWallBoundaryConditions
+
 Description
-    Velocity patch to be used with SRF model
+    Velocity condition to be used in conjunction with the single
+    rotating frame (SRF) model (see: SRFModel class)
+
+    Given the free stream velocity in the absolute frame, the condition 
+    applies the appropriate rotation transformation in time and space to
+    determine the local velocity.
+
+    The optional \c relative flag switches the behaviour of the patch
+    such that:
+
+        - relative = yes: inlet velocity applied 'as is':
+
+        \f[
+            U_p = U_{in}
+        \f]
+
+        - relative = no : SRF velocity is subtracted from the inlet velocity:
+
+        \f[
+            U_p = U_{in} - U_{p,srf}
+        \f]
+
+    where
+    \vartable
+        U_p     = patch velocity [m/s]
+        U_{in}  = user-specified inlet velocity
+        U_{p,srf} = SRF velocity
+    \endvartable
+
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        relative     | relative motion to the SRF? | yes     |
+        inletValue   | inlet velocity          | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            SRFVelocity;
+        relative        yes;
+        inletValue      uniform (0 0 0);
+        value           uniform (0 0 0);    // initial value
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     SRFVelocityFvPatchVectorField.C
@@ -57,7 +110,7 @@ class SRFVelocityFvPatchVectorField
         //- Is the supplied inlet value relative to the SRF
         Switch relative_;
 
-        //- Inlet value
+        //- Inlet value [m/s]
         vectorField inletValue_;
 
 
diff --git a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.C b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.C
index 3de1587e7e9eb3a2e790c9dcb1875797fcc62901..8448153a6963e022d927da230d8a1e3c2891e604 100644
--- a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.C
+++ b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.C
@@ -165,6 +165,12 @@ void Foam::solutionControl::storePrevIterFields() const
 
 Foam::solutionControl::solutionControl(fvMesh& mesh, const word& algorithmName)
 :
+    IOobject
+    (
+        "solutionControl",
+        mesh.time().timeName(),
+        mesh
+    ),
     mesh_(mesh),
     residualControl_(),
     algorithmName_(algorithmName),
diff --git a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H
index 45970fc325baa23c97549951a7bb463908fb7064..e701813d47c90e31eb2a8e54d9c7be048b128ab4 100644
--- a/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H
+++ b/src/finiteVolume/cfdTools/general/solutionControl/solutionControl/solutionControl.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -44,6 +44,8 @@ namespace Foam
 \*---------------------------------------------------------------------------*/
 
 class solutionControl
+:
+    public IOobject
 {
 public:
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H
index 70cffc74e09bf25055cc201a21dae377cd9077d0..2e19ff1d2c520832784d2760dab818b1c04d9c46 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/basicSymmetry/basicSymmetryFvPatchField.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::basicSymmetryFvPatchField
 
+Group
+    grpConstraintBoundaryConditions
+
 Description
     A symmetry patch
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C
index 79b8c3750e973c2a215fb0a7e485ca6664206287..9f25a143e2e7595e5c0e15aa410a7f49feec5533 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C
@@ -28,19 +28,17 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-namespace Foam
-{
-
 template<class Type>
-const word& fvPatchField<Type>::calculatedType()
+const Foam::word& Foam::fvPatchField<Type>::calculatedType()
 {
     return calculatedFvPatchField<Type>::typeName;
 }
 
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class Type>
-calculatedFvPatchField<Type>::calculatedFvPatchField
+Foam::calculatedFvPatchField<Type>::calculatedFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF
@@ -51,7 +49,7 @@ calculatedFvPatchField<Type>::calculatedFvPatchField
 
 
 template<class Type>
-calculatedFvPatchField<Type>::calculatedFvPatchField
+Foam::calculatedFvPatchField<Type>::calculatedFvPatchField
 (
     const calculatedFvPatchField<Type>& ptf,
     const fvPatch& p,
@@ -64,7 +62,7 @@ calculatedFvPatchField<Type>::calculatedFvPatchField
 
 
 template<class Type>
-calculatedFvPatchField<Type>::calculatedFvPatchField
+Foam::calculatedFvPatchField<Type>::calculatedFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
@@ -77,7 +75,7 @@ calculatedFvPatchField<Type>::calculatedFvPatchField
 
 
 template<class Type>
-calculatedFvPatchField<Type>::calculatedFvPatchField
+Foam::calculatedFvPatchField<Type>::calculatedFvPatchField
 (
     const calculatedFvPatchField<Type>& ptf
 )
@@ -87,7 +85,7 @@ calculatedFvPatchField<Type>::calculatedFvPatchField
 
 
 template<class Type>
-calculatedFvPatchField<Type>::calculatedFvPatchField
+Foam::calculatedFvPatchField<Type>::calculatedFvPatchField
 (
     const calculatedFvPatchField<Type>& ptf,
     const DimensionedField<Type, volMesh>& iF
@@ -98,7 +96,8 @@ calculatedFvPatchField<Type>::calculatedFvPatchField
 
 
 template<class Type>
-tmp<fvPatchField<Type> > fvPatchField<Type>::NewCalculatedType
+Foam::tmp<Foam::fvPatchField<Type> >
+Foam::fvPatchField<Type>::NewCalculatedType
 (
     const fvPatch& p
 )
@@ -130,7 +129,7 @@ tmp<fvPatchField<Type> > fvPatchField<Type>::NewCalculatedType
 
 template<class Type>
 template<class Type2>
-tmp<fvPatchField<Type> > fvPatchField<Type>::NewCalculatedType
+Foam::tmp<Foam::fvPatchField<Type> > Foam::fvPatchField<Type>::NewCalculatedType
 (
     const fvPatchField<Type2>& pf
 )
@@ -142,7 +141,8 @@ tmp<fvPatchField<Type> > fvPatchField<Type>::NewCalculatedType
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class Type>
-tmp<Field<Type> > calculatedFvPatchField<Type>::valueInternalCoeffs
+Foam::tmp<Foam::Field<Type> >
+Foam::calculatedFvPatchField<Type>::valueInternalCoeffs
 (
     const tmp<scalarField>&
 ) const
@@ -165,7 +165,8 @@ tmp<Field<Type> > calculatedFvPatchField<Type>::valueInternalCoeffs
 
 
 template<class Type>
-tmp<Field<Type> > calculatedFvPatchField<Type>::valueBoundaryCoeffs
+Foam::tmp<Foam::Field<Type> >
+Foam::calculatedFvPatchField<Type>::valueBoundaryCoeffs
 (
     const tmp<scalarField>&
 ) const
@@ -186,8 +187,10 @@ tmp<Field<Type> > calculatedFvPatchField<Type>::valueBoundaryCoeffs
     return *this;
 }
 
+
 template<class Type>
-tmp<Field<Type> > calculatedFvPatchField<Type>::gradientInternalCoeffs() const
+Foam::tmp<Foam::Field<Type> >
+Foam::calculatedFvPatchField<Type>::gradientInternalCoeffs() const
 {
     FatalErrorIn
     (
@@ -206,8 +209,10 @@ tmp<Field<Type> > calculatedFvPatchField<Type>::gradientInternalCoeffs() const
     return *this;
 }
 
+
 template<class Type>
-tmp<Field<Type> > calculatedFvPatchField<Type>::gradientBoundaryCoeffs() const
+Foam::tmp<Foam::Field<Type> >
+Foam::calculatedFvPatchField<Type>::gradientBoundaryCoeffs() const
 {
     FatalErrorIn
     (
@@ -227,17 +232,12 @@ tmp<Field<Type> > calculatedFvPatchField<Type>::gradientBoundaryCoeffs() const
 }
 
 
-// Write
 template<class Type>
-void calculatedFvPatchField<Type>::write(Ostream& os) const
+void Foam::calculatedFvPatchField<Type>::write(Ostream& os) const
 {
     fvPatchField<Type>::write(os);
     this->writeEntry("value", os);
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.H
index afb676b229775e76e7c6de55bc804fe12c3274f2..7caa505a8d2aa8380c4b58a1eb81016a420e9ab9 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,24 @@ License
 Class
     Foam::calculatedFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Foam::calculatedFvPatchField
+    This boundary condition is not designed to be evaluated; it is assmued
+    that the value is assigned via field assignment, and not via a call to
+    e.g. \c updateCoeffs or \c evaluate.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            calculated;
+        value           uniform (0 0 0);    // optional value entry
+    }
+    \endverbatim
 
 SourceFiles
     calculatedFvPatchField.C
@@ -43,7 +59,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class calculatedFvPatch Declaration
+                   Class calculatedFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H
index 8677c34ed3d1b3c9c869859ba9ff4e0c8172c3c0..1f2dcbfb61400aa80421f8e878ad5668887b27ac 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchField.H
@@ -24,8 +24,11 @@ License
 Class
     Foam::coupledFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::coupledFvPatchField
+    Abstract base class for coupled patches.
 
 SourceFiles
     coupledFvPatchField.C
@@ -45,7 +48,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class coupledFvPatch Declaration
+                       Class coupledFvPatch Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H
index 0199838eab41da2d2fb75d6c2653e4de3af8eb02..54686db761485553f2d703334e88056426e77e73 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/directionMixed/directionMixedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,11 @@ License
 Class
     Foam::directionMixedFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Foam::directionMixedFvPatchField
+    Base class for direction-mixed boundary conditions.
 
 SourceFiles
     directionMixedFvPatchField.C
@@ -43,7 +46,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class directionMixedFvPatch Declaration
+                  Class directionMixedFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H
index cdf83f486ab1274f00d86baafbe4ef82443db4df..3d00735453aaf37b42cc8906c69ce885de440a57 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,40 @@ License
 Class
     Foam::fixedGradientFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Foam::fixedGradientFvPatchField
+    This boundary condition supplies a fixed gradient condition, such that
+    the patch values are calculated using:
+
+        \f[
+            x_p = x_c + \frac{\nabla(x)}{\Delta}
+        \f]
+
+    where
+    \vartable
+        x_p      | patch values
+        x_c      | internal field values
+        \nabla(x)| gradient (user-specified)
+        \Delta   | inverse distance from patch face centre to cell centre
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        gradient     | gradient                | yes         | 
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedGradient;
+        gradient        uniform 0;
+    }
+    \endverbatim
 
 SourceFiles
     fixedGradientFvPatchField.C
@@ -43,7 +75,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class fixedGradientFvPatch Declaration
+                 Class fixedGradientFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
index 65e7abea4ab6d0b7b36d0f2353bc6664ecdd59ce..3540c9254ca7198422e26d4af1d8d5a0627821cc 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,28 @@ License
 Class
     Foam::fixedValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Foam::fixedValueFvPatchField
+    This boundary condition supplies a fixed value constraint, and is the base
+    class for a number of other boundary conditions.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        value        | values                  | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedValue;
+        value           uniform 0;  // example for scalar field usage
+    }
+    \endverbatim
 
 SourceFiles
     fixedValueFvPatchField.C
@@ -43,7 +63,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class fixedValueFvPatch Declaration
+                   Class fixedValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H
index 51481e0f91ac692440500736cd4c50ab741e157d..77dba4ada89c626699bbf8d1605e517d40adb75d 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/mixed/mixedFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,45 @@ License
 Class
     Foam::mixedFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Foam::mixedFvPatchField
+    This boundary condition provides a base class for 'mixed' type boundary
+    conditions, i.e. conditions that mix fixed value and patch-normal gradient
+    conditions.
+
+    The respective contributions from each is determined by a weight field:
+
+        \f[
+            x_p = w x_p + (1-w) \left(x_c + \frac{\nabla_\perp x}{\Delta}\right)
+        \f]
+
+    where
+    \vartable
+        x_p   | patch values
+        x_c   | patch internal cell values
+        w     | weight field
+        \Delta| inverse distance from face centre to internal cell centre
+        w     | weighting (0-1)
+    \endvartable
+
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        valueFraction | weight field           | yes         |
+        refValue     | fixed value             | yes         |
+        refGrad      | patch normal gradient   | yes         |
+    \endtable
+
+Note
+    This condition is not usually applied directly; instead, use a derived
+    mixed condition such as \c inletOutlet
+
+SeeAlso
+    Foam::inletOutletFvPatchField
 
 SourceFiles
     mixedFvPatchField.C
@@ -43,7 +80,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class mixedFvPatch Declaration
+                      Class mixedFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H
index a40d212cd70e35470b2b9a7f594a0bb10adae8e6..06671ea1326fe3b52df4ae591720781e6b77362d 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/sliced/slicedFvPatchField.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::slicedFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
     Specialization of fvPatchField which creates the underlying
     fvPatchField as a slice of the given complete field.
@@ -33,6 +36,9 @@ Description
 
     Should only used as a template argument for SlicedGeometricField.
 
+SeeAlso
+    Foam::fvPatchField
+
 SourceFiles
     slicedFvPatchField.C
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H
index 2c9a2c15c615d03bd7c9c6012003519eb8612406..0eab206104500c5517cee3c591fc1e17dd23f2fc 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::transformFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
     Foam::transformFvPatchField
 
diff --git a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H
index 5726c739a98f6846f0c0fd592c8983f645153535..cb238253f1d5829ca9b281415cd0eee6c498dbda 100644
--- a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,22 @@ License
 Class
     Foam::zeroGradientFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Foam::zeroGradientFvPatchField
+    This boundary condition applies a zero-gradient condition from the patch
+    internal field onto the patch faces.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            zeroGradient;
+    }
+    \endverbatim
 
 SourceFiles
     zeroGradientFvPatchField.C
@@ -43,7 +57,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class zeroGradientFvPatch Declaration
+                 Class zeroGradientFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H
index c3ba07477d954b3e40903d8b1c9e7b5588e11215..ded4696854e3520dd9938dd934c97444f4117b01 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H
@@ -24,8 +24,27 @@ License
 Class
     Foam::cyclicFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::cyclicFvPatchField
+    This boundary condition enforces a cyclic condition between a pair of
+    boundaries.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            cyclic;
+    }
+    \endverbatim
+
+Note
+    The patches must be topologically similar, i.e. if the owner patch is
+    transformed to the neighbour patch, the patches should be identical (or
+    very similar).
 
 SourceFiles
     cyclicFvPatchField.C
@@ -45,7 +64,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class cyclicFvPatch Declaration
+                        Class cyclicFvPatch Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H
index 933a865f3007c485066e1806e9e18ba3b4a373c7..c9ad16c6c951b83c3013715a0dd494626b90ac1f 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicAMI/cyclicAMIFvPatchField.H
@@ -24,8 +24,31 @@ License
 Class
     Foam::cyclicAMIFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::cyclicAMIFvPatchField
+    This boundary condition enforces a cyclic condition between a pair of
+    boundaries, whereby communication between the patches is performed using
+    an arbitrary mesh interface (AMI) interpolation.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            cyclicAMI;
+    }
+    \endverbatim
+
+Note
+    The outer boundary of the patch pairs must be similar, i.e. if the owner
+    patch is transformed to the neighbour patch, the outer perimiter of each
+    patch should be identical (or very similar).
+
+SeeAlso
+    Foam::AMIInterpolation
 
 SourceFiles
     cyclicAMIFvPatchField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.C
index 2d995bdd6ebf7eab3f408d8c8cc4a1ae0c78e326..953a59b820057eb6d88ba7f326e5b73f8699d650 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,15 +25,10 @@ License
 
 #include "cyclicSlipFvPatchField.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class Type>
-cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
+Foam::cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF
@@ -44,7 +39,7 @@ cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 
 
 template<class Type>
-cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
+Foam::cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 (
     const cyclicSlipFvPatchField<Type>& ptf,
     const fvPatch& p,
@@ -57,7 +52,7 @@ cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 
 
 template<class Type>
-cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
+Foam::cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 (
     const fvPatch& p,
     const DimensionedField<Type, volMesh>& iF,
@@ -69,7 +64,7 @@ cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 
 
 template<class Type>
-cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
+Foam::cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 (
     const cyclicSlipFvPatchField<Type>& ptf
 )
@@ -79,7 +74,7 @@ cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 
 
 template<class Type>
-cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
+Foam::cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 (
     const cyclicSlipFvPatchField<Type>& ptf,
     const DimensionedField<Type, volMesh>& iF
@@ -89,8 +84,4 @@ cyclicSlipFvPatchField<Type>::cyclicSlipFvPatchField
 {}
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
 // ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.H
index 89306747b8b14ba0998039464828d97c2b4d6d7e..3c68fe2b36d9f075eb3596d1b6d0cc881fcdc355 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclicSlip/cyclicSlipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,25 @@ License
 Class
     Foam::cyclicSlipFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::cyclicSlipFvPatchField
+    This boundary condition is a light wrapper around the cyclicFvPatchField
+    condition, providing no new functionality.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            cyclicSlip;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::cyclicFvPatchField
 
 SourceFiles
     cyclicSlipFvPatchField.C
@@ -44,7 +61,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class cyclicSlipFvPatch Declaration
+                   Class cyclicSlipFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
@@ -52,7 +69,6 @@ class cyclicSlipFvPatchField
 :
     public cyclicFvPatchField<Type>
 {
-    // Private data
 
 public:
 
@@ -119,7 +135,6 @@ public:
                 new cyclicSlipFvPatchField<Type>(*this, iF)
             );
         }
-
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchField.H
index dd76378011058729d9d54d618292125493d375c1..7b8871461906cb8b54ae4c9a6e6258f7a5a28901 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,24 @@ License
 Class
     Foam::emptyFvPatchField
 
+Group
+    grpConstraintBoundaryConditions
+
 Description
-    Foam::emptyFvPatchField
+    This boundary condition provides an 'empty' condition for reduced
+    dimensions cases, i.e. 1- and 2-D geometries.  Apply this condition to
+    patches whose normal is aligned to geometric directions that do not
+    constitue solution directions.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            empty;
+    }
+    \endverbatim
 
 SourceFiles
     emptyFvPatchField.C
@@ -44,7 +60,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class emptyFvPatch Declaration
+                      Class emptyFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H
index 4c4f94bce6ef3643cc74fb768972aff857d2fc35..a5fd2343bfbf2fdfe13cc55cfbe5e12f4686abe6 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H
@@ -24,8 +24,15 @@ License
 Class
     Foam::jumpCyclicFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::jumpCyclicFvPatchField
+    This boundary condition provides a base class for coupled-cyclic
+    conditions with a specified 'jump' (or offset) between the values
+
+SeeAlso
+    Foam::cyclicFvPatchField
 
 SourceFiles
     jumpCyclicFvPatchField.C
@@ -43,7 +50,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class cyclicFvPatch Declaration
+                   Class jumpCyclicFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicFvPatchField.H
index 5d4468045d392d3873ac2af60a74fc07e26ceff9..576d4d08335b1f60cb6cea71961e97f335d18fe1 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/nonuniformTransformCyclic/nonuniformTransformCyclicFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,18 @@ License
 Class
     Foam::nonuniformTransformCyclicFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::nonuniformTransformCyclicFvPatchField
+    This boundary condition enforces a cyclic condition between a pair of
+    boundaries, incorporating a non-uniform transformation.
 
 SourceFiles
     nonuniformTransformCyclicFvPatchField.C
+    nonuniformTransformCyclicFvPatchFields.H
+    nonuniformTransformCyclicFvPatchFields.C
+    nonuniformTransformCyclicFvPatchFieldsFwd.H
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.H
index 690a9dbe4fedee6794788121c74ff137891c969c..a913aaf60672c0bd7b604a2ed026bbe9ba7ac44f 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,21 @@ License
 Class
     Foam::processorFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::processorFvPatchField
+    This boundary condition enables processor communication across patches.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            processor;
+    }
+    \endverbatim
 
 SourceFiles
     processorFvPatchField.C
@@ -45,7 +58,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class processorFvPatch Declaration
+                    Class processorFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H
index 8de27ade3232e5033052e84d60ec8454c893a3c5..c03236b0daf037de291c9bd80d881341ba3abca2 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/processorCyclic/processorCyclicFvPatchField.H
@@ -24,11 +24,31 @@ License
 Class
     Foam::processorCyclicFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Foam::processorCyclicFvPatchField
+    This boundary condition enables processor communication across cyclic
+    patches.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            processor;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::processorFvPatchField
 
 SourceFiles
     processorCyclicFvPatchField.C
+    processorCyclicFvPatchFields.H
+    processorCyclicFvPatchFields.C
+    processorCyclicFvPatchFieldsFwd.H
 
 \*---------------------------------------------------------------------------*/
 
@@ -44,7 +64,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                    Class processorCyclicFvPatch Declaration
+                 Class processorCyclicFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/symmetry/symmetryFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/symmetry/symmetryFvPatchField.H
index c95ffb95d64a2dbd04dc52eb4ba68d42d6823931..a5812c09b4b7204791d689a5cc9deb1e6d01de77 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/symmetry/symmetryFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/symmetry/symmetryFvPatchField.H
@@ -24,11 +24,27 @@ License
 Class
     Foam::symmetryFvPatchField
 
+Group
+    grpConstraintBoundaryConditions
+
 Description
-    Foam::symmetryFvPatchField
+    This boundary condition enforces a symmetry constraint
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            symmetryPlane;
+    }
+    \endverbatim
 
 SourceFiles
     symmetryFvPatchField.C
+    symmetryFvPatchFields.C
+    symmetryFvPatchFields.H
+    symmetryFvPatchFieldsFwd.H
 
 \*---------------------------------------------------------------------------*/
 
@@ -44,7 +60,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class symmetryFvPatch Declaration
+                         Class symmetryFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H
index ec49aaf74f01a155ce43daacfb04417c6234d7f6..6ab1a7f0814617dcae423b1c3705368b38711ed6 100644
--- a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,25 @@ License
 Class
     Foam::wedgeFvPatchField
 
+Group
+    grpConstraintBoundaryConditions
+
 Description
-    Foam::wedgeFvPatchField
+    This boundary condition is similar to the cyclic condition, except that
+    it is applied to 2-D geometries.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            wedge;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::cyclicFvPatchField
 
 SourceFiles
     wedgeFvPatchField.C
@@ -44,7 +61,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class wedgeFvPatch Declaration
+                       Class wedgeFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
index 86cd31df927545314a37905493e11fd35f34ab96..3b3667bbb5fc155909ba04ebb66d0c8ca2adfd2c 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.C
@@ -292,6 +292,7 @@ void Foam::activeBaffleVelocityFvPatchVectorField::updateCoeffs()
 void Foam::activeBaffleVelocityFvPatchVectorField::write(Ostream& os) const
 {
     fvPatchVectorField::write(os);
+    writeEntryIfDifferent<word>(os, "p", "p", pName_);
     os.writeKeyword("cyclicPatch")
         << cyclicPatchName_ << token::END_STATEMENT << nl;
     os.writeKeyword("orientation")
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.H
index 19281b5220265197e5582eb13952115cc9942425..1c3dfa4dd440849b5cfdc4258dde7dedafd74aad 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activeBaffleVelocity/activeBaffleVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,65 @@ License
 Class
     Foam::activeBaffleVelocityFvPatchVectorField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Boundary condition that modifies mesh areas based on velocity.
+    This velocity boundary condition simulates the opening of a baffle due
+    to local flow conditions, by merging the behaviours of wall and cyclic
+    conditions.  The baffle joins two mesh regions, where the open fraction
+    determines the interpolation weights applied to each cyclic- and
+    neighbour-patch contribution.
+
+    We determine whether the baffle is opening or closing from the sign of
+    the net force across the baffle, from which the baffle open fraction is
+    updated using:
+
+        \f[
+            x = x_{old} + sign(F_{net})\frac{dt}{DT}
+        \f]
+
+    where
+
+    \vartable
+        x       | baffle open fraction [0-1]
+        x_{old} | baffle open fraction on previous evaluation
+        dt      | simulation time step
+        DT      | time taken to open the baffle
+        F_{net} | net force across the baffle
+    \endvartable
+
+    The open fraction is then applied to scale the patch areas.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        p            | pressure field name     | no          | p
+        cyclicPatch  | cylclic patch name      | yes         |
+        orientation  | 1 or -1 used to switch flow direction | yes|
+        openFraction | current opatch open fraction [0-1]| yes |
+        openingTime  | time taken to open the baffle | yes |
+        maxOpenFractionDelta | max open fraction change per timestep | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            activeBaffleVelocity;
+        p               p;
+        cyclicPatch     cyclic1;
+        orientation     1;
+        openFraction    0.2;
+        openingTime     5.0;
+        maxOpenFractionDelta 0.1;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
+    Foam::cyclicFvPatchField
 
 SourceFiles
     activeBaffleVelocityFvPatchVectorField.C
@@ -44,7 +101,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class activeBaffleVelocityFvPatch Declaration
+          Class activeBaffleVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class activeBaffleVelocityFvPatchVectorField
@@ -163,17 +220,10 @@ public:
         // Mapping functions
 
             //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap
-            (
-                const fvPatchFieldMapper&
-            );
+            virtual void autoMap(const fvPatchFieldMapper&);
 
             //- Reverse map the given fvPatchField onto this fvPatchField
-            virtual void rmap
-            (
-                const fvPatchVectorField&,
-                const labelList&
-            );
+            virtual void rmap(const fvPatchVectorField&, const labelList&);
 
 
         //- Update the coefficients associated with the patch field
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C
index 2e65230aaecea4af1250929cb04b7094bb96c12a..18321c9013bf75cfaf72100e0a44a47ae813a2a7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.C
@@ -92,7 +92,7 @@ activePressureForceBaffleVelocityFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
-    pName_("p"),
+    pName_(dict.lookupOrDefault<word>("p", "p")),
     cyclicPatchName_(dict.lookup("cyclicPatch")),
     cyclicPatchLabel_(p.patch().boundaryMesh().findPatchID(cyclicPatchName_)),
     orientation_(readLabel(dict.lookup("orientation"))),
@@ -278,6 +278,8 @@ void Foam::activePressureForceBaffleVelocityFvPatchVectorField::updateCoeffs()
             {
                 valueDiff -=p[nbrFaceCells[facei]]*mag(initCyclicSf_[facei]);
             }
+
+            Info<< "Force difference = " << valueDiff << endl;
         }
         else //pressure based
         {
@@ -290,6 +292,8 @@ void Foam::activePressureForceBaffleVelocityFvPatchVectorField::updateCoeffs()
             {
                 valueDiff -= p[nbrFaceCells[facei]];
             }
+
+            Info<< "Pressure difference = " << valueDiff << endl;
         }
 
         if ((mag(valueDiff) > mag(minThresholdValue_) || baffleActivated_))
@@ -316,7 +320,6 @@ void Foam::activePressureForceBaffleVelocityFvPatchVectorField::updateCoeffs()
         }
 
         Info<< "Open fraction = " << openFraction_ << endl;
-        Info<< "Pressure difference = " << valueDiff << endl;
 
         vectorField::subField Sfw = patch().patch().faceAreas();
         vectorField newSfw((1 - openFraction_)*initWallSf_);
@@ -351,6 +354,7 @@ void Foam::activePressureForceBaffleVelocityFvPatchVectorField::
 write(Ostream& os) const
 {
     fvPatchVectorField::write(os);
+    writeEntryIfDifferent<word>(os, "p", "p", pName_);
     os.writeKeyword("cyclicPatch")
         << cyclicPatchName_ << token::END_STATEMENT << nl;
     os.writeKeyword("orientation")
@@ -361,8 +365,6 @@ write(Ostream& os) const
         << maxOpenFractionDelta_ << token::END_STATEMENT << nl;
     os.writeKeyword("openFraction")
         << openFraction_ << token::END_STATEMENT << nl;
-    os.writeKeyword("p")
-        << pName_ << token::END_STATEMENT << nl;
     os.writeKeyword("minThresholdValue")
         << minThresholdValue_ << token::END_STATEMENT << nl;
     os.writeKeyword("forceBased")
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H
index 2e5b6982fe5a9ec602fd3f9da989785ae48b33a7..c313f296fe4fbe5fbae829ba3771e471889faf90 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/activePressureForceBaffleVelocity/activePressureForceBaffleVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,12 +24,64 @@ License
 Class
     Foam::activePressureForceBaffleVelocityFvPatchVectorField
 
-Description
-    Bounday which emulates the operation of a release pressure panel.
+Group
+    grpCoupledBoundaryConditions
 
-    The boundary condition modifies mesh areas based on difference
-    of pressure or force face beween both sides of the panel. Once opened the
-    panel continues to open at a fixed rate.
+Description
+    This boundary condition is applied to the flow velocity, to simulate the
+    opening of a baffle due to local flow conditions, by merging the behaviours
+    of wall and cyclic conditions.
+
+    The baffle joins two mesh regions, where the open fraction determines
+    the interpolation weights applied to each cyclic- and neighbour-patch
+    contribution.
+
+    Once opened the baffle continues to open at a fixed rate using
+
+        \f[
+            x = x_{old} + \frac{dt}{DT}
+        \f]
+
+    where
+
+    \vartable
+        x       | baffle open fraction [0-1]
+        x_{old} | baffle open fraction on previous evaluation
+        dt      | simulation time step
+        DT      | time taken to open the baffle
+    \endvartable
+
+    The open fraction is then applied to scale the patch areas.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        p            | pressure field name     | no          | p
+        cyclicPatch  | cylclic patch name      | yes         |
+        orientation  | 1 or -1 used to switch flow direction | yes|
+        openFraction | current opatch open fraction [0-1]| yes |
+        openingTime  | time taken to open the baffle | yes |
+        maxOpenFractionDelta | max open fraction change per timestep | yes |
+        minThresholdValue | minimum open fraction for activation | yes |
+        forceBased   | force (true) or pressure-based (false) activation | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            activePressureForceBaffleVelocity;
+        p               p;
+        cyclicPatch     cyclic1;
+        orientation     1;
+        openFraction    0.2;
+        openingTime     5.0;
+        maxOpenFractionDelta 0.1;
+        minThresholdValue 0.01;
+        forceBased      false;
+    }
+    \endverbatim
 
 SourceFiles
     activePressureForceBaffleVelocityFvPatchVectorField.C
@@ -48,7 +100,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-            Class activePressureForceBaffleVelocityFvPatch Declaration
+    Class activePressureForceBaffleVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class activePressureForceBaffleVelocityFvPatchVectorField
@@ -102,6 +154,7 @@ class activePressureForceBaffleVelocityFvPatchVectorField
         //- Baffle is activated
         bool baffleActivated_;
 
+
 public:
 
     //- Runtime type information
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.H
index 0734a9568290ffbf6016ea9d1b4b095a726bb740..5c62df1049fee116021c0d744b2751ab70533425 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.H
@@ -24,37 +24,53 @@ License
 Class
     Foam::advectiveFvPatchField
 
+Group
+    grpOutletBoundaryConditions
+
 Description
-    Advective outflow boundary condition based on solving DDt(psi, U) = 0
-    at the boundary.
+    This boundary condition provides an advective outflow condition, based on
+    solving DDt(psi, U) = 0 at the boundary.
 
     The standard (Euler, backward, CrankNicholson) time schemes are
     supported.  Additionally an optional mechanism to relax the value at
     the boundary to a specified far-field value is provided which is
-    switched on by specifying the relaxation length-scale lInf and the
-    far-field value fieldInf.
+    switched on by specifying the relaxation length-scale \c lInf and the
+    far-field value \c fieldInf.
 
     The flow/wave speed at the outlet is provided by the virtual function
     advectionSpeed() the default implementation of which requires the name of
-    the flux field (phi) and optionally the density (rho) if the mass-flux
-    rather than the volumetric-flux is given.
-    \verbatim
-        outlet
-        {
-            type            advective;
-            phi             phi;
-            // rho          rho; // Not needed, phi volumetric
-            // fieldInf     1e5; // Optional
-            // lInf         0.1; // Optional
-        }
-    \endverbatim
+    the flux field \c (phi) and optionally the density \c (rho) if the
+    mass-flux rather than the volumetric-flux is given.
 
     The flow/wave speed at the outlet can be changed by deriving a specialised
-    BC from this class and overriding advectionSpeed() e.g. in
+    BC from this class and over-riding advectionSpeed()  e.g. in
     waveTransmissiveFvPatchField the advectionSpeed() calculates and returns
     the flow-speed plus the acoustic wave speed creating an acoustic wave
     transmissive boundary condition.
 
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        fieldInf     | value of field beyond patch | no      |
+        lInf         | distance beyond patch for \c fieldInf | no |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            advective;
+        phi             phi;
+    }
+    \endverbatim
+
+Note
+    If \c lInf is specified, \c fieldInf will be required; \c rho is only
+    required in the case of a mass-based flux.
+
 SourceFiles
     advectiveFvPatchField.C
 
@@ -71,7 +87,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class advectiveFvPatch Declaration
+                  Class advectiveFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.H
index 79d9eaa5434fda288f478075339571fa56ba35c4..19b7930b860af16d7d8206a1c6849c641250402f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,58 @@ License
 Class
     Foam::buoyantPressureFvPatchScalarField
 
-Description
-    Set the pressure gradient boundary condition appropriately for buoyant flow.
+Group
+    grpGenericBoundaryConditions grpWallBoundaryConditions
 
-    If the variable name is "pd" assume it is p - rho*g.h and set the gradient
-    appropriately.  Otherwise assume the variable is the static pressure.
+Description
+    This boundary condition sets the pressure gradient appropriately for
+    buoyant flow.
+
+    If the variable name is one of:
+    - \c pd
+    - \c p_rgh
+    - \c ph_rgh
+    we assume that the pressure variable is \f$p - \rho(g \cdot h)\f$ and the
+    gradient set using:
+        \f[
+            \nabla(p) = -\nabla_\perp(\rho)(g \cdot h)
+        \f]
+
+    where
+
+    \vartable
+        \rho   | density [kg/m3]
+        g      | acceleration due to gravity [m/s2]
+        h      | patch face centres [m]
+    \endvartable
+
+    Otherwise we assume that it is the static pressure, and the gradient
+    calculated using:
+        \f[
+            \nabla(p) = \rho(g \cdot n)
+        \f]
+
+    where
+    \vartable
+        n      | patch face normal vectors
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        rho          | density field name      | no          | rho
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            buoyantPressure;
+        rho             rho;
+        value           uniform 0;
+    }
+    \endverbatim
 
 SourceFiles
     buoyantPressureFvPatchScalarField.C
@@ -47,7 +94,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                  Class buoyantPressureFvPatch Declaration
+             Class buoyantPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class buoyantPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H
index c7fdc5c644b854ec2bea35cf6b220485bc55ed4e..9723a2116af3549b3526d569ce13ac1fb0ae69d3 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/codedFixedValue/codedFixedValueFvPatchField.H
@@ -24,41 +24,46 @@ License
 Class
     Foam::codedFixedValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
     Constructs on-the-fly a new boundary condition (derived from
     fixedValueFvPatchField) which is then used to evaluate.
 
+    \heading Patch usage
+
     Example:
     \verbatim
-        movingWall
-        {
-            type            codedFixedValue;
-            value           uniform 0;
-            redirectType    rampedFixedValue;   // name of generated bc
-
-            code
-            #{
-                operator==(min(10, 0.1*this->db().time().value()));
-            #};
-
-            //codeInclude
-            //#{
-            //    #include "fvCFD.H"
-            //#};
-
-            //codeOptions
-            //#{
-            //    -I$(LIB_SRC)/finiteVolume/lnInclude
-            //#};
-        }
+    myPatch
+    {
+        type            codedFixedValue;
+        value           uniform 0;
+        redirectType    rampedFixedValue;   // name of generated BC
+
+        code
+        #{
+            operator==(min(10, 0.1*this->db().time().value()));
+        #};
+
+        //codeInclude
+        //#{
+        //    #include "fvCFD.H"
+        //#};
+
+        //codeOptions
+        //#{
+        //    -I$(LIB_SRC)/finiteVolume/lnInclude
+        //#};
+    }
     \endverbatim
 
     A special form is if the 'code' section is not supplied. In this case
-    the code gets read from a (runTimeModifiable!) dictionary system/codeDict
-    which would have a corresponding entry
+    the code is read from a (runTimeModifiable!) dictionary system/codeDict
+    which would have a corresponding entry:
 
     \verbatim
-    rampedFixedValue
+    myPatch
     {
         code
         #{
@@ -68,7 +73,8 @@ Description
     \endverbatim
 
 SeeAlso
-    Foam::dynamicCode and Foam::functionEntries::codeStream
+    Foam::dynamicCode
+    Foam::functionEntries::codeStream
 
 SourceFiles
     codedFixedValueFvPatchField.C
@@ -92,7 +98,7 @@ class dynamicCodeContext;
 class IOdictionary;
 
 /*---------------------------------------------------------------------------*\
-                     Class codedFixedValueFvPatch Declaration
+                 Class codedFixedValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
@@ -110,6 +116,7 @@ class codedFixedValueFvPatchField
 
         mutable autoPtr<fvPatchField<Type> > redirectPatchFieldPtr_;
 
+
     // Private Member Functions
 
         const IOdictionary& dict() const;
@@ -132,6 +139,7 @@ class codedFixedValueFvPatchField
         // Get the dictionary to initialize the codeContext
         virtual const dictionary& codeDict() const;
 
+
 public:
 
     // Static data members
@@ -209,8 +217,6 @@ public:
         }
 
 
-
-
     // Member functions
 
         //- Get reference to the underlying patch
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H
index cc08ba319d0fe4621e5b509ce316a0cb327d0e15..3ab69cc81c092b6fdd6f959069660291fae3a864 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/codedMixed/codedMixedFvPatchField.H
@@ -24,41 +24,42 @@ License
 Class
     Foam::codedMixedFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
     Constructs on-the-fly a new boundary condition (derived from
     mixedFvPatchField) which is then used to evaluate.
 
+    \heading Patch usage
+
     Example:
     \verbatim
-        movingWall
-        {
-            type            codedMixed;
-
-            refValue        uniform (0 0 0);
-            refGradient     uniform (0 0 0);
-            valueFraction   uniform 1;
-
-            redirectType    rampedMixed;   // name of generated bc
-
-            code
-            #{
-                this->refValue() =
-                    vector(1, 0, 0)
-                   *min(10, 0.1*this->db().time().value());
-                this->refGrad() = vector::zero;
-                this->valueFraction() = 1.0;
-            #};
-
-            //codeInclude
-            //#{
-            //    #include "fvCFD.H"
-            //#};
-
-            //codeOptions
-            //#{
-            //    -I$(LIB_SRC)/finiteVolume/lnInclude
-            //#};
-        }
+    myPatch
+    {
+        type            codedMixed;
+        value           uniform 0;
+        redirectType    rampedMixed;   // name of generated BC
+
+        code
+        #{
+            this->refValue() =
+                vector(1, 0, 0)
+               *min(10, 0.1*this->db().time().value());
+            this->refGrad() = vector::zero;
+            this->valueFraction() = 1.0;
+        #};
+
+        //codeInclude
+        //#{
+        //    #include "fvCFD.H"
+        //#};
+
+        //codeOptions
+        //#{
+        //    -I$(LIB_SRC)/finiteVolume/lnInclude
+        //#};
+    }
     \endverbatim
 
     A special form is if the 'code' section is not supplied. In this case
@@ -66,19 +67,20 @@ Description
     which would have a corresponding entry
 
     \verbatim
-        rampedMixed
-        {
-            code
-            #{
-                this->refValue() = min(10, 0.1*this->db().time().value());
-                this->refGrad() = vector::zero;
-                this->valueFraction() = 1.0;
-            #};
-        }
+    myPatch
+    {
+        code
+        #{
+            this->refValue() = min(10, 0.1*this->db().time().value());
+            this->refGrad() = vector::zero;
+            this->valueFraction() = 1.0;
+        #};
+    }
     \endverbatim
 
 SeeAlso
-    Foam::dynamicCode and Foam::functionEntries::codeStream
+    Foam::dynamicCode
+    Foam::functionEntries::codeStream
 
 SourceFiles
     codedMixedFvPatchField.C
@@ -102,7 +104,7 @@ class dynamicCodeContext;
 class IOdictionary;
 
 /*---------------------------------------------------------------------------*\
-                     Class codedMixedFvPatch Declaration
+                   Class codedMixedFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
@@ -120,6 +122,7 @@ class codedMixedFvPatchField
 
         mutable autoPtr<mixedFvPatchField<Type> > redirectPatchFieldPtr_;
 
+
     // Private Member Functions
 
         const IOdictionary& dict() const;
@@ -142,6 +145,7 @@ class codedMixedFvPatchField
         // Get the dictionary to initialize the codeContext
         virtual const dictionary& codeDict() const;
 
+
 public:
 
     // Static data members
@@ -219,8 +223,6 @@ public:
         }
 
 
-
-
     // Member functions
 
         //- Get reference to the underlying patchField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/cylindricalInletVelocity/cylindricalInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/cylindricalInletVelocity/cylindricalInletVelocityFvPatchVectorField.H
index de15affbc73585e018e8374df37b8a98ac74409d..4e3db2fdfffd9905329be552615d50986c8a7e90 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/cylindricalInletVelocity/cylindricalInletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/cylindricalInletVelocity/cylindricalInletVelocityFvPatchVectorField.H
@@ -2,16 +2,16 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-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 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
@@ -19,19 +19,33 @@ License
     for more details.
 
     You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
     Foam::cylindricalInletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Describes an inlet vector boundary condition in cylindrical coordinates
-    given a central axis, central point, rpm, axial and radial velocity.
+    This boundary condition describes an inlet vector boundary condition in
+    cylindrical co-ordinates given a central axis, central point, rpm, axial
+    and radial velocity.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        axis         | axis of rotation        | yes         |
+        centre       | centre of rotation      | yes         |
+        axialVelocity | axial velocity profile [m/s] | yes    |
+        radialVelocity | radial velocity profile [m/s] | yes  |
+        rpm          | rotational speed (revolutions per minute) | yes|
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-    inlet
+    myPatch
     {
         type            cylindricalInletVelocity;
         axis            (0 0 1);
@@ -42,9 +56,14 @@ Description
     }
     \endverbatim
 
-    The axialVelocity, radialVelocity and rpm entries are DataEntry types, able
-    to describe time varying functions.  The example above gives the usage for
-    supplying constant values.
+Note
+    The \c axialVelocity, \c radialVelocity and \c rpm entries are DataEntry
+    types, able to describe time varying functions.  The example above gives
+    the usage for supplying constant values.
+
+SeeAlso
+    Foam::fixedValueFvPatchField
+    Foam::DataEntry
 
 SourceFiles
     cylindricalInletVelocityFvPatchVectorField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H
index b3799c2bd9bc2486294d2c107ad77e72309bfde6..3eea1382f39400ec5f98a6b1ed4e3109459d87df 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fan/fanFvPatchField.H
@@ -24,47 +24,59 @@ License
 Class
     Foam::fanFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Jump boundary condition. Operates on cyclic. Jump specified as a DataEntry.
-    (table, fileTable, csv etc.)
+    This boundary condition provides a jump condition, using the \c cyclic
+    condition as a base.
+
+    The jump is specified as a \c DataEntry type, to enable the use of, e.g.
+    contant, polynomial, table values.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        patchType    | underlying patch type should be \c cyclic| yes |
+        jump         | current jump value      | yes         |
+        jumpTable    | jump data, e.g. \c csvFile | yes      |
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        fan_half0
+    myPatch
+    {
+        type            fan;
+        patchType       cyclic;
+        jump            uniform 0;
+        jumpTable       csvFile;
+        csvFileCoeffs
         {
-            type            fan;
-            patchType       cyclic;
-            jump            uniform 0;
-            jumpTable       csvFile;
-            csvFileCoeffs
-            {
-                hasHeaderLine   1;
-                refColumn       0;
-                componentColumns 1(1);
-                separator       ",";
-                fileName        "$FOAM_CASE/constant/pressureVsU";
-            }
-            value           uniform 0;
+            hasHeaderLine   1;
+            refColumn       0;
+            componentColumns 1(1);
+            separator       ",";
+            fileName        "$FOAM_CASE/constant/pressureVsU";
         }
+        value           uniform 0;
+    }
     \endverbatim
 
+    The above example shows the use of a comma separated (CSV) file to specify
+    the jump condition.
 
-    Backwards compatibility: if the 'f' keyword is detected it assumes
-    it is a power of the flowrate.
+Note
+     The underlying \c patchType should be set to \c cyclic
 
-    \verbatim
-        fan_half0
-        {
-            type            fan;
-            patchType       cyclic;
-            jump            uniform 0;
-            f               2(100 -0.1);
-            value           uniform 0;
-        }
-    \endverbatim
+SeeAlso
+    Foam::DataEntry
 
 SourceFiles
     fanFvPatchField.C
+    fanFvPatchFields.H
+    fanFvPatchFields.C
+    fanFvPatchFieldsFwd.H
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fanPressure/fanPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/fanPressure/fanPressureFvPatchScalarField.H
index 9720684193fbc02b801c5dc879938aede599442b..022fb48ccb74e2ef3480e486414991afd69c04b8 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fanPressure/fanPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fanPressure/fanPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,43 +24,53 @@ License
 Class
     Foam::fanPressureFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Assigns pressure inlet or outlet total pressure condition for a fan.
+    This boundary condition can be applied to assign either a pressure inlet
+    or outlet total pressure condition for a fan.
+
+    \heading Patch usage
 
-    User specifies:
-    - pressure drop vs volumetric flow rate table (fan curve) file name;
-    - direction of normal flow through the fan, in or out;
-    - total pressure of the environment.
+    \table
+        Property     | Description             | Required    | Default value
+        fileName     | fan curve file name     | yes         |
+        outOfBounds  | out of bounds handling  | yes         |
+        direction    | direction of flow through fan [in/out] | yes |
+        p0           | environmental total pressure | yes    |
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type            fanPressure;
-            fileName        "fanCurve"; // Fan curve file name
-            outOfBounds     clamp;      // (error|warn|clamp|repeat)
-            direction       in;         // Direction of flow through fan
-            p0              uniform 0;  // Environmental total pressure
-            value           uniform 0;  // Initial pressure
-        }
-
-        outlet
-        {
-            type            fanPressure;
-            fileName        "fanCurve"; // Fan curve file name
-            outOfBounds     clamp;      // (error|warn|clamp|repeat)
-            direction       out;        // Direction of flow through fan
-            p0              uniform 0;  // Environmental total pressure
-            value           uniform 0;  // Initial pressure
-        }
+    inlet
+    {
+        type            fanPressure;
+        fileName        "fanCurve";
+        outOfBounds     clamp;
+        direction       in;
+        p0              uniform 0;
+        value           uniform 0;
+    }
+
+    outlet
+    {
+        type            fanPressure;
+        fileName        "fanCurve";
+        outOfBounds     clamp;
+        direction       out;
+        p0              uniform 0;
+        value           uniform 0;
+    }
     \endverbatim
 
 See Also
-    Foam::totalPressureFvPatchScalarField and
+    Foam::fanFvPatchField
+    Foam::totalPressureFvPatchScalarField
     Foam::interpolationTable
 
 SourceFiles
-    fanPressureFvPatchScalarField.C
+   fanPressureFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -93,8 +103,10 @@ public:
             ffdOut
         };
 
+        //- Fan flow directions names
         static const NamedEnum<fanFlowDirection, 2> fanFlowDirectionNames_;
 
+
 private:
 
     // Private data
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.H
index de8f837abdfc99fe4321722133f669ff424ec22e..8476e63dffc0f34ecae8c23cf016655a83b9e2fb 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.H
@@ -24,15 +24,53 @@ License
 Class
     Foam::fixedFluxPressureFvPatchScalarField
 
+Group
+    grpOutletBoundaryConditions
+
 Description
-    Adjusts the pressure gradient such that the flux on the boundary is that
-    specified by the velocity boundary condition.
+    This boundary condition adjusts the pressure gradient such that the flux
+    on the boundary is that specified by the velocity boundary condition.
 
     The predicted flux to be compensated by the pressure gradient is evaluated
-    as (phi - phiHbyA), both of which are looked-up from the database as is
-    the pressure diffusivity Dp used to calculate the gradient.
-
-    The names of the phi, phiHbyA and Dp fields may be optionally specified.
+    as \f$(\phi - \phi_{H/A})\f$, both of which are looked-up from the database,
+    as is the pressure diffusivity used to calculate the gradient using:
+
+        \f[
+            \nabla(p) = \frac{\phi_{H/A} - \phi}{|Sf| D_p}
+        \f]
+
+    where
+
+    \vartable
+        phi     | flux
+        D_p     | pressure diffusivity
+        Sf      | patch face areas [m2]
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phiHbyA      | name of predicted flux field | no | phiHbyA
+        phi          | name of flux field      | no |   phi
+        rho          | name of density field   | no |   rho
+        Dp           | name of pressure diffusivity field | no |   Dp
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedFluxPressure;
+        phiHbyA         phiHbyA;
+        phi             phi;
+        rho             rho;
+        Dp              Dp;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedGradientFvPatchField
 
 SourceFiles
     fixedFluxPressureFvPatchScalarField.C
@@ -52,7 +90,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class fixedFluxPressureFvPatch Declaration
+             Class fixedFluxPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class fixedFluxPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H
index cd27459a94b4177600611f82242eb8d90acaa7c2..75a9742240f757ddefce2e4f1b64e4ecf6b1e1f7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,33 @@ License
 Class
     Foam::fixedInternalValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Boundary condition providing mechanism to set boundary (cell) values
-    directly into a matrix, i.e. to set a constraint condition. Default
+    This boundary condition provides a mechanism to set boundary (cell) values
+    directly into a matrix, i.e. to set a constraint condition.  Default
     behaviour is to act as a zero gradient condition.
 
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedInternalValue;
+        value           uniform 0;              // place holder
+    }
+    \endverbatim
+
+Note
+    This is used as a base for conditions such as the turbulence \c epsilon
+    wall function, which applies a near-wall constraint for high Reynolds
+    number flows.
+
+SeeAlso
+    Foam::epsilonWallFunctionFvPatchScalarField
+
 SourceFiles
     fixedInternalValueFvPatchField.C
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H
index c746b975cf1e1c78323ad99d595ad7042c19aa70..30ec57fc54eb35c11df20a7f18fcfdde72f659be 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedJump/fixedJumpFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,19 @@ License
 Class
     Foam::fixedJumpFvPatchField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
     Base class for "jump" of a field<type>
 
+Note
+    not used directly
+
+SeeAlso
+    Foam::fanFvPatchScalarField
+    Foam::fanPressureFvPatchScalarField
+
 SourceFiles
     fixedJumpFvPatchField.C
 
@@ -62,7 +72,6 @@ protected:
 
 public:
 
-
     // Constructors
 
         //- Construct from patch and internal field
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedMean/fixedMeanFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedMean/fixedMeanFvPatchField.H
index b59969a967210d0a31a76751e57fbf2996cb6301..ed31cfb998a5ae90358a41d33bbff443768c15f3 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedMean/fixedMeanFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedMean/fixedMeanFvPatchField.H
@@ -24,9 +24,31 @@ License
 Class
     Foam::fixedMeanFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Extrapolates field to the patch using the near-cell values and adjusts
-    the distribution to match the specified meanValue.
+    This boundary condition extrapolates field to the patch using the near-cell
+    values and adjusts the distribution to match the specified mean value.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        meanValue    | mean value              | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedMean;
+        meanValue       1.0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     fixedMeanFvPatchField.C
@@ -44,7 +66,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                  Class fixedMeanFvPatch Declaration
+                  Class fixedMeanFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H
index 3a59c98f4e53db237166203dfac5043239138e85..bbaf0a257bca2df4ec0e75617c53ae89efd8922d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalSlip/fixedNormalSlipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,30 @@ License
 Class
     Foam::fixedNormalSlipFvPatchField
 
+Group
+    grpGenericBoundaryConditions grpWallBoundaryConditions
+
 Description
-    Foam::fixedNormalSlipFvPatchField
+    This boundary condition sets the patch-normal component to a fixed value.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        fixedValue   | fixed value             | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedNormalSlip;
+        fixedValue      uniform 0;     // example entry for a scalar field
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::transformFvPatchField
 
 SourceFiles
     fixedNormalSlipFvPatchField.C
@@ -43,7 +65,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class fixedNormalSlipFvPatch Declaration
+                 Class fixedNormalSlipFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.H
index a27409e94b9f29ee4c2df79f8ce880862a3946a1..47aab74d5c24dce9462d829119bdf4a9acc6efbb 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,20 +24,50 @@ License
 Class
     Foam::fixedPressureCompressibleDensityFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Calculate compressible density as a function of pressure and fluid
-    properties.
+    This boundary condition calculates a (liquid) compressible density as a
+    function of pressure and fluid properties:
+
+        \f[
+            \rho = \rho_{l,sat} + \psi_l*(p - p_{sat})
+        \f]
+
+    where
+
+    \vartable
+        \rho    | density [kg/m3]
+        \rho_{l,sat} | saturation liquid density [kg/m3]
+        \psi_l  | liquid compressibility
+        p       | pressure [Pa]
+        p_{sat} | saturation pressure [Pa]
+    \endvartable
+
+    The variables \c rholSat, \c pSat and \c psil are retrieved from the
+    \c thermodynamicProperties dictionary.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        p            | pressure field name     | no          | p
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type        fixedPressureCompressibleDensity;
-            p           p;               // Name of static pressure field
-            value       uniform 1;       // Initial value
-        }
+    myPatch
+    {
+        type        fixedPressureCompressibleDensity;
+        p           p;
+        value       uniform 1;
+    }
     \endverbatim
 
+SeeAlso
+    Foam::fixedValueFvPatchField
+
 SourceFiles
     fixedPressureCompressibleDensityFvPatchScalarField.C
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H
index 1a5d2f493d160bff3497b3898422c002127d84c7..8051261154f6d8c351234138838714c49f335bd0 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H
@@ -24,37 +24,67 @@ License
 Class
     Foam::flowRateInletVelocityFvPatchVectorField
 
-Description
-    Describes a volumetric/mass flow normal vector boundary condition by its
-    magnitude as an integral over its area.
-
-    Either specify 'volumetricFlowRate' or 'massFlowRate' (requires additional
-    'rho' or 'rhoInlet' entry).
+Group
+    grpInletBoundaryConditions
 
-    Example of the boundary condition specification:
+Description
+    This boundary condition provides a velocity boundary condition, derived
+    from the flux (volumetric or mass-based), whose direction is assumed
+    to be normal to the patch.
+
+    For a mass-based flux:
+    - the flow rate should be provided in kg/s
+    - if \c rhoName is "none" the flow rate is in m3/s
+    - otherwise \c rhoName should correspond to the name of the density field
+    - if the density field cannot be found in the database, the user must
+      specify the inlet density using the \c rhoInlet entry
+
+    For a volumetric-based flux:
+    - the flow rate is in m3/s
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        massFlowRate | mass flow rate [kg/s]   | no          |
+        volumetricFlowRate | volumetric flow rate [m3/s]| no |
+        rhoInlet     | inlet density           | no          |
+    \endtable
+
+    Example of the boundary condition specification for a volumetric flow rate:
     \verbatim
-    inlet
+    myPatch
     {
-        type                flowRateInletVelocity;
-        volumetricFlowRate  0.2;  // Volumetric [m3/s]
+        type        flowRateInletVelocity;
+        volumetricFlowRate  0.2;
+        value       uniform (0 0 0); // placeholder
     }
     \endverbatim
 
+    Example of the boundary condition specification for a mass flow rate:
     \verbatim
-    inlet
+    myPatch
     {
         type                flowRateInletVelocity;
-        massFlowRate        0.2;  // mass flow rate [kg/s]
-        rho                 rho;  // rho [m3/s or kg/s]
-        rhoInlet            1.0   // uniform rho if no rho field registered
-                                  // (e.g. at startup)
+        massFlowRate        0.2;
+        rho                 rho;
+        rhoInlet            1.0;
     }
     \endverbatim
+    
+    The \c flowRate entry is a \c DataEntry type, meaning that it can be
+    specified as constant, a polynomial fuction of time, and ...
 
 Note
-    - The value is positive inwards
-    - May not work correctly for transonic inlets
-    - Strange behaviour with potentialFoam since the U equation is not solved
+    - \c rhoInlet is required for the case of a mass flow rate, where the
+      density field is not available at start-up
+    - the value is positive into the domain (as an inlet)
+    - may not work correctly for transonic inlets
+    - strange behaviour with potentialFoam since the U equation is not solved
+
+SeeAlso
+    Foam::DataEntry
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     flowRateInletVelocityFvPatchVectorField.C
@@ -72,7 +102,7 @@ SourceFiles
 namespace Foam
 {
 /*---------------------------------------------------------------------------*\
-               Class flowRateInletVelocityFvPatch Declaration
+           Class flowRateInletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class flowRateInletVelocityFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.C
index fbd74afe20816cb10dfc50d2a23350bf6064f672..a3f73873903ead3a6717928682b3e9a017685c2b 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,8 +29,6 @@ License
 #include "volFields.H"
 #include "surfaceFields.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::fluxCorrectedVelocityFvPatchVectorField::
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H
index 6631d205b47be2f4ca988107ae04d362c259e6b1..4519a5ed9d2f1063ff3466a52b83a28375536620 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,53 @@ License
 Class
     Foam::fluxCorrectedVelocityFvPatchVectorField
 
+Group
+    grpOutletBoundaryConditions
+
 Description
-    Velocity outlet boundary condition for patches where the pressure is
-    specified. The outflow velocity is obtained by "zeroGradient" and then
-    corrected from the flux.  If reverse flow is possible or expected use
-    the "pressureInletOutletVelocityFvPatchVectorField" BC instead.
+    This boundary condition provides a velocity outlet boundary condition for
+    patches where the pressure is specified.  The outflow velocity is obtained
+    by "zeroGradient" and then corrected from the flux:
+
+        \f[
+            U_p = U_c - n*(n.U_c) + \frac{n*\phi_p}{|Sf|}
+        \f]
+
+    where
+
+    \vartable
+        U_p | velocity at the patch [m/s]
+        U_c | velocity in cells adjacent to the patch [m/s]
+        n   | patch normal vectors
+        \phi_p | flux at the patch [m3/s or kg/s]
+        Sf  | patch face area vectors [m2]
+    \endvartable
+
+    where
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | name of flux field      | no          | phi
+        rho          | name of density field   | no          | rho
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fluxCorrectedVelocity;
+        phi             phi;
+        rho             rho;
+    }
+    \endverbatim
+
+Note
+    If reverse flow is possible or expected use the
+    pressureInletOutletVelocity condition instead.
+
+SeeAlso
+    Foam::zeroGradientFvPatchField
+    Foam::pressureInletOutletVelocityFvPatchVectorField
 
 SourceFiles
     fluxCorrectedVelocityFvPatchVectorField.C
@@ -47,7 +89,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                   Class fluxCorrectedVelocityFvPatch Declaration
+           Class fluxCorrectedVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class fluxCorrectedVelocityFvPatchVectorField
@@ -56,7 +98,10 @@ class fluxCorrectedVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Name of flux field
         word phiName_;
+
+        //- Name of density field
         word rhoName_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/freestream/freestreamFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/freestream/freestreamFvPatchField.H
index 50f3d136f0eb4ce95bfcb1f87c4c7e048eb75e2b..adcb570f937b8b1cc569cbbf74ed054ce0429fb6 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/freestream/freestreamFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/freestream/freestreamFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,34 @@ License
 Class
     Foam::freestreamFvPatchField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Foam::freestreamFvPatchField
+    This boundary condition provides a free-stream condition.  It is a 'mixed'
+    condition derived from the \c inletOutlet condition, whereby the mode of
+    operation switches between fixed (free stream) value and zero gradient
+    based on the sign of the flux.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            freestream;
+        phi             phi;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mixedFvPatchField
+    Foam::inletOutletFvPatchField
 
 SourceFiles
     freestreamFvPatchField.C
@@ -43,7 +69,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                     Class freestreamFvPatch Declaration
+                   Class freestreamFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/freestreamPressure/freestreamPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/freestreamPressure/freestreamPressureFvPatchScalarField.H
index 6323b678d7d165b48177720e22b9bdfd060bf6f4..fa5233308c8ac7c3e4f24c3f85c29a5e680a9c0e 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/freestreamPressure/freestreamPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/freestreamPressure/freestreamPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,30 @@ License
 Class
     Foam::freestreamPressureFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Foam::freestreamPressureFvPatchScalarField
+    This boundary condition provides a free-stream condition for pressure.
+    It is a zero-gradient condition that constrains the flux across the patch
+    based on the free-stream velocity.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            freestreamPressure;
+    }
+    \endverbatim
+
+Note
+    This condition is designed to operate with a freestream velocity condition
+
+SeeAlso
+    Foam::zeroGradientFvPatchField
+    Foam::freestreamFvPatchField
 
 SourceFiles
     freestreamPressureFvPatchScalarField.C
@@ -44,7 +66,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class freestreamPressureFvPatch Declaration
+             Class freestreamPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class freestreamPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/inletOutlet/inletOutletFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/inletOutlet/inletOutletFvPatchField.H
index 4c7817967b38c98a50217ad0dbc4d6aad6db5594..21aea3aa9137b8da785676805c0239fa03d92478 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/inletOutlet/inletOutletFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/inletOutlet/inletOutletFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,43 @@ License
 Class
     Foam::inletOutletFvPatchField
 
+Group
+    grpOutletBoundaryConditions
+
 Description
-    Foam::inletOutletFvPatchField
+    This boundary condition provides a generic outflow condition, with
+    specified inflow for the case of return flow.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        inletValue   | inlet value for reverse flow | yes    |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            inletOutlet;
+        phi             phi;
+        inletValue      uniform 0;
+        value           uniform 0;
+    }
+    \endverbatim
+
+    The mode of operation is determined by the sign of the flux across the
+    patch faces.
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply zero-gradient condition
+    - negative flux (into of domain): apply the user-specified fixed value
+
+SeeAlso
+    Foam::mixedFvPatchField
+    Foam::zeroGradientFvPatchField
 
 SourceFiles
     inletOutletFvPatchField.C
@@ -43,7 +78,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                     Class inletOutletFvPatch Declaration
+                   Class inletOutletFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.H
index 7483a39bd44c694e3a6a5b51b29e3dbab9e8dd5f..430ee1e51f35aebb8023e41aebea4e7594cfa87e 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,43 @@ License
 Class
     Foam::inletOutletTotalTemperatureFvPatchScalarField
 
+Group
+    grpOutletBoundaryConditions
+
 Description
-    Foam::inletOutletTotalTemperatureFvPatchScalarField
+    This boundary condition provides an outflow condition for total
+    temperature for use with supersonic cases, where a user-specified
+    value is applied in the case of reverse flow.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | velocity field name     | no          | U
+        phi          | flux field name         | no          | phi
+        psi          | compressibility field name |  no      | psi
+        gamma        | heat capacity ration (Cp/Cv) | yes    |
+        inletValue   | reverse flow (inlet) value | yes      |
+        T0           | static temperature [K]  | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            inletOutletTotalTemperature;
+        U               U;
+        phi             phi;
+        psi             psi;
+        gamma           gamma;
+        inletValue      uniform 0;
+        T0              uniform 0;
+        value           uniform 0;
+    }
+    \endverbatim
+   
+SeeAlso
+    Foam::inletOutletFvPatchField
 
 SourceFiles
     inletOutletTotalTemperatureFvPatchScalarField.C
@@ -43,7 +78,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-             Class inletOutletTotalTemperatureFvPatch Declaration
+       Class inletOutletTotalTemperatureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class inletOutletTotalTemperatureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.H
index 11c0425bed6c8de05f12df7da42278fe84093480..6dd9f3efb5c8579b8c9c966394d4aa34a5e8685a 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedField/mappedFieldFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,47 @@ License
 Class
     Foam::mappedFieldFvPatchField
 
+Group
+    grpGenericBoundaryConditions grpCoupledBoundaryConditions
+
 Description
-    Self-contained version of mapped. Does not use information on
-    patch, instead holds it locally (and possibly duplicate) so use
-    normal mapped in preference and only use this if you cannot
-    change the underlying patch type to mapped.
+    This boundary condition provides a self-contained version of the \c mapped
+    condition.  It does not use information on the patch; instead it holds
+    thr data locally.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        fieldName    | name of field to be mapped | no       | this field name
+        setAverage   | flag to activate setting of average value | yes |
+        average      | average value to apply if \c setAverage = yes | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mappedField;
+        fieldName       T;              // optional field name
+        setAverage      no;             // apply an average value
+        average         0;              // average to apply if setAverage
+        value           uniform 0;      // place holder
+    }
+    \endverbatim
+
+Note
+    Since this condition can be applied on a per-field and per-patch basis,
+    it is possible to duplicate the mapping information.  If possible, employ
+    the \c mapped condition in preference to avoid this situation, and only
+    employ this condition if it is not possible to change the underlying
+    geometric (poly) patch type to \c mapped.
+
+SeeAlso
+    Foam::mappedPatchBase
+    Foam::mappedPolyPatch
+    Foam::mappedFvPatch
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     mappedFieldFvPatchField.C
@@ -48,7 +84,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class mappedFieldFvPatchField Declaration
+                  Class mappedFieldFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedInternalValue/mappedFixedInternalValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedInternalValue/mappedFixedInternalValueFvPatchField.H
index 56ab90452943656aeb8c731fddd5412c19670206..a4b48fce8faa69d99c7087d5a11b2562aac6d9a7 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedInternalValue/mappedFixedInternalValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedInternalValue/mappedFixedInternalValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,42 @@ License
 Class
     Foam::mappedFixedInternalValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions grpCoupledBoundaryConditions
+
 Description
-    Recycles the boundary and internal values of a neighbour patch field to
-    the boundary and internal values of *this.
+    This boundary condition maps the boundary and internal values of a
+    neighbour patch field to the boundary and internal values of *this.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        fieldName    | name of field to be mapped | no       | this field name
+        setAverage   | flag to activate setting of average value | yes |
+        average      | average value to apply if \c setAverage = yes | yes |
+    \endtable
+
+    \verbatim
+    myPatch
+    {
+        type            mappedFixedInternalValue;
+        fieldName       T;
+        setAverage      no;
+        average         0;
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    This boundary condition can only be applied to patches that are of
+    the \c mappedPolyPatch type.
+
+SeeAlso
+    Foam::mappedPatchBase
+    Foam::mappedPolyPatch
+    Foam::mappedFvPatch
+    Foam::mappedFixedValueFvPatchField
 
 SourceFiles
     mappedFixedInternalValueFvPatchField.C
@@ -44,7 +77,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-         Class mappedFixedInternalValueFvPatchField Declaration
+           Class mappedFixedInternalValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedPushedInternalValue/mappedFixedPushedInternalValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedPushedInternalValue/mappedFixedPushedInternalValueFvPatchField.H
index a3dc0b67ac276b55331ab0055b2fd571db330c45..2f9ecedd66db14332ef11e55141232c91a9d9bfd 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedPushedInternalValue/mappedFixedPushedInternalValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedPushedInternalValue/mappedFixedPushedInternalValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,43 @@ License
 Class
     Foam::mappedFixedPushedInternalValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions grpCoupledBoundaryConditions
+
 Description
-    Recycles the boundary values of a neighbour patch field to the boundary
-    and internal values of *this.
+    This boundary condition maps the boundary values of a neighbour patch
+    field to the boundary and internal cell values of *this.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        fieldName    | name of field to be mapped | no       | this field name
+        setAverage   | flag to activate setting of average value | yes |
+        average      | average value to apply if \c setAverage = yes | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mappedFixedPushedInternalValue;
+        fieldName       T;
+        setAverage      no;
+        average         0;
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    This boundary condition can only be applied to patches that are of
+    the \c mappedPolyPatch type.
+
+SeeAlso
+    Foam::mappedPatchBase
+    Foam::mappedPolyPatch
+    Foam::mappedFvPatch
+    Foam::mappedFixedValueFvPatchField
 
 SourceFiles
     mappedFixedPushedInternalValueFvPatchField.C
@@ -44,7 +78,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-      Class mappedFixedPushedInternalValueFvPatchField Declaration
+        Class mappedFixedPushedInternalValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedValue/mappedFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedValue/mappedFixedValueFvPatchField.H
index d60ae3bc3ca88960b8dba13f230c8a55479fdde4..dd52f2a2b635b725368edc81cf7654ccdeab7485 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedValue/mappedFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedFixedValue/mappedFixedValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,27 +24,55 @@ License
 Class
     Foam::mappedFixedValueFvPatchField
 
-Description
-    Recycles the value at a set of cells or patch faces back to *this. Can not
-    sample internal faces (since volField not defined on faces).
-
-    mode = NEARESTCELL : sample nearest cell
-    mode = NEARESTPATCHFACE : sample nearest face on selected patch
-    mode = NEARESTFACE : sample nearest face on any patch. Note: does not
-           warn if nearest actually is on internal face!
-    mode = NEARESTPATCHFACEAMI : sample nearest face on selected patch
-           patches can be non-conformal - method uses AMI interpolation
-
-    For NEARESTCELL you have to provide an 'interpolationScheme' entry
-    which can be any one of the interpolation schemes (cell, cellPoint, etc.)
-    In case of interpolation (so scheme != cell) the limitation is that
-    there is only one value per cell. So e.g. if you have a cell with two
-    boundary faces and both faces sample into the cell both faces will get
-    the same value.
+Group
+    grpGenericBoundaryConditions grpCoupledBoundaryConditions
 
-    See mappedPatchBase for options on sampling.
-
-    Optional 'fieldName' entry to supply a different filename
+Description
+    This boundary condition maps the value at a set of cells or patch faces
+    back to *this.  
+
+    The sample mode is set by the underlying mapping engine, provided by the
+    mappedPatchBase class.
+    
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        fieldName    | name of field to be mapped | no       | this field name
+        setAverage   | flag to activate setting of average value | yes |
+        average      | average value to apply if \c setAverage = yes | yes |
+        interpolationScheme | type of interpolation scheme | no |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mapped;
+        fieldName       T;
+        setAverage      no;
+        average         0;
+        interpolationScheme cell;
+        value           uniform 0;
+    }
+    \endverbatim
+
+    When employing the \c nearestCell sample mode, the user must also specify
+    the interpolation scheme using the \c interpolationScheme entry.
+
+    In case of interpolation (where scheme != cell) the limitation is that
+    there is only one value per cell.  For example, if you have a cell with two
+    boundary faces and both faces sample into the cell, both faces will get the
+    same value.
+
+Note
+    It is not possible to sample internal faces since volume fields are not
+    defined on faces.
+
+SeeAlso
+    Foam::mappedPatchBase
+    Foam::interpolation
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     mappedFixedValueFvPatchField.C
@@ -63,7 +91,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                  Class mappedFixedValueFvPatch Declaration
+                Class mappedFixedValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedFlowRate/mappedFlowRateFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/mappedFlowRate/mappedFlowRateFvPatchVectorField.H
index 45c42233b6080169cef21034dc28adb092ef3e9e..cb06375c1045e8f838d20741d7a47459b668b881 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/mappedFlowRate/mappedFlowRateFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedFlowRate/mappedFlowRateFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,31 +24,39 @@ License
 Class
     Foam::mappedFlowRateFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions grpCoupledBoundaryConditions
+
 Description
     Describes a volumetric/mass flow normal vector boundary condition by its
     magnitude as an integral over its area.
 
-    The inlet mass flux is taken from the neighbor region.
-
-    phi is used to determine if the flow is compressible or incompressible.
+    The inlet mass flux is taken from the neighbour region.
 
     The basis of the patch (volumetric or mass) is determined by the
-    dimensions of the flux, phi.
-    The current density is used to correct the velocity when applying the
-    mass basis.
+    dimensions of the flux, phi.  The current density is used to correct the
+    velocity when applying the mass basis.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        neigPhi      | name of flux field on neighbour mesh | yes |
+    \endtable
 
     Example of the boundary condition specification:
-    @verbatim
-    inlet
+    \verbatim
+    myPatch
     {
         type            mappedFlowRate;
         phi             phi;
         rho             rho;
-        neigPhi         neigPhiName_;    // Volumetric/mass flow rate
-                                         // [m3/s or kg/s]
+        neigPhi         phi;
         value           uniform (0 0 0); // placeholder
     }
-    @endverbatim
+    \endverbatim
 
 SourceFiles
     mappedFlowRateFvPatchVectorField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/mappedVelocityFluxFixedValue/mappedVelocityFluxFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/mappedVelocityFluxFixedValue/mappedVelocityFluxFixedValueFvPatchField.H
index c1d40666ddb3cefa5eaa2d82e5a4e1adb91d51c4..409154eaffd5d0b68a1858c27cc63f7dbcd9a04d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/mappedVelocityFluxFixedValue/mappedVelocityFluxFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/mappedVelocityFluxFixedValue/mappedVelocityFluxFixedValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,12 +24,42 @@ License
 Class
     Foam::mappedVelocityFluxFixedValueFvPatchField
 
-Description
-    Recycles the velocity and flux at a patch to this patch
+Group
+    grpInletBoundaryConditions grpCoupledBoundaryConditions
 
-    mode = NEARESTPATCHFACE : sample nearest face on selected patch
-    mode = NEARESTFACE : sample nearest face on any patch. Note: does not
-                         warn if nearest actually is on internal face!
+Description
+    This boundary condition maps the velocity and flux from a neighbour patch
+    to this patch
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mappedVelocityFlux;
+        phi             phi;
+        value           uniform 0;  // place holder
+    }
+    \endverbatim
+
+    The underlying sample mode should be set to \c nearestPatchFace or
+    \c nearestFace
+
+Note
+    This boundary condition can only be applied to patches that are of
+    the \c mappedPolyPatch type.
+
+SeeAlso
+    Foam::mappedPatchBase
+    Foam::mappedPolyPatch
+    Foam::mappedFvPatch
+    Foam::fixedValueFvPatchVectorField
 
 SourceFiles
     mappedVelocityFluxFixedValueFvPatchField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H
index 6da73d51f19f9090317e2f728a5f4e3b37fd7883..be5b50e6f82a1198cb5e7b83a2862ec17cfba632 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,35 @@ License
 Class
     Foam::movingWallVelocityFvPatchVectorField
 
+Group
+    grpWallBoundaryConditions
+
 Description
-    Foam::movingWallVelocityFvPatchVectorField
+    This boundary condition provides a velocity condition for cases with
+    moving walls.  In addition, it should also be applied to 'moving' walls
+    for moving reference frame (MRF) calculations.
+
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | velociy field name      | no          | U
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            movingWallVelocity;
+        U               U;
+        value           uniform 0; // initial value
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchVectorField
+    Foam::MRFZone
 
 SourceFiles
     movingWallVelocityFvPatchVectorField.C
@@ -44,7 +71,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class movingWallVelocityFvPatch Declaration
+             Class movingWallVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class movingWallVelocityFvPatchVectorField
@@ -125,7 +152,6 @@ public:
         }
 
 
-
     // Member functions
 
         //- Update the coefficients associated with the patch field
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.C
index 644c8b161c06516a867f586e58ede435c1b28c46..89cf73e8ad7d4ea8de62c4958bc78d43b88ba647 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.C
@@ -41,7 +41,8 @@ multiphaseFixedFluxPressureFvPatchScalarField
     fixedGradientFvPatchScalarField(p, iF),
     phiHbyAName_("phiHbyA"),
     phiName_("phi"),
-    rhoName_("rho")
+    rhoName_("rho"),
+    DpName_("Dp")
 {}
 
 
@@ -57,7 +58,8 @@ multiphaseFixedFluxPressureFvPatchScalarField
     fixedGradientFvPatchScalarField(ptf, p, iF, mapper),
     phiHbyAName_(ptf.phiHbyAName_),
     phiName_(ptf.phiName_),
-    rhoName_(ptf.rhoName_)
+    rhoName_(ptf.rhoName_),
+    DpName_(ptf.DpName_)
 {}
 
 
@@ -72,7 +74,8 @@ multiphaseFixedFluxPressureFvPatchScalarField
     fixedGradientFvPatchScalarField(p, iF),
     phiHbyAName_(dict.lookupOrDefault<word>("phiHbyA", "phiHbyA")),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
-    rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    DpName_(dict.lookupOrDefault<word>("Dp", "Dp"))
 {
     if (dict.found("gradient"))
     {
@@ -91,27 +94,29 @@ multiphaseFixedFluxPressureFvPatchScalarField
 Foam::multiphaseFixedFluxPressureFvPatchScalarField::
 multiphaseFixedFluxPressureFvPatchScalarField
 (
-    const multiphaseFixedFluxPressureFvPatchScalarField& wbppsf
+    const multiphaseFixedFluxPressureFvPatchScalarField& mfppsf
 )
 :
-    fixedGradientFvPatchScalarField(wbppsf),
-    phiHbyAName_(wbppsf.phiHbyAName_),
-    phiName_(wbppsf.phiName_),
-    rhoName_(wbppsf.rhoName_)
+    fixedGradientFvPatchScalarField(mfppsf),
+    phiHbyAName_(mfppsf.phiHbyAName_),
+    phiName_(mfppsf.phiName_),
+    rhoName_(mfppsf.rhoName_),
+    DpName_(mfppsf.DpName_)
 {}
 
 
 Foam::multiphaseFixedFluxPressureFvPatchScalarField::
 multiphaseFixedFluxPressureFvPatchScalarField
 (
-    const multiphaseFixedFluxPressureFvPatchScalarField& wbppsf,
+    const multiphaseFixedFluxPressureFvPatchScalarField& mfppsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedGradientFvPatchScalarField(wbppsf, iF),
-    phiHbyAName_(wbppsf.phiHbyAName_),
-    phiName_(wbppsf.phiName_),
-    rhoName_(wbppsf.rhoName_)
+    fixedGradientFvPatchScalarField(mfppsf, iF),
+    phiHbyAName_(mfppsf.phiHbyAName_),
+    phiName_(mfppsf.phiName_),
+    rhoName_(mfppsf.rhoName_),
+    DpName_(mfppsf.DpName_)
 {}
 
 
@@ -155,7 +160,7 @@ void Foam::multiphaseFixedFluxPressureFvPatchScalarField::updateCoeffs()
     */
 
     const fvsPatchField<scalar>& Dpp =
-        patch().lookupPatchField<surfaceScalarField, scalar>("Dp");
+        patch().lookupPatchField<surfaceScalarField, scalar>(DpName_);
 
     gradient() = (phiHbyAp - phip)/patch().magSf()/Dpp;
 
@@ -172,6 +177,7 @@ void Foam::multiphaseFixedFluxPressureFvPatchScalarField::write
     writeEntryIfDifferent<word>(os, "phiHbyA", "phiHbyA", phiHbyAName_);
     writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
     writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "Dp", "Dp", DpName_);
     gradient().writeEntry("gradient", os);
     writeEntry("value", os);
 }
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.H
index 57f01d78e6fea9c60abeb0aa163e77383ceb4735..18b9698c0e1e70092fe0c0aedd116dad44e1b046 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/multiphaseFixedFluxPressure/multiphaseFixedFluxPressureFvPatchScalarField.H
@@ -24,15 +24,50 @@ License
 Class
     Foam::multiphaseFixedFluxPressureFvPatchScalarField
 
+Group
+    grpWallBoundaryConditions grpGenericBoundaryConditions
+
 Description
-    Adjusts the pressure gradient such that the flux on the boundary is that
-    specified by the velocity boundary condition.
+    This boundary condition adjusts the pressure gradient such that the flux
+    on the boundary is that specified by the velocity boundary condition.
 
     The predicted flux to be compensated by the pressure gradient is evaluated
-    as (phi - phiHbyA), both of which are looked-up from the database as is
-    the pressure diffusivity Dp used to calculate the gradient.
-
-    The names of the phi, phiHbyA and Dp fields may be optionally specified.
+    as \f$(\phi - \phi_{H/A})\f$, both of which are looked-up from the database,
+    as is the pressure diffusivity Dp used to calculate the gradient using:
+
+        \f[
+            \nabla(p) = \frac{\phi_{H/A} - \phi}{|Sf| Dp}
+        \f]
+
+    where
+
+    \vartable
+        \phi    | flux
+        Dp      | pressure diffusivity
+        Sf      | patch face areas [m2]
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phiHbyA      | name of predicted flux field | no | phiHbyA
+        phi          | name of flux field      | no |   phi
+        rho          | name of density field   | no |   rho
+        Dp           | name of pressure diffusivity field | no |   Dp
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            multiphaseFixedFluxPressure;
+        phiHbyA         phiHbyA;
+        phi             phi;
+        rho             rho;
+        Dp              Dp;
+    }
+    \endverbatim
 
 SourceFiles
     multiphaseFixedFluxPressureFvPatchScalarField.C
@@ -71,6 +106,9 @@ class multiphaseFixedFluxPressureFvPatchScalarField
         //  if neccessary
         word rhoName_;
 
+        //- Name of the pressure diffusivity field
+        word DpName_;
+
 
 public:
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H
index ba84bc1c262d7cfaac0885d448cb08e8650663ee..da45cdcb853e281b90a8a6d3ea5f978a51b7cd61 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,26 +24,58 @@ License
 Class
     Foam::oscillatingFixedValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Describes an oscillating boundary condition in terms of amplitude and
-    frequency.
+    This boundary condition provides an oscillating condition in terms of
+    amplitude and frequency.
+
+        /f[
+            x_p = (1 + a sin(\pi f t))x_{ref} + x_o
+        /f]
+
+    where
+
+    \vartable
+        x_p     | patch values
+        x_{ref} | patch reference values
+        x_o     | patch offset values
+        a       | amplitude
+        f       | frequency [1/s]
+        t       | time [s]
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        refValue     | reference value         | yes         |
+        offset       | offset value            | no          | 0.0
+        amplitude    | oscillation amplitude   | yes         |
+        frequency    | oscillation frequency   | yes         |
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-    inlet
+    myPatch
     {
         type            oscillatingFixedValue;
         refValue        uniform 5.0;
-        offset          0.0;                    // optional
+        offset          0.0;
         amplitude       constant 0.5;
         frequency       constant 10;
     }
     \endverbatim
 
+Note
     The amplitude and frequency entries are DataEntry types, able to describe
     time varying functions.  The example above gives the usage for supplying
     constant values.
 
+SeeAlso
+    Foam::DataEntry
+
 SourceFiles
     oscillatingFixedValueFvPatchField.C
 
@@ -62,7 +94,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                     Class oscillatingFixedValueFvPatch Declaration
+              Class oscillatingFixedValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/outletInlet/outletInletFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/outletInlet/outletInletFvPatchField.H
index 1002143fd18dfd492d5943397383e77f7227256b..d843815a5f44e2530b4694272f782ca515c4d2c4 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/outletInlet/outletInletFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/outletInlet/outletInletFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,39 @@ License
 Class
     Foam::outletInletFvPatchField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Foam::outletInletFvPatchField
+    This boundary condition provides a generic inflow condition, with
+    specified outflow for the case of return flow.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        inletValue   | inlet value             | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            outletInlet;
+        phi             phi;        // name of flux field (default = phi)
+        outletValue     uniform 0;  // reverse flow (inlet) value
+        value           uniform 0;  // initial value
+    }
+    \endverbatim
+
+    The mode of operation is determined by the sign of the flux across the
+    patch faces.
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply the user-specified fixed value
+    - negative flux (into of domain): apply zero-gradient condition
 
 SourceFiles
     outletInletFvPatchField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H
index c04b7e2f1794f34b173eb45dde30241e9eed26fb..059faeab0910d0ca327bce12e9c0d8f2e7a45f09 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,10 +24,35 @@ License
 Class
     Foam::outletMappedUniformInletFvPatchField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Averages the field over the "outlet" patch specified by name
-    "outletPatchName" and applies this as the uniform value of the field
-    over this patch.
+    This boundary conditon averages the field over the "outlet" patch specified
+    by name "outletPatchName" and applies this as the uniform value of the
+    field over this patch.
+
+    \heading Patch usage
+
+    \table
+        Property        | Description             | Required    | Default value
+        outletPatchName | name of outlet patch    | yes         |
+        phi             | flux field name         | no          | phi
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            outletMappedUniformInlet;
+        outletPatchName aPatch;
+        phi             phi;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     outletMappedUniformInletFvPatchField.C
@@ -45,7 +70,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-              Class outletMappedUniformInletFvPatch Declaration
+            Class outletMappedUniformInletFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H
index c3691434399d06c5189332e37339c22dfe7a67e4..b4fd5e7ce7f37e231110b8a192a5c5bf1a5c079b 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/partialSlip/partialSlipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,32 @@ License
 Class
     Foam::partialSlipFvPatchField
 
+Group
+    grpWallBoundaryConditions grpGenericBoundaryConditions
+
 Description
-    Foam::partialSlipFvPatchField
+    This boundary condition provides a partial slip condition.  The amount of
+    slip is controlled by a user-supplied field.
+
+    \heading Patch usage
+
+    \table
+        Property      | Description             | Required    | Default value
+        valueFraction | fraction od value used for boundary [0-1] | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            partialSlip;
+        valueFraction   uniform 0.1;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::transformFvPatchField
 
 SourceFiles
     partialSlipFvPatchField.C
@@ -43,7 +67,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                      Class partialSlipFvPatch Declaration
+                  Class partialSlipFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/phaseHydrostaticPressure/phaseHydrostaticPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/phaseHydrostaticPressure/phaseHydrostaticPressureFvPatchScalarField.H
index 4c14094f496ad1afaefe9c4d63273272eebf23ca..cb0c472da410539e7f7ed09348810a23de8c50dc 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/phaseHydrostaticPressure/phaseHydrostaticPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/phaseHydrostaticPressure/phaseHydrostaticPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,16 +24,55 @@ License
 Class
     Foam::phaseHydrostaticPressureFvPatchScalarField
 
-Description
-    Phase hydrostatic pressure boundary condition calculated as
-
-    pRefValue + rho*g.(x - pRefPoint)
+Group
+    grpGenericBoundaryConditions
 
-    where rho is provided and assumed uniform
-
-    applied according to the phase-fraction field provided:
-        1 -> fix value to that provided
-        0 -> zero-gradient
+Description
+    This boundary condition provides a phase-based hydrostatic pressure
+    condition, calculated as:
+
+        \f[
+            p_{hyd} = p_{ref} + \rho g (x - x_{ref})
+        \f]
+
+    where
+    \vartable
+        p_{hyd} | hyrostatic pressure [Pa]
+        p_{ref} | reference pressure [Pa]
+        x_{ref} | reference point in Cartesian co-ordinates
+        \rho    | density (assumed uniform)
+        g       | acceleration due to gravity [m/s2]
+    \endtable
+
+    The values are assigned according to the phase-fraction field:
+    - 1: apply \$fp_{hyd}\$f
+    - 0: apply a zero-gradient condition
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phaseName    | phase field name        | no          | alpha
+        rho          | density field name      | no          | rho
+        pRefValue    | reference pressure [Pa] | yes         |
+        pRefPoint    | reference pressure location | yes     |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            phaseHydrostaticPressure;
+        phaseName       alpha1;
+        rho             rho;
+        pRefValue       1e5;
+        pRefPoint       (0 0 0);
+        value           uniform 0; // optional initial value
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mixedFvPatchScalarField
 
 SourceFiles
     phaseHydrostaticPressureFvPatchScalarField.C
@@ -51,7 +90,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-              Class phaseHydrostaticPressureFvPatch Declaration
+         Class phaseHydrostaticPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class phaseHydrostaticPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletOutletVelocity/pressureDirectedInletOutletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletOutletVelocity/pressureDirectedInletOutletVelocityFvPatchVectorField.H
index d9f1a3e2a851e4389801353bbbf8f8763002f5b9..b6e24c73c7ba1bf0c607a493878a0c443ea370b4 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletOutletVelocity/pressureDirectedInletOutletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletOutletVelocity/pressureDirectedInletOutletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,44 @@ License
 Class
     Foam::pressureDirectedInletOutletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Velocity inlet/outlet boundary condition for pressure boundary where the
-    pressure is specified.  zero-gradient is applied for outflow (as defined
-    by the flux) and for inflow the velocity is obtained from the flux with
-    the specified `inletDirection'.
+    This velocity inlet/outlet boundary condition is applied to pressure
+    boundaries where the pressure is specified.  A zero-gradient condtion is
+    applied for outflow (as defined by the flux); for inflow, the velocity
+    is obtained from the flux with the specified inlet direction.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        inletDirection | inlet direction per patch face | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureDirectedInletOutletVelocity;
+        phi             phi;
+        rho             rho;
+        inletDirection  uniform (1 0 0);
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply zero-gradient condition
+    - negative flux (into of domain): derive from the flux with specified
+      direction
+
+SeeAlso
+    Foam::mixedFvPatchVectorField
 
 SourceFiles
     pressureDirectedInletOutletVelocityFvPatchVectorField.C
@@ -47,7 +80,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-          Class pressureDirectedInletOutletVelocityFvPatch Declaration
+    Class pressureDirectedInletOutletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class pressureDirectedInletOutletVelocityFvPatchVectorField
@@ -56,8 +89,13 @@ class pressureDirectedInletOutletVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Flux field name
         word phiName_;
+
+        //- Density field name
         word rhoName_;
+
+        //- Inlet direction
         vectorField inletDir_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.H
index b12dda34fba04e497970f02f06703499adcc6e19..c98ad304dad165baa2474d07606af357849222b9 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureDirectedInletVelocity/pressureDirectedInletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,12 +24,43 @@ License
 Class
     Foam::pressureDirectedInletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Velocity inlet boundary condition for patches where the pressure is
-    specified. The inflow velocity is obtained from the flux with the
-    specified "inletDirection" direction.  If reverse flow is possible or
-    expected use the "pressureDirectedInletOutletVelocityFvPatchVectorField"
-    BC instead.
+    This velocity inlet boundary condition is applied to patches where the
+    pressure is specified.  The inflow velocity is obtained from the flux with
+    the specified inlet direction" direction.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        inletDirection | inlet direction per patch face | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureDirectedInletVelocity;
+        phi             phi;
+        rho             rho;
+        inletDirection  uniform (1 0 0);
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    If reverse flow is possible or expected use the 
+    pressureDirectedInletOutletVelocityFvPatchVectorField condition instead.
+
+
+SeeAlso
+    Foam::fixedValueFvPatchField
+    Foam::pressureDirectedInletOutletVelocityFvPatchVectorField
 
 SourceFiles
     pressureDirectedInletVelocityFvPatchVectorField.C
@@ -48,7 +79,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class pressureDirectedInletVelocityFvPatch Declaration
+       Class pressureDirectedInletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class pressureDirectedInletVelocityFvPatchVectorField
@@ -57,8 +88,13 @@ class pressureDirectedInletVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Flux field name
         word phiName_;
+
+        //- Density field name
         word rhoName_;
+
+        //- Inlet direction
         vectorField inletDir_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletParSlipVelocity/pressureInletOutletParSlipVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletParSlipVelocity/pressureInletOutletParSlipVelocityFvPatchVectorField.H
index afab477fbc70b4d217f57089a0579f17a2f57cf4..f1f2f3a9d3325ad0bf989a056ec46999a0660756 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletParSlipVelocity/pressureInletOutletParSlipVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletParSlipVelocity/pressureInletOutletParSlipVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,13 +24,45 @@ License
 Class
     Foam::pressureInletOutletParSlipVelocityFvPatchVectorField
 
-Description
-    Velocity inlet/outlet boundary condition for pressure boundary where the
-    pressure is specified.  zero-gradient is applied for outflow (as defined
-    by the flux) and for inflow the velocity is obtained from the flux with
-    the specified `inletDirection'.
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
 
-    Slip condition applied tangential to the patch.
+Description
+    This velocity inlet/outlet boundary condition for pressure boundary where
+    the pressure is specified.  A zero-gradient is applied for outflow (as
+    defined by the flux); for inflow, the velocity is obtained from the flux
+    with the specified inlet direction.
+
+    A slip condition is applied tangential to the patch.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureInletOutletParSlipVelocity;
+        phi             phi;
+        rho             rho;
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply zero-gradient condition
+    - negative flux (into of domain): derive from the flux with specified
+      direction
+
+SeeAlso
+    Foam::mixedFvPatchVectorField
+    Foam::pressureDirectedInletOutletVelocityFvPatchVectorField
 
 SourceFiles
     pressureInletOutletParSlipVelocityFvPatchVectorField.C
@@ -58,7 +90,10 @@ class pressureInletOutletParSlipVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Flux field name
         word phiName_;
+
+        //- Density field name
         word rhoName_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletVelocity/pressureInletOutletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletVelocity/pressureInletOutletVelocityFvPatchVectorField.H
index 174142e5ec22b8327197ca0d97716eaed65fc68f..1ed301b191ea185db943a58de71215682d509370 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletVelocity/pressureInletOutletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletOutletVelocity/pressureInletOutletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,41 @@ License
 Class
     Foam::pressureInletOutletVelocityFvPatchVectorField
 
+Group
+    grpInletletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Velocity inlet/outlet boundary condition patches for where the pressure is
-    specified.  zero-gradient is applied for outflow (as defined by the flux)
-    and for inflow the velocity is obtained from the patch-face normal
-    component of the internal-cell value.
+    This velocity inlet/outlet boundary condition is applied to pressure
+    boundaries where the pressure is specified.  A zero-gradient condtion is
+    applied for outflow (as defined by the flux); for inflow, the velocity is
+    obtained from the patch-face normal component of the internal-cell value.
+
+    The tangential patch velocity can be optionally specified.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        tangentialVelocity | tangential velocity field | no  |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureInletOutletVelocity;
+        phi             phi;
+        tangentialVelocity uniform (0 0 0);
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply zero-gradient condition
+    - negative flux (into of domain): derive from the flux in the patch-normal
+      direction
 
 SourceFiles
     pressureInletOutletVelocityFvPatchVectorField.C
@@ -47,7 +77,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-              Class pressureInletOutletVelocityFvPatch Declaration
+       Class pressureInletOutletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class pressureInletOutletVelocityFvPatchVectorField
@@ -56,6 +86,7 @@ class pressureInletOutletVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Flux field name
         word phiName_;
 
         //- Optional tangential velocity component
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletUniformVelocity/pressureInletUniformVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletUniformVelocity/pressureInletUniformVelocityFvPatchVectorField.H
index 69c1d54c563ea9d84f84aa04489999252810e283..d22757c6725536bee2b23699cda87c3418f7fbfa 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletUniformVelocity/pressureInletUniformVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletUniformVelocity/pressureInletUniformVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,10 +24,25 @@ License
 Class
     Foam::pressureInletUniformVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Velocity inlet boundary condition for patches where the pressure is
-    specified. The uniform inflow velocity is obtained by averaging the flux
-    over the patch and apply it in the direction normal to the patch faces.
+    This velocity inlet boundary condition is applied to patches where the
+    pressure is specified.  The uniform inflow velocity is obtained by
+    averaging the flux over the patch, and then applying it in the direction
+    normal to the patch faces.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureInletUniformVelocity;
+        value           uniform 0;
+    }
+    \endverbatim
 
 SourceFiles
     pressureInletUniformVelocityFvPatchVectorField.C
@@ -45,7 +60,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-             Class pressureInletUniformVelocityFvPatch Declaration
+       Class pressureInletUniformVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class pressureInletUniformVelocityFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.H
index c50d53d590e5333e8df8aaf90292b584a268ca6f..12b7d8bec538d6baac09b14317e9d7c9f508bc80 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureInletVelocity/pressureInletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,34 @@ License
 Class
     Foam::pressureInletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Velocity inlet boundary condition for patches where the pressure is
-    specified. The inflow velocity is obtained from the flux with a direction
-    normal to the patch faces.  If reverse flow is possible or expected use
-    the "pressureInletOutletVelocityFvPatchVectorField" BC instead.
+    This velocity inlet boundary condition is applied to patches where the
+    pressure is specified.  The inflow velocity is obtained from the flux with
+    a direction normal to the patch faces.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureInletVelocity;
+        phi             phi;
+        rho             rho;
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    If reverse flow is possible or expected use
+    the pressureInletOutletVelocityFvPatchVectorField condition instead.
+
+SeeAlso
+    Foam::fixedValueFvPatchField
+    Foam::pressureInletOutletVelocityFvPatchVectorField
 
 SourceFiles
     pressureInletVelocityFvPatchVectorField.C
@@ -47,7 +70,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class pressureInletVelocityFvPatch Declaration
+           Class pressureInletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class pressureInletVelocityFvPatchVectorField
@@ -56,7 +79,10 @@ class pressureInletVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Flux field name
         word phiName_;
+
+        //- Density field name
         word rhoName_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/pressureNormalInletOutletVelocity/pressureNormalInletOutletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/pressureNormalInletOutletVelocity/pressureNormalInletOutletVelocityFvPatchVectorField.H
index 04351a477a332ccf25edd4c9d94e9288951d977f..c138b18f6959352e53be8b471aef6294a09317a2 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/pressureNormalInletOutletVelocity/pressureNormalInletOutletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/pressureNormalInletOutletVelocity/pressureNormalInletOutletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,42 @@ License
 Class
     Foam::pressureNormalInletOutletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Velocity inlet/outlet boundary condition for patches where the pressure is
-    specified.  zero-gradient is applied for outflow (as defined by the flux)
-    and for inflow the velocity is obtained from the flux with a direction
-    normal to the patch faces.
+    This velocity inlet/outlet boundary condition is applied to patches where
+    the pressure is specified.  A zero-gradient condition is applied for
+    outflow (as defined by the flux); for inflow, the velocity is obtained from
+    the flux with a direction normal to the patch faces.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            pressureNormalInletOutletVelocity;
+        phi             phi;
+        rho             rho;
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply zero-gradient condition
+    - negative flux (into of domain): derive from the flux and patch-normal
+      direction
+
+SeeAlso
+    Foam::mixedFvPatchVectorField
 
 SourceFiles
     pressureNormalInletOutletVelocityFvPatchVectorField.C
@@ -47,7 +78,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-          Class pressureNormalInletOutletVelocityFvPatch Declaration
+    Class pressureNormalInletOutletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class pressureNormalInletOutletVelocityFvPatchVectorField
@@ -56,7 +87,10 @@ class pressureNormalInletOutletVelocityFvPatchVectorField
 {
     // Private data
 
+        //- Flux field name
         word phiName_;
+
+        //- Density field name
         word rhoName_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/rotatingPressureInletOutletVelocity/rotatingPressureInletOutletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/rotatingPressureInletOutletVelocity/rotatingPressureInletOutletVelocityFvPatchVectorField.H
index 063585751876bca22fc4c63563017cbb6cf4bfd3..cc114d7c6b8110adc0eed599ae2abc17bc646b65 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/rotatingPressureInletOutletVelocity/rotatingPressureInletOutletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/rotatingPressureInletOutletVelocity/rotatingPressureInletOutletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,12 +24,47 @@ License
 Class
     Foam::rotatingPressureInletOutletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Velocity inlet/outlet boundary condition in a rotating frame
-    for patches where the pressure is specified.  zero-gradient is applied for
-    outflow (as defined by the flux) and for inflow the velocity is obtained
+    This velocity inlet/outlet boundary condition is applied to patches in a
+    rotating frame where the pressure is specified.  A zero-gradient is applied
+    for outflow (as defined by the flux); for inflow, the velocity is obtained
     from the flux with a direction normal to the patch faces.
 
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        tangentialVelocity | tangential velocity field | no  |
+        omega        | angular velocty of the frame [rad/s] | yes    | 
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            rotatingPressureInletOutletVelocity;
+        phi             phi;
+        tangentialVelocity uniform (0 0 0);
+        omega           100;        
+    }
+    \endverbatim
+
+    The \c omega entry is a DataEntry type, able to describe time varying
+    functions.
+
+Note
+    Sign conventions:
+    - positive flux (out of domain): apply zero-gradient condition
+    - negative flux (into of domain): derive from the flux in the patch-normal
+      direction
+
+SeeAlso
+    Foam::pressureInletOutletVelocityFvPatchVectorField
+
 SourceFiles
     rotatingPressureInletOutletVelocityFvPatchVectorField.C
 
@@ -48,7 +83,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-         Class rotatingPressureInletOutletVelocityFvPatch Declaration
+   Class rotatingPressureInletOutletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class rotatingPressureInletOutletVelocityFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/rotatingTotalPressure/rotatingTotalPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/rotatingTotalPressure/rotatingTotalPressureFvPatchScalarField.H
index 68e1d19c8fd029ade7445e1c28c0b5532e625517..22d806c3772d0db9eb0c2c97d7d36411e5cb8c85 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/rotatingTotalPressure/rotatingTotalPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/rotatingTotalPressure/rotatingTotalPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,46 @@ License
 Class
     Foam::rotatingTotalPressureFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Foam::rotatingTotalPressureFvPatchScalarField
+    This boundary condition provides a total pressure condition for patches
+    in a rotating frame.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | velocity field name     | no          | U
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | none
+        psi          | compressibility field name | no       | none
+        gamma        | ratio of specific heats (Cp/Cv) | yes |
+        p0           | static pressure reference | yes       |
+        omega        | angular velocty of the frame [rad/s] | yes    | 
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            rotatingTotalPressure;
+        U               U;
+        phi             phi;
+        rho             rho;
+        psi             psi;
+        gamma           1.4;
+        p0              uniform 1e5;
+        omega           100;        
+    }
+    \endverbatim
+
+    The \c omega entry is a DataEntry type, able to describe time varying
+    functions.
+
+SeeAlso
+    Foam::totalPressureFvPatchScalarField
 
 SourceFiles
     rotatingTotalPressureFvPatchScalarField.C
@@ -44,7 +82,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-               Class rotatingTotalPressureFvPatch Declaration
+           Class rotatingTotalPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class rotatingTotalPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.H
index 41f821c6d88a41f72126a5b54ade7408e82db07e..a3d5d5686e794324d4191bd3895a26fc61a78ef1 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,38 @@ License
 Class
     Foam::rotatingWallVelocityFvPatchVectorField
 
+Group
+    grpWallBoundaryConditions grpGenericBoundaryConditions
+
 Description
-    Foam::rotatingWallVelocityFvPatchVectorField
+    This boundary condition provides a rotational velocity condition.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        origin       | origin of rotation in Cartesian co-ordinates | yes|
+        axis         | axis of rotation        | yes         |
+        omega        | angular velocty of the frame [rad/s] | yes    | 
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            rotatingWallVelocity;
+        origin          (0 0 0);
+        axis            (0 0 1);
+        omega           100;
+    }
+    \endverbatim
+
+    The \c omega entry is a DataEntry type, able to describe time varying
+    functions.
+    
+SeeAlso
+    Foam::DataEntry
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     rotatingWallVelocityFvPatchVectorField.C
@@ -44,7 +74,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                Class rotatingWallVelocityFvPatch Declaration
+           Class rotatingWallVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class rotatingWallVelocityFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/slip/slipFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/slip/slipFvPatchField.H
index 19e740ad8d9ce9c033ef09ed7a0add11760c704c..ee50d198818461f4b774a8d3b53ab5d3003d4b12 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/slip/slipFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/slip/slipFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,21 @@ License
 Class
     Foam::slipFvPatchField
 
+Group
+    grpWallBoundaryConditions grpGenericBoundaryConditions
+
 Description
-    Foam::slipFvPatchField
+    This boundary condition provides a slip constraint.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            slip;
+    }
+    \endverbatim
 
 SourceFiles
     slipFvPatchField.C
@@ -43,7 +56,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class slipFvPatch Declaration
+                      Class slipFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H
index 2115ac392d1d10d6e1b5902997bd3d48b95e3e09..402fc365f34fd746309db74c192931938c140603 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/supersonicFreestream/supersonicFreestreamFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,18 +24,43 @@ License
 Class
     Foam::supersonicFreestreamFvPatchVectorField
 
-Description
-    Supersonic free stream condition.
-
-    Supersonic outflow is vented according to ???
-
-    Supersonic inflow is assumed to occur according to the Prandtl-Meyer
-    expansion process.
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
 
-    Subsonic outflow is zero-gradiented from inside the domain.
-
-    N.B. This boundary condition is ill-posed if the free-stream flow is
-         normal to the boundary.
+Description
+    This boundary condition provides a supersonic free-stream condition.
+
+    - supersonic outflow is vented according to ???
+    - supersonic inflow is assumed to occur according to the Prandtl-Meyer
+      expansion process.
+    - subsonic outflow is applied via a zero-gradient condition from inside
+      the domain.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        UInf         | free-stream velocity    | yes         |
+        pInf         | free-stream pressure    | yes         |
+        TInf         | free-stream temperature | yes         |
+        gamma        | heat capacity ratio (cp/Cv) | yes     | 
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            supersonicFreestream;
+        UInf            500;
+        pInf            1e4;
+        TInf            265;
+        gamma           1.4;
+    }
+    \endverbatim
+
+Note
+    This boundary condition is ill-posed if the free-stream flow is normal
+    to the boundary.
 
 SourceFiles
     supersonicFreestreamFvPatchVectorField.C
@@ -54,7 +79,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class supersonicFreestreamFvPatch Declaration
+           Class supersonicFreestreamFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class supersonicFreestreamFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.H
index 465d875c68e2cb7f4ddcd9133a5af1f61435fc7c..e0068654fd04922c54584f6127e7b2730bd9ea59 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,35 @@ License
 Class
     Foam::surfaceNormalFixedValueFvPatchVectorField
 
+Group
+    grpGenericBoundaryConditions grpInletBoundaryConditions
+
 Description
-    Describes a surface normal vector boundary condition by its magnitude.
-    Note: The value is positive for outward-pointing vectors
+    This boundary condition provides a surface-normal vector boundary condition
+    by its magnitude.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        refValue     | reference value         | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            surfaceNormalFixedValue;
+        refValue        -10;           // 10 INTO the domain
+    }
+    \endverbatim
+
+Note
+    Sign conventions:
+    - the value is positive for outward-pointing vectors
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     surfaceNormalFixedValueFvPatchVectorField.C
@@ -45,7 +71,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class surfaceNormalFixedValueFvPatch Declaration
+          Class surfaceNormalFixedValueFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class surfaceNormalFixedValueFvPatchVectorField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/swirlFlowRateInletVelocity/swirlFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/swirlFlowRateInletVelocity/swirlFlowRateInletVelocityFvPatchVectorField.H
index ef2ea8b9c97006fda3c7f63235033c01790091a2..a53dd0ca12b4213ef72f37f7798e9766279b7b44 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/swirlFlowRateInletVelocity/swirlFlowRateInletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/swirlFlowRateInletVelocity/swirlFlowRateInletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,32 +24,47 @@ License
 Class
     Foam::swirlFlowRateInletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Describes a volumetric/mass flow normal vector boundary condition by its
-    magnitude as an integral over its area with a swirl component determined
-    by the RPM
+    This boundary condition provides a volumetric- OR mass-flow normal vector
+    boundary condition by its magnitude as an integral over its area with a
+    swirl component determined by the angular speed, given in revolutions per
+    minute (RPM)
 
     The basis of the patch (volumetric or mass) is determined by the
-    dimensions of the flux, phi.
-    The current density is used to correct the velocity when applying the
-    mass basis.
+    dimensions of the flux, phi. The current density is used to correct the
+    velocity when applying the mass basis.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        flowRate     | flow rate profile       | yes         |
+        rpm          | rotational speed profile | yes        |
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-    inlet
+    myPatch
     {
         type            swirlFlowRateInletVelocity;
-        flowRate        constant 0.2;      // Vol/mass flow rate [m3/s or kg/s]
+        flowRate        constant 0.2;
         rpm             constant 100;
     }
     \endverbatim
 
-    The flowRate and rpm entries are DataEntry types, able to describe time
-    varying functions.  The example above gives the usage for supplying
-    constant values.
-
 Note
-    - The value is positive inwards
+    - the \c flowRate and \c rpm entries are DataEntry types, able to describe
+      time varying functions.  The example above gives the usage for supplying
+      constant values.
+    - the value is positive into the domain
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     swirlFlowRateInletVelocityFvPatchVectorField.C
@@ -67,7 +82,7 @@ SourceFiles
 namespace Foam
 {
 /*---------------------------------------------------------------------------*\
-       Class swirlFlowRateInletVelocityFvPatchVectorField Declaration
+        Class swirlFlowRateInletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class swirlFlowRateInletVelocityFvPatchVectorField
@@ -85,7 +100,7 @@ class swirlFlowRateInletVelocityFvPatchVectorField
         //- Inlet integral flow rate
         autoPtr<DataEntry<scalar> > flowRate_;
 
-        //- RPM
+        //- Angular speed in revolutions per minute (RPM)
         autoPtr<DataEntry<scalar> > rpm_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.H
index aa2bec48af386146988ec6e6d1cae110e410649b..c4dc0a1e4ff55483fccb384f6d9ed309862faccb 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/syringePressure/syringePressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,12 @@ License
 Class
     Foam::syringePressureFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Pressure boundary condition obtained from a 0-D model of the cylinder
-    of a syringe.
+    This boundary condition provides a pressure condition, obtained from a
+    zero-D model of the cylinder of a syringe.
 
     The syringe cylinder is defined by its initial volume, piston area and
     velocity profile specified by regions of constant acceleration, speed
@@ -34,25 +37,44 @@ Description
     pressure and compressibility which is assumed constant, i.e. isothermal
     expansion/compression.
 
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Ap           | syringe piston area [m2] | yes        |
+        Sp           | syringe piston speed [m/s] | yes      |
+        VsI          | initial syringe volume [m3] | yes     |
+        tas          | start of piston acceleration [s] | yes |
+        tae          | end of piston acceleration [s] | yes  |
+        tds          | start of piston deceleration [s] | yes |
+        tde          | end of piston deceleration [s] | yes  |
+        psI          | initial syringe pressure [Pa] | yes   |
+        psi          | gas compressibility [m2/s2] | yes     |
+        ams          | added (or removed) gas mass [kg] | yes |
+    \endtable
+
     Example of the BC specification:
     \verbatim
-        outlet
-        {
-            type            syringePressure;
-            Ap              1.388e-6; // syringe piston area
-            Sp              0.01;     // syringe piston speed
-            VsI             1.388e-8; // Initial syringe volume
-            tas             0.001;    // Start of piston acceleration
-            tae             0.002;    // End of piston acceleration
-            tds             0.005;    // Start of piston deceleration
-            tde             0.006;    // end of piston deceleration
-            psI             1e5;      // Initial syringe pressure
-            psi             1e-5;     // Gas compressibility
-            ams             0;        // Added (or removed) gas mass
-                                      // Initially 0 but used for restarting.
-        }
+    myPatch
+    {
+        type            syringePressure;
+        Ap              1.388e-6;
+        Sp              0.01;
+        VsI             1.388e-8;
+        tas             0.001;
+        tae             0.002;
+        tds             0.005;
+        tde             0.006;
+        psI             1e5;
+        psi             1e-5;
+        ams             0;
+        value           uniform 0;
+    }
     \endverbatim
 
+SeeAlso
+    Foam::fixedValueFvPatchField
+
 SourceFiles
     syringePressureFvPatchScalarField.C
 
@@ -69,7 +91,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class syringePressureFvPatch Declaration
+             Class syringePressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class syringePressureFvPatchScalarField
@@ -115,7 +137,9 @@ class syringePressureFvPatchScalarField
         label curTimeIndex_;
 
 
-        //- return the volume of the syringe at time t
+    // Private Functions
+
+        //- Return the volume of the syringe at time t
         scalar Vs(const scalar t) const;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/temperatureJump/temperatureJumpFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/temperatureJump/temperatureJumpFvPatchScalarField.H
index 55364eac5d23dd54cdd62af3c6b8494fda4a5635..0663a1cb86745144c31881f95d2629d0f130c169 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/temperatureJump/temperatureJumpFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/temperatureJump/temperatureJumpFvPatchScalarField.H
@@ -24,15 +24,43 @@ License
 Class
     Foam::temperatureJumpFvPatchScalarField
 
+Group
+    grpCoupledBoundaryConditions
+
 Description
-    Introduce a jump in temperature on a cycle patch
-    front
+    This boundary condition provides a temperature jump condition across a
+    coupled pair of cyclic patches.
+
+    The jump is specified as a \c DataEntry type, to enable the use of, e.g.
+    contant, polynomial, table values.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        patchType    | underlying patch type should be \c cyclic| yes |
+        jump         | current jump value      | yes         |
+        jumpTable    | jump data, e.g. \c csvFile | yes      |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
     {
         type            temperatureJump;
         patchType       cyclic;
         jumpTable       constant 100;
         value           uniform 300;
     }
+    \endverbatim
+
+    The above example shows the use of a constant jump condition.
+
+Note
+     The underlying \c patchType should be set to \c cyclic
+
+SeeAlso
+    Foam::fixedJumpFvPatchField
 
 SourceFiles
     temperatureJumpFvPatchScalarField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.H
index 82525ec49a090a37755530d52daa31b15a1fe673..61228fe07c4b06db225843de425bcda10710335a 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.H
@@ -24,39 +24,50 @@ License
 Class
     Foam::timeVaryingMappedFixedValueFvPatchField
 
-Description
-    Foam::timeVaryingMappedFixedValueFvPatchField
-
-    Interpolates from a set of supplied points in space and time. Supplied
-    data in constant/boundaryData/<patchname>:
-        - points : pointField with locations
-        - ddd    : supplied values at time ddd
-    Points need to be more or less on a plane since get triangulated in 2D.
-
-    At startup this bc does the triangulation and determines linear
-    interpolation (triangle it is in and weights to the 3 vertices)
-    for every face centre. Interpolates linearly inbetween times.
-
-    @verbatim
-        inlet
-        {
-            type            timeVaryingMappedFixedValue;
-
-            // Maintain average to that of the supplied values
-            setAverage      false;
-
-            // Optional: change perturbation (default 1e-5) to avoid any ties
-            // in triangulating regular geometries.
-            //perturb       0.0;
-
-            // Optional: use name instead of patchname for location of data
-            //fieldTableName samples;
-        }
-    @endverbatim
+Group
+    grpInletBoundaryConditions grpCoupledBoundaryConditions
 
+Description
+    This boundary conditions interpolates the values from a set of supplied
+    points in space and time.  Supplied data should be specified in
+    constant/boundaryData/\<patchname\> where:
+    - points : pointField with locations
+    - ddd    : supplied values at time ddd
+    The points should be more or less on a plane since they get triangulated
+    in 2-D.
+
+    At startup, this condition generates the triangulation and performs a
+    linear interpolation (triangle it is in and weights to the 3 vertices)
+    for every face centre.
+
+    Values are interpolated linearly between times.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        setAverage   | flag to activate setting of average value | yes |
+        perturb      | perturb points for regular geometries | no | 1e-5
+        fieldTableName | alternative field name to sample | no| this field name
+    \endtable
+
+    /verbatim
+    myPatch
+    {
+        type            timeVaryingMappedFixedValue;
+        setAverage      false;
+        //perturb       0.0;
+        //fieldTableName samples;
+    }
+    /endverbatim
+
+Note
     Switch on debug flag to have it dump the triangulation (in transformed
     space) and transform face centres.
 
+SeeAlso
+    Foam::fixedValueFvPatchField
+
 SourceFiles
     timeVaryingMappedFixedValueFvPatchField.C
 
@@ -76,7 +87,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-              Class timeVaryingMappedFixedValueFvPatch Declaration
+          Class timeVaryingMappedFixedValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
@@ -119,6 +130,7 @@ class timeVaryingMappedFixedValueFvPatchField
         //- If setAverage: end average value
         Type endAverage_;
 
+
 public:
 
     //- Runtime type information
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.H
index c95f15771c2598b5d57e3c5523ea9a26f813fefe..05bd6b180045533d77f4109d60599fa18a56021d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/totalPressure/totalPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,102 @@ License
 Class
     Foam::totalPressureFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Foam::totalPressureFvPatchScalarField
+    This boundary condition provides a total pressure condition.  Four
+    variants are possible:
+
+    1. incompressible subsonic:
+        \f[
+            p_T = p_0 + 0.5 |U|^2
+        \f]
+        where
+        \vartable
+            p_T     | incompressible total pressure [m2/s2]
+            p_0     | incompressible reference pressure [m2/s2]
+            U       | velocity
+        \endvartable
+
+    2. compressible subsonic:
+        \f[
+            p_T = p_0 + 0.5 \rho |U|^2
+        \f]
+        where
+        \vartable
+            p_T     | total pressure [Pa]
+            p_0     | reference pressure [Pa]
+            \rho    | density [kg/m3]
+            U       | velocity
+        \endvartable
+
+    3. compressible transonic (\gamma <= 1):
+        \f[
+            p_T = \frac{p_0}{1 + 0.5 \psi |U|^2}
+        \f]
+        where
+        \vartable
+            p_T     | total pressure [Pa]
+            p_0     | reference pressure [Pa]
+            G       | coefficient given by \f$\frac{\gamma}{1-\gamma}\f$
+        \endvartable
+
+    4. compressible supersonic (\gamma > 1):
+        \f[
+            p_T = \frac{p_0}{(1 + 0.5 \psi G)^{\frac{1}{G}}}
+        \f]
+        where
+        \vartable
+            \gamma  | ratio of specific heats (Cp/Cv)
+            p_T     | total pressure [Pa]
+            p_0     | reference pressure [Pa]
+            \psi    | compressibility [m2/s2]
+            G       | coefficient given by \f$\frac{\gamma}{1-\gamma}\f$
+        \endvartable
+
+    The modes of operation are set via the combination of \c phi, \c rho, and
+    \c psi entries:
+    \table
+        Mode                    | phi   | rho   | psi
+        incompressible subsonic | phi   | none  | none
+        compressible subsonic   | phi   | rho   | none
+        compressible transonic  | phi   | none  | psi
+        compressible supersonic | phi   | none  | psi
+    \endtable
+
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | velocity field name     | no          | U
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | none
+        psi          | compressibility field name | no       | none
+        gamma        | ratio of specific heats (Cp/Cv) | yes |
+        p0           | static pressure reference | yes       |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            totalPressure;
+        U               U;
+        phi             phi;
+        rho             none;
+        psi             none;
+        gamma           1.4;
+        p0              uniform 1e5;
+    }
+    \endverbatim
+
+Note
+    The default boundary behaviour is for subsonic, incompressible flow.
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     totalPressureFvPatchScalarField.C
@@ -43,7 +137,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class totalPressureFvPatch Declaration
+              Class totalPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class totalPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H
index 7f6137709b98b2ca044a666b260ef4439bcd3020..d793696ade806c95a64d5c51c68eb10b85da952b 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/totalTemperature/totalTemperatureFvPatchScalarField.H
@@ -24,12 +24,38 @@ License
 Class
     Foam::totalTemperatureFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
+
 Description
-    Foam::totalTemperatureFvPatchScalarField
+    This boundary condition provides a total temperature condition.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | Velocity field name     | no          | U
+        phi          | Flux field name         | no          | phi
+        psi          | Compressibility field name | no       | psi
+        gamma        | ratio of specific heats (Cp/Cv) | yes |
+        T0           | reference temperature   | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            totalTemperature;
+        T0              uniform 300;
+    }
+    \endverbatim
 
 SourceFiles
     totalTemperatureFvPatchScalarField.C
 
+SeeAlso
+    Foam::fixedValueFvPatchField
+
 \*---------------------------------------------------------------------------*/
 
 #ifndef totalTemperatureFvPatchScalarField_H
@@ -43,7 +69,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class totalTemperatureFvPatch Declaration
+             Class totalTemperatureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class totalTemperatureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H
index e19d1265e77491e803990d8fee31203d674c61ab..c6e9c70b88b0bd2a79706387096264e55b8d1fd5 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,32 @@ License
 Class
     Foam::translatingWallVelocityFvPatchVectorField
 
+Group
+    grpWallBoundaryConditions grpGenericBoundaryConditions
+
 Description
-    Foam::translatingWallVelocityFvPatchVectorField
+    This boundary condition provides a velocity condition for translational
+    motion on walls.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | translational velocity  | yes|
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            translatingWallVelocity;
+        U               (100 0 0);
+    }
+    \endverbatim
+
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     translatingWallVelocityFvPatchVectorField.C
@@ -43,7 +67,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-           Class translatingWallVelocityFvPatchField Declaration
+            Class translatingWallVelocityFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 class translatingWallVelocityFvPatchVectorField
@@ -52,7 +76,7 @@ class translatingWallVelocityFvPatchVectorField
 {
     // Private data
 
-        //- Origin of the rotation
+        //- Translational velocity
         vector U_;
 
 
@@ -124,7 +148,6 @@ public:
         }
 
 
-
     // Member functions
 
         // Access functions
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H
index a7b3272c1367b4480e2fe54dcf2cd9eb40dd71f1..3917d167bd42369234baf356e4082f9187ff2632 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.H
@@ -24,18 +24,50 @@ License
 Class
     Foam::turbulentInletFvPatchField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Generate a fluctuating inlet condition by adding a random component
-    to a reference (mean) field.
-    Input:
-        referenceField
-            Mean field.
-        fluctuationScale
-            RMS fluctuation, provided as the fraction of the mean field.
-        alpha
-            temporal correlation factor;
-            the fraction of the new random component added to the previous
-            time-step (defaults to 0.1).
+    This boundary condition generates a fluctuating inlet condition by adding
+    a random component to a reference (mean) field.
+
+    \f[
+        x_p = (1 - \alpha) x_p^{n-1} + \alpha (x_{ref} + s C_{RMS} x_{ref})
+    \f]
+
+    where
+
+    \vartable
+        x_p     | patch values
+        x_{ref} | refernce patch values
+        n       | time level
+        \alpha  | fraction of new random component added to previous time value
+        C_{RMS} | RMS coefficient
+        s       | fluctuation scale
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        fluctuationScale | RMS fluctuation scale (fraction of mean) | yes |
+        referenceField | reference (mean) field | yes        |
+        alpha | fraction of new random component added to previous| no| 0.1
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            turbulentInlet;
+        fluctuationScale 0.1;
+        referenceField  uniform 10;
+        alpha           0.1;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     turbulentInletFvPatchField.C
@@ -54,7 +86,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                     Class turbulentInletFvPatch Declaration
+                 Class turbulentInletFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
@@ -64,10 +96,19 @@ class turbulentInletFvPatchField
 {
     // Private data
 
+        //- Random number generator
         Random ranGen_;
+
+        //- Fluctuation scake
         Type fluctuationScale_;
+
+        //- Reference field
         Field<Type> referenceField_;
+
+        //- Fraction of RMS component to apply to last time step values
         scalar alpha_;
+
+        //- Current time index (used for updating)
         label curTimeIndex_;
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.C
index 7d650f6eb7feea6f535e0efc03fd8315fc066f43..7689d3d76343a1fca34c824939d84fe0c90efcfc 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,8 +40,8 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
 :
     inletOutletFvPatchScalarField(p, iF),
     intensity_(0.0),
-    UName_("undefined-U"),
-    phiName_("undefined-phi")
+    UName_("U"),
+    phiName_("phi")
 {
     this->refValue() = 0.0;
     this->refGrad() = 0.0;
@@ -82,12 +82,15 @@ turbulentIntensityKineticEnergyInletFvPatchScalarField
         (
             "turbulentIntensityKineticEnergyInletFvPatchScalarField::"
             "turbulentIntensityKineticEnergyInletFvPatchScalarField"
-            "(const fvPatch& p, const DimensionedField<scalar, volMesh>& iF, "
-            "const dictionary& dict)"
+            "("
+                "const fvPatch&, "
+                "const DimensionedField<scalar, volMesh>&, "
+                "const dictionary&"
+            ")"
         )   << "Turbulence intensity should be specified as a fraction 0-1 "
                "of the mean velocity\n"
-               "    value given is " << intensity_
-            << "\n    on patch " << this->patch().name()
+               "    value given is " << intensity_ << nl
+            << "    on patch " << this->patch().name()
             << " of field " << this->dimensionedInternalField().name()
             << " in file " << this->dimensionedInternalField().objectPath()
             << exit(FatalError);
@@ -157,8 +160,8 @@ void Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField::write
 {
     fvPatchScalarField::write(os);
     os.writeKeyword("intensity") << intensity_ << token::END_STATEMENT << nl;
-    os.writeKeyword("U") << UName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl;
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
     writeEntry("value", os);
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.H
index 1663364d104127db33d10ff8ac4cf08b9491699d..b2d1f2123e6bb1b73e5ce873572193fe5fbfccae 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentIntensityKineticEnergyInlet/turbulentIntensityKineticEnergyInletFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,20 +24,50 @@ License
 Class
     Foam::turbulentIntensityKineticEnergyInletFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Calculate turbulent kinetic energy from the intensity provided as a
-    fraction of the mean velocity
+    This boundary condition provides a turbulent kinetic energy condition,
+    based on user-supplied turbulence intensity, defined as a fraction of the
+    mean velocity:
+
+        \f[
+            k_p = 1.5 I |U|^2
+        \f]
+
+    where
+
+    \vartable
+        k_p     | kinetic energy at the patch
+        I       | turbulence intensity
+        U       | velocity field
+    \endvartable
+
+    In the event of reverse flow, a zero-gradient condition is applied.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        intensity    | fraction of mean field [0-1] | yes    |
+        U            | velocity field name     | no          | U
+        phi          | flux field name         | no          | phi
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type        turbulentIntensityKineticEnergyInlet;
-            intensity   0.05;           // 5% turbulence
-            value       uniform 1;      // placeholder
-        }
+    myPatch
+    {
+        type        turbulentIntensityKineticEnergyInlet;
+        intensity   0.05;           // 5% turbulence
+        value       uniform 1;      // placeholder
+    }
     \endverbatim
 
+SeeAlso
+    Foam::inletOutletFvPatchField
+
 SourceFiles
     turbulentIntensityKineticEnergyInletFvPatchScalarField.C
 
@@ -54,7 +84,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-          Class turbulentIntensityKineticEnergyInletFvPatch Declaration
+   Class turbulentIntensityKineticEnergyInletFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class turbulentIntensityKineticEnergyInletFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.H
index b199d3e8ebf7c5f909491f6efd9833b8a0faff4e..ff3c925863c05f6b27af436a3d2f88de518e41e3 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformDensityHydrostaticPressure/uniformDensityHydrostaticPressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,12 +24,46 @@ License
 Class
     Foam::uniformDensityHydrostaticPressureFvPatchScalarField
 
-Description
-    Hydrostatic pressure boundary condition calculated as
-
-    pRefValue + rho*g.(x - pRefPoint)
+Group
+    grpGenericBoundaryConditions
 
-    where rho is provided and assumed uniform.
+Description
+    This boundary condition provides a hydrostatic pressure condition,
+    calculated as:
+
+        \f[
+            p_{hyd} = p_{ref} + \rho g (x - x_{ref})
+        \f]
+
+    where
+    \vartable
+        p_{hyd} | hyrostatic pressure [Pa]
+        p_{ref} | reference pressure [Pa]
+        x_{ref} | reference point in Cartesian co-ordinates
+        \rho    | density (assumed uniform)
+        g       | acceleration due to gravity [m/s2]
+    \endtable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        rho          | uniform density [kg/m3] | yes         |
+        pRefValue    | reference pressure [Pa] | yes         |
+        pRefPoint    | reference pressure location | yes     |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            uniformDensityHydrostaticPressure;
+        rho             rho;
+        pRefValue       1e5;
+        pRefPoint       (0 0 0);
+        value           uniform 0; // optional initial value
+    }
+    \endverbatim
 
 SourceFiles
     uniformDensityHydrostaticPressureFvPatchScalarField.C
@@ -47,7 +81,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-          Class uniformDensityHydrostaticPressureFvPatch Declaration
+     Class uniformDensityHydrostaticPressureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class uniformDensityHydrostaticPressureFvPatchScalarField
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.H
index cd6445babffae68fa7140b64ccfd551bbb629cdf..072d02f1b6d94024a54ad85618a1c241cb059e6b 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformFixedValue/uniformFixedValueFvPatchField.H
@@ -24,22 +24,36 @@ License
 Class
     Foam::uniformFixedValueFvPatchField
 
+Group
+    grpGenericBoundaryConditions
+
 Description
-    Enables the specification of a uniform fixed value boundary condition.
+    This boundary condition provides a uniform fixed value condition.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        uniformValue | uniform value           |         yes |
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-    inlet
+    myPatch
     {
         type            uniformFixedValue;
         uniformValue    constant 0.2;
     }
     \endverbatim
 
+Note
     The uniformValue entry is a DataEntry type, able to describe time
     varying functions.  The example above gives the usage for supplying a
     constant value.
 
+SeeAlso
+    Foam::DataEntry
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     uniformFixedValueFvPatchField.C
@@ -58,7 +72,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class uniformFixedValueFvPatch Declaration
+                Class uniformFixedValueFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.H
index 325ed6e47191b8b74c9407c23ac6e663c47249fa..b5888fdf861ad46a56a987c3e6eaa0e065993e3e 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/uniformTotalPressure/uniformTotalPressureFvPatchScalarField.H
@@ -24,13 +24,50 @@ License
 Class
     Foam::uniformTotalPressureFvPatchScalarField
 
-Description
-    A time-varying form of a uniform total pressure boundary condition. The
-    variation is specified as an DataEntry (see Foam::DataEntry).
+Group
+    grpInletBoundaryConditions grpOutletBoundaryConditions
 
-See Also
-    Foam::uniformFixedValueFvPatchField.H
-    and Foam::totalPressureFvPatchScalarField.H
+Description
+    This boundary condition provides a time-varying form of the uniform total
+    pressure boundary condition.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        U            | velocity field name     | no          | U
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | none
+        psi          | compressibility field name | no       | none
+        gamma        | ratio of specific heats (Cp/Cv) | yes |
+        pressure     | total pressure as a function of time | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            uniformTotalPressure;
+        U               U;
+        phi             phi;
+        rho             rho;
+        psi             psi;
+        gamma           1.4;
+        pressure        uniform 1e5;
+    }
+    \endverbatim
+
+    The \c pressure entry is specified as a DataEntry type, able to describe
+    time varying functions.
+
+Note
+    The default boundary behaviour is for subsonic, incompressible flow.
+
+
+SeeAlso
+    Foam::DataEntry
+    Foam::uniformFixedValueFvPatchField
+    Foam::totalPressureFvPatchField
 
 SourceFiles
     uniformTotalPressureFvPatchScalarField.C
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H
index 51e8c878990995df0b653b7ef27e012fc4983bc3..858dd6c1cef46d044bc852d318cc56135f79b72f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRate/variableHeightFlowRateFvPatchField.H
@@ -24,25 +24,42 @@ License
 Class
     Foam::variableHeightFlowRateFvPatchScalarField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    This boundary condition uses zeroGradient within a specified range of
-    values for phase fraction alpha. The range is defined within the
-    boundary condition by the lowerBound and upperBound.
+    This boundary condition provides a phase fraction condition based on the
+    local flow conditions, whereby the values are constrained to lay between
+    user-specified upper and lower bounds.  The behaviour is described by:
 
-    alpha > upperBound: fixedValue with uniform value of upperBound
-    lowerBound <= alpha <= upperBound: zeroGradient
-    alpha < lowerBound: fixedValue with uniform value of lowerBound
+    if alpha > upperBound:
+    - apply a fixed value condition, with a uniform level of the upper bound
 
-    Example:
-    \verbatim
-        inlet
-        {
-            type            clippedZeroGradient;
-            lowerBound      0.0;
-            upperBound      0.9;
-            value           uniform 0;
-        }
+    if lower bound <= alpha <= upper bound:
+    - apply a  zero-gradient condition
+
+    if alpha < lowerBound:
+    - apply a fixed value condition, with a uniform level of the lower bound
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        lowerBound   | lower bound for clipping | yes        |
+        upperBound   | upper bound for clipping | yes        |
+    \endtable
+
+    Example of the boundary condition specification:
     \verbatim
+    myPatch
+    {
+        type            variableHeightFlowRate;
+        lowerBound      0.0;
+        upperBound      0.9;
+        value           uniform 0;
+    }
+    \endverbatim
 
 SourceFiles
     variableHeightFlowRateFvPatchScalarField.C
@@ -60,7 +77,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                     Class variableHeightFlowRateFvPatchScalar Declaration
+          Class variableHeightFlowRateFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class variableHeightFlowRateFvPatchScalarField
@@ -81,6 +98,7 @@ protected:
         //- Upper bound for alpha1
         scalar upperBound_;
 
+
 public:
 
     //- Runtime scalar information
@@ -156,10 +174,6 @@ public:
 
         //- Write
         virtual void write(Ostream&) const;
-
-
-    // Member operators
-
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C
index b33bbc65f13dfa1c40d05edf88e85bee586c7a6c..9b0a6694e7ad9aba9048e02b9618e3acc43ca74a 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.C
@@ -121,8 +121,10 @@ void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
 }
 
 
-void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
-::write(Ostream& os) const
+void Foam::variableHeightFlowRateInletVelocityFvPatchVectorField::write
+(
+    Ostream& os
+) const
 {
     fvPatchField<vector>::write(os);
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H
index d1bc1ac62f74b43f7fd245d6d5cc38b7483ef651..10e6a2c88993741da7567025b845de155dcc2247 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/variableHeightFlowRateInletVelocity/variableHeightFlowRateInletVelocityFvPatchVectorField.H
@@ -2,16 +2,16 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-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 2 of the License, or (at your
-    option) any later version.
+    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
@@ -19,38 +19,46 @@ License
     for more details.
 
     You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
     Foam::variableHeightFlowRateInletVelocityFvPatchVectorField
 
+Group
+    grpInletBoundaryConditions
+
 Description
-    Describes a volumetric/mass flow normal vector boundary condition by its
-    magnitude as an integral over its area.
+    This boundary condition provides a velocity boundary condition for
+    multphase flow based on a user-specified volumetric flow rate.
+
+    The flow rate is made proportional to the phase fraction alpha at each
+    face of the patch and alpha is ensured to be bound between 0 and 1.
 
-    The basis of the patch (volumetric or mass) is determined by the
-    dimensions of the flux, phi.
-    The current density is used to correct the velocity when applying the
-    mass basis.
+    \heading Patch usage
 
-    The flow rate is made proportional to the phase fraction alpha at each face
-    of the patch and alpha is ensured to be bound between 0 and 1.
+    \table
+        Property     | Description             | Required    | Default value
+        flowRate     | volumetric flow rate [m3/s] | yes |
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-    inlet
+    myPatch
     {
         type            variableHeightFlowRateInletVelocity;
-        flowRate        0.2;        // Volumetric/mass flow rate [m3/s or kg/s]
+        flowRate        0.2;
         value           uniform (0 0 0); // placeholder
     }
     \endverbatim
 
 Note
-    - The value is positive inwards
-    - May not work correctly for transonic inlets
-    - Strange behaviour with potentialFoam since the U equation is not solved
+    - the value is positive into the domain
+    - may not work correctly for transonic inlets
+    - strange behaviour with potentialFoam since the momentum equation is
+      not solved
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     variableHeightFlowRateInletVelocityFvPatchVectorField.C
@@ -67,7 +75,7 @@ SourceFiles
 namespace Foam
 {
 /*---------------------------------------------------------------------------*\
-          Class variableHeightFlowRateInletVelocityFvPatch Declaration
+    Class variableHeightFlowRateInletVelocityFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class variableHeightFlowRateInletVelocityFvPatchVectorField
@@ -79,6 +87,7 @@ class variableHeightFlowRateInletVelocityFvPatchVectorField
         //- Inlet integral flow rate
         scalar flowRate_;
 
+
 public:
 
    //- Runtime type information
@@ -174,7 +183,6 @@ public:
 
         //- Write
         virtual void write(Ostream&) const;
-
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
index 56a81e0f619419fec7500d1f1c00d7c42462b659..fe4ddd33577d9228f492ff384a4bbf4bbb9ee969 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,6 +29,34 @@ License
 #include "volFields.H"
 #include "surfaceFields.H"
 #include "uniformDimensionedFields.H"
+#include "EulerDdtScheme.H"
+#include "CrankNicholsonDdtScheme.H"
+#include "backwardDdtScheme.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    template<>
+    const char* Foam::NamedEnum
+    <
+        Foam::waveSurfacePressureFvPatchScalarField::timeSchemeType,
+        3
+    >::names[] =
+    {
+        fv::EulerDdtScheme<scalar>::typeName.c_str(),
+        fv::CrankNicholsonDdtScheme<scalar>::typeName.c_str(),
+        fv::backwardDdtScheme<scalar>::typeName.c_str()
+    };
+}
+
+
+const Foam::NamedEnum
+<
+    Foam::waveSurfacePressureFvPatchScalarField::timeSchemeType,
+    3
+>   Foam::waveSurfacePressureFvPatchScalarField::timeSchemeTypeNames_;
+
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -41,10 +69,8 @@ waveSurfacePressureFvPatchScalarField
 :
     fixedValueFvPatchScalarField(p, iF),
     phiName_("phi"),
-    rhoName_("rho"),
     zetaName_("zeta"),
-    zeta0_(p.size(), vector::zero),
-    curTimeIndex_(-1)
+    rhoName_("rho")
 {}
 
 
@@ -58,10 +84,8 @@ waveSurfacePressureFvPatchScalarField
 :
     fixedValueFvPatchScalarField(p, iF),
     phiName_(dict.lookupOrDefault<word>("phi", "phi")),
-    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
     zetaName_(dict.lookupOrDefault<word>("zeta", "zeta")),
-    zeta0_(p.size(), vector::zero),
-    curTimeIndex_(-1)
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
 {
     fvPatchField<scalar>::operator=
     (
@@ -81,10 +105,8 @@ waveSurfacePressureFvPatchScalarField
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
     phiName_(ptf.phiName_),
-    rhoName_(ptf.rhoName_),
     zetaName_(ptf.zetaName_),
-    zeta0_(ptf.zeta0_),
-    curTimeIndex_(-1)
+    rhoName_(ptf.rhoName_)
 {}
 
 
@@ -96,10 +118,8 @@ waveSurfacePressureFvPatchScalarField
 :
     fixedValueFvPatchScalarField(wspsf),
     phiName_(wspsf.phiName_),
-    rhoName_(wspsf.rhoName_),
     zetaName_(wspsf.zetaName_),
-    zeta0_(wspsf.zeta0_),
-    curTimeIndex_(wspsf.curTimeIndex_)
+    rhoName_(wspsf.rhoName_)
 {}
 
 
@@ -112,40 +132,13 @@ waveSurfacePressureFvPatchScalarField
 :
     fixedValueFvPatchScalarField(wspsf, iF),
     phiName_(wspsf.phiName_),
-    rhoName_(wspsf.rhoName_),
     zetaName_(wspsf.zetaName_),
-    zeta0_(wspsf.zeta0_),
-    curTimeIndex_(wspsf.curTimeIndex_)
+    rhoName_(wspsf.rhoName_)
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void Foam::waveSurfacePressureFvPatchScalarField::autoMap
-(
-    const fvPatchFieldMapper& m
-)
-{
-    fixedValueFvPatchScalarField::autoMap(m);
-    zeta0_.autoMap(m);
-}
-
-
-void Foam::waveSurfacePressureFvPatchScalarField::rmap
-(
-    const fvPatchScalarField& ptf,
-    const labelList& addr
-)
-{
-    fixedValueFvPatchScalarField::rmap(ptf, addr);
-
-    const waveSurfacePressureFvPatchScalarField& wspsf =
-        refCast<const waveSurfacePressureFvPatchScalarField>(ptf);
-
-    zeta0_.rmap(wspsf.zeta0_, addr);
-}
-
-
 void Foam::waveSurfacePressureFvPatchScalarField::updateCoeffs()
 {
     if (updated())
@@ -153,65 +146,90 @@ void Foam::waveSurfacePressureFvPatchScalarField::updateCoeffs()
         return;
     }
 
+    const label patchI = patch().index();
+
     const scalar dt = db().time().deltaTValue();
-    const scalar timeI = db().time().timeIndex();
-    const scalar patchI = patch().index();
 
+    // retrieve non-const access to zeta field from the database
     volVectorField& zeta =
         const_cast<volVectorField&>
         (
             db().lookupObject<volVectorField>(zetaName_)
         );
-
     vectorField& zetap = zeta.boundaryField()[patchI];
 
-    if (curTimeIndex_ != timeI)
-    {
-        zeta0_ = zetap;
-        curTimeIndex_ = timeI;
-    }
+    // lookup d/dt scheme from database for zeta
+    const word ddtSchemeName(zeta.mesh().ddtScheme(zeta.name()));
+    timeSchemeType timeScheme(timeSchemeTypeNames_[ddtSchemeName]);
 
+    // retrieve the flux field from the database
     const surfaceScalarField& phi =
         db().lookupObject<surfaceScalarField>(phiName_);
 
-    const scalarField& phip = phi.boundaryField()[patchI];
-
-    const uniformDimensionedVectorField& g =
-        db().lookupObject<uniformDimensionedVectorField>("g");
-
+    // cache the patch face-normal vectors
     tmp<vectorField> nf(patch().nf());
 
-    if (phi.dimensions() == dimVelocity*dimArea)
-    {
-        zetap = zeta0_ + nf()*dt*phip/patch().magSf();
+    // change in zeta due to flux
+    vectorField dZetap(dt*nf()*phi.boundaryField()[patchI]/patch().magSf());
 
-        operator==(-g.value() & zetap);
-    }
-    else if (phi.dimensions() == dimDensity*dimVelocity*dimArea)
+    if (phi.dimensions() == dimDensity*dimVelocity*dimArea)
     {
         const scalarField& rhop =
             patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
-        zetap = zeta0_ + nf()*dt*phip/rhop/patch().magSf();
-
-        operator==(-rhop*(g.value() & zetap));
+        dZetap /= rhop;
     }
-    else
+
+    switch (timeScheme)
     {
-        FatalErrorIn
-        (
-            "waveSurfacePressureFvPatchScalarField::updateCoeffs()"
-        )
-            << "dimensions of phi are incorrect" << nl
-            << "    on patch " << this->patch().name()
-            << " of field " << this->dimensionedInternalField().name()
-            << " in file " << this->dimensionedInternalField().objectPath()
-            << exit(FatalError);
+        case tsEuler:
+        case tsCrankNicholson:
+        {
+            zetap = zeta.oldTime().boundaryField()[patchI] + dZetap;
+
+            break;
+        }
+        case tsBackward:
+        {
+            scalar dt0 = db().time().deltaT0Value();
+
+            scalar c = 1.0 + dt/(dt + dt0);
+            scalar c00 = dt*dt/(dt0*(dt + dt0));
+            scalar c0 = c + c00;
+
+            zetap =         
+                (
+                    c0*zeta.oldTime().boundaryField()[patchI]
+                  - c00*zeta.oldTime().oldTime().boundaryField()[patchI]
+                  + dZetap
+                )/c;
+
+            break;
+        }
+        default:
+        {
+            FatalErrorIn
+            (
+                "waveSurfacePressureFvPatchScalarField<Type>::updateCoeffs()"
+            )   << "    Unsupported temporal differencing scheme : "
+                << ddtSchemeName << nl
+                << "    on patch " << this->patch().name()
+                << " of field " << this->dimensionedInternalField().name()
+                << " in file " << this->dimensionedInternalField().objectPath()
+                << abort(FatalError);
+        }
     }
 
-    Info<< "min/max(zetap) = " << gMin(zetap & nf()) << ", "
+
+    Info<< "min/max zetap = " << gMin(zetap & nf()) << ", "
         << gMax(zetap & nf()) << endl;
 
+    // update the surface pressure
+    const uniformDimensionedVectorField& g =
+        db().lookupObject<uniformDimensionedVectorField>("g");
+
+    operator==(-g.value() & zetap);
+
     fixedValueFvPatchScalarField::updateCoeffs();
 }
 
@@ -220,8 +238,8 @@ void Foam::waveSurfacePressureFvPatchScalarField::write(Ostream& os) const
 {
     fvPatchScalarField::write(os);
     writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
-    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
     writeEntryIfDifferent<word>(os, "zeta", "zeta", zetaName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", zetaName_);
     writeEntry("value", os);
 }
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.H
index f80e25dae2e0221b0aab75cdb9f7aaff96d877a7..3babe28eff8bf90ea5801cd5c5d9669aa1d9765f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/waveSurfacePressure/waveSurfacePressureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,23 +24,52 @@ License
 Class
     Foam::waveSurfacePressureFvPatchScalarField
 
-Description
-    Applies the surface wave pressure, based on the wave height
-
-        p = -rho.g.zeta
-
-    Where
-
-        p = pressure - kinematic of dynamic depending on the flux units
-        zeta = wave height vector [m]
-        g = acceleration due to gravity [m/s2]
-
-
-    Note:
-
-        This boundary also updates the wave height boundary field, which
-        is accessed via lookup from the database
+Group
+    grpInletBoundaryConditions
 
+Description
+    This is a pressure boundary condition, whose value is calculated as
+    the hydrostatic pressure based on a given displacement:
+
+        \f[
+            p = -\rho*g*\zeta
+        \f]
+
+    \vartable
+        \rho  | density [kg/m3]
+        g     | acceleration due to gravity [m/s2]
+        \zeta | wave amplitude [m]
+    \endvartable
+
+    The wave amplitude is updated as part of the calculation, derived from the
+    local volumetric flux.
+
+    \heading Patch usage
+    
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        zeta         | wave amplitude field name | no        | zeta
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            waveSurfacePressure;
+        phi             phi;
+        rho             rho;
+        zeta            zeta;
+        value           uniform 0;  // place holder
+    }
+    \endverbatim
+
+    The density field is only required if the flux is mass-based as opposed to
+    volumetric-based.
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     waveSurfacePressureFvPatchScalarField.C
@@ -51,6 +80,7 @@ SourceFiles
 #define waveSurfacePressureFvPatchScalarField_H
 
 #include "fixedValueFvPatchFields.H"
+#include "NamedEnum.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -65,22 +95,34 @@ class waveSurfacePressureFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
+public:
+
+    // Public data
+
+        //- Enumeration defining the available time schemes
+        enum timeSchemeType
+        {
+            tsEuler,
+            tsCrankNicholson,
+            tsBackward
+        };
+
+
+private:
+
     // Private data
 
         //- Flux field name
         word phiName_;
 
-        //- Density field name (if compressible)
-        word rhoName_;
-
         //- Wave height field name
         word zetaName_;
 
-        //- Old-time zeta patch value
-        vectorField zeta0_;
+        //- Density field for mass-based flux evaluations
+        word rhoName_;
 
-        //- Current time index used to store ms0_
-        label curTimeIndex_;
+        //- Time scheme type names
+        static const NamedEnum<timeSchemeType, 3> timeSchemeTypeNames_;
 
 
 public:
@@ -153,22 +195,6 @@ public:
 
     // Member functions
 
-        // Mapping functions
-
-            //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap
-            (
-                const fvPatchFieldMapper&
-            );
-
-            //- Reverse map the given fvPatchField onto this fvPatchField
-            virtual void rmap
-            (
-                const fvPatchScalarField&,
-                const labelList&
-            );
-
-
         // Evaluation functions
 
             //- Update the coefficients associated with the patch field
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.H
index 6cd00aac559214fde66408d27c77c60641d6d9fb..9ff79884d6b45ddd4c96323dda3592f617175b3d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/waveTransmissive/waveTransmissiveFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,52 @@ License
 Class
     Foam::waveTransmissiveFvPatchField
 
+Group
+    grpOutletBoundaryConditions
+
 Description
-    Foam::waveTransmissiveFvPatchField
+    This boundary condition provides a wave transmissive outflow condition,
+    based onsolving DDt(psi, U) = 0 at the boundary.
+
+    The wave speed is calculated using:
+
+        \f[
+            x_p = \frac{\phi_p}{|Sf|} + \sqrt{\frac{\gamma}{\psi_p}}
+        \f]
+
+    where
+
+    \vartable
+        x_p     | patch values
+        \phi_p  | patch face flux
+        \psi_p  | patch compressibility
+        Sf      | patch face area vector
+        \gamma  | ratio of specific heats
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        psi          | compressibility field name | no       | psi
+        gamma        | ratio of specific heats (Cp/Cv) | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            waveTransmissive;
+        phi             phi;
+        psi             psi;
+        gamma           1.4;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::advectiveFvPatchField
 
 SourceFiles
     waveTransmissiveFvPatchField.C
@@ -43,7 +87,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                 Class waveTransmissiveFvPatch Declaration
+                Class waveTransmissiveFvPatchField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/doc/boundaryConditions.dox b/src/finiteVolume/fields/fvPatchFields/doc/boundaryConditions.dox
new file mode 100644
index 0000000000000000000000000000000000000000..7bb0894d7090e5c53c482cdf94f1f6e0288cc921
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/doc/boundaryConditions.dox
@@ -0,0 +1,97 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 grpIcoRASBoundaryConditions
+    - \ref grpCmpRASBoundaryConditions
+
+\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
+
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/fields/fvPatchFields/doc/fvPatchFieldDoc.H b/src/finiteVolume/fields/fvPatchFields/doc/fvPatchFieldDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..8b6889ea030a70f6603f2b44747a2e41343feb17
--- /dev/null
+++ b/src/finiteVolume/fields/fvPatchFields/doc/fvPatchFieldDoc.H
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpBoundaryConditions Boundary Conditions
+@{
+    This group contains OpenFOAM boundary condition types.  All conditions
+    are derived from the base Foam::fvPatchField class.  Patch values are
+    typically updated using the virtual functions
+    - Foam::fvPatchField::updateCoeffs()
+    - Foam::fvPatchField::evaluate()
+
+    The difference between the methods is based on when the patch values are
+    updated.  When the condition is applied to a solution variable, the
+    call to updateCoeffs() occurs as a preliminary step of the
+    \<matrix\>.solve().  The evaluate() method is invoked after, or independent
+    of the matrix solve, via a call to \<field\>.correctBoundaryConditions().
+@}
+
+\defgroup grpConstraintBoundaryConditions Constraint boundary Conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains constraint boundary condition types.  These conditions
+    are mainly employed to reduced dimensioned cases.
+@}
+
+\defgroup grpInletBoundaryConditions Inlet boundary Conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains inlet boundary condition types
+@}
+
+\defgroup grpOutletBoundaryConditions Outlet boundary Conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains outlet boundary condition types
+@}
+
+\defgroup grpGenericBoundaryConditions Generic boundary Conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains generic boundary condition types
+@}
+
+\defgroup grpCoupledBoundaryConditions Coupled boundary Conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains coupled boundary condition types
+@}
+
+\defgroup grpWallBoundaryConditions Wall boundary Conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains wall boundary condition types
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/genericPatchFields/genericFvPatchField/genericFvPatchField.H b/src/genericPatchFields/genericFvPatchField/genericFvPatchField.H
index 3236c3f2b9fce7535e412b60074365651f8deb26..c032a32fc271966e1fd8dbff68ee6ee40e5c3285 100644
--- a/src/genericPatchFields/genericFvPatchField/genericFvPatchField.H
+++ b/src/genericPatchFields/genericFvPatchField/genericFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,8 +25,12 @@ Class
     Foam::genericFvPatchField
 
 Description
-    A generic version of calculatedFvPatchField, useful as a fallback for
-    handling unknown patch types.
+    This boundary condition provides a generic version of the \c calculated
+    condition, useful as a fallback for handling unknown patch types.  Not
+    generally applicable as a user-specified condition.
+
+SeeAlso
+    Foam::calculatedFvPatchField
 
 SourceFiles
     genericFvPatchField.C
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
index 4d7af077d4e1b665721bf65afa7f7cff3a0837f8..ee860ad478dc325305b57ba1d41997a831391526 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
@@ -572,6 +572,14 @@ public:
                 const scalar sigma      // particle surface tension
             ) const;
 
+            //- Eotvos number
+            inline scalar Eo
+            (
+                const vector& a,        // acceleration
+                const scalar d,         // particle diameter
+                const scalar sigma      // particle surface tension
+            ) const;
+
 
         // Main calculation loop
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
index 4e4e0bf7be5c5087e0fbffe0127fb7eb9a7fa75b..f1b58c79ca24ae660a46e4ee54446eb8c435f57b 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H
@@ -567,4 +567,17 @@ inline Foam::scalar Foam::KinematicParcel<ParcelType>::We
 }
 
 
+template<class ParcelType>
+inline Foam::scalar Foam::KinematicParcel<ParcelType>::Eo
+(
+    const vector& a,
+    const scalar d,
+    const scalar sigma
+) const
+{
+    vector dir = U_/(mag(U_) + ROOTVSMALL);
+    return mag(a & dir)*(rho_ - rhoc_)*sqr(d)/(sigma + ROOTVSMALL);
+}
+
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelForces.H b/src/lagrangian/intermediate/parcels/include/makeParcelForces.H
index 7658900598dc940940017ac8da968d5c014908e8..9516b16a00e329472cfa399cb49a48db8934431b 100644
--- a/src/lagrangian/intermediate/parcels/include/makeParcelForces.H
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelForces.H
@@ -31,6 +31,9 @@ License
 #include "SphereDragForce.H"
 #include "NonSphereDragForce.H"
 
+#include "SaffmanMeiLiftForce.H"
+#include "TomiyamaLiftForce.H"
+
 #include "GravityForce.H"
 #include "NonInertialFrameForce.H"
 #include "ParamagneticForce.H"
@@ -45,6 +48,8 @@ License
     makeParticleForceModel(CloudType);                                        \
     makeParticleForceModelType(SphereDragForce, CloudType);                   \
     makeParticleForceModelType(NonSphereDragForce, CloudType);                \
+    makeParticleForceModelType(SaffmanMeiLiftForce, CloudType);               \
+    makeParticleForceModelType(TomiyamaLiftForce, CloudType);                 \
     makeParticleForceModelType(GravityForce, CloudType);                      \
     makeParticleForceModelType(NonInertialFrameForce, CloudType);             \
     makeParticleForceModelType(ParamagneticForce, CloudType);                 \
diff --git a/src/lagrangian/intermediate/parcels/include/makeThermoParcelForces.H b/src/lagrangian/intermediate/parcels/include/makeThermoParcelForces.H
index dff1f464a1c3e7f16e502be6f8842640740fce93..29b3d6acfe0d7c2cae0b36fb9d8644d2a772366e 100644
--- a/src/lagrangian/intermediate/parcels/include/makeThermoParcelForces.H
+++ b/src/lagrangian/intermediate/parcels/include/makeThermoParcelForces.H
@@ -31,6 +31,9 @@ License
 #include "SphereDragForce.H"
 #include "NonSphereDragForce.H"
 
+#include "SaffmanMeiLiftForce.H"
+#include "TomiyamaLiftForce.H"
+
 #include "BrownianMotionForce.H"
 #include "GravityForce.H"
 #include "NonInertialFrameForce.H"
@@ -46,6 +49,8 @@ License
     makeParticleForceModel(CloudType);                                        \
     makeParticleForceModelType(SphereDragForce, CloudType);                   \
     makeParticleForceModelType(NonSphereDragForce, CloudType);                \
+    makeParticleForceModelType(SaffmanMeiLiftForce, CloudType);               \
+    makeParticleForceModelType(TomiyamaLiftForce, CloudType);                 \
     makeParticleForceModelType(BrownianMotionForce, CloudType);               \
     makeParticleForceModelType(GravityForce, CloudType);                      \
     makeParticleForceModelType(NonInertialFrameForce, CloudType);             \
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C
new file mode 100644
index 0000000000000000000000000000000000000000..290d2f3c3d6b2be325c5c7e649712f176e2f14bd
--- /dev/null
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.C
@@ -0,0 +1,150 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "LiftForce.H"
+#include "fvcCurl.H"
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::scalar Foam::LiftForce<CloudType>::LiftForce::Cl
+(
+    const typename CloudType::parcelType& p,
+    const vector& curlUc,
+    const scalar Re,
+    const scalar muc
+) const
+{
+    // dummy
+    return 0.0;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::LiftForce<CloudType>::LiftForce
+(
+    CloudType& owner,
+    const fvMesh& mesh,
+    const dictionary& dict,
+    const word& forceType
+)
+:
+    ParticleForce<CloudType>(owner, mesh, dict, forceType, true),
+    UName_(this->coeffs().template lookupOrDefault<word>("U", "U")),
+    curlUcInterpPtr_(NULL)
+{}
+
+
+template<class CloudType>
+Foam::LiftForce<CloudType>::LiftForce(const LiftForce& lf)
+:
+    ParticleForce<CloudType>(lf),
+    UName_(lf.UName_),
+    curlUcInterpPtr_(NULL)
+{}
+
+
+// * * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::LiftForce<CloudType>::~LiftForce()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class CloudType>
+void Foam::LiftForce<CloudType>::cacheFields(const bool store)
+{
+    static word fName("curlUcDt");
+
+    bool fieldExists = this->mesh().template foundObject<volVectorField>(fName);
+
+    if (store)
+    {
+        if (!fieldExists)
+        {
+            const volVectorField& Uc = this->mesh().template
+                lookupObject<volVectorField>(UName_);
+
+            volVectorField* curlUcPtr =
+                new volVectorField(fName, fvc::curl(Uc));
+
+            curlUcPtr->store();
+        }
+
+        const volVectorField& curlUc = this->mesh().template
+            lookupObject<volVectorField>(fName);
+
+        curlUcInterpPtr_.reset
+        (
+            interpolation<vector>::New
+            (
+                this->owner().solution().interpolationSchemes(),
+                curlUc
+            ).ptr()
+        );
+    }
+    else
+    {
+        curlUcInterpPtr_.clear();
+
+        if (fieldExists)
+        {
+            const volVectorField& curlUc = this->mesh().template
+                lookupObject<volVectorField>(fName);
+
+            const_cast<volVectorField&>(curlUc).checkOut();
+        }
+    }
+}
+
+
+template<class CloudType>
+Foam::forceSuSp Foam::LiftForce<CloudType>::calcCoupled
+(
+    const typename CloudType::parcelType& p,
+    const scalar dt,
+    const scalar mass,
+    const scalar Re,
+    const scalar muc
+) const
+{
+    forceSuSp value(vector::zero, 0.0);
+
+    vector curlUc =
+        curlUcInterp().interpolate(p.position(), p.currentTetIndices());
+
+    scalar Cl = this->Cl(p, curlUc, Re, muc);
+
+    value.Su() = mass/p.rho()*p.d()/2.0*p.rhoc()*Cl*((p.Uc() - p.U())^curlUc);
+
+    return value;
+}
+
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.H b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.H
new file mode 100644
index 0000000000000000000000000000000000000000..13cab0ac544f73021962186710cdf2642c9fc8c0
--- /dev/null
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForce.H
@@ -0,0 +1,151 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::LiftForce
+
+Description
+    Base class for particle lift force models
+
+SourceFiles
+    LiftForceI.H
+    LiftForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef LiftForce_H
+#define LiftForce_H
+
+#include "ParticleForce.H"
+#include "volFields.H"
+#include "interpolation.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                          Class LiftForce Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class CloudType>
+class LiftForce
+:
+    public ParticleForce<CloudType>
+{
+protected:
+
+    // Protected data
+
+        //- Name of velocity field
+        const word UName_;
+
+        //- Curk of carrier phase velocity interpolator
+        autoPtr<interpolation<vector> > curlUcInterpPtr_;
+
+
+    // Potected Member Functions
+
+        //- Calculate the lift coefficient
+        virtual scalar Cl
+        (
+            const typename CloudType::parcelType& p,
+            const vector& curlUc,
+            const scalar Re,
+            const scalar muc
+        ) const;
+
+
+public:
+
+    // Constructors
+
+        //- Construct from mesh
+        LiftForce
+        (
+            CloudType& owner,
+            const fvMesh& mesh,
+            const dictionary& dict,
+            const word& forceType
+        );
+
+        //- Construct copy
+        LiftForce(const LiftForce& lf);
+
+        //- Construct and return a clone
+        virtual autoPtr<ParticleForce<CloudType> > clone() const
+        {
+            return autoPtr<ParticleForce<CloudType> >
+            (
+                new LiftForce<CloudType>(*this)
+            );
+        }
+
+
+    //- Destructor
+    virtual ~LiftForce();
+
+
+    // Member Functions
+
+        // Access
+
+            //- Return the curl of the carrier phase velocity interpolator
+            inline const interpolation<vector>& curlUcInterp() const;
+
+
+        // Evaluation
+
+            //- Cache fields
+            virtual void cacheFields(const bool store);
+
+            //- Calculate the non-coupled force
+            virtual forceSuSp calcCoupled
+            (
+                const typename CloudType::parcelType& p,
+                const scalar dt,
+                const scalar mass,
+                const scalar Re,
+                const scalar muc
+            ) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "LiftForceI.H"
+
+#ifdef NoRepository
+    #include "LiftForce.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/fluidThermo/fluidThermoNew.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForceI.H
similarity index 54%
rename from src/thermophysicalModels/basic/fluidThermo/fluidThermoNew.C
rename to src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForceI.H
index d6977a542a063e3401c51555ee1497e725ef2da8..00c3c7813a52f8444909f99f9caaf579e25ab0d1 100644
--- a/src/thermophysicalModels/basic/fluidThermo/fluidThermoNew.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/LiftForce/LiftForceI.H
@@ -23,48 +23,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "fluidThermo.H"
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::fluidThermo> Foam::fluidThermo::New
-(
-    const fvMesh& mesh
-)
+template<class CloudType>
+inline const Foam::interpolation<Foam::vector>&
+Foam::LiftForce<CloudType>::curlUcInterp() const
 {
-    // get model name, but do not register the dictionary
-    // otherwise it is registered in the database twice
-    const word modelType
-    (
-        IOdictionary
-        (
-            IOobject
-            (
-                "thermophysicalProperties",
-                mesh.time().constant(),
-                mesh,
-                IOobject::MUST_READ_IF_MODIFIED,
-                IOobject::NO_WRITE,
-                false
-            )
-        ).lookup("thermoType")
-    );
-
-    Info<< "Selecting thermodynamics package " << modelType << endl;
-
-    fvMeshConstructorTable::iterator cstrIter =
-        fvMeshConstructorTablePtr_->find(modelType);
-
-    if (cstrIter == fvMeshConstructorTablePtr_->end())
+    if (!curlUcInterpPtr_.valid())
     {
-        FatalErrorIn("fluidThermo::New(const fvMesh&)")
-            << "Unknown fluidThermo type " << modelType << nl << nl
-            << "Valid fluidThermo types are:" << nl
-            << fvMeshConstructorTablePtr_->sortedToc() << nl
-            << exit(FatalError);
+        FatalErrorIn
+        (
+            "inline const Foam::interpolation<Foam::vector>&"
+            "Foam::LiftForce<CloudType>::curlUcInterp() const"
+        )   << "Carrier phase curlUc interpolation object not set"
+            << abort(FatalError);
     }
 
-    return autoPtr<fluidThermo>(cstrIter()(mesh));
+    return curlUcInterpPtr_();
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/SaffmanMeiLift/SaffmanMeiLiftForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/SaffmanMeiLift/SaffmanMeiLiftForce.C
new file mode 100644
index 0000000000000000000000000000000000000000..d6d8dda976a8e8514b3123714bab7ce22a1647e6
--- /dev/null
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/SaffmanMeiLift/SaffmanMeiLiftForce.C
@@ -0,0 +1,93 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "SaffmanMeiLiftForce.H"
+#include "mathematicalConstants.H"
+
+using namespace Foam::constant;
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::scalar Foam::SaffmanMeiLiftForce<CloudType>::SaffmanMeiLiftForce::Cl
+(
+    const typename CloudType::parcelType& p,
+    const vector& curlUc,
+    const scalar Re,
+    const scalar muc
+) const
+{
+    scalar Rew = p.rhoc()*mag(curlUc)*sqr(p.d())/(muc + ROOTVSMALL);
+    scalar beta = 0.5*(Rew/(Re + ROOTVSMALL));
+    scalar alpha = 0.3314*sqrt(beta);
+    scalar f = (1.0 - alpha)*exp(-0.1*Re) + alpha;
+
+    scalar Cld = 0.0;
+    if (Re < 40)
+    {
+        Cld = 6.46*f;
+    }
+    else
+    {
+        Cld = 6.46*0.0524*sqrt(beta*Re);
+    }
+
+    return 3.0/(mathematical::twoPi*sqrt(Rew))*Cld;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::SaffmanMeiLiftForce<CloudType>::SaffmanMeiLiftForce
+(
+    CloudType& owner,
+    const fvMesh& mesh,
+    const dictionary& dict,
+    const word& forceType
+)
+:
+    LiftForce<CloudType>(owner, mesh, dict, forceType)
+{}
+
+
+template<class CloudType>
+Foam::SaffmanMeiLiftForce<CloudType>::SaffmanMeiLiftForce
+(
+    const SaffmanMeiLiftForce& lf
+)
+:
+    LiftForce<CloudType>(lf)
+{}
+
+
+// * * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::SaffmanMeiLiftForce<CloudType>::~SaffmanMeiLiftForce()
+{}
+
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/SaffmanMeiLift/SaffmanMeiLiftForce.H b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/SaffmanMeiLift/SaffmanMeiLiftForce.H
new file mode 100644
index 0000000000000000000000000000000000000000..66d29416b922fd7b4224ce8731a6bcfadf840c5c
--- /dev/null
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/SaffmanMeiLift/SaffmanMeiLiftForce.H
@@ -0,0 +1,117 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::SaffmanMeiLiftForce
+
+Description
+    Saffman-Mei particle lift force model applicable to spherical particles.
+
+SourceFiles
+    SaffmanMeiLiftForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef SaffmanMeiLiftForce_H
+#define SaffmanMeiLiftForce_H
+
+#include "LiftForce.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                     Class SaffmanMeiLiftForce Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class CloudType>
+class SaffmanMeiLiftForce
+:
+    public LiftForce<CloudType>
+{
+protected:
+
+    // Protected Member Functions
+
+        //- Calculate the lift coefficient
+        virtual scalar Cl
+        (
+            const typename CloudType::parcelType& p,
+            const vector& curlUc,
+            const scalar Re,
+            const scalar muc
+        ) const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("SaffmanMeiLiftForce");
+
+
+    // Constructors
+
+        //- Construct from mesh
+        SaffmanMeiLiftForce
+        (
+            CloudType& owner,
+            const fvMesh& mesh,
+            const dictionary& dict,
+            const word& forceType = typeName
+        );
+
+        //- Construct copy
+        SaffmanMeiLiftForce(const SaffmanMeiLiftForce& lf);
+
+        //- Construct and return a clone
+        virtual autoPtr<ParticleForce<CloudType> > clone() const
+        {
+            return autoPtr<ParticleForce<CloudType> >
+            (
+                new SaffmanMeiLiftForce<CloudType>(*this)
+            );
+        }
+
+
+    //- Destructor
+    virtual ~SaffmanMeiLiftForce();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "SaffmanMeiLiftForce.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/TomiyamaLift/TomiyamaLiftForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/TomiyamaLift/TomiyamaLiftForce.C
new file mode 100644
index 0000000000000000000000000000000000000000..87c482bec53936b5c47ce7e46283c236833dcc4a
--- /dev/null
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/TomiyamaLift/TomiyamaLiftForce.C
@@ -0,0 +1,95 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "TomiyamaLiftForce.H"
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::scalar Foam::TomiyamaLiftForce<CloudType>::TomiyamaLiftForce::Cl
+(
+    const typename CloudType::parcelType& p,
+    const vector& curlUc,
+    const scalar Re,
+    const scalar muc
+) const
+{
+    const vector& g = this->owner().g().value();
+
+    scalar Eo = p.Eo(g, p.d(), sigma_);
+    scalar dH = p.d()*cbrt(1.0 + 0.163*pow(Eo, 0.757));
+    scalar Eod = p.Eo(g, dH, sigma_);
+    scalar f = 0.00105*pow3(Eod) - 0.0159*sqr(Eod) - 0.0204*Eod + 0.474;
+
+    if (Eod <= 4)
+    {
+        return min(0.288*tanh(0.121*Re), f);
+    }
+    else if ((Eod > 4) && (Eod <= 10))
+    {
+        return f;
+    }
+    else
+    {
+        return -0.27;
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::TomiyamaLiftForce<CloudType>::TomiyamaLiftForce
+(
+    CloudType& owner,
+    const fvMesh& mesh,
+    const dictionary& dict,
+    const word& forceType
+)
+:
+    LiftForce<CloudType>(owner, mesh, dict, forceType),
+    sigma_(readScalar(this->coeffs().lookup("sigma")))
+{}
+
+
+template<class CloudType>
+Foam::TomiyamaLiftForce<CloudType>::TomiyamaLiftForce
+(
+    const TomiyamaLiftForce& lf
+)
+:
+    LiftForce<CloudType>(lf),
+    sigma_(lf.sigma_)
+{}
+
+
+// * * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::TomiyamaLiftForce<CloudType>::~TomiyamaLiftForce()
+{}
+
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/TomiyamaLift/TomiyamaLiftForce.H b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/TomiyamaLift/TomiyamaLiftForce.H
new file mode 100644
index 0000000000000000000000000000000000000000..3edf43b0a3fac9cf92ecf37b83c5d40df5358e48
--- /dev/null
+++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Lift/TomiyamaLift/TomiyamaLiftForce.H
@@ -0,0 +1,123 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::TomiyamaLiftForce
+
+Description
+    Tomiyama particle lift force model applicable to deformable bubbles.
+
+SourceFiles
+    TomiyamaLiftForce.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef TomiyamaLiftForce_H
+#define TomiyamaLiftForce_H
+
+#include "LiftForce.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                        Class TomiyamaLiftForce Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class CloudType>
+class TomiyamaLiftForce
+:
+    public LiftForce<CloudType>
+{
+protected:
+
+    // Protected data
+
+        //- Surface tension
+        scalar sigma_;
+
+
+    // Protected Member Functions
+
+        //- Calculate the lift coefficient
+        virtual scalar Cl
+        (
+            const typename CloudType::parcelType& p,
+            const vector& curlUc,
+            const scalar Re,
+            const scalar muc
+        ) const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("TomiyamaLift");
+
+
+    // Constructors
+
+        //- Construct from mesh
+        TomiyamaLiftForce
+        (
+            CloudType& owner,
+            const fvMesh& mesh,
+            const dictionary& dict,
+            const word& forceType = typeName
+        );
+
+        //- Construct copy
+        TomiyamaLiftForce(const TomiyamaLiftForce& lf);
+
+        //- Construct and return a clone
+        virtual autoPtr<ParticleForce<CloudType> > clone() const
+        {
+            return autoPtr<ParticleForce<CloudType> >
+            (
+                new TomiyamaLiftForce<CloudType>(*this)
+            );
+        }
+
+
+    //- Destructor
+    virtual ~TomiyamaLiftForce();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "TomiyamaLiftForce.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/submodels/SubModelBase.C b/src/lagrangian/intermediate/submodels/SubModelBase.C
index 952abaf5bb3b525ab266f8378613f564acd32920..2df1f5207c08f0327bcca6a83cb50c6a59168927 100644
--- a/src/lagrangian/intermediate/submodels/SubModelBase.C
+++ b/src/lagrangian/intermediate/submodels/SubModelBase.C
@@ -199,10 +199,11 @@ template<class CloudType>
 template<class Type>
 Type Foam::SubModelBase<CloudType>::getBaseProperty
 (
-    const word& entryName
+    const word& entryName,
+    const Type& defaultValue
 ) const
 {
-    Type result = pTraits<Type>::zero;
+    Type result = defaultValue;
 
     const dictionary& properties = this->owner().outputProperties();
 
@@ -216,6 +217,24 @@ Type Foam::SubModelBase<CloudType>::getBaseProperty
 }
 
 
+template<class CloudType>
+template<class Type>
+void Foam::SubModelBase<CloudType>::getBaseProperty
+(
+    const word& entryName,
+    Type& value
+) const
+{
+    const dictionary& properties = this->owner().outputProperties();
+
+    if (properties.found(baseName_))
+    {
+        const dictionary& baseDict = properties.subDict(baseName_);
+        baseDict.readIfPresent(entryName, value);
+    }
+}
+
+
 template<class CloudType>
 template<class Type>
 void Foam::SubModelBase<CloudType>::setBaseProperty
@@ -243,10 +262,11 @@ template<class CloudType>
 template<class Type>
 Type Foam::SubModelBase<CloudType>::getModelProperty
 (
-    const word& entryName
+    const word& entryName,
+    const Type& defaultValue
 ) const
 {
-    Type result = pTraits<Type>::zero;
+    Type result = defaultValue;
 
     const dictionary& properties = this->owner().outputProperties();
 
diff --git a/src/lagrangian/intermediate/submodels/SubModelBase.H b/src/lagrangian/intermediate/submodels/SubModelBase.H
index bc073213c7e56a69d4c84ad32ba209922430083e..0427c162f7e305d317fd21fdd8e4f04ee80617d6 100644
--- a/src/lagrangian/intermediate/submodels/SubModelBase.H
+++ b/src/lagrangian/intermediate/submodels/SubModelBase.H
@@ -163,25 +163,42 @@ public:
             //- Return non-const access to the owner cloud for manipulation
             CloudType& owner();
 
-            //- Retrieve generic property from sub-model
-            template<class Type>
-            Type getModelProperty(const word& entryName) const;
-
-            //- Retrieve generic property from sub-model
-            template<class Type>
-            void getModelProperty(const word& entryName, Type& value) const;
-
-            //- Add generic property from sub-model
-            template<class Type>
-            void setModelProperty(const word& entryName, const Type& value);
-
-            //- Retrieve generic property from base model
-            template<class Type>
-            Type getBaseProperty(const word& entryName) const;
-
-            //- Add generic property from base model
-            template<class Type>
-            void setBaseProperty(const word& entryName, const Type& value);
+            // Base properties
+
+                //- Retrieve generic property from the base model
+                template<class Type>
+                Type getBaseProperty
+                (
+                    const word& entryName,
+                    const Type& defaultValue = pTraits<Type>::zero
+                ) const;
+
+                //- Retrieve generic property from the base model
+                template<class Type>
+                void getBaseProperty(const word& entryName, Type& value) const;
+
+                //- Add generic property to the base model
+                template<class Type>
+                void setBaseProperty(const word& entryName, const Type& value);
+
+
+            // Model properties
+
+                //- Retrieve generic property from the sub-model
+                template<class Type>
+                Type getModelProperty
+                (
+                    const word& entryName,
+                    const Type& defaultValue = pTraits<Type>::zero
+                ) const;
+
+                //- Retrieve generic property from the sub-model
+                template<class Type>
+                void getModelProperty(const word& entryName, Type& value) const;
+
+                //- Add generic property to the sub-model
+                template<class Type>
+                void setModelProperty(const word& entryName, const Type& value);
 
 
         // I-O
diff --git a/src/postProcessing/functionObjects/IO/IOFunctionObjectsDoc.H b/src/postProcessing/functionObjects/IO/IOFunctionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..8466362578dc757f3c5d207f5c3c1bfdd79e6e6a
--- /dev/null
+++ b/src/postProcessing/functionObjects/IO/IOFunctionObjectsDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\defgroup grpIOFunctionObjects Input/outuput function objects
+@{
+    \ingroup grpFunctionObjects
+    This group contains input/output-based function objects
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H b/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H
index 40538f20ee5b5031d9a053e3f382b5ba3f4d5a26..a5165aaf51eba138191684bacc3ff8aec690cfac 100644
--- a/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H
+++ b/src/postProcessing/functionObjects/IO/partialWrite/partialWrite.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,37 @@ License
 Class
     Foam::partialWrite
 
-Description
-    Allows some fields/registered objects to be written more often than others.
+Group
+    grpIOFunctionObjects
 
-    Works in the opposite way: deletes at intermediate times all
-    but selected fields.
+Description
+    This function object allows user-selected fields/registered objects to be
+    written at a custom write interval.  It operates by deleting all entries
+    except those selected after writing.
+
+    Example of function object specification:
+    \verbatim
+    partialWrite1
+    {
+        type        partialWrite;
+        functionObjectLibs ("libIOFunctionObjects.so");
+        ...
+        objectNames (p U T);
+        writeInterval 100;
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: partialWrite | yes         |
+        objectNames  | objects to write        | yes         |
+        writeInterval | write interval         | yes         |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     partialWrite.C
@@ -55,7 +81,7 @@ class dictionary;
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                   Class partialWrite Declaration
+                        Class partialWrite Declaration
 \*---------------------------------------------------------------------------*/
 
 class partialWrite
diff --git a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H
index 79bed8aa1cb984efd60d254dfca26b17dbbebb19..b25925c3c1c116372420fc297251c6ea45f2a2a4 100644
--- a/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/IO/removeRegisteredObject/removeRegisteredObject.H
@@ -24,8 +24,33 @@ License
 Class
     Foam::removeRegisteredObject
 
+Group
+    grpIOFunctionObjects
+
 Description
-    Removes registered IO objects if present in the database
+    This function object removes registered objects if present in the database
+
+    Example of function object specification:
+    \verbatim
+    removeRegisteredObject1
+    {
+        type        removeRegisteredObject;
+        functionObjectLibs ("libIOFunctionObjects.so");
+        ...
+        objectNames (obj1 obj2);
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: removeRegisteredObject | yes |
+        objectNames  | objects to remove       | yes         |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     removeRegisteredObject.C
diff --git a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
index f10a84eece70d01301a635d07d21d1b7a4fbd651..c98ae3696b75148edc4fcffc026033a718acdde8 100644
--- a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
+++ b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.C
@@ -26,6 +26,7 @@ License
 #include "writeDictionary.H"
 #include "dictionary.H"
 #include "Time.H"
+#include "HashSet.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -108,7 +109,9 @@ Foam::writeDictionary::~writeDictionary()
 
 void Foam::writeDictionary::read(const dictionary& dict)
 {
-    dict.lookup("dictNames") >> dictNames_;
+    wordList dictNames(dict.lookup("dictNames"));
+    HashSet<word> uniqueNames(dictNames);
+    dictNames_ = uniqueNames.toc();
 
     digests_.setSize(dictNames_.size(), SHA1Digest());
 
diff --git a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H
index fb7a2952fd1276522d76543a2eceac64652ac476..8c21f32489ddd9367751a90f6e61302c2d691406 100644
--- a/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H
+++ b/src/postProcessing/functionObjects/IO/writeDictionary/writeDictionary.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::writeDictionary
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
     This function object writes dictionaries on start-up, and on change
 
diff --git a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
index a33441ae333dfd1bc01dcd06d4d0a0ebd41dd3c4..7dbdb4bd258edc73c072f5a74ecc5eb9fd83f085 100644
--- a/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/IO/writeRegisteredObject/writeRegisteredObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,34 @@ License
 Class
     Foam::writeRegisteredObject
 
+Group
+    grpIOFunctionObjects
+
 Description
-    Takes over the writing of registered IO objects
+    This function object takes-over the writing of objects registered to the
+    database.
+
+    Example of function object specification:
+    \verbatim
+    writeRegisteredObject1
+    {
+        type        writeRegisteredObject;
+        functionObjectLibs ("libIOFunctionObjects.so");
+        ...
+        objectNames (obj1 obj2);   
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: writeRegisteredObject | yes |
+        objectNames  | objects to write        | yes         |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     writeRegisteredObject.C
diff --git a/src/postProcessing/functionObjects/cloud/cloudFunctionObjectsDoc.H b/src/postProcessing/functionObjects/cloud/cloudFunctionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..2ac4b66db489ed419625a7eae35a2d792b4a86b0
--- /dev/null
+++ b/src/postProcessing/functionObjects/cloud/cloudFunctionObjectsDoc.H
@@ -0,0 +1,33 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\defgroup grpCloudFunctionObjects Cloud function objects
+@{
+    \ingroup grpFunctionObjects
+    This group contains cloud-based function objects.
+
+    Function objects in this group are packaged into the
+    libcloudFunctionObjects.so library.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H
index 04e6468d689e85af78d75e53c48b0e5531a6c010..bf75dcacc4e719d33675b739bbb4da4efdd54ff7 100644
--- a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H
+++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H
@@ -24,12 +24,44 @@ License
 Class
     Foam::cloudInfo
 
+Group
+    grpCloudFunctionObjects
+
 Description
-    Outputs cloud information to file
+    This function object outputs Lagrangian cloud information to a file.  The
+    current outputs include:
+    - total current number of parcels
+    - total current mass of parcels
+
+    Example of function object specification:
+    \verbatim
+    cloudInfo1
+    {
+        type        cloudInfo;
+        functionObjectLibs ("libcloudFunctionObjects.so");
+        ...
+        clouds
+        (
+            kinematicCloud1
+            thermoCloud1
+        );
+    }
+    \endverbatim
+
+
+    \heading Function object usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: cloudInfo    | yes         |
+        clouds       | list of clouds names to process |yes  |
+    \endtable
+
+    The output data of each cloud is written to a file named \<cloudName\>.dat
 
-    Currently outputs:
-        - total current number of parcels
-        - total current mass of parcels
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     cloudInfo.C
diff --git a/src/postProcessing/functionObjects/doc/functionObjects.dox b/src/postProcessing/functionObjects/doc/functionObjects.dox
new file mode 100644
index 0000000000000000000000000000000000000000..098b7ae12dd1546426fc7051e9a0497daace53d0
--- /dev/null
+++ b/src/postProcessing/functionObjects/doc/functionObjects.dox
@@ -0,0 +1,93 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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 pagePostProcessing Post-processing
+
+\section secFunctionObjects Function objects
+
+OpenFOAM includes a collection of \ref grpFunctionObjects that offer users the
+opportunity to closely manage their computational analyses.  These objects can
+be applied to manipulate the workflow process, and provide a mechanism to
+extract predicted field and derived quantities at run-time.  Alternatively,
+the actions can be executed afterwards using the \c execFlowFunctionObjects
+utility.
+
+\linebreak
+The current range of features comprises of:
+- \ref grpCloudFunctionObjects
+- \ref grpFieldFunctionObjects
+- \ref grpForcesFunctionObjects
+- \ref grpIOFunctionObjects
+- \ref grpJobControlFunctionObjects
+- \ref grpUtilitiesFunctionObjects
+
+\linebreak
+\subsection secFieldFunctionObjectUsage Using function objects
+
+Function objects are defined by additional entries in the
+$FOAM_CASE/system/controlDict input dictionary.  Each object is listed in a
+\c functions sub-dictionary entry, e.g. the following shows the input options
+applicable to `output' -type objects:
+
+\verbatim
+functions
+{
+    myFunctionObject    // user-defined name of function object entry
+    {
+        type            functionObjectType;
+        libs            ("libMyFunctionObjectlib.so");
+        region          defaultRegion;
+        enabled         yes;
+        timeStart       0;
+        timeEnd         10;
+        outputControl   outputTime;
+        outputInterval  1;
+        ...
+    }
+}
+\endverbatim
+
+Where:
+\table
+    Property | Description                           | Required | Default value
+    type     | type of function object               | yes      |
+    libs     | libraries containing object implementation | yes |
+    region   | name of region for multi-region cases | no       |
+    enabled  | on/off switch                         | no       | yes
+    timeStart| start time                            | no       |
+    timeEnd  | end time                              | no       | 
+    outputControl | when to output: either 'outputTime' or 'timeStep'| no | timeStep
+    outputInterval| steps between output when outputControl=timeStep | no | 1
+\endtable
+
+The sub-dictionary name \c myFunctionObject is chosen by the user, and is
+typically used as the name of the output folder for any derived data.  The
+\c type entry defines the type of function object properties that follow.
+Since the function objects are packaged into separate libraries, the user must
+tell the code where to find the function object implementation, identified
+using the \c libs entry.  
+
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
index be8b03a5b5157f9a1e58af3df0afae64fd18095c..5d63cced6c714f1c11c266bc973cab777b314414 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -245,7 +245,7 @@ void Foam::fieldAverage::writeAveragingProperties() const
 
 void Foam::fieldAverage::readAveragingProperties()
 {
-    if (cleanRestart_)
+    if (resetOnRestart_)
     {
         Info<< "fieldAverage: starting averaging at time "
             << obr_.time().timeName() << nl << endl;
@@ -306,7 +306,7 @@ Foam::fieldAverage::fieldAverage
     obr_(obr),
     active_(true),
     prevTimeIndex_(-1),
-    cleanRestart_(false),
+    resetOnRestart_(false),
     resetOnOutput_(false),
     faItems_(),
     meanScalarFields_(),
@@ -354,7 +354,7 @@ void Foam::fieldAverage::read(const dictionary& dict)
 {
     if (active_)
     {
-        dict.readIfPresent("cleanRestart", cleanRestart_);
+        dict.readIfPresent("resetOnRestart", resetOnRestart_);
         dict.readIfPresent("resetOnOutput", resetOnOutput_);
         dict.lookup("fields") >> faItems_;
 
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
index 3e0ddad528508831ae55dced64bb0fef3bcac730..f1883b1b7d21862a92035697006db7f97254719b 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,28 +24,52 @@ License
 Class
     Foam::fieldAverage
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Calculates the field averages given list of fieldAverageItems, e.g.
+    This function object calculates average quantities for a user-specified
+    selection of fields.  Fields are entered as a list of sub-dictionaries,
+    which indicate the type of averages to perform, and can be updated during
+    the calculation.  The current options include:
+    - \c mean: arithmetic mean:
+        \f[
+            \overline{x} = \frac{1}{N}\displaystyle\sum\limits_{i=0}^N x_i
+        \f]
+    - \c prime2Mean: prime-squared mean
+        \f[
+            \overline{x'}^2 = \frac{1}{N}\displaystyle\sum\limits_{i=0}^N
+            (x_i - \overline{x})^2
+        \f]
+    - base: average over 'time', or 'iteration' (\f$N\f$ in the above)
+    - window: optional averaging window, specified in 'base' units
+
+    Average field names are constructed by concatenating the base field with
+    the averaging type, e.g. when averaging field 'U', the resultant fields
+    are:
+    - arithmetic mean field, UMean
+    - prime-squared field, UPrime2Mean
+
+    Information regarding the number of averaging steps, and total averaging
+    time are written on a per-field basis to the
+    \c fieldAveragingProperties dictionary, located in \<time\>/uniform
+
+    When restarting form a previous calculation, the averaging is continuous.
+    However, the averaging process can be restarted using the \c resetOnRestart
+    option.
 
+    To restart the averaging process after each calculation output time, use
+    the \c resetOnOutput option.
+
+    Example of function object specification:
     \verbatim
     fieldAverage1
     {
-        // Type of functionObject
         type fieldAverage;
-
-        // Where to load it from (if not already in solver)
         functionObjectLibs ("libfieldFunctionObjects.so");
-
-        // Whether to perform a clean restart, or start from previous
-        // averaging info if available
-        cleanRestart true;
-
-        // Whether to reset the averaged fields after they have been written.
-        // Used to average over only the preceding write interval for transient
-        // cases.
-        resetOnOutput true;
-
-        // Fields to be averaged. runTime modifiable!
+        ...
+        resetOnRestart true;
+        resetOnOutput false;
         fields
         (
             U
@@ -61,24 +85,30 @@ Description
                 base            time;
             }
         );
+    }
     \endverbatim
 
-    Member function calcAverages() calculates the averages.
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: fieldAverage | yes         |
+        resetOnRestart | flag to reset the averaging on restart | yes  |
+        resetOnOutput| flag to reset the averaging on output | yes |
+        fields       | list of fields and averaging options | yes |
+    \endtable
 
-    Member function fieldAverage::write() calls calcAverages(). Average
-    field names are constructed by concatenating the base field with the
-    averaging type, e.g.
-    - base field, U
-    - arithmetic mean field, UMean
-    - prime-squared field, UPrime2Mean
 
-    Information regarding the number of averaging steps, and total averaging
-    time are written on a (base) per-field basis to the
-    fieldAveragingProperties dictionary, located in \<time\>/uniform
+Note
+    To employ the \c prime2Mean option, the \c mean option must be selecetd.
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     fieldAverage.C
     fieldAverageTemplates.C
+    fieldAverageItem.C
 
 \*---------------------------------------------------------------------------*/
 
@@ -134,10 +164,10 @@ protected:
         //- Time at last call, prevents repeated averaging
         label prevTimeIndex_;
 
-        //- Clean restart flag
-        Switch cleanRestart_;
+        //- Reset the averaging process on restart flag
+        Switch resetOnRestart_;
 
-        //- resetOnOutput flag
+        //- Reset the averaging process on output flag
         Switch resetOnOutput_;
 
         //- List of field average items, describing what averages to be
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItem.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItem.H
index 10d1e08ad3b346b3ae395e5d2d1b872ad1f1243d..992b5e393f677cc82f8f12629ac3b89b0819f58e 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItem.H
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverageItem/fieldAverageItem.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,16 +25,16 @@ Class
     Foam::fieldAverageItem
 
 Description
-    Helper class to describe what form of averaging to apply. A set will be
+    Helper class to describe what form of averaging to apply.  A set will be
     applied to each base field in Foam::fieldAverage, of the form:
 
     \verbatim
-        {
-            mean            on;
-            prime2Mean      on;
-            base            time; // iteration
-            window          200;  // optional averaging window
-        }
+    {
+        mean            on;
+        prime2Mean      on;
+        base            time; // iteration
+        window          200;  // optional averaging window
+    }
     \endverbatim
 
     The averaging window corresponds to the averaging interval (iters or time)
diff --git a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
index 138d2d09d5fbe65cc6b424de9aa5337b441ff6df..e583e6b168cae3c2d9162a171100ab9c62240e82 100644
--- a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
+++ b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,12 +24,52 @@ License
 Class
     Foam::fieldCoordinateSystemTransform
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Transforms fields from global cartesian co-ordinates to local co-ordinate
-    system
+    This function object transforms a user-specified selection of fields from
+    global Cartesian co-ordinates to a local co-ordinate system.  The fields
+    are run-time modifiable.
+
+    Example of function object specification:
+    \verbatim
+    fieldCoordinateSystemTransform1
+    {
+        type        fieldCoordinateSystemTransform;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        fields
+        (
+            U
+            UMean
+            UPrime2Mean
+        );
+        coordinateSystem
+        {
+            origin  (0.001  0       0);
+            e1      (1      0.15    0);
+            e3      (0      0      -1);
+        }
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: fieldCoordinateSystemTransform | yes |
+        fields       | list of fields to be transformed |yes |
+        coordinateSystem | local co-ordinate system | yes    |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+    Foam::coordinateSystem
 
 SourceFiles
     fieldCoordinateSystemTransform.C
+    fieldCoordinateSystemTransformTemplates.C
     IOfieldCoordinateSystemTransform.H
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/field/fieldFunctionObjectsDoc.H b/src/postProcessing/functionObjects/field/fieldFunctionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..6c934be48ecefb962b4dcbebfbdf67753387a27a
--- /dev/null
+++ b/src/postProcessing/functionObjects/field/fieldFunctionObjectsDoc.H
@@ -0,0 +1,33 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\defgroup grpFieldFunctionObjects Field function objects
+@{
+    \ingroup grpFunctionObjects
+    This group contains field-based function objects
+
+    Function objects in this group are packaged into the
+    libfieldFunctionObjects.so library.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
index 3cccb9668d83fb50f1a2b0d3ef61a0fd388615ed..a2fbb10f710f8d3a5a6393ada49898dbc5fd380c 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,14 +24,48 @@ License
 Class
     Foam::fieldMinMax
 
-Description
-    Calculates scalar minimim and maximum field values.
-
-    For variables with rank > 0, computes the magnitude of the min/max
-    values.
-
-    Data written to the file \<timeDir\>/fieldMinMax.dat
+Group
+    grpFieldFunctionObjects
 
+Description
+    This function object calculates the value and position of scalar minimim
+    and maximum for a list of user-specified fields.  For variables with a rank
+    greater than zero, either the min/max of a component value or the magnitude
+    is reported.  When operating in parallel, the processor owning the value
+    is also given.
+
+    Example of function object specification:
+    \verbatim
+    fieldMinMax1
+    {
+        type        fieldMinMax;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        write       yes;
+        log         yes;
+        mode        magnitude;
+        fields
+        (
+            U
+            p
+        );
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: fieldMinMax  | yes         |
+        write        | write min/max data to file |  no      | yes
+        log          | write min/max data to standard output | no | no
+        mode         | calculation mode: magnitude or component | no | magnitude
+    \endtable
+
+    Output data is written to the file \<timeDir\>/fieldMinMax.dat
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     fieldMinMax.C
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
index 5e857e02f28db804e0a63b5efeb9045eecadb116..7548f0e2a820c2b3af4bb0a6ad52b999bd38aeca 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
@@ -24,39 +24,75 @@ License
 Class
     Foam::fieldValues::cellSource
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Cell source variant of field value function object. Values of user-
-    specified fields reported for collections of cells.
+    This function object provides a 'cell source' variant of the fieldValues
+    function object.  Given a list of user-specified fields and a selection
+    of mesh cells, a number of operations can be performed, such as sums,
+    averages and integrations.
+
 
-    cellObj1                        // Name also used to identify output folder
+    Example of function object specification:
+    \verbatim
+    cellSource1
     {
         type            cellSource;
         functionObjectLibs ("libfieldFunctionObjects.so");
-        enabled         true;
-        outputControl   outputTime;
-        log             true;       // log to screen?
-        valueOutput     true;       // Write values at run-time output times?
-        source          cellZone;   // Type of cell source
+        ...
+        log             true;
+        valueOutput     true;
+        source          cellZone;
         sourceName      c0;
         operation       volAverage;
-        weightField     alpha1;     // optional weight field
+        weightField     alpha1;
         fields
         (
             p
             U
         );
     }
-
-    where operation is one of:
-      - none
-      - sum
-      - average
-      - weightedAverage
-      - volAverage
-      - volIntegrate
-      - CoV (Coefficient of variation: standard deviation/mean)
-      - min
-      - max
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: cellSource   | yes         |
+        log          | write data to standard output | no    | no
+        valueOutput  | write the raw output values | yes     |
+        source       | cell source: see below  | yes         |
+        sourceName   | name of cell source if required  | no |
+        operation    | operation to perform    | yes         |
+        weightField  | name of field to apply weighting | no |
+        fields       | list of fields to operate on | yes    |
+    \endtable
+
+    \linebreak
+    Where \c source is defined by
+    \plaintable
+        cellZone     | requires a 'sourceName' entry to specify the cellZone
+        all          | all cells
+    \endplaintable
+
+    \linebreak
+    The \c operation is one of:
+    \plaintable
+       none          | no operation
+       sum           | sum
+       average       | ensemble average
+       weightedAverage | weighted average
+       volAverage    | volume weighted average
+       volIntegrate  | volume integral
+       min           | minimum
+       max           | maximum
+       CoV           | coefficient of variation: standard deviation/mean
+    \endplaintable
+
+SeeAlso
+    Foam::fieldValues
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     cellSource.C
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
index c4473b352a8209921d1381805fe17c005e554db1..fafedc3a128ef9d404b2ccca0256ca141bf23c32 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
@@ -24,24 +24,33 @@ License
 Class
     Foam::fieldValues::faceSource
 
-Description
-    Face source variant of field value function object. Values of user-
-    specified fields reported for collections of faces.
+Group
+    grpFieldFunctionObjects
 
-    faceObj1                        // Name also used to identify output folder
+Description
+    This function object provides a 'face source' variant of the fieldValues
+    function object.  Given a list of user-specified fields and a selection
+    of mesh (or general surface) faces, a number of operations can be
+    performed, such as sums, averages and integrations.
+
+    \linebreak
+    For example, to calculate the volumetric or mass flux across a patch,
+    apply the 'sum' operator to the flux field (typically \c phi)
+
+    Example of function object specification:
+    \verbatim
+    faceSource1
     {
         type            faceSource;
         functionObjectLibs ("libfieldFunctionObjects.so");
-        enabled         true;
-        outputControl   outputTime;
-        log             true;       // log to screen?
-        valueOutput     true;       // write the output values
-        surfaceFormat   none;       // output value format (if valueOutput)
-        source          faceZone;   // type of face source:
-                                    // faceZone, patch, sampledSurface
-        sourceName      f0;         // faceZone name, see below
+        ...
+        log             yes;
+        valueOutput     true;
+        surfaceFormat   none;
+        source          faceZone;
+        sourceName      f0;
         operation       sum;
-        weightField     alpha1;     // optional weight field
+        weightField     alpha1;
         fields
         (
             p
@@ -49,42 +58,69 @@ Description
             U
         );
     }
-
-    source:
-    - faceZone       : requires a 'sourceName' entry to specify the faceZone
-    - patch          :                    ""                        patch
-    - sampledSurface : requires a 'sampledSurfaceDict' subdictionary. See e.g.
-                       sampleDict.
-
-    operation is one of:
-      - none
-      - sum
-      - average
-      - weightedAverage
-      - areaAverage
-      - areaIntegrate
-      - min
-      - max
-      - CoV (Coefficient of variation: standard deviation/mean)
-      - areaNormalAverage   (vector with first component (average of) inproduct
-                             of value and face area vector)
-      - areaNormalIntegrate (   ,,          ,,           (sum of)       ,,
-
-    Notes:
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: faceSource   | yes         |
+        log          | write data to standard output | no    | no
+        valueOutput  | write the output values | yes         |
+        surfaceFormat | output value format    | no          |
+        source       | face source: see below  | yes         |
+        sourceName   | name of face source if required  | no |
+        operation    | operation to perform    | yes         |
+        weightField  | name of field to apply weighting | no |
+        fields       | list of fields to operate on | yes    |
+    \endtable
+
+    \linebreak
+    Where \c source is defined by
+    \plaintable
+        faceZone     | requires a 'sourceName' entry to specify the faceZone
+        patch        | requires a 'sourceName' entry to specify the patch
+        sampledSurface | requires a 'sampledSurfaceDict' sub-dictionary
+    \endplaintable
+
+    \linebreak
+    The \c operation is one of:
+    \plaintable
+       none          | no operation
+       sum           | sum
+       average       | ensemble average
+       weightedAverage | weighted average
+       areaAverage   | area weighted average
+       areaIntegrate | area integral
+       min           | minimum
+       max           | maximum
+       CoV           | coefficient of variation: standard deviation/mean
+       areaNormalAverage| area weighted average in face normal direction
+       areaNormalIntegrate | area weighted integral in face normal directon
+    \endplaintable
+
+Note
+    - The values reported by the areaNormalAverage and areaNormalIntegrate
+      operations are written as the first component of a field with the same
+      rank as the input field.
     - faces on empty patches get ignored
-    - if the field is a volField the faceZone can only consist of boundary
-      faces.
-    - all fields get oriented according to the faceZone (so you might e.g. see
-      negative pressure)
-    - using sampledSurfaces:
-            - they do not do surface fields
-            - if interpolate=true they use interpolationCellPoint
-              otherwise they use cell values
-            - each triangle in sampledSurface is logically only in one cell
-              so interpolation will be wrong when triangles are larger than
-              cells. This can only happen for sampling on triSurfaceMesh.
-            - take care when using isoSurfaces - these might have duplicate
-              triangles so integration might be wrong
+    - if the field is a volField the \c faceZone can only consist of boundary
+      faces
+    - all fields are oriented according to the \c faceZone (so you might
+      e.g. see negative pressure)
+    - using \c sampledSurfaces:
+        - not available for surface fields
+        - if interpolate=true they use \c interpolationCellPoint
+          otherwise they use cell values
+        - each triangle in \c sampledSurface is logically only in one cell
+          so interpolation will be wrong when triangles are larger than
+          cells.  This can only happen for sampling on a \c triSurfaceMesh
+        - take care when using isoSurfaces - these might have duplicate
+          triangles and so integration might be wrong
+
+SeeAlso
+    Foam::fieldValues
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     faceSource.C
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
index 44e6c6a89508111d7f231237ad03f8289b33bd21..2a67404c436ba807879774ad38662c11d63875f4 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::fieldValue
 
+Group
+    grpFieldFunctionObjects
+
 Description
     Base class for field value -based function objects.
 
diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
index 11feb11041e68494f2c7bb2a49fc6a506983eb57..e6be5d7948ee44e1ef2bbcef3544e843bcb36c1a 100644
--- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
+++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,31 +24,45 @@ License
 Class
     Foam::nearWallFields
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Samples near-patch volFields
+    This function object samples near-patch volume fields
+
+    Fields are stored
+    - every time step the field is updated with new values
+    - at output it writes the fields
 
-    Holds fields
-    - every timestep the field get updated with new values
-    - at write it writes the fields
-    so this functionObject can either be used to calculate a new field
-    as a postprocessing step or (since the fields are registered)
-    use these in another functionObject (e.g. faceSource).
+    This functionObject can either be used
+    - to calculate a new field as a  post-processing step or
+    - since the fields are registered, used in another functionObject
 
-    surfaceValues
+    Example of function object specification:
+    \verbatim
+    nearWallFields1
     {
         type        nearWallFields;
-        ..
-        enabled         true;
-        outputControl   outputTime;
-        ..
-        // Name of volField and corresponding surfaceField
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
         fields      ((p pNear)(U UNear));
-        // Name of patch to sample
         patches     (movingWall);
-        // Distance away from the wall
-        distance    0.13;   // distance away from wall
+        distance    0.13;
     }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property | Description               | Required    | Default value
+        type     | type name: nearWallFields | yes         |
+        fields   | list of fields with correspoding output field names | yes |
+        patches  | list of patches to sample | yes         |
+        distance | distance from patch to sample | yes     |
+    \endtable
 
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     nearWallFields.C
@@ -74,7 +88,7 @@ class dictionary;
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                         Class nearWallFields Declaration
+                       Class nearWallFields Declaration
 \*---------------------------------------------------------------------------*/
 
 class nearWallFields
diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.H b/src/postProcessing/functionObjects/field/processorField/processorField.H
index a51b17f969c8a0db3e02f26d803bff025843cf96..b1ecdb65f5cebbc7acc84a811ae32c09823adcf9 100644
--- a/src/postProcessing/functionObjects/field/processorField/processorField.H
+++ b/src/postProcessing/functionObjects/field/processorField/processorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,32 @@ License
 Class
     Foam::processorField
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Writes a scalar field whose value is the local processor ID.  Output
-    field name is processorID.
+    This function object writes a scalar field whose value is the local
+    processor ID.  The output field name is 'processorID'.
+
+    Example of function object specification:
+    \verbatim
+    processorField1
+    {
+        type        processorField;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: processorField | yes       |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     processorField.C
@@ -54,7 +77,7 @@ class dictionary;
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                      Class processorField Declaration
+                       Class processorField Declaration
 \*---------------------------------------------------------------------------*/
 
 class processorField
diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.H b/src/postProcessing/functionObjects/field/readFields/readFields.H
index 56232ec51ddafaa6148f84220cfad737cebf41c9..8a26b89f5688af7b6caba7980966534fe8ee51be 100644
--- a/src/postProcessing/functionObjects/field/readFields/readFields.H
+++ b/src/postProcessing/functionObjects/field/readFields/readFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,38 @@ License
 Class
     Foam::readFields
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Reads fields from the time folders and adds them to the mesh database
-    for further post-processing.
+    This function object reads fields from the time folders and adds them to
+    the mesh database for further post-processing.
+
+    Example of function object specification:
+    \verbatim
+    readFields1
+    {
+        type        readFields;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        fields
+        (
+            U
+            p
+        );
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: readFields   | yes         |
+        fields       | list of fields to read  |  no         |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     readFields.C
diff --git a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
index 7802733249ece4d57607f46282b78f976f795e2b..ce4174162eb12ec92ef492bc86ea353fcb609561 100644
--- a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
+++ b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
@@ -24,68 +24,71 @@ License
 Class
     Foam::regionSizeDistribution
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Droplet size distribution calculation.
+    This function object creates a size distribution via interrogating a
+    continuous phase fraction field.
 
-    Looks up a void-fraction (alpha) field and splits the mesh into regions
-    based on where the field is below the threshold value. These
+    Looks up a phase-fraction (alpha) field and splits the mesh into regions
+    based on where the field is below the threshold value.  These
     regions ("droplets") can now be analysed.
 
     Regions:
-    - (debug) write regions as a volScalarField
-    - (debug) print for all regions the sum of volume and alpha*volume
     - print the regions connected to a user-defined set of patches.
       (in spray calculation these form the liquid core)
-    - print the regions with too large volume. These are the 'background'
+    - print the regions with too large volume.  These are the 'background'
       regions.
+    - (debug) write regions as a volScalarField
+    - (debug) print for all regions the sum of volume and alpha*volume
 
-    Fields:
-    - write volScalarField alpha_liquidCore : alpha with outside liquid core
-                                              set to 0.
-                           alpha_background : alpha with outside background
-                                              set to 0.
+    Output (volume scalar) fields include:
+    - alpha_liquidCore : alpha with outside liquid core set to 0
+    - alpha_background : alpha with outside background set to 0.
 
     Histogram:
     - determine histogram of diameter (given minDiameter, maxDiameter, nBins)
     - write graph of number of droplets per bin
     - write graph of sum, average and deviation of droplet volume per bin
-    - write graph of sum, average and deviation of user-defined fields. For
+    - write graph of sum, average and deviation of user-defined fields.  For
       volVectorFields these are those of the 3 components and the magnitude.
 
-    Sample input:
-
-    functions
+    Example of function object specification:
+    \verbatim
+    regionSizeDistribution1
     {
-        regionSizeDistribution
-        {
-            type            regionSizeDistribution;
-
-            outputControl   timeStep;
-            outputInterval  1;
-
-            // Field to determine regions from
-            field           alpha;
-            // Patches that provide the liquid core
-            patches         (inlet);
-            // Delimit alpha regions
-            threshold       0.4;
-
-            // Fields to sample (no need to include alpha)
-            fields          (p U);
-
-            // Number of bins for histogram
-            nBins           100;
-            // Max droplet diameter
-            maxDiameter     0.5e-4;
-            //// Min droplet diameter (default is 0)
-            //minDiameter     0;
-
-            // Writing format
-            setFormat       gnuplot;
-        }
+        type            regionSizeDistribution;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        field           alpha;
+        patches         (inlet);
+        threshold       0.4;
+        fields          (p U);
+        nBins           100;
+        maxDiameter     0.5e-4;
+        minDiameter     0;
+        setFormat       gnuplot;
     }
-
-
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: regionSizeDistribution |yes|
+        field        | phase field to interrogate | yes      |
+        patches      | patches from which the liquid core is identified | yes|
+        threshold    | phase fraction applied to delimit regions | yes |
+        fields       | fields to sample        | yes         |
+        nBins        | number of bins for histogram | yes    |
+        maxDiameter  | maximum region equivalent diameter | yes |
+        minDiameter  | minimum region equivalent diameter | no  | 0
+        setFormat    | writing format          | yes         |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     regionSizeDistribution.C
@@ -114,7 +117,7 @@ class regionSplit;
 class polyMesh;
 
 /*---------------------------------------------------------------------------*\
-                           Class regionSizeDistribution Declaration
+                   Class regionSizeDistribution Declaration
 \*---------------------------------------------------------------------------*/
 
 class regionSizeDistribution
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLine.H b/src/postProcessing/functionObjects/field/streamLine/streamLine.H
index f4fb4e42dc7bd0a58ab8e5abddb66a737121052a..08f01e45194d80c80fa9052722da70a361929a60 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLine.H
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLine.H
@@ -24,8 +24,76 @@ License
 Class
     Foam::streamLine
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Generation of streamlines. Samples along track of passive particle.
+    This function object generates streamline data by sampling a set of
+    user-specified fields along a particle track, transported by a
+    user-specified velocity field.
+
+    Example of function object specification:
+    \verbatim
+    streamLine1
+    {
+        type            streamLine;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        setFormat       vtk;
+        UName           U;
+        trackForward    yes;
+        fields
+        (
+            U
+            p
+        );
+        lifeTime        10000;
+        trackLength     1e-3;
+        nSubCycle       5;
+        cloudName       particleTracks;
+        seedSampleSet   uniform;
+        uniformCoeffs
+        {
+            type        uniform;
+            axis        x;  //distance;
+            start       (-0.0205 0.0001 0.00001);
+            end         (-0.0205 0.0005 0.00001);
+            nPoints     100;
+        }
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: streamLine   | yes         |
+        setFormat    | output data type        | yes         |
+        UName        | tracking velocity field name | yes    |
+        fields       | fields to sample        | yes         |
+        lifetime     | maximum number of particle tracking steps | yes |
+        trackLength  | tracking segment length | no          |
+        nSubCycle    | number of tracking steps per cell | no|
+        cloudName    | cloud name to use       | yes         |
+        seedSampleSet| seeding method (see below)| yes       |
+    \endtable
+
+    \linebreak
+    Where \c seedSampleSet is typically one of
+    \plaintable
+        uniform | uniform particle seeding
+        cloud   | cloud of points
+        triSurfaceMeshPointSet | points according to a tri-surface mesh
+    \endplaintable
+
+Note
+    When specifying the track resolution, the \c trackLength OR \c nSubCycle
+    option should be used
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+    Foam::sampledSet
+    Foam::wallBoundedStreamLine
 
 SourceFiles
     streamLine.C
@@ -80,7 +148,6 @@ class streamLine
         //- On/off switch
         bool active_;
 
-
         //- List of fields to sample
         wordList fields_;
 
@@ -127,9 +194,10 @@ class streamLine
             //- Axis of the sampled points to output
             word sampledSetAxis_;
 
-            //- File output writer
+            //- File writer for scalar data
             autoPtr<writer<scalar> > scalarFormatterPtr_;
 
+            //- File writer for vector data
             autoPtr<writer<vector> > vectorFormatterPtr_;
 
 
diff --git a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
index a49a86e8bcd19b76942006cf52af79fe65a29d05..61d8724d698bb6fb4c410b6c3fbe608b8a15d013 100644
--- a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
+++ b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,27 +24,42 @@ License
 Class
     Foam::surfaceInterpolateFields
 
+Group grpFieldFunctionObjects
+
 Description
-    Linear interpolates volFields to surfaceFields
+    This function object linearly interpolates volume fields to generate
+    surface fields
 
-    - at write it writes the fields
-    - it executes every time step
+    Fields are stored
+    - every time step the field is updated with new values
+    - at output it writes the fields
 
-    so it can either be used to calculate and write the interpolate or
-    (since the interpolates are registered) use some other functionObject
-    to work on them.
+    This functionObject can either be used
+    - to calculate a new field as a  post-processing step or
+    - since the fields are registered, used in another functionObject
 
-    sampleSomeFields
+    Example of function object specification:
+    \verbatim
+    surfaceInterpolateFields1
     {
-        type            surfaceInterpolateFields;
-        ..
-        enabled         true;
-        outputControl   outputTime;
-        ..
-        // Name of volField and corresponding surfaceField
-        fields          ((p pInterpolate)(U UInterpolate));
+        type        surfaceInterpolateFields;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        fields      ((p pNear)(U UNear));
     }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property | Description               | Required    | Default value
+        type     | type name: nearWallFields | yes         |
+        fields   | list of fields with correspoding output field names | yes |
+    \endtable
+
 
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     surfaceInterpolateFields.C
@@ -70,7 +85,7 @@ class dictionary;
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                         Class surfaceInterpolateFields Declaration
+                  Class surfaceInterpolateFields Declaration
 \*---------------------------------------------------------------------------*/
 
 class surfaceInterpolateFields
diff --git a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H
index e62ee5b17439e749296d6b36d8e4aab0d95e2683..527f332c4687aef2dfc9851170bddb97e593af15 100644
--- a/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H
+++ b/src/postProcessing/functionObjects/field/turbulenceFields/turbulenceFields.H
@@ -24,14 +24,57 @@ License
 Class
     Foam::turbulenceFields
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Stores turbulence fields on the mesh database for further manipulation.
+    This function object stores turbulence fields on the mesh database for
+    further manipulation.
 
     Fields are stored as copies of the original, with the prefix
     "tubulenceModel::", e.g.
 
         turbulenceModel::R
 
+    Example of function object specification:
+    \verbatim
+    turbulenceFields1
+    {
+        type        turbulenceFields;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        fields
+        (
+            R
+            devRhoReff
+        );
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: processorField | yes       |
+        fields       | fields to store (see below) | yes     |
+    \endtable
+
+    Where \c fields can include:
+    \plaintable
+        R           | Stress tensor
+        devRhoReff  |
+        mut         | turbulence viscosity (compressible)
+        muEff       | effective turbulence viscosity (compressible)
+        alphat      | turbulence thermal diffusivity (compressible)
+        alphaEff    | effective turbulence thermal diffusivity (compressible)
+        devReff     |
+        nut         | turbulence viscosity (incompressible)
+        nuEff       | effective turbulence viscosity (incompressible)
+    \endplaintable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+
 SourceFiles
     turbulenceFields.C
 
@@ -57,7 +100,7 @@ class dictionary;
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                       Class turbulenceFields Declaration
+                      Class turbulenceFields Declaration
 \*---------------------------------------------------------------------------*/
 
 class turbulenceFields
diff --git a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
index bb130b985d855b61f96e3536009bfbcce7db39b2..e7dceed8bb6697a51d7b8f3112b7a0a0e2e9de28 100644
--- a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
+++ b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
@@ -24,8 +24,76 @@ License
 Class
     Foam::wallBoundedStreamLine
 
+Group
+    grpFieldFunctionObjects
+
 Description
-    Generation of streamlines. Samples along track of passive particle.
+    This function object generates streamline data by sampling a set of
+    user-specified fields along a particle track, transported by a
+    user-specified velocity field, constrained to a patch.
+
+    Example of function object specification:
+    \verbatim
+    wallBoundedStreamLine1
+    {
+        type            wallBoundedStreamLine;
+        functionObjectLibs ("libfieldFunctionObjects.so");
+        ...
+        setFormat       vtk;
+        UName           UNear;
+        trackForward    yes;
+        fields
+        (
+            UNear
+            p
+        );
+        lifeTime        10000;
+        trackLength     1e-3;
+        nSubCycle       5;
+        cloudName       particleTracks;
+        seedSampleSet   patchSeed;
+        patchSeedCoeffs
+        {
+            type        patchSeed;
+            patches     (wall);
+            axis        x;
+            maxPoints   20000;
+        }
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: wallBoundedStreamLine| yes |
+        setFormat    | output data type        | yes         |
+        UName        | tracking velocity field name | yes    |
+        fields       | fields to sample        | yes         |
+        lifetime     | maximum number of particle tracking steps | yes |
+        trackLength  | tracking segment length | no          |
+        nSubCycle    | number of tracking steps per cell | no|
+        cloudName    | cloud name to use       | yes         |
+        seedSampleSet| seeding method (see below)| yes       |
+    \endtable
+
+    \linebreak
+    Where \c seedSampleSet is typically one of
+    \plaintable
+        uniform | uniform particle seeding
+        cloud   | cloud of points
+        patchSeed | seeding via patch faces
+        triSurfaceMeshPointSet | points according to a tri-surface mesh
+    \endplaintable
+
+Note
+    When specifying the track resolution, the \c trackLength OR \c nSubCycle
+    option should be used
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+    Foam::sampledSet
+    Foam::streamLine
 
 SourceFiles
     wallBoundedStreamLine.C
@@ -60,7 +128,7 @@ class meshSearch;
 class sampledSet;
 
 /*---------------------------------------------------------------------------*\
-                         Class wallBoundedStreamLine Declaration
+                    Class wallBoundedStreamLine Declaration
 \*---------------------------------------------------------------------------*/
 
 class wallBoundedStreamLine
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
index 1eb8db01af9384d5fc6dd835306ffcf0d1800ad4..fe6d074c549f0b2c5c493d39856a212481f99d01 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
@@ -24,9 +24,56 @@ License
 Class
     Foam::forceCoeffs
 
+Group
+    grpForcesFunctionObjects
+
 Description
-    Derived from the forces function object, creates a specialisation to
-    calculate lift, drag and moment coefficients.
+    This function object extends the Foam::forces function object by providing
+    lift, drag and moment coefficients.  The data can optionally be output into
+    bins, defined in a given direction.
+
+    Example of function object specification:
+    \verbatim
+    forceCoeffs1
+    {
+        type        forceCoeffs;
+        functionObjectLibs ("libforces.so");
+        ...
+        log         yes;
+        patches     (walls);
+        liftDir     (0 1 0);
+        dragDir     (-1 0 0);
+        pitchAxis   (0 0 1);
+        magUInf     100;
+        lRef        3.5;
+        ARef        2.2;
+        nBin        20;
+        binDir      (1 0 0);
+        binFormat   gnuplot;
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: forces       | yes         |
+        log          | write force data to standard output | no | no
+        patches      | patches included in the forces calculation | yes |
+        liftDir      | lift direction          | yes         |
+        dragDir      | drag direction          | yes         |
+        pitchAxis    | picth axis              | yes         |
+        magUInf      | free stream velocity magnitude | yes  |
+        lRef         | reference length scale for moment calculations | yes |
+        ARef         | reference area          | yes |
+        nBin         | number of data bins     | no          |
+        binDir       | direction along which bins are defined | no |
+        binFormat    | output format for bin data | no       |
+    \endtable
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+    Foam::forces
 
 SourceFiles
     forceCoeffs.C
@@ -45,7 +92,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                        Class forceCoeffs Declaration
+                         Class forceCoeffs Declaration
 \*---------------------------------------------------------------------------*/
 
 class forceCoeffs
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.H b/src/postProcessing/functionObjects/forces/forces/forces.H
index d5a74b9ec7cfff3071d3612ff97cdec1c0880eb2..72be5979949afb4ae5923335d25b6c28edc11678 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.H
+++ b/src/postProcessing/functionObjects/forces/forces/forces.H
@@ -24,24 +24,58 @@ License
 Class
     Foam::forces
 
+Group
+    grpForcesFunctionObjects
+
 Description
-    Calculates the forces and moments by integrating the pressure and
-    skin-friction forces over a given list of patches.
+    This function object calculates the forces and moments by integrating the
+    pressure and skin-friction forces over a given list of patches.
 
     Member function forces::write() calculates the forces/moments and
     writes the forces/moments into the file \<timeDir\>/forces.dat
 
-    The data can optionally be collected into bins, using e.g.
-    \verbaitim
-        nBin        20;          // output data into bins
-        binDir      (1 0 0);     // bin direction
+    Example of function object specification:
+    \verbatim
+    forces1
+    {
+        type        forces;
+        functionObjectLibs ("libforces.so");
+        ...
+        log         yes;
+        patches     (walls);
+        nBin        20;
+        binDir      (1 0 0);
         binFormat   gnuplot;
+    }
     \endverbatim
 
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: forces       | yes         |
+        log          | write force data to standard output | no | no
+        patches      | patches included in the forces calculation | yes |
+        nBin         | number of data bins     | no          |
+        binDir       | direction along which bins are defined | no |
+        binFormat    | output format for bin data | no       |
+        pName        | pressure field name     | no          | p
+        UName        | velocity field name     | no          | U
+        rhoName      | density field name (see below) | no   | rho
+        CofR         | centre of rotation (see below) | no   |
+        directForceDensity | force density supplied directly (see below)|no|no
+        fDName       | name of force density field (see below) | no | fD
+    \endtable
+
 Note
-    The centre of rotation for moment calculations can either be specified
-    by an \c CofR entry, or be taken from origin of the local coordinateSystem.
-    For example,
+  - For incompressible cases, set \c rhoName to \c rhoInf.  You will then be
+    required to provide a \c rhoInf value corresponding to the free-stream
+    constant density.
+  - If the force density is supplied directly, set the \c directForceDensity
+    flag to 'yes', and supply the force density field using the \c
+    fDName entry
+  - The centre of rotation (CofR) for moment calculations can either be
+    specified by an \c CofR entry, or be taken from origin of the local
+    coordinate system.  For example,
     \verbatim
         CofR        (0 0 0);
     \endverbatim
@@ -55,6 +89,11 @@ Note
         }
     \endverbatim
 
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+    Foam::forceCoeffs
+
 SourceFiles
     forces.C
     IOforces.H
diff --git a/src/postProcessing/functionObjects/forces/forcesFunctionObjectsDoc.H b/src/postProcessing/functionObjects/forces/forcesFunctionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..b171ef9289183bb8eb56e4c1a4199c5beff64f2f
--- /dev/null
+++ b/src/postProcessing/functionObjects/forces/forcesFunctionObjectsDoc.H
@@ -0,0 +1,33 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\defgroup grpForcesFunctionObjects Forces function objects
+@{
+    \ingroup grpFunctionObjects
+    This group contains force-based function objects
+
+    Function objects in this group are packaged into the
+    libforcesFunctionObjects.so library.
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H b/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H
index 408674eba66e8950dcc9d26ee881a5197153a11f..42da71f90c4e66f642939ebfa4c42124e3b2a25f 100644
--- a/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H
+++ b/src/postProcessing/functionObjects/jobControl/abortCalculation/abortCalculation.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::abortCalculation
 
+Group
+    grpJobControlFunctionObjects
+
 Description
     Watches for presence of the named file in the $FOAM_CASE directory
     and aborts the calculation if it is present.
diff --git a/src/postProcessing/functionObjects/jobControl/jobControlFunctionObjectsDoc.H b/src/postProcessing/functionObjects/jobControl/jobControlFunctionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..34a586b2077d907aa06231a7f364ce8a026c1a42
--- /dev/null
+++ b/src/postProcessing/functionObjects/jobControl/jobControlFunctionObjectsDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\defgroup grpJobControlFunctionObjects Job control function objects
+@{
+    \ingroup grpFunctionObjects
+    This group contains job control-based function objects
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/systemCall/systemCall.C b/src/postProcessing/functionObjects/systemCall/systemCall.C
index 90a5c20257c246f9fc7fad353c1541542e0d378b..299c792aabc29a50c1aefd922c8594e4c0fad5a1 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCall.C
+++ b/src/postProcessing/functionObjects/systemCall/systemCall.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -73,26 +73,18 @@ void Foam::systemCall::read(const dictionary& dict)
     }
     else if (!dynamicCode::allowSystemOperations)
     {
-        FatalErrorIn
-        (
-            "systemCall::read(const dictionary&)"
-        )   <<  "Executing user-supplied system calls is not"
-            << " enabled by default" << endl
-            << "because of security issues. If you trust the case you can"
-            << " enable this" << endl
-            << "facility be adding to the InfoSwitches setting in the system"
-            << " controlDict:" << endl
-            << endl
-            << "    allowSystemOperations 1" << endl
-            << endl
-            << "The system controlDict is either" << endl
-            << endl
-            << "    ~/.OpenFOAM/$WM_PROJECT_VERSION/controlDict" << endl
-            << endl
-            << "or" << endl
-            << endl
-            << "    $WM_PROJECT_DIR/etc/controlDict" << endl
-            << endl
+        FatalErrorIn("systemCall::read(const dictionary&)")
+            << "Executing user-supplied system calls is not enabled by "
+            << "default because of " << nl
+            << "security issues.  If you trust the case you can enable this "
+            << "facility by " << nl
+            << "adding to the InfoSwitches setting in the system controlDict:"
+            << nl << nl
+            << "    allowSystemOperations 1" << nl << nl
+            << "The system controlDict is either" << nl << nl
+            << "    ~/.OpenFOAM/$WM_PROJECT_VERSION/controlDict" << nl << nl
+            << "or" << nl << nl
+            << "    $WM_PROJECT_DIR/etc/controlDict" << nl << nl
             << exit(FatalError);
     }
 }
diff --git a/src/postProcessing/functionObjects/systemCall/systemCall.H b/src/postProcessing/functionObjects/systemCall/systemCall.H
index 9baf118ef8aba9a96614282d30fb08a87069eebb..ad82219bcee9d32befa95e65edd1a94b3e48359a 100644
--- a/src/postProcessing/functionObjects/systemCall/systemCall.H
+++ b/src/postProcessing/functionObjects/systemCall/systemCall.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,59 @@ License
 Class
     Foam::systemCall
 
+Group
+    grpFunctionObjects
+
 Description
-    Executes system calls, entered in the form of a string list
+    This function object executes system calls, entered in the form of a
+    string lists.  Calls can be made at the following points in the
+    calculation:
+    - every time step
+    - every output time
+    - end of the calculation
+
+    Example of function object specification:
+    \verbatim
+    systemCall1
+    {
+        type        systemCall;
+        functionObjectLibs ("libsystemCall.so");
+        ...
+        executeCalls
+        (
+            "echo execute"
+        );
+        writeCalls
+        (
+            "echo \*\*\* writing data \*\*\*"
+        );
+        endCalls
+        (
+            "echo \*\*\* writing .bashrc \*\*\*"
+            "cat ~/.bashrc"
+            "echo \*\*\* done \*\*\*"
+        );
+    }
+    \endverbatim
+
+    \heading Function object usage
+    \table
+        Property     | Description             | Required    | Default value
+        type         | type name: systemCall   | yes         |
+        executeCalls | list of calls on execute | yes        |
+        writeCalls   | list of calls on write  | yes         |
+        endCalls     | list of calls on end    | yes         |
+    \endtable
+
+Note
+    Since this function object executes system calls, there is a potential
+    security risk.  In order to use the \c systemCall function object, the
+    \c allowSystemOperations must be set to '1'; otherwise, system calls will
+    not be allowed.
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
 
 SourceFiles
     systemCall.C
@@ -50,7 +101,7 @@ class dictionary;
 class mapPolyMesh;
 
 /*---------------------------------------------------------------------------*\
-                       Class systemCall Declaration
+                         Class systemCall Declaration
 \*---------------------------------------------------------------------------*/
 
 class systemCall
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
new file mode 100644
index 0000000000000000000000000000000000000000..604cf2fd893630fcb527da01d3f7f3bebe737ab5
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
@@ -0,0 +1,229 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "DESModelRegions.H"
+#include "volFields.H"
+#include "compressible/turbulenceModel/turbulenceModel.H"
+#include "compressible/LES/DESModel/DESModel.H"
+#include "incompressible/turbulenceModel/turbulenceModel.H"
+#include "incompressible/LES/DESModel/DESModel.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(Foam::DESModelRegions, 0);
+
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void Foam::DESModelRegions::makeFile()
+{
+    // Create the output file if not already created
+    if (outputFilePtr_.empty())
+    {
+        if (debug)
+        {
+            Info<< "Creating output file." << endl;
+        }
+
+        // File update
+        if (Pstream::master())
+        {
+            fileName outputDir;
+            word startTimeName =
+                obr_.time().timeName(obr_.time().startTime().value());
+
+            if (Pstream::parRun())
+            {
+                // Put in undecomposed case (Note: gives problems for
+                // distributed data running)
+                outputDir =
+                    obr_.time().path()/".."/name_/startTimeName;
+            }
+            else
+            {
+                outputDir = obr_.time().path()/name_/startTimeName;
+            }
+
+            // Create directory if does not exist
+            mkDir(outputDir);
+
+            // Open new file at start up
+            outputFilePtr_.reset(new OFstream(outputDir/(type() + ".dat")));
+
+            // Add headers to output data
+            outputFilePtr_() << "# DES model region coverage (% volume)" << nl
+                << "# time " << token::TAB << "LES" << token::TAB << "RAS"
+                << endl;
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::DESModelRegions::DESModelRegions
+(
+    const word& name,
+    const objectRegistry& obr,
+    const dictionary& dict,
+    const bool loadFromFiles
+)
+:
+    name_(name),
+    obr_(obr),
+    active_(true),
+    log_(false),
+    outputFilePtr_(NULL)
+{
+    // Check if the available mesh is an fvMesh, otherwise deactivate
+    if (!isA<fvMesh>(obr_))
+    {
+        active_ = false;
+        WarningIn
+        (
+            "DESModelRegions::DESModelRegions"
+            "("
+                "const word&, "
+                "const objectRegistry&, "
+                "const dictionary&, "
+                "const bool"
+            ")"
+        )   << "No fvMesh available, deactivating." << nl
+            << endl;
+    }
+
+    makeFile();
+
+    read(dict);
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+Foam::DESModelRegions::~DESModelRegions()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void Foam::DESModelRegions::read(const dictionary& dict)
+{
+    if (active_)
+    {
+        log_ = dict.lookupOrDefault<Switch>("log", false);
+    }
+}
+
+
+void Foam::DESModelRegions::execute()
+{
+    // Do nothing - only valid on write
+}
+
+
+void Foam::DESModelRegions::end()
+{
+    // Do nothing - only valid on write
+}
+
+
+void Foam::DESModelRegions::write()
+{
+    typedef incompressible::turbulenceModel icoModel;
+    typedef incompressible::DESModel icoDESModel;
+
+    typedef compressible::turbulenceModel cmpModel;
+    typedef compressible::DESModel cmpDESModel;
+
+    if (active_)
+    {
+        const fvMesh& mesh = refCast<const fvMesh>(obr_);
+
+        if (log_)
+        {
+            Info<< type() << " output:" << nl;
+        }
+
+        tmp<volScalarField> result;
+
+        label DESpresent = false;
+        if (mesh.foundObject<icoModel>("turbulenceModel"))
+        {
+            const icoModel& model =
+                mesh.lookupObject<icoModel>("turbulenceModel");
+
+            if (isA<icoDESModel>(model))
+            {
+                const icoDESModel& des =
+                    dynamic_cast<const icoDESModel&>(model);
+                result = des.LESRegion();
+                DESpresent = true;
+            }
+        }
+        else if (mesh.foundObject<cmpModel>("turbulenceModel"))
+        {
+            const cmpModel& model =
+                mesh.lookupObject<cmpModel>("turbulenceModel");
+
+            if (isA<cmpDESModel>(model))
+            {
+                const cmpDESModel& des =
+                    dynamic_cast<const cmpDESModel&>(model);
+                result = des.LESRegion();
+                DESpresent = true;
+            }
+        }
+
+        if (DESpresent)
+        {
+            scalar prc =
+                gSum(result().internalField()*mesh.V())/gSum(mesh.V())*100.0;
+
+            if (Pstream::master())
+            {
+                outputFilePtr_() << obr_.time().timeName() << token::TAB
+                    << prc << token::TAB << 100.0 - prc << endl;
+            }
+    
+            if (log_)
+            {
+                Info<< "    LES = " << prc << " % (volume)" << nl
+                    << "    RES = " << 100.0 - prc << " % (volume)" << nl
+                    << endl;
+            }
+        }
+        else
+        {
+            if (log_)
+            {
+                Info<< "    No DES turbulence model found in database" << nl
+                    << endl;
+            }
+        }
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H
new file mode 100644
index 0000000000000000000000000000000000000000..38c8be7c139033fa223f2f22a8409c39caa9a34e
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.H
@@ -0,0 +1,158 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Class
+    Foam::DESModelRegions
+
+Group
+    grpUtilitiesFunctionObjects
+
+Description
+    This function object writes out an indicator field for DES turbulence
+    calculations, that is:
+
+    - 0 for RAS regions
+    - 1 for LES regions
+
+SourceFiles
+    DESModelRegions.C
+    IODESModelRegions.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef DESModelRegions_H
+#define DESModelRegions_H
+
+#include "volFieldsFwd.H"
+#include "pointFieldFwd.H"
+#include "Switch.H"
+#include "OFstream.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// Forward declaration of classes
+class objectRegistry;
+class dictionary;
+class mapPolyMesh;
+class fvMesh;
+
+/*---------------------------------------------------------------------------*\
+                       Class DESModelRegions Declaration
+\*---------------------------------------------------------------------------*/
+
+class DESModelRegions
+{
+    // Private data
+
+        //- Name of this set of DESModelRegions object
+        word name_;
+
+        const objectRegistry& obr_;
+
+        //- on/off switch
+        bool active_;
+
+        //- Switch to send output to Info as well as to file
+        Switch log_;
+
+        //- Output file pointer
+        autoPtr<OFstream> outputFilePtr_;
+
+
+    // Private Member Functions
+
+        //- Make the output file
+        virtual void makeFile();
+
+        //- Disallow default bitwise copy construct
+        DESModelRegions(const DESModelRegions&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const DESModelRegions&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("DESModelRegions");
+
+
+    // Constructors
+
+        //- Construct for given objectRegistry and dictionary.
+        //  Allow the possibility to load fields from files
+        DESModelRegions
+        (
+            const word& name,
+            const objectRegistry&,
+            const dictionary&,
+            const bool loadFromFiles = false
+        );
+
+
+    //- Destructor
+    virtual ~DESModelRegions();
+
+
+    // Member Functions
+
+        //- Return name of the set of DESModelRegions
+        virtual const word& name() const
+        {
+            return name_;
+        }
+
+        //- Read the DESModelRegions data
+        virtual void read(const dictionary&);
+
+        //- Execute, currently does nothing
+        virtual void execute();
+
+        //- Execute at the final time-loop, currently does nothing
+        virtual void end();
+
+        //- Calculate the DESModelRegions and write
+        virtual void write();
+
+        //- Update for changes of mesh
+        virtual void updateMesh(const mapPolyMesh&)
+        {}
+
+        //- Update for changes of mesh
+        virtual void movePoints(const pointField&)
+        {}
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegionsFunctionObject.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegionsFunctionObject.C
new file mode 100644
index 0000000000000000000000000000000000000000..2312e6f5fb80bbedada0e434316541b3c73b570a
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegionsFunctionObject.C
@@ -0,0 +1,42 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "DESModelRegionsFunctionObject.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineNamedTemplateTypeNameAndDebug(DESModelRegionsFunctionObject, 0);
+
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        DESModelRegionsFunctionObject,
+        dictionary
+    );
+}
+
+// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegionsFunctionObject.H
similarity index 57%
rename from src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H
rename to src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegionsFunctionObject.H
index 29e93165a247ce7e87f173b47c14f850e7a977fe..7e9a6ba45cb21063912f193edc4b07fb4d1a066f 100644
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/makeBasicMixture.H
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegionsFunctionObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -21,31 +21,31 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
-InClass
-    Foam::basicMixture
+Typedef
+    Foam::DESModelRegionsFunctionObject
 
 Description
-    Macros for creating 'basic' mixtures for basic fluid thermo packages
+    FunctionObject wrapper around DESModelRegions to allow it to be created
+    via the functions entry within controlDict.
+
+SourceFiles
+    DESModelRegionsFunctionObject.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef makeBasicMixture_H
-#define makeBasicMixture_H
+#ifndef DESModelRegionsFunctionObject_H
+#define DESModelRegionsFunctionObject_H
 
-#include "basicMixture.H"
-#include "addToRunTimeSelectionTable.H"
+#include "DESModelRegions.H"
+#include "OutputFilterFunctionObject.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define makeBasicMixture(Mixture,Transport,Type,Thermo,EqnOfState,Specie)     \
-                                                                              \
-typedef                                                                       \
-    Mixture<Transport<species::thermo<Thermo<EqnOfState<Specie> >, Type> > >  \
-    Mixture##Transport##Type##Thermo##EqnOfState##Specie;                     \
-                                                                              \
-defineTemplateTypeNameAndDebugWithName                                        \
-    (Mixture##Transport##Type##Thermo##EqnOfState##Specie,                    \
-    #Mixture"<"#Transport"<"#Thermo"<"#EqnOfState"<"#Specie">>,"#Type">>", 0)
+namespace Foam
+{
+    typedef OutputFilterFunctionObject<DESModelRegions>
+        DESModelRegionsFunctionObject;
+}
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/IODESModelRegions.H b/src/postProcessing/functionObjects/utilities/DESModelRegions/IODESModelRegions.H
new file mode 100644
index 0000000000000000000000000000000000000000..17cc16b74ee973ad00035c04db02cb6dd9abe2de
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/IODESModelRegions.H
@@ -0,0 +1,49 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Typedef
+    Foam::IODESModelRegions
+
+Description
+    Instance of the generic IOOutputFilter for DESModelRegions.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef IODESModelRegions_H
+#define IODESModelRegions_H
+
+#include "DESModelRegions.H"
+#include "IOOutputFilter.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    typedef IOOutputFilter<DESModelRegions> IODESModelRegions;
+}
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/postProcessing/functionObjects/utilities/Make/files b/src/postProcessing/functionObjects/utilities/Make/files
index d5a78589b2fa13a72a42aa49b84babae6c3bb13e..362f24a0e7e7ef93aa9bb2ef264c2b710d0c045b 100644
--- a/src/postProcessing/functionObjects/utilities/Make/files
+++ b/src/postProcessing/functionObjects/utilities/Make/files
@@ -3,6 +3,9 @@ codedFunctionObject/codedFunctionObject.C
 CourantNo/CourantNo.C
 CourantNo/CourantNoFunctionObject.C
 
+DESModelRegions/DESModelRegions.C
+DESModelRegions/DESModelRegionsFunctionObject.C
+
 dsmcFields/dsmcFields.C
 dsmcFields/dsmcFieldsFunctionObject.C
 
diff --git a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
index 81cb1d9b23b651bd57bd5b21edbba62e56309770..0248190cde571ab78111670f6047a3eefcfb6bc3 100644
--- a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
+++ b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C
@@ -47,9 +47,6 @@ namespace Foam
     );
 }
 
-// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
-
-
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 void Foam::codedFunctionObject::prepare
diff --git a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
index 52a202df54bd0dc4ebabe68028279141ee0f6cfb..a9c6818f7765f64132722d73cb03968e0c4fada2 100644
--- a/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
+++ b/src/postProcessing/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H
@@ -24,8 +24,17 @@ License
 Class
     Foam::codedFunctionObject
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
-    functionObject using dynamic code compilation.
+    This function object provides a general interface to enable dynamic code
+    compilation.
+
+SeeAlso
+    Foam::functionObject
+    Foam::OutputFilterFunctionObject
+    Foam::codedBase
 
 SourceFiles
     codedFunctionObject.C
@@ -44,7 +53,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                       Class codedFunctionObject Declaration
+                     Class codedFunctionObject Declaration
 \*---------------------------------------------------------------------------*/
 
 class codedFunctionObject
@@ -90,6 +99,7 @@ protected:
         // Get the dictionary to initialize the codeContext
         virtual const dictionary& codeDict() const;
 
+
 private:
 
         //- Disallow default bitwise copy construct
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
index 548a83df5c0f83674f76fa308f1cd606ed51a5d5..512ac251c6aa46200974a985f502f8c1b9e37aa8 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::dsmcFields
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
     Calculate intensive fields:
     - UMean
@@ -69,6 +72,7 @@ class dsmcFields
         //- on/off switch
         bool active_;
 
+
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
index d9a5b071f539b51fbfb060d635594bd16388fab3..786e0f21fa70b958d3fa35e295c6703949604a83 100644
--- a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,28 +24,32 @@ License
 Class
     Foam::timeActivatedFileUpdate
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
     Performs a file copy/replacement once a specified time has been reached.
 
     Example usage to update the fvSolution dictionary at various times
     throughout the calculation:
 
-        fileUpdate1
-        {
-            type              timeActivatedFileUpdate;
-            functionObjectLibs ("libutilityFunctionObjects.so");
-            outputControl     timeStep;
-            outputInterval    1;
-            fileToUpdate      "$FOAM_CASE/system/fvSolution";
-            timeVsFile
-            (
-                (-1 "$FOAM_CASE/system/fvSolution.0")
-                (0.10 "$FOAM_CASE/system/fvSolution.10")
-                (0.20 "$FOAM_CASE/system/fvSolution.20")
-                (0.35 "$FOAM_CASE/system/fvSolution.35")
-            );
-        }
-
+    \verbatim
+    fileUpdate1
+    {
+        type              timeActivatedFileUpdate;
+        functionObjectLibs ("libutilityFunctionObjects.so");
+        outputControl     timeStep;
+        outputInterval    1;
+        fileToUpdate      "$FOAM_CASE/system/fvSolution";
+        timeVsFile
+        (
+            (-1 "$FOAM_CASE/system/fvSolution.0")
+            (0.10 "$FOAM_CASE/system/fvSolution.10")
+            (0.20 "$FOAM_CASE/system/fvSolution.20")
+            (0.35 "$FOAM_CASE/system/fvSolution.35")
+        );
+    }
+    \endverbatim
 
 SourceFiles
     timeActivatedFileUpdate.C
diff --git a/src/postProcessing/functionObjects/utilities/utilitiesFunctionObjectsDoc.H b/src/postProcessing/functionObjects/utilities/utilitiesFunctionObjectsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..b6e39e565d76f2ed806e3457d943fc49c9880471
--- /dev/null
+++ b/src/postProcessing/functionObjects/utilities/utilitiesFunctionObjectsDoc.H
@@ -0,0 +1,30 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\defgroup grpUtilitiesFunctionObjects Utility function objects
+@{
+    \ingroup grpFunctionObjects
+    This group contains utility-based function objects
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
index 72244ea4b125c683a2d51b0733f3873ba309f372..91e5eb7f04be83a65ca71e64f0f26fa7982ff4a5 100644
--- a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
+++ b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C
@@ -222,6 +222,13 @@ void Foam::wallShearStress::write()
         tmp<volSymmTensorField> Reff;
         if (phi.dimensions() == dimMass/dimTime)
         {
+            if (!mesh.foundObject<cmpModel>("turbulenceModel"))
+            {
+                FatalErrorIn("void Foam::wallShearStress::write()")
+                    << "Unable to find compressible turbulence model in the "
+                    << "database" << exit(FatalError);
+            }
+
             const cmpModel& model =
                 mesh.lookupObject<cmpModel>("turbulenceModel");
 
@@ -229,6 +236,13 @@ void Foam::wallShearStress::write()
         }
         else
         {
+            if (!mesh.foundObject<icoModel>("turbulenceModel"))
+            {
+                FatalErrorIn("void Foam::wallShearStress::write()")
+                    << "Unable to find incompressible turbulence model in the "
+                    << "database" << exit(FatalError);
+            }
+
             const icoModel& model =
                 mesh.lookupObject<icoModel>("turbulenceModel");
 
diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H
index b2cff373bece4fac9337ed316d21e2d11bf2cb15..71c3b5c34f40a8780573e52835a831a2f237563a 100644
--- a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H
+++ b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H
@@ -24,9 +24,26 @@ License
 Class
     Foam::wallShearStress
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
-    Evaluates and outputs wall shear stress.  Values written to time folders
-    as field 'wallShearStress'
+    This function object evaluates and outputs the shear stress at wall
+    patches.  The result is written as a volVectorField to time folders as
+    field 'wallShearStress'
+
+        \f[
+            Stress = R \dot n
+        \f]
+
+    The shear stress (symmetrical) tensor field is retrieved from the
+    turbulence model.
+
+    where
+    \vartable
+        R       | stress tensor
+        n       | patch normal vector (into the domain)
+    \endvartable
 
 SourceFiles
     wallShearStress.C
diff --git a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H
index 5ab936ab7eefbccba74bd85196390ab088302e0b..795e9aed896319784ae0dc3b222e82a77f031de7 100644
--- a/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H
+++ b/src/postProcessing/functionObjects/utilities/yPlusLES/yPlusLES.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::yPlusLES
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
     Evaluates and outputs turbulence y+ for LES models.  Values written to
     time folders as field 'yPlusLES'
diff --git a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H
index 2be629342424f959809d755b3b2382859e6d9540..38085ae7224f88ca29998ba8d4d305e0b2f4e013 100644
--- a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H
+++ b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::yPlusRAS
 
+Group
+    grpUtilitiesFunctionObjects
+
 Description
     Evaluates and outputs turbulence y+ for RAS models.  Values written to
     time folders as field 'yPlusRAS'
diff --git a/src/regionModels/doc/regionBoundaryConditionsDoc.H b/src/regionModels/doc/regionBoundaryConditionsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..7f4981d4adfc7da91892935f987879044a740a7d
--- /dev/null
+++ b/src/regionModels/doc/regionBoundaryConditionsDoc.H
@@ -0,0 +1,31 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpRegionBoundaryConditions Region boundary conditions
+@{
+    This group contains region model boundary conditions
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.H b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.H
index 5f3446c1826ecf25b11c04041d51aea0088e2387..503b023f955c89dccc683a0311766352aaf38413 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.H
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisTemperatureCoupled/filmPyrolysisTemperatureCoupledFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,12 +25,33 @@ Class
     Foam::filmPyrolysisTemperatureCoupledFvPatchScalarField
 
 Description
-    Temperature boundary condition for patches on the primary region:
+    This boundary condition is designed to be used in conjunction with surface
+    film and pyrolysis modelling.  It provides a temperature boundary condition
+    for patches on the primary region based on whether the patch is seen to
+    be 'wet', specified by:
 
-    - where the film height > height threshold value:
-        apply film surface temperature values
-    - else
-        apply pyrolysis surface temperature values
+        \f[
+            delta > delta_wet
+        \f]
+
+    where
+        \var delta     = film height [m]
+        \var delta_wet = film height above which the surface is considered wet
+
+    \li if the patch is wet, the temperature is set using the film temperature
+    \li otherwise, it is set using pyrolysis temperature
+
+    Example of the boundary condition specification:
+    \verbatim
+        myPatch
+        {
+            type            filmPyrolysisTemperatureCoupled;
+            phi             phi;      // name of flux field (default = phi)
+            rho             rho;      // name of density field (default = rho)
+            deltaWet        1e-4;     // threshold height for 'wet' film
+            value           uniform   300; // initial temperature / [K]
+        }
+    \endverbatim
 
 SourceFiles
     filmPyrolysisTemperatureCoupledFvPatchScalarField.C
@@ -63,7 +84,7 @@ class filmPyrolysisTemperatureCoupledFvPatchScalarField
         //- Name of density field
         word rhoName_;
 
-        //- Film height threshold beyond which it is considered 'wet'
+        //- Film height threshold beyond which it is considered 'wet' [m]
         scalar deltaWet_;
 
 
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.H b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.H
index 8b654ec1683759a4f72afccd00327b3ac25ce594..c7c4c5d24be220b83c3bb478b61b40148895b104 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.H
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisVelocityCoupled/filmPyrolysisVelocityCoupledFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,12 +25,33 @@ Class
     Foam::filmPyrolysisVelocityCoupledFvPatchVectorField
 
 Description
-    Velocity boundary condition for patches on the primary region:
+    This boundary condition is designed to be used in conjunction with surface
+    film and pyrolysis modelling.  It provides a velocity boundary condition
+    for patches on the primary region based on whether the patch is seen to
+    be 'wet', specified by:
 
-    - where the film height > height threshold value:
-        apply film surface velocity values
-    - else
-        apply pyrolysis out-gassing velocity values
+        \f[
+            delta > delta_wet
+        \f]
+
+    where
+        \var delta     = film height [m]
+        \var delta_wet = film height above which the surface is considered wet
+
+    \li if the patch is wet, the velocity is set using the film velocity
+    \li otherwise, it is set using pyrolysis out-gassing velocity
+
+    Example of the boundary condition specification:
+    \verbatim
+        myPatch
+        {
+            type            filmPyrolysisVelocityCoupled;
+            phi             phi;      // name of flux field (default = phi)
+            rho             rho;      // name of density field (default = rho)
+            deltaWet        1e-4;     // threshold height for 'wet' film
+            value           uniform   (0 0 0); // initial velocity / [m/s]
+        }
+    \endverbatim
 
 SourceFiles
     filmPyrolysisVelocityCoupledFvPatchVectorField.C
diff --git a/src/regionModels/regionModel/derivedFvPatches/mappedVariableThicknessWall/mappedVariableThicknessWallFvPatch.H b/src/regionModels/regionModel/derivedFvPatches/mappedVariableThicknessWall/mappedVariableThicknessWallFvPatch.H
index a203fc016966f7c27a7eb2caa00b971afdb78706..f4709bb62e66b008a88867432a357270fc51019b 100644
--- a/src/regionModels/regionModel/derivedFvPatches/mappedVariableThicknessWall/mappedVariableThicknessWallFvPatch.H
+++ b/src/regionModels/regionModel/derivedFvPatches/mappedVariableThicknessWall/mappedVariableThicknessWallFvPatch.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::mappedVariableThicknessWallFvPatch
 
+Group
+    grpRegionBoundaryConditions
+
 Description
     Take thickness field and number of layers and returns deltaCoeffs
     as 2.0/thickness/nLayers.
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/doc/surfaceFilmBoundaryConditionsDoc.H b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/doc/surfaceFilmBoundaryConditionsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..600a85bf2dcb102df43886d4438681b4b373c646
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/doc/surfaceFilmBoundaryConditionsDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpSurfaceFilmBoundaryConditions Surface film boundary conditions
+@{
+    \ingroup grpRegionBoundaryConditions
+    This group contains surface film model boundary conditions
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.H b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.H
index 194861cd92c77f33f41cf6ee9f69d710b6eb30aa..98b8f49808815c96fd206d5ec47d55ec6653b2cb 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.H
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/filmHeightInletVelocity/filmHeightInletVelocityFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,10 +24,52 @@ License
 Class
     Foam::filmHeightInletVelocityFvPatchVectorField
 
+Group
+    grpSurfaceFilmBoundaryConditions
+
 Description
-    Velocity inlet boundary condition for patches where the film height is
-    specified. The inflow velocity is obtained from the flux with a direction
-    normal to the patch faces.
+    This boundary condition is designed to be used in conjunction with
+    surface film modelling.  It provides a velocity inlet boundary condition
+    for patches where the film height is specified.  The inflow velocity is
+    obtained from the flux with a direction normal to the patch faces using:
+
+    \f[
+        U_p = \frac{n \phi}{\rho |Sf| \delta}
+    \f]
+
+    where
+    \vartable
+        U_p    | patch velocity [m/s]
+        n      | patch normal vector
+        \phi   | mass flux [kg/s]
+        \rho   | density [kg/m3]
+        Sf     | patch face area vectors [m2]
+        \delta | film height [m]
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        phi          | Flux field name         | no          | phi
+        rho          | density field name      | no          | rho
+        deltaf       | height field name       | no          | deltaf
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            filmHeightInletVelocity;
+        phi             phi;
+        rho             rho;
+        deltaf          deltaf;
+        value           uniform (0 0 0); // initial velocity / [m/s]
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     filmHeightInletVelocityFvPatchVectorField.C
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.H b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.H
index 25ec24197904a0733f856f577c80938aeb9a53a8..de61d62b946aee8d87a98cc374e97acb5974089f 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.H
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/alphatFilmWallFunction/alphatFilmWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,42 @@ License
 Class
     Foam::compressible::RASModels::alphatFilmWallFunctionFvPatchScalarField
 
+Group
+    grpSurfaceFilmBoundaryConditions grpCmpWallFunctions
+
 Description
-    Turbulent thermal diffusivity boundary conditions for use with surface
-    film models.
+    This boundary condition provides a turbulent thermal diffusivity condition
+    when using wall functions, for use with surface film models.  This
+    condition varies from the standard wall function by taking into account any
+    mass released from the film model.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        B            | model coefficient       | no          | 5.5
+        yPlusCrit    | critical y+ for transition to turbulent flow | no|11.05
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von-Karman constant     | no          | 0.41
+        Prt          | turbulent Prandtl number | no         | 0.85
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            alphatFilmWallFunction;
+        B               5.5;
+        yPlusCrit       11.05;
+        Cmu             0.09;
+        kappa           0.41;
+        Prt             0.85;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     alphatFilmWallFunctionFvPatchScalarField.C
diff --git a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/mutkFilmWallFunction/mutkFilmWallFunctionFvPatchScalarField.H b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/mutkFilmWallFunction/mutkFilmWallFunctionFvPatchScalarField.H
index aab054effb796d25ad25527064a9a3e6b30b07ef..7e7a2a99f84c1d5b275f8946f0a5481050c48067 100644
--- a/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/mutkFilmWallFunction/mutkFilmWallFunctionFvPatchScalarField.H
+++ b/src/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions/mutkFilmWallFunction/mutkFilmWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,11 +22,29 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::compressible::RASModels::
-    mutkFilmWallFunctionFvPatchScalarField
+    Foam::compressible::RASModels::mutkFilmWallFunctionFvPatchScalarField
+
+Group
+    grpSurfaceFilmBoundaryConditions grpCmpWallFunctions
 
 Description
-    Wall function boundary condition for use with surface film models.
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions, based on turbulence kinetic energy, for use with
+    surface film models.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutkFilmWallFunction;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutkWallFunctionFvPatchScalarField
 
 SourceFiles
     mutkFilmWallFunctionFvPatchScalarField.C
diff --git a/src/regionModels/thermoBaffleModels/derivedFvPatchFields/doc/thermoBaffleBoundaryConditionsDoc.H b/src/regionModels/thermoBaffleModels/derivedFvPatchFields/doc/thermoBaffleBoundaryConditionsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..ac1553d10405d66a902a8e9100884f3fd28e8ac6
--- /dev/null
+++ b/src/regionModels/thermoBaffleModels/derivedFvPatchFields/doc/thermoBaffleBoundaryConditionsDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpThermoBoundaryConditions Thermo baffle boundary conditions
+@{
+    \ingroup grpRegionBoundaryConditions
+    This group contains thermo baffle model boundary conditions
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/regionModels/thermoBaffleModels/derivedFvPatchFields/temperatureThermoBaffle/temperatureThermoBaffleFvPatchScalarField.H b/src/regionModels/thermoBaffleModels/derivedFvPatchFields/temperatureThermoBaffle/temperatureThermoBaffleFvPatchScalarField.H
index 7ad5ded31eb07b7e5f096dbfc4b6eeba786e4354..6dd5cbbb4e489becd1cae5330511cb8a0734a4e0 100644
--- a/src/regionModels/thermoBaffleModels/derivedFvPatchFields/temperatureThermoBaffle/temperatureThermoBaffleFvPatchScalarField.H
+++ b/src/regionModels/thermoBaffleModels/derivedFvPatchFields/temperatureThermoBaffle/temperatureThermoBaffleFvPatchScalarField.H
@@ -24,9 +24,12 @@ License
 Class
     Foam::temperatureThermoBaffleFvPatchScalarField
 
+Group
+    grpThermoBoundaryConditions
+
 Description
-    Thermal boundary applied to both sides:the baffle region and
-    in the primary region.
+    This boundary condition provides a coupled condition between the primary
+    baffle mesh regions.
 
     The primary region creates it and evolves the thermal baffle heat transfer
     equation.
@@ -95,6 +98,8 @@ Description
 
     value               uniform 300;
 
+SeeAlso
+    Foam::turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
 
 SourceFiles
     temperatureThermoBaffleFvPatchScalarField.C
diff --git a/src/sampling/probes/probes.H b/src/sampling/probes/probes.H
index 2bcebe16749041bc7a88803e2c09f369ad39e666..9634d626dd07d1fc8c840702cee1c17a33224dfb 100644
--- a/src/sampling/probes/probes.H
+++ b/src/sampling/probes/probes.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::probes
 
+Group
+    grpFunctionObjects
+
 Description
     Set of locations to sample.
 
diff --git a/src/sampling/sampledSet/sampledSet/sampledSet.H b/src/sampling/sampledSet/sampledSet/sampledSet.H
index 953f65d77e67e86b4cdc59437e5a244a028952f4..51905951f90b0f8481ed33b383e8f977a3343a2f 100644
--- a/src/sampling/sampledSet/sampledSet/sampledSet.H
+++ b/src/sampling/sampledSet/sampledSet/sampledSet.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::sampledSet
 
+Group
+    grpFunctionObjects
+
 Description
     Holds list of sampling points which is filled at construction time.
     Various implementations of this base class to e.g. get sampling points
diff --git a/src/sampling/sampledSurface/sampledSurface/sampledSurface.H b/src/sampling/sampledSurface/sampledSurface/sampledSurface.H
index 7ef9654ebdc651a88cbb2addd0fb7a03234b4570..2659af8f51799584f0ae2e7b758cc0660744f265 100644
--- a/src/sampling/sampledSurface/sampledSurface/sampledSurface.H
+++ b/src/sampling/sampledSurface/sampledSurface/sampledSurface.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::sampledSurface
 
+Group
+    grpFunctionObjects
+
 Description
     An abstract class for surfaces with sampling.
 
diff --git a/src/thermophysicalModels/basic/Make/files b/src/thermophysicalModels/basic/Make/files
index f49b474762a378a019eb3adf8d5190b43dd260a4..ca80ac7279a4a74876fde1b03e0c9e778fcbe586 100644
--- a/src/thermophysicalModels/basic/Make/files
+++ b/src/thermophysicalModels/basic/Make/files
@@ -1,18 +1,10 @@
-mixtures/basicMixture/basicMixture.C
-mixtures/basicMixture/basicMixtures.C
-
 basicThermo/basicThermo.C
-basicThermo/basicThermoNew.C
-
 fluidThermo/fluidThermo.C
-fluidThermo/fluidThermoNew.C
 
 psiThermo/psiThermo/psiThermo.C
-psiThermo/psiThermo/psiThermoNew.C
 psiThermo/hePsiThermo/hePsiThermos.C
 
 rhoThermo/rhoThermo/rhoThermo.C
-rhoThermo/rhoThermo/rhoThermoNew.C
 rhoThermo/heRhoThermo/heRhoThermos.C
 
 derivedFvPatchFields/fixedEnergy/fixedEnergyFvPatchScalarField.C
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.C b/src/thermophysicalModels/basic/basicThermo/basicThermo.C
index 13d6f0462c763525fc27551cfd574ec434ac1559..d20f1cbe4dcc1025afa06d6adf56bb8b8e0f004c 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermo.C
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.C
@@ -156,6 +156,15 @@ Foam::basicThermo::basicThermo
 {}
 
 
+Foam::autoPtr<Foam::basicThermo> Foam::basicThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return NewThermo<basicThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::basicThermo::~basicThermo()
@@ -247,6 +256,41 @@ void Foam::basicThermo::validate
 }
 
 
+Foam::wordList Foam::basicThermo::splitThermoName
+(
+    const word& thermoName,
+    const int nCmpt
+)
+{
+    wordList cmpts(nCmpt);
+
+    string::size_type beg=0, end=0;
+    int i = 0;
+
+    while
+    (
+        (end = thermoName.find('<', beg)) != string::npos
+     || (end = thermoName.find(',', beg)) != string::npos
+    )
+    {
+        if (beg < end)
+        {
+            cmpts[i] = thermoName.substr(beg, end-beg);
+            cmpts[i++].replaceAll(">","");
+        }
+        beg = end + 1;
+    }
+
+    if (beg < thermoName.size())
+    {
+        cmpts[i] = thermoName.substr(beg, string::npos);
+        cmpts[i++].replaceAll(">","");
+    }
+
+    return cmpts;
+}
+
+
 Foam::volScalarField& Foam::basicThermo::p()
 {
     return p_;
diff --git a/src/thermophysicalModels/basic/basicThermo/basicThermo.H b/src/thermophysicalModels/basic/basicThermo/basicThermo.H
index 079ffd7d34fd02f28f3a22178f6e46277c11fd93..85ffe044675b875c47539dca85153d4b8e6d8a60 100644
--- a/src/thermophysicalModels/basic/basicThermo/basicThermo.H
+++ b/src/thermophysicalModels/basic/basicThermo/basicThermo.H
@@ -40,6 +40,7 @@ SourceFiles
 #include "typeInfo.H"
 #include "IOdictionary.H"
 #include "autoPtr.H"
+#include "wordIOList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -93,6 +94,7 @@ public:
         (mesh)
     );
 
+
     // Constructors
 
         //- Construct from mesh
@@ -150,6 +152,12 @@ public:
             const word&
         ) const;
 
+        //- Split name of thermo package into a list of the components names
+        static wordList splitThermoName
+        (
+            const word& thermoName,
+            const int nCmpt
+        );
 
         //- Update properties
         virtual void correct() = 0;
@@ -336,6 +344,126 @@ public:
 };
 
 
+template<class Thermo>
+autoPtr<Thermo> NewThermo
+(
+    const fvMesh& mesh
+)
+{
+    IOdictionary thermoDict
+    (
+        IOobject
+        (
+            "thermophysicalProperties",
+            mesh.time().constant(),
+            mesh,
+            IOobject::MUST_READ_IF_MODIFIED,
+            IOobject::NO_WRITE,
+            false
+        )
+    );
+
+    word thermoTypeName;
+
+    if (thermoDict.isDict("thermoType"))
+    {
+        const dictionary& thermoTypeDict(thermoDict.subDict("thermoType"));
+
+        Info<< "Selecting thermodynamics package " << thermoTypeDict << endl;
+
+        const int nCmpt = 7;
+        const char* cmptNames[nCmpt] =
+        {
+            "type",
+            "mixture",
+            "transport",
+            "thermo",
+            "equationOfState",
+            "specie",
+            "energy"
+        };
+
+        // Construct the name of the thermo package from the components
+        thermoTypeName =
+            word(thermoTypeDict.lookup("type")) + '<'
+          + word(thermoTypeDict.lookup("mixture")) + '<'
+          + word(thermoTypeDict.lookup("transport")) + '<'
+          + word(thermoTypeDict.lookup("thermo")) + '<'
+          + word(thermoTypeDict.lookup("equationOfState")) + '<'
+          + word(thermoTypeDict.lookup("specie")) + ">>,"
+          + word(thermoTypeDict.lookup("energy")) + ">>>";
+
+        // Lookup the thermo package
+        typename Thermo::fvMeshConstructorTable::iterator cstrIter =
+            Thermo::fvMeshConstructorTablePtr_->find(thermoTypeName);
+
+        // Print error message if package not found in the table
+        if (cstrIter == Thermo::fvMeshConstructorTablePtr_->end())
+        {
+            FatalErrorIn(Thermo::typeName + "::New(const fvMesh&)")
+                << "Unknown " << Thermo::typeName << " type " << nl
+                << "thermoType" << thermoTypeDict << nl << nl
+                << "Valid " << Thermo::typeName << " types are:" << nl << nl;
+
+            // Get the list of all the suitable thermo packages available
+            wordList validThermoTypeNames
+            (
+                Thermo::fvMeshConstructorTablePtr_->sortedToc()
+            );
+
+            // Build a table of the thermo packages constituent parts
+            // Note: row-0 contains the names of constituent parts
+            List<wordList> validThermoTypeNameCmpts
+            (
+                validThermoTypeNames.size() + 1
+            );
+
+            validThermoTypeNameCmpts[0].setSize(nCmpt);
+            forAll(validThermoTypeNameCmpts[0], j)
+            {
+                validThermoTypeNameCmpts[0][j] = cmptNames[j];
+            }
+
+            // Split the thermo package names into their constituent parts
+            forAll(validThermoTypeNames, i)
+            {
+                validThermoTypeNameCmpts[i+1] =
+                    Thermo::splitThermoName(validThermoTypeNames[i], nCmpt);
+            }
+
+            // Print the table of available packages
+            // in terms of their constituent parts
+            printTable(validThermoTypeNameCmpts, FatalError);
+
+            FatalError<< exit(FatalError);
+        }
+
+        return autoPtr<Thermo>(cstrIter()(mesh));
+    }
+    else
+    {
+        thermoTypeName = word(thermoDict.lookup("thermoType"));
+
+        Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
+
+        typename Thermo::fvMeshConstructorTable::iterator cstrIter =
+            Thermo::fvMeshConstructorTablePtr_->find(thermoTypeName);
+
+        if (cstrIter == Thermo::fvMeshConstructorTablePtr_->end())
+        {
+            FatalErrorIn(Thermo::typeName + "::New(const fvMesh&)")
+                << "Unknown " << Thermo::typeName << " type "
+                << thermoTypeName << nl << nl
+                << "Valid " << Thermo::typeName << " types are:" << nl
+                << Thermo::fvMeshConstructorTablePtr_->sortedToc() << nl
+                << exit(FatalError);
+        }
+
+        return autoPtr<Thermo>(cstrIter()(mesh));
+    }
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/doc/thermophysicalBoundaryConditionsDoc.H b/src/thermophysicalModels/basic/derivedFvPatchFields/doc/thermophysicalBoundaryConditionsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..f7f9389b7188a11ba552920b52956128e8ec6369
--- /dev/null
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/doc/thermophysicalBoundaryConditionsDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpThermoBoundaryConditions Thermophysical boundary conditions
+@{
+    \ingroup grpBoundaryConditions
+    This group contains thermophysical model boundary conditions
+@}
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpFvPatchScalarField.H b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpFvPatchScalarField.H
index 6fb7820ee3cfa29e18a84016ca47e80d3dd0411f..aae2d9597b07a17adbff7b2515b7eb23b81d091e 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpFvPatchScalarField.H
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/energyJump/energyJumpFvPatchScalarField.H
@@ -24,7 +24,31 @@ License
 Class
     Foam::energyJumpFvPatchScalarField
 
+Group
+    grpThermoBoundaryConditions grpCoupledBoundaryConditions
+
 Description
+    This boundary condition provides an energy jump condition across a pair
+    of coupled patches.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        jump         | energy jump values      | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            energyJump;
+        jump            uniform 100;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedJumpFvPatchField
 
 SourceFiles
     energyJumpFvPatchScalarField.C
@@ -43,7 +67,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                    Class energyJumpFvPatchScalarField Declaration
+                Class energyJumpFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class energyJumpFvPatchScalarField
@@ -120,7 +144,6 @@ public:
 
     // Member functions
 
-
         // Evaluation functions
 
             //- Update the coefficients
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/fixedEnergy/fixedEnergyFvPatchScalarField.H b/src/thermophysicalModels/basic/derivedFvPatchFields/fixedEnergy/fixedEnergyFvPatchScalarField.H
index 2c3b83ed60193a0b323a7b4aa4846232ce014909..b37cb57e498afa425d8212993501cd209b623de9 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/fixedEnergy/fixedEnergyFvPatchScalarField.H
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/fixedEnergy/fixedEnergyFvPatchScalarField.H
@@ -24,8 +24,25 @@ License
 Class
     Foam::fixedEnergyFvPatchScalarField
 
+Group
+    grpThermoBoundaryConditions
+
 Description
-    A fixed boundary condition for internal energy
+    This boundary condition provides a fixed condition for internal energy
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            fixedEnergy;
+        value           uniform 100;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     fixedEnergyFvPatchScalarField.C
@@ -43,7 +60,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-              Class fixedEnergyFvPatchScalarField Declaration
+               Class fixedEnergyFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class fixedEnergyFvPatchScalarField
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.C b/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.C
index 42ed096ea60e297e05d85600c12843d4ebf7eeca..5f0e009d13c0731faf04bb3068ee972c80a825e9 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.C
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.C
@@ -97,10 +97,8 @@ void Foam::gradientEnergyFvPatchScalarField::updateCoeffs()
         return;
     }
 
-    const basicThermo& thermo = db().lookupObject<basicThermo>
-    (
-        "thermophysicalProperties"
-    );
+    const basicThermo& thermo =
+        db().lookupObject<basicThermo>("thermophysicalProperties");
 
     const label patchi = patch().index();
 
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.H b/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.H
index 6a5bc19f9e78b7962578d3fa3ce729e096c4512a..a510d3ac82db8f6ad2b902e9e113282227665946 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.H
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/gradientEnergy/gradientEnergyFvPatchScalarField.H
@@ -22,10 +22,42 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::gradientInternalEnergyFvPatchScalarField
+    Foam::gradientEnergyFvPatchScalarField
+
+Group
+    grpThermoBoundaryConditions
 
 Description
-    Gradient boundary condition for internal energy
+    This boundary condition provides a gradient condition for internal energy,
+    where the gradient is calculated using:
+
+        \f[
+            \nabla(e_p) = \nabla_\perp C_p(p, T) + \frac{e_p - e_c}{\Delta}
+        \f]
+
+    where
+    \vartable
+        e_p     | energy at patch faces [J]
+        e_c     | energy at patch internal cells [J]
+        p       | pressure [bar]
+        T       | temperature [K]
+        C_p     | specific heat [J/kg/K]
+        \Delta  | distance between patch face and internal cell centres [m]
+    \endvartable
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            gradientEnergy;
+        gradient        uniform 10;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedGradientFvPatchField
 
 SourceFiles
     gradientEnergyFvPatchScalarField.C
@@ -43,7 +75,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-          Class gradientEnergyFvPatchScalarField Declaration
+             Class gradientEnergyFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class gradientEnergyFvPatchScalarField
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/mixedEnergy/mixedEnergyFvPatchScalarField.H b/src/thermophysicalModels/basic/derivedFvPatchFields/mixedEnergy/mixedEnergyFvPatchScalarField.H
index 204e7c29382635a306411e771b4bb97c10874701..97c55cbd1ebce9285e0be6fda6f40259546e6454 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/mixedEnergy/mixedEnergyFvPatchScalarField.H
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/mixedEnergy/mixedEnergyFvPatchScalarField.H
@@ -24,8 +24,14 @@ License
 Class
     Foam::mixedEnergyFvPatchScalarField
 
+Group
+    grpThermoBoundaryConditions
+
 Description
-    Mixed boundary conditions for internal energy
+    This boundary condition provides a mixed condition for internal energy
+
+SeeAlso
+    Foam::mixedFvPatchField
 
 SourceFiles
     mixedEnergyFvPatchScalarField.C
@@ -43,7 +49,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-            Class mixedEnergyFvPatchScalarField Declaration
+               Class mixedEnergyFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class mixedEnergyFvPatchScalarField
diff --git a/src/thermophysicalModels/basic/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H b/src/thermophysicalModels/basic/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
index 3a30ea1660ff1628ef596c7f1f66725a84f52b11..da2ab661efd19dd253456865cb9a9bfa240a9a67 100644
--- a/src/thermophysicalModels/basic/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
+++ b/src/thermophysicalModels/basic/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,8 +24,30 @@ License
 Class
     Foam::wallHeatTransferFvPatchScalarField
 
+Group
+    grpThermoBoundaryConditions grpWallBoundaryConditions
+
 Description
-    Enthalpy boundary conditions for wall heat transfer
+    This boundary condition provides an enthalpy condition for wall heat
+    transfer
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Tinf         | wall temperature        | yes         |
+        alphaWall    | thermal diffusivity     | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            wallHeatTransfer;
+        Tif             uniform 500;
+        alphaWall       uniform 1;
+    }
+    \endverbatim
 
 SourceFiles
     wallHeatTransferFvPatchScalarField.C
@@ -43,7 +65,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                  Class wallHeatTransferFvPatch Declaration
+            Class wallHeatTransferFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class wallHeatTransferFvPatchScalarField
@@ -52,10 +74,10 @@ class wallHeatTransferFvPatchScalarField
 {
     // Private data
 
-        //- Tinf
+        //- Temperature at the wall
         scalarField Tinf_;
 
-        //- alphaWall
+        //- Thermal diffusivity at the wall
         scalarField alphaWall_;
 
 
diff --git a/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C b/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C
index e62ae73c6592af6ebb87ebd46e00416728298348..b0438e6431331c9c7c9942c771e3f42291e2854e 100644
--- a/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C
+++ b/src/thermophysicalModels/basic/fluidThermo/fluidThermo.C
@@ -49,6 +49,15 @@ Foam::fluidThermo::fluidThermo(const fvMesh& mesh, const dictionary& dict)
 {}
 
 
+Foam::autoPtr<Foam::fluidThermo> Foam::fluidThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return NewThermo<fluidThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::fluidThermo::~fluidThermo()
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.C b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.C
index 8fa95c5bbf97acd2156c42feca4a5a054ff8f5cc..02d65d7a27dba7880ffe22096d2676d78d97cba4 100644
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.C
+++ b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.C
@@ -24,29 +24,12 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "basicMixture.H"
-#include "fvMesh.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
 
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-defineTypeNameAndDebug(basicMixture, 0);
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-basicMixture::basicMixture(const dictionary&, const fvMesh&)
-{}
-
-
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-basicMixture::~basicMixture()
-{}
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.H b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.H
index f918d99d7b600df1477d50f3fa8072baca181a7b..8d8ed84cb0f8dbf916ab9da7ea393e006248a952 100644
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.H
+++ b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixture.H
@@ -35,8 +35,6 @@ SourceFiles
 #ifndef basicMixture_H
 #define basicMixture_H
 
-#include "typeInfo.H"
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -58,18 +56,11 @@ public:
     typedef basicMixture basicMixtureType;
 
 
-    // Runtime type information
-    TypeName("basicMixture");
-
-
     // Constructors
 
         //- Construct from dictionary and mesh
-        basicMixture(const dictionary&, const fvMesh&);
-
-
-    //- Destructor
-    virtual ~basicMixture();
+        basicMixture(const dictionary&, const fvMesh&)
+        {}
 };
 
 
diff --git a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C b/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
deleted file mode 100644
index ac7d3c65bddfa0620bcc5f4a258935fefe955163..0000000000000000000000000000000000000000
--- a/src/thermophysicalModels/basic/mixtures/basicMixture/basicMixtures.C
+++ /dev/null
@@ -1,253 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-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/>.
-
-Description
-    Mixture instantiation
-
-\*---------------------------------------------------------------------------*/
-
-#include "error.H"
-
-#include "basicMixture.H"
-#include "makeBasicMixture.H"
-
-#include "specie.H"
-#include "perfectGas.H"
-#include "rhoConst.H"
-#include "incompressiblePerfectGas.H"
-
-#include "eConstThermo.H"
-
-#include "hConstThermo.H"
-#include "janafThermo.H"
-#include "sensibleInternalEnergy.H"
-#include "sensibleEnthalpy.H"
-#include "thermo.H"
-
-#include "constTransport.H"
-#include "sutherlandTransport.H"
-
-#include "icoPolynomial.H"
-#include "hPolynomialThermo.H"
-#include "polynomialTransport.H"
-
-#include "pureMixture.H"
-
-#include "addToRunTimeSelectionTable.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleEnthalpy,
-    hConstThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleEnthalpy,
-    hConstThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleEnthalpy,
-    janafThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleEnthalpy,
-    hConstThermo,
-    rhoConst,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    polynomialTransport,
-    sensibleEnthalpy,
-    hPolynomialThermo,
-    icoPolynomial,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleEnthalpy,
-    hConstThermo,
-    incompressiblePerfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleEnthalpy,
-    hConstThermo,
-    incompressiblePerfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleEnthalpy,
-    janafThermo,
-    incompressiblePerfectGas,
-    specie
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleInternalEnergy,
-    eConstThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleInternalEnergy,
-    eConstThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleInternalEnergy,
-    hConstThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleInternalEnergy,
-    hConstThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleInternalEnergy,
-    janafThermo,
-    perfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleInternalEnergy,
-    hConstThermo,
-    rhoConst,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    polynomialTransport,
-    sensibleInternalEnergy,
-    hPolynomialThermo,
-    icoPolynomial,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    constTransport,
-    sensibleInternalEnergy,
-    hConstThermo,
-    incompressiblePerfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleInternalEnergy,
-    hConstThermo,
-    incompressiblePerfectGas,
-    specie
-);
-
-makeBasicMixture
-(
-    pureMixture,
-    sutherlandTransport,
-    sensibleInternalEnergy,
-    janafThermo,
-    incompressiblePerfectGas,
-    specie
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.C b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.C
index 02d5ddafc53640be7d64a4ee01aea9a3af22c625..bfd8ed2a8f83e6d9e8821060009e28a3d8eb73ea 100644
--- a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.C
+++ b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.C
@@ -45,13 +45,6 @@ pureMixture<ThermoType>::pureMixture
 {}
 
 
-// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
-
-template<class ThermoType>
-pureMixture<ThermoType>::~pureMixture()
-{}
-
-
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class ThermoType>
diff --git a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
index 5ed25b97f4f37939493a8e89637581d5b10c2eac..b2401e1123afef1e102467bf5b4996a192eb89c4 100644
--- a/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
+++ b/src/thermophysicalModels/basic/mixtures/pureMixture/pureMixture.H
@@ -65,20 +65,12 @@ public:
     typedef ThermoType thermoType;
 
 
-    //- Runtime type information
-    TypeName("pureMixture");
-
-
     // Constructors
 
         //- Construct from dictionary and mesh
         pureMixture(const dictionary&, const fvMesh&);
 
 
-    //- Destructor
-    virtual ~pureMixture();
-
-
     // Member functions
 
         const ThermoType& cellMixture(const label) const
diff --git a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C
index 134103106e6434e53e9f0d01db23183e1b401923..e9a6a2219ea356989f2b08fa719bc664cf119f58 100644
--- a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C
+++ b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermo.C
@@ -70,6 +70,15 @@ Foam::psiThermo::psiThermo(const fvMesh& mesh)
 {}
 
 
+Foam::autoPtr<Foam::psiThermo> Foam::psiThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return NewThermo<psiThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::psiThermo::~psiThermo()
diff --git a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C b/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C
deleted file mode 100644
index d0601fe15c0f1e76b4adb7994a0c4b66beb4f4a9..0000000000000000000000000000000000000000
--- a/src/thermophysicalModels/basic/psiThermo/psiThermo/psiThermoNew.C
+++ /dev/null
@@ -1,94 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-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/>.
-
-\*---------------------------------------------------------------------------*/
-
-#include "psiThermo.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-Foam::autoPtr<Foam::psiThermo> Foam::psiThermo::New
-(
-    const fvMesh& mesh
-)
-{
-    IOdictionary thermoDict
-    (
-        IOobject
-        (
-            "thermophysicalProperties",
-            mesh.time().constant(),
-            mesh,
-            IOobject::MUST_READ_IF_MODIFIED,
-            IOobject::NO_WRITE,
-            false
-        )
-    );
-
-    word thermoTypeName;
-
-    if (thermoDict.isDict("thermoType"))
-    {
-        const dictionary& thermoTypeDict(thermoDict.subDict("thermoType"));
-
-        word type(thermoTypeDict.lookup("type"));
-        word mixture(thermoTypeDict.lookup("mixture"));
-        word transport(thermoTypeDict.lookup("transport"));
-        word thermo(thermoTypeDict.lookup("thermo"));
-        word energy(thermoTypeDict.lookup("energy"));
-        word equationOfState(thermoTypeDict.lookup("equationOfState"));
-        word specie(thermoTypeDict.lookup("specie"));
-
-        thermoTypeName =
-            type + '<'
-          + mixture + '<'
-          + transport + '<'
-          + thermo + '<'
-          + equationOfState + '<'
-          + specie + ">>,"
-          + energy + ">>>";
-    }
-    else
-    {
-        thermoTypeName = word(thermoDict.lookup("thermoType"));
-    }
-
-    Info<< "Selecting thermodynamics package " << thermoTypeName << endl;
-
-    fvMeshConstructorTable::iterator cstrIter =
-        fvMeshConstructorTablePtr_->find(thermoTypeName);
-
-    if (cstrIter == fvMeshConstructorTablePtr_->end())
-    {
-        FatalErrorIn("psiThermo::New(const fvMesh&)")
-            << "Unknown psiThermo type " << thermoTypeName << nl << nl
-            << "Valid psiThermo types are:" << nl
-            << fvMeshConstructorTablePtr_->sortedToc() << nl
-            << exit(FatalError);
-    }
-
-    return autoPtr<psiThermo>(cstrIter()(mesh));
-}
-
-
-// ************************************************************************* //
diff --git a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C b/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C
index a43347cb9137afba6240c78df241ed458a830c5c..ababc128c2cbec11303109a601d4cf6e572b3c9c 100644
--- a/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C
+++ b/src/thermophysicalModels/basic/rhoThermo/rhoThermo/rhoThermo.C
@@ -130,6 +130,15 @@ Foam::rhoThermo::rhoThermo(const fvMesh& mesh, const dictionary& dict)
 {}
 
 
+Foam::autoPtr<Foam::rhoThermo> Foam::rhoThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return NewThermo<rhoThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::rhoThermo::~rhoThermo()
diff --git a/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/chemistrySolver.H b/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/chemistrySolver.H
index 5e8dcff289933dbbb78c8aa5cfb320cccc65162b..f8348150b0d86b60e9a5ca9fd50bcbfb0edb4da6 100644
--- a/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/chemistrySolver.H
+++ b/src/thermophysicalModels/chemistryModel/chemistrySolver/chemistrySolver/chemistrySolver.H
@@ -112,7 +112,6 @@ public:
     );
 
 
-
 #define makeChemistrySolverType(SS, ODEChem, Comp, Thermo)                    \
                                                                               \
     typedef SS<ODEChem<Comp, Thermo> > SS##ODEChem##Comp##Thermo;             \
@@ -132,26 +131,6 @@ public:
     );
 
 
-#define makeSolidChemistrySolverType(SS, ODEChem, Comp, SThermo, GThermo)     \
-                                                                              \
-    typedef SS<ODEChem<Comp, SThermo, GThermo> >                              \
-        SS##ODEChem##Comp##SThermo##GThermo;                                  \
-                                                                              \
-    defineTemplateTypeNameAndDebugWithName                                    \
-    (                                                                         \
-        SS##ODEChem##Comp##SThermo##GThermo,                                  \
-        #SS"<"#ODEChem"<"#Comp","#SThermo","#GThermo">>",                     \
-        0                                                                     \
-    );                                                                        \
-                                                                              \
-    addToRunTimeSelectionTable                                                \
-    (                                                                         \
-        Comp,                                                                 \
-        SS##ODEChem##Comp##SThermo##GThermo,                                  \
-        fvMesh                                                                \
-    );
-
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
diff --git a/src/thermophysicalModels/radiationModels/Make/files b/src/thermophysicalModels/radiationModels/Make/files
index c86d8aa8d321f33659d709a87fd51afb032cb5ca..9822712105c54ed7ed9214356e6c999b954305b2 100644
--- a/src/thermophysicalModels/radiationModels/Make/files
+++ b/src/thermophysicalModels/radiationModels/Make/files
@@ -26,8 +26,8 @@ submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionE
 
 
 /* Boundary conditions */
-derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.C
-derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.C
+derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C
+derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C
 derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
 derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
 derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C
similarity index 95%
rename from src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.C
rename to src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C
index 9068904d50c7f8a75f7560e5670acdef30390ce7..2bd7a38f3d76eb2757a884df8bff77172eeab31f 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,12 +23,10 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "MarshakRadiationMixedFvPatchScalarField.H"
+#include "MarshakRadiationFvPatchScalarField.H"
 #include "addToRunTimeSelectionTable.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
-
-#include "fvc.H"
 #include "radiationModel.H"
 #include "physicoChemicalConstants.H"
 
@@ -42,7 +40,7 @@ Foam::MarshakRadiationFvPatchScalarField::MarshakRadiationFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     radiationCoupledBase(p, "undefined", scalarField::null()),
-    TName_("undefined")
+    TName_("T")
 {
     refValue() = 0.0;
     refGrad() = 0.0;
@@ -78,7 +76,7 @@ Foam::MarshakRadiationFvPatchScalarField::MarshakRadiationFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     radiationCoupledBase(p, dict),
-    TName_(dict.lookup("T"))
+    TName_(dict.lookupOrDefault<word>("T", "T"))
 {
     if (dict.found("value"))
     {
@@ -193,7 +191,7 @@ void Foam::MarshakRadiationFvPatchScalarField::write(Ostream& os) const
 {
     mixedFvPatchScalarField::write(os);
     radiationCoupledBase::write(os);
-    os.writeKeyword("T") << TName_ << token::END_STATEMENT << nl;
+    writeEntryIfDifferent<word>(os, "T", "T", TName_);
 }
 
 
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.H
similarity index 85%
rename from src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.H
rename to src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.H
index a8ba8cbfc8132b5e4a3097fd3ff5fbf6c5e1285e..53506a5ed4a17c599c685ebaa886364b3c2b9cfd 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationMixedFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,36 @@ License
 Class
     Foam::MarshakRadiationFvPatchScalarField
 
+Group
+    grpThermoBoundaryConditions
+
 Description
-    Marshak boundary for radiation G field
-    - radiation temperature taken from patch value
+    A 'mixed' boundary condition that implements a Marshak condition for the
+    incident radiation field (usually written as G)
+
+    The radiation temperature is retrieved from the mesh database, using a
+    user specified temperature field name.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        T            | temperature field name  | no          | T
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            MarshakRadiation;
+        T               T;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::radiationCoupledBase
+    Foam::mixedFvPatchField
 
 SourceFiles
     MarshakRadiationFvPatchScalarField.C
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C
similarity index 75%
rename from src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.C
rename to src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C
index 711ac43bd9c122db22d8496f373dffa29cdf9b27..d98d0c56f51dd8ca963d11292afa673086d9a233 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,19 +23,17 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "MarshakRadiationFixedTMixedFvPatchScalarField.H"
+#include "MarshakRadiationFixedTemperatureFvPatchScalarField.H"
 #include "addToRunTimeSelectionTable.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
-
-#include "fvc.H"
 #include "radiationModel.H"
 #include "physicoChemicalConstants.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::MarshakRadiationFixedTMixedFvPatchScalarField::
-MarshakRadiationFixedTMixedFvPatchScalarField
+Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::
+MarshakRadiationFixedTemperatureFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF
@@ -51,10 +49,10 @@ MarshakRadiationFixedTMixedFvPatchScalarField
 }
 
 
-Foam::MarshakRadiationFixedTMixedFvPatchScalarField::
-MarshakRadiationFixedTMixedFvPatchScalarField
+Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::
+MarshakRadiationFixedTemperatureFvPatchScalarField
 (
-    const MarshakRadiationFixedTMixedFvPatchScalarField& ptf,
+    const MarshakRadiationFixedTemperatureFvPatchScalarField& ptf,
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
     const fvPatchFieldMapper& mapper
@@ -71,8 +69,8 @@ MarshakRadiationFixedTMixedFvPatchScalarField
 {}
 
 
-Foam::MarshakRadiationFixedTMixedFvPatchScalarField::
-MarshakRadiationFixedTMixedFvPatchScalarField
+Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::
+MarshakRadiationFixedTemperatureFvPatchScalarField
 (
     const fvPatch& p,
     const DimensionedField<scalar, volMesh>& iF,
@@ -95,10 +93,10 @@ MarshakRadiationFixedTMixedFvPatchScalarField
 }
 
 
-Foam::MarshakRadiationFixedTMixedFvPatchScalarField::
-MarshakRadiationFixedTMixedFvPatchScalarField
+Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::
+MarshakRadiationFixedTemperatureFvPatchScalarField
 (
-    const MarshakRadiationFixedTMixedFvPatchScalarField& ptf
+    const MarshakRadiationFixedTemperatureFvPatchScalarField& ptf
 )
 :
     mixedFvPatchScalarField(ptf),
@@ -112,10 +110,10 @@ MarshakRadiationFixedTMixedFvPatchScalarField
 {}
 
 
-Foam::MarshakRadiationFixedTMixedFvPatchScalarField::
-MarshakRadiationFixedTMixedFvPatchScalarField
+Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::
+MarshakRadiationFixedTemperatureFvPatchScalarField
 (
-    const MarshakRadiationFixedTMixedFvPatchScalarField& ptf,
+    const MarshakRadiationFixedTemperatureFvPatchScalarField& ptf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
@@ -132,7 +130,7 @@ MarshakRadiationFixedTMixedFvPatchScalarField
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::autoMap
+void Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::autoMap
 (
     const fvPatchFieldMapper& m
 )
@@ -142,7 +140,7 @@ void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::autoMap
 }
 
 
-void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::rmap
+void Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::rmap
 (
     const fvPatchScalarField& ptf,
     const labelList& addr
@@ -150,14 +148,14 @@ void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::rmap
 {
     mixedFvPatchScalarField::rmap(ptf, addr);
 
-    const MarshakRadiationFixedTMixedFvPatchScalarField& mrptf =
-        refCast<const MarshakRadiationFixedTMixedFvPatchScalarField>(ptf);
+    const MarshakRadiationFixedTemperatureFvPatchScalarField& mrptf =
+        refCast<const MarshakRadiationFixedTemperatureFvPatchScalarField>(ptf);
 
     Trad_.rmap(mrptf.Trad_, addr);
 }
 
 
-void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::updateCoeffs()
+void Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::updateCoeffs()
 {
     if (this->updated())
     {
@@ -190,7 +188,7 @@ void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::updateCoeffs()
 }
 
 
-void Foam::MarshakRadiationFixedTMixedFvPatchScalarField::write
+void Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::write
 (
     Ostream& os
 ) const
@@ -208,7 +206,7 @@ namespace Foam
     makePatchTypeField
     (
         fvPatchScalarField,
-        MarshakRadiationFixedTMixedFvPatchScalarField
+        MarshakRadiationFixedTemperatureFvPatchScalarField
     );
 }
 
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.H
similarity index 67%
rename from src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.H
rename to src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.H
index 97bde41076786e4a4fde990ec4d47853b9c4bb5b..646b0ca2678b23a97e8fead9db4826eb153352e8 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedT/MarshakRadiationFixedTMixedFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,19 +22,46 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::MarshakRadiationFixedTMixedFvPatchScalarField
+    Foam::MarshakRadiationFixedTemperatureFvPatchScalarField
+
+Group
+    grpThermoBoundaryConditions
 
 Description
-    Marshak boundary for radiation G field
-    - radiation temperature specified
+    A 'mixed' boundary condition that implements a Marshak condition for the
+    incident radiation field (usually written as G)
+
+    The radiation temperature field across the patch is supplied by the user
+    using the \c Trad entry.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        T            | temperature field name  | no          | T
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            MarshakRadiationFixedTemperature;
+        Trad            uniform 1000;       // radiation temperature field
+        value           uniform 0;          // place holder
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::radiationCoupledBase
+    Foam::mixedFvPatchField
 
 SourceFiles
-    MarshakRadiationFixedTMixedFvPatchScalarField.C
+    MarshakRadiationFixedTemperatureFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef MarshakRadiationFixedTMixedFvPatchField_H
-#define MarshakRadiationFixedTMixedFvPatchField_H
+#ifndef MarshakRadiationFixedTemperatureFvPatchScalarField_H
+#define MarshakRadiationFixedTemperatureFvPatchScalarField_H
 
 #include "mixedFvPatchFields.H"
 #include "radiationCoupledBase.H"
@@ -45,10 +72,10 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-        Class MarshakRadiationFixedTMixedFvPatchScalarField Declaration
+     Class MarshakRadiationFixedTemperatureFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
-class MarshakRadiationFixedTMixedFvPatchScalarField
+class MarshakRadiationFixedTemperatureFvPatchScalarField
 :
     public mixedFvPatchScalarField,
     public radiationCoupledBase
@@ -63,20 +90,20 @@ class MarshakRadiationFixedTMixedFvPatchScalarField
 public:
 
     //- Runtime type information
-    TypeName("MarshakRadiationFixedT");
+    TypeName("MarshakRadiationFixedTemperature");
 
 
     // Constructors
 
         //- Construct from patch and internal field
-        MarshakRadiationFixedTMixedFvPatchScalarField
+        MarshakRadiationFixedTemperatureFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&
         );
 
         //- Construct from patch, internal field and dictionary
-        MarshakRadiationFixedTMixedFvPatchScalarField
+        MarshakRadiationFixedTemperatureFvPatchScalarField
         (
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
@@ -85,18 +112,18 @@ public:
 
         //- Construct by mapping given MarshakRadiationFvPatchField onto a new
         //  patch
-        MarshakRadiationFixedTMixedFvPatchScalarField
+        MarshakRadiationFixedTemperatureFvPatchScalarField
         (
-            const MarshakRadiationFixedTMixedFvPatchScalarField&,
+            const MarshakRadiationFixedTemperatureFvPatchScalarField&,
             const fvPatch&,
             const DimensionedField<scalar, volMesh>&,
             const fvPatchFieldMapper&
         );
 
         //- Construct as copy
-        MarshakRadiationFixedTMixedFvPatchScalarField
+        MarshakRadiationFixedTemperatureFvPatchScalarField
         (
-            const MarshakRadiationFixedTMixedFvPatchScalarField&
+            const MarshakRadiationFixedTemperatureFvPatchScalarField&
         );
 
         //- Construct and return a clone
@@ -104,14 +131,14 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new MarshakRadiationFixedTMixedFvPatchScalarField(*this)
+                new MarshakRadiationFixedTemperatureFvPatchScalarField(*this)
             );
         }
 
         //- Construct as copy setting internal field reference
-        MarshakRadiationFixedTMixedFvPatchScalarField
+        MarshakRadiationFixedTemperatureFvPatchScalarField
         (
-            const MarshakRadiationFixedTMixedFvPatchScalarField&,
+            const MarshakRadiationFixedTemperatureFvPatchScalarField&,
             const DimensionedField<scalar, volMesh>&
         );
 
@@ -123,7 +150,11 @@ public:
         {
             return tmp<fvPatchScalarField>
             (
-                new MarshakRadiationFixedTMixedFvPatchScalarField(*this, iF)
+                new MarshakRadiationFixedTemperatureFvPatchScalarField
+                (
+                    *this,
+                    iF
+                )
             );
         }
 
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
index 02637c203a1de3474f2d59a7ebd761933b2f7733..5817279076fcbbf90e12553acbfa81d6377e9fd2 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,7 +45,7 @@ greyDiffusiveRadiationMixedFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     radiationCoupledBase(p, "undefined", scalarField::null()),
-    TName_("undefinedT")
+    TName_("T")
 {
     refValue() = 0.0;
     refGrad() = 0.0;
@@ -83,7 +83,7 @@ greyDiffusiveRadiationMixedFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     radiationCoupledBase(p, dict),
-    TName_(dict.lookup("T"))
+    TName_(dict.lookupOrDefault<word>("T", "T"))
 {
     if (dict.found("refValue"))
     {
@@ -262,7 +262,7 @@ void Foam::radiation::greyDiffusiveRadiationMixedFvPatchScalarField::write
 {
     mixedFvPatchScalarField::write(os);
     radiationCoupledBase::write(os);
-    os.writeKeyword("T") << TName_ << token::END_STATEMENT << nl;
+    writeEntryIfDifferent<word>(os, "T", "T", TName_);
 }
 
 
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.H
index 2199242b59204e986489e4931eb2982a05bc8252..f1a38077e0acb383c0b83fae37fe654a4ce1dcd5 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,10 +22,41 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::greyDiffusiveRadiationMixedFvPatchScalarField
+    Foam::radiation::greyDiffusiveRadiationMixedFvPatchScalarField
+
+Group
+    grpThermoBoundaryConditions
 
 Description
-    Radiation temperature specified
+    This boundary condition provides a grey-diffuse condition for radiation
+    intensity, \c I, for use with the finite-volume discrete-ordinates model
+    (fvDOM), in which the radiation temperature is retrieved from the
+    temperature field boundary condition.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        T            | temperature field name  | no          | T
+        emissivityMode | emissivity mode: solidThermo or lookup | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            greyDiffusiveRadiation;
+        T               T;
+        emissivityMode  solidThermo;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::radiation::radiationModel
+    Foam::radiation::fvDOM
+    Foam::radiationCoupledBase
+    Foam::mixedFvPatchField
 
 SourceFiles
     greyDiffusiveRadiationMixedFvPatchScalarField.C
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
index 74a552ddb16476ea4e4fb9a402adaeae7183f281..3dff551ee7fe1717b7dd1efe43cbb6c1dbd13356 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,10 +22,39 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::greyDiffusiveViewFactorFixedValueFvPatchScalarField
+    Foam::radiation::greyDiffusiveViewFactorFixedValueFvPatchScalarField
+
+Group
+    grpThermoBoundaryConditions
 
 Description
-    Radiation temperature specified
+    This boundary condition provides a grey-diffuse condition for radiative
+    heat flux, \c Qr, for use with the view factor model
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Qro          | external radiative heat flux | yes    |
+        emissivityMode | emissivity mode: solidThermo or lookup | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            greyDiffusiveRadiationViewFactor;
+        Qro             uniform 0;
+        emissivityMode  solidThermo;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::radiation::radiationModel
+    Foam::radiation::viewFactor
+    Foam::radiationCoupledBase
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     greyDiffusiveViewFactorFixedValueFvPatchScalarField.C
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H
index d4a9599395c3dab6bb465c6d9a1ea2e6cdfb82bf..01d8e8761c58ad996b9d1bea44338662a7f32bc9 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H
@@ -55,12 +55,14 @@ namespace Foam
 class radiationCoupledBase
 {
 public:
-        //- Type of supplied emissivity
-        enum emissivityMethodType
-        {
-            SOLIDTHERMO,
-            LOOKUP
-        };
+
+    //- Type of supplied emissivity
+    enum emissivityMethodType
+    {
+        SOLIDTHERMO,
+        LOOKUP
+    };
+
 
 private:
 
@@ -72,6 +74,7 @@ private:
         //- Underlying patch
         const fvPatch& patch_;
 
+
 protected:
 
     // Protected data
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
index ff0bb83b4603963d32238e43dfeceb145c6e3367..e6e7b4b225915b3254a3c5ee4c6bcf40ef7fdab2 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C
@@ -46,7 +46,7 @@ wideBandDiffusiveRadiationMixedFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     radiationCoupledBase(p, "undefined", scalarField::null()),
-    TName_("undefinedT")
+    TName_("T")
 {
     refValue() = 0.0;
     refGrad() = 0.0;
@@ -84,7 +84,7 @@ wideBandDiffusiveRadiationMixedFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     radiationCoupledBase(p, dict),
-    TName_(dict.lookup("T"))
+    TName_(dict.lookupOrDefault<word>("T", "T"))
 {
     if (dict.found("value"))
     {
@@ -249,8 +249,7 @@ void Foam::radiation::wideBandDiffusiveRadiationMixedFvPatchScalarField::write
 {
     mixedFvPatchScalarField::write(os);
     radiationCoupledBase::write(os);
-    os.writeKeyword("T") << TName_ << token::END_STATEMENT << nl;
-
+    writeEntryIfDifferent<word>(os, "T", "T", TName_);
 }
 
 
diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.H
index cd9fb9aecedca24f8ed192c8f9340f623d4856ae..4f7afc0fa0ee417e43a6fd7886a2536b27538f8e 100644
--- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.H
+++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,10 +22,34 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::wideBandDiffusiveRadiationMixedFvPatchScalarField
+    Foam::radiation::wideBandDiffusiveRadiationMixedFvPatchScalarField
+
+Group
+    grpThermoBoundaryConditions
 
 Description
-    Radiation temperature specified
+    This boundary condition provides a wide-band, diffusive radiation
+    condition, where the patch temperature is specified.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        T            | temperature field name  | no          | T
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            wideBandDiffusiveRadiation;
+        value           uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mixedFvPatchScalarField
+    Foam::radiationCoupledBase
 
 SourceFiles
     wideBandDiffusiveRadiationMixedFvPatchScalarField.C
diff --git a/src/thermophysicalModels/radiationModels/radiationModel/fvDOM/fvDOM/fvDOM.H b/src/thermophysicalModels/radiationModels/radiationModel/fvDOM/fvDOM/fvDOM.H
index 1e49063fa4248ba728e030e72f1f3d5f1936731d..dda36a5c5d6119f34fda6c376531a877144b9a4b 100644
--- a/src/thermophysicalModels/radiationModels/radiationModel/fvDOM/fvDOM/fvDOM.H
+++ b/src/thermophysicalModels/radiationModels/radiationModel/fvDOM/fvDOM/fvDOM.H
@@ -34,14 +34,16 @@ Description
         wideBandAbsorptionEmission
 
     i.e. dictionary
-    fvDOMCoeffs
-    {
-        nPhi    1;          // azimuthal angles in PI/2 on X-Y.(from Y to X)
-        nTheta  2;          // polar angles in PI (from Z to X-Y plane)
-        convergence 1e-4;   // convergence criteria for radiation iteration
-    }
-
-    solverFreq   1; // Number of flow iterations per radiation iteration
+    \verbatim
+        fvDOMCoeffs
+        {
+            nPhi    1;          // azimuthal angles in PI/2 on X-Y.(from Y to X)
+            nTheta  2;          // polar angles in PI (from Z to X-Y plane)
+            convergence 1e-4;   // convergence criteria for radiation iteration
+        }
+
+        solverFreq   1; // Number of flow iterations per radiation iteration
+    \endverbatim
 
     The total number of solid angles is  4*nPhi*nTheta.
 
diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H b/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H
index f528bc50a5dccffcc9d050e6fbdf5d28ec375cb1..39e49524e431cf492d87290f53c9ab9c441ead74 100644
--- a/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H
+++ b/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolverType.H
@@ -41,6 +41,11 @@ namespace Foam
 
 #define makeSolidChemistrySolverType(SS, ODEChem, Comp, SThermo, GThermo)     \
                                                                               \
+    typedef ODESolidChemistryModel<Comp, SThermo, GThermo>                    \
+        ODESolidChemistryModel##Comp##SThermo##GThermo;                       \
+                                                                              \
+    makeChemistrySolver(ODESolidChemistryModel##Comp##SThermo##GThermo)       \
+                                                                              \
     typedef SS<ODEChem<Comp, SThermo, GThermo> >                              \
         SS##ODEChem##Comp##SThermo##GThermo;                                  \
                                                                               \
diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolvers.C b/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolvers.C
index cfdb9c2d534b378b6bd6e1c63907423e0f21233a..64cc73126628f523957c47c2d1106626571dd7b2 100644
--- a/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolvers.C
+++ b/src/thermophysicalModels/solidChemistryModel/solidChemistrySolver/makeSolidChemistrySolvers.C
@@ -27,8 +27,6 @@ License
 #include "solidThermoPhysicsTypes.H"
 #include "thermoPhysicsTypes.H"
 
-#include "chemistrySolver.H"
-
 #include "ODESolidChemistryModel.H"
 #include "solidChemistryModel.H"
 
@@ -38,12 +36,6 @@ License
 
 namespace Foam
 {
-    typedef ODESolidChemistryModel
-        <solidChemistryModel, hConstSolidThermoPhysics, gasThermoPhysics>
-            solidODEChemistryConstThermo;
-
-    makeChemistrySolver(solidODEChemistryConstThermo)
-
     makeSolidChemistrySolverType
     (
         ode,
@@ -53,12 +45,6 @@ namespace Foam
         gasThermoPhysics
     )
 
-    typedef ODESolidChemistryModel
-        <solidChemistryModel, hExponentialSolidThermoPhysics, gasThermoPhysics>
-            solidODEChemistryExpThermo;
-
-    makeChemistrySolver(solidODEChemistryExpThermo)
-
     makeSolidChemistrySolverType
     (
         ode,
diff --git a/src/transportModels/twoPhaseInterfaceProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/src/transportModels/twoPhaseInterfaceProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
index de6086c906fd6f4c67ea4850d88bcc5aecab029d..6d1f65fe73f0c42feabea6a470be8093302116b8 100644
--- a/src/transportModels/twoPhaseInterfaceProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
+++ b/src/transportModels/twoPhaseInterfaceProperties/alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::alphaContactAngleFvPatchScalarField
 
+Group
+    grpWallBoundaryConditions grpGenericBoundaryConditions
+
 Description
     Abstract base class for alphaContactAngle boundary conditions.
 
@@ -47,11 +50,12 @@ Description
     on p_rgh must set to guarantee that the flux is corrected to be zero at the
     wall e.g.
 
-        walls
-        {
-            type            fixedFluxPressure;
-            adjoint         no;
-        }
+    \verbatim
+    myPatch
+    {
+        type            alphaContactAngle;
+    }
+    \endverbatim
 
     If "limit zeroGradient;" is used the pressure BCs can be left as before.
 
@@ -72,7 +76,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                   Class alphaContactAngleFvPatch Declaration
+             Class alphaContactAngleFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class alphaContactAngleFvPatchScalarField
diff --git a/src/turbulenceModels/compressible/LES/DESModel/DESModel.C b/src/turbulenceModels/compressible/LES/DESModel/DESModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..74873f49e56f6f19332bf5df5a257488ac54d5dc
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/DESModel/DESModel.C
@@ -0,0 +1,57 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "DESModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+
+// * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * * //
+
+DESModel::DESModel
+(
+    const word& type,
+    const volScalarField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& phi,
+    const fluidThermo& thermoPhysicalModel,
+    const word& turbulenceModelName
+)
+:
+    LESModel(type, rho, U, phi, thermoPhysicalModel, turbulenceModelName)
+
+{}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace compressible
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/DESModel/DESModel.H b/src/turbulenceModels/compressible/LES/DESModel/DESModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..9832c4de389aec12ac2926edf54423fe7624c952
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/DESModel/DESModel.H
@@ -0,0 +1,114 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Group
+    grpCmpDESTurbulence
+
+Class
+    Foam::compressible::DESModel
+
+Description
+    Extension of LES models to provide an interface for Detached Eddy
+    Simulation turbulence models
+
+SeeAlso
+    Foam::LESModel
+
+SourceFiles
+    DESModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef compressibleDESModel_H
+#define compressibleDESModel_H
+
+// note: use full(er) path so that derived utilities can bring in
+// incompressible and compressible variants
+
+#include "compressible/LES/LESModel/LESModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+
+/*---------------------------------------------------------------------------*\
+                          Class DESModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class DESModel
+:
+    public LESModel
+{
+
+private:
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        DESModel(const DESModel&);
+
+        //- Disallow default bitwise assignment
+        DESModel& operator=(const DESModel&);
+
+
+public:
+
+    // Constructors
+
+        //- Construct from components
+        DESModel
+        (
+            const word& type,
+            const volScalarField& rho,
+            const volVectorField& U,
+            const surfaceScalarField& phi,
+            const fluidThermo& thermoPhysicalModel,
+            const word& turbulenceModelName
+        );
+
+
+    //- Destructor
+    virtual ~DESModel()
+    {}
+
+
+    // Public Member Functions
+
+        //- Return the LES field indicator
+        virtual tmp<volScalarField> LESRegion() const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace compressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/DESModel/DESModelDoc.H b/src/turbulenceModels/compressible/LES/DESModel/DESModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..e9deb3208edc0f55672c0c3afdda65716e28fe23
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/DESModel/DESModelDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpCmpDESTurbulence Compressible DES turbulence
+@{
+    \ingroup grpCmpTurbulence
+    This group contains compressible DES models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
index 38e743c24230f2f3e4c1cafeb135160ed91dcc37..f84c00f5d3ebd4d3abb4da65e0ac5eaad69f2aa2 100644
--- a/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
+++ b/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::DeardorffDiffStress
 
+Group
+    grpCmpLESTurbulence
+
 Description
     Differential SGS Stress Equation Model for compressible flows
 
diff --git a/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H
index 7e32d57396f99f0ea751223df915dcb2e3a63453..d4af6e5e2a7149f6a36a8409bf824d2454c0b916 100644
--- a/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H
+++ b/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::GenEddyVisc
 
+Group
+    grpCmpLESTurbulence
+
 Description
     General base class for all compressible models that can be implemented as
     an eddy viscosity, i.e. algebraic and one-equation models.
diff --git a/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H
index 202a85371ead0719fad8e24d40b1ddfca8baec53..44eef6da8f164f0ee14c566fbedb3bdf4445c412 100644
--- a/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H
+++ b/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::GenSGSStress
 
+Group
+    grpCmpLESTurbulence
+
 Description
     General base class for all compressible models that directly
     solve for the SGS stress tensor B.
@@ -52,7 +55,7 @@ namespace LESModels
 {
 
 /*---------------------------------------------------------------------------*\
-                        Class GenSGSStress Declaration
+                         Class GenSGSStress Declaration
 \*---------------------------------------------------------------------------*/
 
 class GenSGSStress
diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModel.H b/src/turbulenceModels/compressible/LES/LESModel/LESModel.H
index 47b25419204b167cbad12eb116ddaad92d209410..f33a1681dcf2eccf9c853f39ff560e2764c04e44 100644
--- a/src/turbulenceModels/compressible/LES/LESModel/LESModel.H
+++ b/src/turbulenceModels/compressible/LES/LESModel/LESModel.H
@@ -24,10 +24,12 @@ License
 Namespace
     Foam::compressible::LESModels
 
+Group
+    grpCmpLESTurbulence
+
 Description
     Namespace for compressible LES models.
 
-
 Class
     Foam::compressible::LESModel
 
diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModelDoc.H b/src/turbulenceModels/compressible/LES/LESModel/LESModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..ac8c52e36ad9580d7ea04cc09555476d52af335a
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/LESModel/LESModelDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpCmpLESTurbulence Compressible LES turbulence
+@{
+    \ingroup grpCmpTurbulence
+    This group contains compressible LES models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/compressible/LES/Make/files b/src/turbulenceModels/compressible/LES/Make/files
index cc52d88433d2bc58b9549e147c01ed4bbfb5b098..1ed6bd6b4ba9b7bbc2caec0d507e5c7a6aff6fdc 100644
--- a/src/turbulenceModels/compressible/LES/Make/files
+++ b/src/turbulenceModels/compressible/LES/Make/files
@@ -1,4 +1,5 @@
 LESModel/LESModel.C
+DESModel/DESModel.C
 GenEddyVisc/GenEddyVisc.C
 GenSGSStress/GenSGSStress.C
 
diff --git a/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H
index 6ba2e6634caaa56b727686249f447a46fdb58a8a..56821ae60eb481f5b024ad5ed0bddbafce65a191 100644
--- a/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H
+++ b/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::Smagorinsky
 
+Group
+    grpCmpLESTurbulence
+
 Description
     The choric Smagorinsky Model for compressible flows.
 
diff --git a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C
index bda2af653d3e466e2eb346a3626fe84bce3b5003..6994f926e37dc402a4702d850ca1f6a441d99306 100644
--- a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C
@@ -118,7 +118,7 @@ SpalartAllmaras::SpalartAllmaras
     const word& modelName
 )
 :
-    LESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
+    DESModel(modelName, rho, U, phi, thermoPhysicalModel, turbulenceModelName),
 
     sigmaNut_
     (
@@ -364,6 +364,32 @@ bool SpalartAllmaras::read()
 }
 
 
+tmp<volScalarField> SpalartAllmaras::LESRegion() const
+{
+    volScalarField wd(wallDist(mesh_).y());
+
+    tmp<volScalarField> tLESRegion
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "DES::LESRegion",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            neg(min(CDES_*delta(), wd) - wd)
+//            mesh_,
+//            dimensionedScalar("zero", dimless, 0.0)
+        )
+    );
+
+    return tLESRegion;
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace LESModels
diff --git a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H
index cac2c693f3e55acb4423fbce49133eab02badb4e..18975789422911059336d189d54f3fae1b3feb44 100644
--- a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::SpalartAllmaras
 
+Group
+    grpCmpDESTurbulence
+
 Description
     SpalartAllmaras for compressible flows
 
@@ -35,7 +38,7 @@ SourceFiles
 #ifndef compressibleSpalartAllmaras_H
 #define compressibleSpalartAllmaras_H
 
-#include "LESModel.H"
+#include "DESModel.H"
 #include "volFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -53,7 +56,7 @@ namespace LESModels
 
 class SpalartAllmaras
 :
-    public LESModel
+    public DESModel
 {
     // Private data
 
@@ -166,6 +169,9 @@ public:
 
         //- Read LESProperties dictionary
         virtual bool read();
+
+        //- Return the LES field indicator
+        virtual tmp<volScalarField> LESRegion() const;
 };
 
 
diff --git a/src/turbulenceModels/compressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H b/src/turbulenceModels/compressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H
index e7727db7858181ad4b4b35b6afee942004ccf914..fca371f0d3904480ed43961f779433342b2b856d 100644
--- a/src/turbulenceModels/compressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H
+++ b/src/turbulenceModels/compressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::homogeneousDynOneEqEddy
 
+Group
+    grpCmpLESTurbulence
+
 Description
     One Equation Eddy Viscosity Model for compressible flows.
 
diff --git a/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H b/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H
index d35ee9da1670ffbcebc54fdfb7cae2c51ed1bf1f..e3e836d3a58c5aa0332c237b2855eda6e7ec5940 100644
--- a/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H
+++ b/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::lowReOneEqEddy
 
+Group
+    grpCmpLESTurbulence
+
 Description
     One Equation Eddy Viscosity Model for compressible flow
 
diff --git a/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H
index 1220e39a69526b51952c89908fd17d83455585da..7e0896935ca1e71d89b1a7d65653163783ee670b 100644
--- a/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H
+++ b/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::LESModels::oneEqEddy
 
+Group
+    grpCmpLESTurbulence
+
 Description
     One Equation Eddy Viscosity Model for compressible flows
 
diff --git a/src/turbulenceModels/compressible/RAS/LRR/LRR.H b/src/turbulenceModels/compressible/RAS/LRR/LRR.H
index 2fee193d6797e6fd85fcd960ebff3b24de70622e..a80bf4171be81cb7bc6c671ee55806d0f7303ff7 100644
--- a/src/turbulenceModels/compressible/RAS/LRR/LRR.H
+++ b/src/turbulenceModels/compressible/RAS/LRR/LRR.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::LRR
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Launder, Reece and Rodi Reynolds-stress turbulence model for
     compressible flows.
diff --git a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
index 7e8760946900990b5498123503ae295988eaed5e..d7f09205b08c8dc78bffddb3dfdf0f0e28d77f57 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
+++ b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::LaunderGibsonRSTM
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Launder-Gibson Reynolds stress turbulence model for compressible flows.
 
diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
index 6ab57c98ef9db558fcaf65b80de9a4615d24df99..034b542ad99875c0291c44bd23de9bce53e4bf1a 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
+++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::LaunderSharmaKE
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Launder and Sharma low-Reynolds k-epsilon turbulence model for
     compressible and combusting flows.
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
index 377515afa7982d1500cb000d5fd4ae55b3d6731a..1efe2cd08dfdd64be7c8a4e1080120d76976479d 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
@@ -27,7 +27,6 @@ Namespace
 Description
     Namespace for compressible RAS turbulence models.
 
-
 Class
     Foam::compressible::RASModel
 
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModelDoc.H b/src/turbulenceModels/compressible/RAS/RASModel/RASModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..53757f8141d0733e92dbba76c37256230739e478
--- /dev/null
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModelDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpCmpRASTurbulence Compressible RAS turbulence
+@{
+    \ingroup grpCmpTurbulence
+    This group contains compressible RAS models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H
index ba0077e7c4dae87813ec1462b690dec5800e14fa..2c95acd766dad44a26dd0e1250e3ac7630737186 100644
--- a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H
+++ b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::RNGkEpsilon
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Renormalisation group k-epsilon turbulence model for compressible flows.
 
diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
index 0bea2f35a01d1b017a6501504dc7de3fb8713f96..ea829fc88dfbe69502c2346ec6723a84df45a952 100644
--- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::SpalartAllmaras
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Spalart-Allmaras one-eqn mixing-length model for compressible
     external flows.
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H
index 8731d01a6e7aeaf28c53628aea09dbce675eadd7..2bc06bb0e47751bf72d8887ca9ba011fb647ed34 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H
@@ -24,8 +24,50 @@ License
 Class
     Foam::compressible::RASModels::convectiveHeatTransferFvPatchScalarField
 
+Group
+    grpCmpRASBoundaryConditions
+
 Description
-    Convective heat transfer boundary condition
+    This boundary condition provides a convective heat transfer coefficient
+    condition
+
+    if Re > 500000
+    \f[
+        htc_p = \frac{0.664 Re^{0.5} Pr^{0.333} \kappa_p}{L}
+    \f]
+    else
+    \f[
+        htc_p = \frac{0.037 Re^{0.8} Pr^{0.333} \kappa_p}{L}
+    \f]
+
+    where
+
+    \vartable
+        htc_p   | patch convective heat transfer coefficient
+        Re      | Reynolds number
+        Pr      | Prandtl number
+        \kappa_p | thermal conductivity
+        L       | length scale
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        L            | Length scale [m]        | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            convectiveHeatTransfer;
+        L               0.1;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     convectiveHeatTransferFvPatchScalarField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/doc/compressibleRASBoundaryConditionsDoc.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/doc/compressibleRASBoundaryConditionsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..d0ef1e1af9ce1d1b4627ffd3d0efb87ac5cc2167
--- /dev/null
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/doc/compressibleRASBoundaryConditionsDoc.H
@@ -0,0 +1,39 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpCmpRASBoundaryConditions RAS compressible boundary conditions
+@{
+    \ingroup grpCmpRASTurbulence
+    This group contains compressible RAS turbulence model boundary conditions
+@}
+
+\defgroup grpCmpWallFunctions RAS compressible wall functions
+@{
+    \ingroup grpCmpRASBoundaryConditions
+    This group contains compressible RAS turbulence model wall functions
+@}
+
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
index 25a34bf82e563868407890f422edff82569ed897..2811ea25795e9734a7faca4ebdfc0e6708aad2a5 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,14 +48,15 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
 :
     inletOutletFvPatchScalarField(p, iF),
     mixingLength_(0.0),
-    phiName_("undefined-phi"),
-    kName_("undefined-k")
+    phiName_("phi"),
+    kName_("k")
 {
     this->refValue() = 0.0;
     this->refGrad() = 0.0;
     this->valueFraction() = 0.0;
 }
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
@@ -71,6 +72,7 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
     kName_(ptf.kName_)
 {}
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
@@ -91,6 +93,7 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
     this->valueFraction() = 0.0;
 }
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
@@ -103,6 +106,7 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
     kName_(ptf.kName_)
 {}
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H
index 25a401239a47ca54e88385e0d3d551f48678ef38..2031e2a808ac4692580927c0ee9d82485b093fbb 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,19 +25,52 @@ Class
     Foam::compressible::
         turbulentMixingLengthDissipationRateInletFvPatchScalarField
 
+Group
+    grpCmpRASBoundaryConditions grpInletBoundaryConditions
+
 Description
-    Calculate epsilon via the mixing length [m]
+    This boundary condition provides a turbulence dissipation, \f$\epsilon\f$
+    (epsilon) inlet condition based on a specified mixing length.  The patch
+    values are calculated using:
+
+        \f[
+            \epsilon_p = \frac{C_{\mu}^{0.75} k^{1.5}}{L}
+        \f]
+   
+    where
+
+    \vartable
+        \epsilon_p | patch epsilon values
+        C_{\mu} | Model coefficient, set to 0.09
+        k       | turbulence kinetic energy
+        L       | length scale
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        mixingLength | Length scale [m]        | yes         |
+        phi          | flux field name         | no          | phi
+        k            | turbulence kinetic energy field name | no | k
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type        compressible::turbulentMixingLengthDissipationRateInlet;
-            mixingLength    0.005;         // 5 mm
-            value           uniform 200;   // placeholder
-        }
+    myPatch
+    {
+        type            compressible::turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.005;
+        value           uniform 200;   // placeholder
+    }
     \endverbatim
 
+Note
+    In the event of reverse flow, a zero-gradient condition is applied
+
+SeeAlso
+    Foam::inletOutletFvPatchField
+
 SourceFiles
     turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
 
@@ -56,7 +89,7 @@ namespace compressible
 {
 
 /*---------------------------------------------------------------------------*\
-       Class turbulentMixingLengthDissipationRateInletFvPatch Declaration
+ Class turbulentMixingLengthDissipationRateInletFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class turbulentMixingLengthDissipationRateInletFvPatchScalarField
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
index f60fb9555f8b14d144d7f176ec8abb898f394bb3..eda8faf3244b0cdf47c01234b069db195c94d00a 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,14 +48,15 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
 :
     inletOutletFvPatchScalarField(p, iF),
     mixingLength_(0.0),
-    phiName_("undefined-phi"),
-    kName_("undefined-k")
+    phiName_("phi"),
+    kName_("k")
 {
     this->refValue() = 0.0;
     this->refGrad() = 0.0;
     this->valueFraction() = 0.0;
 }
 
+
 turbulentMixingLengthFrequencyInletFvPatchScalarField::
 turbulentMixingLengthFrequencyInletFvPatchScalarField
 (
@@ -71,6 +72,7 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
     kName_(ptf.kName_)
 {}
 
+
 turbulentMixingLengthFrequencyInletFvPatchScalarField::
 turbulentMixingLengthFrequencyInletFvPatchScalarField
 (
@@ -91,6 +93,7 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
     this->valueFraction() = 0.0;
 }
 
+
 turbulentMixingLengthFrequencyInletFvPatchScalarField::
 turbulentMixingLengthFrequencyInletFvPatchScalarField
 (
@@ -103,6 +106,7 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
     kName_(ptf.kName_)
 {}
 
+
 turbulentMixingLengthFrequencyInletFvPatchScalarField::
 turbulentMixingLengthFrequencyInletFvPatchScalarField
 (
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H
index 288a9e30de40ffa40073158459adc5c5868b7db5..9aaeb71db0a5d0ef46df8b03080b489ebfb3a6ed 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,20 +24,52 @@ License
 Class
     Foam::compressible::turbulentMixingLengthFrequencyInletFvPatchScalarField
 
+Group
+    grpCmpRASBoundaryConditions grpInletBoundaryConditions
+
 Description
-    Calculate omega via the mixing length
+    This boundary condition provides a turbulence specific dissipation,
+    \f$\omega\f$ (omega) inlet condition based on a specified mixing length.
+    The patch values are calculated using:
+
+        \f[
+            \omega_p = \frac{k^{0.5}}{C_{\mu}^{0.25} L}
+        \f]
+   
+    where
+
+    \vartable
+        \omega_p | patch omega values
+        C_{\mu} | Model coefficient, set to 0.09
+        k       | turbulence kinetic energy
+        L       | length scale
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        mixingLength | Length scale [m]        | yes         |
+        phi          | flux field name         | no          | phi
+        k            | turbulence kinetic energy field name | no | k
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type            compressible::turbulentMixingLengthFrequencyInlet;
-            mixingLength    0.005;         // 5 mm
-            k               k;             // turbulent k field
-            value           uniform 5;     // initial value
-        }
+    myPatch
+    {
+        type            compressible::turbulentMixingLengthFrequencyInlet;
+        mixingLength    0.005;
+        value           uniform 200;   // placeholder
+    }
     \endverbatim
 
+Note
+    In the event of reverse flow, a zero-gradient condition is applied
+
+SeeAlso
+    Foam::inletOutletFvPatchField
+
 SourceFiles
     turbulentMixingLengthFrequencyInletFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H
index b36779b35c362bb90ae50a6193c3be55338b7446..60271aae48a4a17fc420737a61f4696468d2efd3 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,37 @@ License
 Class
     alphatJayatillekeWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Thermal wall function for turbulent thermal diffusivity based on the
-    Jayatilleke thermal wall function
+    This boundary condition provides a thermal wall function for turbulent
+    thermal diffusivity (usually\c alphat) based on the Jayatilleke model.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Prt          | turbulent Prandtl number | no         | 0.85
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von Karman constant     | no          | 0.41
+        E            | model coefficient       | no          | 9.8
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            alphatJayatillekeWallFunction;
+        Prt             0.85;
+        kappa           0.41;
+        E               9.8;
+        value           uniform 0; // optional value entry
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     alphatJayatillekeWallFunctionFvPatchScalarField.C
@@ -48,7 +76,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-     Class alphatJayatillekeWallFunctionFvPatchScalarField Declaration
+      Class alphatJayatillekeWallFunctionFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class alphatJayatillekeWallFunctionFvPatchScalarField
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
index 8681a33afd9fcd77ed3f95a02927cdcdfb3fef2d..c9031e53ed58e8ba158584d6067948adcd9e41ea 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,11 +24,49 @@ License
 Class
     Foam::compressible::RASModels::alphatWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Boundary condition for turbulent thermal diffusivity when using wall
-    functions
+    This boundary condition provides a turbulent thermal diffusivity conditon
+    when using wall functions
     - replicates OpenFOAM v1.5 (and earlier) behaviour
-    - Turbulent Prandtl number defaults to 0.85 if unspecified
+
+    The turbulent thermal diffusivity calculated using:
+
+        \f[
+            \alpha_t = \frac{\mu_t}{Pr_t}
+        \f]
+
+    where
+
+    \vartable
+        \alpha_t| turblence thermal diffusivity
+        \mu_t   | turblence viscosity
+        Pr_t    | turblent Prandtl number
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        mut          | turbulence viscosity field name | no  | mut
+        Prt          | turbulent Prandtl number | no          | 0.85
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            alphatWallFunction;
+        mut             mut;
+        Prt             0.85;
+        value           uniform 0; // optional value entry
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     alphatWallFunctionFvPatchScalarField.C
@@ -59,10 +97,10 @@ class alphatWallFunctionFvPatchScalarField
 {
     // Private data
 
-        //- Name of turbulent viscosity field
+        //- Name of turbulent viscosity field (default = mut)
         word mutName_;
 
-        //- Turbulent Prandtl number
+        //- Turbulent Prandtl number (default = 0.85)
         scalar Prt_;
 
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
index d523c8d38f5905615ba4f2356e70bf38f31292ea..24172ea21e870bafc7146ee1f7ea98d21934595f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
@@ -24,10 +24,45 @@ License
 Class
     Foam::compressible::RASModels::epsilonWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Boundary condition for epsilon when using wall functions
-    - calculates epsilon and G
-    - epsilon values added directly into the matrix to act as a constraint
+    This boundary condition provides a turbulence dissipation wall function
+    condition for high Reynolds number, turbulent flow cases.
+
+    The condition can be applied to wall boundaries, whereby it
+    - calculates \c epsilon and \c G
+    - inserts near wall epsilon values directly into the epsilon equation
+        to act as a constraint
+
+    where
+
+    \vartable
+        epsilon | turblence dissipation field
+        G       | turblence generation field
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        G            | turbulence generation field name | no | G
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von Karman constant     | no          | 0.41
+        E            | model coefficient       | no          | 9.8
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            compressible::epsilonWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedInternalValueFvPatchField
 
 SourceFiles
     epsilonWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
index a2756319a52a97d165fa2dc3d81b30f6dee5d290..d525d80b56c8f16ab1560d5a41ef7d752a6fe1ff 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
@@ -24,9 +24,25 @@ License
 Class
     Foam::compressible::RASModels::kqRWallFunctionFvPatchField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Boundary condition for turbulence k, Q, and R when using wall functions.
-    Simply acts as a zero gradient condition.
+    This boundary condition is applied to turbulence \c k, \c q, and \c R
+    when using wall functions, and simply enforces a zero-gradient condition.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            compressible::kqRWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::zeroGradientFvPatchField
 
 SourceFiles
     kqRWallFunctionFvPatchField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H
index bbed4a8bbf80f4ed47b289a3f5b1607839450f80..2cbbef359cb13de77d4c80e703471f9d12940bbc 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H
@@ -24,11 +24,26 @@ License
 Class
     Foam::compressible::RASModels::mutLowReWallFunctionFvPatchScalarField
 
-Description
-    Boundary condition for turbulent (kinematic) viscosity when for use with
-    low Reynolds number models.
+Group
+    grpCmpWallFunctions
 
-    Sets mut to zero, and provides an access to calculate y+.
+Description
+    This boundary condition provides a turbulent viscosity condition for use
+    with low Reynolds number models.  It sets \c nut to zero, and provides an
+    access function to calculate y+.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutLowReWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutWallFunctionFvPatchScalarField
 
 SourceFiles
     mutLowReWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H
index 05f82c57f6bb001709bbfdb03a48f16d233ad226..479cb18b4009dc3b940cd965a6ddcae6417726cd 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H
@@ -24,11 +24,38 @@ License
 Class
     Foam::compressible::RASModels::mutURoughWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Wall function boundary condition for rough walls, based on velocity.
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions for rough walls, based on velocity.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        roughnessHeight | roughness height     | yes         |
+        roughnessConstant | roughness constanr | yes         |
+        roughnessFactor | scaling factor       | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutURoughWallFunction;
+        roughnessHeight 1e-5;
+        roughnessConstant 0.5;
+        roughnessFactor 1;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutWallFunctionFvPatchScalarField
 
 SourceFiles
-    mutSpalartAllamarasStandardWallFunctionFvPatchScalarField.C
+    mutURoughWallFunctionFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H
index 4157f384a15378c5df0c1b20a90dd1e35a02dece..2501fa5b719427f210694eb2b417ab8b18ae851f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H
@@ -24,8 +24,39 @@ License
 Class
     Foam::compressible::RASModels::mutUSpaldingWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Wall function boundary condition for walls
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions for rough walls, based on velocity,  using  Spalding's
+    law to give a continuous nut profile to the wall (y+ = 0)
+
+        \f[
+            y^+ = u^+ + \frac{1}{E} \left[exp(\kappa u^+) - 1 - \kappa u^+\,
+                - 0.5 (\kappa u^+)^2 - \frac{1}{6} (\kappa u^+)^3\right]
+        \f]
+
+    where
+    \vartable
+        y^+     | non-dimensional position
+        u^+     | non-dimensional velocity
+        \kappa  | Von Karman constant
+    \endvartable
+
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutUSpaldingWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutWallFunctionFvPatchScalarField
 
 SourceFiles
     mutUSpaldingWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H
index 6071a32128c9406af282d7432a641bced807beb1..08a938b52c5716cd6a30b19de151096809350910 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H
@@ -24,8 +24,25 @@ License
 Class
     Foam::compressible::RASModels::mutUWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Wall function boundary condition for walls, based on velocity.
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions, based on velocity.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutUWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutWallFunctionFvPatchScalarField
 
 SourceFiles
     mutUWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H
index ab0478508ff7bacc99b7fe7f67df1a1c2078485a..9228b609242f5a08f1e76e18e52885d753781520 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H
@@ -24,11 +24,27 @@ License
 Class
     Foam::compressible::RASModels::mutWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Boundary condition for turbulent (kinematic) viscosity when using wall
-    functions, based on turbulence kinetic energy.
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions, based on turbulence kinetic energy.
     - replicates OpenFOAM v1.5 (and earlier) behaviour
 
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
+
 SourceFiles
     mutWallFunctionFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H
index da413fed1cb9a7476731deb2660880b5bc036c65..fdf5a0a7d6364919c2cea2b7604c9951953f2473 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,15 +24,39 @@ License
 Class
     Foam::compressible::RASModels::mutkRoughWallFunctionFvPatchScalarField
 
-Description
-    Boundary condition for turbulent (kinematic) viscosity when using wall
-    functions for rough walls, based on turbulence kinetic energy.
+Group
+    grpCmpWallFunctions
 
-    Manipulates the E parameter to account for roughness effects, based on
-    KsPlus.
+Description
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions for rough walls, based on turbulence kinetic energy.
+    The condition manipulates the E parameter to account for roughness
+    effects.
 
+    Parameter ranges
     - roughness height = sand-grain roughness (0 for smooth walls)
-    - roughness constant = 0.5-1.0 (0.5 default)
+    - roughness constant = 0.5-1.0
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Ks           | sand-grain roughness height | yes     |
+        Cs           | roughness constant      | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutkRoughWallFunction;
+        Ks              uniform 0;
+        Cs              uniform 0.5;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutkRoughWallFunctionFvPatchScalarField
 
 SourceFiles
     mutkRoughWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H
index 0aa935d59b56bcaddda51cf47c9b35a71eef966f..8d952a64285e0811afca6082f9c2d778030e04f1 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H
@@ -24,11 +24,27 @@ License
 Class
     Foam::compressible::RASModels::mutkWallFunctionFvPatchScalarField
 
+Group
+    grpCmpWallFunctions
+
 Description
-    Boundary condition for turbulent (kinematic) viscosity when using wall
-    functions, based on turbulence kinetic energy.
+    This boundary condition provides a turbulent viscosity condition when
+    using wall functions, based on turbulence kinetic energy.
     - replicates OpenFOAM v1.5 (and earlier) behaviour
 
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            mutkWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::mutWallFunctionFvPatchScalarField
+
 SourceFiles
     mutkWallFunctionFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
index db1b91b68814df0e40b7baaf9865d8cc834f3636..d6516c5449ab748a213960619e6301e290e1a602 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -24,16 +24,23 @@ License
 Class
     Foam::compressible::RASModels::omegaWallFunctionFvPatchScalarField
 
-Description
-    Provides a wall function boundary condition/constraint on omega
+Group
+    grpCmpWallFunctions
 
-    Computed value is:
+Description
+    This boundary condition provides a wall function constraint on turbulnce
+    specific dissipation, omega.  The values are computed using:
 
-        omega = sqrt(omega_vis^2 + omega_log^2)
+        \f[
+            \omega = sqrt(\omega_{vis}^2 + \omega_{log}^2)
+        \f]
 
     where
-        omega_vis = omega in viscous region
-        omega_log = omega in logarithmic region
+
+    \vartable
+        \omega_{vis} | omega in viscous region
+        \omega_{log} | omega in logarithmic region
+    \endvartable
 
     Model described by Eq.(15) of:
     \verbatim
@@ -43,6 +50,25 @@ Description
         Nov. 2001
     \endverbatim
 
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        G            | turbulence generation field name | no | G
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von Karman constant     | no          | 0.41
+        E            | model coefficient       | no          | 9.8
+        beta1        | model coefficient       | no          | 0.075
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            compressible::omegaWallFunction;
+    }
+    \endverbatim
+
 SourceFiles
     omegaWallFunctionFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H
index 63418fada074fb3291bc3de8910337cc400338fe..4084d289f9aa17923374e33482fb633ae03957d1 100644
--- a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H
+++ b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::kEpsilon
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Standard k-epsilon turbulence model for compressible flows
 
diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
index a90912e5a313cd529b577f13684e9cc9e3f018e6..d498a9a1f1031afdbeeb768dc1c9f3453720b170 100644
--- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::kOmegaSST
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Implementation of the k-omega-SST turbulence model for compressible flows.
 
diff --git a/src/turbulenceModels/compressible/RAS/laminar/laminar.H b/src/turbulenceModels/compressible/RAS/laminar/laminar.H
index 2b226d602fb18cfaa81c65055dae10918177979d..0b099d01aa77b94311987ad94d809a32537f4a21 100644
--- a/src/turbulenceModels/compressible/RAS/laminar/laminar.H
+++ b/src/turbulenceModels/compressible/RAS/laminar/laminar.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::laminar
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Dummy turbulence model for laminar compressible flow.
 
diff --git a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H
index 12c0105f837da42acaffae4241e7a6994a6b13c4..c417fa5c4347e2529a26b0d03ee66c1eeb989607 100644
--- a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H
+++ b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::compressible::RASModels::realizableKE
 
+Group
+    grpCmpRASTurbulence
+
 Description
     Realizable k-epsilon turbulence model for compressible flows.
 
diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
index 9b461334cb50b488a1b8167c2a92c3162f880945..44e96635bacdf6056c9b724dff868e8660977e9a 100644
--- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,26 +25,38 @@ Class
     externalWallHeatFluxTemperatureFvPatchScalarField
 
 Description
-    Heat flux boundary condition for temperature on external wall.
+    This boundary condition supplies a heat flux condition for temperature
+    on an external wall.
 
-    If h and Ta are specified then fixed_heat_transfer_coefficient mode is used
-    If q is specified then fixed_heat_flux is used.
+    The condition can operate in two modes:
+        \li fixed heat transfer coefficient: supply h and Ta
+        \li fixed heat flux: supply q
 
-    Example usage:
-        myWallPatch
+    where
+        \var h  = heat transfer coefficient [W/m2/K]
+        \var Ta = ambient temperature [K]
+        \var q  = heat flux [W/m2]
+
+    The thermal conductivity, \c kappa, can either be retrieved from the
+    mesh database using the \c lookup option, or from a \c solidThermo
+    thermophysical package.
+
+    Example of the boundary condition specification:
+    \verbatim
+        myPatch
         {
             type            externalWallHeatFluxTemperature;
             kappa           solidThermo;       // solidThermo or lookup
-            q               uniform 1000;      // Heat flux / [W/m2]
-            Ta              uniform 300.0;     // Tambient temperature /[K]
-            h               uniform 10.0;      // Heat transfer coeff /[W/Km2]
-            value           uniform 300.0;     // Initial temperature / [K]
+            q               uniform 1000;      // heat flux / [W/m2]
+            Ta              uniform 300.0;     // ambient temperature /[K]
+            h               uniform 10.0;      // heat transfer coeff /[W/Km2]
+            value           uniform 300.0;     // initial temperature / [K]
             kappaName       none;
         }
+    \endverbatim
 
-Note:
-    Only the pair h, Ta or q can be specified in the dictionary.
-
+Note
+    Only supply \c h and \c Ta, or \c q in the dictionary (see above)
 
 SourceFiles
     externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -178,6 +190,7 @@ public:
             //- Update the coefficients associated with the patch field
             virtual void updateCoeffs();
 
+
         // I-O
 
             //- Write
diff --git a/src/turbulenceModels/compressible/turbulenceModel/turbulenceModelDoc.H b/src/turbulenceModels/compressible/turbulenceModel/turbulenceModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..17bc210959fe987753d0437a6480e29a733ecea3
--- /dev/null
+++ b/src/turbulenceModels/compressible/turbulenceModel/turbulenceModelDoc.H
@@ -0,0 +1,31 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpCmpTurbulence Compressible turbulence
+@{
+    This group contains compressible turbulence models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/derivedFvPatchFields/Make/files b/src/turbulenceModels/derivedFvPatchFields/Make/files
index 360b593edb969a0e98352a71e08b3a7c9b90c9c9..f0a5fdfa8a46fea1f71552718f705e23ced305ff 100644
--- a/src/turbulenceModels/derivedFvPatchFields/Make/files
+++ b/src/turbulenceModels/derivedFvPatchFields/Make/files
@@ -1,3 +1,4 @@
 porousBafflePressure/porousBafflePressureFvPatchFields.C
+fixedShearStress/fixedShearStressFvPatchVectorField.C
 
 LIB = $(FOAM_LIBBIN)/libturbulenceDerivedFvPatchFields
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C b/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
similarity index 54%
rename from src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
rename to src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
index c5a2c5f8e8a6447359b44d9e00c0555aec3ee042..0f1d19bb2e04a4cfaf55054b1cc327767efcb01d 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
+++ b/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
@@ -28,28 +28,25 @@ License
 #include "addToRunTimeSelectionTable.H"
 #include "fvPatchFieldMapper.H"
 #include "volFields.H"
-#include "RASModel.H"
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace incompressible
-{
+#include "incompressible/RAS/RASModel/RASModel.H"
+#include "compressible/RAS/RASModel/RASModel.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
+Foam::fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 (
     const fvPatch& p,
     const DimensionedField<vector, volMesh>& iF
 )
 :
     fixedValueFvPatchVectorField(p, iF),
+    phiName_("phi"),
+    rhoName_("rho"),
     tau0_(vector::zero)
 {}
 
 
-fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
+Foam::fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 (
     const fvPatch& p,
     const DimensionedField<vector, volMesh>& iF,
@@ -57,13 +54,15 @@ fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(p, iF),
+    phiName_(dict.lookupOrDefault<word>("phi", "phi")),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
     tau0_(dict.lookupOrDefault<vector>("tau", vector::zero))
 {
     fvPatchField<vector>::operator=(patchInternalField());
 }
 
 
-fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
+Foam::fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 (
     const fixedShearStressFvPatchVectorField& ptf,
     const fvPatch& p,
@@ -72,76 +71,102 @@ fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 )
 :
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
+    phiName_(ptf.phiName_),
+    rhoName_(ptf.rhoName_),
     tau0_(ptf.tau0_)
 {}
 
 
-fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
+Foam::fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 (
     const fixedShearStressFvPatchVectorField& ptf
 )
 :
     fixedValueFvPatchVectorField(ptf),
+    phiName_(ptf.phiName_),
+    rhoName_(ptf.rhoName_),
     tau0_(ptf.tau0_)
 {}
 
 
-fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
+Foam::fixedShearStressFvPatchVectorField::fixedShearStressFvPatchVectorField
 (
     const fixedShearStressFvPatchVectorField& ptf,
     const DimensionedField<vector, volMesh>& iF
 )
 :
     fixedValueFvPatchVectorField(ptf, iF),
+    phiName_(ptf.phiName_),
+    rhoName_(ptf.rhoName_),
     tau0_(ptf.tau0_)
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void fixedShearStressFvPatchVectorField::updateCoeffs()
+void Foam::fixedShearStressFvPatchVectorField::updateCoeffs()
 {
     if (updated())
     {
         return;
     }
 
-    const label patchi = patch().index();
+    const label patchI = patch().index();
 
-    const turbulenceModel& turbModel =
-        db().lookupObject<turbulenceModel>("turbulenceModel");
+    const surfaceScalarField& phi =
+        db().lookupObject<surfaceScalarField>(phiName_);
 
-    const fvPatchVectorField& Uw = turbModel.U().boundaryField()[patchi];
+    scalarField nuEff;
+    if (phi.dimensions() == dimVelocity*dimArea)
+    {
+        const incompressible::turbulenceModel& turbModel =
+            db().lookupObject<incompressible::turbulenceModel>
+            (
+                "turbulenceModel"
+            );
 
-    const vectorField Ui(Uw.patchInternalField());
+        nuEff = turbModel.nuEff()()[patchI];
+    }
+    else if (phi.dimensions() == dimDensity*dimVelocity*dimArea)
+    {
+        const compressible::turbulenceModel& turbModel =
+            db().lookupObject<compressible::turbulenceModel>
+            (
+                "turbulenceModel"
+            );
 
-    vector tauHat = tau0_/(mag(tau0_) + ROOTVSMALL);
+        const fvPatchField<scalar>& rhop =
+            patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
-    const scalarField& ry = patch().deltaCoeffs();
+        nuEff = turbModel.muEff()()[patchI]/rhop;
+    }
+    else
+    {
+        FatalErrorIn("fixedShearStressFvPatchVectorField::updateCoeffs()")
+            << "dimensions of phi are not correct"
+            << "\n    on patch " << this->patch().name()
+            << " of field " << this->dimensionedInternalField().name()
+            << " in file " << this->dimensionedInternalField().objectPath()
+            << exit(FatalError);
+    }
 
-    tmp<volScalarField> tnuEff = turbModel.nuEff();
-    const volScalarField& nuEff = tnuEff();
-    const scalarField& nuEffw = nuEff.boundaryField()[patchi];
+    const vectorField Uc(patchInternalField());
 
-    tmp<vectorField> UwUpdated =
-        tauHat*(tauHat & (tau0_*(1.0/(ry*nuEffw)) + Ui));
+    vector tauHat = tau0_/(mag(tau0_) + ROOTVSMALL);
 
-    operator==(UwUpdated);
+    const scalarField& ry = patch().deltaCoeffs();
 
-    if (debug)
-    {
-        tmp<vectorField> nHat = this->patch().nf();
-        volSymmTensorField Reff(turbModel.devReff());
-        Info << "tau : " << (nHat & Reff.boundaryField()[patchi])() << endl;
-    }
+    operator==(tauHat*(tauHat & (tau0_*(1.0/(ry*nuEff)) + Uc)));
 
     fixedValueFvPatchVectorField::updateCoeffs();
 }
 
 
-void fixedShearStressFvPatchVectorField::write(Ostream& os) const
+void Foam::fixedShearStressFvPatchVectorField::write(Ostream& os) const
 {
     fixedValueFvPatchVectorField::write(os);
+    writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
     os.writeKeyword("tau") << tau0_ << token::END_STATEMENT << nl;
     writeEntry("value", os);
 }
@@ -149,15 +174,13 @@ void fixedShearStressFvPatchVectorField::write(Ostream& os) const
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-makePatchTypeField
-(
-    fvPatchVectorField,
-    fixedShearStressFvPatchVectorField
-);
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace incompressible
-} // End namespace Foam
+namespace Foam
+{
+    makePatchTypeField
+    (
+        fvPatchVectorField,
+        fixedShearStressFvPatchVectorField
+    );
+}
 
 // ************************************************************************* //
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.H b/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.H
similarity index 94%
rename from src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.H
rename to src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.H
index 6bbcf8c9c67662f211b09450e615dae290b1ffcf..d1ad27977f37dfbad72012823b1158ee1d0d8522 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.H
+++ b/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,6 +25,9 @@ License
 Class
     Foam::fixedShearStressFvPatchVectorField
 
+Group
+    grpWallBoundaryConditions
+
 Description
     Set a constant shear stress as tau0 = -nuEff dU/dn.
 
@@ -43,8 +46,7 @@ SourceFiles
 
 namespace Foam
 {
-namespace incompressible
-{
+
 /*---------------------------------------------------------------------------*\
             Class fixedShearStressFvPatchVectorField Declaration
 \*---------------------------------------------------------------------------*/
@@ -55,6 +57,12 @@ class fixedShearStressFvPatchVectorField
 {
     // Private data
 
+        //- Name of flux field (default = phi)
+        const word phiName_;
+
+        //- Name of density field (default = rho)
+        const word rhoName_;
+
         //- Constant shear stress
         const vector tau0_;
 
@@ -138,7 +146,6 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-} // End namespace incompressible
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.H b/src/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.H
index 8e0dccd0cc824874a7f81eec921840696519ad57..a52e8e5b34fa2731631459a4be58c037d0a30fad 100644
--- a/src/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.H
+++ b/src/turbulenceModels/derivedFvPatchFields/porousBafflePressure/porousBafflePressureFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,18 +24,57 @@ License
 Class
     Foam::porousBafflePressureFvPatchField
 
-Description
-    Foam::porousBafflePressureFvPatchField
-    the porous baffle operates on a cyclic patch and introduce a jump on the p
-    field as follow:
-
-    deltaP = -(I*mu*U + 0.5*D*rho*magSqr(U)*L)
+Group
+    grpCoupledBoundaryConditions
 
-    where:
-
-    I is the inertial coefficient
-    D is the darcy coeafficient
-    L is the porous media lenght in the flow direction
+Description
+    This boundary condition provides a jump condition, using the \cyclic
+    condition as a base.
+
+    The porous baffle introduces a pressure jump defined by:
+
+        \f[
+            \Delta p = -(I \mu U + 0.5 D \rho |U|^2 L)
+        \f]
+
+    where
+
+    \vartable
+        p      | pressure [Pa]
+        \rho   | density [kg/m3]
+        \mu    | viscosity [Pa s]
+        I      | inertial coefficient
+        D      | Darcy coefficient
+        L      | porous media length in the flow direction
+    \endvartable
+
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        patchType    | underlying patch type should be \c cyclic| yes |
+        D            | Darcy coefficient       | yes         |
+        I            | inertial coefficient    | yes         |
+        L            | porous media length in the flow direction | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            porousBafflePressure;
+        patchType       cyclic;
+        jump            uniform 0;
+        D               1000000;
+        I               0.001;
+        L               0.1;
+        value           uniform 0;
+    }
+    \endverbatim
+
+Note
+     The underlying \c patchType should be set to \c cyclic
 
 SourceFiles
     porousBafflePressureFvPatchField.C
@@ -63,7 +102,7 @@ class porousBafflePressureFvPatchField
 {
     // Private data
 
-        //- Darcy pressure lost coefficient
+        //- Darcy pressure loss coefficient
         scalar D_;
 
         //- Inertia pressure lost coefficient
diff --git a/src/turbulenceModels/incompressible/LES/DESModel/DESModel.C b/src/turbulenceModels/incompressible/LES/DESModel/DESModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..3722f9cce60dd284c855e252fb8da53a55b8cae4
--- /dev/null
+++ b/src/turbulenceModels/incompressible/LES/DESModel/DESModel.C
@@ -0,0 +1,56 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "DESModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace incompressible
+{
+
+// * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * * //
+
+DESModel::DESModel
+(
+    const word& type,
+    const volVectorField& U,
+    const surfaceScalarField& phi,
+    transportModel& transport,
+    const word& turbulenceModelName
+)
+:
+    LESModel(type, U, phi, transport, turbulenceModelName)
+
+{}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace incompressible
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/incompressible/LES/DESModel/DESModel.H b/src/turbulenceModels/incompressible/LES/DESModel/DESModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..5f73e0d156841f39a60ee8bcbb576f7b86669d18
--- /dev/null
+++ b/src/turbulenceModels/incompressible/LES/DESModel/DESModel.H
@@ -0,0 +1,113 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+Group
+    grpIcoDESTurbulence
+
+Class
+    Foam::incompressible::DESModel
+
+Description
+    Extension of LES models to provide an interface for Detached Eddy
+    Simulation turbulence models
+
+SeeAlso
+    Foam::LESModel
+
+SourceFiles
+    DESModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef incompressibleDESModel_H
+#define incompressibleDESModel_H
+
+// note: use full(er) path so that derived utilities can bring in
+// incompressible and compressible variants
+
+#include "incompressible/LES/LESModel/LESModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace incompressible
+{
+
+/*---------------------------------------------------------------------------*\
+                          Class DESModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class DESModel
+:
+    public LESModel
+{
+
+private:
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct
+        DESModel(const DESModel&);
+
+        //- Disallow default bitwise assignment
+        DESModel& operator=(const DESModel&);
+
+
+public:
+
+    // Constructors
+
+        //- Construct from components
+        DESModel
+        (
+            const word& type,
+            const volVectorField& U,
+            const surfaceScalarField& phi,
+            transportModel& transport,
+            const word& turbulenceModelName
+        );
+
+
+    //- Destructor
+    virtual ~DESModel()
+    {}
+
+
+    // Public Member Functions
+
+        //- Return the LES field indicator
+        virtual tmp<volScalarField> LESRegion() const = 0;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace incompressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/incompressible/LES/DESModel/DESModelDoc.H b/src/turbulenceModels/incompressible/LES/DESModel/DESModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..5311d09d671711799f45c8d5d5ca6555b04eec9d
--- /dev/null
+++ b/src/turbulenceModels/incompressible/LES/DESModel/DESModelDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpIcoDESTurbulence Incompressible DES turbulence
+@{
+    \ingroup grpIcoTurbulence
+    This group contains incompressible DES models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
index 7862490dc8a2d2fbd3107dcb9a0f2537895d3b96..f3b8c6c4489ac662ff60245349fcc5a4042896a6 100644
--- a/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
+++ b/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,26 +24,31 @@ License
 Class
     Foam::incompressible::LESModels::DeardorffDiffStress
 
+Group
+    grpIcoLESTurbulence
+
 Description
     Differential SGS Stress Equation Model for incompressible flows
 
     The DSEM uses a model version of the full balance equation for the SGS
     stress tensor to simulate the behaviour of B.
     Thus,
-    \verbatim
-        d/dt(B) + div(U*B) - div(nuSgs*grad(B))
-        =
-        P - c1*epsilon/k*B - 0.667*(1 - c1)*epsilon*I - c2*(P - 0.333*trP*I)
+        \f[
+            \frac{d}{dt}(B) + \nabla\cdot(U B) - \nabla\cdot(\nu_{sgs}\nabla B)
+          =
+            P - c_1 \frac{\epsilon}{k}B - 0.667(1 - c_1)\epsilon I
+            - c_2 (P - 0.333 trP I)
+        \f]
 
     where
-
-        k = 0.5*tr(B),
-        epsilon = ce*k^3/2/delta,
-        epsilon/k = ce*k^1/2/delta
-        P = -(B'L + L'B)
-        nuSgs = ck*sqrt(k)*delta
-        nuEff = nuSgs + nu
-    \endverbatim
+    \f{eqnarray*}{
+        k          &=& 0.5 tr(B)                \\
+        \epsilon   &=& c_e k^{3/2}/\Delta       \\
+        \epsilon/k &=& c_e k^{1/2}/\Delta       \\
+        P          &=& -(B'L + L'B)             \\
+        \nu_{sgs}  &=& c_k k^{1/2} \Delta       \\
+        \nu_{eff}  &=& \nu_{sgs} + \nu
+    \f}
 
 SourceFiles
     DeardorffDiffStress.C
@@ -65,7 +70,7 @@ namespace LESModels
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class DeardorffDiffStress Declaration
+                    Class DeardorffDiffStress Declaration
 \*---------------------------------------------------------------------------*/
 
 class DeardorffDiffStress
diff --git a/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H
index c40adc383be052813551a0ad60bf89b373ba27bb..e1dc9c2b373c13805daf2229796d3ec91457d1ff 100644
--- a/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H
+++ b/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::GenEddyVisc
 
+Group
+    grpIcoLESTurbulence
+
 Description
     General base class for all incompressible models that can be implemented
     as an eddy viscosity, i.e. algebraic and one-equation models.
diff --git a/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H
index f7b6040f377701637cffcb50a58d53a4a723960a..4f24f7913586eb203764f87b70db333395408696 100644
--- a/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H
+++ b/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::GenSGSStress
 
+Group
+    grpIcoLESTurbulence
+
 Description
     General base class for all incompressible models that directly
     solve for the SGS stress tensor B.
diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
index 3688cb8dec91781b9b33c7f28a960630f16116a3..3a9af24df8a1999d90bac7b984a6e9958dd19e84 100644
--- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
@@ -24,6 +24,9 @@ License
 Namespace
     Foam::incompressible::LESModels
 
+Group
+    grpIcoLESTurbulence
+
 Description
     Namespace for incompressible LES models.
 
@@ -44,8 +47,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef LESModel_H
-#define LESModel_H
+#ifndef incompressibleLESModel_H
+#define incompressibleLESModel_H
 
 #include "incompressible/turbulenceModel/turbulenceModel.H"
 #include "LESdelta.H"
diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModelDoc.H b/src/turbulenceModels/incompressible/LES/LESModel/LESModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..9b400e23eeb517ee6afaeb8dc906fbb86f461e54
--- /dev/null
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModelDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpIcoLESTurbulence Incompressible LES turbulence
+@{
+    \ingroup grpIcoTurbulence
+    This group contains incompressible LES models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H b/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H
index afe530a00efe6bc8dafdb8c85aedda8017cea4fd..62aaaa3ef0489d75d73329fb0ebe47a781fb1478 100644
--- a/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H
+++ b/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::LRRDiffStress
 
+Group
+    grpIcoLESTurbulence
+
 Description
     Differential SGS Stress Equation Model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/LES/Make/files b/src/turbulenceModels/incompressible/LES/Make/files
index aff6654eadca4f1ab10a84b6bbe1585a2b0b4301..c41aefe994ba6e9520c56e58db1d408c07e0bcb9 100644
--- a/src/turbulenceModels/incompressible/LES/Make/files
+++ b/src/turbulenceModels/incompressible/LES/Make/files
@@ -2,6 +2,8 @@ vanDriestDelta/vanDriestDelta.C
 
 LESModel/LESModel.C
 
+DESModel/DESModel.C
+
 GenEddyVisc/GenEddyVisc.C
 GenSGSStress/GenSGSStress.C
 
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H
index e110591917adad56a27931e7ec2c2d17b8cbc624..8af2bbe08a59a03e1f374a8a4855e882ead7b27b 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::Smagorinsky
 
+Group
+    grpIcoLESTurbulence
+
 Description
     The Isochoric Smagorinsky Model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H b/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H
index c9133e4e8732cf7e265552fedaf276f65de7a7ae..b51528f945e9f40c07dfb9e71e0509a04b0792b4 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::Smagorinsky2
 
+Group
+    grpIcoLESTurbulence
+
 Description
     The Isochoric Smagorinsky Model for incompressible flows
 
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
index da8ab55e07b45492e216296381b0f4cd89a7d78d..bbbf51332b98cd60f5ca3f12a07001d7d3cac223 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
@@ -152,7 +152,7 @@ SpalartAllmaras::SpalartAllmaras
     const word& modelName
 )
 :
-    LESModel(modelName, U, phi, transport, turbulenceModelName),
+    DESModel(modelName, U, phi, transport, turbulenceModelName),
 
     sigmaNut_
     (
@@ -395,6 +395,30 @@ bool SpalartAllmaras::read()
 }
 
 
+tmp<volScalarField> SpalartAllmaras::LESRegion() const
+{
+    tmp<volScalarField> tLESRegion
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                "DES::LESRegion",
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            neg(dTilda(S(fvc::grad(U_))) - y_)
+//            mesh_,
+//            dimensionedScalar("zero", dimless, 0.0)
+        )
+    );
+
+    return tLESRegion;
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace LESModels
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H
index 68e5ef4c73bd60cc5d5f54afeff2b467d30c07e4..fe4fe280f3186a44ca889d32ef19d2a1d0ea0f7a 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::SpalartAllmaras
 
+Group
+    grpIcoDESTurbulence
+
 Description
     SpalartAllmaras DES (SA + LES) turbulence model for incompressible flows
 
@@ -35,7 +38,7 @@ SourceFiles
 #ifndef SpalartAllmaras_H
 #define SpalartAllmaras_H
 
-#include "LESModel.H"
+#include "DESModel.H"
 #include "volFields.H"
 #include "wallDist.H"
 
@@ -54,7 +57,7 @@ namespace LESModels
 
 class SpalartAllmaras
 :
-    public LESModel
+    public DESModel
 {
     // Private Member Functions
 
@@ -191,6 +194,9 @@ public:
 
         //- Read LESProperties dictionary
         virtual bool read();
+
+        //- Return the LES field indicator
+        virtual tmp<volScalarField> LESRegion() const;
 };
 
 
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H b/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H
index b721e8b8b8c0427f3415d4a0424e6a0842dfb041..70b6f5cf9b4a40c4b816fdc7cef7c37c32f8a259 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::SpalartAllmarasDDES
 
+Group
+    grpIcoDESTurbulence
+
 Description
     SpalartAllmaras DDES LES turbulence model for incompressible flows
 
@@ -52,7 +55,7 @@ namespace LESModels
 {
 
 /*---------------------------------------------------------------------------*\
-                        Class SpalartAllmarasDDES Declaration
+                     Class SpalartAllmarasDDES Declaration
 \*---------------------------------------------------------------------------*/
 
 class SpalartAllmarasDDES
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H
index bf44430e5a356453ebe3eceef51918bf3e47070c..fc31252782b70447511af9e42ebcadff7a723d81 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::SpalartAllmarasIDDES
 
+Group
+    grpIcoDESTurbulence
+
 Description
     SpalartAllmarasIDDES LES turbulence model for incompressible flows
 
diff --git a/src/turbulenceModels/incompressible/LES/dynLagrangian/dynLagrangian.H b/src/turbulenceModels/incompressible/LES/dynLagrangian/dynLagrangian.H
index 2d83299d4ac401d2d12df74640071d9f4ca52509..004efeaaed7e9fe92cb047eb008145995c74e7b4 100644
--- a/src/turbulenceModels/incompressible/LES/dynLagrangian/dynLagrangian.H
+++ b/src/turbulenceModels/incompressible/LES/dynLagrangian/dynLagrangian.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::dynLagrangian
 
+Group
+    grpIcoLESTurbulence
+
 Description
     Dynamic eddy-viscosity model with Lagrangian averaging for incompressible
     flow
diff --git a/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H
index 5b744eb0d2a67cdcbd1027638e3f190ff5183184..6a9384f406f43238216472f16ec7ce2a330c0ecb 100644
--- a/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H
+++ b/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::dynOneEqEddy
 
+Group
+    grpIcoLESTurbulence
+
 Description
     Localised Dynamic One Equation Eddy Viscosity Model for incompressible
     flows
diff --git a/src/turbulenceModels/incompressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H b/src/turbulenceModels/incompressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H
index 6de3992574ff8a7b5f07706448eef090ea063adc..68e0183345964eab5121b1a9b0bcd7a928df849b 100644
--- a/src/turbulenceModels/incompressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H
+++ b/src/turbulenceModels/incompressible/LES/homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::homogeneousDynOneEqEddy
 
+Group
+    grpIcoLESTurbulence
+
 Description
     One Equation Eddy Viscosity Model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/LES/homogeneousDynSmagorinsky/homogeneousDynSmagorinsky.H b/src/turbulenceModels/incompressible/LES/homogeneousDynSmagorinsky/homogeneousDynSmagorinsky.H
index 05ac587a5b6d94efde10ae55cadb035356105484..cc95bb047aeee0cf92520ba24171dc4adf5e62c8 100644
--- a/src/turbulenceModels/incompressible/LES/homogeneousDynSmagorinsky/homogeneousDynSmagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/homogeneousDynSmagorinsky/homogeneousDynSmagorinsky.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::homogeneousDynSmagorinsky
 
+Group
+    grpIcoLESTurbulence
+
 Description
     The Isochoric homogeneous dynamic Smagorinsky Model for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H
index e61156f9c9081626d85018a744f76549497587ad..6d5eb587a7d0f1987cfecc800609bfc2ea6123c2 100644
--- a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H
+++ b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::kOmegaSSTSAS
 
+Group
+    grpIcoLESTurbulence
+
 Description
     kOmegaSSTSAS LES turbulence model for incompressible flows
     based on:
diff --git a/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H b/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H
index 72dca5d35484ab6929c7635e3b09f70b08df3f58..c48932d0874a17565c6ccf099057a731ce552b0c 100644
--- a/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::mixedSmagorinsky
 
+Group
+    grpIcoLESTurbulence
+
 Description
     The mixed Isochoric Smagorinsky Model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H
index 143329c8c62a37131450b3c9f6f76ed9f1a35540..1b7472d787646414c48f84085107095369b45265 100644
--- a/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H
+++ b/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::oneEqEddy
 
+Group
+    grpIcoLESTurbulence
+
 Description
     One Equation Eddy Viscosity Model for incompressible flows
 
diff --git a/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H b/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H
index c757a8165e2f266c1c0f9e01407ed62be8c59652..f159ebab741ccb03892e77d54eea30bf296c1ca1 100644
--- a/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H
+++ b/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::scaleSimilarity
 
+Group
+    grpIcoLESTurbulence
+
 Description
     General base class for all scale similarity models
     for incompressible flows.
diff --git a/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H b/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H
index 9b3782e49bcbb544661d4b9233fb8f6067744b4f..a223a9d076f9fa57e06a5840c662b45e665e3301 100644
--- a/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H
+++ b/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::LESModels::spectEddyVisc
 
+Group
+    grpIcoLESTurbulence
+
 Description
     The Isochoric spectral Eddy Viscosity Model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/RAS/LRR/LRR.H b/src/turbulenceModels/incompressible/RAS/LRR/LRR.H
index e7873560081a0c7ad1755f69b5a2dafd383fea49..f60f0a66304102f5d2655b8496445b5c27ff30da 100644
--- a/src/turbulenceModels/incompressible/RAS/LRR/LRR.H
+++ b/src/turbulenceModels/incompressible/RAS/LRR/LRR.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LRR
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Launder, Reece and Rodi Reynolds-stress turbulence model for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H
index 3ae7cfda29753bc9f6d960bb213ddee40360f35c..2b5870cacdf7e649497177715bcc93d7ef9364be 100644
--- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H
+++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LamBremhorstKE
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Lam and Bremhorst low-Reynolds number k-epsilon turbulence model
     for incompressible flows
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
index 528a7dd5d6d0c0556b32958600da3050e9a857b8..42233d41b0454087cc52c2d559129381aeba818d 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
+++ b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LaunderGibsonRSTM
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Launder-Gibson Reynolds stress turbulence model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
index 5e4ae36f5ae2f7103536f5056563ea5ecc9ece02..9396df87b9dcef65ad95705288bda9faf35a0f5b 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
+++ b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LaunderSharmaKE
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Launder and Sharma low-Reynolds k-epsilon turbulence model for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H
index 56696f42539287ccac73766159ee3a2a02e81c60..78771f9d6e0be42579b75c27b966d4ddff00f0f4 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LienCubicKE
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Lien cubic non-linear k-epsilon turbulence model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H
index 8794af1fc4bec51c8f73f42a5ba7d331ed2146e8..df9d0fab823ce8eac199462569a7095638239307 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LienCubicKELowRe
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Lien cubic non-linear low-Reynolds k-epsilon turbulence models for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H
index 5aebe9ea50a30f3aaa84b8a54e9c3f5ae59eb728..0d8da074b558030135c21d7c295374e7da502693 100644
--- a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H
+++ b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::LienLeschzinerLowRe
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Lien and Leschziner low-Reynolds k-epsilon turbulence model for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/RAS/Make/files b/src/turbulenceModels/incompressible/RAS/Make/files
index b76fb0c41119f725043c297e55c818915959e47e..ce75d3834626a834541b142d988649ca9f0af0b0 100644
--- a/src/turbulenceModels/incompressible/RAS/Make/files
+++ b/src/turbulenceModels/incompressible/RAS/Make/files
@@ -51,7 +51,6 @@ $(kappatWallFunctions)/kappatJayatillekeWallFunction/kappatJayatillekeWallFuncti
 derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
 derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
 derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
-derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
 derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.C
 derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H
index f63f0c6565c3300fd96378f7294a8c9af81a0712..b7c89fac1bf8eb201e073b939c8efb8ab6256810 100644
--- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H
+++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::NonlinearKEShih
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Shih's quadratic non-linear k-epsilon turbulence model for
     incompressible flows
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
index 0d0d41ea1ecb0c7edab2ffe9178af5ac8e7bb68f..b1a97681c28c41f042f0235e7e5abe4e9ac0f498 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
@@ -24,6 +24,9 @@ License
 Namespace
     Foam::incompressible::RASModels
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Namespace for incompressible RAS turbulence models.
 
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModelDoc.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..216165664d20d67bb5d63e8607b472dad86047d0
--- /dev/null
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModelDoc.H
@@ -0,0 +1,32 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpIcoRASTurbulence Incompressible RAS turbulence
+@{
+    \ingroup grpIcoTurbulence
+    This group contains incompressible RAS models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H
index 2d06ee9ec1a804e2cb68793698e974aa12158348..b9bf88048af2bc41bd31fa00783c589d440fb68e 100644
--- a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H
+++ b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::RNGkEpsilon
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Renormalisation group k-epsilon turbulence model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H
index 4190fc7d8090fe1429a02bf9917258350abae941..d7479c2dd5b829c5b08e703682f730fbd33f3252 100644
--- a/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::SpalartAllmaras
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Spalart-Allmaras 1-eqn mixing-length model for incompressible external
     flows.
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.H
index bce9e01480943d9efa1dee778d462922219cd54e..b94500ae52400f11a320aeb1b3ba81e9c1283680 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletEpsilon/atmBoundaryLayerInletEpsilonFvPatchScalarField.H
@@ -8,10 +8,10 @@
 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 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
@@ -19,45 +19,76 @@ License
     for more details.
 
     You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    atmBoundaryLayerInletEpsilonFvPatchScalarField
-
-Description
-    Boundary condition specifies a epsilon inlet for the atmospheric boundary
-    layer (ABL). This boundaty is to be used in conjunction with
-    ABLInletVelocity.
-
-    \verbatim
-        epsilon = Ustar^3 / (K(z - zGround + z0))
-
-    where:
-
-        Ustar is the frictional velocity
-        K is karman's constant
-        z is the verical coordinate
-        z0 is the surface roughness lenght
-        zGround minium vlaue in z direction
+    Foam::incompressible::atmBoundaryLayerInletEpsilonFvPatchScalarField
 
+Group
+    grpIcoRASBoundaryConditions grpInletBoundaryConditions
 
+Description
+    This boundary condition specifies an inlet value for the turbulence
+    dissipation, \f$\epsilon\f$ (\c epsilon), appropriate for atmospheric
+    boundary layers (ABL), and designed to be used in conjunction with the
+    \c ABLInletVelocity inlet velocity boundary condition.
+
+        \f[
+            \epsilon = \frac{(U^*)^3}{K(z - z_g + z_0)}
+        \f]
+
+    where
+    \vartable
+        U^*     | frictional velocity
+        K       | Karman's constant
+        z       | vertical co-ordinate [m]
+        z_0     | surface roughness length [m]
+        z_g     | minimum vlaue in z direction [m]
+    \endvartable
+ 
     and:
 
-        Ustar = K Uref/ln((Zref + z0)/z0)
+        \f[
+            U^* = K \frac{U_{ref}}{ln\left(\frac{Z_{ref} + z_0}{z_0}\right)}
+        \f]
 
     where:
-
-        Uref is the reference velocity at Zref
-        Zref is the reference height.
-
+    \vartable
+        U_{ref} | reference velocity at \f$Z_{ref}\f$ [m/s]
+        Z_{ref} | reference height [m]
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        z            | vertical co-ordinate [m] | yes        |
+        kappa        | Karman's constanat      | no          | 0.41
+        Uref         | reference velocity [m/s] | yes        |
+        Href         | reference height [m]    | yes         |
+        z0           | surface roughness length [m] | yes    |
+        zGround      | minimum z co-ordinate [m] | yes       |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            atmBoundaryLayerInletEpsilon;
+        z               1.0;
+        kappa           0.41;
+        Uref            1.0;
+        Href            0.0;
+        z0              uniform 0.0;
+        zGround         uniform 0.0;
+    }
     \endverbatim
 
     Reference:
-    D.M. Hargreaves and N.G. Wright
-    "On the use of the k-epsilon model in commercial CFD software to model the
-     neutral atmospheric boundary layer"
-    Journal of Wind Engineering and Industrial Aerodynamics 95(2007) 355-369.
+        D.M. Hargreaves and N.G. Wright,  "On the use of the k-epsilon model
+        in commercial CFD software to model the neutral atmospheric boundary
+        layer", Journal of Wind Engineering and Industrial Aerodynamics
+        95(2007), pp 355-369.
 
 SourceFiles
     atmBoundaryLayerInletEpsilonFvPatchScalarField.C
@@ -96,13 +127,13 @@ class atmBoundaryLayerInletEpsilonFvPatchScalarField
         //- Reference velocity
         const scalar Uref_;
 
-        //- Reference hight
+        //- Reference height
         const scalar Href_;
 
         //- Surface roughness length
         scalarField z0_;
 
-        //- Minimum coordinate value in z direction
+        //- Minimum co-ordinate value in z direction
         scalarField zGround_;
 
         //- Frictional velocity
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.H
index 0249b7111c9a2db372087acec37396dcdc248c0b..b37c40a3da6d37849f6653708f08388677f52359 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/atmBoundaryLayerInletVelocity/atmBoundaryLayerInletVelocityFvPatchVectorField.H
@@ -8,10 +8,10 @@
 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 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
@@ -19,49 +19,84 @@ License
     for more details.
 
     You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    atmBoundaryLayerInletVelocityFvPatchVectorField
+    Foam::incompressible::atmBoundaryLayerInletVelocityFvPatchVectorField
 
-Description
-    Boundary condition specifies a atmospheric boundary layer (ABL)
-    velocity inlet profile given the friction velocity value,
-    flow direction n and direction of the parabolic coordinate z.
-
-    \verbatim
-        U = (Ustar/K) ln((z - zGround + z0)/z0)
-
-    where:
+Group
+    grpIcoRASBoundaryConditions grpInletBoundaryConditions
 
-        Ustar is the frictional velocity
-        K is karman's constant
-        z0 is the surface roughness lenght
-        z is the verical coordinate
-        zGround is the minumum coordinate value in z direction.
+Description
+    This boundary condition specifies a velocity inlet profile appropriate
+    for atmospheric boundary layers (ABL).  The profile is derived from the
+    friction velocity, flow direction and the direction of the parabolic
+    co-ordinate \c z.
+
+        \f[
+            U = \frac{U^*}{K} ln\left(\frac{z - z_g + z_0}{z_0}\right)
+        \f]
+
+    where
+    \vartable
+        U^*     | frictional velocity
+        K       | Karman's constant
+        z       | vertical co-ordinate [m]
+        z_0     | surface roughness length [m]
+        z_g     | minimum vlaue in z direction [m]
+    \endvartable
 
     and:
 
-        Ustar = K Uref/ln((Zref + z0)/z0)
+        \f[
+            U^* = K \frac{U_{ref}}{ln\left(\frac{Z_{ref} + z_0}{z_0}\right)}
+        \f]
 
     where:
+    \vartable
+        U_{ref} | reference velocity at \f$Z_{ref}\f$ [m/s]
+        Z_{ref} | reference height [m]
+    \endvartable
 
-        Uref is the reference velocity at Zref
-        Zref is the reference height.
-
+    Reference:
+        D.M. Hargreaves and N.G. Wright,  "On the use of the k-epsilon model
+        in commercial CFD software to model the neutral atmospheric boundary
+        layer", Journal of Wind Engineering and Industrial Aerodynamics
+        95(2007), pp 355-369.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        n            | flow direction          | yes         |
+        z            | vertical co-ordinate [m] | yes        |
+        kappa        | Karman's constanat      | no          | 0.41
+        Uref         | reference velocity [m/s] | yes        |
+        Href         | reference height [m]    | yes         |
+        z0           | surface roughness length [m] | yes    |
+        zGround      | minimum z co-ordinate [m] | yes       |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            atmBoundaryLayerInletVelocity;
+        n               (0 1 0);
+        z               1.0;
+        kappa           0.41;
+        Uref            1.0;
+        Href            0.0;
+        z0              uniform 0.0;
+        zGround         uniform 0.0;
+    }
     \endverbatim
 
-    Reference:
-    D.M. Hargreaves and N.G. Wright
-    "On the use of the k-epsilon model in commercial CFD software to model the
-     neutral atmospheric boundary layer"
-    Journal of Wind Engineering and Industrial Aerodynamics 95(2007) 355-369.
-
-NOTE: D.M. Hargreaves and N.G. Wright recommend Gamma epsilon in the k-epsilon
-      model should be changed from 1.3 to 1.11 for consistency.
-      The roughness height (Er) is given by Er = 20 z0 following the same
-      reference
+Note
+    D.M. Hargreaves and N.G. Wright recommend Gamma epsilon in the
+    k-epsilon model should be changed from 1.3 to 1.11 for consistency.
+    The roughness height (Er) is given by Er = 20 z0 following the same
+    reference.
 
 SourceFiles
     atmBoundaryLayerInletVelocityFvPatchVectorField.C
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/doc/incompressibleRASBoundaryConditionsDoc.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/doc/incompressibleRASBoundaryConditionsDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..c59310206487cb7a6d1ef670a31964e9eac67e39
--- /dev/null
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/doc/incompressibleRASBoundaryConditionsDoc.H
@@ -0,0 +1,39 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpIcoRASBoundaryConditions RAS incompressible boundary conditions
+@{
+    \ingroup grpIcoRASTurbulence
+    This group contains incompressible RAS turbulence model boundary conditions
+@}
+
+\defgroup grpIcoWallFunctions RAS incompressible wall functions
+@{
+    \ingroup grpIcoRASBoundaryConditions
+    This group contains incompressible RAS turbulence model wall functions
+@}
+
+
+\*---------------------------------------------------------------------------*/
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
index cb3a0c9d17b0a01aad30d6328e1c8119d9290149..59b8106d151bc72f91b692708d9d0e04047755ce 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -22,26 +22,42 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::turbulentHeatFluxTemperatureFvPatchScalarField
+    Foam::incompressible::turbulentHeatFluxTemperatureFvPatchScalarField
+
+Group
+    grpIcoRASBoundaryConditions grpWallBoundaryConditions
 
 Description
     Fixed heat boundary condition to specify temperature gradient. Input
     heat source either specified in terms of an absolute power [W], or as a
     flux [W/m2].
 
-    Example usage:
-
-        hotWall
-        {
-            type            turbulentHeatFluxTemperature;
-            heatSource      flux;        // power [W]; flux [W/m2]
-            q               uniform 10;  // heat power or flux
-            alphaEff        alphaEff;    // alphaEff field name;
-                                         // alphaEff in [kg/m/s]
-            Cp              Cp;          // Cp field name; Cp in [J/kg/K]
-            value           uniform 300; // initial temperature value
-        }
-
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        heatSource   | heat source type: \c flux [W/m2] or \c power [W]| yes |
+        q            | heat source value       | yes          |
+        alphaEff     | turbulent thermal diffusivity field name | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            turbulentHeatFluxTemperature;
+        heatSource      flux;
+        q               uniform 10;
+        alphaEff        alphaEff;
+        value           uniform 300; // place holder
+    }
+    \endverbatim
+
+Note
+    - it is assumed that the units of \c alphaEff are [kg/m/s]
+    - the specific heat capcaity is read from the transport dictionary entry
+      \c Cp0
+    
 SourceFiles
     turbulentHeatFluxTemperatureFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
index a0fee136cac87691edb173a670dc9ccbdc667736..f0e9d5bdfeaffb5fddcd4984ef270325b0aae6f7 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,14 +48,15 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
 :
     inletOutletFvPatchScalarField(p, iF),
     mixingLength_(0.0),
-    phiName_("undefined-phi"),
-    kName_("undefined-k")
+    phiName_("phi"),
+    kName_("k")
 {
     this->refValue() = 0.0;
     this->refGrad() = 0.0;
     this->valueFraction() = 0.0;
 }
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
@@ -71,6 +72,7 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
     kName_(ptf.kName_)
 {}
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
@@ -91,6 +93,7 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
     this->valueFraction() = 0.0;
 }
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
@@ -103,6 +106,7 @@ turbulentMixingLengthDissipationRateInletFvPatchScalarField
     kName_(ptf.kName_)
 {}
 
+
 turbulentMixingLengthDissipationRateInletFvPatchScalarField::
 turbulentMixingLengthDissipationRateInletFvPatchScalarField
 (
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H
index 1cfb9013b32346be4b475749ac17ddfa33419bef..7a74a838496833a460e917438c7cffae9342dfa1 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -25,19 +25,52 @@ Class
     Foam::incompressible::
         turbulentMixingLengthDissipationRateInletFvPatchScalarField
 
+Group
+    grpIcoRASBoundaryConditions grpInletBoundaryConditions
+
 Description
-    Calculate epsilon via the mixing length [m]
+    This boundary condition provides a turbulence dissipation, \f$\epsilon\f$
+    (epsilon) inlet condition based on a specified mixing length.  The patch
+    values are calculated using:
+
+        \f[
+            \epsilon_p = \frac{C_{\mu}^{0.75} k^{1.5}}{L}
+        \f]
+   
+    where
+
+    \vartable
+        \epsilon_p | patch epsilon values
+        C_{\mu} | Model coefficient, set to 0.09
+        k       | turbulence kinetic energy
+        L       | length scale
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        mixingLength | Length scale [m]        | yes         |
+        phi          | flux field name         | no          | phi
+        k            | turbulence kinetic energy field name | no | k
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type            turbulentMixingLengthDissipationRateInlet;
-            mixingLength    0.005;         // 5 mm
-            value           uniform 200;   // placeholder
-        }
+    myPatch
+    {
+        type            turbulentMixingLengthDissipationRateInlet;
+        mixingLength    0.005;
+        value           uniform 200;   // placeholder
+    }
     \endverbatim
 
+Note
+    In the event of reverse flow, a zero-gradient condition is applied
+
+SeeAlso
+    Foam::inletOutletFvPatchField
+
 SourceFiles
     turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
 
@@ -56,7 +89,7 @@ namespace incompressible
 {
 
 /*---------------------------------------------------------------------------*\
-       Class turbulentMixingLengthDissipationRateInletFvPatch Declaration
+ Class turbulentMixingLengthDissipationRateInletFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class turbulentMixingLengthDissipationRateInletFvPatchScalarField
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H
index 41a871b8df03a3e6a6ae776cf6b0432d4dd16641..e39e13845f464066d08ba247f94d0a1efbc9c156 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,20 +24,53 @@ License
 Class
     Foam::incompressible::turbulentMixingLengthFrequencyInletFvPatchScalarField
 
+Group
+    grpIcoRASBoundaryConditions grpInletBoundaryConditions
+
 Description
-    Calculate omega via the mixing length
+    This boundary condition provides a turbulence specific dissipation,
+    \f$\omega\f$ (omega) inlet condition based on a specified mixing length.
+    The patch values are calculated using:
+
+        \f[
+            \omega_p = \frac{k^{0.5}}{C_{\mu}^{0.25} L}
+        \f]
+   
+    where
+
+    \vartable
+        \omega_p | patch omega values
+        C_{\mu} | Model coefficient, set to 0.09
+        k       | turbulence kinetic energy
+        L       | length scale
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        mixingLength | Length scale [m]        | yes         |
+        phi          | flux field name         | no          | phi
+        k            | turbulence kinetic energy field name | no | k
+    \endtable
 
     Example of the boundary condition specification:
     \verbatim
-        inlet
-        {
-            type            turbulentMixingLengthFrequencyInlet;
-            mixingLength    0.005;         // 5 mm
-            k               k;             // turbulent k field
-            value           uniform 5;     // initial value
-        }
+    myPatch
+    {
+        type            turbulentMixingLengthFrequencyInlet;
+        mixingLength    0.005;
+        value           uniform 200;   // placeholder
+    }
     \endverbatim
 
+Note
+    In the event of reverse flow, a zero-gradient condition is applied
+
+SeeAlso
+    Foam::inletOutletFvPatchField
+
+
 SourceFiles
     turbulentMixingLengthFrequencyInletFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
index b95f74dd92751a077b1c0945c7c9e126612b9ce4..abd360cba4d0b81b8fb68e23fd6256bbddd44ab1 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
@@ -24,10 +24,45 @@ License
 Class
     Foam::incompressible::RASModels::epsilonWallFunctionFvPatchScalarField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Boundary condition for epsilon when using wall functions
-    - calculates epsilon and G
-    - epsilon values added directly into the matrix to act as a constraint
+    This boundary condition provides a turbulence dissipation wall function
+    condition for high Reynolds number, turbulent flow cases.
+
+    The condition can be applied to wall boundaries, whereby it
+    - calculates \c epsilon and \c G
+    - inserts near wall epsilon values directly into the epsilon equation
+        to act as a constraint
+
+    where
+
+    \vartable
+        epsilon | turblence dissipation field
+        G       | turblence generation field
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        G            | turbulence generation field name | no | G
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von Karman constant     | no          | 0.41
+        E            | model coefficient       | no          | 9.8
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            epsilonWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedInternalValueFvPatchField
 
 SourceFiles
     epsilonWallFunctionFvPatchScalarField.C
@@ -72,7 +107,6 @@ protected:
         //- E coefficient
         scalar E_;
 
-
         //- Y+ at the edge of the laminar sublayer
         scalar yPlusLam_;
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H
index d9ba225361fda51bbaa71306703994c573bc235d..c26d9a41ecbfadfe77b83ca340892a814034f7e0 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H
@@ -2,34 +2,59 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-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 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.
+    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/>.
+    You should have received a copy of the GNU General Public License along with
+    OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
     Foam::incompressible::RASModels::
     kappatJayatillekeWallFunctionFvPatchScalarField
 
-Description
-    Boundary condition for (kinematic) turbulent thermal conductivity when
-    using wall functions, using Jayatilleke P function.
+Group
+    grpIcoWallFunctions
 
-    Units of m2/s
+Description
+    This boundary condition provides a kinematic turbulent thermal conductivity
+    for using wall functions, using the Jayatilleke 'P' function.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Prt          | turbulent Prandtl number | no         | 0.85
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von Karman constant     | no          | 0.41
+        E            | model coefficient       | no          | 9.8
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            kappatJayatillekeWallFunction;
+    }
+    \endverbatim
+
+Note
+    The units of kinematic turbulent thermal conductivity are [m2/s]
+
+SeeAlso
+    Foam::fixedValueFvPatchField
 
 SourceFiles
     kappatJayatillekeWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
index 292fe79a890b60f404989383196ca8fa8dfe311e..c63821fe9a9da5502a534060c93801f5088df372 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,9 +24,28 @@ License
 Class
     Foam::incompressible::RASModels::kqRWallFunctionFvPatchField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Boundary condition for turbulence k, Q, and R when using wall functions.
-    Simply acts as a zero gradient condition.
+    This boundary condition provides a suitable condition for turbulence
+    \c k, \c q, and \c R fields for the case of high Reynolds number flow using
+    wall functions.
+
+    It is a simple wrapper around the zero-gradient condition.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            kqRWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::zeroGradientFvPatchField
 
 SourceFiles
     kqRWallFunctionFvPatchField.C
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H
index 1dc153b0b90207359817b319cf31e5d1abdd98ac..008fe9c96c6559b978b189787080ccbeb9c346b7 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H
@@ -24,11 +24,26 @@ License
 Class
     Foam::incompressible::RASModels::nutLowReWallFunctionFvPatchScalarField
 
-Description
-    Boundary condition for turbulent (kinematic) viscosity when for use with
-    low Reynolds number models.
+Group
+    grpIcoWallFunctions
 
-    Sets nut to zero, and provides an access function to calculate y+.
+Description
+    This boundary condition provides a turbulent kinematic viscosity condition
+    for use with low Reynolds number models.  It sets \c nut to zero, and
+    provides an access function to calculate y+.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutLowReWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutWallFunctionFvPatchScalarField
 
 SourceFiles
     nutLowReWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H
index ea00181a21d33b1ad07980aa5e3a2d904b263716..881752d9f54e21fb0565311a0756957634d5cb68 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H
@@ -24,11 +24,38 @@ License
 Class
     Foam::incompressible::RASModels::nutURoughWallFunctionFvPatchScalarField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Wall function boundary condition for rough walls, based on velocity.
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions for rough walls, based on velocity.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        roughnessHeight | roughness height     | yes         |
+        roughnessConstant | roughness constanr | yes         |
+        roughnessFactor | scaling factor       | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutURoughWallFunction;
+        roughnessHeight 1e-5;
+        roughnessConstant 0.5;
+        roughnessFactor 1;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutWallFunctionFvPatchScalarField
 
 SourceFiles
-    nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
+    nutURoughWallFunctionFvPatchScalarField.C
 
 \*---------------------------------------------------------------------------*/
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H
index 983ecc57ae9ef1f7311ad2808738b7d81627c5b2..b9f75ed1b17395581b2b981b9532bf4ba7bd7257 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H
@@ -24,9 +24,39 @@ License
 Class
     Foam::incompressible::RASModels::nutUSpaldingWallFunctionFvPatchScalarField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Wall function boundary condition for walls, based on velocity, using
-    Spaldings law to give a continuous nut profile to the wall (y+ = 0)
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions for rough walls, based on velocity,  using
+    Spalding's law to give a continuous nut profile to the wall (y+ = 0)
+
+        \f[
+            y^+ = u^+ + \frac{1}{E} \left[exp(\kappa u^+) - 1 - \kappa u^+\,
+                - 0.5 (\kappa u^+)^2 - \frac{1}{6} (\kappa u^+)^3\right]
+        \f]
+
+    where
+    \vartable
+        y^+     | non-dimensional position
+        u^+     | non-dimensional velocity
+        \kappa  | Von Karman constant
+    \endvartable
+
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutUSpaldingWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutWallFunctionFvPatchScalarField
 
 SourceFiles
     nutUSpaldingWallFunctionFvPatchScalarField.C
@@ -48,7 +78,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-              Class nutUSpaldingWallFunctionFvPatch Declaration
+          Class nutUSpaldingWallFunctionFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class nutUSpaldingWallFunctionFvPatchScalarField
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H
index a164366d7c8355b828a8baa0472a56f97978e8e4..95bde3ba032d724ebb8c5628af4a7155ff6632bc 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H
@@ -24,12 +24,37 @@ License
 Class
     Foam::incompressible::RASModels::nutUTabulatedWallFunctionFvPatchScalarField
 
-Description
-    Wall function boundary condition for turbulence kinematic viscosity. Uses a
-    table to return the value of U+ as a function of near-wall Reynolds number.
+Group
+    grpIcoWallFunctions
 
-    Note: the tables are not registered since the same table object may be used
-    for more than one patch.
+Description
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions.  As input, the user specifies a look-up table
+    of U+ as a function of near-wall Reynolds number.  The table should be
+    located in the $FOAM_CASE/constant folder.
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        uPlusTable   | U+ as a function of Re table name | yes |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutTabulatedWallFunction;
+        uPlusTable      myUPlusTable;
+    }
+    \endverbatim
+
+Note
+    The tables are not registered since the same table object may be used for
+    more than one patch.
+
+SeeAlso
+    Foam::nutWallFunctionFvPatchScalarField
 
 SourceFiles
     nutUTabulatedWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H
index 4ebf73063679ed6b57a9026f6f7f1682f9e51943..6f32734149b36460f2f1e8069db4366c41ae6410 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H
@@ -24,8 +24,25 @@ License
 Class
     Foam::incompressible::RASModels::nutUWallFunctionFvPatchScalarField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Wall function boundary condition for walls, based on velocity.
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions, based on velocity.
+
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutUWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutWallFunctionFvPatchScalarField
 
 SourceFiles
     nutUWallFunctionFvPatchScalarField.C
@@ -47,7 +64,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-  Class nutUWallFunctionFvPatchScalarField Declaration
+            Class nutUWallFunctionFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class nutUWallFunctionFvPatchScalarField
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H
index a6e196472eaa8c71ee8bf41c57a372e9e825c244..01355ec454d7260ba0000f81d887e3c7e73e97df 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H
@@ -24,11 +24,27 @@ License
 Class
     Foam::incompressible::RASModels::nutWallFunctionFvPatchScalarField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Boundary condition for turbulent (kinematic) viscosity when using wall
-    functions, based on turbulence kinetic energy.
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions, based on turbulence kinetic energy.
     - replicates OpenFOAM v1.5 (and earlier) behaviour
 
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::fixedValueFvPatchField
+
 SourceFiles
     nutWallFunctionFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C
index 035bd813d7e7ab1a17b91fe84c27b81c1ac8f5d8..b00e9f0bf984e881f8237a3f75197531ae9e4cfa 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C
@@ -40,7 +40,6 @@ namespace RASModels
 
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
-
 tmp<scalarField> nutkAtmRoughWallFunctionFvPatchScalarField::calcNut() const
 {
     const label patchI = patch().index();
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H
index a4c2aaa936aa0aac9911a4fb532132788f1aa552..3e0f67a4fcbfe3803eb4b0f6f4189a39006742a3 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H
@@ -25,20 +25,46 @@ Class
     Foam::incompressible::RASModels::
     nutkAtmRoughWallFunctionFvPatchScalarField
 
-Description
-    Boundary condition for turbulent (kinematic) viscosity for atmospheric
-    velocity profiles.
-    Desinged to be used togheter with atmBoundaryLayerInletVelocity.
-    It follows  U = (Ustar/K) ln((z - zGround + z0)/z0)
-
-    where:
-
-        Ustar is the frictional velocity
-        K is karman's constant
-        z0 is the surface roughness lenght
-        z is the verical coordinate
-        zGround is the minumum coordinate value in z direction.
+Group
+    grpIcoWallFunctions
 
+Description
+    This boundary condition provides a turbulent kinematic viscosity for
+    atmospheric velocity profiles.  It is desinged to be used in conjunction
+    with the atmBoundaryLayerInletVelocity boundary condition.  The values
+    are calculated using:
+
+        \f[
+            U = frac{U_f}{K} ln(\frac{z + z_0}{z_0})
+        \f]
+
+    where
+
+    \vartable
+        U_f | frictional velocity
+        K   | Von Karman's constant
+        z_0 | surface roughness length
+        z   | vertical co-ordinate
+    \endvartable
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        z0           | surface roughness length| yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutkAtmRoughWallFunction;
+        z0              uniform 0;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutkWallFunctionFvPatchField
 
 SourceFiles
     nutkAtmRoughWallFunctionFvPatchScalarField.C
@@ -60,7 +86,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-           Class nutkAtmRoughWallFunctionFvPatchScalarField Declaration
+          Class nutkAtmRoughWallFunctionFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class nutkAtmRoughWallFunctionFvPatchScalarField
@@ -71,7 +97,7 @@ protected:
 
     // Protected data
 
-        //- Surface roughness lenght
+        //- Surface roughness length
         scalarField z0_;
 
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H
index ad39e628a270f523ecff939852ecc5cea8043623..50d24a3ebd804f849b7ad7b550d127693c18ef4d 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -24,15 +24,39 @@ License
 Class
     Foam::incompressible::RASModels::nutkRoughWallFunctionFvPatchScalarField
 
-Description
-    Boundary condition for turbulent (kinematic) viscosity when using wall
-    functions for rough walls, based on turbulence kinetic energy.
+Group
+    grpIcoWallFunctions
 
-    Manipulates the E parameter to account for roughness effects, based on
-    KsPlus.
+Description
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions for rough walls, based on turbulence kinetic
+    energy.  The condition manipulates the E parameter to account for roughness
+    effects.
 
+    Parameter ranges
     - roughness height = sand-grain roughness (0 for smooth walls)
-    - roughness constant = 0.5-1.0 (0.5 default)
+    - roughness constant = 0.5-1.0
+
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        Ks           | sand-grain roughness height | yes     |
+        Cs           | roughness constant      | yes         |
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutkRoughWallFunction;
+        Ks              uniform 0;
+        Cs              uniform 0.5;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutkRoughWallFunctionFvPatchScalarField
 
 SourceFiles
     nutkRoughWallFunctionFvPatchScalarField.C
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H
index d4ffd6167a03d7a4b1dc29b9097a115d59aafc60..49a2257e093eb2df45e83be774232dbe9f23ded3 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H
@@ -24,11 +24,27 @@ License
 Class
     Foam::incompressible::RASModels::nutkWallFunctionFvPatchScalarField
 
+Group
+    grpIcoWallFunctions
+
 Description
-    Boundary condition for turbulent (kinematic) viscosity when using wall
-    functions, based on turbulence kinetic energy.
+    This boundary condition provides a turbulent kinematic viscosity condition
+    when using wall functions, based on turbulence kinetic energy.
     - replicates OpenFOAM v1.5 (and earlier) behaviour
 
+    \heading Patch usage
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            nutkWallFunction;
+    }
+    \endverbatim
+
+SeeAlso
+    Foam::nutWallFunctionFvPatchScalarField
+
 SourceFiles
     nutkWallFunctionFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
index 41f1d0027dc42aed4db296f407dc8879521ecf26..9c03a85f259a0ddfded87dcba8313f5cf29798ab 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -24,16 +24,23 @@ License
 Class
     Foam::incompressible::RASModels::omegaWallFunctionFvPatchScalarField
 
-Description
-    Provides a wall function boundary condition/constraint on omega
+Group
+    grpIcoWallFunctions
 
-    Computed value is:
+Description
+    This boundary condition provides a wall function constraint on turbulnce
+    specific dissipation, omega.  The values are computed using:
 
-        omega = sqrt(omega_vis^2 + omega_log^2)
+        \f[
+            \omega = sqrt(\omega_{vis}^2 + \omega_{log}^2)
+        \f]
 
     where
-        omega_vis = omega in viscous region
-        omega_log = omega in logarithmic region
+
+    \vartable
+        \omega_{vis} | omega in viscous region
+        \omega_{log} | omega in logarithmic region
+    \endvartable
 
     Model described by Eq.(15) of:
     \verbatim
@@ -43,6 +50,25 @@ Description
         Nov. 2001
     \endverbatim
 
+    \heading Patch usage
+
+    \table
+        Property     | Description             | Required    | Default value
+        G            | turbulence generation field name | no | G
+        Cmu          | model coefficient       | no          | 0.09
+        kappa        | Von Karman constant     | no          | 0.41
+        E            | model coefficient       | no          | 9.8
+        beta1        | model coefficient       | no          | 0.075
+    \endtable
+
+    Example of the boundary condition specification:
+    \verbatim
+    myPatch
+    {
+        type            omegaWallFunction;
+    }
+    \endverbatim
+
 SourceFiles
     omegaWallFunctionFvPatchScalarField.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H
index 89c94fe42faff1c5a885688d05a33d41c2ad325d..1ba0f94fd9c083e3d64e7ee19ddc0350f3fabf9b 100644
--- a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H
+++ b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::kEpsilon
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Standard k-epsilon turbulence model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
index 1e63fd2eca384a027fbbdf879a7d1d8fbc2aea6d..d0c9e3ad2f6ff6070548ef94f4753adbd0c81cd5 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
+++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::kOmega
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Standard high Reynolds-number k-omega turbulence model for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
index 60f2775b1b0d618665c41d2b880e689ef0f54183..7b2580094e1cb76e511066f3cb7dbd8e36aa6e25 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::kOmegaSST
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Implementation of the k-omega-SST turbulence model for incompressible
     flows.
diff --git a/src/turbulenceModels/incompressible/RAS/kkLOmega/kkLOmega.H b/src/turbulenceModels/incompressible/RAS/kkLOmega/kkLOmega.H
index dbd5ce0832a09f23c5ab3411933f9eb383c3f721..6badc208c3dd98b33fd630f059281ec902659b04 100644
--- a/src/turbulenceModels/incompressible/RAS/kkLOmega/kkLOmega.H
+++ b/src/turbulenceModels/incompressible/RAS/kkLOmega/kkLOmega.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::kkLOmega
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Low Reynolds-number k-kl-omega turbulence model for
     incompressible flows.
diff --git a/src/turbulenceModels/incompressible/RAS/laminar/laminar.H b/src/turbulenceModels/incompressible/RAS/laminar/laminar.H
index ccebe774ed171d0b24216327cc2e735bb676dea5..29426dadaf362dc1b2b66509c908f86d8f6fa292 100644
--- a/src/turbulenceModels/incompressible/RAS/laminar/laminar.H
+++ b/src/turbulenceModels/incompressible/RAS/laminar/laminar.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::laminar
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Dummy turbulence model for laminar incompressible flow.
 
diff --git a/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.H b/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.H
index 9347998a2e94f23b7fa50d4ac21924789d9accd9..d45f686af7bf9af12286147843d5357af8eff77f 100644
--- a/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.H
+++ b/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::qZeta
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Gibson and Dafa'Alla's q-zeta two-equation low-Re turbulence model
     for incompressible flows
diff --git a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H
index ed2bc4841e1e79cfa7eb05dfc3d3be5ef7142d2f..3f32089a6c9dd3abc554772931918bc1b720fcd1 100644
--- a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H
+++ b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H
@@ -24,6 +24,9 @@ License
 Class
     Foam::incompressible::RASModels::realizableKE
 
+Group
+    grpIcoRASTurbulence
+
 Description
     Realizable k-epsilon turbulence model for incompressible flows.
 
diff --git a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModelDoc.H b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModelDoc.H
new file mode 100644
index 0000000000000000000000000000000000000000..f9751dc542e29c5416e6e5f8f5091e83ca4c37f7
--- /dev/null
+++ b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModelDoc.H
@@ -0,0 +1,31 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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/>.
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+\defgroup grpIcoTurbulence Incompressible turbulence
+@{
+    This group contains incompressible turbulence models.
+@}
+    
+\*---------------------------------------------------------------------------*/
diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution
index a6da9b769ee93b4b3ef0e099d7cc47d4f13cf3d8..d9be29118014c17abc18029fbcf46f680f125284 100644
--- a/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution
+++ b/tutorials/incompressible/pimpleDyMFoam/propeller/system/fvSolution
@@ -43,7 +43,7 @@ solvers
         relTol          0;
     }
 
-    "(U|k|epsion)"
+    "(U|k|epsilon)"
     {
         solver          smoothSolver;
         smoother        GaussSeidel;
diff --git a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties
index f46abc6258484cb9ede9fa82613b434f0291f03e..153a5fc0b2bd83c346589193ad9b8d783199c74a 100644
--- a/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties
+++ b/tutorials/lagrangian/sprayFoam/aachenBomb/constant/sprayCloudProperties
@@ -54,8 +54,10 @@ solution
 
 constantProperties
 {
-    rho0            1000;
     T0              320;
+
+    // place holders for rho0 and Cp0 - reset from liquid props using T0
+    rho0            1000;
     Cp0             4187;
 
     youngsModulus   1e9;