Forward compatibility: flex
[foam-extend-3.2.git] / src / postProcessing / functionObjects / field / minMaxField / minMaxField.C
blobce814f790c9683cb05cc08f71eeffc49a3dcd3c2
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 Author
25     Hrvoje Jasak, Wikki Ltd.  All rights reserved
27 \*---------------------------------------------------------------------------*/
29 #include "minMaxField.H"
30 #include "addToRunTimeSelectionTable.H"
31 #include "volFields.H"
33 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
35 namespace Foam
37     defineTypeNameAndDebug(minMaxField, 0);
39     addToRunTimeSelectionTable
40     (
41         functionObject,
42         minMaxField,
43         dictionary
44     );
48 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
51 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
53 Foam::minMaxField::minMaxField
55     const word& name,
56     const Time& t,
57     const dictionary& dict
60     functionObject(name),
61     time_(t),
62     regionName_(polyMesh::defaultRegion),
63     fieldName_(dict.lookup("name"))
65     if (dict.found("region"))
66     {
67         dict.lookup("region") >> regionName_;
68     }
70     Info<< "Creating minMaxField for field "
71         << fieldName_ << endl;
75 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
77 bool Foam::minMaxField::start()
79     return true;
83 bool Foam::minMaxField::execute()
85     const fvMesh& mesh =
86         time_.lookupObject<fvMesh>(regionName_);
88     if (mesh.foundObject<volScalarField>(fieldName_))
89     {
90         const volScalarField& f = mesh.lookupObject<volScalarField>
91         (
92             fieldName_
93         );
95         Info<< "Field " << fieldName_ << " min = " << Foam::min(f).value()
96             << " max = " << Foam::max(f).value() << endl;
98         return true;
99     }
100     else if (mesh.foundObject<volVectorField>(fieldName_))
101     {
102         const volVectorField& f = mesh.lookupObject<volVectorField>(fieldName_);
104         volScalarField magF = mag(f);
106         Info<< "Field " << fieldName_ << " magnitude min = "
107             << Foam::min(magF).value()
108             << " max = " << Foam::max(magF).value() << endl;
110         return true;
111     }
112     else
113     {
114         Info<< "Field "  << fieldName_ << " not found.  Skipping." << endl;
116         return false;
117     }
121 bool Foam::minMaxField::read(const dictionary& dict)
123     fieldName_ = word(dict.lookup("name"));
125     if (dict.found("region"))
126     {
127         dict.lookup("region") >> regionName_;
128     }
130     return false;
133 // ************************************************************************* //