GCBM
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CBMPartitioningModule Class Reference

#include <cbmpartitioningmodule.h>

Inheritance diagram for CBMPartitioningModule:
Inheritance graph
Collaboration diagram for CBMPartitioningModule:
Collaboration graph

Public Member Functions

 CBMPartitioningModule ()
 
virtual ~CBMPartitioningModule ()
 
void subscribe (NotificationCenter &notificationCenter) override
 
void doLocalDomainInit () override
 
void doTimingInit () override
 
void doDisturbanceEvent (DynamicVar e) override
 
void doTimingStep () override
 
- Public Member Functions inherited from CBMModuleBase
virtual ~CBMModuleBase ()=default
 
void onSystemInit () override
 
void onSystemShutdown () override
 
void onLocalDomainInit () override
 
void onLocalDomainShutdown () override
 
void onLocalDomainProcessingUnitInit () override
 
void onLocalDomainProcessingUnitShutdown () override
 
void onPreTimingSequence () override
 
void onTimingInit () override
 
void onTimingPrePostInit () override
 
void onTimingPostInit () override
 
void onTimingPostInit2 () override
 
void onTimingShutdown () override
 
void onTimingStep () override
 
void onTimingPreEndStep () override
 
void onTimingEndStep () override
 
void onTimingPostStep () override
 
void onOutputStep () override
 
void onPrePostDisturbanceEvent () override
 
void onPostDisturbanceEvent () override
 
void onPostDisturbanceEvent2 () override
 
void onError (std::string msg) override
 
void onDisturbanceEvent (DynamicVar e) override
 
void onPostNotification (short preMessageSignal) override
 
virtual void doSystemInit ()
 
virtual void doSystemShutdown ()
 
virtual void doLocalDomainShutdown ()
 
virtual void doLocalDomainProcessingUnitInit ()
 
virtual void doLocalDomainProcessingUnitShutdown ()
 
virtual void doPreTimingSequence ()
 
virtual void doTimingPrePostInit ()
 
virtual void doTimingPostInit ()
 
virtual void doTimingPostInit2 ()
 
virtual void doTimingShutdown ()
 
virtual void doTimingPreEndStep ()
 
virtual void doTimingEndStep ()
 
virtual void doTimingPostStep ()
 
virtual void doOutputStep ()
 
virtual void doError (std::string msg)
 
virtual void doPrePostDisturbanceEvent ()
 
virtual void doPostDisturbanceEvent ()
 
virtual void doPostDisturbanceEvent2 ()
 
virtual void doPostNotification (short preMessageSignal)
 

Private Member Functions

void fetchRecoveryRules ()
 
std::shared_ptr< IRecoveryRulecreateInitialRecoveryRule (std::string disturbanceType)
 
std::shared_ptr< IRecoveryRulecreateRecoveryRule (std::string disturbanceType)
 
void doSmallDisturbanceEvent (std::string disturbanceType, double mortality)
 
void doLargeDisturbanceEvent (std::string disturbanceType)
 

Private Attributes

std::list< std::shared_ptr< IRecoveryRule > > _activeRecoveryRules
 
std::list< std::shared_ptr< IRecoveryRule > > _pendingRecoveryRules
 
double _cumulativeMortality = 0.0
 
int _spuId
 
std::map< std::string, std::map< int, double > > _disturbanceMortality
 
std::map< std::string, std::string > _disturbanceCategories
 
std::map< std::string, std::map< int, std::tuple< std::string, DynamicVar > > > _initialRecoveryRules
 
std::map< std::string, std::map< int, std::tuple< std::string, DynamicVar > > > _recoveryRules
 
std::vector< const flint::IPool * > _agBiomassPools
 
std::vector< const flint::IPool * > _totalBiomassPools
 
std::vector< const flint::IPool * > _totalEcoPools
 
flint::IVariable * _partition
 
flint::IVariable * _spinupParameters
 
flint::IVariable * _spu
 

Constructor & Destructor Documentation

◆ CBMPartitioningModule()

◆ ~CBMPartitioningModule()

virtual ~CBMPartitioningModule ( )
virtual

Member Function Documentation

◆ createInitialRecoveryRule()

std::shared_ptr< IRecoveryRule > createInitialRecoveryRule ( std::string  disturbanceType)
private

◆ createRecoveryRule()

std::shared_ptr< IRecoveryRule > createRecoveryRule ( std::string  disturbanceType)
private

Create the Recovery Rules based on the disturbance type

If the disturbance type is not found in CBMPartitioningModule._recoveryRules, return a null pointer

Parameters
disturbanceTypestd::string
Returns
std::shared_ptr<IRecoveryRule>

◆ doDisturbanceEvent()

void doDisturbanceEvent ( DynamicVar  e)
overridevirtual

If the value of of the row, "disturbance" in parameter e, and column, CBMPartitioningModule._spuId, is < 0.2, Invoke CBMPartitioningModule.doSmallDisturbanceEvent(), else invoke CBMPartitioningModule.doLargeDisturbanceEvent()

Parameters
eDynamicVar
Returns
void

Reimplemented from CBMModuleBase.

◆ doLargeDisturbanceEvent()

void doLargeDisturbanceEvent ( std::string  disturbanceType)
private

◆ doLocalDomainInit()

void doLocalDomainInit ( )
overridevirtual

Initialise the values of CBMPartitioningModule._partition, CBMPartitioningModule._spinupParameters and CBMPartitioningModule._spu with variables "partition", "spinup_parameters" and "spu" from _landUnitData
Invoke CBMPartitioningModule.fetchRecoveryRules()
Initialise CBMPartitioningModule._agBiomassPools, CBMPartitioningModule._totalBiomassPools, CBMPartitioningModule._totalEcoPools, CBMPartitioningModule._disturbanceMortality with value of variable "disturbance_mortality" from _landUnitData , CBMPartitioningModule._disturbanceCategories with value of variable "disturbance_categories" from _landUnitData

Returns
void

Reimplemented from CBMModuleBase.

◆ doSmallDisturbanceEvent()

void doSmallDisturbanceEvent ( std::string  disturbanceType,
double  mortality 
)
private
Parameters
disturbanceTypestd::string
mortalitydouble

◆ doTimingInit()

void doTimingInit ( )
overridevirtual

Reimplemented from CBMModuleBase.

◆ doTimingStep()

void doTimingStep ( )
overridevirtual

Reimplemented from CBMModuleBase.

◆ fetchRecoveryRules()

void fetchRecoveryRules ( )
private

◆ subscribe()

void subscribe ( NotificationCenter &  notificationCenter)
override

Subscribe to signals LocalDomainInit, TimingInit, DisturbanceEvent and TimingStep

Parameters
notificationCenterNotificationCenter&
Returns
void

Member Data Documentation

◆ _activeRecoveryRules

std::list<std::shared_ptr<IRecoveryRule> > _activeRecoveryRules
private

◆ _agBiomassPools

std::vector<const flint::IPool*> _agBiomassPools
private

◆ _cumulativeMortality

double _cumulativeMortality = 0.0
private

◆ _disturbanceCategories

std::map<std::string, std::string> _disturbanceCategories
private

◆ _disturbanceMortality

std::map<std::string, std::map<int, double> > _disturbanceMortality
private

◆ _initialRecoveryRules

std::map<std::string, std::map<int, std::tuple<std::string, DynamicVar> > > _initialRecoveryRules
private

◆ _partition

flint::IVariable* _partition
private

◆ _pendingRecoveryRules

std::list<std::shared_ptr<IRecoveryRule> > _pendingRecoveryRules
private

◆ _recoveryRules

std::map<std::string, std::map<int, std::tuple<std::string, DynamicVar> > > _recoveryRules
private

◆ _spinupParameters

flint::IVariable* _spinupParameters
private

◆ _spu

flint::IVariable* _spu
private

◆ _spuId

int _spuId
private

◆ _totalBiomassPools

std::vector<const flint::IPool*> _totalBiomassPools
private

◆ _totalEcoPools

std::vector<const flint::IPool*> _totalEcoPools
private

The documentation for this class was generated from the following files: