Skip to content

Commit 3611d75

Browse files
committed
Update SPORES objective; update math docs
1 parent 86af532 commit 3611d75

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

docs/hooks/dummy_model/model.yaml

+9-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,19 @@ overrides:
55
time_cluster: cluster_days.csv
66
config.build:
77
add_math: ["storage_inter_cluster"]
8+
spores:
9+
config:
10+
init.name: SPORES solve mode
11+
build.mode: spores
12+
solve.spores.number: 2
13+
parameters:
14+
spores_slack: 0.1
815

916
config.init.name: base
1017

1118
nodes:
12-
A.techs: {demand_tech, conversion_tech, supply_tech, storage_tech}
13-
B.techs: {demand_tech, conversion_tech, supply_tech, storage_tech}
19+
A.techs: { demand_tech, conversion_tech, supply_tech, storage_tech }
20+
B.techs: { demand_tech, conversion_tech, supply_tech, storage_tech }
1421

1522
techs:
1623
tech_transmission:

src/calliope/backend/latex_backend_model.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -541,8 +541,7 @@ def generate_math_doc(
541541
"yaml_snippet": da.attrs.get("yaml_snippet", None),
542542
}
543543
for name, da in sorted(getattr(self, objtype).data_vars.items())
544-
if (objtype == "objectives" and name == self.objective)
545-
or (objtype != "objectives" and "math_string" in da.attrs)
544+
if ("math_string" in da.attrs)
546545
or (objtype == "parameters" and da.attrs["references"])
547546
]
548547
for objtype in [
@@ -557,6 +556,11 @@ def generate_math_doc(
557556
}
558557
if "parameters" in components and not components["parameters"]:
559558
del components["parameters"]
559+
for objective in components.get("objectives", []):
560+
if objective["name"] == self.objective:
561+
objective["name"] += " (active)"
562+
else:
563+
objective["name"] += " (inactive)"
560564
return self._render(
561565
doc_template, mkdocs_features=mkdocs_features, components=components
562566
)

src/calliope/math/spores.yaml

+4-12
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,9 @@ global_expressions:
1919

2020
objectives:
2121
min_spores:
22+
description: >-
23+
SPORES score minimisation objective, activated for all iterations after the baseline optimisation.
24+
The SPORES scores are applied to flow capacity for each technology at each node.
2225
equations:
23-
- expression: sum(flow_cap * spores_score, over=[nodes, techs, carriers]) + $unmet_demand
24-
sub_expressions:
25-
unmet_demand:
26-
- where: "config.ensure_feasibility=True"
27-
expression: >-
28-
sum(
29-
sum(unmet_demand - unused_supply, over=[carriers, nodes])
30-
* timestep_weights,
31-
over=timesteps
32-
) * bigM
33-
- where: "NOT config.ensure_feasibility=True"
34-
expression: "0"
26+
- expression: sum(flow_cap * spores_score, over=[nodes, techs, carriers])
3527
sense: minimise

0 commit comments

Comments
 (0)