minMaxCondition.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2015 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::minMaxCondition
28 
29 Description
30  Minimum/maximum run time conditions. If the value type is not scalar,
31  the magnitude of the value is used in the evaluation.
32 
33 SourceFiles
34  minMaxCondition.H
35  minMaxCondition.C
36 
37 \*---------------------------------------------------------------------------*/
38 
39 #ifndef functionObjects_runTimeControls_minMaxCondition_H
40 #define functionObjects_runTimeControls_minMaxCondition_H
41 
42 #include "runTimeCondition.H"
43 #include "Enum.H"
44 
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 
47 namespace Foam
48 {
49 namespace functionObjects
50 {
51 namespace runTimeControls
52 {
53 
54 /*---------------------------------------------------------------------------*\
55  Class minMaxCondition Declaration
56 \*---------------------------------------------------------------------------*/
57 
58 class minMaxCondition
59 :
60  public runTimeCondition
61 {
62 public:
63 
64  // Public enumerations
65 
66  // Mode type
67  enum modeType
68  {
70  mdMax
71  };
72 
73  static const Enum<modeType> modeTypeNames_;
74 
75 
76 protected:
77 
78  // Protected data
79 
80  //- Name of function object to retrueve data from
82 
83  //- Mode
85 
86  //- Field names
87  const wordList fieldNames_;
88 
89  //- Value to compare
90  const scalar value_;
91 
92  //- Helper function to retrieve the value from the state dictionary
93  template<class Type>
94  void setValue
95  (
96  const word& valueType,
97  const word& fieldName,
98  scalar& value
99  ) const;
100 
101 
102 public:
103 
104  //- Runtime type information
105  TypeName("minMax");
106 
107  //- Constructor
109  (
110  const word& name,
111  const objectRegistry& obr,
112  const dictionary& dict,
113  stateFunctionObject& state
114  );
115 
116  //- Destructor
117  virtual ~minMaxCondition() = default;
118 
119 
120  // Public Member Functions
121 
122  //- Apply the condition
123  virtual bool apply();
124 
125  //- Write
126  virtual void write();
127 };
128 
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 template<>
132 void minMaxCondition::setValue<Foam::scalar>
133 (
134  const word& valueType,
135  const word& fieldName,
136  scalar& value
137 ) const;
138 
139 } // End namespace runTimeControls
140 } // End namespace functionObjects
141 } // End namespace Foam
142 
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 
145 #ifdef NoRepository
146  #include "minMaxConditionTemplates.C"
147 #endif
148 
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150 
151 #endif
152 
153 // ************************************************************************* //
Foam::functionObjects::runTimeControls::minMaxCondition::apply
virtual bool apply()
Apply the condition.
Definition: minMaxCondition.C:98
Foam::functionObjects::runTimeControls::minMaxCondition
Definition: minMaxCondition.H:57
Foam::functionObjects::runTimeControls::runTimeCondition::name
virtual const word & name() const
Return the condition name.
Definition: runTimeCondition.C:98
Foam::Enum< modeType >
Foam::functionObjects::runTimeControls::runTimeCondition
Base class for run time conditions.
Definition: runTimeCondition.H:61
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::functionObjects::runTimeControls::minMaxCondition::mdMin
Minimum.
Definition: minMaxCondition.H:68
Foam::functionObjects::runTimeControls::minMaxCondition::mdMax
Maximum.
Definition: minMaxCondition.H:69
Foam::functionObjects::stateFunctionObject
Base class for function objects, adding functionality to read/write state information (data required ...
Definition: stateFunctionObject.H:69
Foam::functionObjects::runTimeControls::minMaxCondition::functionObjectName_
word functionObjectName_
Name of function object to retrueve data from.
Definition: minMaxCondition.H:80
Foam::functionObjects::runTimeControls::minMaxCondition::minMaxCondition
minMaxCondition(const word &name, const objectRegistry &obr, const dictionary &dict, stateFunctionObject &state)
Constructor.
Definition: minMaxCondition.C:81
Foam::functionObjects::runTimeControls::minMaxCondition::modeTypeNames_
static const Enum< modeType > modeTypeNames_
Definition: minMaxCondition.H:72
Foam::functionObjects::runTimeControls::minMaxCondition::~minMaxCondition
virtual ~minMaxCondition()=default
Destructor.
Foam::functionObjects::runTimeControls::minMaxCondition::write
virtual void write()
Write.
Definition: minMaxCondition.C:163
Foam::objectRegistry
Registry of regIOobjects.
Definition: objectRegistry.H:60
runTimeCondition.H
Foam::functionObjects::runTimeControls::minMaxCondition::mode_
modeType mode_
Mode.
Definition: minMaxCondition.H:83
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::functionObjects::runTimeControls::minMaxCondition::TypeName
TypeName("minMax")
Runtime type information.
Foam::List< word >
Foam::functionObjects::runTimeControls::minMaxCondition::value_
const scalar value_
Value to compare.
Definition: minMaxCondition.H:89
Foam::functionObjects::runTimeControls::minMaxCondition::fieldNames_
const wordList fieldNames_
Field names.
Definition: minMaxCondition.H:86
minMaxConditionTemplates.C
Foam::functionObjects::runTimeControls::minMaxCondition::setValue
void setValue(const word &valueType, const word &fieldName, scalar &value) const
Helper function to retrieve the value from the state dictionary.
Definition: minMaxConditionTemplates.C:33
Enum.H
Foam::functionObjects::runTimeControls::minMaxCondition::modeType
modeType
Definition: minMaxCondition.H:66