Конечные различия на доменах с нерегулярными границами


11

Может ли кто-нибудь помочь мне найти книги по численным решениям (конечно-разностные и методы Кранка – Николсона) уравнений Пуассона и диффузии, включая примеры по нерегулярной геометрии, такие как область, состоящая из области между прямоугольником и кругом (особенно книги или ссылки) на примеры кода MATLAB в этом случае)?


4
Для чего? Введение для студентов в самом начале? А что такое неправильная геометрия в вашем случае? Домены с реентерабельными углами?
шухало

@Martin: я большой в этой области. Он мне нужен для решения уравнения Пуассона с использованием итерационных методов в областях неправильной формы, особенно в случае с изогнутыми пучками (например, двумерный круговой домен)
liona

2
@last Пожалуйста, измените название вопроса и текст, чтобы было понятно, что вы спрашиваете. Укажите виды уравнений, которые вас интересуют. Вас интересуют дискретизация, алгебраические решатели или и то, и другое? Вы заботитесь о конечных разностях и конечных элементах ( scicomp.stackexchange.com/questions/290/… )? Ваш текущий вопрос чрезвычайно широк, и его трудно найти в поиске.
Джед Браун

@JedBrown: я хочу решить уравнение Пуассона, используя конечную разность для данной области и граничного условия.
Лёна

наконец, отредактируйте основную часть вашего вопроса, чтобы включить информацию в оба ваших комментария на сегодняшний день. Кроме того, как сказал JedBrown, измените также название вашего вопроса, чтобы людям было проще искать ваш вопрос, и людям было легче судить, может ли вопрос быть интересным или применимым к ним.
Джефф Оксберри

Ответы:


3

Ключом к созданию схемы конечных разностей для нерегулярной геометрии является наличие матрицы «формы» со значениями, обозначающими точки снаружи, внутри и на границе области. Скажем, у нас была такая форма:

000000000000011111111110001222222100000122221000000012210000000001100000000000000000

Истинная область (где все ненулевые элементы матрицы) образуют треугольник, направленный вниз. 1 представляют точки на границе, а 2 представляют внутренние точки (обычно не известны). Мы можем назначить номера узлов следующим образом:

000000000000011111111110001123456100000178910100000001111210000000001100000000000000000

Здесь -1 представляют граничные местоположения. Затем вы можете запустить схему конечных разностей для всех элементов в матрице, но использовать оператор if для выполнения вашей схемы только на внутренних узлах (от 1 до 12). Этот подход не самый эффективный способ сделать это, но он выполнит свою работу ... если вы можете позволить себе память, было бы хорошо сохранить записи (i, j) всех внутренних узлов и выполнить цикл for только на этих узлах.

Чтобы создать геометрию напрямую, вы можете сделать одно из двух:
1. Создать черно-белое изображение вручную и импортировать его в свою программу (проще всего реализовать, но невозможно уточнить ваше пространственное разрешение dx или dy).
2. Напишите код, который будет создавать дискретные представления основных форм, которые вы хотите для любого пространственного разрешения, которое вы выберете (сложнее реализовать, но более устойчиво для общих конечно-разностных схем любого пространственного разрешения dx или dy).

Если вы хотите узнать больше о том , как это сделать, вы можете рассмотреть возможность просмотра этих видео:
NPTEL Компьютерная графика Курс, Видео 2 (Растровая графика)
NPTEL Компьютерная графика Курс, Видео 3 (Растровая графика, продолжение)
Проверьте их, и дайте мне знать, если это отвечает на ваш вопрос.


Есть ли способ, которым я могу улучшить формат значений матрицы, которые я разместил ... это не выглядит так, как я хотел бы, чтобы это выглядело
Пол

Да, вы можете использовать MathJax и поместить их в среду массива.
Дэвид Кетчесон

Вы правы ... это выглядит намного лучше с MathJax. Спасибо за предложение :)
Пол

@Paul: Спасибо за ваше простое решение! Однако, как я могу вычислить граничные точки, чтобы получить внутренние точки для замкнутой области между прямоугольником и треугольником или (замкнутой области между прямоугольником и кругом)?
liona

У вас есть изображение формы домена, который вы хотите смоделировать? Это всегда легче увидеть, чем просто описать словами :)
Павел

2

Я думаю, что хорошей книгой в самом начале является книга Хакбуша:

http://books.google.com/books/about/Elliptic_differential_equations.html?id=-ZPc_JYJFHgC&redir_esc=y

В частности гл. 4.8, «Дискретизация в произвольной области» может быть интересной для вас. Немецкая версия этой книги может быть загружена бесплатно (легально). Я не знаю, относится ли это и к английской версии.


2

Я бы предложил следующие документы:

Метод конечных разностей на произвольных нерегулярных сетках и его применение в прикладной механике - Лишка Оркиш

http://www.sciencedirect.com/science/article/pii/0045794980901492

Методы конечных разностей для переменных сеток - Дженсен

http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/

Решение параболических и гиперболических уравнений обобщенным методом конечных разностей - Бенито Урена Гавете

http://www.sciencedirect.com/science/article/pii/S037704270600687X

В основном они описывают, как генерировать разностные разности для неструктурированных / нерегулярных сеток. Я не знаю ни одной книги, которая бы подробно рассматривала эту конкретную тему, но в книге Рэндалла Левека может быть что-то об этом. Вот ссылка на веб-страницу автора, которая содержит некоторые m-файлы Matlab для конечных различий.

http://faculty.washington.edu/rjl/booksnotes.html


1

Я думаю, что приведение сетки в соответствие с границей и, следовательно, отход от стандартной квадратной сетки fdm, вероятно, является решением, но, тем не менее, имеет серьезные последствия для использования алгоритмов высокого порядка - трудно, если не невозможно. Я выбрал другой подход, а именно: удерживать прямоугольную сетку над геометрией изогнутой границы, создавать алгоритмы высокого порядка, интерполировать от границы, чтобы устанавливать значения «вне» геометрии, и это все, что есть. мы достигли точности в геометрии теста концентрических сфер ~ 1e-12 с помощью этого метода, используя алгоритм порядка 8. если вы будете гуглить "Edwards, fdm curved border", вы найдете ссылки на мои работы.


0

Можно ли использовать адаптивное уточнение сетки? Быстрый поиск Google найдет много ссылок. AMR используется, например, в гидродинамике для моделирования обтекания сложных форм; а также многие другие приложения. Вот пример решения систем гиперболических законов сохранения, возникающих при звездообразовании. Геометрия очень сложная. Первая часть статьи - хороший учебник. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf


0

Этот вопрос открывает банку с червями, о чем свидетельствуют различные ответы. Многие из них содержат полезные замечания, но действительно полезный ответ будет учитывать соображения, которые не были подняты. Помимо уточнения точного характера геометрии, было бы полезно узнать: а) Какая точность вам нужна? б) Вы хотите остаться с регулярными квадратными сетками? в) Сколько вы готовы инвестировать в изучение новых технологий?

Регулярные квадратные сетки затрудняют точное определение границы, поэтому многие люди переходят на соответствующие сетки. Соответствующие сетки с прямоугольной связью с трудом подгоняются к очень неправильным формам, поэтому многие люди выбирают неструктурированные сетки (треугольники / тетраэды или более общие).

Для любых данных, не имеющих регулярной декартовой структуры, сложно оценить производные, поэтому многие люди переформулируют свои проблемы в интегральной форме, что приводит к методам конечных элементов / конечных объемов (которые МОГУТ достичь высокого порядка). Есть методы без сетки. Существуют методы граничных элементов. Есть погруженные граничные методы. Существуют методы разрезания клеток. Часто есть метод, который популярен в некоторых приложениях, но не в других, по причинам, которые в основном исторические.

Я желаю вам удачи в навигации по этому лабиринту, но вы должны понимать, что не существует универсального решения для вашего вопроса.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.