Философия ввода базовой информации.
Поле 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.
- molecules
имена учавствующих молекул. Здесь указываются молекулы (их имена), которые
образуют модель системы. Если молекул несколько - то меделируется смесь молекул.
Можно указывать несколько строк molecules. Это удобно если нужно моделировать
много молекул.
Примеры:
molecules mol1
molecules=mol1
molecules=mol1,mol2,mol3
molecules=mol1 mol2 mol3
Внимание: для молекулы, указанной в инструкции molecules должно существовать
свое информационное поле (см. ниже).
- picfiles
имена графических файлов. Программа понимает формат Intel TIFF (не используйте Motorola TIFF!). Файлы
должны быть 8/16-битными, не сжатыми. Задаются также как и молекулы.
Внимание: для имени файла, указанного в инструкции picfiles должно существовать
свое информационное поле (см. ниже).
- jobname
имя задания. Ни на что не влияет. Сделано для порядка, для случая серии
параллельных расчетов. Пример: jobname myjob1
- coolchar
ключ для включения/выключения крутящихся символов на консоли.
(1 - включено, 0 - выключено.) Иногда это полезно. По умолчанию равен нулю.
- MaxIter
максимальное количество допустимых итераций для минимизации
функционалов методом найменьших квадратов. По умолчанию равно 20.
- AngleUnits
определение формата задаваемых в программе геометрических углов.
AngleUnits=degree (углы задаются в градусах).
AngleUnits=radian (углы задаются в радианах).
По умолчанию углы задаются в градусах.
- PotEUnits
определение едениц энергии.
PotEUnits=au - атомные еденицы.
PotEUnits=kcal - килокалории.
По умолчанию используются атомные еденицы.
-
Temperature
температура ГЭ-эксперимента в кельвинах. Температура прямо влияет на
результаты структурного анализа в рамках динамической модели.
Значение по умолчанию - 298.15 K.
- Nibgl
Количество точек перегиба в сплайне, аппроксимируещем разностную кривую sM(s)
при работе команды IBGL. По умолчанию равно 5. Чем короче длина кривой, с
которой имеет дело команда IBGL, тем меньше должно быть это число.
- PrintScanResults
управление выводом информации после работы команды SEARCH.
Если в поле BASE стоит PrintScanResults=no то по окончании сканирования общая таблица
значений функционала (или R-факторов) выводиться в лог не будет, если
PrintScanResults=yes - то будет. По умолчанию PrintScanResults=yes.
- ShowScanInfo
- (yes/no) показывать/не_показывать процент работы команды SEARCH и
скорость. По умолчанию ShowScanInfo=yes.
- MaxDerErr
максимальная ошибка численного вычисления производных. По умолчанию
максимальная ошибка на порядок меньше чем критическое значение производных
(смотрите критерии остановки минимизации).
- MinDerErr
минимальная ошибка численного вычисления производных. По умолчанию на три
порядка меньше чем MaxDerErr.
- Wplot
ширина псевдографиков (количество символов в ширину).
Hplot
высота псевдографиков (количество символов в высоту).
- bgltype
тип линии электронографического фона. Может быть spline (аппроксимация фона
кубическим сплайном) или polynom (аппроксимация полиномом). По умолчанию фон
аппроксимируется сплайном.
- damp
дамп-фактор процедуры МНК. Все добавки, получаемые решением МНК-системы
уравнений умножаются на это число. Есть три варианта для damp:
- damp=[число] (пример: damp=0.5) - постоянное значение.
- damp=linear - дамп будет линейно увеличиваться вплоть до значения 1.0 на последней итерации минимизации.
- damp=sigma - дамп-фактор будет увеличиваться сигмоидально до значения 1.0 на последней итерации минимизации; используется по умолчанию.
- FurType
способ расчета кривой радиального распределения. Может принимать три значения:
old, classic и modern. По умолчанию используется classic.
Подробности в разделе команды FUR.
- std
тип электронографического газового стандарта. Может быть std=CCl4 (если
используемый газовый стандарт - тетрахлористый углерод) или std=C6H6 (если
газовый стандарт - бензол). По умолчанию std=CCl4.
- StdMaxIter
Максимальное количество итераций в процедуре уточнения длины волны электронов
по газовому стандарту. По умолчанию - 10.
- GFsmin
минимальное значение аргумента s для которого будет рассчитаны g-функции.
- GFsmax
максимальное значение аргумента s для которого будет рассчитаны g-функции.
- GFstep
шаг по s с которым будут вычисляться g-функции.
-
StopMaxDer
StopDeltaMaxDer
StopDeltaQs
StopMaxAdd
StopDeltaMaxAdd
критерии останова минимизации, принимают значения чисел с плавающей точкой.
См. секцию MINIMIZE.
-
MoveWedArea
ключ, отвечающий за то, будет ли варьироваться форма и расположение областей
клина во время процесса калибровки по команде WEDGE=AUTO... или WEDGE=MANUAL...
Принимает значения "yes" и "no". По умолчанию - "yes".
- FurMultR
ключ, определяющий будет ли Фурье-кривая умножаться на r. Если FurMultR=0 - то не
будет умножаться, если FurMultR=1 - то будет умножаться. По умолчанию FurMultR=1.
- FurRfrom
FurRto
минимальное и максимальное значание r, для которых будет вычислена кривая радиального распределения.
- IntScanIter
максимальное количество итераций на последней ключевой стадии процесса извлечения
кривой интенсивности из дифракционной картины. По умолчанию равно 50.
- MinOrthoParams
Управление возможностью варьирования ортогональных параметров вместо обычных.
0-отключение (по умолчанию), 1-включение. Подробности - в разделе минимизации.
- WriteAsymBglImg
WriteCurveImg
WriteWeightsImg
Три ключа определяют, будут ли записываться файлы с изображениями асимметричного
аддитивного фона, кривой интенсивности и весами точек соответственно при первичной обработке
дифракционных картин по команде IMAGE=INTSCAN. 0-отключение, 1-включение.
По умолчанию: WriteAsymBglImg=0, WriteCurveImg=1, WriteWeightsImg=0.
- ImgPrintIntR
определяет вывод полученной по команде IMAGE=INTSCAN интенсивности в
зависимости от обобщенного электронографического параметра s (ImgPrintIntR=0,
принято по умолчанию) или от расстояния (в миллиметрах) до центра
фотопластинки (ImgPrintIntR=1). Ключ полезен при работе с дифракционными
картинами кристаллических материалов для измерения расстояний от центра
картины до колец.
-
ImgPrintIntCorrs
ImgPrintAllCorrs
принимает значения 1 или 0 и определяет выводить(1) или нет(0) матрицу
коэффициентов корреляций между оцениваемыми точками интенсивности по команде
IMAGE=INTSCAN. По умолчанию ImgPrintIntCorrs=0.
- CpuNum
служит для принудительного задания количества используемых UNEX процессоров.
По умолчанию UNEX по возможности использует все процессоры системы. Это
можно изменить, задав соответствующее число с помощью данного ключа.
- PrintMainInertXYZ
ключ управляет тем, будут выводится декартовые координаты молекул в системе
главных осей инерции (PrintMainInertXYZ=1) или в другой произвольной системе
(PrintMainInertXYZ=0) в зависимости от z-матрицы.
По умолчанию PrintMainInertXYZ=0.
- MinMethod
С помощью этого ключа выбирается метод работы команды MINIMIZE. Может принимать
значения:
lsqgoldsec - комбинированный метод (МНК + метод золотого сечения, принят по умолчанию).
goldsec - только метод золотого сечения.
lsq - только МНК.
- SrchTime
Процессорное время работы команды SEARCH в секундах. По умолчанию
SrchTime=3600, т.е. один час.
- IntScanRobNum
число, равное по умолчанию 4.685, контролирующее процесс отбрасывания грубых
промахов во время проведения команды IMAGE=INTSCAN.
- MinRobMaxIter
Максимальное количество итериций Robust-минимизации. По умолчанию равно 10.
-
ImgIntVecNorm
ImgCenVecNorm
ImgBglVecNorm
ImgSecVecNorm
Критические значения длин векторов смещений групп параметров при первичной обработке.
- FurDamp
Коэффициент в экспоненциальной функции, на которую умножаются кривые sM(s) перед
Фурье-преобразованием. По умолчанию вычисляется из соотношения exp(-FurDamp*Smax*Smax) = 0.1.
- FurDivGf
Ключ, который включает/выключает (1/0) деление кривых sM(s) на g-функцию терма с максимальным вкладом
перед Фурье-преобразованием. По умолчанию FurDivGf=1.
Ввод молекул.
Для каждой молекулы в файле организуется свое поле, в котором указаны
индивидуальные характеристики молекулы. Теги начала и конца этого поля
конструируются из имени молекулы так: <имя_молекулы>, </имя_молекулы>. Это поле
может содержать в виде ключ=значение следующую информацию о молекуле:
-
formula
брутто-формула молекулы. Например если это хлороформ и в поле BASE
мы назвали его mol1, то индивидуальное поле для этой молекулы будет таким:
<mol1>
formula CHCl3
</mol1>
-
amount
Если у вас несколько молекул, то важно указывать их мольное
содержание в смеси в долях еденицы с помощью ключа amount, так как по
умолчанию содержание каждой молекулы равно еденице. При этом нужно помнить
что суммарное содержание всех молекул не может быть больше еденицы. Содержание
последней молекулы в смеси является зависимым числом! Для последней в
списке molecules (в поле BASE) молекулы amount можно не указывать - его
значение вычислится автоматически.
-
varx
Если вы захотите варьировать содержание молекулы в смеси, то потребуется
указать номер группы, в которой будет варьироваться соответствующий параметр.
Это делается с помощью ключа varx. Будте внимательны: номер группы должен быть
отличным от номеров групп структурных параметров, так как варьировать
концентрации и геометрические параметры (или амплитуды) в одной группе
запрещено! Всего в системе из N молекул можно варьировать N-1 концентраций,
так что не указывайте всем молекулам varx параметр отличный от нуля.
Пример полей системы, где моделируется равновесие двух конформеров:
<conf1>
formula C4O4H6
amount 0.3
varx 1
</conf1>
<conf2>
formula C4O4H6
amount 0.7
</conf2>
- sing
Если вводится псевдоконформер, то нет смысла
использовать ключи amount и varx. Но если есть необходимость задать
вырожденность базовому псевдоконформеру, то нужно использовать ключ sing:
<mol0>
formula C4O4H6
sing 2
</mol0>
- gedmodel
используемая для этой молекулы модель газовой электронографии. По умолчанию
static (статическая модель). Можно поставить dynamic, что означает динамическая
модель. При этом молекулы, которые задаются в списке psconfs (см. ниже) являются
"базовыми псевдоконформерами", для которых необходим ввод геометрии, амплитуд, ж-функций.
- psconfs
список имен "базовых псевдоконформеров" данной молекулы. Этот ключ аналогичен
ключу molecules в поле BASE с тем отличием что psconfs задает молекулы с одинаковой
топологией, являющиеся "псевдоконформерами" молекулы, которой принадлежит данное поле.
Имеет смысл только в динамической модели газовой электронографии.
- pcnum
общее количество псевдоконформеров для этой молекулы в динамической модели.
Это число не может быть меньше чем количество базовых псевдоконформеров. Если
это число больше чем количество базовых псевдоконформеров, то будут
организованы дополнительные псевдоконформеры. При этом будет проведена
аппроксимация всех параметров базовых псевдоконформеров полиномами (в
координатах: нежесткая_координата-параметр) и вычисление параметров добавочных
псевдоконформеров по этим зависимостям. Всю информацию об этих полиномах можно
найти в логах. Значения нежесткой координаты у добавочных псевдоконформеров
автоматически будут выбраны так, чтобы они равноплотно располагались между
базовыми псевдоконформерами. В логе это отражается таким образом:
Init geometry of additional pseudoconformers...
PS=> [0.00].....[1.05]..[1.57]....[2.44]....[3.14]
Здесь в квадратных скобках указаны значения (здесь в радианах) нежесткой
координаты базовых псевдоконформеров (в этом примере их пять). Точки между
ними - отображения добавочных псевдоконформеров. Внимание: если используются
добавочные псевдоконформеры, то всегда нужно контролировать плотность их распределения
на потенциальной кривой.
- allsing
вырожденности всех псевдоконформеров молекулы. Это способ задания вырожденности
для всех (включая добавочные) псевдоконформеров. (После этого, вырожденности
базовых псевдоконформеров можно менять ключем sing в полях соответствующих
молекул).
- PotCoefNum
количество членов (включая свободный член) в потенциальной функции
динамической модели данной молекулы.
- DynRelaxPln
количество коеффициентов в релаксационных полиномах (полиномы для интерполяции
параметров базовых псевдоконформеров и вычисления по ним соответствующих
параметров добавочных псевдоконформеров) динамической модели. Т.е. степень
полиномов будет DynRelaxPln-1. По умолчанию DynRelaxPln=5.
-
isotopmols
Список молекул, являющихся изотопомерами по отношению к данной молекуле. У каждой
молекулы в этом списке должно быть свое поле. isotopmols в основном используется
в том случае, если требуется исследовать геометрию молекулы по ее вращательным
постоянным и/или вращательным постоянным ее изотопомеров. В этом случае, в поле
каждого изотопомера указываются экспериментальные вращательные постоянные (ExpRotA),
их ошибки, поправки, и т.д.
-
ExpRotA
ExpRotB
ExpRotC
Экспериментальные вращательные постоянные (обычно для нулевого колебательного
уровня, но не обязательно) этой молекулы.
-
ErrRotA
ErrRotB
ErrRotC
Ошибки соответствующих экспериментальных вращательных постоянных.
-
DeRotA
DeRotB
DeRotC
Поправки (B(e)-B(v)) к экспериментальным вращательным постоянным (обычно на равновесную
геометрию, но не обязательно).
Ввод файлов изображений.
Ввод файлов изображений осуществляется по такой же схеме что и ввод
молекул. Т.е. каждому файлу соответствует свое поле, теги которого выглядят так:
<имя_файла>, </имя_файла>. Уклоняться от такой формы нельзя. В случае
структурного анализа, ввод молекул и наличие поля для каждой молекулы
обязательно. Но в случае ввода файлов изображений, присутствие полей этих
изображений не всегда обязательно, т.к. часть информации берется из анализа
самих файлов. Например при калибровке сканеров, вводимый файл изображения клина
не обязан содержать свое личное поле (по крайней мере пока). Наоборот, при
процедуре извлечения кривой интенсивности рассеяния из изображения
дифракционной картины, такое поле желательно (или даже обязательно, иначе без
него программа использует значения некоторых важных величин принятых по
умолчанию), так как может содержать некоторое количество важной управляющей
информации. Ниже приведены ключи имеющие смысл в поле, принадлежащем файлу
изображения.
-
XResolution
YResolution
Разрешение изображения в файле в пикселях-на-дюйм. (X) - разрешение в ширину
(поперек движения каретки сканера), (Y) - разрешение в высоту (вдоль движения
каретки сканера). Вообще говоря, эта информация часто присутствует в самом
TIFF-файле и программа может их использовать, поэтому эти ключи в общем случае
не обязательны, но:
- Иногда такой информации нет в файле (это зависит от программы, в которой
сохраняли TIFF-файл).
-
Иногда присутствующая в файле информация не соответствует действительности.
- Значения разрешений неправильные по смыслу.
- Значения разрешений соответствуют тем числам, которые были выставлены
на сканере (например 300dpi, 600dpi или др.), но реально сканер
выдает немного другое значение в силу механических неточностей движения
каретки, неравномерности считывающей матрицы и др.
Собственно, калибровка сканера нужна в том числе для получения истинных
значений разрешения сканера в обоих направлениях (X,Y). Причем следует иметь в
виду, что отклонение от истинного разрешения может меняться от режима к режиму.
Это значит, что если сканер используется в нескольких режимах (300dpi,
600dpi..), то нужно калибровать сканер во всех этих режимах!
В силу всего вышесказанного, рекомендуется во всех случаях, где важно
разрешение, указывать его явно с помощью ключей XResolution и YResolution.
-
Xc
Yc
Стартовые значения координат центра дифракционной картины в пикселях. Эти
ключи используются в процессе исзвлечения кривой интенсивности рассеяния из
изображения дифракционной картины.
-
fog
Значение вуали на изображении дифракционной картины. По умолчанию равно 0.02.
-
NozToPlate
Значение расстояния сопло-пластинка для данной дифракционной картины.
-
IntRfr
IntRto
Значение наименьшего и наибольшего расстояний (в миллиметрах) до центра
дифракционной картины. Дифракционная картина внутри этого диапазона будет
использована для извлечения кривой интенсивности.
-
IntStep
Шаг по s, с которым будет получена кривая интенсивности из дифракционной
картины.
-
IntLambda
Значение длины волны электронов, которые образовали данную дифракционную
картину. Для стандарта можно использовать принятое по умолчанию значение 0.05.
-
MinT
MaxT
Целые числа, означающие минимальное и максимальное значения пропускания. Эти
два ключа задают интервал значений допустимых пропусканий пикселей. Пиксели,
значения пропусканий которых выпадают из этого интервала, обрабатываться
программой не будут. Эти ключи влияют на процесс извлечения кривой
интенсивности из изображения дифракционной картины, а также на процесс
получения гистограммы изображения. По умолчанию эти два ключа не работают,
т.е. с изображения берется максимум возможных пикселей.
-
IntVarCentre
IntVarSecCentre
IntVarAsymBgl
Это группа ключей, предназначенная для управления процессом извлечения кривых
интенсивности с изображений дифракционных картин. Ключи принимают значения 1/0,
что соответствует состояниям включить/выключить. Ключи соответственно обозначают
варьирование: центра диф. картины, центра сектора, аддитивного несимметричного фона.
По умолчанию все включено. Если IntVarCentre=0, то
и центр сектора варьироваться не будет! Если поставить IntVarSecCentre=0, то центр
дифракционной картины может варьироваться (если IntVarCentre не установлено в ноль),
но центр сектора будет все время совпадать с центром дифракционной картины.
-
BitsPerPixel
Битность изображения. Может быть 8 или 16.
-
ImgNbglX
ImgNbglY
Количество точек аддитивного несимметричного фона вдоль осей X и Y.
-
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, тип
Смысл всех параметров очевиднен. Номер атома, массу и тип указывать необязательно всегда, а только когда это нужно.
Последний параметр указывает на тип строки:
-
0 - тройка геометрических параметров - связь, валентный угол, торсионный угол.
Этот тип строки используется по умолчанию, поэтому 0 указывать не обязательно.
-
1(-1) - связь, валентный угол, валентный угол. Вариантов расположения атома два,
поэтому параметр знаковый: 1,-1.
-
2(-2) - связь, связь, валентный угол. +,- соответствуют конфигурации.
-
3(-3) - связь, связь, связь. Тоже +,- соответствуют конфигурации.
-
4 - связь, связь, торсионный угол.
Вторая часть 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>
Теги могут быть любыми.
Правила составления поля интенсивностей:
- Все интенсивности начинаются словом INTi, где i - номер категории
интенсивности, например номер расстояния сопло-пластинка.
- Интенсивностей, начинающихся с INTi где i одно и то же, может быть сколько угодно.
- Интенсивности состоят минимум из двух столбцов - 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>
Здесь в первом столбике находятся истинные значения плотностей почернения, а
во втором - соответствующие сканерные значения плотностей почернения.
Ввод силовых полей молекул.
Ввод квадратичного силового поля в декартовых координатах из архивной части
выходного файла программы 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>