Tetapkan kondisi kompatibilitas untuk metode elemen hingga campuran dalam persamaan Stokes

13

Misalkan kita memiliki persamaan model aliran Stokes berikut:

{div(νu)+p=fdivu=0
di mana viskositas ν(x) adalah fungsi, untuk elemen hingga campuran standar, katakanlah kita menggunakan pasangan stabil: ruang Crouzeix-Raviart Vh untuk kecepatan u dan ruang konstan elemen-bijaksana Sh untuk p tekanan p, kami memiliki bentuk variasi berikut:

L([kamu,hal],[v,q])=Ωνkamu:v-Ωqdsayavkamu-Ωhaldsayavv=Ωfvv×qVh×Sh

dan kita tahu bahwa karena pengali Lagrange hal dapat ditentukan hingga konstanta, matriks yang akhirnya dirakit harus memiliki nullspace 1 , untuk menghindari hal ini kita dapat menegakkan tekanan hal pada beberapa elemen tertentu menjadi nol, sehingga kita tidak perlu memecahkan sistem tunggal.

Jadi, inilah pertanyaan saya 1:

  • (Q1) Apakah ada cara lain selain menegakkan hal=0 pada beberapa elemen untuk menghilangkan kernel untuk elemen hingga standar campuran? atau katakan, apakah ada solver di luar sana yang dapat memecahkan sistem tunggal untuk mendapatkan solusi yang kompatibel? (atau beberapa referensi dipersilahkan)

Dan tentang kompatibilitasnya, untuk (1) itu harus dan trik kecil yang menyenangkan adalah menghitung menjadi kita dapatkan dari solusi dari sistem linear dikurangi dengan rata-rata tertimbangnya: ˜ p p ˜ p = p - ν

Ων-1hal=0
hal~hal
(2)hal~=hal-ν|Ω|Ων-1hal

Namun, baru-baru Saya baru saja menerapkan sebuah stabil dicampur elemen hingga untuk persamaan Stokes oleh Bochev, Dohrmann, dan GunzbergerP1-P0˜ L ([u,p],[v,q])= L ([u,p],[v,q])-Ω (p- Π 1 p)(q- Π 1 q)=Ω fv , di mana mereka menambahkan istilah stabil untuk formulasi variational (1): mana adalah proyeksi dari ruang konstan berlanjut ke piecewise kontinu , dan kernel konstan elemen hingga campuran asli hilang, namun, hal-hal aneh terjadi, (2) tidak tidak berfungsi lagi, saya menciptakan masalah tes dari

L~([kamu,hal],[v,q])=L([kamu,hal],[v,q])-Ω(hal-Π1hal)(q-Π1q)=Ωfvv×qVh×Sh
Π1P0P1masalah antarmuka untuk persamaan difusi , ini adalah apa yang saya dapatkan untuk tekanan , yang tepat adalah solusi yang benar dan yang kiri adalah perkiraan numerik:hal

Tes Stokes 1

namun jika adalah konstanta, masalah pengujian berfungsi dengan baik: νTes Stokes 2

Saya menduga itu karena cara saya memaksakan kondisi kompatibilitas, karena ini terkait dengan stabilitas inf-sup dari seluruh sistem, inilah pertanyaan kedua saya:

  • (Q2): apakah ada cara lain selain (2) untuk memaksakan kompatibilitas untuk tekanan ? atau saat membuat masalah pengujian, jenis apa yang harus saya gunakan?halhal
Shuhao Cao
sumber
MathML tidak berfungsi?
Shuhao Cao
Kami menggunakan MathJaX di StackExchange, semua yang Anda poskan ditampilkan dengan indah, terima kasih untuk pertanyaan terperinci.
Aron Ahmadia

Jawaban:

8

Kondisi kompatibilitas menyangkut kecepatan, bukan tekanan. Ini menyatakan bahwa jika Anda hanya memiliki kondisi batas Dirichlet untuk kecepatan, maka ini harus kompatibel dengan kendala bebas divergensi, yaitu dengan batas dari domain komputasi (bukan sel).Ωkamun=0Ω

Dalam hal ini tidak dapat dibedakan dari dengan konstanta arbitrer karena Anda tidak memiliki kondisi batas pada untuk memperbaiki konstanta. Dengan demikian ada banyak solusi untuk tekanan dan untuk membandingkan solusi, diperlukan sebuah konvensi. Matematikawan lebih suka memilih sehingga (karena mereka dapat berintegrasi) sedangkan fisikawan lebih suka (karena mereka dapat mengukur dalam suatu titik). Jika adalah ekuivalen diskrit Anda dari , itu menyiratkan bahwahal(hal+c)chalchal¯=halrefhal(xref)=halrefBhalhalB memiliki ruang nol yang terdiri dari vektor identitas.

Metode ruang bagian Krylov dapat memecahkan sistem tunggal dengan menghapus ruang nol dari ruang bagian Krylov di mana mereka mencari solusinya. Namun, itu tidak berarti Anda akan mendapatkan solusi yang cocok dengan konvensi yang diberikan, Anda akan selalu perlu menentukan sendiri konstan dalam langkah postprocessing, tidak ada solver yang bisa melakukannya untuk Anda.hal

Berikut ini beberapa saran untuk mengatasi masalah Anda:

  • Persamaan (2) tampaknya aneh. Jika adalah fungsi bagaimana bisa di luar integral?νx
  • Apakah bidang kecepatan Anda memenuhi batasan kompatibilitas?
  • Usahakan untuk tidak melakukan apa pun untuk tekanan, biarkan solver bebas untuk membuat , lalu lihat . Apakah ini konstan?halhal-halexSebuahct
  • Jika tidak, apakah Anda yakin bahwa ruang nol adalah memang vektor identitas dan tidak lebih? Baik di atas kertas dan dalam kode? Masalahnya tampaknya cukup kecil untuk benar-benar menghitung ruang nol.B
chris
sumber
2

Sedangkan untuk (Q1), Anda dapat memilih solver untuk masalah saddle-point yang menghitung solusi kuadrat terkecil untuk sistem Anda. Kemudian syarat tambahan dapat dikenakan pada pengganda, seperti menetapkan tingkat kebebasan tertentu, memaksakan rata-rata tertentu.

Secara umum, dan saya pikir jawaban ini (Q1), Anda dapat menggunakan batasan linier yang dapat membedakan konstanta yang berbeda.

Batasan ini dapat dikenakan dalam langkah pasca-pemrosesan, atau dengan pilihan ruang uji coba yang tepat (misalnya, jika Anda mengabaikan satu derajat kebebasan).

shuhalo
sumber