Çoklu fizik simülasyonlarının algoritmaları ve uygulanması için en iyi uygulamalar nelerdir?


16

Çoklu fizik simülasyonu, çoğu zaman farklı alan ve / veya zaman ölçekleriyle çoklu "fizik" bağlamayı içerir. Ek olarak, tek fizik kodları genellikle farklı takımlar tarafından yazılır. En yaygın olarak kullanılan bağlantı tekniği birinci dereceden operatör ayrımıdır, ancak bu düşük doğruluk ve kararlılık özelliklerine sahiptir. İlgilenilen bir sorun için hangi algoritmaların etkili olacağını nasıl belirlerim ve bu algoritmaları kullanılabilir hale getirmek için yazılımımı nasıl yapılandırmalıyım?

Yanıtlar:


5

Operatör bölünmüş versiyonlarını kolayca yeniden üretebildiğinden, tamamen bağlı bir montajı şiddetle savunuyorum. Özellikle, farklı fizik için artık ve Jacobian'ı hesaplayan rutinler ayrı olabilir, ancak çerçeve bunları tüm sistem için birleşik bir artık oluşturmak için birleştirebilmelidir. PETSc böyle çalışır.

Daha sonra, operatör bölme çözümleri, tamamen bağlı sistem için ön koşullandırıcı olarak veya komut satırından kendi başına bir çözücü olarak kullanılabilir. Ayrıca, bazı kaplinler korunabilirken, diğerleri göz ardı edilebilir. PETSc bunu PC FieldSplit arabirimi üzerinden işler. Bu, akışkan dinamiği için yarı kapalı ICE gibi hibrid şemaların kopyalanmasına izin verir.


5

Bu araştırmanın bir çok aktif bölge olduğundan, bu bir cevap girişiminde tereddüt ama ne bazı deneyime sahip değil denemek için.

Yapmayın :

  • Eski uygulama kodu A ve eski uygulama B'yi alın, ardından bunları birleştirmeye çalışın
  • Yeni bir uygulama oluşturmak yerine arkaik (gezide kullanılmaz anlamına gelir) kodu kullanın
  • Katkıda bulunmaya başlayan yeni kullanıcılar için büyük bir çerçeve (> 10 gerekli bağımlılık) gerekli
  • Veri düzeninin (kafesler, matrisler, vektörler, vb.) Kendinizi yazmanın kolay olduğunu varsayın

Yap :

  • Standart programlama uygulamalarını ve umarım iyi tasarım kalıplarını kullanın
  • Doğruluk ve kararlılığın sınırlamalarını anlamak için operatör bölme hakkındaki literatürü okuyun
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.