- •Спецчасть
- •1.1. Введение
- •1.2. Постановка задачи
- •2. Описание программы
- •2.3.5.2. Реализация алгоритма встречной прогонки.
- •2.3.5.3. Программа как часть общей системы моделирования.
- •2.5.Входные и выходные данные.
- •Международный тест в квадратной области. Постановка задачи
- •Обсуждение результатов
- •Вычисление числа Нуссельта
- •2.8. Заключение.
2.5.Входные и выходные данные.
Так как наша программа реализует один из этапов метода расщепления, то ей на вход подаются результаты расчета на предыдущем этапе. Эти данные имеют вид двумерного массива температуры и массива в котором хранятся текущие координаты фронта кристаллизации. Наша программа производит расчет этих данных на временном отрезке (j+3/8, j+5/8) и передает на вход подсистемы, реализующей расчет следующего этапа расщепления.
Контроль сходимости итерационного процесса.
Как уже отмечалось выше, для сходимости итерационного процесса необходимо хорошее начальное приближение для скорости роста кристалла, что в нашем случае достигается малым значением шага по времени. Однако может возникнуть ситуация, когда итерационный процесс начнет расходиться, т.е. станет бесконечным. Чтобы избежать зацикливания программы, необходимо ограничить число итераций в процессе. В нашем случае максимальное число итераций равно 30.
Методика тестирования программы.
Для тестирования итерационного процесса достаточно организовать итерационный процесс для одномерного случая. Надо протестировать скорость сходимости итерационного процесса и итоговые результаты его работы.
Была написана одномерная тестовая программа, практически являющаяся аналогом основной программы. В основной программе организован счет итерационных процессов по оси r, в тестовой задаче этого можно не делать.
Результатом работы тестовой программы является текстовый файл, в который выводятся результаты расчетов.
Фрагмент этого файла приведен ниже.
*
JZAPIS= 2 TOB= .0000250 TSUM= .0015000
FI= .30011 VR= 4.40683
V1= -2.09905 V2= -14.69332
TRES(KFP1)= .3030D-01 TF= -.7363D-05
TCR(KF)= -.1200D+00
ПОЛЕ TRES В РАСПЛАВЕ
.999850 .939379 .878827 .818237 .757633 .697024
.636414 .575803 .515192 .454581 .393970 .333360
.272749 .212137 .151526 .090913 .030300
ПОЛЕ TCR В КРИСТАЛЛЕ
-.119984 -.359937 -.599891 -.839846 -1.079802 -1.319758
-1.559716 -1.799677 -2.039654 -2.279675 -2.519807 -2.760188
-3.001047
5 .4407D+01 .1819D-08 .1000D-05
5 .4406D+01 .5684D-08 .1000D-05
3 .4406D+01 .1834D-08 .1000D-05
5 .4406D+01 .5697D-08 .1000D-05
5 .4406D+01 .1845D-08 .1000D-05
4 .4406D+01 .5707D-08 .1000D-05
5 .4405D+01 .1854D-08 .1000D-05
5 .4405D+01 .5714D-08 .1000D-05
3 .4405D+01 .1861D-08 .1000D-05
5 .4405D+01 .5720D-08 .1000D-05
*
JZAPIS= 3 TOB= .0000375 TSUM= .0022500
FI= .30017 VR= 4.40475
V1= -2.09807 V2= -14.68648
TRES(KFP1)= .3030D-01 TF= -.7361D-05
TCR(KF)= -.1200D+00
ПОЛЕ TRES В РАСПЛАВЕ
.999772 .939343 .878823 .818252 .757656 .697049
.636438 .575825 .515212 .454599 .393986 .333373
.272759 .212145 .151531 .090916 .030300
ПОЛЕ TCR В КРИСТАЛЛЕ
-.119973 -.359905 -.599837 -.839770 -1.079704 -1.319641
-1.559583 -1.799542 -2.039541 -2.279628 -2.519895 -2.760482
-3.001598
5 .4405D+01 .1866D-08 .1000D-05
5 .4404D+01 .5725D-08 .1000D-05
5 .4404D+01 .1870D-08 .1000D-05
4 .4404D+01 .5728D-08 .1000D-05
5 .4404D+01 .1873D-08 .1000D-05
5 .4403D+01 .5731D-08 .1000D-05
5 .4403D+01 .1875D-08 .1000D-05
5 .4403D+01 .5732D-08 .1000D-05
5 .4403D+01 .1877D-08 .1000D-05
5 .4403D+01 .5733D-08 .1000D-05
Производится вывод всей интересующей нас информации о системе: температурные поля, время, скорость роста кристалла. Наибольший интерес для нас представляет четыре последних столбика, в которых указаны количество потребовавшихся итераций, положение фронта кристаллизации , значение скорости роста и изменение скорости роста за итерацию соответственно.
Как мы видим, для получения интересующей нас точности вычислений нам потребовалось 3-5 итераций.
Так же важен вопрос о правильности самого алгоритма. Рассмотрим метод, позволяющий нам проверить правильность созданного нами итерационного процесса.
Поскольку наша задача представляет собой часть более общей задачи, и ее промежуточные результаты в силу специфики метода расщепления не имеют никакого физического значения, нам надо протестировать всю систему целиком, причем наша программа должна работать как часть системы.
Большую проблему составляет тот факт, что у системы уравнений Навье-Стокса, которую решает общая система моделирования, не существует аналитического решения и ее решение существует только в численном виде. То есть у нас нет образца для сравнения правильности полученных результатов. В настоящее время в мире фактическим стандартом является Международный Тест в Квадратной области. Чтобы доказать свою состоятельность система должна пройти этот тест ( что является необходимым но не достаточным условием правильности результатов).