Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPARK / SPEC.DOC
Скачиваний:
9
Добавлен:
16.04.2013
Размер:
604.16 Кб
Скачать

2.3.5.2. Реализация алгоритма встречной прогонки.

Сущность алгоритма встречной прогонки была рассмотрена выше. Сделано допущение, что прогоночные коэффициенты A, B, C, F уже вычислены заранее в другой процедуре. Мы последовательно вычисляем прогоночные коэффициенты сверху и снизу, затем вычисляем значение прогоночных коэффициентов в центральной точке ( в нашем случае это фронт кристаллизации ), вычисляем значение функции в центральной точке и в обратном порядке вычисляем остальные значения функции в узлах сетки.

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

2.3.5.3. Программа как часть общей системы моделирования.

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

Рассмотрим общую систему моделирования и нашу программу как часть этой системы.

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

Общую структуру работы системы мы можем рассмотреть на рисунке.

  1. Функции составных частей программы.

Программа состоит из нескольких модулей, содержимое и назначение которых мы сейчас рассмотрим.

Модуль aa.for

Процедура zcrivt

Производит расчет изменения функции в итерационном процессе за счет сдвига сетки ( после сдвига фронта кристаллизации сдвигаются и сетки в расплаве и кристалле).

Процедуры vrnew и vrnew2

Являются вариантами реализации расчета связи скорости роста кристалла с температурой на фронте кристаллизации. Являются самой важной частью нашего итерационного процесса.

Модуль bb.for

Процедура gtep

Процедура устанавливает граничные условия для расчета коэффициентов в методе сквозной прогонки.

Процедура tepl

Процедура реализует итерационный процесс, описанный нами выше.

Вначале осуществляется расчет коэффициентов уравнения прогонки A,B,C,F во всех узлах сетки. Формулы, по которым производится расчет были получены путем аппроксимации уравнения теплопроводности разностной схемой со вторым порядком точности

Затем вызывается подпрограмма сквозной прогонки и рассчитываются значения функции во всех узлах сетки.

Происходит сохранение данных в промежуточных массивах.

Затем вызывается процедура расчета скорости роста vrnew.

Производится проверка условия выхода из итерационного процесса.

Если оно выполняется, то подпрограмма заканчивает свою работу, если нет - происходит еще одна итерация.

Процедура progsk

Реализует алгоритм встречной прогонки, описанный ранее.

Модуль cc.for

Процедура datast

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

Процедуры setka0 и setkaz

Процедуры расчета сетки в зависимости от положения фронта кристаллизации.

Процедуры prin, printr

Служебные процедуры форматного вывода данных

Процедура tifi

Процедура выравнивает температурные градиеты в расплаве и кристалле - для задания различных моделей счета.

Модуль dd.for

Содержит процедуру Maina - основную процедуру программы.

Модуль com.for

Содержит объявления глобальных данных - выполняет функции header-файла в языке С.

  1. Используемые технические средства.

Наша программа, как и общая система моделирования , предъявляет очень высокие требования к быстродействию процессора. Это происходит из-за очень большого объема вычислительной работы, которую необходимо проделать системе. Например, общая система производит расчеты на персональной ЭВМ IBM PC Pentium-100 на протяжении 10 часов. То есть для нормальной работы программы нам требуется персональная ЭВМ не ниже IBM PC Pentium-100 а оптимально IBM PC Pentium-200.

Соседние файлы в папке SPARK