Implementace materiálové subroutiny do programu Abaqus
Transkript
Učební text vzniklý v rámci projektu SPAV CZ.1.07/2.3.00/09.0050 Implementace materiálové subroutiny do programu Abaqus Tento studijní text je věnován implementaci subroutin do programu metody konečných prvků Abaqus. Konkrétně se věnuje popisu implementace vlastních materiálových modelů, které jsou v případech implementace do MKP programů nejčastěji využívány. Hlavním důvodem implementace vlastních materiálových modelů v podobě subroutin bývá rozšíření dosavadních materiálových modelů z knihoven příslušných MKP programů, případně odstranění některých zjištěných nedostatků. Příkladem může být například implementace nového kritéria porušení pro úlohy zabývajícími se kompozitní materiály. Subroutiny do programu Abaqus je nutné psát v programovacím jazyku Fortran. Pro možnost realizace výpočtů, ve kterých by byly naimplementovány vlastní subroutiny, je nutné mít nainstalovaný Visual Fortran Compiler. Pro program Abaqus existují již předem definovaná rozhraní (interfaces) jednotlivých subroutin, kterých lze pro implementaci využít. Rozhrání jednotlivých subroutin je uvedeno v [3] a to včetně možnosti využití subroutin a popisu využívajících proměnných (Pozor, ne všechny proměnné bývají ve všech subroutinach značeny vždy stejně). Přehled všech uživatelských subroutin rozdělených podle oblasti jejich využití je uveden v příloze tohoto studijního textu. Subroutiny lze podle možnosti jejich použití dělit na dvě základní skupiny - na subroutiny pro standardní a pro explicitní řešič (Abaqus/Standard a Abaqus/Explicit subroutines). Pod pojmem standardní řešič se rozumí implicitní řešič používající se na řešení úloh statiky a omezeně i dynamiky. Subroutiny pro explicitní řešič jsou od těch pro standardní (implicitní) jednoduše rozpoznatelné podle svého názvu začínajícím vždy písmenem V. Písmeno V značí vektorový zápis, které explicitní subroutiny oproti standardním využívají. Syntaxe subroutin je v obou případech velmi podobná. Na ukázku implementace byla zvolena nejčastěji používaná subroutina, která se používá pro vlastní popis mechanického chování materiálu - subroutina UMAT. Konkrétně zde bude ukázána implementace konstitutivního vztahu pro popis mechanického chování kompozitních materiálů pro úlohu rovinné napjatosti, která bude navíc doplněna o kritérium porušení Hashin. Konstitutivní rovnice je základní rovnicí mechaniky kompozitních materiálů, která je samozřejmě obsažena i v knihovnách programu Abaqus, stejně tak i kritérium porušení Hashin. Tyto základní rovnice a vztahy byly samozřejmě zvoleny úmyslně s cílem umožnit uživateli porovnání výsledků vlastní implementace materiálového modelu s těmi z knihoven programu Abaqus. Zde uvedená materiálová subroutina může samozřejmě posloužit uživateli jako základ pro její další rozšíření. Na konec je určitě vhodné upozornit na fakt, že na každém vlastním materiálovém modelu by mělo být provedeno po každém jeho rozšíření nebo dílčí úpravě rozsáhlé testování. Pro počáteční testy se velmi často využívá právě uvedená testovací úloha s jedním elementem (tzv. one element example) a s postupným uvažováním všech zátěžných stavů. Formulace testovací úlohy Dvě destičky o rozměrech 0.05x0.05 m a tloušťce 0.00115 m jsou zatěžovány tahem na jedné hraně pomocí předepsaného posuvu (0.0005 m za 10 s) ve směru osy x. Protilehlé strany destiček jsou vetknuty. Výpočtová síť každé destičky je zastoupena jedním skořepinovým elementem. Uvažovaný materiál je jednosměrový dlouhovláknový kompozit, jeho materiálové konstanty a potřebné pevnosti jsou uvedeny v tabulce 1. Směr vláken kompozitního materiálu je rovnoběžný s osou y. Porušení materiálu bude zjištěno pomocí kritéria Hashin s α = 0. Jedna destička je uvažována z materiálu z knihoven programu Abaqus, mechanické vlastnosti druhé destičky bude popisovat uživatelská subroutina. E11 = 153.6 GPa X T = 1916 MPa E22 = 7.8 GPa X C = 1160 MPa Y T = 42 MPa ν22 = 0.30 G12 = 4.5 GPa Y C = 200 MPa G13 = 4.5 GPa S C = 48 MPa G23 = 2.75 GPa ρ = 1510 kg˖m-3 Tabulka 1: Materiálové vlastnosti kompozitního materiálu. Teoretická část Konstitutivní rovnice Dle [1] má konstitutivní rovnice pro ortotropní materiál pro případ rovinné napjatosti tvar σ 11 C11 C12 σ 22 = C21 C22 σ 12 0 0 C11 = 0 ε 11 0 ⋅ ε 22 , kde C66 γ 12 ν ⋅E E11 E2 , C12 = 12 22 , C 22 = , C66 = G12 . 1 − ν 12 ⋅ν 21 1 − ν 12 ⋅ν 21 1 − ν 12 ⋅ν 21 Ze symetrie matice tuhosti uvedené v konstutivní rovnici platí mezi Poissonovými čísly vztah ν ij ⋅ E j = ν ji ⋅ Ei . Kriterium porušení Hashin Kritérium Hashin je považováno za první kritérium patřící do skupiny tzv. "direct mode", tedy do skupiny kriterií vyjadřujících více způsobů (módů) porušení kompozitního materiálu. Kriterium Hashin uvažuje celkem 4 módy porušení, dva pro porušení vláken a dva pro porušení matrice. V případě rovinné napjatosti dojde k porušení materiálu, pokud přestane platit alespoň jedna z následujících podmínek [2]: 1. Porušení vláken tlakem (Compresive fibre failure) σ = LC , pro σ < 0 L X 2 FI Fc 2. Porušení vláken tahem (Tensile fibre failure) σ σ = LT + α ⋅ LT C , pro σ L > 0 X S 2 FI Ft 2 3. Porušení matrice tlakem (Compresive matrix failure) FI Mc 2 σ T Y C = C + C 2 S 2S 2 2 σ σ LT T − 1 ⋅ C + C , pro σ T < 0 Y S 4. Porušení matrice tahem (Tensile matrix failure) σ σ = TT + LT , pro σ T > 0 . C Y S 2 FI Mt 2 X C, X T, Y C, Y T a jsou pevnosti vláken (X ) a matrice (Y ) v tlaku (C) a tahu (T) a S C je smyková pevnost daného kompozitního materiálu. Parametr α udává verzi kritéria Hashin, α = 0 odpovídá původní verze kritéria z roku 1973 a α = 1 pak představuje jeho modifikovanou podobu z roku 1980. Rozhrání subroutiny UMAT Rozhrání příslušné subroutiny lze zkopírovat z [3] a má následující tvar. Subroutiny je možné psát v libovolném textovém editoru, je však nutné dodržovat syntaxi programovacího jazyka Fortran. SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, 4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV), 1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS), 2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1), 3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3) user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT RETURN END Pozn: C nebo ! značí v programovacím jazyku Fortran komentář Hlavička určuje všechny vstupující a vystupující proměnné subroutiny. Níže je pak vždy uvedena dimenze těchto proměnných. Z těch nejzákladnějších a vhodné uvést: NTENS - Celkový počet složek napětí, tedy jak složek normálových NDI, tak smykových NSHR. Pro rovinnou úlohu NTENS = 3 (NDI = 2, NSHR = 1), pro prostorovou NTENS = 6 (NDI = 3, NSHR = 3). NSTATV - Počet stavových proměnných (Solution-Dependent State Variable) - jejich počet zadává uživatel dle potřeby na počet výstupů a složitost samotné subroutiny. Zadávání počtu stavových proměnných: Material - General - Depvar - Number of solution-dependent state variable. NPROPS - Celkový počet řádek mechanických konstant přidružených k dané subroutině. Jedná se o počet řádek tabulky v Material - General - User Material. STRESS(NTENS) - Tenzor napětí na začátku příslušného časového kroku, na konci kroku je nutné provést jeho aktualizaci. DDSDDE(NTENS,NTENS) - Matice tuhosti - nutné definovat. STRAN(NTENS) - Celková deformace na začátku časového kroku. Tyto deformace je možné vyvolat ve výsledcích jako celkové deformace (Total Strain Components). DSTRAN(NTENS) - Přírůstek mechanické deformace - není zde zahrnuta deformace vznikající teplotní roztžností materiálu (pokud je v úloze uvažována). STATEV(NSTATV) - Stavová proměnná, do které se ukládají výstupy ze subroutiny. Defaultní hodnota statové proměnné je defaultně v každém časovém kroku defaultně stanovena na hodnotu 0. Vlastní subroutina UMAT popisující chování kompozitních materiálů pro úlohu rovinné napjatosti s uvažováním kritéria porušení Hashin: Níže uvedená komentovaná subroutina popisuje chování kompozitního materiálu v případě rovinné deformace a s uvažováním kritéria porušení Hashin. Subroutina je pro studijní účely přiložena k textu. 1 2 3 4 SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, RPL,DDSDDT,DRPLDE,DRPLDT, STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) INCLUDE 'ABA_PARAM.INC' CHARACTER*80 CMNAME ! Uvažování dvojité přesnosti (double precision) - REAL*8 - přesnost na 16 desetinných míst, ! REAL*4 - přesnost na 8 desetinných míst (single precision) - defaultně (nemusí se psát) REAL*8 STRESS,DDSDDE,SPD DIMENSION STRESS(NTENS),STATEV(NSTATV), 1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS), 2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1), 3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3) ! Načtení vlastností materiálu: ! PROPS(i) - načte i-tý řádek sloupce mechanických konstant zadaných v ! Material - General - User Material ! Elastické parametry: E11=PROPS(1) E22=PROPS(2) V12=PROPS(3) G12=PROPS(4) ! Pevnosti: Xt=props(5) Xc=props(6) Yt=props(7) Yc=props(8) Sc=props(9) ! Parametr Alfa pro kriterium Hashin: alfa=props(10) ! Sestavení matice tuhosti: C=1.0-V12*(V12*E22/E11) DDSDDE(1,1)=E11/C DDSDDE(1,2)=V12*E22/C DDSDDE(1,3)=0.0D0 DDSDDE(2,1)=V12*E22/C DDSDDE(2,2)=E22/C DDSDDE(2,3)=0.0 DDSDDE(3,1)=0.0 DDSDDE(3,2)=0.0 DDSDDE(3,3)=G12 ! Výpočet napětí: ! "nové" napětí na konci inkrementu se rovná součtu "starého" napětí na začátku inkrementu a přírůstků dílčích napětí jakožto to součinu jednotlivých prvků matice tuhosti s přírůstky odpovídající deformace STRESS(1)=STRESS(1)+DDSDDE(1,1)*DSTRAN(1)+ 1 DDSDDE(1,2)*DSTRAN(2)+ 2 DDSDDE(1,3)*DSTRAN(3) STRESS(2)=STRESS(2)+DDSDDE(2,1)*DSTRAN(1)+ 1 DDSDDE(2,2)*DSTRAN(2)+ 2 DDSDDE(2,3)*DSTRAN(3) STRESS(3)=STRESS(3)+DDSDDE(3,1)*DSTRAN(1)+ 1 DDSDDE(3,2)*DSTRAN(2)+ 2 DDSDDE(3,3)*DSTRAN(3) ! Kriterium porušení Hashin: S11=STRESS(1) S22=STRESS(2) S12=STRESS(3) ! porušení vláken v tahu a tlaku - FIfc a FIft: ! pokud je napětí S11 menší jak 0, pak se vypočítá Failure Index (index porušení) pro ! porušení vláken v tahu (FIfc) a následně se uloží do state variable STATEV(1). ! (pozn.: ! relační operátory: = = .eq., < = .lt., > = .gt., <= = .le., >= = .ge.) if (S11.le.0.0) then FIfc=(S11/Xc)**2 STATEV(1)=FIfc ! V případě, že napětí S11 není menší jak nula, spočítá se index pro ! porušení vláken v tahu (FIfc) else FIft=(S11/Xt)**2+alfa*(S12/Sc)**2 STATEV(2)=FIft endif ! Porušení matrice v tahu a tlaku - FImc a FImt - obdoba k FIfc a FImt if (S22.le.0.0) then FImc=(S22/(2*Yc))**2+((Yc/(2*Sc))**2-1)*(S22/Yc)+(S12/Sc)**2 ! přidání podmínky pro případ záporné hodnoty FImc if (FImc.lt.0.0) then FImc=0.0 STATEV(3)=FImc else STATEV(3)=FImc endif else FImt=(S22/Yt)**2+(S12/Sc)**2 STATEV(4)=FImt endif RETURN END SUBROUTINE Zadání subroutiny v Abaqus/CAE 1) Vytvoření vlastního materiálu Pro uvažovaný materiál je nutné zadat jeho hustotu, počet stavových proměnných (nutné zadat alespoň jednu, i když nebude nikterak využita, jinak program zahlásí chybu a výpočet neproběhne). V případě daného ukázkového příkladu je potřeba zadat 4 stavové proměnné, ve kterých budou uloženy jednotlivé Failure Indexy uvažovaného kriteria porušení. Jednotlivé materiálové parametry v User Material je nutné zadávat ve stejném pořadí, ve kterém jsou pak načítány v subroutině. Postup pro zadávání materiálu je následující: Material - General - Density - 1510 kg·m-3 - General - Depvar - Number of solution-dependent state variable (NSTATV) = 4 - General -User Material - Zadání jednotlivých materiálových parametrů. Celkový počet materiálových parametrů - NSPROPS = 10. Obr. 1: Ukázka zadávání materiálových parametrů do subroutiny. 2) Zadání příčné smykové tuhosti - jen pro skořepinové prvky Pro všechny skořepinové prvky v Abaqus/Standard a pro skořepinové prvky s uvažováním velkých deformací (finite-strain) v Abaqus/Explicit je nutné v případě implementace vlastní materiálové subroutiny zadat příčné smykové tuhosti uvažovaného materiálu. Pro homogenní skořepinový prvek s uvažováním elastického ortotropní materiálu s dominantní vlastností materiálu ve směru 1 (směr vláken) lze příčnou smykovou tuhost definovat následujícím způsobem [4] K11 = 5 5 ⋅ G13 ⋅ t , K12 = 0.0, K 22 = ⋅ G23 ⋅ t, kde 6 6 t je tloušťka materiálu a G13 a G23 jsou moduly pevnosti ve smyku v daných rovinách. Zadané hodnoty nelze již v průběhu výpočtu měnit. Zadání příčných smykových tuhostí: Section - shell - Homogenous/Composite/General Shell Stiffness - Advanced - Transverse Shear Stiffnesses - Specify values Konkrétně pro ukázkový příklad: Section - shell - Composite - Advanced - Transverse Shear Stiffnesses - K11, K12, K22: 5 K11 = ⋅ 4.5 ⋅ 109 ⋅ 1.15 ⋅ 10−3 = 4312500 6 K12 = 0.0 K 22 = 5 ⋅ 2.75 ⋅ 109 ⋅ 1.15 ⋅ 10− 3 = 2635400 6 Obr. 2: Ukázka zadávání příčné materiálové tuhosti. 3) Zadání souboru se subroutinou Posledním krokem jak propojit vytvořenou subroutinu s programem Abaqus je zadání její cesty - viz. obr. 3. Postup je následující: Analysis - Jobs - General - User subroutine file -... Obr. 3: Ukázka zadání cesty k subroutině. 4) Zadání vykreslování do výsledků Výsledky, které jsou během výpočtu ukládány do stavových proměnných je nutné pro jejich následnou vizualizaci při vyhodnocení uložit do OBD souboru se zadáním příslušného kroku pro vykreslování: Field Output Requests - State/Field/User/Time - SDV, solution dependent state variables V případě chyby v subroutině se po spuštění výpočtu objeví chybová hláška oznamující problém s provedením kompilace subroutiny. Přesný text: Error in job Job-1: Problem during compilation - odkaz na umístění subroutiny Job Job-1 aborted due to errors. Bližší informace o nalezené chybě lze získat při otevření textového souboru, který má stejný název jako spouštěný výpočtový úkol (job), ve výpočtovém adresáři. Pokud si uživatel nezmění název "jobu", pak bude mít soubor název Job-1.txt. V souboru je uveden často i řádek, kde se zjištěná chyba, která zastavila kompilaci, nachází. Poznámky k subroutinam Abaqus/Explicit V případě použití subroutiny pro Abaqus/Explicit ( např. VUMAT) s uvažováním dvojité přesnosti REAL*8 je nutné změnit přesnost explicitního řešiče Analysis - Jobs - Precision - Abaqus/Explicit precision - změnit ze Single (defaultně) na Double-Analysis + Packager. Pokud nebude přesnost explicitního řešiče takto změněna, spuštění výpočtu neproběhne a bude vypsána chybová hláška o vzniku zdeformovaných elementů: Error in job Job-1: The elements contained in element set ErrElemExcessDistortion-Step1 have distorted excessively. Error in job Job-1: There are a total of X excessively distorted elements Error in job Job-1: The ratio of deformation speed to wave speed exceeds 1.0000 in at least one element. This usually indicates an error with the model definition. Additional diagnostic information may be found in the message file. Obráceně, tedy se zadanou jednoduchou přesností v subroutině (REAL*4) a dvojitou přesností explicitního řešiče, lze výpočet spustit, nicméně výpočtový čas potřebný pro analýzu se tím neúměrně prodlužuje bez žádného přínosu pro výsledky. V subroutinách využívajích explicitní řešič lze oproti standardnímu řešiči využít tzv. "mazání" elementů. Jedná o automatické vynulování tuhosti elementu v dalších časových krocích a jeho zneviditelnění při vykreslování výsledků (pouze zdeformovaný tvar ). Vypínání elementu lze realizovat pomocí příslušné stavové proměnné, která se v daném časovém kroku položí rovna 0. Číslo této stavové proměnné, která má sloužit k vypínání elementů, musí být zadáno v Material - General - Depvar - Variable number controling element deletion Takto stavová proměnná má před vypnutím elementu defaultně zadanou hodnotu 1 (statní mají defaultně 0). Literatura [1] Laš V.: Mechanika kompozitních materiálů. Vydavatelství ZČU v Plzni, Plzeň 2008. [2] Hashin Z. Failure criteria for unidirectional fibre composites. ASME Journal of Applied Mechanics, Vol. 47 (1980), pp 329-334. [3] Abaqus 6.11 User Subroutines Reference Manual. [4] Abaqus 6.11 Analysis User's Manual, volume 4: Elements, section: Shell Section Behavior. Příloha Přehled subroutin souvisejících s danými funkcemi programu Abaqus [3] 1. Subroutiny pro Abaqus/Standard Funkce Amplitudes, User-defined Boundary Conditions Contact Behavior Contact Surfaces Element Output Elements, User-defined Fields, Predefined Initial Conditions Interfacing with External Resources Loads, Distributed Loads, Thermal Loads, Electromagnetic Material Properties Materials, User-defined Motion, Prescribed Orientation Pore Fluid Flow Random Response Shell Section Behavior Wave Kinematics 2. Odpovídající subroutina UAMP DISP, UDEMPOTENTIAL FRIC, FRIC_COEF, GAPCON, GAPELECTR, UINTER RSURFU UVARM UEL, UELMAT UFIELD, UMASFL, UPRESS, USDFLD, UTEMP HARDINI, SDVINI, SIGINI, UPOREP, VOIDRI UEXTERNALDB, URDFIL DLOAD, UTRACLOAD FILM, HETVAL UDECURRENT, UDSECURRENT CREEP, UANISOHYPER_INV, UANISOHYPER_STRAIN, UDMGINI, UEXPAN, UFLUID, UFLUIDLEAKOFF, UHARD, UHYPEL, UHYPER, UMULLINS, UTRS UMAT, UMATHT UMESHMOTION, UMOTION ORIENT DFLOW, DFLUX, FLOW UCORR, UPSD UGENS UWAVE Subroutiny pro Abaqus/Explicit Funkce Amplitudes, User-defined Boundary Conditions Contact Behavior Elements, User-defined Fields, Predefined Fluid Exchange, User-defined Loads, Distributed Material Properties Materials, User-defined Wave Kinematics Odpovídající subroutina VUAMP VDISP VFRIC, VFRIC_COEF, VFRICTION, VUINTER, VUINTERACTION VUEL VUFIELD, VUSDFLD VUFLUIDEXCH, VUFLUIDEXCHEFFAREA VDLOAD VFABRIC, VUANISOHYPER_INV, VUANISOHYPER_STRAIN, VUHARD, VUTRS, VUVISCOSITY VUMAT VWAVE
Podobné dokumenty
Fortran
je deklarovat jako globálnı́ proměnné. Tohoto lze dosáhnout pomocı́ tzv. Common blocku. V následujı́cı́ ukázce je vidět, jak je lze definovat. Jedná se o subroutinu UEXTERNALDB, ve které l...
SERVISNÍ PŘÍRUČKA Určeno pro klimatizační jednotky: pro
Ochrana IPM modulu proti přetížení
Přehřátí výparníku vnitřní jednotky
PRC1330(2) - U-WAVE_online.indd
* Aby nedošlo k poškození otvorů se závitem v plastovém těle U-WAVE-T, měly by být upevňovací
šrouby dotaženy bez použití nadměrné síly. Ze stejného důvodu je třeba se rovněž vyhnout
opakovanému od...
ES prohlaseni 0 shode - ExTox Gasmess
horlavych ajnebo toxickych plynu a kysliku odpovidaji evropskym smernicim podle nasledujici
tabulky. Jsou splneny odpovidajici bezpecnostni pozadavky evropskych smernic.
1. Smernice Evropskeho par...
Přehled funkcí - UTM firewally nové generace - Profi
a patentovaným management rozhraním eGUI, které zákazníkům prokazatelně šetří čas i peníze.
Jedná se o přehledné a intuitivní grafické rozhraní pro konfiguraci a správu jednotek, uživatelů
a příslu...
Stáhnout soubor - Západočeská univerzita
Běžným materiálovým modelem laminy je model ortotropního materiálu, resp. vzhledem
k materiálové symetrii model příčně izotropního materiálu [10], [27]. Pro popis elastického
chování takovéhoto mat...
Uživatelský manuál v.2.1cz
Použití akumulátorů na jiné účely a jiným způsobem než je uvedeno v manuálu může způsobit zranění
obsluhy, zničení akumulátorů a zkrácení životnosti.
bulletin 3·2009 - Česká společnost pro mechaniku
Během zkoušek při najíždění spalovací turbíny se neobjevily pulzace tlaku
odpovídající rotujícímu odtržení nebo pumpáži. Pulzace byly zjištěny až při běžném
provozu s energoplynem jako palivem v ro...
mezioperační doprava a manipulace s materiálem
interiérových dílů ku času, nutnému pro jejich zpracování. Jestliže počet zpracovaných
zakázek je pevně dán plánem výroby, je produktivitu možno zvýšit pouze snížením hodnoty
časové náročnosti zpra...