Czy jest tam dobry, łatwy w użyciu, wysokiej jakości solver CFD typu open source?

17

Moja praca dyplomowa dotyczy opracowania numerycznych metod redukcji spalania. Moje metody opieram wyłącznie na chemicznej części symulacji spalania i mam wiele studiów przypadków dotyczących symulacji 0-D (brak przepływu). Chciałbym uruchomić symulacje, które mają w nich przepływ, najlepiej symulacje 2-D lub 3-D.

Te symulacje musiałyby być równoległe ze względu na wysokie wymagania obliczeniowe. Potrzebowałbym również czegoś, co może współpracować z rozwiązaniami chemicznymi, takimi jak Chemkin lub Cantera, dla których mam kod źródłowy. (Chemkin jest w Fortran 77, a Cantera w C ++.)

W idealnym przypadku mógłbym określić wzór przepływu, korzystając z podstawowej wiedzy z mechaniki płynów, którą posiadam z mojego programu grad i niektórych pakietów CFD, dodaj chemię i uruchom ją. W razie potrzeby mogę skonfigurować równania rządzące ruchem płynu i chemią dla prostego studium przypadku opartego na konfiguracji eksperymentalnej stosowanej przez byłego współpracownika, ale bardzo wolałbym nie rzucać własnym kodem CFD, chyba że istnieją pakiet lub pakiety, które bardzo ułatwiły to. Byłbym skłonny poświęcić na to 2-3 tygodnie; Nie wiem, czy ten wymóg wyklucza PETSc czy Trilinos. Jeśli będę musiał na to dłużej wydawać, wolę to odłożyć na później, ponieważ mam współpracownika, który dostarcza kod CFD również dla studiów przypadków.

Czy ktoś ma jakieś doświadczenie w korzystaniu z pakietu CFD lub pisaniu kodu CFD, a jeśli tak, czy możesz go polecić? Wiem, że chciałbym użyć podziału Strang, ale nie jestem ekspertem od CFD ani PDE; Studiuję chemię i numeryczne metody redukcji modelu. Proszę również skomentować, ile czasu zajęło Ci przyśpieszenie korzystania z polecanego oprogramowania.

@FrenchKheldar ma rację, że powinienem wspomnieć o cechach problemów, które chciałbym rozwiązać:

  • Gaz idealny (idealny), jednofazowy
  • Ściśliwy
  • Przepływ laminarny jest niezbędny; przepływ burzliwy to plus. (Wiem trochę o turbulencjach z poprzedniej pracy nad metodami numerycznymi w CFD, ale nie pracowałem nad rozwiązaniami CFD; po prostu wiem trochę o fizyce.)
  • Formułowanie liczby zero-Mach jest w porządku (nie dbam o wstrząsy lub przepływ naddźwiękowy)
  • Chemia spalania, ignorowanie topników Soret i Dufour oraz traktowanie dyfuzji jak Fickian
  • Geometria może być czymś prostym

Potrafię pisać kod interfejsu, chociaż im mniej muszę pisać, tym lepiej; @FrenchKheldar wskazuje również, że Cantera ma powiązania Fortran i Python. W tej chwili używam powiązań Cantera Python do szybkiego prototypowania, więc czuję się z nimi dobrze.

Geoff Oxberry
źródło
Cantera ma opakowania dla Pythona i Fortrana, dzięki czemu wyszukiwanie jest nieco szersze.
FrenchKheldar,
Czy chcesz modelować przepływy laminarne lub przepływy turbulentne? Kompresowalny czy nieściśliwy? Idealny gaz? Jednofazowy? Im więcej szczegółów możesz nam podać, tym dokładniejsza jest odpowiedź.
FrenchKheldar,
@FrenchKheldar: Dziękujemy za zwrócenie na to uwagi. Dodałem kilka szczegółów.
Geoff Oxberry
2
Jeszcze jeden komentarz: jeśli nie przejmujesz się akustyką lub falami, czy nie powinieneś być w stanie zastosować nieściśliwego solwera? To poszerzy twoje możliwości ...
FrenchKheldar
Pozwólcie, że sformułuję: Nie obchodzą mnie wstrząsy. Ponieważ faza jest gazem idealnym, a gazy idealne zmieniają gęstość, gdy zmienia się ciśnienie, przepływ powinien być ściśliwy.
Geoff Oxberry

Odpowiedzi:

11

Jestem intensywnym użytkownikiem OpenFOAM , więc oczywiście polecam go. Ma dużą liczbę funkcji, w tym modele spalania (choć niekoniecznie dokładnie to, czego potrzebujesz) i był używany przez innych ludzi razem z Canterrą . Jeśli potrzebujesz rozwiązania dla konkretnego równania, które nie zostało jeszcze zaimplementowane, możesz dosłownie napisać swoje równania . Nie wiem, co to jest dzielenie dziwnych (sam nie pracuję nad spalaniem), ale inni ludzie używali go w OpenFOAM .

Liczba tutoriali jest ograniczona. Te udokumentowane w podręczniku użytkownika nie obejmują chemii. Istnieje kilka przykładowych przypadków dla solverów reakcji, na które można spojrzeć. Najlepszym rozwiązaniem jest sprawdzenie strony z kursami OS-CFD w Chalmers (link dotyczy 2011 r., Ale zawiera link do stron z poprzednich lat). Tam studenci często dokumentują solwery, nad którymi pracują, np . Tutaj .

O wysiłku, aby się tego nauczyć: jeśli skorzystasz z jednego z wcześniej zdefiniowanych modeli, korzystanie z niego jest dość proste i powinieneś być w stanie uzyskać wyniki w ciągu kilku tygodni. Jeśli musisz zejść poniżej najwyższego poziomu (np. Aby dodać nowy solver ODE), sprawy mogą stać się trudniejsze dość szybko i docenisz znajomość C ++.

dziecko
źródło
Dziękuję za rekomendację! Słyszałem dobre rzeczy o OpenFOAM i chciałbym z niego korzystać w przyszłości. Czy według Pana łatwo było nauczyć się interfejsu API? Czy są jakieś dobre tutoriale lub przykłady wykorzystujące OpenFOAM, najlepiej z chemią?
Geoff Oxberry
Zaktualizowałem swoją odpowiedź
akid
1
Rozpocznij naukę języka C ++ wkrótce. :) Godspeed.
tmaric
2

Możesz użyć PyClaw , równoległego rozszerzenia Clawpack (uwaga: jestem jednym z głównych programistów PyClaw). Zawiera solwery 2D i 3D do niewidzialnego równania Eulera (przepływ ściśliwy) gazu doskonałego. Ma również wbudowane dzielenie Strang, ale musisz samodzielnie dodać ocenę lepkich warunków i chemii. Interfejs z Chemkin i Cantera powinien być prosty, ponieważ PyClaw jest napisany w Pythonie i zawiera już zarówno kod Fortran 77, jak i C.

PyClaw jest stosunkowo nowy (chociaż podstawowy kod Clawpack jest dość stary) i dlatego nie jest tak ustalony jak coś takiego jak OpenFOAM.

David Ketcheson
źródło
Dzięki! Będę musiał to sprawdzić, choć dotarcie do niego może zająć trochę czasu. Kiedy zacznę go używać, dam ci znać, jak to działa.
Geoff Oxberry
2

NIST Ogień Dynamics Simulator (FDS) brzmi jak to, co chcesz. FDS to solver o niskiej liczbie Machów. Gęstość może się zmieniać, ale efekty akustyczne i wstrząsy są pomijane.

FDS jest jednak dość dobrze udokumentowane, przyznaję, że nie zajrzałem do głównych procedur solvera. Nie wiem też wiele o tym, jak FDS radzi sobie z chemią spalania.

Sugeruję pobranie najnowszego kodu ze strony Google Code FDS .

Ben Trettel
źródło
0

Tam jest dużo!

OpenFOAM jest najlepszy, IMHO, ale inni są pod tym linkiem ,

T3rmInAt0r
źródło
Nie udzielaj odpowiedzi „tylko link”, ponieważ linki mogą się zepsuć.
Jan
Nie chciałem przedstawiać wszystkich wspomnianych tam opcji jako „moich”. Technicznie mogę skopiować i wkleić całą zawartość, ale nie jestem tą osobą. Tak więc, umieszczam link prosto, aby wyrazić
uznanie
1
W porządku. Można jednak na przykład powiedzieć, że Katedra Obliczeń Dynamiki Płynów i Mechaniki Turbulencji na uniwersytecie w Manchesterze opracowała listę oprogramowania typu open source dla inżynierów. Jeśli to zrobisz, inni użytkownicy mogą nadal przeszukiwać Internet w przypadku, gdy link jest uszkodzony.
stycznia 13