Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating concept documentation #518

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Handling of boundaries that do not contain buildings [#434](https://github.com/ie3-institute/OSMoGrid/issues/434)
- Simplify `GridElements` creation [#504](https://github.com/ie3-institute/OSMoGrid/issues/504)
- Improve clustering efficiency by using faster hashcode method [#515](https://github.com/ie3-institute/OSMoGrid/issues/515)
- Update concept in developers' documentation [#517](https://github.com/ie3-institute/OSMoGrid/issues/517)

### Fixed
- Fixed bug in `LvGridGeneratorSupport` [#388](https://github.com/ie3-institute/OSMoGrid/issues/388)
Expand Down
41 changes: 34 additions & 7 deletions docs/readthedocs/dev/concept.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ Lastly, the street graph is converted into a grid model.

Following this concept, the following actor hierarchy is implemented:

## Actors
## General

Actors related to operations that are relevant to multiple or all voltage levels:

### OsmoGridGuardian
- Coordination of multi voltage level spanning routine
- Error handling
Expand All @@ -34,6 +37,13 @@ Following this concept, the following actor hierarchy is implemented:
- Connects to OpenStreeMap (either via pbf file or API)
- Acquires needed data and filters it (on request and dependent on the purpose)

### ResultListener
- Persisting overall grid model to sinks

## Low voltage

Actors relevant to low voltage grid generation:

### LvCoordinator
- Coordinates the generation of the whole low voltage level
- Spawns an `LvRegionCoordinator` to split up the region of interest
Expand All @@ -45,23 +55,26 @@ Following this concept, the following actor hierarchy is implemented:

### LvRegionCoordinator
- Splits up the region of interest according to a given administrative boundary
- If the level of a municipality is **NOT** reached:
- If the lowest administrative level has **NOT** been reached:
- Spawns new `LvRegionCoordinator`s per new subregion to split up for the next lower administrative boundary
- *Outcome*: Subregions on administrative level `n` + the next lowest administrative level `n-1`
- If the level of a municipality is reached:
- Hand over the "municipalities" to `MunicipalityCoordinator`s
- If the lowest administrative level has been reached:
- Hand over the partitioned regions to a `LvGridGenerator` each
- *Outcome*: Subregions on administrative level "municipality"

### MunicipalityCoordinator
- **Currently not implemented!**
- Coordinates the region partitioning within the administrative boundary of a municipality
- Determines dense and disjoint groups of houses as local "districts"
- *Outcome*: Districts within the given municipality

### DistrictCoordinator
- **Currently not implemented!**
- Breaks down districts even further, if still too big w.r.t. computational measures (to be defined)
- *Outcome*: (Sub)districts with suitable size

### SubDistrictCoordinator
- **Currently not implemented!**
- Responsible for handling a sub-district
- A sub-district can also be a district, if that isn't too big
- Derives loads from houses
Expand All @@ -72,8 +85,22 @@ Following this concept, the following actor hierarchy is implemented:
- *Outcome*: Street subgraphs per secondary substation region

### LvGridGenerator
- Generates a distinct, galvanically closed lv sub grid model from street graph
- Detects unconnected sub graphs and further clusters LV nodes into smaller sub graphs
- Builds galvanically isolated lv sub grid model from sub graphs
- Hands back grid model to `LvCoordinator`
- *Outcome*: Grid model per secondary substation region

### ResultListener
- Persisting overall grid model to sinks
## Medium voltage

Actors relevant to medium voltage grid generation:

### MvCoordinator
- Coordinates the generation of the whole medium voltage level
- Requests and handles asset type information as well as LV and HV grid data
- Partitions MV nodes by using Voronoi areas defined by HV nodes once all required data has been received
- Starts VoronoiCoordinator and hands over partitioned data

### VoronoiCoordinator
- Generates a MV graph structure
- Builds a grid model based on graph structure
- Returns result to MvCoordinator