fn candidate_balance_epsilon(
candidate_assets: &[AssetRef],
region_id: &RegionID,
commodity_id: &CommodityID,
ts_selection: &TimeSliceSelection,
epsilon: Flow,
) -> FlowExpand description
Calculate the epsilon to add to the lower bound of a commodity balance constraint, to force some dispatch by candidate assets so they receive a nonzero shadow price.
Returns epsilon if the total maximum output from candidate assets in region_id for
commodity_id in ts_selection exceeds epsilon, otherwise returns zero (to avoid making
the balance constraint infeasible).