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í
commercialvstup stejně jako geometrii, zatížení a prostředí. - Create flow může tento
commercialvstup 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
commercialsubset 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žitostiasset-backed floorje konzervativní minimální denní sazba odvozená z hodnoty soustavy zam2.- 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)