Numerická analýza za pomoci různých volně šiřitelných programů

Analýza heterogenního materiálu při tepelném namáhání

Součást projektu RPMT 2014 č. 16 - Využití pokročilého modelování konstrukcí v magisterském studiu


Úvod

Numerická analýza je v dnešní době nedílnou součástí vědeckého a technického rozvoje. V drtivé většině případů je samotná analýza provedena výpočetním programem za pomoci počítače. Programy mohou být buď komerční či volně šiřitelné. Je také obvyklé, že volně šiřitelné programy mají otevřený zdrojový kód a uživatel má možnost si daný program přizpůsobit vlastním potřebám.

Na příkladu analýzy heterogenního materiálu při tepelném namáhání je předvedeno použití několika takových programů. Daný celek slouží jako námět, jakým způsobem je možno k řešení dané problematiky přistoupit a také jako úvod do užívaní jednotlivých programů pro začínající uživatele.

Zadání úlohy

Předmětem úlohy je analýza heterogenního materiálu při tepelném namáhání. Materiál sestává z matrice a inkluzí, které mají jinou teplotní roztažnost. V důsledku této nehomogenity bude při změně teploty docházet ke koncentraci napětí.

Tvar konstrukce je dutý válec, který je zevnitř zahříván.

Mechanické okrajové podmínky odpovídají axisymetrické úloze. Je modelován výsek válce tak, že tečné stupně volnosti jsou předepsány nulové (viz obrázek). Tímto postupem se zachová trojrozměrné řešení při redukci velikosti úlohy. Dále je zabráněno stupňům volnosti ve směru osy válce na jedné stěně kolmé na osu válce.

Počáteční podmínka pro úlohu vedení tepla je předepsaná teplota 20 $^\circ$C, jako okrajová podmínka je pak předepsán po částech lineární nárůst teploty vnitřního povrchu (vyznačen červeně na obrázku časový průběh tamtéž) a konstantní teplota na vnějším povrchu (vyznačen modře na obrázku).

Postup řešení

Pro řešení dané úlohy byly použity tyto programy:
Python - moderní dynamický skriptovací jazyk
YADE - program pro výpočty metodou diskrétních prvků
PyT3D - preprocesor pro T3D, napsaný v jazyce Python
T3D - program pro tvorbu sítě
T3D2VTK - převaděč výstupu T3D do formátu VTK
OOFEM - program pro řešení multifyzikálních problémů metodou konečných prvků
ParaView - program pro vizualizaci a analýzu dat
Kromě Pythonu a ParaView jsou všechny programy alespoň částečně vyvíjeny na Katedře mechaniky Fakulty stavební ČVUT.

Python je rozšířený univerzální skriptovací jazyk, který může sloužit ke spouštění ostatních programů či k snadné automatické přípravě dat pro další programy.

Program YADE je určen pro numerickou analýzu metodou diskrétních prvků. Tato metoda uvažuje materiál jako sadu dokonale tuhých částic, které spolu mohou interagovat prostřednictvím deformovatelných vazeb. Obrovské rozmanitosti lze dosáhnout různým tvarem částic a různými konstitutivními vztahy na úrovni vazeb. Jeden z nejjednodušších konstitutivních vztahů uvažuje, že odpudivá síla mezi částicemi je přímo úměrná hloubce vzájemného překryvu částic pokud se tyto překrývají, případně je nulová (k interakci nedochází), pokud k překryvu nedojde. Přirozeně se tedy metoda použije například pro popis sypkých (\uv{diskrétních}) materiálů v situacích, kdy deformace jednotlivých zrn jsou zanedbatelně malé vzhledem k celkovému pohybu zrn a kde metody založené na spojitém popisu (například metoda konečných prvků) nejsou vhodné. Pro daný problém se YADE využije při přípravě náhodné mikrostruktury materiálu.

Konečně prvková síť se vytvoří za pomoci programů PyT3D a T3D. PyT3D za pomoci skriptovacího jazyka Python zjednodušuje přípravu vstupních souborů pro T3D.

Samotný výpočet je pak proveden v programu OOFEM.

Grafické znázornění výsledků je provedeno v programu ParaView.

Příprava náhodné mikrostruktury materiálu

Vstupními hodnotami pro výpočet je tvar a velikost modelované oblasti a poté tvar, velikost a počet inkluzí. V představovaném příkladě mají inkluze tvar kulový a mnohostěnový.

Nejdříve se vytvoří hranice modelované oblasti. Poté se vygenerují samotné inkluze a náhodně se umístí dovnitř hranice. V této fázi je možné (a při větším objemovém zastoupení velice pravděpodobné), že se některé inkluze budou překrývat. Proto se spustí řešení metodou diskrétních prvků, které inkluze „rozstrká“ tak, že k žádnému kontaktu docházet nebude. Po ustálení se konečný stav inkluzí (jejich poloha) uloží do příslušných souborů.

Výhodou metody je fakt, že bezkontaktní konfigurace lze dosáhnout i pro poměrně velká objemová zastoupení inkluzí.



Pro konkrétní řešení je zapotřebí program YADE a skript axisymm.py. Výstupem jsou VTK soubory *.yade-spheres-0000.vtk, *.yade-facets-0000.vtk a *.yade-polyhedra-0000.vtk a soubory *.yade.sphs.txt a *.yade.poly.txt obsahující informace o tvaru, poloze a velikosti inkluzí.

Ke stažení:
vstupní soubor axisymm.py.
výstupní soubory *.yade.sphs.txt
*.yade.poly.txt
*.yade-spheres-0000.vtk
*.yade-facets-0000.vtk
*.yade-polyhedra-0000.vtk

Tvorba konečně prvkové sítě

Pro konečně prvkový výpočet je zapotřebí vytvořit síť. V našem případě musí respektovat již vygenerované inkluze.

Nejdříve se načtou pozice inkluzí z minulého kroku a použije se přípravný program PyT3D, který obsahuje funkce pro vkládání kulvých i mnohostěnových inkluzí do jiné oblasti. Pomocí něho se vygeneruje vstupní soubor pro T3D.



Pro konkrétní řešení jsou zapotřebí programy PyT3D a T3D a skript yade2t3d.py. Výstupem je soubor *.t3d.out, obsahující informace o uzlech a prvcích sítě a také další informace, například příslušnost jednotlivých prvků k materiálu či uzlů k jednotlivým částem hranice oblasti. Tyto informace jsou v dalším kroku použity pro definici materiálů a správných okrajových podmínek.

Ke stažení:
skript yade2t3d.py
vstupní soubory *.yade.sphs.txt
*.yade.poly.txt
pomocné soubory *.t3d.in
*.t3d.vtk
výstupní soubory *.t3d.out

Konečně prvkový výpočet

Řeší se společně úloha nestacionárního vedení tepla a úloha statické mechaniky, a to tzv. „staggered“ přístupem. V každém časovém kroku řešení se nejdříve vyřeší úloha vedení tepla (nezávisle na úloze mechanické) a následně se vyřeší úloha mechanická s ohledem na teplotní pole (vyřešené v předchozí části kroku řešení).

Pro úlohu vedení tepla jsou všechny materiály uvažovány jak homogenní s konstantními vlastnostmi (vzhledem k teplotě), ale každý materiál může mít jinou tepelnou vodivost i kapacitu.

Materiály pro mechanické řešení jsou lineárně pružné, kromě matrice, pro kterou se použije materiál s izotropním poškozením. Navíc materiály inkluzí mají jinou teplotní roztažnost oproti matrici.

Pro konkrétní řešení je zapotřebí program OOFEM a skript t3d2oofem.py. Ten převede síť do vstupního formátu pro OOFEM a doplní veškeré informace o materiálech a okrajových podmínkách. Výstupem jsou soubory *.oofem.*.vtu, obsahující data pro grafické zpracování.

S výsledků je patrné, že k poškozování začne docházet při vnějším povrchu válce. Poškození je také více koncentrováno do oblastí kolem inkluzí, které mají jinou teplotní roztažnost než matrice.



Ke stažení:
skript t3d2oofem.py
vstupní soubor *.t3d.out
pomocné soubory *.oofem.in
*.oofem.sm.in
*.oofem.tm.in
výstupní soubory *.oofem.sm.vtu
*.oofem.tm.vtu

Závěr

Byl představen přístup využití několika různých volně šiřitelných programů pro různé fáze analýzy daného inženýrského problému.

Celý proces může být spuštěn skriptem run.py. Pro úplnost jsou všechny potřebné soubory shrnuty v následující tabulce.

Ke stažení:
skripty run.py
axisymm.py
yade2t3d.py
t3d2oofem.py

Valid XHTML 1.1 Valid CSS
Kontakt: e-mail
Poslední úprava: 22. srpna 2011
© 2011 - 2022   Jan Stránský
Všechna práva vyhrazena