CYCAMORE
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for cycamore::GrowthRegion:
Collaboration graph
[legend]

Public Member Functions

virtual Json::Value annotations ()
 
virtual cyclus::Agent * Clone ()
 
virtual void DecomNotify (Agent *m)
 unregister a child More...
 
virtual void DecomNotify (Agent *m)
 unregister a child More...
 
virtual void EnterNotify ()
 enter the simulation and register any children present More...
 
virtual void EnterNotify ()
 enter the simulation and register any children present More...
 
 GrowthRegion (cyclus::Context *ctx)
 The default constructor for the GrowthRegion. More...
 
 GrowthRegion (cyclus::Context *ctx)
 The default constructor for the GrowthRegion. More...
 
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. More...
 
virtual void Tick ()
 On each tick, the GrowthRegion queries its supply demand manager to determine if there exists some demand. More...
 
virtual std::string version ()
 
virtual std::string version ()
 
virtual ~GrowthRegion ()
 The default destructor for the GrowthRegion. More...
 
virtual ~GrowthRegion ()
 The default destructor for the GrowthRegion. More...
 

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 More...
 
*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 More...
 
void Register_ (cyclus::Agent *agent)
 register a child More...
 
void Unregister_ (cyclus::Agent *agent)
 unregister a child More...
 

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 More...
 

Private Member Functions

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

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.

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 _tmp_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 _tmp_build/cycamore/growth_region.cc.

Referenced by cycamore::ConstructGrowthRegion().

◆ ~GrowthRegion() [1/2]

cycamore::GrowthRegion::~GrowthRegion ( )
virtual

The default destructor for the GrowthRegion.

Definition at line 18 of file _tmp_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 _tmp_build/cycamore/growth_region.cc.

References sdmanager_, and cycamore::string.

Referenced by EnterNotify().

◆ annotations()

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

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

◆ Clone()

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

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

References InitFrom().

Here is the call graph for this function:

◆ DecomNotify() [1/2]

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

unregister a child

◆ DecomNotify() [2/2]

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

unregister a child

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

References Unregister_().

Referenced by Snapshot(), and version().

Here is the call graph for this function:

◆ EnterNotify() [1/2]

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

enter the simulation and register any children present

◆ EnterNotify() [2/2]

void cycamore::GrowthRegion::EnterNotify ( )
virtual

enter the simulation and register any children present

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

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

Referenced by Snapshot(), and version().

Here is the call graph for this function:

◆ 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 _tmp_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 _tmp_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 _tmp_build/cycamore/growth_region.cc.

References latitude, longitude, and cycamore::string.

Referenced by EnterNotify().

◆ Register_()

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

register a child

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

References sdmanager_.

Referenced by EnterNotify().

◆ schema()

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

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

◆ sdmanager() [1/2]

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

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

References commodity_demand, and sdmanager_.

◆ sdmanager() [2/2]

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

Definition at line 321 of file _tmp_build/cycamore/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 _tmp_build/cycamore/growth_region.h.

◆ Tick() [1/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

◆ Tick() [2/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 _tmp_build/cycamore/growth_region.cc.

References commodity_demand, OrderBuilds(), and sdmanager_.

Referenced by Snapshot(), and version().

Here is the call graph for this function:

◆ Unregister_()

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

unregister a child

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

References sdmanager_.

Referenced by DecomNotify().

◆ version() [1/2]

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

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

References CYCAMORE_VERSION, DecomNotify(), EnterNotify(), and Tick().

Here is the call graph for this function:

◆ version() [2/2]

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

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

References CYCAMORE_VERSION.

Friends And Related Function Documentation

◆ GrowthRegionTests

GrowthRegionTests
friend

Definition at line 42 of file _tmp_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 _tmp_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 _tmp_build/cycamore/growth_region.h.

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

◆ cycpp_shape_latitude

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

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

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

◆ cycpp_shape_longitude

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

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

Referenced by InfileToDb(), 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 _tmp_build/cycamore/growth_region.h.

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


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