#include <mossgrowthmodule.h>
|
double | F1 (double a, double b, double volume) |
|
double | F2 (double c, double d, int age, double openNess) |
|
double | F3 (double e, double f, int age, double openNess) |
|
double | F4 (double g, double h, double openNess) |
|
double | F5 (double i, double j, double l, double openNess) |
|
void | doMossGrowth (int mossAge, double standMerchVolume) |
|
◆ MossGrowthModule()
◆ ~MossGrowthModule()
◆ configure()
void configure |
( |
const DynamicObject & |
config | ) |
|
|
override |
Configuration function
- Parameters
-
config | const DynamicObject& |
- Returns
- void
◆ doLocalDomainInit()
void doLocalDomainInit |
( |
| ) |
|
|
overridevirtual |
Initialise MossGrowthModule._atmosphere, MossGrowthModule._featherMossLive, MossGrowthModule._sphagnumMossLive value of "Atmosphere", "FeatherMossLive", "FeatherMossSlow", "SphagnumMossLive" in _landUnitData
Initialise MossGrowthModule._mossParameters, _regenDelay, _age as variables "moss_parameters", "regen_delay" and "age" in _landUnitData,
MossGrowthModule.a, MossGrowthModule.b, MossGrowthModule.c, MossGrowthModule.d, MossGrowthModule.e, MossGrowthModule.f, MossGrowthModule.g, MossGrowthModule.h, MossGrowthModule.i, MossGrowthModule.j, MossGrowthModule.i values of "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" in _landUnitData
- Returns
- void
Reimplemented from CBMModuleBase.
◆ doMossGrowth()
void doMossGrowth |
( |
int |
mossAge, |
|
|
double |
standMerchVolume |
|
) |
| |
|
private |
Invoke createStockOperation() on _landUnitData
Assign variable canopyOpenness result of MossGrowthModule.F1() with arguments MossGrowthModule.a, MossGrowthModule.b, parameter standMerchVolume,
groundCoverFeatherMoss result of MossGrowthModule.F2() with arguments MossGrowthModule.c, MossGrowthModule.d, parameter mossAge and variable canopyOpenness,
groundCoverSphagnumMoss result of MossGrowthModule.F3() with arguments MossGrowthModule.e, MossGrowthModule.f, parameter mossAge and variable canopyOpenness,
nppFeatherMoss result of MossGrowthModule.F4() with arguments MossGrowthModule.g, MossGrowthModule.h, and variable canopyOpenness,
nppSphagnumMoss result of MossGrowthModule.F5() with arguments MossGrowthModule.i, MossGrowthModule.j, MossGrowthModule.l and variable canopyOpenness,
Add transfers between source MossGrowthModule._atmosphere to sink MossGrowthModule._featherMossLive with transfer value nppFeatherMoss * groundCoverFeatherMoss / 100.0,
source MossGrowthModule._atmosphere to sink MossGrowthModule._sphagnumMossLive with transfer value nppSphagnumMoss * groundCoverSphagnumMoss / 100.0
Invoke submitOperation() on _landUnitData to submit the transfers
- Parameters
-
mossAge | int |
standMerchVolume | double |
- Returns
- void
◆ doTimingInit()
If variable "enable_moss" exists in _landUnitData and it has a value, invoke Helper.runMoss() with arguments as value of variables "growth_curve_id", "moss_leading_species" and "leading_species" in _landUnitData
Assign MossGrowthModule.runMoss to true if variable "peatland_class" in _landUnitData is empty, variable "growth_curve_id" in _landUnitData is not empty, and Helper.runMoss() returns true
- Returns
- void
Reimplemented from CBMModuleBase.
◆ doTimingStep()
◆ F1()
double F1 |
( |
double |
a, |
|
|
double |
b, |
|
|
double |
volume |
|
) |
| |
|
private |
Return Canopy openNess
Canopy openNess, O(t) as a function of merchant volume given a value 60.0 if parameter volume = 0, else O(t) = 10 ^ (((a) * (log(volume)) + b)
- Parameters
-
a | double |
b | double |
volume | double |
- Returns
- double
◆ F2()
double F2 |
( |
double |
c, |
|
|
double |
d, |
|
|
int |
age, |
|
|
double |
openNess |
|
) |
| |
|
private |
Return Feather moss ground cover
Feather moss ground cover, given a value 0 if parameter age < 0, a value 100 if parameter openNess > 70.0, else GCFm(t) = c * openNess + d
- Parameters
-
c | double |
d | double |
age | int |
openNess | double |
- Returns
- double
◆ F3()
double F3 |
( |
double |
e, |
|
|
double |
f, |
|
|
int |
age, |
|
|
double |
openNess |
|
) |
| |
|
private |
Return Sphagnum ground cover
Feather moss ground cover, given a value 0 if parameter age < 0, a value 100 if parameter openNess > 70.0, else GCSp(t) = e * openNess + f
- Parameters
-
e | double |
f | double |
age | int |
openNess | double |
- Returns
- double
◆ F4()
double F4 |
( |
double |
g, |
|
|
double |
h, |
|
|
double |
openNess |
|
) |
| |
|
private |
Return Feather moss NPP
Feather moss NPP, given a value 0 if parameter age < 0, a value 100 if parameter openNess > 70.0, else GCSp(t) = e * openNess + f
- Parameters
-
e | double |
f | double |
openNess | double |
- Returns
- double
◆ F5()
double F5 |
( |
double |
i, |
|
|
double |
j, |
|
|
double |
l, |
|
|
double |
openNess |
|
) |
| |
|
private |
Return Sphagnum NPP
Sphagnum NPP, given as NPPSp = i * (openNess ^ 2) + j * openNess + l
- Parameters
-
i | double |
j | double |
l | double |
openNess | double |
- Returns
- double
◆ moduleType()
flint::ModuleTypes moduleType |
( |
| ) |
|
|
override |
◆ subscribe()
void subscribe |
( |
NotificationCenter & |
notificationCenter | ) |
|
|
override |
Subscribe to the signals LocalDomainInit, TimingInit and TimingStep
- Parameters
-
notificationCenter | NotificationCenter& |
- Returns
- void
◆ _age
flint::IVariable* _age = nullptr |
|
private |
◆ _atmosphere
const flint::IPool* _atmosphere = nullptr |
|
private |
◆ _featherMossLive
const flint::IPool* _featherMossLive = nullptr |
|
private |
◆ _gcFactory
◆ _mossParameters
flint::IVariable* _mossParameters = nullptr |
|
private |
◆ _regenDelay
flint::IVariable* _regenDelay = nullptr |
|
private |
◆ _sphagnumMossLive
const flint::IPool* _sphagnumMossLive = nullptr |
|
private |
◆ _spinupMossOnly
flint::IVariable* _spinupMossOnly = nullptr |
|
private |
◆ currentStandGCId
Int64 currentStandGCId { -1 } |
|
private |
◆ runMoss
The documentation for this class was generated from the following files:
- /home/runner/work/moja.canada/moja.canada/Source/moja.modules.cbm/include/moja/modules/cbm/mossgrowthmodule.h
- /home/runner/work/moja.canada/moja.canada/Source/moja.modules.cbm/src/mossgrowthmodule.cpp