Forward compatibility: flex
[foam-extend-3.2.git] / src / postProcessing / foamCalcFunctions / basic / scalarMult / scalarMult.H
blob469c6816a727b6a019d370cdf9fb26c263dcc4b6
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::calcTypes::scalarMult
27 Description
28     Multiplies base field with a scalar value.
30     New field name specified by -resultName option, or automatically as:
31         <baseFieldName>_scalarMult_value
33     Example usage:
34         scalarMult p scalarMult -value 100000 -resultName pAbs
36 SourceFiles
37     scalarMult.C
38     writeScalarMultField.C
39     writeScalarMultValue.C
41 Author
42     Dominik Christ, Wikki Ltd. All right reserved.
44 \*---------------------------------------------------------------------------*/
46 #ifndef scalarMult_H
47 #define scalarMult_H
49 #include "calcType.H"
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 namespace Foam
56 namespace calcTypes
59 /*---------------------------------------------------------------------------*\
60                           Class scalarMult Declaration
61 \*---------------------------------------------------------------------------*/
63 class scalarMult
65     public calcType
67     // Private data
69         //- Name of base field (to scalarMult to)
70         word baseFieldName_;
72         //- String representation of scalar value
73         string scalarMultValueStr_;
75         //- Name of result field
76         word resultName_;
79     // Private Member Functions
81         // Output
83             //- Calc and output field and value scalarMult
84             void writeScalarMultValues
85             (
86                 const Time& runTime,
87                 const fvMesh& mesh,
88                 const IOobject& baseFieldHeader
89             );
92         //- Disallow default bitwise copy construct
93         scalarMult(const scalarMult&);
95         //- Disallow default bitwise assignment
96         void operator=(const scalarMult&);
99 protected:
101     // Member Functions
103         // Calculation routines
105             //- Initialise - typically setting static variables,
106             //  e.g. command line arguments
107             virtual void init();
109             //- Pre-time loop calculations
110             virtual void preCalc
111             (
112                 const argList& args,
113                 const Time& runTime,
114                 const fvMesh& mesh
115             );
117             //- Time loop calculations
118             virtual void calc
119             (
120                 const argList& args,
121                 const Time& runTime,
122                 const fvMesh& mesh
123             );
126         // I-O
128             //- Write scalarMult value
129             template<class Type>
130             void writeScalarMultValue
131             (
132                 const IOobject& baseHeader,
133                 const string& valueStr,
134                 const fvMesh& mesh,
135                 bool& processed
136             );
139 public:
141     //- Runtime type information
142     TypeName("scalarMult");
145     // Constructors
147         //- Construct null
148         scalarMult();
151     // Destructor
153         virtual ~scalarMult();
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 } // End namespace calcTypes
160 } // End namespace Foam
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 #ifdef NoRepository
165 #   include "writeScalarMultValue.C"
166 #endif
168 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
170 #endif
172 // ************************************************************************* //