İyi, kullanımı kolay, yüksek kaliteli bir açık kaynak CFD çözücü var mı?


17

Tezim, yanmada modelin azaltılması için sayısal yöntemler geliştirmektir. Metodlarımı sadece yanma simülasyonlarının kimya kısmında çalıştırıyorum ve 0-D simülasyonları için çok sayıda vaka çalışmam var (akış yok). İstediğim, içinde akış olan simülasyonları, tercihen 2-B veya 3-B simülasyonları çalıştırmaktır.

Yüksek hesaplama gereksinimleri nedeniyle bu simülasyonların paralel olması gerekir. Ayrıca, kaynak koduna sahip olduğum Chemkin veya Cantera gibi kimya çözücülerle arayüz oluşturabilecek bir şeye ihtiyacım var. (Chemkin Fortran 77'de ve Cantera C ++ 'tadır.)

İdeal durumda, grad programımdan ve bazı CFD paketlerinden edindiğim temel akışkanlar mekaniği bilgisini kullanarak bir akış paterni belirleyebilir, kimyayı ekleyebilir ve çalıştırabilirim. Gerekirse, eski bir ortak çalışan tarafından kullanılan deneysel bir düzene dayanan basit bir vaka çalışması için sıvı hareketini ve kimyayı yöneten denklemleri kurabilirim, ancak olmadıkça kendi CFD kodumu döndürmemeyi tercih ederim bunu son derece kolaylaştıran bir paket veya paketler. Üzerinde 2-3 hafta geçirmeye istekli olurdum; Bu gereksinimin PETSc veya Trilinos'u dışladığını bilmiyorum. Daha fazla harcamak zorunda kalırsam, daha sonraya ertelemeyi tercih ederim, çünkü vaka çalışmaları için de bir CFD kodu sağlayan bir işbirliğim var.

Herkes bir CFD paketi kullanma veya CFD kodu yazma konusunda herhangi bir deneyime sahip mi ve öyleyse, bir tane önerebilir misiniz? Kullanmak istediğimi bildiğim bir şey, Strang bölünmesi, ancak ben bir CFD veya PDE uzmanı değilim; Model indirgeme için kimya ve sayısal yöntemleri inceliyorum. Ayrıca, tavsiye ettiğiniz yazılımı kullanarak hızlanmanın ne kadar sürdüğünü de yorumlayın.

@FrenchKheldar, çözmek istediğim sorunların özelliklerinden bahsetmem gereken iyi bir noktaya değiniyor:

  • İdeal (mükemmel) gaz, tek fazlı
  • sıkıştırılabilir
  • Laminer akış esastır; türbülanslı akış bir artıdır. (CFD'deki sayısal yöntemlerde önceki çalışmalardan türbülans hakkında biraz biliyorum, ancak CFD çözücüleri üzerinde çalışmadım; sadece fizik hakkında biraz biliyorum.)
  • Sıfır-Mach-sayı formülasyonu iyidir (Şoklar veya süpersonik akış umrumda değil)
  • Yanma kimyası, Soret ve Dufour akılarını görmezden gelme ve difüzyonu Fickian olarak tedavi etme
  • Geometri basit bir şey olabilir

Arayüz kodu yazabilirim, ancak ne kadar az yazmam gerekiyorsa o kadar iyi; @FrenchKheldar ayrıca Cantera'nın Fortran ve Python bağlarına sahip olduğuna dikkat çekiyor. Şu anda Cantera Python bağlarını hızlı prototipleme için kullanıyorum, bu yüzden onlarla da rahatım.


Cantera'nın python ve Fortran için sarmalayıcıları vardır, böylece aramayı biraz genişletir.
FransızcaKheldar

Laminer akışları veya türbülanslı akışları modellemek ister misiniz? Sıkıştırılabilir mi, sıkıştırılamaz mı? Mükemmel gaz mı? Tek aşama? Bize ne kadar fazla ayrıntı verebilirseniz, cevap o kadar kesin olur.
FrenchKheldar

@FrenchKheldar: Bunu işaret ettiğiniz için teşekkürler. Bazı özellikler ekledim.
Geoff Oxberry

2
Bir yorum daha: akustik veya dalgalarla ilgilenmiyorsanız, sıkıştırılamaz bir çözücü kullanamaz mısınız? Bu olasılıklarınızı genişletecek ...
FrenchKheldar

Yeniden ifade edeyim: Şoklar umrumda değil. Faz ideal bir gaz olduğundan ve basınç değiştiğinde ideal gazların yoğunluğu değiştiğinden, akış sıkıştırılabilir olmalıdır.
Geoff Oxberry

Yanıtlar:


11

Ben ağır bir kullanıcıyım OpenFOAM , bu yüzden doğal olarak tavsiye ederim. Yanma modelleri de dahil olmak üzere çok sayıda özelliğe sahiptir (tam olarak ihtiyacınız olan şey olmasa da) ve Canterra ile birlikte başkaları tarafından kullanılmıştır . Henüz uygulanmayan belirli bir denklem için bir çözücüye ihtiyacınız varsa, denklemlerinizi hemen hemen yazabilirsiniz . Boğulma-bölünmenin ne olduğunu bilmiyorum (yanma üzerinde kendim çalışmıyorum), ancak diğer insanlar OpenFOAM'da kullandı .

Sınırlı sayıda öğretici vardır. Kullanıcı kılavuzunda belgelenenler kimyayı içermez. Göz atabileceğiniz reaksiyon çözücüler için bazı örnek durumlar vardır. En iyi seçiminiz Chalmers'daki OS-CFD grad ders web sitesine göz atmaktır (bağlantı 2011 içindir, ancak önceki yılların sayfalarına bir bağlantı içerir). Öğrenci genellikle örneğin üzerinde çalışıyoruz çözen belge burada .

Öğrenme çabası hakkında: Önceden tanımlanmış modellerden birini kullanırsanız, kullanımı oldukça basittir ve haftalar içinde sonuç alabilmeniz gerekir. En üst seviyenin altına inmeniz gerekiyorsa (örn. Yeni bir ODE çözücü eklemek için), işler oldukça hızlı bir şekilde zorlaşabilir ve C ++ 'ı bilmekten memnun kalacaksınız.


Tavsiye için teşekkürler! OpenFOAM hakkında iyi şeyler duydum ve gelecekte kullanmak istiyorum. Deneyiminize göre, API'yi öğrenmek kolay mıydı? Tercihen kimya ile OpenFOAM kullanan iyi öğreticiler veya örnekler var mı?
Geoff Oxberry

Cevabımı güncelledim
Akid

1
Yakında C ++ öğrenmeye başlayın. :) Godspeed.
tmaric

2

Kullanabilirsin PyClaw , paralel uzantısı Clawpack (: Ben PyClaw ana geliştiriciler biriyim nota). İdeal bir gazın görünmeyen Euler denklemleri (sıkıştırılabilir akış) için 2D ve 3D çözücüler içerir. Aynı zamanda yerleşik Strang bölünmesi vardır, ancak viskoz terimlerin ve kimyanın değerlendirmesini kendiniz eklemeniz gerekir. Chemkin ve Cantera ile arayüz kurmak basit olmalı, çünkü PyClaw Python'da yazılmıştır ve zaten hem Fortran 77 hem de C kodunu içerir.

PyClaw nispeten yenidir (temeldeki Clawpack kodu oldukça eski olmasına rağmen) ve bu nedenle OpenFOAM gibi bir şey olarak kurulmamıştır.


Teşekkürler! Bunu kontrol etmek zorunda kalacağım, buna rağmen biraz zaman alabilir. Kullanmaya başladığımda, nasıl gittiğini size bildireceğim.
Geoff Oxberry

2

NIST'in Fire Dynamics Simulator (FDS) sesi istediğiniz gibi. FDS düşük bir Mach sayısı akış çözücüdür. Yoğunluk değişebilir, ancak akustik etkiler ve şoklar ihmal edilir.

FDS oldukça iyi belgelenmiştir, ancak ana akış çözücü rutinlerine bakmadığımı itiraf ediyorum. Ayrıca FDS'nin yanma kimyasını nasıl ele aldığı hakkında fazla bir şey bilmiyorum.

En son kodu FDS'nin Google Kod sitesinden indirmenizi öneririm .


0

Orada bolca var!

OpenFOAM en iyisidir, IMHO, ancak diğerleri bu bağlantıda ,


Bağlantılar bozulabileceğinden lütfen 'yalnızca bağlantı' yanıtları vermeyin.
Jan

Orada bahsettiğim tüm seçenekleri "benim" olarak sunmak istemedim. Teknik olarak, tüm içeriği kopyalayıp yapıştırabilirdim, ama o kişi değilim. Bu nedenle, orijinal yazarlara kredi vermek için bağlantıyı doğrudan koydum
T3rmInAt0r

1
Peki. Ancak, örneğin, Manchester üniversitesindeki Hesaplamalı Akışkanlar Dinamiği ve Türbülans Mekaniği başkanının mühendisler için açık kaynaklı yazılımların bir listesini derlediğini söyleyebilirsiniz . Bunu yaparsanız, bağlantının kopması durumunda diğer ziyaretçiler yine de internette arama yapabilir.
Ocak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.