Documentation for OpenFLUID 2.2.2
Loading...
Searching...
No Matches
FixedGenerator.hpp
Go to the documentation of this file.
1/*
2
3 This file is part of OpenFLUID software
4 Copyright(c) 2021-2026, INRAE
5
6
7 == GNU General Public License Usage ==
8
9 OpenFLUID is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13
14 OpenFLUID is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with OpenFLUID. If not, see <http://www.gnu.org/licenses/>.
21
22
23 == Other Usage ==
24
25 Other Usage means a use of OpenFLUID that is inconsistent with the GPL
26 license, and requires a written agreement between You and INRA.
27 Licensees for Other Usage of OpenFLUID may use this file in accordance
28 with the terms contained in the written agreement between You and INRA.
29
30*/
31
32
33/**
34 @file FixedGenerator.hpp
35
36 @author Jean-Christophe FABRE <jean-christophe.fabre@inra.fr>
37 @author Armel THÖNI <armel.thoni@inrae.fr>
38 */
39
40
41#ifndef __OPENFLUID_MACHINE_FIXEDGENERATOR_HPP__
42#define __OPENFLUID_MACHINE_FIXEDGENERATOR_HPP__
43
44
47
48
49namespace openfluid { namespace machine {
50
51
52template<class T=double>
54{
55 protected:
56
59
61
63
64 virtual void applyValue(openfluid::core::SpatialUnit* LU, bool init=false)
65 {
66 if (init)
67 {
68 OPENFLUID_InitializeVariable(LU,m_VarName,m_VarValueInit);
69 }
70 else
71 {
72 OPENFLUID_AppendVariable(LU,m_VarName,m_VarValue);
73 }
74 }
75
76 public:
77
79
82
84
86 { }
87
89
91
93 { }
94
95};
96
97template<class T>
99{
100 private:
101
102 void processVarValue(const openfluid::ware::WareParams_t& Params) override;
103
104 void applyValue(openfluid::core::SpatialUnit* LU, bool init=false) override;
105
106
107 public:
108
110
113
114};
115
116
117} } //namespaces
118
119
120#endif /* __OPENFLUID_MACHINE_FIXEDGENERATOR_HPP__ */
Definition SchedulingRequest.hpp:54
Definition SpatialUnit.hpp:111
Definition FixedGenerator.hpp:54
virtual void processVarValue(const openfluid::ware::WareParams_t &Params)
virtual void applyValue(openfluid::core::SpatialUnit *LU, bool init=false)
Definition FixedGenerator.hpp:64
void initParams(const openfluid::ware::WareParams_t &Params)
openfluid::core::Duration_t m_DeltaT
Definition FixedGenerator.hpp:60
openfluid::base::SchedulingRequest initializeRun()
T m_VarValue
Definition FixedGenerator.hpp:58
T m_VarValueInit
Definition FixedGenerator.hpp:57
openfluid::base::SchedulingRequest runStep()
void finalizeRun()
Definition FixedGenerator.hpp:92
~FixedGenerator()
Definition FixedGenerator.hpp:80
void checkConsistency()
Definition FixedGenerator.hpp:85
Definition FixedGenerator.hpp:99
~LinearFixedGenerator()
Definition FixedGenerator.hpp:111
Definition Generator.hpp:127
Definition Generator.hpp:92
#define OPENFLUID_API
Definition dllexport.hpp:86
std::uint64_t Duration_t
Definition TypeDefs.hpp:312
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition TypeDefs.hpp:146
Definition ApplicationException.hpp:47