Krótki opis usługi

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.

Aktywowanie usługi

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ń:

Pierwsze kroki

Klient Unicore


Uruchomienie zadania

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.


Działanie programu Fluent w trybie wsadowym

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:

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:

Zaawansowane użycie

Możliwe jest także uruchamianie zadań przez: QosCosGrid, gLite lub interfejsy graficzne.