FunctionObjectTriggerI.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) 2021 OpenCFD Ltd.
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 \*---------------------------------------------------------------------------*/
27 
28 #include "FunctionObjectTrigger.H"
29 
30 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
31 
32 template<class Type>
34 {
35  if (triggers_.empty())
36  {
37  return false;
38  }
39 
40  const label idx = this->time().functionObjects().triggerIndex();
41 
42  return
43  (
44  idx == labelMin ? defaultValue_ : triggers_.found(idx)
45  );
46 }
47 
48 
49 template<class Type>
50 inline const Foam::labelList&
52 {
53  return triggers_;
54 }
55 
56 
57 template<class Type>
59 (
60  const labelUList& indices
61 )
62 {
63  triggers_ = indices;
64 }
65 
66 
67 template<class Type>
69 (
70  const scalar /*unused*/
71 ) const
72 {
73  return this->active() ? pTraits<Type>::one : pTraits<Type>::zero;
74 }
75 
76 
77 template<class Type>
79 (
80  const scalar x1,
81  const scalar x2
82 ) const
83 {
85  return pTraits<Type>::zero;
86 }
87 
88 
89 // ************************************************************************* //
FunctionObjectTrigger.H
NotImplemented
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:517
Foam::Function1Types::FunctionObjectTrigger::triggers
const labelList & triggers() const noexcept
Return the trigger indices.
Definition: FunctionObjectTriggerI.H:51
Foam::Function1Types::FunctionObjectTrigger::resetTriggers
void resetTriggers(const labelUList &indices)
Change the trigger indices.
Definition: FunctionObjectTriggerI.H:59
Foam::Function1Types::FunctionObjectTrigger::value
virtual Type value(const scalar) const
Return 0/1 value at current time.
Definition: FunctionObjectTriggerI.H:69
Foam::Function1Types::FunctionObjectTrigger
Returns a 0/1 value corresponding to function object trigger levels.
Definition: FunctionObjectTrigger.H:92
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: BitOps.H:63
Foam::pTraits
A traits class, which is primarily used for primitives.
Definition: pTraits.H:56
Foam::UList< label >
Foam::Function1Types::FunctionObjectTrigger::integrate
virtual Type integrate(const scalar, const scalar) const
Integrate between two (scalar) values. Not implemented!
Definition: FunctionObjectTriggerI.H:79
Foam::labelMin
constexpr label labelMin
Definition: label.H:60