2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4  След.
 
 Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 16:27 


12/08/09
30
Здраствуйте.
Мне необходимо моделировать прохождение плоской волны сжатия внутри упругой полубесконечной области. Так как решение ищется численно, то область решения обязана быть конечного размера. Однако, в этом случае, когда волна доходит до границ области решения, она отражается от них обратно в область и искажает всю картину решения. Для того, чтобы этого не происходило я использую на тех границах области, сквозь которые волна должна уходить проч, специальные зоны поглащения - Pml-слои (содержащие другие уравнения, нежели в области решения), которые улавливают волны и не дают им распространятся обратно в область.
Но отсюда возникает проблема. Если бы поглощающих границ не было, то я бы мог просто приложить нагрузку (изменяющуюся во времени) к одной из границ области и в итоге по области решения стала бы распространятся нужная мне плоская волна. Но если границы области - поглощающие, то как тогда генерировать саму волну? Если прикладывать нагрузку к границе зоны поглощения, то волна сразу в ней затухнет. Если прикладывать нагрузку к границе между Pml-слоем и областью решения, то получится какая-то ахинея с большим количеством численных ошибок. Я могу задать дополнительную полость в области решения, и приложить нагрузку к ее границе, но тогда не получится плоской волны.
Есть у кого-нибудь идеи что делать в таком случае?
Задача решается двумерная, дискретизация по пространственным переменным производится методом конечных элементов, по временной переменной - методом конечных разностей.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 17:54 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Раз у вас область полубесконечная, то и поглощающую границу надо делать только с одной стороны, а с другой прикладывать нагрузку. И пожалуйста, не пишите "поглащения".

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 18:00 


12/08/09
30
Моя область решения - прямоугольник. Поглощающие границы слева, справа и снизу. Если я сделаю поглощающую границу только с правой стороны, то отражения от объектов , расположенных внутри области решения (в дальнейшем планируется эти плоские волны сталкивать с объектами) будут попадать на границы слева и снизу, и отражаться от них.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 18:11 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Rangok в сообщении #547754 писал(а):
Моя область решения - прямоугольник. Поглощающие границы слева, справа и снизу.

Тогда вы неправильно область решения нарисовали. Как ваша исходная задача ставится? Если вам нужны плоские волны, параллельные границе области, ваша задача сводится к одномерной. Если не параллельные - чуть посложнее, надо переписать дифур, и всё равно сделать его одномерным.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 18:23 


12/08/09
30
Волна должна двигаться слева-направо, встречая препятствия на своем пути (полости, материалы других характеристик) и воздействуя на них. В результате воздействия с препятствиями и верхней границой получатся отраженные волны, которые, однако, не должны отражаться от левой, правой и нижней границ. Как будто идет взрывная волна в грунте в плоской постановке (у грунта ведь нет никаких границ кроме поверхности Земли).

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 18:42 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Понятно. То есть вам нужна волна, падающая из бесконечности.

Я так понимаю, вам нужно взять плоскость, параллельную левой границе, прямо на границе pml-слоя или чуть-чуть отступив от него, и задать на этой плоскости источник волн внутри области решения - ненулевую правую часть ДУЧП. В горизонтальном направлении дельта-подобный. Волны от него побегут направо и налево, но те, которые побегут налево, поглотятся, и волновать вас не будут.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 19:06 


12/08/09
30
Так пробовал уже - не получается ничего. Если силы прикладываются к узлам на границе pml-слоя (если отступить чуть-чуть впарво, то самый нижний узел плоскости, к которой прикладывается нагрузка, будет касаться нижнего pml-слоя) и расчетной области, то волны получаются не гладкие, а в своеобразных пиках как на осциллограммах. Плюс ко всему, когда все волны затухнут, то на все решение накладываются большие ошибки. Если же выбирать узлы, не граничащие с pml-слоями, то плоской волны не получается.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение12.03.2012, 22:35 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Rangok в сообщении #547790 писал(а):
если отступить чуть-чуть впарво, то самый нижний узел плоскости, к которой прикладывается нагрузка, будет касаться нижнего pml-слоя

Ну и пусть касается. Или даже пусть не касается - отступите и от нижнего края немного. У вас получится на краю не плоская волна, а с дифракцией, но можно увеличить область решения вниз, чтобы все эти эффекты не затрагивали интересных вам препятствий.

Rangok в сообщении #547790 писал(а):
волны получаются не гладкие, а в своеобразных пиках как на осциллограммах.

Это как? Ничего не понял. Приведите картинку.

Rangok в сообщении #547790 писал(а):
Плюс ко всему, когда все волны затухнут, то на все решение накладываются большие ошибки.

Может быть, не настолько большие, чтобы их уменьшением шага по времени и по координате нельзя было задавливать. Вы в этом направлении экспериментировали, оценки делали?

Rangok в сообщении #547790 писал(а):
Если же выбирать узлы, не граничащие с pml-слоями, то плоской волны не получается.

Почему? У вас эти узлы не лежат в плоскости, и нельзя заставить их в ней лежать?

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение13.03.2012, 15:55 


12/08/09
30
Я тут еще поэкспериментировал чутка и пришел к такому выводу: если нагрузку прикладывать к внешней границе регулярной области, которая не граничит с зоной pml (как здесьhttp://savepic.su/1559058.jpg), то решение в принципе приемлемое получается, но ошибки все-равно накладываются когда волна достигает зоны pml, хоть и незначительные. Уменьшение шага по времени не уменьшает ошибки, но сгущение сетки их уменьшает (как в этом случае http://savepic.su/1509911.jpg).
Но если нагрузку попытаться приложить к любым внутренним точкам области, то получается какая-то белиберда как здесь http://savepic.su/1533458.jpg и здесь http://savepic.su/1553938.jpg
Не знаю в чем дело: при одних условиях решение вроде бы адекватное, но при других совершенно неадекватное. Может быть где-то ошибка в численной схеме, только вот сто раз перепроверял все и ничего не нашел...

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение13.03.2012, 17:52 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Ну вот. Начать с того, что я совсем не ожидал, что у вас вообще область такая маленькая, по сравнению с длиной волны и толщиной pml-слоёв. Соображения, которые я говорил, логичны для случая, когда размеры области в разы больше.

"Ошибки", которые вам не нравятся (имхо - и так уже пренебрежимо малые, уже на первом рисунке), думаю, станут ещё меньше, если вы область pml-слоя зададите столь же регулярной сеткой, что и основную область задачи. По-моему, очевидно, что они возникают из-за отражения на неоднородностях сетки.

Заменять левый pml-слой на излучающее граничное условие можно, если вас не волнуют волны, идущие справа налево. Вы же собираетесь всякие препятствия в область добавлять? Ваша падающая волна будет от них отражаться, пойдёт справа налево, дойдёт до границы, и что с нею будет? Если там будет граничное условие, волна от него опять отразится. А если там будет прозрачная для волны правая часть, и за ней pml-слой, то волна пройдёт излучатель, и поглотится, что вам и нужно (в смысле "волна уйдёт влево на бесконечность").

То, что вы привели на последних двух картинках - по-моему, не белиберда, а вполне нормальное излучение ограниченной плоскости, демонстрирующее краевой эффект - диффракцию. Увеличьте область решения по вертикали в десять, или хотя бы в три раза, и у вас будет достаточно много почти хорошей плоской волны. Из мелких советов, нижний край излучающей плоскости можно смело погрузить в нижний pml-слой, и довести до края расчётной области, от этого картинка тоже должна слегка улучшиться.

Мнэ, и у меня вопрос такой возник, у вас научрук есть? А то у меня такое впечатление, что я его роль начинаю играть :-)

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение13.03.2012, 23:25 


12/08/09
30
Цитата:
"Ошибки", которые вам не нравятся (имхо - и так уже пренебрежимо малые, уже на первом рисунке), думаю, станут ещё меньше, если вы область pml-слоя зададите столь же регулярной сеткой, что и основную область задачи. По-моему, очевидно, что они возникают из-за отражения на неоднородностях сетки.

Не думаю, что регулярная сетка в pml слоях привнесет хоть-какой-либо эффект (я бы проверил на всякий случай, но придется тогда программу генерации немного переделывать). Все-таки в МКЭ искомые функции апроксимируются внутри каждого элемента (треугольника), линейными(в моем случае) интерполяционными полиномами. То есть в каждом треугольничке подбирается свое уравнение плоскости, которое будет аппроксимировать решение. И если треугольники будут не прямоугольными а равносторонними, то качество решения даже лучше будет. Тем более раньше я задавал область решения тоже нерегулярной сеткой как в pml-слоях и эффекта никакого от этого не было.
Цитата:
Заменять левый pml-слой на излучающее граничное условие можно

А что это такое и как его задавать?
Цитата:
Увеличьте область решения по вертикали в десять, или хотя бы в три раза, и у вас будет достаточно много почти хорошей плоской волны. Из мелких советов, нижний край излучающей плоскости можно смело погрузить в нижний pml-слой, и довести до края расчётной области, от этого картинка тоже должна слегка улучшиться.

Увеличил расчетную область по вертикали в 10 раз и по горизонтали в 2 раза, также нижний край излучающей плоскости поместил в в нижний pml-слой. Вот результат http://savepic.su/1529438.jpg.
Как видите, почему-то стало только-хуже. Не знаю в чем дело, но если прикладывать нагрузку к внешней границе как здесь http://savepic.su/1508958.jpg то решение вроде бы нормальное. Если сделать внутреннюю полость в области решения, и приложить нагрузку к ее границе, то тоже будет все нормально. А если прикладывать нагрузку в любом месте внутри расчетной области например здесь http://savepic.su/1572433.jpg так же, то решение получается все в "иголках" каких-то. Из-за чего вообще такое может быть? Ведь если я эту же задачу в стандартной постановке без pml-слоев, то такого нету, просто волны получаются кривые, но никаких "иголок" нет http://savepic.su/1567314.jpg.

Цитата:
Мнэ, и у меня вопрос такой возник, у вас научрук есть?

Формально-то он есть, но в научных вопросах мне не помогает совсем, даже спрашивать у него смысла нет никакого.
Цитата:
А то у меня такое впечатление, что я его роль начинаю играть :-)

Спасибо Вам больше за это, а то мне и обратится больше не к кому, кроме как на форумах спрашивать.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение14.03.2012, 01:15 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Rangok в сообщении #548109 писал(а):
Не думаю, что регулярная сетка в pml слоях привнесет хоть-какой-либо эффект

Хм. Ну, может, ошибки не исчезнут, но станут регулярнее :-)

А вообще, какая там величина этих остаточных ошибок, по отношению к исходной волне? Во-первых, может быть, они и так за пределами устраивающей вас (или заказчиков) погрешности, а во-вторых, может быть, она - как раз расчётная для заданных параметров pml-слоя? Во втором случае их можно регулировать, задав слой толще, и более поглощающим.

Rangok в сообщении #548109 писал(а):
А что это такое и как его задавать?

Я, видимо, неправильно выразился, я потом увидел в книжке, что "излучающая граница" - это тоже другое название для неотражающей границы. Я имел в виду просто условия Неймана или Дирихле, в которых $u$ или $u_{\mathbf{n}}$ равны не нулю, а заданной функции. Ровно то, что вы здесь показали: http://savepic.su/1559058.jpg . Давайте, что ли, о терминологии договариваться.

Rangok в сообщении #548109 писал(а):
решение получается все в "иголках" каких-то. Из-за чего вообще такое может быть? Ведь если я эту же задачу в стандартной постановке без pml-слоев, то такого нету, просто волны получаются кривые, но никаких "иголок" нет

Действительно, странно, особенно то, что "иголки" появляются ещё до того, как волна успела фактически дойти до pml-слоя. Боюсь, ответ в каких-то нюансах численной схемы, как основной, так и для реализации pml-слоя. Что-то на что-то "незаконно" влияет. Подобные "иголки" типичны для несходящихся численных методов, но ничего конкретнее сказать не могу.

В какой степени солвер вам подконтролен? Вы его целиком написали сами, используете написанный коллегой, используете готовый продукт? Отдельно тот же вопрос по генерации сетки. И чуть поподробнее, как вы pml-слой задаёте?

Rangok в сообщении #548109 писал(а):
Формально-то он есть, но в научных вопросах мне не помогает совсем, даже спрашивать у него смысла нет никакого.

Это тяжко. Но может быть, он хотя бы порекомендует своего коллегу, к которому вы могли бы обратиться?

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение14.03.2012, 19:38 


01/03/12
36
А если задавать источники волны не в близи поглащающего слоя, а в середине КЭМ. Каков будет результат?
По идее должны побежать две хорошие волны одна влево, другая - вправо.

Первую вы можите просто проигнорировать, а под вторую поставить исследуемый объект.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение14.03.2012, 23:07 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Кажется, это уже было проделано на рис. http://savepic.su/1572433.jpg , и результаты неудовлетворительны.

 Профиль  
                  
 
 Re: Численное моделирование волн в неограниченных областях
Сообщение15.03.2012, 06:52 


01/03/12
36
Munin в сообщении #548435 писал(а):
Кажется, это уже было проделано на рис. http://savepic.su/1572433.jpg , и результаты неудовлетворительны.


Здесь я вижу три проблемы:

1. Исходная волна не той формы какой должна быть (а значит конфигурация источников, ее генерирующих не правильно расчитана).
2. Присутствует взаимодействие двух волн: Исходной и отраженной от верхней границы расчетной области (Это интерференция. Так и должно быть. Это физике не противоречит)
3. PML слой не полностью абсорбирует волну, а частично отражает ее обратно в расчетную область. (Либо его толщины не хватает, либо он с ошибками реализован)

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

Далее:
Посмотреть как будут работать PML слои в зависимости от их толщины.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу 1, 2, 3, 4  След.

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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