Sıvı simülasyonu sonucumun doğruluğunu nasıl kontrol edebilirim?


9

Parçacık bazlı bir sıvı simülasyon programı yazdım. Doğru sonucu alıp almadığımı söylemek zor. Görselleştirilmiş sonuç makul görünüyor, ancak bir kısmı garip görünüyor. Bunun bir sıvı özelliği olup olmadığını bilmiyorum. Programımın doğru olup olmadığını doğrulamak için bazı doğru yöntemler var mı?

Bazı detayları değiştirme :

Programım 2D parçacık tabanlı bir benzetim programıdır. Sıvı sıkıştırılabilir. Uygulama neredeyse klasik bir makaleye dayanmaktadır:

Müller, Matthias, David Charypar ve Markus Gross. "Etkileşimli uygulamalar için parçacık tabanlı sıvı simülasyonu." 2003 ACM SIGGRAPH Bildirileri

Navier-Stokes denklemini yineleme yöntemiyle çözdüm. Sadece basınç, yerçekimi, viskozite ve yüzey gerilimini dikkate aldı.


Belki de NS denkleminin terimlerini sayısal farklılaşma ile yeniden hesaplayabilir ve nasıl iptal ettiklerini kontrol edebilirsiniz.
Yves Daoust

Yanıtlar:


2

Başkasının yazılımı ile karşılaştırın. Bazı standart testler yapın ve diğerleriyle aynı cevabı alıp almadığınızı öğrenin. Aynı cevabı alırsanız, kodunuzu doğru kullanma olasılığı oldukça yüksektir.

Bazı testler:

  1. Silindiri geçen akış. 2d'de dikdörtgen alan, ortadaki silindir, soldan giriş, kavgadan çıkış ve silindir üzerindeki kuvveti hesaplayın. İşte kriter kodlarının avuç karşılaştırılması.

  2. Kaldırma kuvveti. Kapalı kutu, altta sıcak plaka, üstte soğuk plaka, kaldırma kuvveti nedeniyle sıcak sıvı yükselmeye başlar. İşte kıyaslama .

  3. Yükselen kabarcık, kriter .

Ancak maalesef kodunuzu bu ölçütlerdeki bilimsel kodlarla karşılaştırmak oldukça zor olabilir. Sanırım doğruluk için değil, kararlılık için yapılmış bir şey SPH veya kararlı sıvılar olarak uyguladınız.

Örneğin bir silindiri geçen akışı ele alalım. Teste çok küçük Reynolds sayısı ile başlayacağım ve daha sonra simülasyonunuzun doğruluğunu arttırarak silindir üzerindeki kuvveti ölçeceğim (daha düşük zaman adımı, alt bölümü artırın veya parçacık sayısını artırın). Kuvvet bir sayıya yaklaşıyor mu? Cevabınız hayırsa, bir sorununuz varsa, evet ise, kıyaslama belgesine bakın ve sonucunuzu başkalarıyla karşılaştırın.


Bu yöntem, ışın izleyicimi test etmek için kullandığım tekniğe çok benzer bir tekniktir. Test sahnesini bir başkasının oluşturucusuyla oluşturuyorum ve sonucumla karşılaştırıyorum. Aynı sonuca yaklaşıyorlar mı? Eğer evet ise benden daha doğru, hayır ise, benden daha yanlış.


Bilinen gerçek dünya ölçümlerine ve akışkan dinamiği testlerine karşı test etmek için yazılım yerine. Aksi takdirde hatanız lekelenir. Ben aynı soruyu stackexhange ağ btw başka bir yerde yayınlanan gördüm
joojaa

1
Gerçek dünya ölçümüne karşı test etmenin, fizik hakkınız varsa test için iyi olduğunu düşünüyorum. Sadece program hata ayıklamak istiyorsanız, başkalarına karşı test daha iyi bir fikirdir. Ayrıca bilgisayar simülasyonunda deneyi etkilemeden her şeyi ölçebilirsiniz. Örneğin, herhangi bir noktada sıvı hızını ölçmek gerçek dünya deneyinde imkansızdır, ancak bilgisayar simülasyonunda önemsizdir.
tom

Evet ama aynı zamanda çözücülerinin sorunlarını da miras alıyorsunuz. Bunu birkaç kez çok gövdeli bir simülatör geliştirdiğimi ve MSC Adams'tan sonuçlara karşı kontrol ettiğimi itiraf ediyorum, ancak gerçekten çok kullanışlı olmayan bir gezide
joojaa

Gerçek dünya deneylerine karşı kontrol etmek daha iyi miydi? Bundan şüphe ediyorum, ama yanılmış olabilirim. Çok gövdeli fizikteki durum, akışkan fiziğinden oldukça farklıdır. Bilardo kadar basit bir şeyin bile kaotik davranışı vardır. Üstelik temaslı katı cisim dinamiği matematiksel bir problem bile oluşturmuyor, Painlevé paradoksunu biliyor musunuz? Bu nedenle, çok gövdeli fiziğin sayısal simülasyonunu yapmak genel olarak başarısız olmaya mahkumdur. Bazı referanslar: plus.maths.org/content/chaos-billiard-table en.wikipedia.org/wiki/Painlev%C3%A9_paradox
tom

1
Evet, çoklu beden dinamiğinin nasıl çalıştığının farkındayım, bunu öğretiyorum (ve bir iki yıl kısaca araştırdım). Ancak bilinen analitik çözümlere karşı hiçbir kontrol daha kolay olmamıştır. Ancak gerçek bir sıvı, çoklu vücut dinamiği ile benzer şekilde kaotiktir. Böylece laminar akış durumları vb. Karşı kontrol edilmelidir. Sürtünme yine de bir orospu.
joojaa
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.