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.
źródło
Odpowiedzi:
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 ++.
źródło
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.
źródło
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 .
źródło
Tam jest dużo!
OpenFOAM jest najlepszy, IMHO, ale inni są pod tym linkiem ,
źródło
Możesz użyć biblioteki Advanced Simulation Open Source, która jest przyspieszana sprzętowo (w przypadku, gdy ważne jest obliczenie wysokiej wydajności ). Ma zarówno laminarne, jak i turbulentne przepływy i reakcje chemiczne. Jest również łatwy w użyciu, zobacz kod źródłowy Aerodynamiki lokomotywy w tunelu porównawczym .
źródło