Büyük 3 boyutlu doğrusal elastik problemler için sağlam, yinelemeli çözücü nedir?


9

Sonlu elemanlar analizinin büyüleyici dünyasına dalıyorum ve büyük bir termo-mekanik problemi çözmek istiyorum (sadece termal mekanik, geri bildirim yok).

Mekanik problem için, Geoff'un cevabından , ağımın boyutu nedeniyle yinelemeli çözücüyü kullanmam gerektiğini zaten anladım. Matt'in cevabında, doğru yinelemeli algoritmanın seçiminin göz korkutucu bir görev olduğunu da okudum .

Burada, en iyi performans arayışımı daraltmama yardımcı olacak büyük 3 boyutlu doğrusal elastik problemler hakkında herhangi bir deneyim olup olmadığını soruyorum? Benim durumumda, ince, desenli filmler ve düzensiz yerleştirilmiş malzemeler (hem yüksek CTE hem de düşük CTE) olan bir yapı. Bu termo-mekanik analizde büyük deformasyonlar yoktur. Üniversitemin HPC'sini [1.314 düğüm, 2 AMD Opteron işlemci (her biri 2.2 GHz / 8 çekirdek)] ile kullanabilirim.

PETScİlginç bir şey, özellikle de etki alanı ayrıştırma (FETI, multigrid) bir tür algoritmalar içerebilir düşünüyorum ama ben biraz seçenekleri tarafından boğulmuş ve hiçbir deneyimim var. Ayrıca "geometrik olarak bilgilendirilmiş önkoşullar" ifadesini de seviyorum , ancak bunun bana yardımcı olup olmadığından emin değilim. Henüz doğrusal sürekli ortam mekaniğine odaklanan bir şey bulamadım.

Güçlü ortak ölçeklendirme (Amdahl) uygulamamda çok önemli çünkü endüstriyel ortaklarım simülasyon sonuçları için uzun süre bekleyemezler. Kesinlikle sadece cevapları değil, aynı zamanda yorumlarda daha fazla okumak için tavsiyeleri de takdir ediyorum.


Statik sorunları çözüyor musunuz? Evet görünüyor. Dinamik veya zaman harmonik problemleri için, cevap farklı olurdu diye düşünüyorum.
Hui Zhang

statik evet. Dinamik çok pahalı.
Sebastian

Yanıtlar:


6

Yapılarınızın aslında 3B olduğunu (belki de kabuk unsurlarıyla isteğe bağlı olarak ince özelliklerden ziyade) ve modelin birkaç yüz bin doftan daha büyük olduğunu varsayarsak, doğrudan çözücüler özellikle her sorunu bir kez çözmeniz gerekiyorsa pratik olmaz. Ayrıca, yapı her zaman bir Dirichlet sınırına "yakın" değilse, verimli olmak için çok düzeyli bir yönteme ihtiyacınız olacaktır. Topluluk, "çok taneli" ve "çok düzeyli alan ayrışması" arasında bölünmüştür. Matematiğin karşılaştırması için şu cevaba bakın : Etki alanı ayrıştırma ön koşullandırıcılar üzerinde çoklu-ızgara avantajı nedir?

Çoklu-enerji topluluğu genel amaçlı yazılım üretmede genellikle daha başarılı olmuştur. Esneklik için, yaklaşık "sıfır boşluğa yakın" gerektiren düzgünleştirilmiş toplama kullanmanızı öneririm. PETSc'de bu, PCGAMG veya PCML (ile yapılandır --download-ml) seçilerek MatSetNearNullSpace()ve katı gövde modlarını sağlamaya çağrılarak yapılır.

Etki alanı ayrıştırma yöntemleri, düzgünleştirilmiş toplamadan daha hızlı kabalaştırma fırsatı sunar, bu nedenle muhtemelen daha fazla gecikmeye toleranslıdır, ancak performans açısından "tatlı nokta" düzgünleştirilmiş toplamadan daha dar olma eğilimindedir. Etki alanı ayrıştırma yöntemleri üzerinde araştırma yapmak istemiyorsanız, yalnızca düzgünleştirilmiş toplama kullanmanızı ve yazılım daha iyi hale geldiğinde belki de bir etki alanı ayrıştırma yöntemi kullanmayı öneririm.


Bu çok bilgilendirici cevap için çok teşekkürler! Dirichlet sınırına yakın olarak ne demek istiyorsun ? Öğe sayısı açısından kapatılsın mı?
Sebastian

Güçlü bir malzeme yolu boyunca, elemanlar veya alt alanlarla ölçülen mesafe bakımından kapatın (güçlü alt alan çözümleriyle tek seviyeli alan ayrışması için). Yerel bir çözüm belirlemek için bilginin birçok alt etki alanından geçmesi gerekiyorsa, bir düzey yöntemi yavaşça birleşecektir. Esneklik için güçlü bir bağlantının yeterli olmadığını, tüm rijit gövde modlarının kontrol edilmesi gerektiğini unutmayın.
Jed Brown

4

Bu sorunun kanonik seçiminin Konjugat Gradyan çözücü artı bir cebirsel çoklu-ızgara önkoşulu olacağını söyleyebilirim. PETSc için, hiper / boomeramg veya ML bariz önkoşul seçenekleri olacaktır.

PETSc ile kullanıldığında bu bileşenlerin tümü, eğer sorun yeterince büyükse (MPI işlemi başına en az ~ 100.000 derece özgürlük) binlerce veya on binlerce işlemciye çok iyi ölçeklenir.


BoomerAMG'nin (ve genel olarak klasik AMG'nin) boş alan bilgisi kullanmadığını veya kaba alanların dönme modlarını doğru bir şekilde temsil edebildiğinden emin olmadığını unutmayın. Bileşenleri bölmenin ve ayrı olarak çözmenin yanı sıra ( PCFIELDSPLITPETSc'de kullanın ) deneyebilirsiniz ( ve yapmalısınız), ancak düzgünleştirilmiş toplama genellikle esneklik için daha sağlamdır.
Jed Brown

1

Malzemeniz çok fazla sıkıştırılamazsa, esneklik için kolayca iyi bir ön koşul oluşturabilirsiniz (Poisson oranı) <0.4) ayrı yer değiştirme bileşenleri ön koşullayıcı kullanarak . Fikir, her biri aynı fiziksel boyuttaki kaplinleri temsil eden 3 bloklu bir blok çapraz matrisin olmasıdır.(x,y,z) yani: Kxx, Kyy, Kzz.

Bu durumda, her bloğun tersini yaklaşık olarak hesaplamak ve oldukça iyi bir önkoşul elde etmek için daha az gelişmiş AMG yöntemleri kullanabilirsiniz.


1

Walter Landry, uyarlamalı çoklu-ızgara kullanarak üç boyutlu elastostatik deformasyon için bir kod geliştirdi. Kodu şurada bulabilirsiniz:

https://bitbucket.org/wlandry/gamra

Termal zorlamanın izotropik özdeğen ve eşdeğer vücut kuvvetleri ile etkisini dahil edebilirsiniz. Bunlar yerine getirildikten sonra, çözücü gayet iyi çalışır.

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.