2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Метод конечных элементов, сложная вариационная формулировка
Сообщение12.06.2012, 05:32 


12/06/12
25
Решаю задачу для нахождения звукового поля, отражённого от препятствия, методом конечных элементов.
Уравнение Гельмгольца.
Задача в неограниченной области сводится к задаче в ограниченной области, на границе $\Gamma_R$ задаётся нелокальное граничное условие:
$$\frac{\partial p}{\partial n} = T(p),$$
где $T$ - оператор, который действует по следующей формуле ($R=|\mathbf x|$, $\mathbf{\hat x} = \frac{\mathbf x}{|\mathbf x|} $ - точка на единичной сфере):
$$[T(u)](R;\mathbf{\hat x}) = \sum_{n=0}^{\infty}\sum_{|m|\le n}k\beta_n^m(u)\frac{(h_n^{(1)})'(kR)}{h_n^{(1)}(kR)}\mathcal Y_n^m(\mathbf{\hat x}),$$
$$\beta_n^m(u)=\frac{1}{R^2}\int_{\Gamma_R}u(R;\mathbf{\hat x})\overline{\mathcal Y_n^m(\mathbf{\hat x})}d\sigma,$$
где $\mathcal Y_n^m$ - заданные функции (сферические гармоники), $h_n^{(1)}$ - тоже заданные функции (сферические функции Ханкеля), $k$ - константа.
Вариационная формулировка имеет вид:
$$a(u,v)=F(v),$$
где $a(u,v)$ - полуторалинейная форма, $F(v)$ - антилинейная форма.
Здесь $a(u,v)=\ldots$+\int_{\Gamma_R}T(u)\overline{v}, где $T$ - оператор, который действует по формуле, приведённой выше.
Вся проблема в том, что здесь достаточно сложная вариационная формулировка, содержащая, во-первых, сумму (бесконечную сумму мы можем заменить конечной суммой, но эту конечную сумму нужно считать в цикле, а во FreeFem++ вариационная формулировка записывается в одну строчку, без циклов), а во-вторых, интеграл внутри суммы для вычисления коэффициентов Фурье $\beta_n^m$.
Поэтому не понятно, как записать такую вариационную формулировку, например, в пакете FreeFem++.
Во FreeFem++ вариационная формулировка обычно записывается аналитически, в одну строчку. Там нельзя записать интеграл от интеграла.
Может быть, кто-нибудь сталкивался с подобной задачей?
Какой конечноэлементный решатель подойдёт для решения этой задачи?
Может быть, придётся реализовывать метод конечных элементов вручную, правда, можно триангуляцию сделать во FreeFem++, а для решения СЛАУ использовать, например, SuperLU.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group