initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / postProcessing / foamCalcFunctions / calcType / calcType.H
blob55d62d02eb4b0122a33e04652a66a49c9f8304e1
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Namespace
26     Foam::calcTypes
28 Description
29     Namespace for post-processing calculation functions
32 Class
33     Foam::calcType
35 Description
36     Base class for post-processing calculation functions
38 SourceFiles
39     calcType.C
41 \*---------------------------------------------------------------------------*/
43 #ifndef calcType_H
44 #define calcType_H
46 #include "autoPtr.H"
47 #include "runTimeSelectionTables.H"
49 #include "fvCFD.H"
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 namespace Foam
56 /*---------------------------------------------------------------------------*\
57                           Class calcType Declaration
58 \*---------------------------------------------------------------------------*/
60 class calcType
62     // Private Member Functions
64         //- Disallow default bitwise copy construct
65         calcType(const calcType&);
67         //- Disallow default bitwise assignment
68         void operator=(const calcType&);
71 protected:
73     // Protected member functions
75         // Calculation routines
77             //- Initialise - typically setting static variables,
78             //  e.g. command line arguments
79             virtual void init();
81             //- Pre-time loop calculations
82             virtual void preCalc
83             (
84                 const argList& args,
85                 const Time& runTime,
86                 const fvMesh& mesh
87             );
89             //- Time loop calculations
90             virtual void calc
91             (
92                 const argList& args,
93                 const Time& runTime,
94                 const fvMesh& mesh
95             );
97             //- Post-time loop calculations
98             virtual void postCalc
99             (
100                 const argList& args,
101                 const Time& runTime,
102                 const fvMesh& mesh
103             );
106 public:
108     //- Runtime type information
109     TypeName("calcType");
112     // Declare runtime constructor selection table
114         declareRunTimeSelectionTable
115         (
116             autoPtr,
117             calcType,
118             dictionary,
119             (),
120             ()
121         );
124     // Constructors
126         //- Construct null
127         calcType();
130     // Selectors
132         static autoPtr<calcType> New(const word& calcTypeName);
135     // Destructor
137         virtual ~calcType();
140     // Member Functions
142         // Calculation routines - wrapped by exception handling loop
144             //- Initialise - typically setting static variables,
145             //  e.g. command line arguments
146             void tryInit();
148             //- Pre-time loop calculations
149             void tryPreCalc
150             (
151                 const argList& args,
152                 const Time& runTime,
153                 const fvMesh& mesh
154             );
156             //- Time loop calculations
157             void tryCalc
158             (
159                 const argList& args,
160                 const Time& runTime,
161                 const fvMesh& mesh
162             );
164             //- Post-time loop calculations
165             void tryPostCalc
166             (
167                 const argList& args,
168                 const Time& runTime,
169                 const fvMesh& mesh
170             );
174 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 } // End namespace Foam
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 #endif
182 // ************************************************************************* //