Skip to content
Snippets Groups Projects
functionObjects.dox 4.02 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*---------------------------------------------------------------------------*\
      =========                 |
      \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
       \\    /   O peration     |
        \\  /    A nd           | Copyright (C) 2012-2014 OpenFOAM Foundation
         \\/     M anipulation  | Copyright (C) 2015-2017 OpenCFD Ltd.
    -------------------------------------------------------------------------------
    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 grpFieldFunctionObjects
    - \ref grpForcesFunctionObjects
    - \ref grpGraphicsFunctionObjects
    - \ref grpLagrangianFunctionObjects
    - \ref grpSolversFunctionObjects
    - \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;
            evaluateControl     timeStep;
            evaluateInterval    1;
            writeControl        outputTime;
            writeInterval       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       |
        evaluateControl | when to evaluate: either 'writeTime' or 'timeStep'| no | timeStep
        evaluateInterval| steps between evaluation when evaluateControl=timeStep | no | 1
        writeControl | when to output: either 'writeTime' or 'timeStep'| no | timeStep
        writeInterval| steps between output when writeControl=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 functionObjectLibs entry.
    
    
    \*---------------------------------------------------------------------------*/