Bagaimana seharusnya koefisien non-konstan diperlakukan dengan skema upwind urutan pertama volume terbatas?

11

Dimulai dengan persamaan advection dalam bentuk konservasi.

ut=(a(x)u)x

di mana adalah kecepatan yang bergantung pada ruang, dan adalah konsentrasi spesies yang dilestarikan.ua(x)u

Mendiskritkan fluks (di mana fluks , didefinisikan pada tepi sel di antara titik-titik mesh) memberi, u t = 1f=a(x)u

ut=1h(fj12fj+12)

Menggunakan urutan pertama melawan arah angin kami memperkirakan fluks sebagai,

fj12=a(xj12)uj1fj+12=a(xj+12)uj
Yang memberi,
ut=1h(a(xj12)uj1a(xj+12)uj)

Jika konstan maka ini akan mengurangi ke skema arah angin yang sudah dikenal yaitu, .u t = aa(x)ut=ah(uj1uj)

Pertanyaan saya adalah, bagaimana kita dapat memperlakukan koefisien tidak konstan dari persamaan advection? Kecepatan didefinisikan di pusat sel, jadi pendekatan sederhana adalah sebagai berikut,

a(xj12)a(xj1)a(xj+12)a(xj)

Ini adalah pendekatan yang saya sukai karena sangat mudah diterapkan.

Namun, kita juga bisa menggunakan (saya menebak) skema rata-rata untuk menentukan kecepatan di tepi sel,

a(xj12)12a(xj1)+12a(xj)a(xj+12)12a(xj)+12a(xj+1)

Dalam buku LeVeque dia berkata,

Sejauh ini kita telah mengasumsikan bahwa kecepatan variabel ditentukan oleh nilai konstan dalam sel grid j-th. Dalam beberapa kasus, lebih alami untuk mengasumsikan bahwa kecepatan ditentukan pada setiap antarmuka sel.a j a j - 1a(x)ajaj12

Tapi dia tidak benar-benar menguraikan terlalu banyak setelah itu. Apa itu pendekatan umum?

Saya memecahkan masalah konservasi (saya menggunakan persamaan advection sebagai persamaan kontinuitas) jadi saya ingin memastikan bahwa setelah menerapkan diskritisasi, properti konservasi akan dilestarikan. Saya ingin menghindari kejutan tersembunyi mengenai koefisien variabel ini! Adakah yang punya komentar dan panduan umum?


Pembaruan Ada dua jawaban yang sangat bagus di bawah ini dan saya hanya bisa memilih satu :(

Boyfarrell
sumber

Jawaban:

4

Tergantung pada jenis sistem Anda sedang melihat, mungkin lebih nyaman untuk mempertimbangkan kecepatan sebagai piecewise-konstan dalam setiap sel, atau bahwa itu pasti pada antarmuka sel. Sebagai contoh, dalam meteorologi, grid terhuyung-huyung cukup umum, di mana tekanan dapat didefinisikan di dalam sel dan kecepatan pada antarmuka sel. Anda bisa dengan mudah memikirkan kecepatan sebagaimana didefinisikan dalam sel. Semua mengatakan: pilihan representasi tidak boleh mempengaruhi konvergensi metode Anda *, asalkan diskritisasi Anda stabil dan konsisten.a

Yang paling penting (dan Anda sudah menyentuh ini dalam pertanyaan Anda) adalah bahwa sistem yang didiskritisasi masih konservatif. Asalkan skema Anda dapat ditulis dalam formulir

ujt=Fj12(uj1,uj)Fj+12(uj,uj+1)

maka itu harus konservatif, karena

tudx=jujtδx=j(Fj12Fj+12)δx=(F12FN+12)δx .

Pendekatan sederhana Anda harus bekerja dengan baik, karena akan membuat rata-rata kecepatan antar sel untuk mendefinisikannya pada antarmuka sel, asalkan kecepatan selalu positif. Selain itu, saya tidak berpikir bahwa rata-rata akan memberi Anda akurasi yang lebih tinggi, jadi Anda berhak memilih cara sederhana.

Jika Anda juga memecahkan masalah kecepatan dan Anda memiliki sistem persamaan, Anda mungkin perlu lebih berhati-hati. Demikian juga, jika Anda memecahkan PDE hiperbolik nonlinear dan menggunakan pembatas fluks, Anda harus lebih berhati-hati.

* Namun, untuk sistem PDE hiperbolik, menggunakan kisi-kisi yang terhuyung-huyung dapat secara substansial memperbaiki dispersi / difusi buatan. Jika Anda ingin tahu lebih banyak, lihat Arakawa C-grids atau lihat bab 4 buku ini .

Daniel Shapero
sumber
Terima kasih telah menjelaskan. Dan intuisi Anda benar; Saya memecahkan sistem persamaan di mana salah satu persamaannya adalah kecepatan (PDE dari variabel lain). Sistem persamaan adalah 1D saja, saya berencana untuk menggunakan metode upwind urutan pertama adaptif (dapat membalik antara urutan 2 sentral dan melawan arah angin) mungkin dengan pemasangan eksponensial. Saya tidak menggunakan flux limiter, tetapi sistem ini non-linear. Apakah saya perlu "lebih hati-hati" dalam situasi ini?
boyfarrell
Itu semua tergantung jika Anda mengharapkan gelombang kejut dan sejenisnya terbentuk, jika ada kemungkinan bahwa kecepatan akan turun di bawah nol di beberapa wilayah, atau jika kecepatannya menjadi cukup tinggi sehingga Anda akan bertabrakan dengan kondisi Courant-Friedrichs-Lewy dalam beberapa kasus. Yang mengatakan, saya akan mencoba pendekatan sederhana terlebih dahulu untuk melihat apakah itu berhasil, yang mungkin bisa dilakukan. Jika itu akan gagal, itu akan melakukannya dengan sangat spektakuler dan tidak ambigu, jadi saya tidak berpikir Anda perlu khawatir tentang sesuatu yang salah masuk di bawah radar Anda.
Daniel Shapero
Ya, saya berharap kecepatannya hanya nol di pusat domain saya dan kemudian dengan cepat mendekati nol ketika seseorang menjauh dari pusat. Saya memilih langkah waktu sehingga kondisi CFL terpenuhi (menggunakan kecepatan maks.), Mesh diperbaiki. Apa kriteria untuk gelombang kejut? Saya tidak mengantisipasi melihat itu (tetapi Anda tidak pernah tahu).
boyfarrell
5

Yang lain mengatakan itu semua, tapi saya hanya ingin menambahkan poin yang sederhana, namun terkadang halus. Diskritisasi melawan angin Anda tetap konservatif selama Anda menggunakan interpolasi konsisten dari pada batas sel.a(x)

Yang saya maksud dengan konsisten adalah bahwa satu - satunya syarat yang perlu dipenuhi oleh interpolasi adalah

ai+1/2+=ai+1/2

Dengan kata lain, selama metode interpolasi Anda terus menerus melintasi batas sel, diskritisasi Anda dijamin akan tetap konservatif.

Ini mungkin tidak tampak seperti masalah besar di sini dalam 1D (dan seharusnya tidak) tetapi dapat menyebabkan masalah pada antarmuka kasar-halus pada kisi-kisi AMR multi-level.

GradGuy
sumber
Mengenai konsistensi. Untuk pendekatan volume hingga terpusat sel. Jika saya telah memilih untuk menggunakan (misalnya) interpolasi linear untuk memperkirakan nilai vertex yang tidak diketahui, yang harus saya juga menggunakan metode interpolasi yang sama untuk memperkirakan nilai koefisien ? Apakah OK untuk "menggabungkan" perkiraan? Misalnya, apakah valid untuk menganggap tetapi menggunakan interpolasi untuk menemukan ? uj+12a(xj+12)a(xj+12)a(xj+1)uj+12
boyfarrell
@ Boyfarrell Akan baik-baik saja dalam arti bahwa metode ini tetap konservatif. Namun, hal itu memengaruhi keakuratan solusi. Seringkali, misalnya dalam skema ENO, seseorang mendekati keseluruhan fungsi fluks dan bukan kecepatan dan solusi secara terpisah.
GradGuy
4

Anda dapat menggunakan semua jenis interpolasi untuk menentukan , dan metode ini akan tetap konservatif.a(xj12)

Untuk melihat mengapa demikian, pertimbangkan bahwa definisi analitik konservatif adalah itu

tDu(x)dx=Da(x)u(x)dS,

di mana adalah domain masalah. Ini mengatakan bahwa perubahan dalam jumlah yang dilestarikan sama dengan fluks pada batas, dan segera mengikuti dari mengintegrasikan hukum konservasi.D

Jika diskritisasi kami berbentuk

ut(xj)=1h(a(xj12)uj12a(xj+12)uj+12)

di mana adalah titik kisi kami, , dan , , maka pernyataan konservasi setara diskrit adalahx1,,xnD=[c,d]c=x12d=xn+12

1hj=1n(a(xj12)uj12a(xj+12)uj+12)=a(x12)u12a(xn+12)un+12,

dan ini dapat dengan mudah diamati untuk dipegang dengan memperluas jumlah di sisi kiri. Perhatikan bahwa, dalam kasus Anda dengan upwinding, dan , meskipun harus dicatat bahwa skema ini hanya skema melawan angin yang tepat jika selalu positif.uj+1uj12=uj1a(x)uuj+12=uja(x)u

Untuk metode tingkat tinggi, asalkan halus, seseorang dapat dengan mudah memasukkan polinomial ke titik , dan mengevaluasi polinomial di .a ( x j - r ) , , a ( x j + s ) a ( x j - 1a(x)a(xjr),,a(xj+s)a(xj12)

Ben
sumber