Bagaimana seharusnya syarat batas diterapkan ketika menggunakan metode volume hingga?

16

Mengikuti dari pertanyaan saya sebelumnya, saya mencoba menerapkan kondisi batas pada jaring volume terbatas yang tidak seragam ini,

Batas sisi kiri termasuk sel hantu.

Saya ingin menerapkan kondisi batas tipe Robin ke lhs domain ( x=xL.) , sehingga,

σL.=(dkamux+Sebuahkamu)|x=xL.

di mana adalah nilai batas; adalah koefisien yang didefinisikan pada batas, adveksi dan difusi masing-masing; , adalah turunan dari dievaluasi pada batas dan adalah variabel yang sedang kita pecahkan. a , d u x = uσL.Sebuah,d uukamux=kamuxkamukamu

Kemungkinan pendekatan

Saya dapat memikirkan dua cara untuk menerapkan kondisi batas ini pada jala volume terbatas di atas:

  1. Pendekatan sel hantu.

    Tulis sebagai perbedaan hingga termasuk sel hantu. σ L = d u 1 - u 0kamux

    σL.=dkamu1-kamu0h-+Sebuahkamu(xL.)

    A. Kemudian gunakan interpolasi linier dengan poin dan untuk menemukan nilai perantara, .x 1 u ( x L )x0x1kamu(xL.)

    B. Atau temukan dengan rata-rata di atas sel,u ( x L ) = 1kamu(xL.)kamu(xL.)=12(kamu0+kamu1)

    Dalam kedua kasus, ketergantungan pada sel hantu dapat dihilangkan dengan cara biasa (melalui substitusi ke dalam persamaan volume hingga).

  2. Pendekatan ekstrapolasi.

    Cocokkan fungsi linier (atau kuadratik) dengan dengan menggunakan nilai pada titik ( ). Ini akan memberikan nilai pada u ( x L ) . Fungsi linear (atau kuadrat) kemudian dapat dibedakan untuk menemukan ekspresi untuk nilai turunannya, u x ( x L ) , pada batas. Pendekatan ini tidak menggunakan sel hantu.x 1 , x 2 x 3kamu(x)x1,x2x3kamu(xL.)kamux(xL.)

Pertanyaan

  • Pendekatan mana dari ketiganya, (1A, 1B atau 2) yang "standar" atau Anda sarankan?
  • Pendekatan mana yang memperkenalkan kesalahan terkecil atau paling stabil?
  • Saya pikir saya dapat menerapkan pendekatan sel hantu sendiri, namun, bagaimana pendekatan ekstrapolasi dapat diterapkan, apakah pendekatan ini memiliki nama?
  • Apakah ada perbedaan stabilitas antara pemasangan fungsi linier atau persamaan kuadrat?

Persamaan khusus

Saya ingin menerapkan batas ini pada persamaan advection-difusion (dalam bentuk konservasi) dengan istilah sumber non-linear,

kamut=-Sebuahkamux+dkamuxx+s(x,kamu,t)

Mendiskritkan persamaan ini pada mesh di atas menggunakan metode θ memberikan,

wjn+1θrawj1n+1θrbwjn+1θrcwj+1n+1=wjn+(1θ)rawj1n+(1θ)rbwjn+(1θ)rcwj+1n+s(xj,tn)

Namun untuk titik batas ( ) saya lebih suka menggunakan skema sepenuhnya implisit ( θ = 1 ) untuk mengurangi kompleksitas,j=1θ=1

w1n+1raw0n+1rbw1n+1rcw2n+1=w1n+s1n

Perhatikan titik hantu , ini akan dihapus dengan menerapkan syarat batas.w0n+1

Koefisien memiliki definisi,

ra=Δthj(ahj2h+dh)

rb=Δthj(a2[hj1hhj+1h+]+d[1h1h+])

rc=Δthj(ahj2h++dh+)

Semua variabel " " didefinisikan seperti pada diagram di atas. Akhirnya, Δ t yang merupakan langkah waktu ( NB ini adalah disederhanakan kasus dengan konstan suatu dan d koefisien, dalam praktek " r " koefisien sedikit lebih rumit untuk alasan ini).hΔtadr

Boyfarrell
sumber
1
Buku LeVeque yang lebih baru tentang metode volume hingga mengadvokasi sel hantu, karena kesederhanaan implementasinya, tetapi saya tidak ingat pembahasan istilah kesalahan.
Geoff Oxberry
Bisakah Anda meletakkan persamaan yang ingin Anda pecahkan? Cara untuk pergi juga akan tergantung pada masalah. Misalnya, mungkin karena bagian 'Neumann', kondisi batas seperti secara alami diselesaikan dalam formulasi diskrit.
Jan
@ GeoffOxberry terima kasih atas sarannya. Saya senang menggunakan sel hantu, saya akan mencoba dan menerapkannya dengan cara itu.
boyfarrell
@ Jan Saya awalnya menghindari meletakkan persamaan karena kompleksitas karena diskresi mesh tidak seragam, tapi saya baru saja memperbarui pertanyaan dengan rincian ini. Ini adalah masalah adveksi-difusi. Saya tidak terlalu yakin apa yang Anda maksud dengan "diselesaikan secara alami".
boyfarrell
Seperti Neumann bc secara alami diselesaikan dalam skema FEM untuk, misalnya, eqn Poisson. Untuk FVM saya memikirkan: Pertimbangkan sel pertama . Jika Anda memiliki nilai untuk u x0hdx(au+dux)dx=(au+dux)|x=h1(au+dux)|x=0=suxpada batas, tidak perlu untuk mendiskritasikannya.
Jan

Jawaban:

9

Ini bukan komentar umum tentang FVM daripada jawaban atas pertanyaan konkret. Dan pesannya adalah bahwa seharusnya tidak ada kebutuhan untuk diskritisasi adhoc seperti kondisi batas.

Tidak seperti dalam metode FE- atau FD, di mana titik awalnya adalah solusi diskrit untuk solusi, pendekatan FVM membuat solusi tidak tersentuh (pada awalnya) tetapi rata-rata pada segmentasi domain. Diskritisasi solusi hanya berlaku ketika sistem persamaan keseimbangan yang diperoleh diubah menjadi sistem persamaan aljabar dengan cara memperkirakan fluks di seluruh antarmuka.

Dalam hal ini, mengingat kondisi batas, saya menyarankan untuk tetap menggunakan bentuk solusi yang berkelanjutan selama mungkin dan untuk memperkenalkan pendekatan diskrit hanya di bagian paling akhir.

ut=aux+duxx+s(x,u,t)
holds on the entire domain. Then it holds on the subdomain [0,h1), and an integration in space gives
0h1utdx=0h1x(au+dux)dx+0h1s(x,u,t)dx=(au+dux)|x=h1(au+dux)|x=0+0h1s(x,u,t)dx,
which is the contribution of the first cell to the equation system. Note that, apart from taking only averages, there has been no discretization of u.

But now, to turn this into an algebraic equation, one typically assumes that on cell Ci the function u is constant in space, i.e. u(t,x)|Ci=ui(t). Thus, having associated u(xi)ui, one can express ux|hi at the cell boarders via the difference quotient in ui and ui+1. To express u at the cell boarders one can use interpolation (i.e. central differences or upwind schemes).

What to do at the boundary? In the example, it is all about approximating (au+dux)|x=0, no matter what has been done to u so far.

  • Given u|x=0=gD one can introduce a ghost cell and the condition that an interpolant between u0 and u1 is equal to gD at the boarder.

  • Given ux|x=0=gN one can introduce a ghost cell and the condition that an approximation to the derivative between u0 and u1 matches gN at the boarder

  • If the flux itself is prescribed: (au+dux)|x=0=gR, there is no need for a discretization.

However, I am not sure, what to do in the case that there are Robin type bc's that do not match the flux directly. This, will need some regularization because of the discontinuity of the advection and diffusion parameters.


===> Some personal thoughts on FVM <===

  • FVM is not a scaled FDM, as examples of 1D Poisson's equations on a regular grid often suggest
  • There shouldn't be a grid in FVM, there should be cells with interfaces and, if necessary, centers
  • That's why I think that a stencil formulation of the discretization is not suitable
  • Assembling of the equation system should be done according to the discretization approach, i.e. by iterating over the cells rather than defining an equation for every unknown. I mean to think of the i-th row of the coefficient matrix as the part of the problem posed on cell Ωi, rather than of the equation that is associated with ui.
  • This is particularly important for 2D or 3D problems but may also help to have a clear notation in 1D: Make a difference between the volume (in 1D: length) of the cell, here hi, and the distance between the centers, maybe in 1D: di:=di,i+1=|xixi+1|.

Jan
sumber
Thanks for your guidance while I was learning about this method. Maybe I can share my thoughts too. I agree it is best to say with the FVM form for as long as possible; particularly for the boundary conditions as you have shown! But I think it is very helpful when implementing to write the equation in matrix form; it is a precise and clear notation. Also, the stability and other numerical properties crucially depend on how the problem is discretised (for FVM this means how the fluxes an the cell faces are approximated). In that respect I prefer a matrix equations, to iteration over cells.
boyfarrell
Maybe my last point was ambiguous. In the end, you will have a coefficient matrix and a variable vector. I will edit my post. I was more about interpreting than actually doing.
Jan
Fantastic, I understand your point. Thanks.
boyfarrell