Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Красников Моделирование физических процессов с исползованием 2012

.pdf
Скачиваний:
172
Добавлен:
12.11.2022
Размер:
12.78 Mб
Скачать

Рис. 3.6. Форма для граничных условий Неймана

Рис. 3.7. Выбор временного решателя

61

cos(0.1), cos(0.2),
Рис. 3.8. Форма для задания массива временных шагов

Times – содержит массив моментов времени, которые войдут потом в решение. Именно здесь указывается временной диапазон, на котором решается задача, а также шаг по времени. Следует иметь в виду, что FEMLAB не даёт возможности решить временную задачу на непрерывном временном отрезке – окончательное

решение будет набором стационарных профилей на различные моменты времени. Эти моменты времени как раз и определяются в этом поле, в виде массива. Стандартный формат набора – range(a,b,c), где a – начальный момент времени, b – шаг по времени, c – конечный момент времени. Массив времён можно редактировать в отдельном окне, нажав кнопку Edit… (рис. 3.8).

Вполях First value и Last value указываются начальное и конечное значения соответственно. При переключателе Step size, число временных шагов регулируется размером шага, а при переключателе Number of values указывается вручную число шагов, а шаг по времени вычисляется. Кнопка Add добавляет новый ряд к уже имеющимся значениям, кнопка Replace заменяет содержимое поля Times в окне Solver Parameters.

Всписок Function to apply to all values можно выбрать функ-

цию, которая берётся от всех значений ряда. То есть ряд значений в окне Solver Parameters будет представлять собой ряд значений, определённый в текущем окне, от каждого из которых взята выбранная функция. Например, укажем первое и последнее значения 0 и 1 соответственно, а число значений 11. Если мы теперь выберем функцию cos и нажмём кнопку Add или Replace, то ряд в поле

Times будет содержать значения:

cos(0.3)

Вернёмся к окну Solver Parameters. Поля Relative tolerance,

Absolute tolerance отвечают за предельно допустимую ошибку интегрирования. Поля могут принимать любые значения больше 0. Грубо говоря, чем меньше значение в поле Relative tolerance, тем

62

ниже относительная ошибка в решении, и чем меньше значение в поле Absolute tolerance, тем меньше абсолютная ошибка решения.

В панели Linear system solver выбирается решатель стационарной задачи. Тут стоит пояснить, принцип работы временного решателя. Расчёт задачи по времени происходит по методу конечных разностей. Чтобы вычислить значения в определённый промежуток времени, решается соответствующая данному моменту времени стационарная задача. Потом с помощью разностной схемы вычисляются значения для составления задачи на следующий момент времени. Решатель, выбранный в данной панели, решает данную стационарную задачу.

Вкладка Time Stepping. Здесь производится более детальная настройка временных шагов (рис. 3.9).

Рис. 3.9. Вкладка детальных настроек временного решателя

63

В панели General определяется связь шага по времени, который используется для расчёта разностной схемы, с шагом по времени, используемым для построения решения. Последний хранится в предыдущей панели в поле Times. В общем случае две эти величины никак не связаны между собой. Поле Time to store in output определяет, откуда будет браться массив моментов времени для решения. В случае значения Specified times, данный массив берётся из поля Times. Если выбрать пункт Time steps from solver, то шаги, по которым будет рассчитываться решение задачи, будут соответствовать временным шагам разностной схемы решателя.

Поле Time steps taken by solver определяет принцип выбора временных шагов решателя. В общем случае (значение Free) шаг выбирается произвольно. При значении Strict в массив моментов времени разностной схемы обязательно входят все моменты, определённые в поле Times, а также по необходимости между ними могут быть дополнительные моменты (решатель определяет необходимость создания такого дополнительного момента автоматически). Опция полезна, если решение может содержать скачки и нерегулярности в какие-то промежутки времени – в таком случае решатель может пропустить ключевые моменты времени, если установлено значение Free. При значении Intermediate решатель должен создать как минимум один шаг на каждом из промежутков между моментами времени, указанными в Times. Опция сходна со Strict, однако за счёт нестрогого выбора временных шагов, эта опция даёт решателю больше свободы. Таким образом, использование Intermediate более эффективно, чем Strict.

Панель Manual tuning step size даёт возможность задать временной шаг разностной схемы вручную, если есть такая необходимость в задаче. При включённой панели в поле Initial time step указывается начальный временной шаг, а в поле Maximum time step максимально возможный временной шаг.

Укажем в поле Times промежуток времени от 0 до 100 секунд с шагом 1 секунда. Выставив соответствующие значения, можно запускать решение.

64

Рис. 3.10. Проигрыватель видеоролика

3.1.3. Визуализация решения

Система выдаст решение на конечный момент времени. Чтобы посмотреть полное решение, следует запустить COMSOL Movie

Player кнопкой . При открытии плеера следует подождать, пока в него будет загружены все полученные профили. Когда в левом нижнем углу появятся кноп-

ки Play и Stop, то плеер готов к работе и можно запускать просмотр анимации (рис. 3.10). При желании, анимацию можно сохранить в видеофайл.

Во вкладке Animate

окна Plot Parameters

можно изменить настройки анимации (рис. 3.11).

Вполе File Type содержится выбор формата выходного файла

(QuickTime или AVI).

Поля Width и Height отвечают за размеры кадра (в пикселах). Поле Frames per second определяет скорость показа анимации

(количество кадров в секунду).

Вокне, вызываемом кнопкой Advanced, можно более детально настроить формат видеоролика.

Впанели Solutions to use указывается набор моментов времени, которые входят в видеоролик. Изначально выбраны все моменты, однако диапазон можно сколь угодно сузить. При выборе пункта Interpolated times в поле Select via становится активным поле Times, и желаемые моменты времени указываются уже в нём.

Панель Static/Eigenfunction animation настраивает анимацию для статических задач на собственные значения.

При включённом флажке Reverse direction кадры проигрываются в обратной последовательности.

65

3.11. Вкладка настройки видеоролика

При включённом флажке Use camera settings from main window настройки для отображения фигуры в ролике берутся из настроек главного окна.

В случае, когда система FEMLAB запускается совместно с Matlab, появляется дополнительный флажок Make movie in MATLAB. В случае включения этого флажка ролик будет создаваться в окне Matlab.

Чтобы посмотреть стационарный профиль на определённый момент времени в главном окне, откроем окно Plot Parameters и вкладку General. В поле Solution at time можно выбрать из выпадающего списка любой момент времени, на который существует стационарное решение (рис. 3.12).

66

Рис. 3.12. Выбор момента времени для просмотра стационарного профиля

Помимо самой величины u и её производных по координатам (ux, uy), во временном режиме можно построить также и их производные по времени (ut, uxt, uyt).

В случае нестационарной задачи можно построить график изменения величины со временем в какой-либо точке. Вызовем пункт меню Postprocessing->Domain Plot parameters. На вкладке General в списке Solutions to use выберем все решения, затем перейдём на вкладку Point. Выберем точку 4 (правый верхний угол) и нажмём Apply. Будет построен следующий график (рис. 3.13).

Также в нестационарном случае принципиально меняются графики вдоль линий и границ. При выборе пункта Line plot в панели Plot type на вкладке Line/Extrusion, будет построена линия для каждого решения из списка Solutions to use на вкладке General. Если будет выбран пункт Extrusion plot, то построенные решения будут представлены в виде трёхмерного графика.

67

Рис. 3.13. График производной u по времени

3.1.4. Учёт начальных условий задачи

Наиболее внимательные читатели могли заметить, что в исходном уравнении (3.1) не хватает начального условия. Тем не менее, постановка начального условия чрезвычайно важна для корректной постановки задачи, в противном случае задача может быть не решена вовсе.

Начальные условия указывается в форме задания коэффициентов уравнения (Subdomain Settings) во вкладке Init (рис. 3.14). Изначально в поле Initial Value стоит 0. Именно это начальное условие использовалось при решении предыдущей задачи (в чём можно убедиться, просмотрев стационарное решение на момент времени

0).

68

Рис. 3.14. Вкладка для задания начальных условий нестационарной задачи

В нашем случае решатель смог рассчитать решения на последующих временных слоях, несмотря на то, что данное начальное условие было не согласовано с граничными. В случае более сложных систем, задача может быть не решена в принципе, и процесс расчёта будет прерываться ошибкой (подробнее об этом см. ниже). Поэтому важно грамотно задать начальное условие таким образом, чтобы оно удовлетворяло также и краевым условиям. В случае одномерной задачи задать подобное условие аналитически не очень сложно. В двумерном случае оно будет иметь зависимость от двух величин, и подобрать такое условие будет труднее. Наиболее оптимальным способом постановки начального условия является решение соответствующей стационарной задачи при t=0. Необходимо в списке решателей заменить временной решатель на нелинейный, а также заменить во всех местах переменную t значением 0 (проще всего завести её в таблице констант, а затем после обратного перехода к нестационарной задаче удалить). Решив стационарную задачу, подставим в поле Initial values переменную u (или перезапустим решение кнопкой Restart). Так, начальное условие у нас будет гарантированно задано согласованной с граничными условиями величиной.

69

3.1.5. Решение дифференциально-алгебраических систем уравнений

Дифференциально-алгебраическими системами уравнений являются системы типа

 

u

v = 0

(3.2)

 

t

 

 

 

 

 

 

 

2

+ v

2

=1

 

u

 

 

 

Можно видеть, что первое уравнение – дифференциальное, а второе алгебраическое. Продифференцировав второе уравнение по t, можно получить уравнение следующего вида:

2u

u

+ 2v

v

= 0

(3.3)

t

t

 

Подставляя из ур. (3.3) выражение для v получим

u = − vt .

Таким образом, переменной v присвоим индекс 1, поскольку для определения её производной необходимо проинтегрировать второе уравнение один раз, а переменной u присвоим индекс 0, поскольку её вид известен из исходного уравнения.

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

Наилучшим примером может служить система уравнений гидродинамики, имеющая нестационарные уравнения Навье-Стокса и стационарное уравнение непрерывности.

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]