Смекни!
smekni.com

Визуализация инженерных и научных расчетов (стр. 4 из 12)

Полный список всех подпрограмм и команд, им соответствующих:

Подпрограмма Команда
Помощь
Stat() status
Help() help
Анимация
Animat() anim
Виды отображения
PlainX() plainx
PlainY() plainy
Plain() plain3d
Visu() visual
Служебные
Paus() pause
ChangeDelay() delay
ChangeK() k
- newfile
- exit

Команды newfileи exit не имеют своих подпрограмм – они выполняются оператором goton.

Разберем подпрограммы по видам:

1. Подпрограммы помощи: Help() и Stat(): в реализации этих подпрограмм нет ничего сложного – они просто выводят информацию с помощью оператора write.

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

APIAVfavUpdate, потом с помощью пустого цикла идет задержка. Пустой цикл просто перебирает числа от 1 до значения переменной delay*106. Это повторяется циклически для всех необходимых значений k.

3. Подпрограммы вида отображения: Visu(), Plain(), PlainX, PlainY(): в них сначала происходит проверка на текущий тип отображения. Если он не совпадает с тем, который выбран сейчас, то производится подготовка оболочки AV (масштабы шкал, их названия, тип отображения). Потом заполняется необходимый массив и вызывается favUpdate.

4. Служебные подпрограммы: ChangeK(): изменяет текущий шаг моделирования (переменная k), затем заполняет все массивы новой информацией, после чего вызывает favUpdate. ChangeDelay(): изменяет значение переменной delay, которая влияет на время задержки при анимации, а также на время задержки при исполнении команды pause. Paus(): подпрограмма сделана специально для скриптового режима. Она обеспечивает задержку. Состоит из пустого вложенного цикла.

Таким образом мы разобрали структуру и принципы работы программы console.exe. Приступим теперь к ее описанию.

1.5 Описание работы программы визуализации

В этом подразделе будут рассмотрены следующие вопросы:

· Терминология программы

· Формат файла со служебной информацией (pre-файла).

· Команды программы

· Скриптовый режим программы

· Запуска программы.

Терминология программы.

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

· k – шаг моделирования. Т.е. если у вас прибор промоделирован в нескольких режимах (например, при разных потенциалах на контактах полупроводника), то число k отражает номер этого режима.

· pre-файл – файл со служебной информацией (например, размерности массива)

· скрипт – последовательность команд (сценарий), записанных в текстовый файл, которые программа может интерпретировать.

· i – переменная в трехмерном массиве TDMas. Ее аналог – координата y

· j – переменная в трехмерном массиве TDMas. Ее аналог – координата x.

· Формат данных – формат по которому записываются данные в файл.

Формат pre-файла.

Pre-файл (от preset – предварительные установки)– это файл с установками, необходимыми для работы программы, а также с оформлением шкал.

Минимальная длина этого файла в строках – три, максимальная не ограничена, но читаться будут только первые восемь. Итак построчно:

1. Максимальное значение k. Формат: I2 (integer, две цифры)

2. Максимальное значение i. Формат: I2

3. Максимальное значение j. Формат: I2

Очень важно! Эти три строки обязательно должны быть в файле, иначе работа программы завершится с ошибкой. К тому же их нужно обязательно правильно и точно указать. Согласно этим параметрам формируются внутренние массивы программы и потом заполняются данными. Ошибка может повлечь за собой потерю данных или их искажение.

4. Коэффициент по оси X (j). Это позволяет отобразить данные не с теми координатами, которые предлагает AV, а с необходимыми вам. Т.е. индексы массива будут переведены, например, в микроны. По умолчанию равен 1 (т.е. на шкале отображаются индексы массива). Формат: E4.2 (т.е. вещественный, две цифры после запятой. Например, 0.50)

5. Коэффициент по оси Y (i). По умолчанию равен 1. Формат: E4.2

6. Имя оси X. Это имя отображается как имя заданной оси. Длина – не более 20 символов. По умолчанию : ‘X’.

7. Имя оси Y. Не более 20 символов. По умолчанию: ‘Y’.

8. Имя оси Z. (ось результатов). Не более 20 символов. По умолчанию: ‘Z’

Далее можно вставлять свои комментарии и пояснения. Программой они не учитываются.

Команды программы.

К сожалению язык Fortran не предоставляет достаточно мощных подпрограмм обработки строк. Поэтому все команды имеют вид не команда операнды, а просто команда. Далее, при необходимости, программа требует ввод дополнительных данных, обычно – координат, но помимо этого и различных значений. Внимание: все команды должны быть набраны в нижнем регистре.

Команды можно разделить на четыре группы:

1. Команды помощи

2. Виды отображения

3. Анимация

4. Служебные

Рассмотрим все команды (включая их дополнительный ввод) по их видам:

Команды помощи:

· help – эта команда выводит информацию о программе, ее версии и список всех доступных команд. Упоминание о ней есть в строке приглашения к вводу (Enter comand (help for comand list)>).

· status – эта команда выводит сообщение о текущих установках: максимальное и минимальное i, максимальное и минимальное j, максимальное k, текущее k, значение delay.

Виды отображения:

· visual – эта команда включает 3D-вид отображения. При запуске программы включается именно он. Она не требует дополнительного ввода.

· plain3d – эта команда включает отображение в виде растровой карты (контрастной заливки). В этом виде нельзя проводить анимацию. Не имеет дополнительного ввода.

· plainx – эта команда переключает в режим отображения одномерных массивов. Она позволяет отобразить сечение по Y. (Т.е. будет отображаться массив с изменяющейся координатой X и постоянной координатой Y). Требует ввод i.

· plainy – эта команда также переключает в режим отображения одномерных массивов. Она позволяет отобразить сечение по X. (Т.е. будет отображаться массив с изменяющейся координатой Y и постоянной координатой X). Требует ввод j.

Анимация.

· anim – эта команда позволяет провести анимацию при выбранном типе отображения (кроме контрастной заливки). При 3D –виде (команда visual) она требует только ввода начального значения k (k1) и конечного значения k (k2). При сечении по Y (команда plainx) она требует ввода координаты i, при каком значении этой переменной будет происходить анимация. При сечении по X (команда plainy) она требует ввода координаты j, при каком значении этой переменной будет происходить анимация. По окончании анимации текущее k принимает значение k2.

Служебные команды.

· k – эта команда позволяет изменить текущее значение k. При наборе k<0 k становится равным 1. При наборе k>maxk, k становится равным maxk.

· delay – эта команда позволяет изменить значение переменной delay, которая определяет задержку между кадрами анимации. Это значение нисколько не указывает на количество секунд или миллисекунд, на которые происходит задержка. При равных значениях переменной delay, более быстрые компьютеры будут давать более маленькую задержку. Начальное значение – 80.

· pause – эта команда предназначена для скриптового режима работы. Она позволяет приостановить программу. Требует дополнительного ввода количества задержек.

newfile – эта команда позволяет загрузить новые файлы. Она перебрасывает в начало работы с программой.

· exit – выход из программы.

Скриптовый режим программы.

Наличие этого режима – прямое следствие консольного интерфейса программы. Т.е. для создания такой возможности не было необходимости в дополнительных затратах.

Скрипт (сценарий) состоит из команд программы и требуемого для них дополнительного ввода. Кроме этого, первые две строки скрипта это имена pre-файла и файла данных соответственно. Приведем простой пример скрипта:

out.pre

out.txt

plainx

20

delay

50

anim

2

12

20

pause

2

exit

Его работа заключается в следующем:

· Считывается pre-файл out.pre из директории где находится программа console.

· Считывается файл данных out.txt из директории где находится программа console.

· Выполняется команда plainx (сечение по Y) с координатой i=20. Координата задается в следующей строке после команды. Любой дополнительный ввод начинается с новой строки скрипта.

· Замена стандартного значения задержки (80) на новое – 50.

· Далее выполняется анимация этого вида. После команды anim следуют три строки с ее параметрами – начальное k (2), конечное k (12) и координата i (20), по которой будет происходить сечение.

· Потом выполняется команда pause с параметром 2. Это дает двойную задержку перед выполнением следующей команды.

· Далее идет команда exit, закрывающая экземпляр AV и программу console.

Заметим, что построение командного интерпретатора позволяет после первых двух строк вставлять любые комментарии. Эти комментарии программа попытается обработать как команды, но не найдя таких команд в своем списке просто их проигнорирует. Однако очень важно помнить, что первые две строки сценария – это обязательно имена pre-файла и файла данных.

Запуск программы console.

Как видно из предыдущих подразделов программу можно запустить в двух режимах: командном и скриптовом.

· Запуск в командном режиме: при запуске в командном режиме сначала выводится список всех команд, затем запрашивается имя файла со служебной информацией (pre-файла), затем имя файла с данными (результатами расчетов).

· Запуск в скриптовом режиме: это можно осуществить только при помощи сеанса MS-DOS (Windows 95/98) или программ-оболочек с командной строкой DOS (например Far, DosNavigator, NortonCommander). Скриптовый режим обеспечивается при помощи перенаправления ввода. Т.е. в командной строке указывается имя программы, потом символ перенаправления ‘<, затем имя файла со скриптом. Пример командной строки: console.exe < in.txt. При выполнении этой команды весь ввод будет браться из файла скрипта in.txt.