19 kwietnia 2024


Powszechny dostęp do internetu spowodował, że sieć stała się miejscem wymiany poglądów i doświadczeń. Coraz częstszym zaczyna być także udostępnianie gotowych rozwiązań problemów natury technicznej. Przykładem są bezpłatne programy i aplikacje, które mogłyby pozwolić na redukcję kosztów utrzymania firmy, bądź zwiększenie konkurencyjności na rynku. Gdzie jest zatem przysłowiowy haczyk? Czy „za darmo” oznacza, że nie poniesiemy żadnych kosztów przy użyciu wspomnianych aplikacji? W niniejszym artykule postaram się przedstawić jakie są wady i zalety korzystania z bezpłatnych pakietów do symulacji inżynierskich.

Sławomir Polański

Każde oprogramowanie komputerowe udostępniane jest na pewnych zasadach, określonych w licencji. W przypadku aplikacji bezpłatnych są to licencje otwarte, co oznacza, że dany program może być swobodnie kopiowany i rozpowszechniany. Wśród licencji otwartych rozróżnić można typy licencji, które określają inne warunki, takie jak np. dostęp do kodu źródłowego czy zasady czerpania korzyści finansowych z aplikacji.

darmowy mes
Rys. 1    Wizualizacja wyników otrzymanych przy pomocy aplikacji Calculix w środowisku PrePoMax.  Źródło: http://lace.fs.uni-mb.si/wordpress/borovinsek

Cechą charakterystyczną wszystkich bezpłatnych programów jest to, że autor kodu nie ponosi odpowiedzialności za sposób, w jaki działa program. Tutaj właśnie uwydatnia się największa przewaga programów komercyjnych. Użytkownik płatnego oprogramowania może uzyskać pomoc od jego producenta, ponieważ wsparcie techniczne jest zazwyczaj wliczone w cenę produktu. Jeśli natrafimy na problem w czasie użytkowania aplikacji wolno-źródłowych, to niestety musimy polegać na swoich umiejętnościach. Chociaż w praktyce sytuacja nigdy nie wygląda tak źle, jak mogłoby się wydawać. Istnieje duża szansa na to, że komuś przytrafił się taki sam lub podobny problem do naszego i rozwiązanie znajdziemy również w internecie.
Należy pamiętać, że zarówno w przypadku aplikacji open-source, jak i płatnych programów do analiz inżynierskich nie mamy całkowitej pewności otrzymania poprawnego wyniku, toteż wyniki symulacji numerycznych powinny zostać poddane surowej ocenie i najlepiej – porównane z wynikami z rzeczywistych eksperymentów.

Znane i mniej znane bezpłatne pakiety do symulacji numerycznych
Jeśli zdecydujemy się już na użycie bezpłatnego oprogramowania, to warto wybrać takie, które ma liczne grono użytkowników oraz bazę tzw. benchmarków, czyli testów wzorcowych. Duża społeczność ułatwi nam uzyskanie pomocy w razie problemów z aplikacją, a benchmarki pozwolą ocenić dokładność solvera. Często stanowią one również nieocenioną pomoc przy budowie własnych modeli.
Przyjrzyjmy się najbardziej znanym programom do obliczeń numerycznych, które zostały udostępnione na otwartej licencji.
Calculix jest pakietem numerycznym służącym do rozwiązywania problemów inżynierskich przy użyciu metody elementów skończonych. Autorami oprogramowania są inżynierowie firmy MTU Aero Engines, którym program posłużył w czasie procesu projektowego silnika odrzutowego. Aplikację wyróżnia znakomity solver, który doskonale radzi sobie z problemami, zarówno liniowymi, jak i nieliniowymi. O jakości solvera może świadczyć fakt, że w sieci znaleźć można płatne oprogramowania z wbudowanym silnikiem obliczeniowym Calculixa. Dodatkowym atutem jest fakt, iż składnia pliku wsadowego jest bardzo podobna do składni komercyjnego oprogramowania Abaqus. W rezultacie, obecnym użytkownikom Abaqusa jest stosunkowo łatwo zrozumieć, jak działa Calculix. Niestety, sporym mankamentem programu jest ograniczony pre/postprocessor. Tę niedogodność można jednak częściowo zniwelować wykorzystując dostępne aplikacje zewnętrzne, takie jak np. PrePoMax.
Elmer jest oprogramowaniem do symulacji MES stworzonym w celach edukacyjnych przez IT Center for Science. Aplikacja pozwala na rozwiązywanie problemów z dziedziny mechaniki płynów, mechaniki strukturalnej, elektromagnetyzmu, przepływu ciepła oraz akustyki. To właśnie solver, który cechuje się stabilnością i rzetelnością otrzymywanych wyników, jest największą zaletą tego środowiska. Program ma również interfejs graficzny umożliwiający pre/postprocessing, niemniej jednak jego funkcjonalność jest dość ograniczona. Również w tym przypadku istnieje możliwość importu siatki oraz wizualizacji wyników w aplikacjach zewnętrznych.

2
Rys. 2    Proces przygotowania modelu do symulacji w programie Salome

Kolejna pozycja to środowisko do symulacji numerycznych skomponowane z trzech modułów: Salome, Code Aster i Code Saturne. Środowisko to zostało stworzone przez francuskiego potentata energetycznego Électricité de France i jest wykorzystywane w centrum badawczo-rozwojowym tejże firmy. Salome jest aplikacją, która pozwala na przygotowanie modelu do symulacji, tj. stworzenie geometrii/siatki od podstaw lub jej import z pliku zewnętrznego. Program może posłużyć również do wizualizacji wyników z analiz lub ich eksport np. do Paraview. Za rozwiązywanie zagadnień z dziedziny mechaniki strukturalnej odpowiedzialny jest silnik obliczeniowy Code Aster. Umożliwia on przeprowadzanie różnego rodzaju analiz mechanicznych (statycznych lub dynamicznych) również z uwzględnieniem nieliniowości (np. kontaktu między obiektami). Za analizy w dziedzinie mechaniki płynów odpowiedzialny jest solver Code Saturne, wykorzystujący metodę objętości skończonych. Aplikacja umożliwia przeprowadzenie dwu- i trójwymiarowych symulacji przepływów laminarnych bądź turbulentnych. Dostępnych jest kilka modeli turbulencji, m.in. k-epsilon, RANS i LES. W początkowym etapie rozwoju pakietu użytkowanie poszczególnych modułów było dość uciążliwe, ponieważ dostępna dokumentacja była napisana tylko w języku francuskim. Wraz z dalszym rozwojem oprogramowania pojawiła się dokumentacja w języku angielskim oraz powstały fora internetowe, gdzie w razie potrzeby można uzyskać pomoc.

3
Rys. 3    Zdyskretyzowany model motocykla w środowisku GMSH

Aplikacja GMSH służy głównie do przygotowania modelu do symulacji, choć istnieje również możliwość połączenia jej z zewnętrznym solverem oraz wizualizacji otrzymanych w ten sposób wyników. Pomimo prostej budowy program umożliwia tworzenie skomplikowanych topologicznie siatek, zarówno dla solverów MES jak i CFD. Celem, który przyświecał twórcom tego oprogramowania było stworzenie lekkiej, szybkiej i przyjaznej użytkownikom aplikacji, z możliwością parametryzacji pliku wsadowego. Cechą charakterystyczną tego środowiska jest fakt, że można nim operować zarówno za pomocą interfejsu graficznego, jak i poprzez operacje na pliku zawierającym definicję geometrii i siatki. Oprogramowanie zostało napisane w języku programistycznym C++; trwają prace nad budową interfejsu w języku Python. Dzięki łatwości obsługi i wielu zaawansowanym opcjom aplikacja GMSH ma szerokie grono użytkowników.
Pozycją obowiązkową na liście bezpłatnego oprogramowania do symulacji numerycznych jest OpenFOAM. To pakiet pozwalający przeprowadzić skomplikowane obliczenia z dziedziny mechaniki płynów z uwzględnieniem turbulencji, reakcji chemicznych, transferu ciepła i wielu innych zjawisk. Oprogramowanie zostało napisane w języku C++ i ma szereg bibliotek przystosowanych do rozwiązywania konkretnych problemów inżynierskich. Istnieje również możliwość napisania własnych bibliotek, co znacznie poszerza funkcjonalność silnika obliczeniowego. Nieustannie trwają też prace nad rozwojem tego oprogramowania, o czym świadczyć może stale zwiększająca się liczba dostępnych materiałów edukacyjnych.

4
Rys. 4    Wizualizacja wyników otrzymanych za pomocą pakietu OpenFOAM

Ostatnim, ale nie mniej ważnym oprogramowaniem jest Paraview. Platforma ta stosowana jest głównie do analizy i wizualizacji wyników symulacji numerycznych. Oprogramowanie ma szereg zaawansowanych opcji, dzięki czemu w niczym nie odstaje od dostępnych programów komercyjnych przeznaczonych do postprocessingu. Dodatkowym atutem programu jest interfejs języka Python, który często ułatwia analizę rezultatów. Przykładowo, pozwala na zautomatyzowanie czynności, których manualne wykonywanie mogłoby trwać znacznie dłużej. Kolejną zaletą interfejsu jest fakt, że umożliwia on poszerzenie funkcjonalności pakietu o funkcje niestandardowe, specjalistyczne, według naszych zapotrzebowań. Program został stworzony z myślą o analizie dużych zbiorów danych na dowolnym systemie operacyjnym, dzięki czemu aplikacja jest lekka, mobilna i przyjazna użytkownikowi.

Oczekiwania kontra rzeczywistość
Wiedząc do jakich aplikacji mamy powszechny dostęp, warto zastanowić się czego można od nich oczekiwać i w jaki sposób przygotować się do ich użytkowania. Pierwszym krokiem, który należy podjąć w tym kierunku jest zmiana nastawienia wobec tego typu oprogramowania. Przede wszystkim nie należy oczekiwać, że aplikacja będzie pracowała w ten sam sposób, w jaki pracuje platforma stworzona przez grupę dobrze płatnych programistów.

5
Rys. 5    Wizualizacja wyników w programie ParaView

Czynność, która w komercyjnym pakiecie możliwa była do osiągnięcia za pomocą kilku kliknięć myszką, w programie bezpłatnym może wymagać manualnych edycji w pliku tekstowym. Zdarza się również, że poszczególne etapy budowy modelu najwygodniej wykonać nie w jednym, a sekwencyjnie – w kilku różnych aplikacjach. Na domiar złego, większość solverów uruchamiana jest z linii komend i nie ma interfejsu graficznego, do którego wszyscy jesteśmy przyzwyczajeni. W tym miejscu czytelnik tego tekstu może zadać sobie pytanie – jaki więc jest sens użytkowania czegoś tak ciężkiego w obsłudze? Odpowiedzi jest kilka. Możliwa jest sytuacja, w której firmy nie stać na inwestycję w płatne oprogramowanie. Zdarza się również, że inżynierowie realizują projekty na zlecenie i wtedy perspektywa bezpłatnego oprogramowania będzie równoznaczna ze znaczną redukcją kosztów. W tym kontekście czas poświęcony na przygotowanie symulacji jest walutą, którą płacimy za użytkowanie tego typu aplikacji.

Oprogramowanie wolno-źródłowe w praktyce
Niewątpliwą przewagą programu wolno-źródłowego nad aplikacją płatną jest fakt, że możemy go używać dokładnie w taki sposób, w jaki chcemy. Nawet podstawowa wiedza z zakresu programowania pozwala na dodawanie swoich własnych funkcji, zdefiniowanie specyficznych warunków brzegowych czy implementację niestandardowych modeli materiałowych. Umiejętność programowania umożliwia także napisanie całkiem nowej aplikacji wykorzystującej najmocniejsze strony bezpłatnych pakietów. W oparciu o tę ideę opracowałem autorski program COFEA, na którym chciałbym zademonstrować możliwości bezpłatnych pakietów numerycznych.
Głównym zadaniem aplikacji jest minimalizacja czasu potrzebnego na przygotowanie modelu do symulacji. W tym celu program wykorzystuje język Python, aby stworzyć parametryczny model geometrii, który zostaje poddany dyskretyzacji w aplikacji GMSH. Następnie, na bazie otrzymanej siatki elementów skończonych tworzony jest plik wsadowy do środowiska Calculix. Dzięki zastosowaniu takiej procedury proces przygotowania części mechanicznej (w naszym przypadku: wirnika promieniowego) do analizy strukturalnej ograniczony jest do minimum.

rys6
Rys. 6    Interfejs graficzny aplikacji COFEA

Interfejs graficzny aplikacji COFEA pozwala na zdefiniowanie właściwości materiałowych, gęstości siatki i prędkości obrotowej wirnika. Program może zostać uruchomiony w jednym z dwóch trybów. Pierwszy z nich składa się z procedur mających na celu stworzenie nowej geometrii wirnika, na podstawie parametrów dostarczonych przez użytkownika. Inicjalizacja procesu odbywa się poprzez wciśnięcie przycisku Stwórz! w menu graficznym. Drugi tryb pracy aplikacji polega na stworzeniu modelu numerycznego i uruchomieniu obliczeń numerycznych. Analogicznie, tryb ten jest inicjalizowany poprzez kliknięcie na przycisk Calculix!.