GCBM
peatlandgrowthmodule.h
Go to the documentation of this file.
1 #ifndef MOJA_MODULES_CBM_PLGROWTH_H_
2 #define MOJA_MODULES_CBM_PLGROWTH_H_
3 
4 #include "moja/modules/cbm/_modules.cbm_exports.h"
6 
10 
11 namespace moja {
12  namespace modules {
13  namespace cbm {
14 
15  class CBM_API PeatlandGrowthModule : public CBMModuleBase {
16  public:
18  virtual ~PeatlandGrowthModule() = default;
19 
20  void configure(const DynamicObject& config) override;
21  void subscribe(NotificationCenter& notificationCenter) override;
22 
23  void doLocalDomainInit() override;
24  void doTimingInit() override;
25  void doTimingStep() override;
26 
27  private:
28  const flint::IPool* _atmosphere;
29  const flint::IPool* _woodyFoliageLive;
30  const flint::IPool* _woodyStemsBranchesLive;
31  const flint::IPool* _woodyRootsLive;
32  const flint::IPool* _sedgeFoliageLive;
33  const flint::IPool* _sedgeRootsLive;
34  const flint::IPool* _featherMossLive;
35  const flint::IPool* _sphagnumMossLive;
36  flint::IVariable* _regenDelay;
37  flint::IVariable* _spinupMossOnly;
38 
39  // peatland woody layer shrub age
40  flint::IVariable* _shrubAge;
41 
42  // the growth parameters associated to this peatland unit
43  std::shared_ptr<PeatlandGrowthParameters> growthParas;
44 
45  // the turnover parameters associated to this peatland unit
46  std::shared_ptr<PeatlandTurnoverParameters> turnoverParas;
47 
48  // the peatland growth curve, and store it
49  std::shared_ptr<PeatlandGrowthcurve> growthCurve;
50 
51  bool _runPeatland{ false };
52  int _peatlandId{ -1 };
53 
54  void updateParameters();
55  };
56  }
57  }
58 } // namespace moja::modules::cbm
59 
60 #endif // MOJA_MODULES_CBM_PLGROWTH_H_
moja::modules::cbm::PeatlandGrowthModule::_sedgeRootsLive
const flint::IPool * _sedgeRootsLive
Definition: peatlandgrowthmodule.h:33
moja::modules::cbm::PeatlandGrowthModule::PeatlandGrowthModule
PeatlandGrowthModule()
Definition: peatlandgrowthmodule.h:17
moja::modules::cbm
Definition: ageclasshelper.cpp:12
peatlandgrowthparameters.h
moja::modules::cbm::CBMModuleBase
Definition: cbmmodulebase.h:22
moja::modules::cbm::PeatlandGrowthModule::_spinupMossOnly
flint::IVariable * _spinupMossOnly
Definition: peatlandgrowthmodule.h:37
moja::modules::cbm::PeatlandGrowthModule::_regenDelay
flint::IVariable * _regenDelay
Definition: peatlandgrowthmodule.h:36
moja::modules::cbm::PeatlandGrowthModule::_sedgeFoliageLive
const flint::IPool * _sedgeFoliageLive
Definition: peatlandgrowthmodule.h:32
moja::modules::cbm::PeatlandGrowthModule::_woodyStemsBranchesLive
const flint::IPool * _woodyStemsBranchesLive
Definition: peatlandgrowthmodule.h:30
moja::modules::cbm::PeatlandGrowthModule::_woodyFoliageLive
const flint::IPool * _woodyFoliageLive
Definition: peatlandgrowthmodule.h:29
peatlandgrowthcurve.h
moja::modules::cbm::PeatlandGrowthModule
Definition: peatlandgrowthmodule.h:15
moja::modules::cbm::PeatlandGrowthModule::_featherMossLive
const flint::IPool * _featherMossLive
Definition: peatlandgrowthmodule.h:34
moja::modules::cbm::PeatlandGrowthModule::_atmosphere
const flint::IPool * _atmosphere
Definition: peatlandgrowthmodule.h:28
moja::modules::cbm::PeatlandGrowthModule::growthParas
std::shared_ptr< PeatlandGrowthParameters > growthParas
Definition: peatlandgrowthmodule.h:43
moja::modules::cbm::PeatlandGrowthModule::_sphagnumMossLive
const flint::IPool * _sphagnumMossLive
Definition: peatlandgrowthmodule.h:35
peatlandturnoverparameters.h
moja::modules::cbm::PeatlandGrowthModule::growthCurve
std::shared_ptr< PeatlandGrowthcurve > growthCurve
Definition: peatlandgrowthmodule.h:49
moja::modules::cbm::PeatlandGrowthModule::turnoverParas
std::shared_ptr< PeatlandTurnoverParameters > turnoverParas
Definition: peatlandgrowthmodule.h:46
moja
Definition: ageclasshelper.cpp:10
cbmmodulebase.h
moja::modules::cbm::PeatlandGrowthModule::_woodyRootsLive
const flint::IPool * _woodyRootsLive
Definition: peatlandgrowthmodule.h:31
moja::modules::cbm::PeatlandGrowthModule::_shrubAge
flint::IVariable * _shrubAge
Definition: peatlandgrowthmodule.h:40