Symulacja przepływu laminarnego w kanale z uskokiem, analiza wpływu gęstości siatki obliczeniowej i rzędu aproksymacji członów konwekcyjnych w równaniach pędu na jakość uzyskanych wyników obliczeń.
W ramach ćwiczenia należy przeprowadzić symulacje przepływu laminarnego w kanale z uskokiem dla liczby Reynoldsa Reh=230. Liczba Reynoldsa bazuje na średniej prędkości na wlocie do obszaru obliczeniowego i wysokości stopnia h = 1 cm. Obliczenia testowe należy wykonać na dwóch siatkach obliczeniowych (rzadkiej i gęstej), z wykorzystaniem schematów pierwszego i drugiego rzędu do dyskretyzacji członów konwekcyjnych w równaniach pędu (first and second-order upwind). Uzyskane wyniki obliczeń porównać z danymi eksperymentalnymi. Oszacować straty ciśnienia wzdłuż kanału. Wlotowy profil prędkości (parabola) należy zdefiniować przy pomocy funkcji Interpreted UDF.
Po zakończeniu symulacji nalezy zastanowić się:
Warunkiem zakończenia ćwiczenia jest przedstawienie prowadzącemu zajęcia otrzymanych wyników obliczeń oraz dokonanie analizy uzyskanych wyników. Całość w formie sprawozdania zawierającego obrazy jak również analizę wyników.
Otworzyć program Fluent. Włączając pierwszy raz program fluent w naszym bloku projektu zostanie wyświetlone okno powitalne w którym możemy wprowadzić wstępne ustawienia naszych obliczeń.
Na nasze potrzeby, ustawiamy analizę dwuwymiarową (program prawdopodobnie się domyśli tego ustawienia). Dodatkowymi opcjami, które mogą nas interesować w przyszłości są opcje:
Double precision - Zwiększamy dokładność obliczeń kosztem ich prędkości oraz stabilności
Solver Processes - ile rdzeni procesora chcemy użyć do obliczeń. Oczywiście zwięszkając zasoby zwiększamy prędkość obliczeń.
w tym momencie nie zmieniamy dodatkowych opcji, zostawiamy ustawienia domyślne
Interface użytkownika niewiele różni się od tego w poprzednich programach. Po lewej stronie ekranu znajduje się drzewo opcji Outline View. Aby poprawnie ustawić przypadek jakichkolwiek obliczeń powinno się uzupełniać wszystkie potrzebne ustawienia przechodząc drzewo opcji od góry do dołu.
Po wczytaniu się programu, jeżeli zaznaczyliśmy opcje Display mesh after reading a zaznaczyliśmy, w oknie graficznym powinna się pojawić nasza geometria.
Jeżeli się nie pojawiła, w oknie Task Page pomiędzy oknem graficznym a drzewem opcji, wybieramy przycisk Display…. W nowopowstałym oknie Mesh display klikamy przycisk Display.
Aby sprawdzić czy przestrzeń obliczeniowa ma odpowiednie wymiary wciskamy Scale… (Wymiary naszej domeny: 0.7 m x 0.3 m).
Jeżeli siatka została wykonana w innych jednostkach niż wcześniej sugerowano, to należy ją przeskalować (wybrać jednostkę w której był tworzony model Mesh was created in i potwierdzić przyciskiem Scale).
W oknie Task Page, w polu solver sprawdzamy nasze podstawowe ustawienia solvera dla naszego przypadku:
Pressure-based - zalecane dla obliczeń nieściśliwych (Density-based - ściśliwe)
Steady - stan ustalony ( Unstedy - nieustalony)
Przepływ jest dwuwymiarowy 2D Space/Planar
W oknie Outline View przechodzimy do Models po rozwinięciu klikamy dwukrotnie Viscous. Pojawi nam się okno opcji modeli obliczeniowych. Wybieramy odpowiedni model. Zamykamy okno i zwijamy menu Models.
Teraz materiał zdefiniowany w menu Materials. Po rozwinięciu dwukrotnie klikamy na air (lub po zaznaczeniu air wciskamy przycisk Create/Edit).
Wprowadźmy dane jak dla wody tzn.:
w oknie Name można zmienić nazwę z air na woda (we Fluencie jest też możliwość dodania dowolnego płynu z bazy danych Fluent Database, ale trzeba pamiętać potem o aktywacji wybranego płynu w Cell Zone Conditions/Edit). potwierdzamy Change/Create i zamykamy okno.
Rozwijamy Cell Zone Conditions i otwieramy opcję naszej domeny. Pod zakładką Fluid powinna znajdywać się nazwa którą przyporządkowaliśmy naszym powierzchniom, w tym przypadku Woda.
Upewniamy się, czy w menu rozwijanym Material Name jest wybrany materiał który przed chwilą stworzylismy (woda).
Przygotowujemy plik UDF.
Wczytujemy zadany profil prędkości do Fluenta za pomocą okna (Górna belka) User-Defined/Functions/Interpreted potwierdzić przyciskiem Interpret.
Oknie Outline View przechodzimy dalej. Kolejną opcją w drzewie jest Boundary Conditions. Tutaj definiujemy nasze warunki brzegowe. Jeżeli w odpowiedni sposób sformatowaliśmy nazwy naszych elementów geometrii, program fluent sam domyśli się jakie warunki brzegowe przyporządkować do tych nazw. Rozwiń poszczególne warunki brzegowe i upewnij się, że wszystko jest na swoim miejscu.
Warto też zauważyć, że warunki brzegowe mają swoja reprezentacje w postaci kolorów. W oknie graficznym, wlot zawsze będzie niebieski, wylot czerwony a ściany (wall) białe.
Wchodząc do warunku brzegowego inlet aktywujemy wczytany profil składowej X prędkości na wlocie do obszaru obliczeniowego. Należy pamiętać, że jest to składowa x prędkości nie moduł prędkości. Wybieramy odpowiednią metodę prowadzania warunku brzegowego w Velocity Specification Method i przy składowej X rozwijamy menu i wybieramy naszą zmienną z pliku UDF. Akceptujemy wybór i wychodzimy.
To już wszystko w zakładce Setup w oknie Outline View.
W zakładce Solution w Methods:
Po rozwinięciu Monitors w Residual ustawiamy poziom zbieżności rozwiązania (Absolute Criteria) dla wszystkich składników z 0.001 na 1e-5.
W Initialization wybieramy Standardową metodę inicjalizacji. Pod Compute from wybrać warunek wlotowy, w oknie Initial Values pojawiły się teraz wartości z wlotu. Sprawdzić czy prędkość odpowiada średniej wprowadzonej do UDFa. Kliknięcie na Initialize spowoduje przypisanie tych wartości całemu obszarowi obliczeniowemu.
Przechodzmy do Run Calculation. W polu Parameters sterujemy, w przypadku obliczeń stacjonarnych, ilością iteracji. Ustaw wstępnie 30 iteracji i uruchom obliczenia. Pojawi się okno z informacją Calculation complete ale to nie znaczy, że obliczenia będą poprawne. Aby dokładnośc obliczeń doprowadzić do zadowalającego poziomu nalezy obserwować wykres zbieżności. Zmień liczbę iteracji i kontynuuj obliczenia aż wszystkie zmienne na wykresie osiągną zbieżność. Jeżeli wykresy wszystkich zmiennych się zbiegnią, a więc zmienne ustalą się w pobliżu poziomu zbieżności którą ustawiliśmy w punkcie 11, lub go przekroczą tą wartość możemy zakończyć obliczenia. Jeżeli osiągniemy zbieżność którą ustawilismy, program wyświetli informację ! solution converged w Konsoli u dołu okna.
Proszę zachować wykres zbieżności do raportu
Na tym etapie możemy już zwizualizować nasze wyniki.
Proszę wykonać wizualizacje konturów ciśnienia, prędkości, wektorów prędkości i linii prądu korzystając z opcji Graphics pod zakładką Results:
Contours – mapy konturów, wystarczy ustawić odpowiedni parametr pod Contours of. Aby przestrzenie między izoliniami były wypełnione musi być zaznaczona opcja Filled, nie trzeba nic zaznaczać w oknie Surfaces.
Vectors – mapy wektorów, aby były czytelniejsze można zmienić wartości pod Scale i Skip
Pathlines – linie prądu, pod Release from Surfaces, zaznaczyć z których powierzchni mają być puszczane, uwaga: przy gęstszych siatkach należy pamiętać o wprowadzeniu jakieś wartości pod Path Skip
Wszystkie grafiki mają się znaleźć w raporcie
Zdefiniować dodatkowe przekroje korzystając z Surface/Iso-Surface/Surface of Constant/Mesh. Wybrać współrzędną X(a później Y). Utworzyć odcinki x = 0, x = 0.06 i y = 0, podając odpowiednie wartości pod Iso-Values.
Uwaga: wartości współrzędnych zależą od położenia geometrii na płaszczyźnie XY:
Wartości liczbowe zostały podane dla przypadku gdy dolny punkt uskoku znajduje się w środku układu współrzędnych. Na koniec wyświetlić siatkę razem z przekrojami, aby upewnić się że zostały dodane poprawnie.
Porównać profile składowej x prędkości średniej w przekrojach x = 0 i x = 0.06 z danymi eksperymentalnymi Results/Plots/XY Plot. Porównania dokonujemy przy pomocy Fluenta. Dane eksperymentalne znajdują się w katalogu „dane_eksperyment”, wczytać je poprzez Load File. Kliknięcie na Plot powoduje wyświetlenie serii danych z pliku, zaznaczonych w oknie File Data.
Zastanowić się jakie wartości powinny znajdować się na osiach X i Y. Żeby stworzyć wykres, którego pozioma oś nie jest osią położenia należy odznaczyć opcję Position on x axis. Zaznaczenie Position on y axis powoduje przypisanie położenia na osi pionowej. Pod X Axis Function wybrać składową x prędkości, a pod Surfaces odpowiedni przekrój. Jeżeli wyświetlamy dane dla linii poziomej, pod Plot Direction należy ustawić X = 1, natomiast dla pionowej Y = 1.
Opcja „Write to File” umożliwia zapisanie serii danych do pliku.
Określić położenie punktu przylgnięcia, poprzez wykonanie wykresu naprężeń po X Display/Plot/XYPlot/Wall Fluxes/X Wall Shear Stress. Punkt przylgnięcia znajduje się w miejscu, w którym wartości naprężeń zmieniają znak z ujemnego na dodatni.
Eksperymentalne wartości znajdują się w pliku re-vs-reattachment-point_woda_cm.txt (otworzyć go Notatnikiem i odnaleźć wartość dla liczby Reynoldsa najbliższej 230), następnie porównać z obliczeniami.
Ten etap został zakończony, zanim jednak przejdziemy do kolejnego zamykamy program fluent.
Zduplikowany blok nazywamy Instrukcja II.2.
W nowo powstałym bloku wchodzimy znów do komórki Setup.
Otworzy się fluent, w oknie powitalnym znów zostawiamy ustawienia domyślne.
Zmieniamy schemat dyskretyzacji na schemat upwind 2 rzędu (Second order upwind). (Punkt 14 w poprzednim akapicie)
Wykonujemy obliczenia i porównujemy wyniki obliczeń (Powtarzamy kroki 17 - 22) (**Bez inicjalizacji)
Duplikuemy Blok A. i nazywamy konsekwentnie Instrukcja II.3
Aby zageścić naszą siatkę, w górnej belce programu wchodzimy w zakładkę Domain, później w polu Adapt klikamy Refine/Coarsening
W nowo otwartym oknie wciskamy przycisk Cell Registers/New/Region… w odpowiednie okienka wpisujemy wartości granicznych współrzędnych naszej domeny (te możemy sprawdzić w zakładce Setup/General/Scale… lub w górnej belce zakładka Domain i przycisk Scale… w pilu Mesh).
Następnie powtarzamy obliczenia tak jak dla 1 rzędu. ( punkty 16-21 w akapicie 1 )
Duplikujemy Blok Instrukcja II.3 , nazywamy … wiadomo.
Dla siatki gęstej ustawmy schemat dyskretyzacji upwind 2 rzędu i wykonać obliczenia (punkty 17 - 22) (**Bez inicjalizacji)
Za pomocą funkcji UDF (User defined function) program fluent pozwala nieco bardziej rozszerzyć swoją funkcjonalność. Dzięki temu można definiować własne profile prędkości, wprawiać elementy w ruch poddany prawom fizyki lub definiować własne modele obliczeniowe.
Pod tym linikiem znajduje się fragment programu umożliwiający zadanie profilu prędkości na wlocie do obszaru obliczeniowego. Należy go pobrać do folderu z projektem programu ANSYS.
W funkcji DEFINE_PROFILE należy podać:
Po otwarciu Fluenta wczytać go przy pomocy funkcji Define/User-defined/Functions/Interpreted.
W ramach laboratorium będziemy wykorzystywać dane eksperymentalne. W kanale z takimi samymi parametrami został wykonany eksperyment i zostały zmierzone wartości prędkości.
Pliki powinny być ściągnięte do folderu w którym się znajduje projekt.
W pliku PLIK 1 znajduję się składowa x wektora prędkości w przekroju poprzecznym dla uskoku.
W pliku PLIK 2 znajdują się składowa x wektora prędkości w przekroju poprzecznym w odległości 60 mm od uskoku.