Метод CASSCF и его производные ============================== Метод **CASSCF** [Complete Active Space Self-Consisted Field] является, с одной стороны, ограниченной версией метода **MCSCF**, а с другой – расширением метода **CASCI**. В чем же состоят эти *"ограничение"* и *"расширение"*? * **CASSCF** и **MCSCF** В отличие от полноценного метода **MCSCF** метод **CASSCF** учитывает только часть конфигураций ввиду ограниченного набора орбиталей, участвующих в их генерации, который, как и в методе **CASCI**, именуется *активным пространством*. Данное ограничение позволяет выйти за пределы малых систем, для которых ещё возможно описание исходным методом, из-за чего, несомненно, область применений метода **CASSCF** существенно шире. Так как в методе **CASSCF** число учитываемых конфигураций значительно меньше, чем в **MCSCF**, то учёт `корреляции `_ (как динамической, так и статической) является значительно менее полным. Однако, как правило, большую часть вклада в статическую корреляцию вносит относительно небольшое число конфигураций, поэтому потери в полноте её учёта при переходе от **MCSCF** к **CASSCF** невелики. В случае с динамической корреляцией потери, наоборот, более серьёзные: из-за малого числа учитываемых конфигураций динамическая корреляция остаётся практически не учтённой. * **CASSCF** и **CASCI** В методе **CASSCF** все конфигурации оптимизируются одновременно с их вкладом в общую волновую функцию, что позволяет при том же количестве учитываемых конфигураций, как и в методе **CASCI**, *дополнительно* учитывать *статическую корреляцию*, сохраняя уровень учёта *динамической корреляции*. Такая процедура оптимизации значительно затратнее той, что используется в методе **CASCI**, из-за чего метод **CASSCF** применим либо для систем более скромного размера, либо для тех же систем, но с меньшим *активным пространством*, что влечёт снижение уровня учёта *динамической корреляции*. * **Итого:** Метод **CASSCF** сочетает в себе преимущества и недостатки методов **MCSCF** и **CASCI**, что делает его наиболее полезным при описании среднеразмерных систем с ярко выраженной *статической корреляцией*. Итак, в GAMESS (US) для выбора метода **CASSCF** или любого его производного необходимо: * Установить значение ``SCFTYP=MCSCF`` в группе ``$CONTRL``. * Выбрать то или иное значение параметра ``CISTEP`` в группе ``$MCSCF``. * В соответствии с ним установить необходимые значения параметров в группах ``$DET``, ``$ORMAS``, ``$GEN`` или ``$DRT``. **Рассмотрим значения параметра** ``CISTEP`` **в группе** ``$MCSCF``: Значение ``CISTEP=ALDET`` выбирает классический метод **CASSCF**. Для метода **CASSCF** доступно аналитическое вычисление градиента и гессиана. Активное пространство настраивается в группе ``$DET`` аналогично тому, как это делается для метода **CASCI**. Ниже перечислены пояснения к параметрам, которые справедливы и для **CASCI**, но в более сжатой форме: Число орбиталей, дважды заселённых во всех конфигурациях, (остовных орбиталей) задаётся параметром ``NCORE``. Число активных орбиталей задаётся параметром ``NACT``. Число активных электронов задаётся параметром ``NELS``. Параметр ``SZ`` задаёт суммарный спин электронов системы, делённый на :math:`\frac{\hbar}{2}`. То есть, он выполняет ту же функцию, что и параметр ``MULT`` в группе ``$CONTRL`` (**из которого и берётся значение по умолчанию**). Значения этих параметров связаны по формуле: ``MULT`` :math:`=2\cdot|` ``SZ`` :math:`|+1` .. important:: *Строго говоря, в* **MCSCF** *суммарный спин не обязательно должен быть одинаковым для всех конфигураций.* *В GAMESS (US)* **установленное по умолчанию** *значение* ``PURES=.TRUE.`` *в группе* ``$DET``, *исключает из расчёта* *конфигурации со спином, несоответствующим значению параметра* ``SZ``. .. image:: images/CASSCF.png :align: center :width: 800 Таким образом, задача активного пространства в методе **CASSCF** может выглядеть, например, следующим образом:: $DET NCORE=50 !50 остовных орбиталей NACT=10 !10 орбиталей в активном пространстве NELS=10 !10 электронов в активном пространстве SZ=0.0 !Суммарный спин электронов равен нулю $END Число рассчитываемых конфигураций, включая референтную, задаётся параметром ``NSTATE``, но не более ``NSTATE=100`` (**по умолчанию** ``NSTATE=1``). Точечную группу симметрии состояния системы устанавливается параметром ``GROUP``. **По умолчанию, используется точечная группа симметрии из группы** ``$DATA``. Но если в группе **$DATA** установлена точечная группа симметрии, отличная от групп :math:`C_{1}`, :math:`C_{s}`, :math:`C_{i}`, :math:`C_{2}`, :math:`C_{2v}`, :math:`C_{2h}`, :math:`D_{2}` *и* :math:`D_{2h}`, то устанавливается группа :math:`C_{1}`. Всего для данного параметра доступно 8 значений: ``GROUP=C1``, ``CS``, ``CI``, ``C2``, ``C2V``, ``C2H``, ``D2`` и ``D2H``, каждое из которых задаёт одноимённую точечную группу симметриию. `Неприводимое представление `_, соответствующее точечной группе симметрии задаётся параметром ``STSYM``. По умолчанию выбирается представление, соответствующие наибольшей симметрии (то есть, самое левое в `таблице `_). Ниже рассмотрены параметры, которые отсутствуют при настройке метода **CASCI** или же их возможности отличаются. Массив ``WSTATE`` определяет вклад каждой конфигурации в усреднённое состояние системы (**SA**), число его значений **не больше** значения параметра ``NSTATE``. По умолчанию вес первой конфигурации равен единице, а всех остальных – нулю. Градиентные **SA**-расчёты доступны только при установке дополнительного значения ``PURES=.TRUE.``. .. note:: *При установке значения* ``PURES=.FALSE.`` *к "обычным" конфигурациям могут добавляться те, что имеют другую мультиплетность,* *но для этого необходимо, чтобы значение параметра* ``NSTATE`` *было установлено большим, чем число значений массива* ``WSTATE``. *В остальных же случаях они равны*. Вес каждой конфигурации может быть определён и автоматически. Чтобы это сделать, необходимо для параметра ``IDWREF`` установить значение, равное номеру *целевой конфигурации*, относительно которой веса будут распределятся между остальными. Самый большой вес будет соответствовать *целевой конфигурации* и уменьшатся при отдалении других конфигураций от неё по энергии. В данном случае параметр ``WSTATE`` определяет только то, какие конфигурация учитываются (значения, соответствующие им, не равны нулю), а какие – нет (им соотстветствуют нулевые значения). **По умолчанию** ``IDWREF=0``, то есть данная функция отключена. .. attention:: *Так как в методе* **CASSCF** *все конфигурации равноправны, то среди них нет "основной", а значит самая низкая по энергии* *конфигурация обозначается не нулевой, а первой.* *Поэтому, чтобы выбрать конфигурацию с самой низкой энергией целевой,* *нужно установить значение* ``IDWREF=1``, *а не* ``IDWREF=0``. *Значение* ``IDWREF=0`` *является значением по умолчанию, отключающим данную функцию*. Параметр ``IROOT`` определяет, для какой конфигурации в дальнейшем будут рассчитаны градиент и прочие свойства. **По умолчанию установлено** ``IROOT=0`` – данное значение соответствует выбору усреднённого (по всем конфигурациям) состояния (**SA**). При выборе конфигурации параметром ``IROOT`` игнорируются все конфигурации, отсекаемые значением ``PURES=.TRUE.``, а также те конфигурации, для которых установлен нулевой вес. Значение ``CISTEP=ORMAS`` выбирает метод **ORMASSCF** (по аналогии с **ORMASCI**). Для метода **ORMASSCF** доступно аналитическое вычисление градиента и гессиана. Данный метод настраивается в группах ``$DET`` и ``$ORMAS``: В группе ``$DET`` осуществляется задача активного пространства аналогично тому как это делается для метода **CASSCF**. Вазбиение активного пространства на подпространства настраивается в группе ``$ORMAS``, аналогично тому как это делается для метода **ORMASCI**: Число подпространств устанавливается параметром ``NSPACE``. Число орбиталей в каждом подпространстве задаётся с помощью параметра ``MSTART``. Данный параметр задаёт массив из номеров первых орбиталей подпространств (**см. пример ниже**). Минимальное количество электронов в каждой группе задаётся в виде массива параметром ``MINE``. Максимальное количество электронов в каждой группе задаётся в виде массива параметром ``MAXE``. Задача подпространств в методе **ORMASSCF** может выглядеть, например, следующим образом:: $DET NCORE=50 !50 остовных орбиталей NACT=10 !10 орбиталей в активном пространстве NELS=8 !10 электронов в активном пространстве SZ=0.0 !Суммарный спин электронов равен нулю $END $ORMAS NSPACE=3 !Три подпространства MSTART(1)= 51, 54, 58, !Орбитали подпространств: 51–53, 54–57 и 58–60 MINE(1)= 2, 0, 0, !Количество электронов в подпространствах: MAXE(1)= 6, 4, 2, !2–6, 0–8 и 0–2 $END !Верхнаяя граница последнего: NCORE+NACT=60 Схема структуры активного пространства в примере выше выглядит следующим образом: .. image:: images/RASSCF.png :align: center :width: 800 .. attention:: *Параметры* ``NSPACE``, ``MSTART``, ``MINE`` *и* ``MAXE`` *имеют значения по умолчанию, но им* **необходима** *"ручная" настройка, так как значения по умолчанию, фактически, преобразуют метод* **ORMASSCF** *в* **CASSCF**. .. note:: *В примере выше приведён частный случай метода* **ORMASSCF** – **RASSCF**: *в нём активное пространство разбивается на 3 подпространства.* *При этом во втором подпространстве отсутствуют ограничения на число электронов.* .. important:: *Стоит отметить, что методы* **MR-CIS** *и* **MR-CISD** – *это* **не** *частные случаи метода* **ORMASSCF**. *Чем же отличается данный случай от похожего для метода* **ORMASCI**? *Рассмотрим на аналогичном примере*:: $DET NCORE=46 !46 остовных орбиталей NACT=24 !24 орбитали в активном пространстве NELS=8 !8 электронов в активном пространстве SZ=0.0 $END $ORMAS NSPACE=2 !Два подпространства MSTART(1)= 47, 51, !Орбитали подпространств: 47–50 и 51–70 MINE(1)= 6, 0, !Количество электронов в подпространствах: MAXE(1)= 8, 2, !6–8 и 0–2 $END !Верхнаяя граница последнего: NCORE+NACT=70 *В данном случае имеем два подпространства, каждое из которых содержит определённое количество конфигураций.* *При этом все эти конфигурации участвуют в формировании волновой функции системы согласно положениям метода* **MCSCF**, *то есть, на "равноправной основе" вне зависимости от соответствия конфигурации тому или иному подпространству.* *Это означает, что среди конфигураций нет "возбуждённых" (оптимизируемых в стиле* **CI**), *как в методах* **MR-CIS** *и* **MR-CISD**. *На практике это сильно ограничивает практический размер активного пространства и его подпространств, так как* **MCSCF** *намного затратнее* **CI**. *В частности, в примере выше оно абсурдно велико*. *Из-за этого данный метод не позволяет столь полно учитывать* `динамическую корреляцию `_, *как методы* **MR-CIS** *и* **MR-CISD**. *Учёт же* `статической корреляции `_, *разумеется, полнее, но он гораздо больше зависит от* *того, какие именно конфигурации входят в активное пространство, а не от их количества.* *Состав входимых в активное пространство конфигураций напрямую зависит от грамотности его разбиения на подпространства*. *В частности, метод* **RASSCF** *ввиду большего количества подпространств (три против двух) при грамотном разбиении активного пространства* *иногда позволяет достичь лучшего учёта статической корреляций при том же уровне учёта динамической (и это при тех же вычислительных затратах).* *В общем и целом,* **ORMASSCF** *невероятно гибок и прекрасно подходит для учёта статической корреляции, но он* *не приспособлен для точного учёта динамической корреляции, как, например, метод* **MR-CISD**. Значение ``CISTEP=GENCI`` выбирает метод **MCSCF** с "ручным" вводом учитываемых конфигураций (по аналогии с ``CITYP=GENCI`` для **CI**). Для данного значения доступно аналитическое вычисление градиента. Настройка данного метода производится в группах ``$GEN`` и ``$GCILST`` полностью аналогично тому как это делается для **CI**. Группа ``$GEN`` имеет то же наполнение, что и группа ``$DET``, за исключением нескольких дополнительных параметров: Параметр ``GLIST`` определяет откуда GAMESS (US) будет считывать список используемых конфигураций: * Значение ``GLIST=EXTRNL`` означает, что они будут считываться из файла на диске, полученного в ходе предыдущего расчёта. * Значение ``GLIST=INPUT`` означает, что конфигурации будут формироваться на основе прямого ввода в группе ``$GCILST``. * Значение ``GLIST=SACAS`` означает, что конфигурации будут формироваться на основе значений параметра ``IRREPS``. В последнем случае параметр ``IRREPS`` задаёт массив числовых значений, каждое из которых соответствует `неприводимому представлению `_ следующим образом: .. table:: *Соответствие неприводимых представлений и значений параметра* ``IRREPS`` :align: center +----------------+---------------------------------------------------------------------------------------------------------------------------------------+ | Точечная | ``IRREPS=`` | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | группа | ``1`` | ``2`` | ``3`` | ``4`` | ``5`` | ``6`` | ``7`` | ``8`` | | | | | | | | | | | | симметрии | | | | | | | | | +================+================+================+================+================+================+================+================+================+ | :math:`C_{1}` | | | | | | | | | | | :math:`A` | | | | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`C_{s}` | | | | | | | | | | | :math:`A'` | | | | | | | | | | | :math:`A''` | | | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`C_{i}` | | | | | | | | | | | :math:`A_{g}` | | | | | | | | | | | :math:`A_{u}` | | | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`C_{2}` | | | | | | | | | | | :math:`A` | | | | | | | | | | | :math:`B` | | | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`C_{2v}` | | | | | | | | | | | :math:`A_{1}` | | | | | | | | | | | :math:`A_{2}` | | | | | | | | | | | :math:`B_{1}` | | | | | | | | | | | :math:`B_{2}` | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`C_{2h}` | | | | | | | | | | | :math:`A_{g}` | | | | | | | | | | | :math:`B_{u}` | | | | | | | | | | | :math:`B_{g}` | | | | | | | | | | | :math:`A_{u}` | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`D_{2}` | | | | | | | | | | | :math:`A` | | | | | | | | | | | :math:`B_{1}` | | | | | | | | | | | :math:`B_{2}` | | | | | | | | | | | :math:`B_{3}` | | | | | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ | :math:`D_{2h}` | | | | | | | | | | | :math:`A_{g}` | | | | | | | | | | | :math:`B_{1g}` | | | | | | | | | | | :math:`B_{2g}` | | | | | | | | | | | :math:`B_{3g}` | | | | | | | | | | | :math:`A_{u}` | | | | | | | | | | | :math:`B_{1u}` | | | | | | | | | | | :math:`B_{2u}` | | | | | | | | | | | :math:`B_{3u}` | +----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+----------------+ Таким образом, массив значений параметра ``IRREPS`` задаёт набор неприводимых представлений. Конфигурации, соответствующие им, включаются в расчёт методом **MCSCF**. А значит, с помощью параметра ``IRREPS`` можно по неприводимым представлениям отобрать требуемые конфигурации для проведения расчёта методом **MCSCF**. В случае значения ``GLIST=INPUT`` конфигурации вводятся с помощью группы ``$GCILST``. Группа ``$GCILST`` – форматированная и заполняется следующим образом: В *строке первого типа* содержатся значения параметров ``NSPACE`` и ``ISYM``. Первых из них задаёт число различных распределений электронов по орбиталям, используемых в расчёте (оно не всегда равно числу конфигураций). Второй при значении ``0`` (**установлено по умолчанию и может быть опущено**) заставляет GAMESS (US) проверять введённые конфигурации на соответствие значению параметра ``STSYM`` в группе ``$GEN``. При значении ``1`` он допускает наличие конфигураций с различной симметрией. Значение ``2`` аналогично ``1``, но увеличивает объём информации, выводимой в выходной файл. *Строки второго типа* задают число электронов на каждой орбитали в активном пространстве. Каждая строка второго типа задаёт своё распредение электронов по орбиталям. Значения могут быть только ``0``, ``1`` или ``2`` (по числу электронов по орбиталям). Число таких значений равно значению параметра ``NACT`` в группе ``$GEN``. Задача конфигураций с помощью группы ``$GCILST`` может быть выглядеть, например, следующим образом:: $GEN NCORE=46 NACT=4 NELS=4 SZ=0.0 GROUP=C1 STSYM=A GLIST=INPUT $END $GCILST 9 0 1 1 1 1 2 2 0 0 2 0 2 0 2 0 0 2 2 1 1 0 2 1 0 1 2 0 1 1 1 2 1 0 1 2 0 1 $END В данном случае задаётся 9 различных распределений электронов по орбиталям, но конфигураций в расчёте будет использоваться 17. Дело в том, что в последних пяти распределениях присутствуют неспаренные электроны. Данные электроны имеют противоположные спины, так как в сумме они дают ноль (``SZ=0.0``). Поэтому их перестановка, хоть и не меняет распределение электронов по орбиталям, но добавляет дополнительную конфигурацию. В первом распределении четыре неспаренных электрона, но их суммарный спин равен нулю, поэтому на четырёх орбиталях располагается два электрона со спином :math:`+\frac{1}{2}\hbar` и два электрона со спином :math:`-\frac{1}{2}\hbar`. Всего существует шесть различных вариантов размещения данных электронов по орбиталям (при таком распределении), поэтому данное распределение добавляет ещё пять конфигураций. .. image:: images/GENSCF.png :align: center :width: 800 В итоге первое распределение вводит шесть конфигураций, следующие три – по одной, а последние пять – по две, что в сумме и даёт 19. .. important:: *Все вышеперечисленные реализации метода* **MCSCF** *основаны на представлении конфигураций в виде определителей Слэтера* (**SD**). *Ниже рассмотрена реализация метода* **MCSCF** *на основе функций конфигурационного состояния* (**CSF**). *Использование* **CSF** *является более строгим и точным подходом к описанию системы по сравнению с использованием* **SD**, *но при этом и более дорогим*. *При этом, в GAMESS (US) данный подход имеет ещё одно преимущество: он позволяет задавать методы* **MR-CIS** *и* **MR-CISD**, *но без всяких оговорок, что были многократно упомянуты выше*. .. note:: *Так как методы* **MR-CIS** *и* **MR-CISD** *являются многореферентными, их рассмотрение продублировано в* `следующем разделе `_. Значение ``CISTEP=GUGA`` позволяет проводить расчёты методами **CASSCF**, **MR-CIS** и **MR-CISD**. Доступно аналитическое вычисление градиента. Выбор метода и его общая настройка производится в группе ``$DRT``: Выбор метода осуществляется с помощью флагов ``FORS``, ``FOCI`` и ``SOCI``, при этом: * При значении ``SOCI=.TRUE.`` будет выбран метод **MR-CISD**, иначе: * При значении ``FOCI=.TRUE.`` будет выбран метод **MR-CIS**, иначе: * При значении ``FORS=.TRUE.`` будет выбран метод **CASSCF**. Альтернативный способ выбора метода – это использование параметра ``IEXCIT``, значения которого: * ``IEXCIT=2`` эквивалентно ``SOCI=.TRUE.``. * ``IEXCIT=1`` эквивалентно ``FOCI=.TRUE.``. * ``IEXCIT=0`` эквивалентно ``FORS=.TRUE.``. .. important:: *Параметры* ``FORS``, ``FOCI``, ``SOCI`` *и* ``IEXCIT`` *не имеют значений по умолчанию.* Параметры ``GROUP`` и ``STSYM`` полностью аналогичны таковым в группе ``$CIDRT``. Активное пространство настраивается с помощью следующих параметров: .. note:: *В отличие от производных метода* **CI**, *ниже речь идёт о начальной референтной конфигурации, из которой генерируются остальные* *референтные конфигурации*. Число орбиталей, дважды заселённых во всех конфигурациях задаётся параметром ``NMCC`` (а не ``NFZC``, как в **CI**). Число орбиталей активного пространства, дважды заселённых в начальной конфигурации, задаётся параметром ``NDOC``. Число орбиталей активного пространства, заселённых только электронами со спином :math:`-\frac{1}{2}\hbar` в начальной конфигурации, задаётся параметром ``NBOS``. Число орбиталей, заселённых только электронами со спином :math:`+\frac{1}{2}\hbar` задаётся параметрами ``NAOS`` и ``NALP`` (их число равно сумме значений данных параметров), где значение параметра ``NAOS`` равно значению параметра ``NBOS``. Число незаселённых орбиталей в активном пространстве задаётся параметром ``NVAL``. Число внешних орбиталей, используемых для генерации возбуждённых конфигураций методами **MR-CIS** и **MR-CISD**, задаётся параметром ``NEXT``. При установке значения ``NEXT=-1`` будут использованы все внешние орбитали. При этом, с помощью параметра ``NFZV`` можно установить число внешних орбиталей, которые не будут использоваться в генерации конфигураций, даже при значении ``NEXT=-1`` (орбитали для параметра ``NFZV`` отсчитываются "сверху", а не "снизу"). Таким образом, задача активного пространства в методе **CASSCF** на основе **CSF** может выглядеть, например, следующим образом:: $DRT FORS=.TRUE. NMCC=50 !50 остовных орбиталей NDOC=5 !5 дважды заселённых орбиталей в активном пространстве NVAL=5 !5 свободных орбиталей в активном пространстве $END Или, например, более сложный случай:: $DRT FORS=.TRUE. NMCC=50 !50 остовных орбиталей NDOC=4 !4 дважды заселённые орбитали NALP=2 !2 орбитали, заселённые только альфа-электронами NVAL=4 !4 свободные орбитали $END !Итого, мультиплетность системы: MULT=2*(2*0,5)+1=3 Число рассчитываемых конфигураций в методах **MR-CIS** и **MR-CISD**, включая референтную, задаётся параметром ``NSTATE`` в группе ``$GUGDIA``, но не более ``NSTATE=100`` (**по умолчанию** ``NSTATE=1``). Параметр ``IROOT`` в группе ``$GUGDM2`` определяет, энергия какой конфигурации будет выбрана в качестве целевой, данное значение особенно важно для градиентных расчётов. **По умолчанию установлено значение** ``IROOT=0``, что означает выбор энергии усреднённого состояния (**SA**). Вес каждой конфигурации (то есть её вклад) в усреднённое состояние системы (**SA**) задаётся массивом ``WSTATE`` в группе ``$GUGDM2``, число значений которого равно значению параметра ``NSTATE``. **По умолчанию** вес первой конфигурации равен единице, а всех остальных – нулю. Итого, задача активного пространства в методе **MR-CISD** может выглядеть, например, таким образом:: $DRT SOCI=.TRUE. NMCC=50 !50 остовных орбиталей NDOC=4 !4 дважды заселённые орбитали NALP=2 !2 орбитали, заселённые только альфа-электронами NVAL=4 !4 свободные орбитали NEXT=20 !20 внешних орбиталей $END !Мультиплетность системы: MULT=2*(2*0,5)+1=3