OpenEMS 3D EM FDTD Solver |
Nosiłem się z tematem od kilku lat. Miałem poprzednie podejścia, lekko nieudane i mnie troszkę zniechęcały. Ale jak to zwykle bywa potrzeba zmusiła mnie do tego aby przysiąść do tematu i zdaje mi się, że tym razem zajdę dalej. W skrócie jest to trójwymiarowy solver równań Maxwella oparty na numerycznej metodzie FDTD (Finite-Diff erence Time-Domain). Jako interfejs zastosowany jest alternatywnie program Matlab ($$$) albo GNU Octave (licencja rodziny GPL). Sam openEMS też jest wydany na licencji rodziny GPL, więc jak Octave jest za darmo. Narzędzie ma potężne możliwości: - pełne 3D - siatka we współrzędnych kartezjańskich - siatka we współrzędnych cylindrycznych - definiowana gęstość siatki - obsługa wieloprocesorowości i rozszerzeń listy instrukcji SSE, a także MPI (działanie na klastrach obliczeniowych) - możliwość samodzielnego definiowania materiałów, możliwość modelowania materiałów o właściwościach dyspersyjnych Interfejsem jest program Matlab/Octave który sam z siebie jest potężnym narzędziem. Mam to szczęście, że podczas studiów Matlab z Simulinkiem to było jedno z moich podstawowych narzędzi (gorzej, że studia skończyłem 22 lata temu...). Może to być poważna przeszkoda dla ludzi którzy z Matlabem czy Octave nie obcowali dotychczas, ale przecież człowiek uczy się całe życie. Wskazane jest pojęcie działaniach na liczbach zespolonych i macierzach a najlepiej doświadczenie w programowaniu i algorytmizowaniu problemów. Z góry mówię, że za cienki jestem Bolek żeby kogoś tego uczyć ![]() Jeśli do końca jeszcze nie zniechęciłem, to pokaże może jakie możliwości "zaklęte są w tym narzędziu". Jakiś czas temu zaprojektowałem przejście falowodowe WR-22 na 2,4 mm. Nie doczekało się ono jeszcze realizacji, ale wymodelowanie jego właściwości bez jednego wióra, to duży postęp i możliwości poprawek przed realizacją. ![]() ![]() Model trzeba sobie "wyprogramować" z dostępnych prymitywów. Można uzyskać praktycznie każdy kształt, choć wymaga to trochę pracy. Istnieją też możliwości zaimportowania modelu z niektórych formatów mechanicznych, ale to nie automat i tak trzeba poprawiać. Po skończeniu modelu możemy go podejrzeć. ![]() Wygląda "goło" z tego powodu, że cztery ścianki zastąpiły mu zdefiniowane granice symulacji. Cała trudność symulacji polega na zdefiniowaniu zgodnie ze sztuką siatki, warunków brzegowych, punktów w którym pole próbkujemy i opracowaniu postprocesingu surowych danych z których wyciągnąć można interesujące nas parametry. Jako przykład tłumienie i odbicia od portu koncentrycznego rzeczonej przejściówki. ![]() Pracowałem też nad modelem sprzęgacza falowodowego WR-10 i uzyskałem wyniki zgodne z opublikowanymi przez autora tego sprzęgacza. Ta praca służyła mi do skalibrowania narzędzia, gdyż dysponowałem założeniami autora, wymiarami, wynikami z komercyjnych solverów i wynikami pomiarów autora. Ponieważ otrzymałem sporą korelację z publikowanymi wynikami wstępnie uznałem, że warto poświęcić trochę czasu aby wzbogacić swoje możliwości. I to wszystko bez kosztów (no pomijając bezcenny czas). Ktoś jest chętny popróbować? Sam pakiet dostępny jest pod adresem: http://www.openems.de/ Dostępne są kompilacje pod Windows i Linuxa. Wskazana jest relatywnie mocna maszyna, gdyż zachłanność na zasoby jest nieograniczona. Pięknie się skaluje na maszynach wielordzeniowych i wieloprocesorowych. Przejściówka liczyła się na moim komputerze z dwoma ośmiordzeniowymi procesorami Intel Xeon E5-2630v3 i 128 GB RAM-u przez około 12 minut. Wszystkie rdzenie obu procesorów były obciążone w około 90%. Jestem zadowolony że przysiadłem ![]() |