From 891b2a0f8b4cc2586d5ef6c3a14cb588f4c865b7 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Wed, 4 May 2016 13:56:36 +0100
Subject: [PATCH] functionObjects: Moved functionObjects namespace
 documentation into functionObject.H

---
 bin/tools/doxyFilter                          |  7 +-
 bin/tools/doxyFilter-ignore.awk               |  2 +
 bin/tools/doxyFilter-table.awk                |  2 -
 bin/tools/doxyFilter-top.awk                  |  9 +-
 bin/tools/doxyFilter.awk                      |  8 +-
 bin/tools/doxyFilter.sed                      | 16 ++--
 .../functionObject/functionObject.H           | 64 +++++++++++++
 src/OpenFOAM/global/foamDoc.H                 | 25 ++---
 .../functionObjects/doc/functionObjects.dox   | 91 -------------------
 9 files changed, 94 insertions(+), 130 deletions(-)
 delete mode 100644 src/postProcessing/functionObjects/doc/functionObjects.dox

diff --git a/bin/tools/doxyFilter b/bin/tools/doxyFilter
index 061c72e526a..c8b9c676124 100755
--- a/bin/tools/doxyFilter
+++ b/bin/tools/doxyFilter
@@ -3,7 +3,7 @@
 # =========                 |
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
 #    \\/     M anipulation  |
 #------------------------------------------------------------------------------
 # License
@@ -47,7 +47,6 @@ then
         filePath=$realFilePath
     fi
 
-    # dirName=$(echo "$filePath" | sed -e 's@/[^/]*$@@' )
     dirName=${filePath%/[^/]*}
     fileName=${filePath##*/}
 
@@ -57,9 +56,6 @@ then
     */applications/solvers/*.C | */applications/utilities/*.C )
         awkScript=$WM_PROJECT_DIR/bin/tools/doxyFilter-top.awk
         ;;
-#    */applications/solvers/*.H | */applications/utilities/*.H )
-#        awkScript=$WM_PROJECT_DIR/bin/tools/doxyFilter-ignore.awk
-#        ;;
     esac
 
     awk -f $WM_PROJECT_DIR/bin/tools/doxyFilter-table.awk $1 | \
@@ -70,4 +66,5 @@ then
         -e s@%fileName%@$fileName@g \
         -e s@%dirName%@$dirName@g
 fi
+
 #------------------------------------------------------------------------------
diff --git a/bin/tools/doxyFilter-ignore.awk b/bin/tools/doxyFilter-ignore.awk
index e06f5c27554..981bb6d7dbb 100644
--- a/bin/tools/doxyFilter-ignore.awk
+++ b/bin/tools/doxyFilter-ignore.awk
@@ -31,6 +31,7 @@
 #       to skip documenting all classes/variables
 #
 #------------------------------------------------------------------------------
+
 BEGIN {
    print "//! @file %filePath%"
    print "//! @cond OpenFOAMIgnoreAppDoxygen"
@@ -41,4 +42,5 @@ BEGIN {
 END {
    print "//! @endcond"
 }
+
 #------------------------------------------------------------------------------
diff --git a/bin/tools/doxyFilter-table.awk b/bin/tools/doxyFilter-table.awk
index bfbd80785ba..9f1e994dfbc 100644
--- a/bin/tools/doxyFilter-table.awk
+++ b/bin/tools/doxyFilter-table.awk
@@ -131,5 +131,3 @@ BEGIN {
         print $0
     }
 }
-
-
diff --git a/bin/tools/doxyFilter-top.awk b/bin/tools/doxyFilter-top.awk
index af9ba7331f7..63eac1ff287 100644
--- a/bin/tools/doxyFilter-top.awk
+++ b/bin/tools/doxyFilter-top.awk
@@ -31,16 +31,17 @@
 #       block documents the application itself.
 #
 #------------------------------------------------------------------------------
+
 BEGIN {
     state = 0
 }
 
-# a '/*' at the beginning of a line starts a comment block
+# A '/*' at the beginning of a line starts a comment block
 /^ *\/\*/ {
    state++
 }
 
-# check first line
+# Check first line
 # either started with a comment or skip documentation for the whole file
 FNR == 1 {
    if (!state)
@@ -50,7 +51,7 @@ FNR == 1 {
    }
 }
 
-# a '*/' ends the comment block
+# A '*/' ends the comment block
 # skip documentation for rest of the file
 /\*\// {
     if (state == 1)
@@ -62,7 +63,7 @@ FNR == 1 {
     next
 }
 
-# print everything within the first comment block
+# Print everything within the first comment block
 {
     if (state)
     {
diff --git a/bin/tools/doxyFilter.awk b/bin/tools/doxyFilter.awk
index f45cc776ddd..0a581a61a14 100644
--- a/bin/tools/doxyFilter.awk
+++ b/bin/tools/doxyFilter.awk
@@ -52,16 +52,15 @@ BEGIN {
     next
 }
 
-
 /^ *\/\// {
-    # start comment block
+    # Start comment block
     if (state == 1)
     {
         printf "/*! "
         state = 2
     }
 
-    # inside comment block
+    # Inside comment block
     if (state == 2)
     {
         if (!sub(/^ *\/\/  /, ""))
@@ -74,9 +73,8 @@ BEGIN {
     next
 }
 
-
 {
-    # end comment block
+    # End comment block
     if (state == 2)
     {
         printf "*/ "
diff --git a/bin/tools/doxyFilter.sed b/bin/tools/doxyFilter.sed
index 845c39abbc1..cfb3b8a85f8 100644
--- a/bin/tools/doxyFilter.sed
+++ b/bin/tools/doxyFilter.sed
@@ -7,7 +7,7 @@
 #     equivalent
 #------------------------------------------------------------------------------
 
-# new FSF address
+# New FSF address
 /^License/,/\*\//{
 /^License/,\%http://www.gnu.org/licenses%{
 s?^License.*?\*\/\
@@ -26,7 +26,7 @@ s?^License.*?\*\/\
 }
 
 
-# remove entry
+# Remove entry
 /^Application *$/{
 N
 N
@@ -34,7 +34,7 @@ d
 }
 
 
-# remove entry
+# Remove entry
 /^Global *$/{
 N
 N
@@ -79,7 +79,7 @@ s/Class *\n *\(.*\) */\\class \1/
 # Group
 #     groupName
 # =>
-# \ingroup namespaceName
+# \ingroup groupName
 #
 /^Group *$/,/^[^ ]/{
 s/^Group//
@@ -108,7 +108,7 @@ s/^    /\\typedef /
 }
 
 
-# add anchor and use \brief
+# Add anchor and use \brief
 # the first paragraph will be 'brief' and the others 'detail'
 /^Description *$/,/^[^ ]/{
 /^Description/c\
@@ -136,7 +136,7 @@ s/^    //
 }
 
 
-# remove ToDo paragraph to avoid them showing on related pages
+# Remove ToDo paragraph to avoid them showing on related pages
 /^To[Dd]o *$/,/^[^ ]/{
 s/^To[Dd]o *$//
 s/^    .*//
@@ -174,10 +174,10 @@ 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
+# Convert /heading in source files to bold font and add some space
 s#\\heading \(.*\)#<br><b>\1</b>#g
 
-# add a linebreak
+# Add a linebreak
 s#\\linebreak#<br>#g
 
 }
diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
index c31427b388e..d1709c44b34 100644
--- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
+++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H
@@ -21,6 +21,70 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
+Namespace
+    Foam::functionObjects
+
+Description
+    Namespace for functionObjects.
+
+    OpenFOAM includes a collection of functionObjects selected by the user at
+    run-time to manipulate the simulation and provide mechanisms to extract
+    field and derived quantities.  Alternatively, the same actions can be
+    executed after the simulation using the \c execFlowFunctionObjects utility.
+
+    \linebreak
+    The current range of features are sub-divided into the following categories:
+    - \ref grpLagrangianFunctionObjects
+    - \ref grpFieldFunctionObjects
+    - \ref grpForcesFunctionObjects
+    - \ref grpUtilitiesFunctionObjects
+
+    \linebreak
+    \subsection secFunctionObjects Using function objects
+
+    FunctionObjects are selected by additional entries in the
+    $FOAM_CASE/system/controlDict dictionary.  Each object is listed in the \c
+    functions sub-dictionary, e.g. to select the \c functionObjectType
+    functionObject the following entry would be specified:
+
+    \verbatim
+        functions
+        {
+            myFunctionObject    // Name of functionObject entry
+            {
+                type                functionObjectType;
+                functionObjectLibs  ("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      |
+        functionObjectLibs | 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 | Either 'outputTime' or 'timeStep'| no | timeStep
+        outputInterval| Steps between output for 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 directory for any data written by
+    the functionObject.  The \c type entry defines the type of function object
+    properties that follow.  FunctionObjects are packaged into separate
+    libraries and the \c libs entry is used to specify which library
+    should be loaded.
+
 Class
     Foam::functionObject
 
diff --git a/src/OpenFOAM/global/foamDoc.H b/src/OpenFOAM/global/foamDoc.H
index 104ba88339f..4f92fa4d27f 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-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -23,7 +23,7 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-\mainpage OpenFOAM&reg;: open source CFD
+\mainpage OpenFOAM&reg;: Open-Source CFD
 
 \section about About OpenFOAM
 
@@ -36,29 +36,24 @@ License
     turbulence and heat transfer, to solid dynamics and electromagnetics.
     <a href="http://www.openfoam.org/features">More ...</a>
 
+\section layout OpenFOAM Directory Structure
 
-\section layout Code Layout
-
-    The OpenFOAM source code comprises of four main components:
+    OpenFOAM comprises of four main directories:
     - src:
-        the core OpenFOAM source code
+        The core OpenFOAM libraries
 
     - applications:
-        collections of library functionality wrapped up into applications,
-        such as solvers and utilities
+        Solvers and utilities
 
     - tutorials:
-        a suite of test cases that highlight a broad cross-section of
-        OpenFOAM's capabilities
+        Test-cases that demonstrate a wide-range of OpenFOAM functionality
 
     - doc:
-        supporting documentation
-
+        Documentation
 
-\section usingTheCode Using the code
+\section usingOpenFOAM Using OpenFOAM
 
     - \subpage pagePostProcessing
-    - \subpage pageBoundaryConditions
-
+    - Post-processing using Foam::functionObjects
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/postProcessing/functionObjects/doc/functionObjects.dox b/src/postProcessing/functionObjects/doc/functionObjects.dox
deleted file mode 100644
index 5cab990a613..00000000000
--- a/src/postProcessing/functionObjects/doc/functionObjects.dox
+++ /dev/null
@@ -1,91 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2012-2016 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 grpLagrangianFunctionObjects
-- \ref grpFieldFunctionObjects
-- \ref grpForcesFunctionObjects
-- \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;
-        functionObjectLibs  ("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      |
-    functionObjectLibs | 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 directory 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.
-
-
-\*---------------------------------------------------------------------------*/
-- 
GitLab