2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Простейший пример МКЭ (Галеркин)
Сообщение28.04.2020, 20:41 


25/02/11
123
https://homepages.cae.wisc.edu/~suresh/ ... trofem.pdf учебное пособие, самое начало 1.3.1
https://www.twirpx.com/file/627919/ книга от того же автора, эта глава в ней один к одному как в пособии только под номером 1.2.1

Есть одномерное ДУ 2го порядка:

$a \frac{d^2 u}{dx^2} + b = 0, \qquad 0 \leq x \leq 2L$

с граничными условиями:

$\begin{cases}
u \vert_{x=0} = 0 \\
a\frac{du}{dx} \vert_{x=2L} = R
\end{cases}$

Его очень легко решить аналитически, что я собственно и сделал для того чтобы вручную проверить каждый шаг:

$u = \frac{-b}{2a}x^2 + (\frac{2bL}{a} + \frac{R}{a})x$

$\frac{du}{dx} = \frac{-b}{a}x + (\frac{2bL}{a} + \frac{R}{a})$

Область определения делится на два равных участка (от 0 до L и от L до 2L) и на каждом вводятся по две линейные базисные функции ("shape function") через которые с помощью узловых значений приближается значение искомой функции u на данном участке.

Для первого участка:

$u_{12} = N_1 u_1 + N_2 u_2$

$N_1 = \frac{x_2-x}{x_2-x_1}; \qquad N_2 = \frac{x-x_1}{x_2-x_1}$

Затем эта аппроксимация подставляется в оригинальное уравнение, оно домножается на вектор с базисными функциями и интегрируется (невязка, условие ортогональности и т.д., это я все понимаю):

$\int_{x_1}^{x_2} \mathbf{N}^T a \frac{d^2}{dx^2} \mathbf{N} \mathbf{u} dx +
\int_{x_1}^{x_2} \mathbf{N}^T b dx = 0$

Векторы $\mathbf{u} = \begin{bmatrix} u_1 \\ u_2 \end{bmatrix}$ и $\mathbf{N} = \begin{bmatrix} N_1 & N_2 \end{bmatrix}$
А вот тут становится интересно, автор с помощью интегрирования по частям приходит к такому результату:

$\int_{x_1}^{x_2} \frac{d}{dx} \mathbf{N}^T a \frac{d}{dx} \mathbf{N} dx \mathbf{u} -
\int_{x_1}^{x_2} \mathbf{N}^T b dx
- \begin{bmatrix} 0 \\ 1 \end{bmatrix} a \frac{du}{dx}\vert_{x=x_2}
+ \begin{bmatrix} 1 \\ 0 \end{bmatrix} a \frac{du}{dx}\vert_{x=x_1} = 0 $

Первый член обозначается как $k u$, остальные как $f$ и переносятся вправо, затем подставляются пределы и для первого участка система выглядит так:

$\frac{a}{L} \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}
\begin{bmatrix} u_1 \\ u_2 \end{bmatrix} = 
\frac{bL}{2} \begin{bmatrix} 1 \\ 1 \end{bmatrix}$

А для второго участка так:

$\frac{a}{L} \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}
\begin{bmatrix} u_2 \\ u_3 \end{bmatrix} = 
\frac{bL}{2} \begin{bmatrix} 1 \\ 1 \end{bmatrix} + \begin{bmatrix} 0 \\ R \end{bmatrix}$

Что тут странного: при вычислении k вектор с узловыми точками был фактически вынесен за скобку, что в общем-то правильно, т.к. от x он не зависит, однако при вычислении составной части f приближенная функция $\mathbf{N} \mathbf{u}$ под дифференциалом была заменена обратно на оригинальную функцию $u$. Этот трюк позволил в последнем случае получить вектор, а не матрицу. И все бы ничего, но значение производной известно только в третьей узловой точке, но не в первых двух. Судя по итоговому значению f на первом участке автор просто взял и приравнял их к нулю. Одного взгляда на аналитическое решение достаточно чтобы понять что это неправильно.

Далее процедура повторяется для второго участка, k и f накладываются друг на друга во втором узле, получается СЛАУ из 3х уравнений, затем применяется первое граничное условие чтобы обнулить коэффициенты в первой строчке:

$\frac{a}{L} \begin{bmatrix} 1 & 0 & 0\\ 0 & 2 & -1 \\ 0 & -1 & 1 \end{bmatrix}
\begin{bmatrix} u_1 \\ u_2 \\ u_3 \end{bmatrix} = 
\frac{bL}{2} \begin{bmatrix} 0 \\ 2 \\ 1 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ R \end{bmatrix}$

Эта система абсолютно верная и приводит к точным значениям u в трех узлах:

$u_2 = \frac{1.5b L^2}{a} + \frac{r L}{a}$

$u_3 = \frac{2b L^2}{a} + \frac{2r L}{a}$

Разумеется мне захотелось узнать как это могло получиться и поэтому я перемножил k и $\mathbf{u}$ вручную на обоих участках чтобы получить соответствующие f, в результате:

$\frac{L}{a} f_1 = \begin{bmatrix} -\frac{1.5b L^2}{a} - \frac{r L}{a} \\ \frac{1.5b L^2}{a} + \frac{r L}{a} \end{bmatrix}$

$\frac{L}{a} f_2 = \begin{bmatrix} -\frac{0.5b L^2}{a} - \frac{r L}{a} \\ \frac{0.5b L^2}{a} + \frac{r L}{a} \end{bmatrix}$

Очевидно что при применении первого граничного условия первая строчка $f_1$ исчезнет, так что она не имеет значения, к последней строчке вопросов нет, она совпадает с авторской.
А вот со второй строчкой $f_1$ и первой строчкой $f_2$ все куда интереснее - слагаемое содержащее R исчезает только после их сложения.

И в самом деле если подставить значения производной в первых двух узлах $u'(x_1) = \frac{2bL}{a} + \frac{R}{a}$ и $u'(x_2) = \frac{bL}{a} + \frac{R}{a}$, которые автор беспардонно обнулил в формулу для f:

$\int_{x_1}^{x_2} \mathbf{N}^T b dx
+ \begin{bmatrix} 0 \\ 1 \end{bmatrix} a \frac{du}{dx}\vert_{x=x_2}
- \begin{bmatrix} 1 \\ 0 \end{bmatrix} a \frac{du}{dx}\vert_{x=x_1}
= \frac{bL}{2} \begin{bmatrix} 1 \\ 1 \end{bmatrix}
+ \begin{bmatrix} 0 \\ 1 \end{bmatrix} a \frac{du}{dx}\vert_{x=x_2}
- \begin{bmatrix} 1 \\ 0 \end{bmatrix} a \frac{du}{dx}\vert_{x=x_1}$

получаются как раз вышенаписанные $f_1$ и $f_2$.

Это что же получается, откровенный мухлеж от профессора с кучей цитирований https://scholar.google.com/citations?user=SxTP4dMAAAAJ который не заметили ни студенты на лекциях в Японии, ни редакторы книги?

У меня уже 5ый день крыша едет от всего этого, уже десятки раз все перепроверил. Можно ли как-то подправить этот пример чтобы честно прийти к той же системе или это гиблое дело? Почему во всем интернете нет ни одного легкого примера по МКЭ который можно было бы объяснить любому идиоту на пальцах? Либо как здесь с ошибками и мухлежом, либо такая жесть, которую поймут только доктора физ.мат. наук, да и то не все. Главное работать с пакетами очень просто, но вот объяснить что же там на самом деле происходит и почему это так практически невозможно.

 Профиль  
                  
 
 Re: Простейший пример МКЭ (Галеркин)
Сообщение03.05.2020, 02:47 


25/02/11
123
В общем помог себе сам: с такими базисными функциями решить задачу без мухляжа невозможно. Их необходимо заменить на те, которые удовлетворяют однородному граничному условию, т.е. $N_1(0) = N_2(0) = 0$, к примеру $N_1 = x, N_2 = x^2$. Более того, двух базисных функций достаточно, придумывать по две для каждого элемента не нужно.

 Профиль  
                  
 
 Re: Простейший пример МКЭ (Галеркин)
Сообщение03.05.2020, 04:43 


25/02/11
123
Но правда при этом получается что элементов вроде бы и нет. Чтобы они были можно задать кусочные базисные функции, но опять-таки соблюдая граничное условие, тогда тоже все получается.
Вот $N_1$:
$\begin{cases} \frac{x}{L}, 0 \le x \le L \\ \frac{2L-x}{L}, L \le x \le 2L\end{cases}$
Вот $N_2$:
$\begin{cases} 0, 0 \le x \le L \\ \frac{x-L}{L}, L \le x \le 2L\end{cases}$

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

Модераторы: Модераторы Математики, Супермодераторы



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

Сейчас этот форум просматривают: nnosipov


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

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