Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(wasserfoerderung): FI 5.008 planner engine with per-pump pressures

Open
#584 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
22/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
backend

Research direction

Start from FörderstreckePlanner on the branch feat/wasserfoerderung-plan-a and the friction table it uses, then compare it with FI 5.008 Tab. 3. The golden tests should reproduce Abb. 22 (0/540/920/1260 m) and Abb. 23 (0/458/579 m). Done means those tests pass, plus new tests for downhill overpressure, an infeasible steep segment, a route shorter than one hose, and a partial last segment. The review comment on #150 holds context not in the payload and should be read first.

Written by the indexing model from the issue text.

Description

Slice 1 of the Wasserförderung restart (#150). Domain only — no UI, no persistence, no sync. Analysis and rationale: see the review comment on #150.

Why

The planner on feat/wasserfoerderung-plan-a (FörderstreckePlanner) has problems in its hydraulics:

  • Its friction table is optimistic compared with FI 5.008 Tab. 3: 1,0 vs. 1,2 bar/100 m at 800 l/min. At 8 bar / 1,5 bar it plans a 620 m flat leg where FI 5.008 Abb. 22 gives 540 m, so pumps end up ~15 % too far apart.
  • On a descent Cost() goes negative and the leg keeps extending. Nothing checks overpressure against the B hose's 16 bar.
  • It returns only counts and positions in metres. There are no per-pump pressures.
  • The reserve is a unitless "3 % of budget" instead of a pressure in bar.
Scope
  • Friction per FI 5.008 Tab. 3 (600/800/1000/1200 l/min), cited in the code.
  • Inputs: Förderstrom, pump type / Ausgangsdruck (8 or 10 bar), min. Eingangsdruck, Sicherheitsreserve in bar, Warnschwelle, optional Einsatzstellenpumpe at the target.
  • Input profile as Stützpunkte (Strecke m, Höhe m), interpolated to 20 m stations. Keep the branch's worst-interior-point crest check.
  • Result per pump: role (Wasserentnahmestelle / Verstärkerpumpe / Einsatzstellenpumpe), station, Höhe, Eingangsdruck, Ausgangsdruck, section length / rise / B-20 count.
  • Typed findings instead of exceptions where the plan is still usable: overpressure downhill, a segment that cannot be pumped at all, Restdruck at the target below the minimum, >1000 l/min → Doppelleitung.
  • A partial last segment is charged pro rata, not as a full 20 m. Hose totals equal the sum of the sections.
Out of scope / open
  • Offene Schaltreihe: model it correctly (every pump draws from a Faltbehälter) or leave it out. Re-checking only the last stretch is not enough.
  • The DBV setting, reserve pump ratio and reserve hose rule need a cited source before they are shown as instructions.
Acceptance
  • Golden tests reproduce FI 5.008 Abb. 22 (0/540/920/1260 m, 0/0/19,2/43,2 m, 8 bar, 800 l/min) and Abb. 23 (0/458/579 m, 0/14/19 m).
  • Tests cover a downhill overpressure case, an infeasible steep segment, a route shorter than one hose, and a partial last segment.

🤖 Generated with Claude Code

Dominant language
C#
Stars
1
Forks
3
Avg merge
4h 34m
Merged PRs (30d)
182

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CodeForFire/lagebuch

All issues in CodeForFire/lagebuch

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.