You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Removing a lot of warnings when building docs
* Loosening ammonia tolerance in the example test
* Cleaning up a few more docs build issues
* Fixing minor doc indentation issues
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,6 +50,17 @@
50
50
- Removed hard-coded logic of price units in finance models to be flexible to any type of commodity. Created helper functions `_compute_price_units` and `_compute_rate_units` in `h2integrate.finances.tools` and integrated usage of these functions into all finance models (`numpy_financial_npv`, `profast_npv`, `profast_lco`) accordingly. [PR 786](https://github.com/NatLabRockies/H2Integrate/pull/786)
51
51
- Removed the `is_electricity_producer` helper from `h2integrate.core.commodity_stream_definitions` and the electricity-specific auto-detection branch in `H2IntegrateModel`, making finance-subgroup `commodity_stream` resolution fully commodity-agnostic; updated example `plant_config.yaml` files that previously relied on the auto-detection to set `commodity_stream` explicitly. [PR 786](https://github.com/NatLabRockies/H2Integrate/pull/786)
52
52
- Ensure OpenMDAO data is cleaned up during testing [PR 797](https://github.com/NatLabRockies/H2Integrate/pull/797).
53
+
- Added capability to specify demand technology for system-level control, and renamed the framework-derived system-level control classification dict from `slc_config` to `slc_topology` to distinguish it from the user-authored `control_parameters` block. [PR 784](https://github.com/NatLabRockies/H2Integrate/pull/784)
54
+
- Reduced Sphinx documentation build warnings from roughly 880 to under 20. [PR 800](https://github.com/NatLabRockies/H2Integrate/pull/800)
55
+
- Set `napoleon_use_ivar` and added `napoleon_custom_sections` so custom Google-style sections (Inputs, Outputs, Promoted Inputs, Promoted Outputs, Subsystems, Discrete Inputs, Discrete Outputs, Options, Behavior, Side Effects) render cleanly.
56
+
- Suppressed the `etoc.toctree` category emitted by autosummary `:recursive:` stubs.
57
+
- Cleared stale `_autosummary/` files at the start of every docs build.
58
+
- Removed duplicated `Methods:` docstring sections that collided with autodoc method discovery.
59
+
- Added `:no-index:` to hand-authored autoclass directives that duplicated autosummary entries.
60
+
- Cleaned up docstring formatting bugs across roughly twenty source files (bullet and definition list separations, starred attribute markers, unbalanced backticks, and stray substitution references).
61
+
- Fixed several MyST cross-reference targets (missing labels, ambiguous doc vs ref targets, incorrect autosummary path, duplicate labels, broken image path, and a broken literalinclude path).
62
+
- Added a custom `docs/_templates/autosummary/module.rst` template that filters pytest `conftest.py` submodules from generated stubs, eliminating the "failed to import conftest" warnings that appeared on the Read the Docs build.
63
+
- Renamed the `GeoH2SubsurfaceCostModel` MyST label in `docs/technology_models/geologic_hydrogen.md` to `mathur-modified-geoh2-cost` to remove an ambiguous cross-reference with the autosummary entry for the Python class of the same name.
53
64
- Updates `h2integrate/core/file_utils.py::check_data_dir` to allow for the creation of nested
54
65
directories, not just the final subdirectory for smoother initialization of a feedstock directory
A fixed performance model represents anything that always produces at its rated capacity and cannot be controlled or reduced by the system level controller. The SLC reads the output from a fixed technology and subtracts it from the demand, but does not send a set-point back to the technology. A good example of this is a classical nuclear plant model: it produces a constant output that the rest of the system must accommodate.
32
32
33
+
(flexible)=
33
34
## Flexible
34
35
A flexible performance model represents anything whose production is determined by an external resource (e.g., wind speed, solar irradiance) and that can only be *reduced* below that resource-determined maximum and never increased above it. The system-level controller sends a `{commodity}_set_point` that acts as an upper bound: when the resource-driven output exceeds the set-point, output is curtailed down to the set-point; otherwise, output is left at the resource-driven value. A good example is the PVWatts PySAM solar plant in H2I; its performance is a function of the input solar resource, and we cannot tell the sun to shine more, but we can curtail the panel output below the available solar production.
35
36
36
37
In other words, flexible is a strictly more restricted case of [dispatchable](#dispatchable): a dispatchable model can be ramped both up and down in response to a set-point, while a flexible model can only be ramped down.
37
38
38
39
To simplify the implementation of applying this curtailment we added a method, `apply_curtailment()`, to the `PerformanceBaseClass`.
Copy file name to clipboardExpand all lines: docs/control/technology_level_control/open-loop_controllers.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -108,4 +108,4 @@ An example output for the first week of a one-year simulation is shown below. Or
108
108
For an example of how to use the `PeakLoadManagementHeuristicOpenLoopStorageController`, see:
109
109
-`examples/33_peak_load_management/`
110
110
111
-
For API details, see the [`PeakLoadManagementHeuristicOpenLoopStorageController` API documentation](../_autosummary/h2integrate.control.control_strategies.storage.plm_openloop_storage_controller).
111
+
For API details, see the [`PeakLoadManagementHeuristicOpenLoopStorageController` API documentation](../../_autosummary/h2integrate.control.control_strategies.storage.plm_openloop_storage_controller).
Copy file name to clipboardExpand all lines: docs/developer_guide/adding_a_new_technology.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,11 +12,11 @@ Every model in H2Integrate inherits from a small set of baseclasses that wire it
12
12
into the rest of the framework. Before writing code, pick the appropriate base
13
13
class and configuration class for each piece of your technology.
14
14
15
-
See the class structure in H2I to learn more: [Class Structure](#class_structure)
15
+
See the class structure in H2I to learn more: {ref}`Class Structure <class_structure>`
16
16
17
17
## Adding a new technology
18
18
19
-
Common model types (performance, cost, control, etc.) with slightly more explanation and examples are include here: [Technology Model Types](#technology_model_types)
19
+
Common model types (performance, cost, control, etc.) with slightly more explanation and examples are include here: {ref}`Technology Model Types <technology_model_types>`
20
20
21
21
Every model has:
22
22
-[Required class attributes](#required-class-attributes): These are usually defined within the class but not in a specific function definition.
@@ -103,9 +103,9 @@ class SolarPerformanceClass(PerformanceModelBaseClass):
Copy file name to clipboardExpand all lines: docs/resource/resource_index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ There are two ways to supply resource data to a technology:
14
14
15
15
16
16
17
+
(resource-data-specified-using-setval)=
17
18
### Resource data specified using `set_val()`
18
19
19
20
Resource data for a technology can be set using the `set_val()` command. In the [Run of River Example](https://github.com/NatLabRockies/H2Integrate/tree/develop/examples/07_run_of_river_plant/), the technology named `river` needs a resource input called `discharge`. An example of this is shown below:
@@ -38,6 +39,7 @@ h2i.run()
38
39
```
39
40
40
41
42
+
(custom-resource-models)=
41
43
### Custom resource models
42
44
The benefit of using a custom resource model is that the resource data can be made to vary for different inputs, which can be beneficial if running a design sweep or optimization where the resource location (specified by a latitude and longitude) is a design variable.
Copy file name to clipboardExpand all lines: docs/resource/solar_index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,5 @@
1
1
(solar_resource:models)=
2
+
(solar-resource-model-overview)=
2
3
# Solar Resource: Model Overview
3
4
4
5
-[GOES PSM v4 API](goes_solar_v4_api): these models require an API key from the [NLR developer network](https://developer.nlr.gov/signup/), the available models are:
@@ -20,6 +21,7 @@ Please refer to the [Setting Environment Variables](../getting_started/environme
20
21
```
21
22
22
23
(solarresource:overview)=
24
+
(solar-resource-output-data)=
23
25
# Solar Resource: Output Data
24
26
25
27
Solar resource models may output solar resource data, site information, information about the data source, and time information. This information is outputted as a dictionary. The following sections detail the naming convention for the dictionary keys, standardized units, and descriptions of all the output data that may be output from a solar resource model.
0 commit comments