====== Model FlowChart ====== **See also a graphical version [[http://regmas.org/cgi-bin/viewvc.cgi/regmas/doc/userManual/imgs/regmasFlowChart.png?view=co|here]].** ===== Init stage ===== * RegData::setDefaultSettings() * RegData::setScenarioSettings() * RegData::setResources() * RegData::setDefaultActivities() * RegData::setScenarioActivities(); * RegData::setObjectsDefinitions() * Gis::setSpace() * Manager_farmers::setAgentMoulds() * Manager_farmers::populateAgents() * Manager_farmers::locate() * Manager_farmers::assignObjectsToAgents() * Manager_farmers::assignSpatialObjectsToAgents() * Manager_farmers::createBehaviours() * Agent_farmer::initMIP() * Opt::update() * Opt::updateActivities() * Opt::updateResourceNames() * Opt::updateResourceValues() * Opt::updateGlpkProblem() * Opt::solve() * Output::initOutput() ===== Simulation stage ===== Foreach (simulation year): * Manager_farmers::prepare() * Foreach (farmer): * Agent_farmer::payInitialYearCosts() * Foreach (farmer): * Agent_farmer::initMIP() * landAllocation() * Agent_farmer::offerRentalPrice() * Agent_farmer::getShadowPrice() * Opt::solve() (conditional) * Opt::saveToCache() * Opt::addPixel() * Opt::solve() * Opt::removeLastAddedPixel() * Opt::restoreFromCache() * assignPlot() * Agent_farmer::addPlotToMIP() * Opt::addPixel() * Agent_farmer::addPlotToRentedList() * Manager_farmers::calibrateLandValues() * Manager_farmers::quotePlot() * Agent_farmer::offerRentalPrice() * Foreach (farmer): * Agent_farmer::payRentNewlyRentedPlots() * Foreach (farmer): * Agent_farmer::initMIP() * Manager_farmers::act() * Foreach (farmer): * Agent_farmer::produce() * Agent_farmer::collectProductionEffects() * Agent_base::withdraw() * Output::collectData() * Output::print() * Output::printAggregatedData() * Output::printMaps() * Output::printDetailedData() * Output::printDebugMatrices() * Foreach (pixel): * Pixel::newYear() * deassociateEndedRentalContracts() * Foreach (object in the pixel): * deleteOutOfScopeOldObjects() * Manager_farmers::update() * Foreach (farmer): * Agent_farmer::update() * deleteOutOfScopeOldObjects() * deassociateEndedRentalContracts() * Manager_farmers::planNext() * Foreach (farmer): * Agent_farmer::leaveActivity() * removeFromModel(farmer)