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í
Ú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ě
Python
u 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í:
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í:
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í:
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í: