W ramach zasobów oferowanych przez infrastrukturę PL-Grid możliwe jest prowadzenie obliczeń obejmujących zagadnienia szeroko rozumianej obliczeniowej dynamiki płynów (Computational Fluid Dynamics). Dla użytkowników udostępniony został pakiet oprogramowania CFD firmy ANSYS, w szczególności obejmujący program FLUENT.
Uruchamianie zadań możliwe jest w ramach różnych interfejsów graficznych do obsługi zadań. Poniższy przykład został opisany dla Systemu Unicore.
Poniżej opisane zostały najważniejsze kroki wymagane do rozpoczęcia obliczeń:
Jedną z charakterystycznych cech wykonywania obliczeń w trybie wsadowym jest konieczność zdefiniowania zadania (rozumianego jako dane, obejmujące siatkę obliczeniową, parametry modelu, warunki brzegowe, ustawienia solwera, itd) przed rozpoczęciem obliczeń. Dane do obliczeń są dostarczane w plikach, w najprostszym przypadku jest to plik z siatką (.msh lub .cas) oraz plik zwierający polecenia sterujące obliczeniami (często nazywany plikiem journal). Przykłady pliku .cas oraz pliku wejściowego journal są dołączone do prezentacji. W kolejnej części tego rozdziału podane zostaną podstawowe informacje o tworzeniu plików sterujących obliczeniami w programie Fluent.
Obliczenia są prowadzone w trybie wsadowym, co oznacza, że zadanie musi zostać całkowicie zdefiniowane przed rozpoczęciem obliczeń. Użytkownik nie ma możliwości komunikacji z programem Fluent od momentu uruchomienia aż do chwili zakończenia działania. Dlatego wszystkie ustawienia oraz czynności do wykonania, które podczas 'standardowej' interaktywnej pracy najczęściej są podawane za pośrednictwem wyboru poleceń z graficznego menu, muszą zostać zapisane w pliku/plikach sterujących wykonaniem zadania. Można to robić na wiele sposobów; w ramach tego podręcznika podajemy najprostsze metody.
Na początku zakładamy, że Użytkownik ma możliwość lokalnego korzystania z programu Fluent w celu przygotowania pliku .cas opisującego model (siatka, ustawienia modelu, warunki brzegowe, itd), W związku z tym zadaniem pliku sterującego, poniżej oznaczanego nazwą inputfile, będzie wczytanie pliku .cas oraz uruchomienie obliczeń.
Uwaga o pliku inputfile: Plik inputfile może być plikiem 'journal' utworzonym podczas wcześniejszych sesji FLUENTa, lub też plikiem utworzonym za pomocą edytora tekstowego. W każdym przypadku plik ten może zawierać tylko polecenia interfejsu tekstowego.
Przykładowy plik inputfile jest przedstawiony poniżej:
file/read-case example.cas solve/initialize/initialize-flow solve/iterate 50 file/write-data example50.dat solve/iterate 50 file/write-data example100.dat exit
Plik ten opisuje następujące czynności:
wczytanie pliku .cas zawierającego opis zadania (tu: example.cas);
polecenie exit powoduje zakończenie działania Fluenta.
Niektóre polecenia można zapisywać korzystając z aliasów poleceń, w szczególności powyższy ciąg poleceń można zapisać równoważnie w postaci:
rc example.cas solve/init/init it 50 wd example50.dat it 50 wd example100.dat exit
Powyższa sekwencja wykorzystuje standardowe aliasy (it jest aliasem dla sekwencji poleceń solve/iterate, rc jest aliasem polecenia file/read-case, wd jest aliasem równoważnym file/write-data, itd). Aliasy pozwalają skrótowo opisywać najczęściej wykorzystywane polecenia. W ogólnym przypadku polecenie Fluenta wymaga podania pełnej ścieżki poleceń, np. solve/init/init, zgodnie ze strukturą menu poleceń Fluenta. Jest to dokładniej omówione w części dla zaawansowanych.
Kolejny przykład dotyczy zagadnienia ewolucyjnego (transient).
file/read-case example.cas solve/init/init
solve/set/time-step
; dlugosc kroku czasowego
0.001 solve/dual-time-iterate
10
; liczba kroków czasowych
500
; maksymalna liczba iteracji w kroku czasowym
file/write-data model.dat
exit
yes
Plik ten opisuje następujące czynności:
Ostatnia linia w przykładzie yes jest niezbędna, bowiem przed zakończeniem działania Fluent wyświetla komunikat:
The current case and data have not been saved. Ok to discard?
Odpowiedź na ten komunikat również musiała znaleźć się w pliku input.
Uwaga: Podczas przygotowywania zadania wsadowego należy poprawnie przewidzieć ciąg pytań generowanych przez program w miarę jego wykonywania i przygotować odpowiedzi na wszystkie takie komunikaty. Każda zmiana w stosunku do założonego scenariusza (czyli rozbieżność między pytaniami generowanymi przez program - a odpowiedziami znajdującymi się w pliku wejściowym) powoduje niepoprawny przebieg zadania wsadowego.
Poniższy ciąg poleceń pochodzi w przykładu opisanego w prezentacji Zadanie Generic.
/file/confirm-overwrite?
no
file/read-case test.cas
solve/initialize/initialize-flow
solve/iterate
20
/file/export/ascii
test.dat
wylot
; 'wylot' nazwa zakresu komórek.
...... pusta linia
; pusta linia oznacza koniec podawania zakresow komorek. Brak zakresu (tylko pusta linia) oznacza cały obszar obliczeniowy
yes
;yes - przecinek jako znak rozdzielajacy wartosci, no - spacja
velocity-magnitude
q
; q oznacza koniec wprowadzania zmiennych do wypisania
no
;no - wypisywac wartosci w wezlach, yes - wartosci w srodkach komorek
exit
yes
Pojawiły się kolejne nowe elementy: