Оглавление

# Полезное

## Вывод различных данных

Во время выполнения тех или иных заданий, программа UNEX всегда выводит в лог некоторую информацию о задании и ходе его выолнения. Тем не менее, часто этой информации не достаточно и требуется указать программе вывести в лог дополнительную информацию. Для вывода текстовой информации используется команда PRINT, для вывода псевдографической информации - команда PLOT.
Команда PRINT используется для вывода любых типов информации. Общий вид команды:

    PRINT=инструкции...

Инструкции - это в общем случае задание типа выводимой информации и часто имени носителя информации. Ниже приведен список инструкций, которые следует ставить сразу после "PRINT=".

1. XYZ,mol_name
   Вывод декартовых координат молекулы mol_name в выходной файл. Если в модели учавствует много молекул, то можно вместо имени молекулы mol_name поставить "all" - тогда будут выданы координаты всех молекул по очереди.
2. VIBR,mol_name
   Вывод колебательной информации: амплитуд, колебательных поправок, констант асимметрии, номеров групп. Если mol_name="all" то вывод для всех молекул.
3. RSORTU,mol_name
   Вывод отсортированных амплитуд межъядерных колебаний в порядке возрастания межъядерного расстояния. Полезная команда для разбиения амплитуд на группы для варьирования. Таблица выводится в формате FREEU и поэтому готова для использования в функции AMPLITUDES=mol,FREEU,<AMPL>,</AMPL> Т.е. можно из лога скопировать сортированную таблицу и вставить во входной рабочий файл.
4. PARAMS,mol_name
   Вывод геометрической информации о молекуле в виде таблицы независимых геометрических параметров которые были использованы при построении входной z-матрицы. Таблица состоит из трех колонок: имя параметра, его значение (Ra для связей) и группа этого параметра. Заголовок таблицы содержит имя молекулы, ее процентное содержание (в скобках после имени).
5. UNEXZM,mol_name
   Вывод z-матрицы с текущими значениями параметров.
6. BOND,mol_name,n1,n2
   Вывод Ra, Rg значений межатомного расстояния (n1,n2 - номера атомов) в молекуле mol_name. Если была проведена минимизация, то в скобках выводится стандартное отклонение.
7. ANGLE,mol_name,n1,n2,n3
   Вывод альфа-значения угла n1-n2-n3. Если была проведена минимизация, то в скобках выводится стандартное отклонение. Значение угла и ошибки выводится в градусах или радианах в зависимости от значения ключа AngleUnits в поле BASE (по умолчанию - градусы).
8. TORSION,mol_name,n1,n2,n3,n4
   Вывод альфа-значения угла n1-n2-n3-n4. Если была проведена минимизация, то в скобках выводится стандартное отклонение. Значение угла и ошибки выводится в градусах или радианах в зависимости от значения ключа AngleUnits в поле BASE (по умолчанию - градусы).
9. POTENTIAL,mol_name
   Вывод информации о потенциальной функции молекулы mol_name.
10. INFO
    Вывод основной информации о текущих настройках программы. Это полезная команда когда нужно удостовериться что программа правильно интерпретировала все указания из поля BASE. Также, используя эту команду можно посмотреть настройки по умолчанию.
11. GF,mol_name
    Вывод g-функцй молекулы mol_name в лог.
12. FULLIAT,mol_name
    Вывод функции атомного рассеяния молекулы mol_name в лог.
13. COMPINFO
    Вывод информации об операционной системе, установленном оборудовании и математических особенностях компьютера. Определение математических особенностей выполняется по алгоритму [9].
    Мат. особенности включают в себя:
    - ibeta - разрядность, в которой представляются числа. Почти всегда рано 2, но иногда 16 или даже 10.
    - it - число знаков в основной части мантиссы в представлении чисел с плавающей точкой.
    - machep - Найменьшая степень при возведении в которую ibeta получается число, добавление которого к числу 1.0 дает число отличное от 1.0.
    - eps - число ibeta^machep которое равно точности операций с числами с плавающими точками.
    - negep - Найменьшая степень при возведении в которую ibeta получается число, вычитание которого из числа 1.0 дает число отличное от 1.0.
    - epsneg - другой способ оценки точности операций с числами с плавающей точкой. Часто это число в два раза меньше чем eps, иногда равно eps.
    - iexp - количество бит для представления экспоненты, включая знак.
    - minexp - найменьшая степень часли ibeta при котором еще не обнулена мантисса.
    - xmin - найменьшее (по модулю) используемое число с плавающей точкой.
    - maxexp - найменьшая (положительная) степень числа ibeta которая приводит к переполнению.
    - xmax - найбольшее (по модулю) используемое число с плавающей точкой.
    - irnd - целое число от 0 до 5 указывающее на способ округления чисел и способ обработки переполнения числа.
      - 2,5 - округление по IEEE стандарту. Округление суммирования: два числа в машинном представлении симмируются а результат суммирования приводится к максимально близкому к результату числу, имеющему машинное представление. Округление всех остальныех операций выполняются так же.
      - 1,4 - выполняется какое-то округление, но не по IEEE стандарту.
      - 0,3 - найхудший вариант. Результат арифметической операции получается простым усечением.
      Числа 0,1,2 также означают что если результат арифметической операции меньше xmin то число обнуляется. При числах 3,4,5 если результат операции меньше чем xmin, то его экспонета фиксируется на минимально допустимом значении, в то время как мантисса уменьшается и тем самым улучшает округление.
    - ngrg - число знаков используемых для обеспечения сохранности числа при усечении мантисс.
14. STDPARAMS
    Вывод информации о параметрах газовых стандартов.
15. TERMS,mol_name
    Вывод таблицы термов молекулы mol_name. Выводится: пара атомов, r_a - расстояние, среднеквадратичная амплитуда, колебательная поправка, константа асимметрии. Термы отсортированы в порядке возрастания r_a.
16. INT,RINT,BGL,SMS,TSMS,DSMS,SEC,IAT
    Вывод кривых интенсивности, приведенной (деленной на секторную функцию и атомное рассеяние) интенсивности, фона, экспериментальной sM(s), теоретической sM(s), разностной кривой, секторной функции и интенсивности атомного рассеяния соответственно. Слова INT,RINT,BGL,SMS,TSMS,DSMS,SEC,IAT можно комбинировать любым образом, например: команды PRINT=INT,BGL и PRINT=BGL,INT равнозначны и выведут в файл таблицы интенсивностей и соответствующих им линий фона. Команда PRINT=SMS,TSMS,DSMS выдаст теоретическую и экспериментальную кривые sM(s), а также разностную кривую.
17. ALLGEOM,mol_name
    Вывод таблицы всех внутренних параметров молекулы mol_name.
18. FURTERMS,mol_name
    Вывод таблицы всех термов молекулы mol_name и их вкладов в дифракционную картину.
19. GRAPHTERMS,mol_name
    Расчет вкладов термов молекулы mol_name в дифракционную картину и вывод соответствующей таблицы. В зависимости от ключа FurTermDif команда может определить вырожденные термы и учесть эту информацию при расчете вкладов. Формат таблицы подходит для непосредственного графического построения термов.
20. MATRIXF2C,mol
    Команда для вывода квадратичного силового поля молекулы в форме треугольной матрицы, нарезанной полосами.
21. SHRINKF2C,mol
    Команда для вывода квадратичного силового поля молекулы в виде, удобном для ввода в программу Shrink.
22. F3CGAUSS,mol
    Команда для вывода кубического силового поля молекулы в виде, удобном для ввода в программу Shrink.
23. SYMMETRY,mol
    Команда для вывода всех элементов симметрии и точечной группы молекулы.
24. ROTCONSTS,mol
    Вывод теоретических и экспериментальных вращательных постоянных, поправок, ошибок и разниц.

Другой возможный способ вывода информации - псевдографика. Выполняется командой "PLOT=". Это полезная функция когда нужно быстро визуально оценить результаты в графической форме. Размеры псевдографической области можно контролировать с помощью ключей Wplot и Hplot в поле BASE.
Вариантов использования команды PLOT пока не много:

1. POTENTIAL,mol_name
   Вывод в графической форме потенциальной функции молекулы mol_name (в динамической модели), и начальных энергий базовых псевдоконформеров.
2. SMS
   Вывод графиков экспериментальных кривых sM(s).

## Дополнительная работа с файлами изображений

При использовании "сканерной" методики первичной обработки экспериментального электронографического материала очень важно всестороннее изучение сканера как метрологического прибора. Команда "IMAGE=" служит не только для извлечения кривых интенсивности рассеяния, но и для сравнения серий изображений, для получения гистограмм изображений.
Сравнение изображений выполнятеся командой:

    IMAGE=COMPARE,файл1,файл2,файл3....

Где файл1,файл2,файл3.... - имена файлов с изображениями, которые нужно сравнить.
Пример:

    IMAGE=COMPARE,f1.tif,f2.tif,f3.tif,f4.tif

Эта команда полезна для проверки воспроизводимости сканера. Изображение дифракционной картины без перемещения сканируется несколько раз. Затем полученные файлы сравниваются и делается вывод о том, насколько хорошо сканер воспроизводит результаты сканирования. При работе команды IMAGE=COMPARE, UNEX выдает два графических файла формата TIFF: average.tif (содержит усредненную картину) и sigma.tif (содержит картину среднеквадратичных отклонений).
Другая полезная команда для работы с изображениями:

    IMAGE=HISTOGRAM,файл1,файл2,файл3....

Эта команда обрабатывает последовательно файлы (файл1,файл2,файл3....) и выводит в лог гистограммы изображений этих файлов. При этом не важно количество и порядок задания файлов, все они будут обработаны последовательно и независимо.
Особо важно использовать эту команда для визуальной оценки качества дифракционной картины. В этом случае нужно для файлов изображений заводить свои поля и задавать в них ключи MinT и MaxT. Например:

    <f1.tif>
    MinT=7
    MaxT=180
    </f1.tif>

Тогда программа "отбросит" точки, не попадающие в интервал MinT-MaxT, оставшуюся часть изображения "растянет" для заполнения всего доступного диапазона пропусканий T и сформирует новый файл с именем transfmd.tif, который будет содержать преобразованное таким образом изображение. На этом изображении обычно более четко видны "грубые выбросы": плохие точки, грязь и т.д. Интервал MinT-MaxT выбирается на основании гистограммы: это диапазон в котором находится основная масса точек.

## Автоматическая разбивка амплитуд на группы

Выполняется командой:

    AUTOGROUP=AMPLITUDES

Перед применением этой команды уже должны быть вычислены g-функции. Используйте команду осторожно.

## Другие полезные команды

К другим полезным командам можно отнести SET, SPESR, STOP.
Команда SET занимается установкой значений параметров (геометрических) системы. В общем случае геометрия задается из z-матрицы. Переменные z-матрицы затем могут варьироваться и принимать какие-либо значения. С помощью этой команды можно вынудить программу принять нужное значения для какого либо параметра. Варианты команды для установления значений длин связей, валентных и торсионных углов, приведены ниже:

1. SET=BOND,mol_name,i,j,value
   Установление расстояния между атомами i-j молекулы mol_name в значение value. Важно, чтобы это расстояние было независимым геометрическим параметром.
2. SET=ANGLE,mol_name,i,j,k,value
   Аналогично предыдущему варианту. Помните о ключе AngleUnits в поле BASE: если все значения углов вводятся в программу в радианах (AngleUnits=radian), то в этой команде тоже!
3. SET=TORSION,mol_name,i,j,k,l,value
   Аналогично ANGLE.

Команда SPESR выполняет принудительное вычисление декартовых координат по желанию пользователя. Синтаксис:

    SPESR=mol_name

Геометрия молекулы должна быть инициализирована до этой команды. Иногда эта команда полезна в связке с командой SET, т.к. в последней только устанавливается значение какого-либо параметра без последующего вычисления декартовых координат.
Нормальное завершение программы выполняется при помощи команды STOP. Если эта команда не указана, то программа будет пытаться идти дальше по файлу в поисках команд. Если команд она не найдет, то работа завершиться. Если будут какие-либо (случайным образом попавшие) команды, то результат работы программы не определен. Поэтому для корректной остановки программы рекомендуется использовать команду STOP.