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


Поле BASE.
Почти всегда рабочий файл UNEX начинается с ввода основной информации, которая управляет работой программы. Для этого предназначена команда BASE с соответствующим полем. На примере BASE будут объяснены основные принципы составления большинства команд.
Синтаксис команды:
BASE=BASE,<BASE>,</BASE>
Первое слово BASE - это сама команда. После "=" стоит второе слово BASE, которое указывает на формат поля. Далее через запятую идут два тега, которые указывают на начало и конец поля, несущего BASE-информацию. Поле может располагаться в любом месте файла (но ниже самой команды!) и ограничиваться начальным и конечным тегами, указанными в команде BASE, т.е. вот так:
<BASE>
..........
..........
</BASE>
Поле BASE содержит управляющую ходом работы программы информацию, т.е. "ключи" и их значения. Вообще говоря, ни один из ключей не является обязательным и поле BASE можно вводить не всегда. Все зависит от типа работы, которую предстоит выпольнить программе. Есть два "условно обязательных" ключа, которые часто должны присутствовать: Все остальные ключи НЕ обязательные (но часто полезные!).
Общий порядок составдения поля 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:
  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. FurRfrom
    FurRto
    минимальное и максимальное значание r, для которых будет вычислена кривая радиального распределения.
  27. IntScanIter
    максимальное количество итераций на последней ключевой стадии процесса извлечения кривой интенсивности из дифракционной картины. По умолчанию равно 50.
  28. MinOrthoParams
    Управление возможностью варьирования ортогональных параметров вместо обычных. 0-отключение (по умолчанию), 1-включение. Подробности - в разделе минимизации.
  29. WriteAsymBglImg
    WriteCurveImg
    WriteWeightsImg
    Три ключа определяют, будут ли записываться файлы с изображениями асимметричного аддитивного фона, кривой интенсивности и весами точек соответственно при первичной обработке дифракционных картин по команде IMAGE=INTSCAN. 0-отключение, 1-включение. По умолчанию: WriteAsymBglImg=0, WriteCurveImg=1, WriteWeightsImg=0.
  30. ImgPrintIntR
    определяет вывод полученной по команде IMAGE=INTSCAN интенсивности в зависимости от обобщенного электронографического параметра s (ImgPrintIntR=0, принято по умолчанию) или от расстояния (в миллиметрах) до центра фотопластинки (ImgPrintIntR=1). Ключ полезен при работе с дифракционными картинами кристаллических материалов для измерения расстояний от центра картины до колец.
  31. ImgPrintIntCorrs
    ImgPrintAllCorrs
    принимает значения 1 или 0 и определяет выводить(1) или нет(0) матрицу коэффициентов корреляций между оцениваемыми точками интенсивности по команде IMAGE=INTSCAN. По умолчанию ImgPrintIntCorrs=0.
  32. CpuNum
    служит для принудительного задания количества используемых UNEX процессоров. По умолчанию UNEX по возможности использует все процессоры системы. Это можно изменить, задав соответствующее число с помощью данного ключа.
  33. PrintMainInertXYZ
    ключ управляет тем, будут выводится декартовые координаты молекул в системе главных осей инерции (PrintMainInertXYZ=1) или в другой произвольной системе (PrintMainInertXYZ=0) в зависимости от z-матрицы. По умолчанию PrintMainInertXYZ=0.
  34. MinMethod
    С помощью этого ключа выбирается метод работы команды MINIMIZE. Может принимать значения:
    lsqgoldsec - комбинированный метод (МНК + метод золотого сечения, принят по умолчанию).
    goldsec - только метод золотого сечения.
    lsq - только МНК.
  35. SrchTime
    Процессорное время работы команды SEARCH в секундах. По умолчанию SrchTime=3600, т.е. один час.
  36. IntScanRobNum
    число, равное по умолчанию 4.685, контролирующее процесс отбрасывания грубых промахов во время проведения команды IMAGE=INTSCAN.
  37. MinRobMaxIter
    Максимальное количество итериций Robust-минимизации. По умолчанию равно 10.
  38. ImgIntVecNorm
    ImgCenVecNorm
    ImgBglVecNorm
    ImgSecVecNorm
    Критические значения длин векторов смещений групп параметров при первичной обработке.
  39. FurDamp
    Коэффициент в экспоненциальной функции, на которую умножаются кривые sM(s) перед Фурье-преобразованием. По умолчанию вычисляется из соотношения exp(-FurDamp*Smax*Smax) = 0.1.
  40. FurDivGf
    Ключ, который включает/выключает (1/0) деление кривых sM(s) на g-функцию терма с максимальным вкладом перед Фурье-преобразованием. По умолчанию FurDivGf=1.


Ввод молекул.
Для каждой молекулы в файле организуется свое поле, в котором указаны индивидуальные характеристики молекулы. Теги начала и конца этого поля конструируются из имени молекулы так: <имя_молекулы>, </имя_молекулы>. Это поле может содержать в виде ключ=значение следующую информацию о молекуле:
  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 не установлено в ноль), но центр сектора будет все время совпадать с центром дифракционной картины.
  10. BitsPerPixel
    Битность изображения. Может быть 8 или 16.
  11. ImgNbglX
    ImgNbglY
    Количество точек аддитивного несимметричного фона вдоль осей X и Y.
  12. rXs
    rYs
    Стартовые значения координат центра вращения сектора.


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


В некоторых случаях, для выполнения поставленной задачи, в программу достаточно ввести геометрию молекулы в виде декартовых координат. Тогда используется команда MOLXYZ с синтаксисом:
MOLXYZ=mol,XYZUNEX,<xyz>,</xyz>
Соответствующее поле выглядит например так:
<xyz>
      O     15.994910      1.606242     -0.764580      0.143150
      C     12.000000      0.348018     -0.688340     -0.304925
      C     12.000000     -0.348084      0.688410     -0.304794
      O     15.994910     -1.606235      0.764563      0.143488
      C     12.000000     -2.286545     -0.368003      0.721964
      C     12.000000      2.286694      0.367851      0.721731
      O     15.994910     -0.203977     -1.652125     -0.783203
      O     15.994910      0.203837      1.652274     -0.782999
      H      1.007830     -3.166236      0.053556      1.209183
      H      1.007830     -2.575074     -1.074599     -0.056665
      H      1.007830     -1.662698     -0.874253      1.464125
      H      1.007830      3.166443     -0.053842      1.208730
      H      1.007830      2.575135      1.074582     -0.056805
      H      1.007830      1.662995      0.873990      1.464092
</xyz>
В столбиках указаны: символ атома, масса атома, компоненты декартовых координат.

Ввод среднеквадратичных амплитуд колебаний и колебательных поправок.
Для ввода амплитуд и колебательных поправок в программу существует команда 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 (поле молекулы с динамической моделью) базового псевдоконформера.

Ввод полной информации о электронографических термах молекулы.
Для некоторых задач достаточно ввести в программу только ту информацию, которой будет достаточно для вычисления кривых sM(s). Это нужно, например, если предполагается решать обратную электронографическую варьируя только параметры термов. Синтаксис команды простой:
GEDTERMS=mol,GTRM,<gtrm>,</gtrm>
Соответствующее поле выглядит например так:
<gtrm>
; 
;A1  A2      r_a          U        Corr         A       G_r    G_u 
;                                                                  
C2   Cl1    1.7625     0.05485     0.00      2.00000     3      5  
C2   Cl3    1.7625     0.05485     0.00      2.00000     3      5  
C2   Cl4    1.7625     0.05485     0.00      2.00000     3      5  
C2   Cl5    1.7625     0.05485     0.00      2.00000     3      5  
Cl1  Cl3    2.8871     0.06844     0.00      0.00000     4      6  
Cl1  Cl4    2.8871     0.06844     0.00      0.00000     4      6  
Cl1  Cl5    2.8871     0.06844     0.00      0.00000     4      6  
Cl3  Cl4    2.8871     0.06844     0.00      0.00000     4      6  
Cl3  Cl5    2.8871     0.06844     0.00      0.00000     4      6  
Cl4  Cl5    2.8871     0.06844     0.00      0.00000     4      6  
</gtrm>
В комментариях, которые находятся в этом поле, уже есть вся необходимая информация. Но перечислим содержимое поля еще раз. Слева на право в каждой строке указаны: пара атомов, r_a расстояние, среднеквадратичная амплитуда, колебательная поправка, константа ассимметрии, МНК-группа в которой будет варьироваться r_a расстояние, МНК-группа в которой будет варьироваться амплитуда.

В этом поле, также как и в полях ввода амплитуд, работает команда RENUM.

Ввод электронографических 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 можно указывать дополнительную информацию о данной интенсивности: Вот пример поля интенсивностей, в котом задается две кривые в первой категории и по одной кривой для второй и третьей категории:
<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=формат,тег_начала,тег_конца
Форматов существует два: Поле, отвечающее команде 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>
Здесь в первом столбике находятся истинные значения плотностей почернения, а во втором - соответствующие сканерные значения плотностей почернения.

Ввод силовых полей молекул.
Ввод квадратичного силового поля в декартовых координатах из архивной части выходного файла программы Gaussian выполяняется с помощью команды:
F2C=mol,ARCHGAUSSIAN,<F2C>,</F2C>
Типичный вид архивной части Gaussian:
<F2C>
 1|1|UNPC-UNK|Freq|RB3LYP|CC-pVTZ|C1Cl4|PCUSER|25-Jan-2005|1||#P B3LYP/
 CC-PVTZ FREQ=CUBIC||test||0,1|Cl|C,1,R1|Cl,2,R1,1,A1|Cl,2,R1,1,A1,3,A1
 ,-1|Cl,2,R1,1,A1,3,A1,1||R1=1.78522605|A1=109.47122063||Version=x86-Wi
 n32-G03RevB.03|State=1-A1|HF=-1879.0243149|RMSD=7.770e-009|RMSF=8.445e
 -008|Dipole=0.,0.,0.|DipoleDeriv=-0.115451,0.,0.,0.,-0.115451,0.,0.,0.
 ,-0.7922386,1.3641876,0.,0.,0.,1.3641876,0.,0.,0.,1.3641876,-0.71704,0
 .,-0.2126938,0.,-0.115451,0.,-0.2126938,0.,-0.1906496,-0.2658483,0.260
 4957,0.1063469,0.2604957,-0.5666427,-0.1841982,0.1063469,-0.1841982,-0
 .1906496,-0.2658483,-0.2604957,0.1063469,-0.2604957,-0.5666427,0.18419
 82,0.1063469,0.1841982,-0.1906496|Polar=59.4555786,0.,59.4555786,0.,0.
 ,59.4555786|PolarDeriv=-0.0725286,0.,0.0725291,-5.5331598,0.,0.,0.,0.0
 725289,-0.0000001,0.,-5.5331598,0.,-1.4644274,0.,-1.4644275,0.,0.,-16.
 830143,-2.5749254,-0.0000005,2.5749251,-1.8207471,0.0000004,0.0000002,
 -0.0000002,2.5749244,0.,0.,-1.8207465,0.0000003,-1.8207458,0.0000006,-
 1.8207472,0.0000005,-0.0000004,3.641493,15.4145349,0.,1.4048518,3.1258
 796,0.,1.8095754,0.,5.2408894,0.0000001,0.,1.7760057,0.,1.7696354,0.,0
 .4197614,5.645613,0.,4.3969353,-6.3843034,5.302557,-2.0253901,2.113474
 2,-0.5845125,-0.9047878,1.9804509,-3.9434089,12.5855649,-0.5845125,2.7
 884112,1.5671381,0.7572302,-0.5845125,1.4321671,-2.8228065,4.8892442,4
 .3969357,-6.3843035,-5.302557,-2.0253901,2.1134741,0.5845125,-0.904787
 8,-1.9804508,-3.9434089,-12.5855649,0.5845125,2.7884111,-1.5671382,0.7
 572301,0.5845125,1.432167,-2.8228065,-4.8892443,4.3969356|PG=TD [O(C1)
 ,4C3(Cl1)]|NImag=0||0.03553796,0.,0.03553796,0.,0.,0.18003713,-0.03046
 744,0.,0.,0.21769238,0.,-0.03046744,0.,0.,0.21769238,0.,0.,-0.10233441
 ......................................................................
 ......................................................................
 446,0.09892169,-0.02873208,-0.00036049,-0.00095384,0.00427507,0.000456
 44,-0.00101393,0.00771281,-0.06994754,-0.10850785,-0.01358820,-0.02353
 545,0.02294649,-0.01682833,-0.02914750,-0.00229783,0.00816961,0.005387
 11,0.00024060,0.00058056,0.00976865,0.00024060,0.02166653,0.03752752,-
 0.02112392||@
</F2C>
Аналогичный ввод кубического силового поля выполняется по команде:
F3C=mol,ARCHGAUSSIAN,<F3C>,</F3C>