Метод скінченних об'ємів

Матеріал з testwiki
Версія від 07:08, 3 липня 2024, створена imported>Олюсь
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Шаблон:Без виносок Метод скінченних об'ємів (МСО) — це чисельний метод інтегрування систем диференціальних рівнянь з частинними похідними.[1] Аналогічно до методів скінченних різниць і скінченних елементів, використовується сітка. Під скінченним об'ємом мається на увазі невеликий об'єм навколо кожної вузлової точки сітки. У цьому методі інтеграли об'єму, які містять вирази з дивергенцією, перетворюються у поверхневі інтеграли за допомогою формули Остроградського. Потім ці вирази оцінюються як поверхневі потоки кожного скінченного об'єму. Оскільки потік, який входить у даний об'єм, є ідентичним до потоку, який виходить із суміжного об'єму, то ці методи є консервативними. Іншою перевагою МСО є те, що він легко формулюється для неструктурованої сітки.

Цей метод використовується в обчислювальній гідродинаміці при моделюванні задач.

Приклад для одновимірного випадку

Розглянемо просту задачу адвекції

(1)ρt+fx=0,t0,

де ρ=ρ(x,t) — змінна стану, а f=f(ρ(x,t)) — постійний рух або потік. Умовно, якщо функція f додатна, то потік рухається праворуч, якщо від'ємна — ліворуч. Нехай рівняння (1) відображає поточне середовище у постійній області, тоді цю область x можна розділити на скінченні об'єми або комірки, i — індекси комірок. Для конкретної комірки i середнє значення об'єму обчислюється як:

(2)ρ¯i(t1)=1xi+12xi12xi12xi+12ρ(x,t1)dx,

при t=t2

(3)ρ¯i(t2)=1xi+12xi12xi12xi+12ρ(x,t2)dx,

де xi12 та xi+12.

Проінтегрувавши рівняння (1), отримаємо:

(4)ρ(x,t2)=ρ(x,t1)t1t2fx(x,t)dt,

де fx=fx.

Для отримання середнього значення об'єму ρ(x,t) при t=t2 потрібно проінтегрувати ρ(x,t2) по об'єму комірки, [xi12,xi+12], та поділити результат на Δxi=xi+12xi12.

(5)ρ¯i(t2)=1Δxixi12xi+12{ρ(x,t1)t1t2fx(x,t)dt}dx.

Припускається, що f добре поводиться, і що можна обернути порядок інтегрування. Також варто нагадати, що потік (Шаблон:Lang-en) перпендикулярний до одиниці площі комірки. Тепер, оскільки в одному вимірюванні fxf, то можна застосувати формулу Остроградського, тобто vfdv=SfdS, і замінити об'ємний інтеграл дивергенції значеннями f(x), обчисленими на поверхні комірки (грані xi12 і xi+12) скінченного об'єму наступним чином:

(6)ρ¯i(t2)=ρ¯i(t1)1Δxi(t1t2fi+12dtt1t2fi12dt),

де fi±12=f(xi±12,t).

Таким чином отримуємо напівдискретну числову схему для задачі з i-тими комірками та крайовими їх потоками i±12. Після диференціювання (6) отримуємо:

(7)dρ¯idt+1Δxi[fi+12fi12]=0,

де значення крайових потоків fi±12 можуть бути знайдені за допомогою інтерполяції або екстраполяції середніх значень комірок. Формула (7) є точною для середнього значення об'єму.

Також цей метод є застосовним у двовимірному випадку.

Загальний закон збереження

Розглянемо задачу загального закону збереження, подану у вигляді диференціального рівняння з частинними похідними:

(8)𝐮t+𝐟(𝐮)=𝟎,

де 𝐮 — вектор стану, а 𝐟 — тензор потоку. Так само ділимо область на скінченні об'єми або комірки. Для конкретної i-тої комірки беремо інтеграл об'єму по всьому об'єму комірки vi:

(9)vi𝐮tdv+vi𝐟(𝐮)dv=𝟎.

Проінтегрувавши першу складову для отримання середнього значення об'єму та застосувавши формулу Остроградського до другої складової формули, отримаємо

(10)vid𝐮¯idt+Si𝐟(𝐮)𝐧dS=𝟎,

де Si — площа поверхні комірки, а 𝐧 — вектор нормалі. Зрештою можна отримати загальний результат, еквівалентний (8):

(11)d𝐮¯idt+1viSi𝐟(𝐮)𝐧dS=𝟎.

Значення крайових потоків можуть бути знайдені за допомогою інтерполяції або екстраполяції. Фактично, чисельна схема залежить від принципу побудови сітки.

Консервативність схеми скінченних об'ємів полягає в тому, що середнє значення комірок змінюється через крайові потоки. Іншими словами, втрата однієї комірки призводить до створення нової.

Див. також

Примітки

Шаблон:Reflist

Посилання

  • The finite volume method by R. Eymard, T Gallouët and R. Herbin, update of the article published in Handbook of Numerical Analysis, 2000
  • Шаблон:Cite journal, теекст доступний під вільною ліцензією GFDL.
  • FiPy: A Finite Volume PDE Solver Using Python from NIST.
  • CLAWPACK: a software package designed to compute numerical solutions to hyperbolic partial differential equations using a wave propagation approach
  • Кухарський В. М., Савула Я. Г., Головач Н. П. Стабілізація розв'язків задач адвекції-дифузії з великими числами Пекле, отриманих засобами методу скінченних елементів // Моделювання та інформаційні технології. — 2002. — Вип. 15. — С. 3-14. ЛНУ ім. Івана Франка

Джерела

  • Eymard, R. Gallouët, T. R. Herbin, R. (2000) The finite volume method Handbook of Numerical Analysis, Vol. VII, 2000, p. 713–1020. Editors: P.G. Ciarlet and J.L. Lions.
  • LeVeque, Randall (2002), Finite Volume Methods for Hyperbolic Problems, Cambridge University Press.
  • Toro, E. F. (1999), Riemann Solvers and Numerical Methods for Fluid Dynamics, Springer-Verlag.
  • Patankar, Suhas V. (1980), Numerical Heat Transfer and Fluid Flow, Hemisphere.
  • Hirsch, C. (1990), Numerical Computation of Internal and External Flows, Volume 2: Computational Methods for Inviscid and Viscous Flows, Wiley.
  • Laney, Culbert B. (1998), Computational Gas Dynamics, Cambridge University Press.
  • LeVeque, Randall (1990), Numerical Methods for Conservation Laws, ETH Lectures in Mathematics Series, Birkhauser-Verlag.
  • Tannehill, John C., et al., (1997), Computational Fluid mechanics and Heat Transfer, 2nd Ed., Taylor and Francis.
  • Wesseling, Pieter (2001), Principles of Computational Fluid Dynamics, Springer-Verlag.

Шаблон:ЧМ для PDE