## Философия ввода базовой информации.

Поле BASE.
Почти всегда рабочий файл UNEX начинается с ввода основной информации, которая управляет работой программы. Для этого предназначена команда BASE с соответствующим полем. На примере BASE будут объяснены основные принципы составления большинства команд.

    Синтаксис команды:
    BASE=BASE,<BASE>,</BASE>

Первое слово BASE - это сама команда. После "=" стоит второе слово BASE, которое указывает на формат поля. Далее через запятую идут два тега, которые указывают на начало и конец поля, несущего BASE-информацию. Поле может располагаться в любом месте файла (но ниже самой команды!) и ограничиваться начальным и конечным тегами, указанными в команде BASE, т.е. вот так:

    <BASE>
    ..........
    ..........
    </BASE>

Поле BASE содержит управляющую ходом работы программы информацию, т.е. "ключи" и их значения. Вообще говоря, ни один из ключей не является обязательным и поле BASE можно вводить не всегда. Все зависит от типа работы, которую предстоит выпольнить программе. Есть два "условно обязательных" ключа, которые должны присутствовать:

- molecules
  при проведении структурного анализа нужно вводить молекулу(ы) с помощью этого ключа.
- picfiles
  при работе с файлами изображений (например при первичной обработке в газовой электронографии), последние вводятся с помощью этого ключа.

Все остальные ключи НЕ обязательные (но часто полезные!).
Общий порядок составдения поля BASE такой: в начале строки указывается имя ключа, затем ставится пробел или символ "=" (можно комбинировать пробелы и "="), затем ставится значение ключа. Некоторые ключи требуют ввода строковых значений ("yes", "no", и др.), другие - целых чисел, третьи - чисел с плавающей точкой. Обычно ключи принимают только одно значение, но molecules и picfiles могут иметь сразу много значний. В любом случае можно указывать в одной строке много значений ключа, но использовано будет только первое, т.е. запись

    MaxIter=20 30 40

будет проинтерпретирована как запрос на максимум 20 итераций минимизации. Остальные числа будут проигнорированы. Такая форма записи иногда оказывается полезной, например, в случае временной настройки конкретного рабочего задания.
Следуя принципу максимальной автоматизации, программа требует минимальное количество инструкций в виде ключей. Если требуется "глубокое" вмешательство в работу программы, - нужно использовать дополнительные инструкции.
Иногда бывает необходимо чтобы UNEX в разных промежутках своей работы имела разные настройки. Это достигается с помощью многократного ввода необходимой управляющей информации. Вот пример части входного файла:

    BASE=BASE,<BASE1>,</BASE1>
    .......
    здесь идут рабочие команды, для которых MaxIter имеет значение 20
    .......
    BASE=BASE,<BASE2>,</BASE2>
    .......
    а здесь уже MaxIter имеет значение 30
    .......
    STOP

    <BASE1>
    ..........
    MaxIter=20
    ..........
    </BASE1>

    <BASE2>
    ..........
    MaxIter=30
    ..........
    </BASE2>

Ниже перечислен список всех ключей поля BASE.

1. molecules
   имена учавствующих молекул. Здесь указываются молекулы (их имена), которые образуют модель системы. Если молекул несколько - то меделируется смесь молекул. Можно указывать несколько строк molecules. Это удобно если нужно моделировать много молекул.

       Примеры:
       molecules mol1
       molecules=mol1
       molecules=mol1,mol2,mol3
       molecules=mol1 mol2 mol3

   Внимание: для молекулы, указанной в инструкции molecules должно существовать свое информационное поле (см. ниже).
2. picfiles
   имена графических файлов. Программа понимает формат Intel TIFF (не используйте Motorola TIFF!). Файлы должны быть 8/16-битными, не сжатыми. Задаются также как и молекулы. Внимание: для имени файла, указанного в инструкции picfiles должно существовать свое информационное поле (см. ниже).
3. jobname
   имя задания. Ни на что не влияет. Сделано для порядка, для случая серии параллельных расчетов.

       Пример: jobname myjob1

4. coolchar
   ключ для включения/выключения крутящихся символов на консоли. (1 - включено, 0 - выключено.) Иногда это полезно. По умолчанию равен нулю.
5. MaxIter
   максимальное количество допустимых итераций для минимизации функционалов методом найменьших квадратов. По умолчанию равно 20.
6. AngleUnits
   определение формата задаваемых в программе геометрических углов.
   AngleUnits=degree (углы задаются в градусах).
   AngleUnits=radian (углы задаются в радианах).
   По умолчанию углы задаются в градусах.
7. PotEUnits
   определение едениц энергии.
   PotEUnits=au - атомные еденицы.
   PotEUnits=kcal - килокалории.
   По умолчанию используются атомные еденицы.
8. Temperature
   температура ГЭ-эксперимента в кельвинах. Температура прямо влияет на результаты структурного анализа в рамках динамической модели. Значение по умолчанию - 298.15 K.
9. Nibgl
   Количество точек перегиба в сплайне, аппроксимируещем разностную кривую sM(s) при работе команды IBGL. По умолчанию равно 5. Чем короче длина кривой, с которой имеет дело команда IBGL, тем меньше должно быть это число.
10. PrintScanResults
    управление выводом информации после работы команды SEARCH. Если в поле BASE стоит PrintScanResults=no то по окончании сканирования общая таблица значений функционала (или R-факторов) выводиться в лог не будет, если PrintScanResults=yes - то будет. По умолчанию PrintScanResults=yes.
11. ShowScanInfo
    - (yes/no) показывать/не_показывать процент работы команды SEARCH и скорость. По умолчанию ShowScanInfo=yes.
12. MaxDerErr
    максимальная ошибка численного вычисления производных. По умолчанию максимальная ошибка на порядок меньше чем критическое значение производных (смотрите критерии остановки минимизации).
13. MinDerErr
    минимальная ошибка численного вычисления производных. По умолчанию на три порядка меньше чем MaxDerErr.
14. Wplot
    ширина псевдографиков (количество символов в ширину).
    Hplot
    высота псевдографиков (количество символов в высоту).
15. bgltype
    тип линии электронографического фона. Может быть spline (аппроксимация фона кубическим сплайном) или polynom (аппроксимация полиномом). По умолчанию фон аппроксимируется сплайном.
16. damp
    дамп-фактор процедуры МНК. Все добавки, получаемые решением МНК-системы уравнений умножаются на это число. Есть три варианта для damp:
    - damp=[число] (пример: damp=0.5) - постоянное значение.
    - damp=linear - дамп будет линейно увеличиваться вплоть до значения 1.0 на последней итерации минимизации.
    - damp=sigma - дамп-фактор будет увеличиваться сигмоидально до значения 1.0 на последней итерации минимизации; используется по умолчанию.
17. FurType
    способ расчета кривой радиального распределения. Может принимать три значения: old, classic и modern. По умолчанию используется classic. Подробности в разделе команды FUR.
18. std
    тип электронографического газового стандарта. Может быть std=CCl4 (если используемый газовый стандарт - тетрахлористый углерод) или std=C6H6 (если газовый стандарт - бензол). По умолчанию std=CCl4.
19. StdMaxIter
    Максимальное количество итераций в процедуре уточнения длины волны электронов по газовому стандарту. По умолчанию - 10.
20. GFsmin
    минимальное значение аргумента s для которого будет рассчитаны g-функции.
21. GFsmax
    максимальное значение аргумента s для которого будет рассчитаны g-функции.
22. GFstep
    шаг по s с которым будут вычисляться g-функции.
23. StopMaxDer
    StopDeltaMaxDer
    StopDeltaQs
    StopMaxAdd
    StopDeltaMaxAdd
    критерии останова минимизации, принимают значения чисел с плавающей точкой. См. секцию MINIMIZE.
24. MoveWedArea
    ключ, отвечающий за то, будет ли варьироваться форма и расположение областей клина во время процесса калибровки по команде WEDGE=AUTO... или WEDGE=MANUAL... Принимает значения "yes" и "no". По умолчанию - "yes".
25. FurMultR
    ключ, определяющий будет ли Фурье-кривая умножаться на r. Если FurMultR=0 - то не будет умножаться, если FurMultR=1 - то будет умножаться. По умолчанию FurMultR=1.
26. IntScanIter
    максимальное количество итераций на последней ключевой стадии процесса извлечения кривой интенсивности из дифракционной картины. По умолчанию равно 10.
27. MinOrthoParams
    Управление возможностью варьирования ортогональных параметров вместо обычных. 0-отключение (по умолчанию), 1-включение. Подробности - в разделе минимизации.
28. WriteAsymBglImg
    WriteCurveImg
    WriteWeightsImg
    Три ключа определяют, будут ли записываться файлы с изображениями асимметричного аддитивного фона, кривой интенсивности и весами точек соответственно при первичной обработке дифракционных картин по команде IMAGE=INTSCAN. 0-отключение, 1-включение. По умолчанию: WriteAsymBglImg=0, WriteCurveImg=1, WriteWeightsImg=0.
29. ImgPrintIntR
    определяет вывод полученной по команде IMAGE=INTSCAN интенсивности в зависимости от обобщенного электронографического параметра s (ImgPrintIntR=0, принято по умолчанию) или от расстояния (в миллиметрах) до центра фотопластинки (ImgPrintIntR=1). Ключ полезен при работе с дифракционными картинами кристаллических материалов для измерения расстояний от центра картины до колец.
30. ImgPrintIntCorrs
    принимает значения 1 или 0 и определяет выводить(1) или нет(0) матрицу коэффициентов корреляций между оцениваемыми точками интенсивности по команде IMAGE=INTSCAN. По умолчанию ImgPrintIntCorrs=0.
31. CpuNum
    служит для принудительного задания количества используемых UNEX процессоров. По умолчанию UNEX по возможности использует все процессоры системы. Это можно изменить, задав соответствующее число с помощью данного ключа.
32. PrintMainInertXYZ
    ключ управляет тем, будут выводится декартовые координаты молекул в системе главных осей инерции (PrintMainInertXYZ=1) или в другой произвольной системе (PrintMainInertXYZ=0) в зависимости от z-матрицы. По умолчанию PrintMainInertXYZ=0.
33. MinMethod
    С помощью этого ключа выбирается метод работы команды MINIMIZE. Может принимать значения:
    lsqgoldsec - комбинированный метод (МНК + метод золотого сечения, принят по умолчанию).
    goldsec - только метод золотого сечения.
    lsq - только МНК.
34. SrchTime
    Процессорное время работы команды SEARCH в секундах. По умолчанию SrchTime=3600, т.е. один час.

Ввод молекул.
Для каждой молекулы в файле организуется свое поле, в котором указаны индивидуальные характеристики молекулы. Теги начала и конца этого поля конструируются из имени молекулы так: <имя_молекулы>, </имя_молекулы>. Это поле может содержать в виде ключ=значение следующую информацию о молекуле:

1. formula
   брутто-формула молекулы. Например если это хлороформ и в поле BASE мы назвали его mol1, то индивидуальное поле для этой молекулы будет таким:

       <mol1>
       formula CHCl3
       </mol1>

2. amount
   Если у вас несколько молекул, то важно указывать их мольное содержание в смеси в долях еденицы с помощью ключа amount, так как по умолчанию содержание каждой молекулы равно еденице. При этом нужно помнить что суммарное содержание всех молекул не может быть больше еденицы. Содержание последней молекулы в смеси является зависимым числом! Для последней в списке molecules (в поле BASE) молекулы amount можно не указывать - его значение вычислится автоматически.
3. varx
   Если вы захотите варьировать содержание молекулы в смеси, то потребуется указать номер группы, в которой будет варьироваться соответствующий параметр. Это делается с помощью ключа varx. Будте внимательны: номер группы должен быть отличным от номеров групп структурных параметров, так как варьировать концентрации и геометрические параметры (или амплитуды) в одной группе запрещено! Всего в системе из N молекул можно варьировать N-1 концентраций, так что не указывайте всем молекулам varx параметр отличный от нуля. Пример полей системы, где моделируется равновесие двух конформеров:

       <conf1>
       formula C4O4H6
       amount 0.3
       varx 1
       </conf1>
       <conf2>
       formula C4O4H6
       amount 0.7
       </conf2>

4. sing
   Если вводится псевдоконформер, то нет смысла использовать ключи amount и varx. Но если есть необходимость задать вырожденность базовому псевдоконформеру, то нужно использовать ключ sing:

       <mol0>
         formula C4O4H6
         sing 2
       </mol0>

5. gedmodel
   используемая для этой молекулы модель газовой электронографии. По умолчанию static (статическая модель). Можно поставить dynamic, что означает динамическая модель. При этом молекулы, которые задаются в списке psconfs (см. ниже) являются "базовыми псевдоконформерами", для которых необходим ввод геометрии, амплитуд, ж-функций.
6. psconfs
   список имен "базовых псевдоконформеров" данной молекулы. Этот ключ аналогичен ключу molecules в поле BASE с тем отличием что psconfs задает молекулы с одинаковой топологией, являющиеся "псевдоконформерами" молекулы, которой принадлежит данное поле. Имеет смысл только в динамической модели газовой электронографии.
7. pcnum
   общее количество псевдоконформеров для этой молекулы в динамической модели. Это число не может быть меньше чем количество базовых псевдоконформеров. Если это число больше чем количество базовых псевдоконформеров, то будут организованы дополнительные псевдоконформеры. При этом будет проведена аппроксимация всех параметров базовых псевдоконформеров полиномами (в координатах: нежесткая_координата-параметр) и вычисление параметров добавочных псевдоконформеров по этим зависимостям. Всю информацию об этих полиномах можно найти в логах. Значения нежесткой координаты у добавочных псевдоконформеров автоматически будут выбраны так, чтобы они равноплотно располагались между базовыми псевдоконформерами. В логе это отражается таким образом:

       Init geometry of additional pseudoconformers...
       PS=> [0.00].....[1.05]..[1.57]....[2.44]....[3.14]

   Здесь в квадратных скобках указаны значения (здесь в радианах) нежесткой координаты базовых псевдоконформеров (в этом примере их пять). Точки между ними - отображения добавочных псевдоконформеров.
8. allsing
   вырожденности всех псевдоконформеров молекулы. Это способ задания вырожденности для всех (включая добавочные) псевдоконформеров. (После этого, вырожденности базовых псевдоконформеров можно менять ключем sing в полях соответствующих молекул).
9. PotCoefNum
   количество членов (включая свободный член) в потенциальной функции динамической модели данной молекулы.
10. DynRelaxPln
    количество коеффициентов в релаксационных полиномах (полиномы для интерполяции параметров базовых псевдоконформеров и вычисления по ним соответствующих параметров добавочных псевдоконформеров) динамической модели. Т.е. степень полиномов будет DynRelaxPln-1. По умолчанию DynRelaxPln=5.
11. isotopmols
    Список молекул, являющихся изотопомерами по отношению к данной молекуле. У каждой молекулы в этом списке должно быть свое поле. isotopmols в основном используется в том случае, если требуется исследовать геометрию молекулы по ее вращательным постоянным и/или вращательным постоянным ее изотопомеров. В этом случае, в поле каждого изотопомера указываются экспериментальные вращательные постоянные (ExpRotA), их ошибки, поправки, и т.д.
12. ExpRotA
    ExpRotB
    ExpRotC
    Экспериментальные вращательные постоянные (обычно для нулевого колебательного уровня, но не обязательно) этой молекулы.
13. ErrRotA
    ErrRotB
    ErrRotC
    Ошибки соответствующих экспериментальных вращательных постоянных.
14. DeRotA
    DeRotB
    DeRotC
    Поправки (B(e)-B(v)) к экспериментальным вращательным постоянным (обычно на равновесную геометрию, но не обязательно).

Ввод файлов изображений.
Ввод файлов изображений осуществляется по такой же схеме что и ввод молекул. Т.е. каждому файлу соответствует свое поле, теги которого выглядят так: <имя_файла>, </имя_файла>. Уклоняться от такой формы нельзя. В случае структурного анализа, ввод молекул и наличие поля для каждой молекулы обязательно. Но в случае ввода файлов изображений, присутствие полей этих изображений не всегда обязательно, т.к. часть информации берется из анализа самих файлов. Например при калибровке сканеров, вводимый файл изображения клина не обязан содержать свое личное поле (по крайней мере пока). Наоборот, при процедуре извлечения кривой интенсивности рассеяния из изображения дифракционной картины, такое поле желательно (или даже обязательно, иначе без него программа использует значения некоторых важных величин принятых по умолчанию), так как может содержать некоторое количество важной управляющей информации. Ниже приведены ключи имеющие смысл в поле, принадлежащем файлу изображения.

1. XResolution
   YResolution
   Разрешение изображения в файле в пикселях-на-дюйм. (X) - разрешение в ширину (поперек движения каретки сканера), (Y) - разрешение в высоту (вдоль движения каретки сканера). Вообще говоря, эта информация часто присутствует в самом TIFF-файле и программа может их использовать, поэтому эти ключи в общем случае не обязательны, но:
   1. Иногда такой информации нет в файле (это зависит от программы, в которой сохраняли TIFF-файл).
   2. Иногда присутствующая в файле информация не соответствует действительности.
      - Значения разрешений неправильные по смыслу.
      - Значения разрешений соответствуют тем числам, которые были выставлены на сканере (например 300dpi, 600dpi или др.), но реально сканер выдает немного другое значение в силу механических неточностей движения каретки, неравномерности считывающей матрицы и др.
   Собственно, калибровка сканера нужна в том числе для получения истинных значений разрешения сканера в обоих направлениях (X,Y). Причем следует иметь в виду, что отклонение от истинного разрешения может меняться от режима к режиму. Это значит, что если сканер используется в нескольких режимах (300dpi, 600dpi..), то нужно калибровать сканер во всех этих режимах! В силу всего вышесказанного, рекомендуется во всех случаях, где важно разрешение, указывать его явно с помощью ключей XResolution и YResolution.
2. Xc
   Yc
   Стартовые значения координат центра дифракционной картины в пикселях. Эти ключи используются в процессе исзвлечения кривой интенсивности рассеяния из изображения дифракционной картины.
3. fog
   Значение вуали на изображении дифракционной картины. По умолчанию равно 0.02.
4. NozToPlate
   Значение расстояния сопло-пластинка для данной дифракционной картины.
5. IntRfr
   IntRto
   Значение наименьшего и наибольшего расстояний (в миллиметрах) до центра дифракционной картины. Дифракционная картина внутри этого диапазона будет использована для извлечения кривой интенсивности.
6. IntStep
   Шаг по s, с которым будет получена кривая интенсивности из дифракционной картины.
7. IntLambda
   Значение длины волны электронов, которые образовали данную дифракционную картину. Для стандарта можно использовать принятое по умолчанию значение 0.05.
8. MinT
   MaxT
   Целые числа, означающие минимальное и максимальное значения пропускания. Эти два ключа задают интервал значений допустимых пропусканий пикселей. Пиксели, значения пропусканий которых выпадают из этого интервала, обрабатываться программой не будут. Эти ключи влияют на процесс извлечения кривой интенсивности из изображения дифракционной картины, а также на процесс получения гистограммы изображения. По умолчанию эти два ключа не работают, т.е. с изображения берется максимум возможных пикселей.
9. IntVarCentre
   IntVarSecCentre
   IntVarAsymBgl
   Это группа ключей, предназначенная для управления процессом извлечения кривых интенсивности с изображений дифракционных картин. Ключи принимают значения 1/0, что соответствует состояниям включить/выключить. Ключи соответственно обозначают варьирование: центра диф. картины, центра сектора, аддитивного несимметричного фона. По умолчанию все включено. Если IntVarCentre=0, то и центр сектора варьироваться не будет! Если поставить IntVarSecCentre=0, то центр дифракционной картины может варьироваться (если IntVarCentre не установлено в ноль), но центр сектора будет все время совпадать с центром дифракционной картины.

Ввод геометрий молекул.
В UNEX геометрию молекул принято задавать с помощью стандартных z-матриц. Для этого нужно использовать команду ZMATRIX:

    ZMATRIX=имя_молекулы,формат,тег_начала,тег_конца

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

    Пример команды:
    ZMATRIX=mol1,FREEZM,<ZMAT>,</ZMAT>

О формате FREEZM:
В z-матрице два раздела: раздел собственно z-матрицы и раздел переменных. Например:

    <ZMAT>
    Cl
    C    1  R1
    Cl   2  R1      1  A1
    Cl   2  R1      1  A1      3  A1      -1
    Cl   2  R41     1  A1      3  A1       1

      Variable:        Value:        Group:
         R1          1.7724            2
         A1        109.4712
    </ZMAT>

Элементы строки z-матрицы разделяются пробелами или запятыми. Одна и та же переменная может использоваться много раз. Строки z-матрицы в общем случае такие:

    номер атома, атом, масса, опорн_атом1, перем-ая1, оп_атом2, пер-ая2, оп_атом3, пер-ая3, тип

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

- 0 - тройка геометрических параметров - связь, валентный угол, торсионный угол. Этот тип строки используется по умолчанию, поэтому 0 указывать не обязательно.
- 1(-1) - связь, валентный угол, валентный угол. Вариантов расположения атома два, поэтому параметр знаковый: 1,-1.
- 2(-2) - связь, связь, валентный угол. +,- соответствуют конфигурации.
- 3(-3) - связь, связь, связь. Тоже +,- соответствуют конфигурации.
- 4 - связь, связь, торсионный угол.

Вторая часть z-матрицы - часть переменных - состоит в общем случае из трех колонок: имя_переменной, значение, группа. Значения длин валентных связей и валентных углов не должны быть отрицательными. Значения торсионных углов могут быть отрицательными. При этом положительное значение торсионного угла соответствует повороту против часовой стрелки если фрагмент расположен так, что вычисляемый атом ближе к наблюдателю а вицинальный атом - дальше всех. Формат значений углов (градусы или радианы) задается ключем AngleUnits в поле BASE. Группа - целое число - указывает в составе какой группы будет варьироваться данная переменная. Если число группы равно нулю или вообще отсутствует, то данный геометрический параметр варьироваться не будет. Нельзя объединять в одну группу:

- связи и углы
- связи и амплитуды
- углы и амплитуды
- концентрации и связи/углы/амплитуды
- коэффициенты потенциальной функции и связи/углы/амплитуды

В динамической модели газовой электронографии нежесткая координата (например торсионный угол) выделяется указанием группы -1. Также в динамической модели нет смысла указывать группы в полях z-матриц каждого базового псевдоконформера, достаточно указать группы для первого в списке psconfs (список в поле молекулы, имеющей динамическую модель) базового псевдоконформера.

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

    AMPLITUDES=имя_молекулы,формат,тег_начала,тег_конца

Формата два: FREEU и SHRINKU.

    Пример формата FREEU:
    <AMPLITUDES>
    ;
    ;A1  A2     Comment       U        Corr         A       G
    ;
    C2   Cl1    1.7925     0.05485     0.00      0.00000    3
    C2   Cl3    1.7925     0.05485     0.00      0.00000    3
    ..........................................................
    ..........................................................
    </AMPLITUDES>

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

    <AMPLITUDES>
    ;
    ;A1  A2     Comment       U        Corr         A       G
    ;
    C2   Cl1    1.7925     0.05485     0.00      0.00000
    C2   Cl3    1.7925     0.05485     0.00      0.00000
    ..........................................................
    ..........................................................
    </AMPLITUDES>

Если константы асимметричности нулевые, то их тоже можно не указывать, при этом номер группы может присутствовать:

    <AMPLITUDES>
    ;
    ;A1  A2     Comment       U        Corr         A       G
    ;
    C2   Cl1    1.7925     0.05485     0.01
    C2   Cl3    1.7925     0.05485     0.01                 3
    ..........................................................
    ..........................................................
    </AMPLITUDES>

Если колебательная поправка нулевая и константа асимметричности нулевая, то оба числа можно опустить:

    <AMPLITUDES>
    ;
    ;A1  A2     Comment       U        Corr         A       G
    ;
    C2   Cl1    1.7925     0.05485
    C2   Cl3    1.7925     0.05485                          3
    ..........................................................
    ..........................................................
    </AMPLITUDES>

Но если колебательна поправка нулевая а константа асимметричности НЕ нулевая, то тогда нужно явно прописывать оба числа:

    <AMPLITUDES>
    ;
    ;A1  A2     Comment       U        Corr         A       G
    ;
    C2   Cl1    1.7925     0.05485     0.00      2.00000    3
    C2   Cl3    1.7925     0.05485     0.00      2.00000
    ..........................................................
    ..........................................................
    </AMPLITUDES>

Формат SHRINKU полезен когда нужно использовать расчитанные программой shrink.exe амплитуды колебаний. Для этого достаточно просто скопировать из выходного файла shrink.exe набор амплитуд и поместить их в поле обозначенное соответствующими тегами.
Пример формата SHRINKU:

    <AMPLITUDES>
    ;    Amplitudes and corrections at 0300 K, second (harmonic)
    ;    approximation, local centrifugal distortions included;
    ;     are deviations from equilibrium distances
    ;
    ;       Atoms   Distance  Amplitude <dr(loc)> <dr(har)>      K
    ;
       1  C2   Cl1    1.7925     0.05485    0.0009    0.0000    0.00082   1
       2  C2   Cl3    1.7925     0.05485    0.0009    0.0000    0.00082   2
    .........................................................................
    .........................................................................
    </AMPLITUDES>

Здесь в каждой строке указаны: номер пары, пара атомов, расстояние между ними, амплитуда, число_не_имеющее_значение_для_нас, число_не_имеющее_значение_для_нас, колебательная поправка, номер группы. Внимание: программа shrink.exe в последнем столбике выдает целое цисло равное номеру пары атомов. Эти числа не имеют смысла номеров групп, поэтому их нужно исправлять. Также их можно просто убрать, что равносильно нулевым группам.
Оба формата задают группы амплитуд одинаковым способом - целое число в конце строки. Формат FREEU, кроме того, позволяет задавать константы асимметрии. Если по какой-либо причине номера атомов во входной таблице амплитуд не соответствуют нумерации z-матрицы (нумерация z-матрицы считается главной), то есть возможность проводить перенумерацию "на лету" с помощью команды RENUM в поле амплитуд. Например:

    RENUM=1-2,2-3

означает что атомы в таблице с номерами 1 и 2 будут автоматически перенумерованы в номера 2 и 3 соответственно. Команду RENUM лучше всего ставить перед началом таблицы (но внутри поля!), т.е. например:

    <AMPL>
    RENUM=1-2,2-3
       1  B1   C2   1.5803     0.0529    0.0010    0.0000    0.00077
       2  B1   C3   1.5803     0.0529    0.0014    0.0000    0.00039
    ................................................................
    ................................................................
    </AMPL>

В динамической модели газовой электронографии не нужно указывать группы амплитуд у всех бызовых псевдоконформеров. Достаточно указать только группы для первого в списке psconfs (поле молекулы с динамической моделью) базового псевдоконформера.

Ввод электронографических g-функций.
Можно их вводить из вне, расчитанные программой GFN, а можно расчитывать автоматически. Рекомендуется расчитывать автоматически. Вот пример автоматического расчета:

    GF=mol1,AUTO,0.0500

Последнее число (здесь 0.0500) - длина волны электронов.
Пример ввода из поля:

    GF=mol1,GFN,<GFN>,</GFN>

При этом в файле должно быть поле в пределах тегов <GFN>,</GFN>, содержащее g-функции ровно в том виде, в каком они выдаются программой GFN (см. примеры). Автоматический расчет g-функций выполняется с помощью двумерного (U & s) интерполирования кубическими сплайнами, основанного на таблицах: A.W.Ross, M.Fink and R.Hilderbrandt (1992). Эти таблицы охватывают диапазоны U=10-90 кВ и s=0-60 А. Но программа может вычислять значения g-функций выходящие за эти границы путем экстаполяций.

Ввод кривых интенсивности рассеяния электронов, sM(s).
Все кривые интенсивности и соответствующие им кривые фона, теоретические и экспериментальные кривые sM(s), разностные кривые располагаются в категориях под определенными номерами. Категории тоже нумеруются. Например, кривая 1-2 это: вторая кривая из первой категории. Самый естественный для электронографии способ разбиения кривых на категори - по принципу расстояния сопло-пластинка. В каждой категории, отвечающей определенному расстоянию сопло- пластинка, может быть (и обычно бывает) несколько кривых. Однако это далеко не единственный способ разбиения кривых на группы. Можно распологать в разных категориях разные версии кривых, полученных разными способами: усреднением кривых полной интенсивности, усреднением кривых sM(s), по-разному полученные кривые из дифракционной картины и т.д.
Ввод кривых полной интенсивности осуществляется с помощью команды INT. Пример:

    INT=INT,<INT>,</INT>

Теги могут быть любыми.
Правила составления поля интенсивностей:

1. Все интенсивности начинаются словом INTi, где i - номер категории интенсивности, например номер расстояния сопло-пластинка.
2. Интенсивностей, начинающихся с INTi где i одно и то же, может быть сколько угодно.
3. Интенсивности состоят минимум из двух столбцов - s и I, где s - обобщенная электронографическая координата, I - значение интенсивности в ней. Третий столбец, не обязательный, - ошибка измерения интенсивности.

Далее все кривые (sM(s), Bgl) унаследуют те же номера и категории что были у интенсивностей из который эти кривые получены.
В одной строке с обозначением INTi можно указывать дополнительную информацию о данной интенсивности:

- Scale - значение Scale-множителя кривой sM(s) полученной из этой интенсивности, число с плавающей точкой.
- VarSc - номер группы (целое число), указывающее программе варьировать (больше нуля) или не варьировать (0) Scale кривой sM(s) полученной из этой интенсивности. Если VarSc не указано, то UNEX сама присвоит отличный от нуля номер группы для данного Scale.
- Lam - значение длины волны электронов при которой получана эта интенсивность, число с плавающей точкой, важно для работы со стандартами.
- NtoP - значение расстояния сопло-пластика, число с плавающей точкой, важно для работы со стандартами.

Вот пример поля интенсивностей, в котом задается две кривые в первой категории и по одной кривой для второй и третьей категории:

    <INT>
    INT1
     3.000000 0.854927
     3.200000 0.853378
     .................
     .................
    INT1
     3.000000 0.854927
     3.200000 0.853378
     .................
     .................
    INT2
     3.000000 0.854927
     3.200000 0.853378
     .................
     .................
    INT3
     3.000000 0.854927
     3.200000 0.853378
     .................
     .................
    </INT>

А здесь приведен пример задания значения масштабного множителя Scale для кривой и запрещение его варьирования с помощью ключа VarSc:

    <INT>
    INT1 Scale=0.85 VarSc=0
     3.000000 0.854927
     3.200000 0.853378
     .................
     .................
    </INT>

Ввод экспериментальных кривых sM(s) нужен если они были вычислены где-то вне программы. Это делается с помощью команды SMS. При этом, кривые полной интенсивности должны быть считаны до использования команды SMS. Количество точек в вводимой экспериментальной sM(s) должно совпадать с количеством точек соответствующей кривой интенсивности. Пример:

    SMS=2-1,<SMS_S>,</SMS_S>

Этой командой будет осуществлен ввод экспериментальной кривой sM(s), находящейся в пределах тегов <SMS_S> и </SMS_S>, на место первой кривой из второй категории. В кривой интенсивности 2-1 должно быть такое же количество точек, что и в вводимой кривой sM(s).

Ввод потенциалов.
В динамической модели исследуемой молекулы требуется вводить кривые потенциальной энергии. Это делается с помощью команды POTENTIAL. Обычно вводится некоторое количество точек, соответствующих энергиям базовых псевдоконформеров данной молекулы.
Формат:

    POTENTIAL=mol_name,PTL1,<POT>,</POT>

Пример поля:

    <POT>
    POTCOEFG=2-22,3-33
      0.0  -456.92874
     60.0  -456.92808
     90.0  -456.92746
    140.0  -456.92899
    180.0  -456.92958
    </POT>

Здесь: mol_name - имя молекулы, <POT>, </POT> - теги нача и конца поля, POTCOEFG - команда, работающая только в пределах этого поля, указывающая номера групп для коэффициентов потенциальной функции. В данном случае группе второго коэффициента присвоен номер 22, а третьему - 33. Если команда POTCOEFG не указана, то группы всех коэффициентов потенциальной функции будут нулевыми и эти коэффициенты варьироваться не будут. Далее идут два столбца чисел: значение нежесткой координаты базового псевдоконформера (в градусах) и энергия этого псевдоконформера в атомных еденицах. Используемые еденицы измерения углов и энергий зависят от ключей PotEUnits и AngleUnits в поле BASE.

Ввод секторной функции.
Сектор - важное устройство в электронографическом эксперименте. Он располагается по пути рассеяния электронов на малом расстоянии от фотопластинки и вращается с высокой скоростью. Это нужно для "выравнивания" слишком быстро затухающей при больших углах рассеяния интенсивности. Такой эффект достигается за счет лепестковой формы сектора: в зависимости от расстояния до центра вращения, сектор пропускает разные "порции" электронов, близко к центру вырез лепестка маленький, далеко от центра - значительно больше. Функция, описывающая угол раскрытия сектора (что соответствует т.н. "пропускающей способности") в зависимости от расстояния до центра сектора, называется секторной. Часто такая функция близка к кубической, иногда - к квадратичной. Удобно работать с так называемой приведенной секторной функцией - результатом деления полной секторной функции на r^3 (или реже r^2).
Если в электронографическом эксперименте использовался сектор, то знание секторной функции существенно улучшает качество результатов первичной обработки экспериментального материала и последующего структурного анализа, т.к. знание секторной функции дает возможность значительно более надежно отделять аддитивный фон от общей интенсивности рассеяния электронов.
Ввод секторной функции осуществляется командой SECTOR. Ее синтаксис:

    SECTOR=формат,тег_начала,тег_конца

Форматов существует два:

- TOTAL - ввод полной секторной функции.
- R3DIV - ввод приведенной (на r^3) секторной функции.

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

    SECTOR=R3DIV,<SEC>,</SEC>

    <SEC>
    15.0   1.0
    20.0   1.0
    25.0   1.0
    30.0   1.0
    35.0   1.0
    40.0   1.0
    45.0   1.0
    50.0   1.0
    55.0   1.0
    60.0   1.0
    65.0   1.0
    70.0   1.0
    </SEC>

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

    WEDGE=INPUT,<WED>,</WED>

Соответствующее поле выглядит так:

    <WED>
          0.050        0.019
          0.200        0.106
          0.330        0.188
          0.460        0.269
          0.610        0.358
          0.770        0.461
          0.920        0.549
          1.060        0.632
          1.190        0.711
          1.330        0.798
          1.480        0.888
          1.630        0.983
          1.770        1.084
          1.930        1.176
          2.070        1.260
          2.200        1.365
          2.360        1.476
    </WED>

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