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

#include <cbmspinupdisturbancemodule.h>

Inheritance diagram for CBMSpinupDisturbanceModule:
Inheritance graph
Collaboration diagram for CBMSpinupDisturbanceModule:
Collaboration graph

Public Member Functions

 CBMSpinupDisturbanceModule ()
 
virtual ~CBMSpinupDisturbanceModule ()
 
void configure (const DynamicObject &config) override
 
void subscribe (NotificationCenter &notificationCenter) override
 
void doDisturbanceEvent (DynamicVar) override
 
void doLocalDomainInit () override
 
void doTimingInit () 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 doTimingStep ()
 
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 Types

typedef std::vector< CBMDistEventTransferEventVector
 
typedef std::unordered_map< int, EventVectorEventMap
 

Private Member Functions

void fetchMatrices ()
 
void fetchDMAssociations ()
 

Private Attributes

flint::IVariable * _spu
 
int _spuId
 
EventMap _matrices
 
std::unordered_map< std::pair< std::string, int >, int > _dmAssociations
 

Member Typedef Documentation

◆ EventMap

typedef std::unordered_map<int, EventVector> EventMap
private

◆ EventVector

typedef std::vector<CBMDistEventTransfer> EventVector
private

Constructor & Destructor Documentation

◆ CBMSpinupDisturbanceModule()

◆ ~CBMSpinupDisturbanceModule()

virtual ~CBMSpinupDisturbanceModule ( )
virtual

Member Function Documentation

◆ configure()

void configure ( const DynamicObject &  config)
override

Configuration function

Parameters
configDynamicObject&
Returns
void

◆ doDisturbanceEvent()

void doDisturbanceEvent ( DynamicVar  n)
overridevirtual

Assign boolean variable runPeatland as "peatland_class".
If runPeatland is false, add Carbon budget module disturbance module operation transfer.
else add peatland disturbance module operation transfer.

Parameters
nDynamicVar
Returns
void

Reimplemented from CBMModuleBase.

◆ doLocalDomainInit()

void doLocalDomainInit ( )
overridevirtual

Invoke CBMSpinupDisturbanceModule.fetchMatrices(), CBMSpinupDisturbanceModule.fetchDMAssociations(),
assign CBMSpinupDisturbanceModule._spu value of variable "spatial_unit_id" in _landUnitData

Returns
void

Reimplemented from CBMModuleBase.

◆ doTimingInit()

void doTimingInit ( )
overridevirtual

Assign CBMSpinupDisturbanceModule._spuId as CBMSpinupDisturbanceModule._spu value.

Returns
void

Reimplemented from CBMModuleBase.

◆ fetchDMAssociations()

void fetchDMAssociations ( )
private

For each disturbance matrix association in variable "disturbance_matrix_associations" from _landUnitData,
insert "disturbance_type", "spatial_unit_id" and "disturbance_matrix_id" of each disturbance matrix association into CBMSpinupDisturbanceModule._dmAssociations.

Returns
void

◆ fetchMatrices()

void fetchMatrices ( )
private

Fetch disturbance matrices.

For each row in "disturbance_matrices",
initialise variable transfer as CBMDistEventTransfer(*_landUnitData, row).
Initialise integer variable dmId as transfer.disturbanceMatrixId().
if dmId in CBMSpinupDisturbanceModule._matrices is equal to CBMSpinupDisturbanceModule._matrices.end(),
add transfer to eventVector,
dmId and eventVector to CBMSpinupDisturbanceModule._matrices.
else add transfer to v->second.

Returns
void

◆ subscribe()

void subscribe ( NotificationCenter &  notificationCenter)
override

Subscribe to signals LocalDomainInit, DisturbanceEvent and TimingInit

Parameters
notificationCenterNotificationCenter&
Returns
void

Member Data Documentation

◆ _dmAssociations

std::unordered_map<std::pair<std::string, int>, int> _dmAssociations
private

◆ _matrices

EventMap _matrices
private

◆ _spu

flint::IVariable* _spu
private

◆ _spuId

int _spuId
private

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