CYCAMORE
Loading...
Searching...
No Matches
cycamore::GrowthRegion Class Reference

This region determines if there is a need to meet a certain capacity (as defined via input) at each time step. More...

#include <growth_region.h>

Inheritance diagram for cycamore::GrowthRegion:

Public Member Functions

virtual Json::Value annotations ()
 
virtual cyclus::Agent * Clone ()
 
virtual void DecomNotify (Agent *m)
 unregister a child
 
virtual void DecomNotify (Agent *m)
 unregister a child
 
virtual void EnterNotify ()
 enter the simulation and register any children present
 
virtual void EnterNotify ()
 enter the simulation and register any children present
 
 GrowthRegion (cyclus::Context *ctx)
 The default constructor for the GrowthRegion.
 
 GrowthRegion (cyclus::Context *ctx)
 The default constructor for the GrowthRegion.
 
virtual void InfileToDb (cyclus::InfileTree *tree, cyclus::DbInit di)
 
virtual void InitFrom (cycamore::GrowthRegion *m)
 
virtual void InitFrom (cyclus::QueryableBackend *b)
 
virtual void InitInv (cyclus::Inventories &inv)
 
virtual std::string schema ()
 
cyclus::toolkit::SupplyDemandManager * sdmanager ()
 
cyclus::toolkit::SupplyDemandManager * sdmanager ()
 
virtual void Snapshot (cyclus::DbInit di)
 
virtual cyclus::Inventories SnapshotInv ()
 
virtual void Tick ()
 On each tick, the GrowthRegion queries its supply demand manager to determine if there exists some demand.
 
virtual void Tick ()
 On each tick, the GrowthRegion queries its supply demand manager to determine if there exists some demand.
 
virtual std::string version ()
 
virtual std::string version ()
 
virtual ~GrowthRegion ()
 The default destructor for the GrowthRegion.
 
virtual ~GrowthRegion ()
 The default destructor for the GrowthRegion.
 

Protected Member Functions

void AddCommodityDemand_ (std::string commod, Demand &demand)
 add a demand for a commodity on which this region request that facilities be built
 
*The type name is the lower case name of the function (e.g., " " 'linear', 'exponential', etc.)." "\n\n" " *The parameters associated with each function type can be found on their " "respective documentation pages."
 
void OrderBuilds (cyclus::toolkit::Commodity &commodity, double unmetdemand)
 orders builds given a commodity and an unmet demand for production capacity of that commodity
 
void Register_ (cyclus::Agent *agent)
 register a child
 
void Unregister_ (cyclus::Agent *agent)
 unregister a child
 

Protected Attributes

std::map< std::string, std::vector< std::pair< int, std::pair< std::string, std::string > > > > commodity_demand
 
std::vector< intcycpp_shape_commodity_demand
 
cyclus::toolkit::SupplyDemandManager sdmanager_
 manager for Supply and demand
 

Private Member Functions

void RecordPosition ()
 Records an agent's latitude and longitude to the output db.
 

Private Attributes

cyclus::toolkit::Position coordinates
 
std::vector< intcycpp_shape_latitude
 
std::vector< intcycpp_shape_longitude
 
double latitude
 
double longitude
 

Friends

class GrowthRegionTests
 

Detailed Description

This region determines if there is a need to meet a certain capacity (as defined via input) at each time step.

If there is such a need, the region will determine how many of each facility type are required and then determine, facility by facility, which of its institutions are available to build each facility.

@TODO In order to make GrowthRegion copacetic with init/restart, its input parameter space was simplified. For now it can only provide growth support for a single demanded commodity. A relatively simple next step will be to determin an input API and corresponding implementation that again supports multiple commodities being demanded.

Warning
The growth region is experimental

Definition at line 40 of file build/cycamore/growth_region.h.

Constructor & Destructor Documentation

◆ GrowthRegion() [1/2]

cycamore::GrowthRegion::GrowthRegion ( cyclus::Context * ctx)

The default constructor for the GrowthRegion.

Definition at line 7 of file build/cycamore/growth_region.cc.

◆ ~GrowthRegion() [1/2]

cycamore::GrowthRegion::~GrowthRegion ( )
virtual

The default destructor for the GrowthRegion.

Definition at line 18 of file build/cycamore/growth_region.cc.

◆ GrowthRegion() [2/2]

cycamore::GrowthRegion::GrowthRegion ( cyclus::Context * ctx)

The default constructor for the GrowthRegion.

◆ ~GrowthRegion() [2/2]

virtual cycamore::GrowthRegion::~GrowthRegion ( )
virtual

The default destructor for the GrowthRegion.

Member Function Documentation

◆ AddCommodityDemand_()

void cycamore::GrowthRegion::AddCommodityDemand_ ( std::string commod,
Demand & demand )
protected

add a demand for a commodity on which this region request that facilities be built

Definition at line 20 of file build/cycamore/growth_region.cc.

References sdmanager_.

Referenced by EnterNotify().

◆ annotations()

virtual Json::Value cycamore::GrowthRegion::annotations ( )
inlinevirtual

Definition at line 226 of file build/cycamore/growth_region.h.

◆ Clone()

virtual cyclus::Agent * cycamore::GrowthRegion::Clone ( )
inlinevirtual

Definition at line 172 of file build/cycamore/growth_region.h.

◆ DecomNotify() [1/2]

void cycamore::GrowthRegion::DecomNotify ( Agent * m)
virtual

unregister a child

Definition at line 62 of file build/cycamore/growth_region.cc.

References Unregister_().

◆ DecomNotify() [2/2]

virtual void cycamore::GrowthRegion::DecomNotify ( Agent * m)
virtual

unregister a child

◆ EnterNotify() [1/2]

void cycamore::GrowthRegion::EnterNotify ( )
virtual

enter the simulation and register any children present

Definition at line 43 of file build/cycamore/growth_region.cc.

References AddCommodityDemand_(), commodity_demand, RecordPosition(), and Register_().

◆ EnterNotify() [2/2]

virtual void cycamore::GrowthRegion::EnterNotify ( )
virtual

enter the simulation and register any children present

◆ function()

*The type name is the lower case name of the cycamore::GrowthRegion::function ( e. g.,
" " 'linear' ,
'exponential' ,
etc.  )
protected

◆ InfileToDb()

virtual void cycamore::GrowthRegion::InfileToDb ( cyclus::InfileTree * tree,
cyclus::DbInit di )
inlinevirtual

◆ InitFrom() [1/2]

virtual void cycamore::GrowthRegion::InitFrom ( cycamore::GrowthRegion * m)
inlinevirtual

◆ InitFrom() [2/2]

virtual void cycamore::GrowthRegion::InitFrom ( cyclus::QueryableBackend * b)
inlinevirtual

◆ InitInv()

virtual void cycamore::GrowthRegion::InitInv ( cyclus::Inventories & inv)
inlinevirtual

Definition at line 289 of file build/cycamore/growth_region.h.

◆ OrderBuilds()

void cycamore::GrowthRegion::OrderBuilds ( cyclus::toolkit::Commodity & commodity,
double unmetdemand )
protected

orders builds given a commodity and an unmet demand for production capacity of that commodity

Parameters
commoditythe commodity being demanded
unmetdemandthe unmet demand

Definition at line 136 of file build/cycamore/growth_region.cc.

Referenced by Tick().

◆ RecordPosition()

void cycamore::GrowthRegion::RecordPosition ( )
private

Records an agent's latitude and longitude to the output db.

Definition at line 178 of file build/cycamore/growth_region.cc.

References latitude, and longitude.

Referenced by EnterNotify().

◆ Register_()

void cycamore::GrowthRegion::Register_ ( cyclus::Agent * agent)
protected

register a child

Definition at line 66 of file build/cycamore/growth_region.cc.

References sdmanager_.

Referenced by EnterNotify().

◆ schema()

virtual std::string cycamore::GrowthRegion::schema ( )
inlinevirtual

Definition at line 178 of file build/cycamore/growth_region.h.

◆ sdmanager() [1/2]

cyclus::toolkit::SupplyDemandManager * cycamore::GrowthRegion::sdmanager ( )
inline

Definition at line 321 of file build/cycamore/growth_region.h.

References sdmanager_.

◆ sdmanager() [2/2]

cyclus::toolkit::SupplyDemandManager * cycamore::GrowthRegion::sdmanager ( )
inline

Definition at line 68 of file src/growth_region.h.

References sdmanager_.

◆ Snapshot()

virtual void cycamore::GrowthRegion::Snapshot ( cyclus::DbInit di)
inlinevirtual

◆ SnapshotInv()

virtual cyclus::Inventories cycamore::GrowthRegion::SnapshotInv ( )
inlinevirtual

Definition at line 292 of file build/cycamore/growth_region.h.

◆ Tick() [1/2]

void cycamore::GrowthRegion::Tick ( )
virtual

On each tick, the GrowthRegion queries its supply demand manager to determine if there exists some demand.

If demand for a commodity exists, then the correct build order for that demand is constructed and executed.

Parameters
timeis the time to perform the tick

Definition at line 110 of file build/cycamore/growth_region.cc.

References commodity_demand, OrderBuilds(), and sdmanager_.

◆ Tick() [2/2]

virtual void cycamore::GrowthRegion::Tick ( )
virtual

On each tick, the GrowthRegion queries its supply demand manager to determine if there exists some demand.

If demand for a commodity exists, then the correct build order for that demand is constructed and executed.

Parameters
timeis the time to perform the tick

◆ Unregister_()

void cycamore::GrowthRegion::Unregister_ ( cyclus::Agent * agent)
protected

unregister a child

Definition at line 92 of file build/cycamore/growth_region.cc.

References sdmanager_.

Referenced by DecomNotify().

◆ version() [1/2]

virtual std::string cycamore::GrowthRegion::version ( )
inlinevirtual

Definition at line 50 of file build/cycamore/growth_region.h.

References CYCAMORE_VERSION.

◆ version() [2/2]

virtual std::string cycamore::GrowthRegion::version ( )
inlinevirtual

Definition at line 48 of file src/growth_region.h.

References CYCAMORE_VERSION.

Friends And Related Symbol Documentation

◆ GrowthRegionTests

GrowthRegionTests
friend

Definition at line 42 of file build/cycamore/growth_region.h.

Member Data Documentation

◆ commodity_demand

std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string> > > > cycamore::GrowthRegion::commodity_demand
protected

◆ coordinates

cyclus::toolkit::Position cycamore::GrowthRegion::coordinates
private

Definition at line 371 of file build/cycamore/growth_region.h.

◆ cycpp_shape_commodity_demand

std::vector<int> cycamore::GrowthRegion::cycpp_shape_commodity_demand
protected

Definition at line 328 of file build/cycamore/growth_region.h.

Referenced by InfileToDb(), InitFrom(), InitFrom(), and Snapshot().

◆ cycpp_shape_latitude

std::vector<int> cycamore::GrowthRegion::cycpp_shape_latitude
private

Definition at line 360 of file build/cycamore/growth_region.h.

Referenced by InfileToDb(), InitFrom(), InitFrom(), and Snapshot().

◆ cycpp_shape_longitude

std::vector<int> cycamore::GrowthRegion::cycpp_shape_longitude
private

Definition at line 367 of file build/cycamore/growth_region.h.

Referenced by InfileToDb(), InitFrom(), InitFrom(), and Snapshot().

◆ latitude

double cycamore::GrowthRegion::latitude
private

◆ longitude

double cycamore::GrowthRegion::longitude
private

◆ sdmanager_

cyclus::toolkit::SupplyDemandManager cycamore::GrowthRegion::sdmanager_
protected

manager for Supply and demand

Definition at line 338 of file build/cycamore/growth_region.h.

Referenced by AddCommodityDemand_(), Register_(), sdmanager(), Tick(), and Unregister_().


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