Молекулярная спектроскопия Молекулярная спектроскопия
Guest | Паспорт
 Rus | Eng   
Словарь  |  Помощь
Документация


 Document Title

1. Формулировка проблемы.

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

Нотация соответствует выбору определенного набора меток, относящихся к математической модели молекулы. Каждая модель накладывает ряд ограничений на значения точных квантовых чисел и меток. Эти ограничения называют правилами отбора для состояний и переходов. Правила отбора существенно зависят от того для каких физических процессов используется математическая модель. Более того, для описания молекулы в разных электронных состояниях иногда требуются разные математические модели, т.к. симметрия молекулы может быть разной в разных электронных состояниях.

2. Описание состояний и переходов

Базовыми сущностями при описании спектральных характеристик атомов и молекул являются состояния и переходы. Для идентификации этих сущностей используются квантовые числа. Набор квантовых чисел должен однозначно характеризовать состояния и переходы, присущие атомам и молекулам.

2.1 Квантовые числа (точные квантовые числа и метки)

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

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

2.2 Описание нотаций состояний

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

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

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

Причина разных представлений - выбор разных обозначений осей симметрии при описании симметрии молекулы.

Выбор разных правил при установлении порядка следования характеристик колебательного состояния.

Пример описания нотации состояния молекулы.

В основном электронном состоянии (X~1A1) молекула воды (H216O) имеет симметрию С2v [3] и характеризуется колебательными квантовыми числами v1, v2, v3 и вращательными  квантовыми числами J, ka kc. Для описания основного электронного состояния используется нотация, содержащая квантовые числа  (X~1A1, v1, v2, v3 , J, ka kc). Нотация представляет собой список, начинающийся с квантовых чисел, характеризующих электронное состояние, затем квантовых чисел, характеризующих колебательное состояние, затем квантовых чисел, характеризующих вращательное состояние и  колебательно-вращательных квантовых чисел.

Некоторая степень неопределенности существует в порядке следования мод колебаний. В большинстве публикаций принято, что в начале списка располагаются моды, преобразующиеся по представлению A1, а в конце по представлению B1. Если в списке несколько мод преобразуются по одному и тому представлению, то соответствующая часть списка начинается с моды обладающей большим значением. Авторы рекомендуют использовать принятый порядок.

В возбужденном электронном состоянии (B~(1A1)) молекула воды (H216O) имеет симметрию Dinf h и характеризуется колебательными квантовыми числами v1, v2, l2, v3, r и вращательными  квантовыми числами J, ε. Для описания возбужденного электронного состояния используется нотация, содержащая квантовые числа  (B~(1A1), v1, v2, l2, v3, r, J, ε) [4].
 

2.3 Описание нотаций переходов

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

В атомной спектроскопии

В молекулярной спектроскопии

Пример нотации характеризующей переход.
В основном электронном состоянии (X~1A1) молекула воды (32S16O2) имеет симметрию С2v [3] и характеризуется колебательными квантовыми числами v1, v2, v3 и вращательными  квантовыми числами J, ka kc. Для описания основного электронного состояния используется нотация, содержащая квантовые числа  (X~1A1, v1, v2, v3 , J, ka kc).
В возбужденном электронном состоянии (C~) молекула воды (32S16O2) имеет симметрию Сs и характеризуется колебательными квантовыми числами v1, v2, v3 и вращательными  квантовыми числами J, ka kc. Для описания возбужденного электронного состояния используется нотация, содержащая квантовые числа  (C~, v1, v2, v3 , J, ka kc).

 Полосы C~ ←→ X~  - полосы с красным оттенением [5]

3. Правила отборам

Разрешающие и запрещающие правила отбора

Примеры правил отбора в атомной и молекулярной спектроскопии

 

 

3.1 Описание правил отбора (Язык разметки MathML [6])

Для записи правил отбора используется язык разметки MathML.

3.2 Типизация высказываний правил отбора.

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

A0, A1=A'0 lo A"0,  A2=A'1 lo A"2, ....             (1)

где А0 является алгебраическим выражением вида A0= n*a1 ao m*a2 =0 или A0= n*a1 ao m*a2 > 0, ai - точное квантовое число или метка, lo есть логические операции конъюнкция (and), дизъюнкция (xor) и отрицание (not), ao - алгебраические операции (+, -, *), n и m - целые числа.

Проверка правил отбора равносильна вычислению истинности набора высказываний, структура которых ограничена (1).

3.3 Примеры записи правил отбора в MathML

4. Проверка ограничений

4.1 Декодирование MathML

4.2 Вычисление логических высказываний

4.3. Формирование XML-документа с результатами проверки правил отбора

Механизм проверки правил отбора.

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

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

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

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

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

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

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

Верификация XSAMS-документа
Предложение 1
Добавить GET-параметр VERIFICATION:
ALL - все данные в с указанием верификации
GOOD — только положительно верифицированные
BAD — только отрицательно верифицированные
NO or any other value — не производить верификацию

The script can integrate with the NodeSoftware.
Case 0.
Remove from the NodeSoftware repository.
Case 1.
In 'http://XXX/tap/sync?LANG=VSS1&FORMAT=XSAMS&QUERY=SELECT+YYY'
GET-request to add the '&VERIFICATION=ALL' parameter.
The response will have a XSAMS-document with extended XML-tags about the results of verification.
In XSAMS-document will changed the xsi:schemaLocation attribute to "http://vamdc.org/xml/xsams/0.2 https://raw.github.com/aip/NodeSoftware/master/other/verification/verification.xsd".
Case 2.
In 'http://XXX/tap/sync?LANG=VSS1&FORMAT=XSAMS&QUERY=SELECT+YYY'
GET-request will add the '&VERIFICATION=BAD' parameter.
Response will have a short-cut XSAMS-document with extended XML-tags only about the errors data.
In XSAMS-document will changed the xsi:schemaLocation attribute to "http://vamdc.org/xml/xsams/0.2 https://raw.github.com/aip/NodeSoftware/master/other/verification/verification.xsd".

Сейчас реализовано в виде:
 FORMAT=VERIFICATION&RETURN=ALL | GOOD | BAD
Предложение 2
Добавить в схему XSAMS элементы Verification и VerificationResult, чтобы не делать дополнительную схему-обертку для XML-элементов верификации.

Требования к модулю верификации
Dependencies:
 http://mathdom.sourceforge.net/
 python-lxml
 python-parsing
Запуск верификации как отдельного приложения (standalone)
python check.py test/transition3OK.IN.xml test/transition3OK.OUT.xml
Read from test/transition3OK.IN.xml
Write to test/transition3OK.OUT.xml
WARNING! xsi:schemaLocation="http://vamdc.org/xml/xsams/0.3 ../verification.xsd"

Запуск верификации через API
ver = Verification("test/moleculeN2O.IN.xml") #создание объекта класса Verification
tree = ver.run() #запуск процесса верификации и возврат измененного lxml.etree.ElementTree

# дополнительно см. NodeSoftware/other/verificaton/test/testVerification.py, например:
xml = ver.getXML() # получение строкового представления полученного xml
printRules(ver.rules) # вывод в STDOUT всех правил в Python-синтаксисе

Правила верификации
Правила верификации можно добавлять, удалять, редактировать.
Правила верификации накладываются на квантовые числа, поэтому они расположены в файлах соответствующих наборам квантовых чисел предлагаемых XSAMS-схемой.
Если нужно применить правило только к определенной молекуле или её изотопомеру,  то необходимо использовать регулярные выражения для InChI. Как следствие, необходимо наличие в XSAMS-документе InChI.
Правила верификации в MathML-синтаксисе
# см. NodeSoftware/other/verificaton/xsd/rule/cases/*.xsd
В каждом файле две группы правил:
проверка состояний [название файла + StateRules]
проверка переходов [название файла + TransitionRules]
Правила определяются в виде xml-элементов в одной из групп правил.
XML-элемент правила должен иметь название в виде:
    [название файла + Rule + S|T + двухзначный порядковый номер], где
S — для проверки состояний, а  T — для проверки переходов.
Далее идёт ряд вложенных элементов: xs:annotation->xs:appinfo->rule, где элемент rule содержит описание правила в формате MathML(http://www.w3.org/Math/) и необязательный атрибут forInChIList для описания условий применения правила.  Атрибут forInChIList будет иметь значение в виде списка регулярных выражений(http://docs.python.org/library/re.html) на соответствие InChI разделенных пробелом. Например:
InChI=1S/CO/c1-2'.*' применять только для всех молекул CO;
InChI=1S/C2H2/c1-2/h1-2H'($|/i(1[HDT]?,2[HDT]?|1+0[HDT]?,2+0[HDT]?|1+1[HDT]?,2+1[HDT]?|1+2[HDT]?,2+2[HDT]?))' применять только для C2H2 группы симметрии Dinf_h (C2H2, C2D2, _13C2D2, …)
InChI=1S/CO2/c2-1-3'.*' InChI=1S/N2O/c1-2-3'.*'  применять только для всех молекул CO2 и N2O
InChI=1S/CO2/c2-1-3'($|/i1+[01]($|,2+0,3+0|,2+2,3+2]))' применять только для молекул CO2, _13CO2, C_18O2, _13C_18O2
InChI=1S/CO2/c2-1-3'($|/i1+[01]($|,2+0,3+0|,2+1,3+1|,2+2,3+2))' применять только для симметричных изотопомеров CO2 (СO2, 13C_17O2, C_18O2, …)
InChI=1S/H2O/h1H2'($|/i(1+d)?($|/h[HDT]2)) применять только для H2O группы симметрии C2v (H2O, D2O, H2_17O, …)
InChI=1S/CH4/h1H4'($|/i1+d[HDT]4)'  применять только для молекул CH4, _13CH4, CD4, CT4, …
Правила в формате MathML(http://www.w3.org/TR/MathML3/chapter4.html) начинаются с элемента math. Затем вложенный элемент apply (Function Application). В нём проверяемое отношение eq (равно), neq(не равно), … (http://www.w3.org/TR/MathML3/chapter4.html#id.4.4.3). А далее вложенный конструкции для правой и левой части отношения каждая заключённая в свой apply или просто число cn (http://www.w3.org/TR/MathML3/chapter4.html#contm.cn) или идентификатор ci (http://www.w3.org/TR/MathML3/chapter4.html#contm.ci).
Примечание.Вместо строкового литера cs необходимо использовать ci c текстом заключённым в одинарные ковычки, например <ci>'e'</ci> из-за проблем библиотеки mathdom( http://mathdom.sourceforge.net/).

Внутри apply можно использовать любые арифмитические (plus, ...), алгебраические (root, ...), логические функции(or, ...) (http://www.w3.org/TR/MathML3/chapter4.html#id.4.4.2).
Идентификатор ci содержит название квантового числа определенного в XSAMS-схеме в соответствии с правилом:
[префикс пространcтва имён  +  : + название квантового числа + [@ + название атрибута квантового числа + = + значение атрибута + ] + # + UpperStateRef | LowerStateRef + ?], где:
«префикс пространства имён + :» необходим для указания квантовых чисел молекул, для атомов он не используется (http://www.vamdc.eu/documents/standards/dataModel/cases/index.html);
«название квантового числа» присутствует всегда и совпадает с названием соответствующего xml-элемента из XSAMS-схемы;
«[@ + название атрибута квантового числа + = + значение атрибута + ]» присутствует если у соответствующего xml-элемента из XSAMS-схемы есть уточняющий атрибут с определенным значением;
«# + UpperStateRef | LowerStateRef» указывается только если правило применяется для переходов и важно, где квантовое число верхнего, а где нижнего состояния;
«?» признак того, что квантовое число может отсутствовать и это не будет считаться ошибкой при применении правила.

Примеры:
     - TotalAngularMomentum — атомное квантовое число TotalAngularMomentum;
     - Parity#UpperStateRef — атомное квантовое число Parity для верхнего состояния;
     - dcs:J#UpperStateRef — молекулярное квантовое число J из пространства имён dcs для верхнего состояния;
     - lpcs:vi[@mode=5]#LowerStateRef — молекулярное квантовое число vi cо значением атрибута mode=5 из пространства имён lpcs для нижнего состояния;
     - sphcs:S#UpperStateRef? — молекулярное квантовое число S из пространства имён sphcs для верхнего состояния может отсутствовать.



Пример файла: dcs.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://vamdc.org/xml/xsams/0.3" targetNamespace="http://vamdc.org/xml/xsams/0.3" elementFormDefault="qualified">
    <xs:include schemaLocation="../rule.xsd"/>
    <xs:annotation>
        <xs:documentation>Schema for checking the quantum numbers of closed-shell, diatomic     molecules</xs:documentation>
    </xs:annotation>
    <xs:group name="dcsStateRules">
        <xs:sequence>

        </xs:sequence>
    </xs:group>
    <xs:group name="dcsTransitionRules">
        <xs:sequence>
            <xs:element name="dcsRuleT01" type="xs:boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>
                        <rule forInChIList="InChI=1S/CO/c1-2'.*'">
                            <math xmlns="http://www.w3.org/1998/Math/MathML">
                                <apply>
                                    <eq/>
                                    <apply>
                                        <abs/>
                                        <apply>
                                            <minus/>
                                            <ci>dcs:J#UpperStateRef</ci>
                                            <ci>dcs:J#LowerStateRef</ci>
                                        </apply>
                                    </apply>
                                    <cn>1</cn>
                                </apply>
                            </math>
                        </rule>
                    </xs:appinfo>
                </xs:annotation>
            </xs:element>
            <xs:element name="dcsRuleT02" type="xs:boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>
                        <rule forInChIList="InChI=1S/CO/c1-2'.*'">
                            <math xmlns="http://www.w3.org/1998/Math/MathML">
                                <apply>
                                    <not/>
                                    <apply>
                                        <and/>
                                        <apply>
                                            <eq/>
                                            <apply>
                                                <abs/>
                                                <apply>
                                                    <minus/>
                                                    <ci>dcs:v#UpperStateRef</ci>
                                                    <ci>dcs:v#LowerStateRef</ci>
                                                </apply>
                                            </apply>
                                            <cn>0</cn>
                                        </apply>
                                        <apply>
                                            <neq/>
                                            <apply>
                                                <minus/>
                                                <ci>dcs:J#UpperStateRef</ci>
                                                <ci>dcs:J#LowerStateRef</ci>
                                            </apply>
                                            <cn>1</cn>
                                        </apply>
                                    </apply>
                                </apply>
                            </math>
                        </rule>
                    </xs:appinfo>
                </xs:annotation>
            </xs:element>
            <xs:element name="dcsRuleT03" type="xs:boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>
                        <rule forInChIList="InChI=1S/CO/c1-2'.*'">
                            <math xmlns="http://www.w3.org/1998/Math/MathML">
                                <apply>
                                    <leq/>
                                    <apply>
                                        <abs/>
                                        <apply>
                                            <minus/>
                                            <ci>dcs:v#UpperStateRef</ci>
                                            <ci>dcs:v#LowerStateRef</ci>
                                        </apply>
                                    </apply>
                                    <cn>5</cn>
                                </apply>
                            </math>
                        </rule>
                    </xs:appinfo>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:group>
</xs:schema>

Правила верификации в Python-синтаксисе
abs ( TotalAngularMomentum#UpperStateRef - TotalAngularMomentum#LowerStateRef ) == 1 or TotalAngularMomentum#UpperStateRef == TotalAngularMomentum#LowerStateRef
Parity#UpperStateRef != Parity#LowerStateRef
abs ( dcs:J#UpperStateRef - dcs:J#LowerStateRef ) == 1
not ( abs ( dcs:v#UpperStateRef - dcs:v#LowerStateRef ) == 0 and dcs:J#UpperStateRef - dcs:J#LowerStateRef != 1 )
abs ( dcs:v#UpperStateRef - dcs:v#LowerStateRef ) <= 5
abs ( lpcs:vi[@mode=4] + lpcs:vi[@mode=5] ) >= lpcs:l
lpcs:J >= lpcs:l
not ( lpcs:l == 0 and lpcs:vi[@mode=4] > 0 and lpcs:vi[@mode=5] > 0 and ( lpcs:parity? == '+' and lpcs:kronigParity != 'e' or lpcs:parity? == '-' and lpcs:kronigParity != 'f' ) )
lpcs:vibInv == 'g' and ( lpcs:vi[@mode=3] + lpcs:vi[@mode=5] ) % 2 == 0 or lpcs:vibInv == 'u' and ( lpcs:vi[@mode=3] + lpcs:vi[@mode=5] ) % 2 == 1
abs ( lpcs:J#UpperStateRef - lpcs:J#LowerStateRef ) <= 1
lpcs:kronigParity#UpperStateRef == lpcs:kronigParity#LowerStateRef and abs ( lpcs:J#UpperStateRef - lpcs:J#LowerStateRef ) == 1 or lpcs:kronigParity#UpperStateRef != lpcs:kronigParity#LowerStateRef and abs ( lpcs:J#UpperStateRef - lpcs:J#LowerStateRef ) == 0
( lpcs:vi[@mode=5]#UpperStateRef - lpcs:vi[@mode=5]#LowerStateRef ) % 2 == 1 and ( lpcs:vi[@mode=3]#UpperStateRef - lpcs:vi[@mode=3]#LowerStateRef ) % 2 == 0 or ( lpcs:vi[@mode=5]#UpperStateRef - lpcs:vi[@mode=5]#LowerStateRef ) % 2 == 0 and ( lpcs:vi[@mode=3]#UpperStateRef - lpcs:vi[@mode=3]#LowerStateRef ) % 2 == 1
not ( ltcs:l2 == 0 and ltcs:kronigParity != 'e' )
ltcs:l2 == ltcs:v2
ltcs:J >= ltcs:l2
not ( ltcs:kronigParity == 'e' and ( ltcs:J % 2 == 1 and ( ltcs:v2 + ltcs:v3 ) % 2 == 0 or ltcs:J % 2 == 0 and ( ltcs:v2 + ltcs:v3 ) % 2 == 1 ) or ltcs:kronigParity == 'f' and ( ltcs:J % 2 == 0 and ( ltcs:v2 + ltcs:v3 ) % 2 == 0 or ltcs:J % 2 == 1 and ( ltcs:v2 + ltcs:v3 ) % 2 == 1 ) )
ltcs:l2 <= ltcs:v2 and abs ( ltcs:v2 - ltcs:l2 ) % 2 == 0
abs ( ltcs:J#UpperStateRef - ltcs:J#LowerStateRef ) <= 1
ltcs:kronigParity#UpperStateRef == ltcs:kronigParity#LowerStateRef and abs ( ltcs:J#UpperStateRef - ltcs:J#LowerStateRef ) == 1 or ltcs:kronigParity#UpperStateRef != ltcs:kronigParity#LowerStateRef and abs ( ltcs:J#UpperStateRef - ltcs:J#LowerStateRef ) == 0
not ( ltcs:l2#UpperStateRef == 0 and ltcs:l2#LowerStateRef == 0 and abs ( ltcs:J#UpperStateRef - ltcs:J#LowerStateRef ) != 1 )
( abs ( ltcs:v2#UpperStateRef - ltcs:v2#LowerStateRef ) + abs ( ltcs:v3#UpperStateRef - ltcs:v3#LowerStateRef ) ) % 2 == 1
abs ( ltcs:v1#UpperStateRef - ltcs:v1#LowerStateRef ) <= 10
abs ( ltcs:v2#UpperStateRef - ltcs:v2#LowerStateRef ) <= 20
abs ( ltcs:v3#UpperStateRef - ltcs:v3#LowerStateRef ) <= 10
abs ( ltcs:l2#UpperStateRef - ltcs:l2#LowerStateRef ) <= 3
nltcs:Ka + nltcs:Kc == nltcs:J or nltcs:Ka + nltcs:Kc == nltcs:J + 1
abs ( nltcs:J#UpperStateRef - nltcs:J#LowerStateRef ) == 1 or nltcs:J#UpperStateRef == nltcs:J#LowerStateRef
abs ( nltcs:Kc#UpperStateRef - nltcs:Kc#LowerStateRef ) % 2 == 1
( nltcs:v3#UpperStateRef + nltcs:v3#LowerStateRef + nltcs:Ka#UpperStateRef + nltcs:Ka#LowerStateRef ) % 2 == 1
abs ( sphcs:J#UpperStateRef - sphcs:J#LowerStateRef ) <= 1
not ( ( sphcs:J#UpperStateRef == 0 or sphcs:J#LowerStateRef == 0 ) and abs ( sphcs:J#UpperStateRef - sphcs:J#LowerStateRef ) != 1 )
sphcs:S#UpperStateRef? == 'A1' and sphcs:S#LowerStateRef? != 'A2' or sphcs:S#UpperStateRef? == 'A2' and sphcs:S#LowerStateRef? != 'A1' or sphcs:S#UpperStateRef? == 'E' and sphcs:S#LowerStateRef? != 'E' or sphcs:S#UpperStateRef? == 'F1' and sphcs:S#LowerStateRef? != 'F2' or sphcs:S#UpperStateRef? == 'F2' and sphcs:S#LowerStateRef? != 'F1'
 

5. Описание результатов проверки правил отбора

5.1 XML-схема для представления результатов проверки правил отбора

5.2 XML-документ с результатами проверки правил отбора

5.3 Примеры документов для молекул CO2 и H2O

6. Заключение

Section three content.

Appendix A: Примеры нотаций квантовых чисел

Insert appendix A here.

Appendix B: Примеры правил отбора

Insert appendix B here.

Appendix С: XML-схема для представления результатов проверки правил отбора. Rule

References

1. Case-By-Case reference guide

2. VAMDC-XSAMS schema doc ver.03

3. G.Herzberg, Molecular spectra and molecular structure. III. Electronic spectra and electronic structure of polyatomic molecules, New York : Van Nostrand, 1966.

4. K. WATANABE and MURRAY ZELIKOFF, Absorption Coefficients of Water Vapor in the Vacuum Ultraviolet, J. Opt. Soc. Am. 43, Issue 9, 753-754 (1953) , http://dx.doi.org/10.1364/JOSA.43.000753

5. P. Warneck, F. F. Marmo, and J. O. Sullivan, Ultraviolet Absorption of SO2: Dissociation Energies of SO2 and SO, J. Chem. Phys. 40(4), 1132 (1964); http://dx.doi.org/10.1063/1.1725260

6. MathML

1. План работ

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

Декларативная часть
1. Создать case-by-case XML-схемы нотаций квантовых чисел для 14 групп молекул (см.Case-By-Case reference guide) (март, см. Нотации)

2. Дать описание примеров написания правил отбора на языке MathML. (Новые правила, которые производитель вводит в реестр правил отбора должны быть написаны на MathML).

3. Создать XML-схему для описания ошибок в правилах отбора. (Эта схема должна быть согласована с активом VAMDC (апрель 2012))

4. Создать шаблон документа поставляемого пользователю. (апрель)

Алгоритмическая часть (Все программы работают на сервере производителя данных)

1. Программа на Pythone которая формирует код по проверке набора правил отбора для данной молекулы (состояние или переход, физический процесс, заданная нотация, для каждого электронного состояния). (март)

2. Программа формирования итогового документа с результатами проверки правил отбора. (март)

3. Интеграция кода  в программное обеспечение проекта. (апрель)

 

 

 

 

 

 

 

 

 

 



Грант INTAS 00-189