Dokumentace
Centrum nápovědyDoménaVýpočetní engine
docs/cs/02-domain/calculation-engine.md

Výpočetní engine

Tento dokument popisuje výpočetní engine lešení na konceptuální a modulární úrovni. Zaměřuje se na determinismus, omezení a auditovatelnost a vyhýbá se detailům UI a perzistence.

Základní požadavky

  • Deterministický: stejný normalizovaný vstup ⇒ stejný výstup, pro pevně danou verzi enginu.
  • Validující: odmítá nevalidní konfigurace pomocí explicitních doménových chyb.
  • Auditovatelný: výstupy obsahují dostatek struktury pro vysvětlení výsledků a varování.
  • Komponovatelný: moduly výpočtu se mohou vyvíjet bez porušení invariantů.

Vstupy (konceptuálně)

Engine konzumuje normalizovaný, validovaný vstup odvozený z Projektu:

  • volba scaffold systému (např. rámové/modulové/trubkové)
  • geometrie a rozměry
  • zatížení (užitná zatížení, třídy), kotvení/tie patterny
  • parametry prostředí (např. větrná oblast, opláštění)
  • omezení dostupnosti komponent (volitelné, pokud jsou assets integrovány)

Výstupy (konceptuálně)

  • Metriky: utilization, bezpečnostní faktory, kritické prahy.
  • Varování:
  • informační (doporučení)
  • blokující (nevalidní/nebezpečné konfigurace)
  • kritická (vyžadují pozornost před exportem/schválením)
  • Bill of materials (BOM): komponenty a množství, s volitelnými pravidly pro groupování.
  • Odvozená geometrie: vyřešené segmenty, uzly, body kotvení (pokud relevantní).

Komerční vrstva a presety

  • Výpočetní engine přijímá explicitní commercial vstup stejně jako geometrii, zatížení a prostředí.
  • Create flow může tento commercial vstup předvyplnit z tržního presetu (rodinný dům, bytový dům, průmyslový objekt), ale engine už vždy počítá jen s konkrétními čísly z projektu.
  • Preset tedy není součástí kanonického výpočtu; je to pouze deterministický seed vstupů při založení draftu.
  • V editoru může uživatel později přepnout jen komerční baseline preset; taková akce mění pouze commercial subset vstupu a nechává technickou konfiguraci beze změny.
  • Pronájem se nepočítá jen jako m2 × dny × ruční sazba.
  • Engine používá váženou denní sazbu:
  • effectiveDailyRate = max(zadaná sazba, asset-backed floor) × faktor délky × faktor složitosti
  • asset-backed floor je konzervativní minimální denní sazba odvozená z hodnoty soustavy za m2.
  • Faktor složitosti zohledňuje zejména:
  • typ soustavy
  • load class
  • počet aktivních podlaží
  • přístupový systém
  • opláštění, expozici a střechu
  • kotvení a odhad hustoty kotev
  • potřebu materiálového hoistu
  • Cílem je, aby výpočet pronájmu zůstal:
  • deterministický
  • auditovatelný
  • kalibrovaný na běžné české tržní rozpětí

Struktura enginu (moduly)

1) Normalizace a validace

  • kanonizace jednotek a rozsahů
  • ověření, že pro zvolený systém existují povinná pole
  • odmítnutí nepodporovaných kombinací

2) Rozřešení geometrie

  • převod high-level rozměrů na diskrétní strukturální model
  • definice segmentů, polí, úrovní a spojovacích bodů

3) Modelování zatížení

  • výpočet distribuce zatížení podle třídy a environment vstupů
  • započtení úprav pro opláštění/vítr, pokud je to relevantní

4) Vyhodnocení omezení

  • kontrola systémových omezení (např. max délka pole, frekvence kotvení)
  • výpočet utilization a detekce překročení prahů

5) Optimalizace (volitelná, tier-gated)

  • návrhy materiálových nebo konfiguračních zlepšení
  • musí zůstat deterministická (rule-based optimalizace nebo fixní heuristiky)

6) Generování BOM

  • mapování vyřešené struktury na sady komponent
  • stabilní ordering a groupování pro audit/export

Verzování a zpětná kompatibilita

  • Engine má explicitní verzi enginu použitou pro každý výsledek.
  • Změny, které ovlivňují výstupy, vyžadují:
  • bump verze enginu
  • dokumentaci dopadů (ADR u významných změn)
  • schopnost znovu přepočítat starší Projekty pod jejich zaznamenanou verzí (policy rozhodnutí).

Doménové chyby (konceptuálně)

  • validační chyby vstupu (schema/type/range)
  • porušení omezení (unsafe/unsupported)
  • interní porušení invariantů (brát jako defect; logovat a bezpečně surfaced)