Конечно-разностные схемы моделирования распространения волн

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

Оглавление

 

Оглавление

.Введение

.Явная схема

.1Постановка задачи

.2Теоретическая часть

.3Начальные условия

.4Граничные условия

.5Условие Куранта - Фридрихса - Леви

.6Условие устойчивости

.7Алгоритм решения

.8Блок-схема

.9Реализация

.9.1Таблица идентификаторов для программы

.9.2Реализация на языке С/С++ программы

.9.3Исходный код программы для вывода в среде MATLAB

.10Тестовые примеры для программы, реализующей явную схему

.Неявная схема

.1Постановка задачи

.2Теоретическая часть

.3Начальные условия

.4Граничные условия

.5Алгоритм решения

.6Блок-схема

.7Реализация

.7.1Таблица идентификаторов для программы

.7.2Реализация на языке С/С++ программы

.7.3Исходный код программы для вывода в среде MATLAB

.8Тестовые примеры для программы, реализующей явную схему

.Заключение

 

 

1.Введение

 

Разностная схема - это конечная система алгебраических уравнений, поставленная в соответствие какой-либо дифференциальной задаче, содержащей дифференциальное уравнение и дополнительные условия (например краевые условия и/или начальное распределение). Таким образом, разностные схемы применяются для сведения дифференциальной задачи, имеющей континуальный характер, к конечной системе уравнений, численное решение которых принципиально возможно на вычислительных машинах. Алгебраические уравнения, поставленные в соответствие дифференциальному уравнению, получаются применением разностного метода, что отличает теорию разностных схем от других численных методов решения дифференциальных задач[1].

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

2.Явная схема

 

2.1Постановка задачи

 

Пусть система дифференциальных уравнений, моделирующая поведение волн, имеет вид

 

(1)

 

Для этой системы выберем разностную схему №11 [3]

 

(2)

 

Шаги по горизонтальным осям (?x и ?y) возьмём равными, выразив их как h = ?x = ?y.

С помощью полученной схемы реализовать программу, позволяющую моделировать поведение волн.

 

2.2Теоретическая часть

 

Для моделирования поведения волн, как уже было описано выше, мы использовали систему дифференциальных уравнений (1) и построенную к ней конечно-разностную схему в которой: c - фазовая скорость, u и v -векторы скорости, а ? - высота волны.

Легко заметить, что данная схема является явной, а использование осреднения по пространственным переменным придёт схеме параболический характер.

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

 

(3)

 

Теперь, когда уравнения для поиска новых значений построены, требуется задать начальные и граничные условия.

 

2.3Начальные условия

 

В качестве начального состояния поверхности рассмотрим гладкую поверхность с колокольчиком в центре.

Для того, что бы её задать будем использовать следующую формулу.

 

(2)

 

где - высота колокольчика, - радиус, H - глубина бассейна, a и - координаты центра. Для конкретного примера зададим высоту равную 1, радиус равный 5, глубину равной 1, а расположен он будет в центре расчётной области. В итоге, поверхность в начальный момент времени будет иметь такой вид (Рисунок 1):

 

Рисунок 1 - поверхность в начальный момент.

 

2.4Граничные условия

 

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

Для описания свободных границ в задачах о распространении волн цунами было выбрано условие Зоммерфельда, согласно которому предполагается перенос в направлении внешней нормы с постоянной скоростью, определяемой глубиной бассейна у границы и без изменения формы волны:

 

(3)

 

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

 

(4)

 

а касательная компонента скорости

 

(5)

 

Переходя к рассмотрению численных алгоритмов, реализующих условия свободного прохода, предположим, что в приграничных точках поведение волны описывается уравнением (3). Тогда значение на границе в момент времени (n+1)?t определяется из соотношения

 

(6)

 

где - значение высоты волны в точке, ближайшей к границе по направлению . Соотношение (6) является интерполяционной формулой, устойчивость которой обеспечивается выполнением критерия Куранта .

Для простоты расчётов будем считать, что , тогда уравнение (6) принимает вид

 

(7)

 

На рисунке 2 графически изображён этот принцип: красными показаны искомые граничные узлы, зелёными - граничные узлы на предыдущем слое, синие - ближайшие узлы предыдущего слоя к искомым граничным узлам.

 

Рисунок 2 - наглядное изображение выбранного принципа отыскания граничных условий

 

2.5Условие Куранта - Фридрихса - Леви

 

Критерий Куранта-Фридрихса-Леви - н