Merge remote-tracking branch 'origin/nr/multiSolverFix' into nextRelease
[foam-extend-3.2.git] / src / postProcessing / functionObjects / field / minMaxField / minMaxField.C
bloba15b3029a98d334c0a200af424aeee281d085902
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
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 Author
26     Hrvoje Jasak, Wikki Ltd.  All rights reserved
28 \*---------------------------------------------------------------------------*/
30 #include "minMaxField.H"
31 #include "addToRunTimeSelectionTable.H"
32 #include "volFields.H"
34 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
36 namespace Foam
38     defineTypeNameAndDebug(minMaxField, 0);
40     addToRunTimeSelectionTable
41     (
42         functionObject,
43         minMaxField,
44         dictionary
45     );
49 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
52 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
54 Foam::minMaxField::minMaxField
56     const word& name,
57     const Time& t,
58     const dictionary& dict
61     functionObject(name),
62     time_(t),
63     regionName_(polyMesh::defaultRegion),
64     fieldName_(dict.lookup("name"))
66     if (dict.found("region"))
67     {
68         dict.lookup("region") >> regionName_;
69     }
71     Info<< "Creating minMaxField for field "
72         << fieldName_ << endl;
76 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
78 bool Foam::minMaxField::start()
80     return true;
84 bool Foam::minMaxField::execute()
86     const fvMesh& mesh =
87         time_.lookupObject<fvMesh>(regionName_);
89     if (mesh.foundObject<volScalarField>(fieldName_))
90     {
91         const volScalarField& f = mesh.lookupObject<volScalarField>
92         (
93             fieldName_
94         );
96         Info<< "Field " << fieldName_ << " min = " << Foam::min(f).value()
97             << " max = " << Foam::max(f).value() << endl;
99         return true;
100     }
101     else if (mesh.foundObject<volVectorField>(fieldName_))
102     {
103         const volVectorField& f = mesh.lookupObject<volVectorField>(fieldName_);
105         volScalarField magF = mag(f);
107         Info<< "Field " << fieldName_ << " magnitude min = "
108             << Foam::min(magF).value()
109             << " max = " << Foam::max(magF).value() << endl;
111         return true;
112     }
113     else
114     {
115         Info<< "Field "  << fieldName_ << " not found.  Skipping." << endl;
117         return false;
118     }
122 bool Foam::minMaxField::read(const dictionary& dict)
124     fieldName_ = word(dict.lookup("name"));
126     if (dict.found("region"))
127     {
128         dict.lookup("region") >> regionName_;
129     }
131     return false;
134 // ************************************************************************* //