update structure and PV modules tutorial authored by Bouvry Arnaud's avatar Bouvry Arnaud
- formatting of a callout
- reference to example_PVTable.py added (removed linked TODO)
- add a table with a recap of required/optional parameters per structure type
......@@ -322,6 +322,44 @@ type (e.g. `INPUTS/HARDWARE/STRUCTURES/PV_table.yaml`) and adjust values from
there. All parameters in those files are either required or carry a meaningful
non-zero default for that structure type.
Table 9 summarises the status of each structure parameter per structure type.
Legend:
- **R** = required (must be present in the YAML);
- **O** = optional (can be omitted, has a default);
- **—** = optional and unused for this structure type (safe to omit).
Table 9 - Parameter status per structure type.
| Parameter | PV Table | HSATS | Agrivoltaic Fence |
|---|:---:|:---:|:---:|
| `StructureType` | R | R | R |
| `Material` | R | R | R |
| `NumberOfStructureGroups` | R | R | R |
| `RepetitionDistanceGroupYMode` | R | R | R |
| `RepetitionDistanceGroupY` | O | O | O |
| `PoleShape` | R | R | R |
| `PoleRadius` | R | R | R |
| `PoleGroundPositioning` | R | R | R |
| `PoleSide` / `PoleWidth` / `PoleHeight` | O | O | O |
| `PoleSpacingX` | R | R | — |
| `TiltY` | R | R | — |
| `PurlinShape` | R | R | R |
| `PurlinRadius` | R | R | R |
| `PurlinWidth` / `PurlinHeight` / `PurlinSide` | O | O | O |
| `NumberOfPurlins` | O | O | — |
| `RafterShape` | O | O | — |
| `RafterLength` | O | O | — |
| `RafterRadius` / `RafterSide` / `RafterWidth` / `RafterHeight` | O | O | — |
| `NumberOfRafters` | — | R | — |
| `DiagonalShape` | O | — | — |
| `DiagonalRadius` / `DiagonalSide` / `DiagonalWidth` / `DiagonalHeight` | O | — | — |
| `DiagonalEpsilon` | R | — | — |
Note: `PoleSide`, `PoleWidth`, `PoleHeight`, `PurlinSide`, etc. are optional in all cases, but
the relevant dimension parameter must be non-zero when its shape type is selected
(see Table 3 for shape-to-parameter associations).
---
#### Structure types
......@@ -354,10 +392,10 @@ Two poles of different heights support a tilted rafter, with diagonal bracing an
| `RafterLength` | Minimum rafter length (auto-adjusted upward if the tilt geometry requires a longer rafter) |
| `NumberOfPurlins` | Number of purlins distributed evenly across the rafter span |
> If `TiltY` is too large relative to `Height` and `PoleSpacingX`, the structure will extend below ground.
> PASE will raise a `ValueError` in that case.
> [!NOTE] If `TiltY` is too large relative to `Height` and `PoleSpacingX`, the structure will extend below ground which
> will raise a `ValueError`.
TODO link to example pv table (py script, yaml files).
The user is referred to the script `example_PVTable.py` for a practical implementation of this structure type.
**Example YAML snippet (`PV_table.yaml`):**
......
......