muse2/simulation/
investment.rs1use super::optimisation::Solution;
3use super::CommodityPrices;
4use crate::asset::AssetPool;
5use crate::model::Model;
6use log::info;
7use std::collections::HashSet;
8
9pub fn perform_agent_investment(
18 _model: &Model,
19 solution: &Solution,
20 _prices: &CommodityPrices,
21 assets: &mut AssetPool,
22) {
23 info!("Performing agent investment...");
24
25 let mut assets_to_keep = HashSet::new();
26 for (asset_id, _commodity_id, _time_slice, _flow) in solution.iter_commodity_flows_for_assets()
27 {
28 if assets.get(asset_id).is_none() {
29 continue;
31 }
32
33 assets_to_keep.insert(asset_id);
35 }
36
37 assets.retain(&assets_to_keep);
39}