переполненость базиса

вопросы строения молекул и квантовой химии
Аватара пользователя
surius
Сообщения: 1489
Зарегистрирован: Пт сен 21, 2007 11:20 am

переполненость базиса

Сообщение surius » Вт июн 25, 2013 10:37 pm

Господа "Зубры" квантовой химии у меня к вам такой вопрос: может мне кто-нибудь более-менее внятно объяснть явление переполнености базисного набора и способы определения этого самого переполнения. Ну и если совсмем все пойдет хорошо, то и примерный алгоритм как программы этот вопрос обходят (процедура выбрасывания).

Буду очень признателен за любые ссылки и наводки.

Заранее спасибо
"Bite my shiny metal ass"
Bender

Аватара пользователя
Droog_Andrey
Сообщения: 2700
Зарегистрирован: Сб сен 29, 2007 8:29 pm
Контактная информация:

Re: переполненость базиса

Сообщение Droog_Andrey » Вт июн 25, 2013 11:18 pm

Это когда электронов больше, чем базисных функций, что ли?
2^74207281-1 is prime!

Аватара пользователя
sanya1024
Сообщения: 1672
Зарегистрирован: Чт янв 20, 2011 3:24 pm

Re: переполненость базиса

Сообщение sanya1024 » Ср июн 26, 2013 12:03 am

Боже! :) переполнение базиса -- это линейная зависимость базисных функций, и она порождает проблемы при расчетах. При этом базис может быть далеко не полным. Представьте себе трехмерное пространство и 3 вектора в нем. Три некопланарных вектора будут линейно независимыми и будут образовывать (вообще говоря, неортогональный) базис трехмерного пространства. Но если вектора копланарны (и, следовательно, линейно зависимы), то сколько бы вы их ни взяли -- они не образуют базис трехмерного пространства, т.е. базис не полон, но переполнен. Типа как флюс: полнота есть, но как бы односторонняя.
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)

Аватара пользователя
Droog_Andrey
Сообщения: 2700
Зарегистрирован: Сб сен 29, 2007 8:29 pm
Контактная информация:

Re: переполненость базиса

Сообщение Droog_Andrey » Ср июн 26, 2013 12:51 am

В таком случае термин "переполненность" неудачен. Я бы использовал "неортогональность".
2^74207281-1 is prime!

Аватара пользователя
surius
Сообщения: 1489
Зарегистрирован: Пт сен 21, 2007 11:20 am

Re: переполненость базиса

Сообщение surius » Ср июн 26, 2013 12:52 am

sanya1024 писал(а):Боже! :) переполнение базиса -- это линейная зависимость базисных функций
Ок, более-менее, а как быть со способами проверки. Разумно предположить, что любой пакет, если не по дефолту, то уж по принуждению точно, должен уметь выполнять проверку на переполненость или линейную зависимость. Sanya, а может быть подкинете что нибудь с передовиц?

[ Post made via Android ] Изображение
"Bite my shiny metal ass"
Bender

Аватара пользователя
sanya1024
Сообщения: 1672
Зарегистрирован: Чт янв 20, 2011 3:24 pm

Re: переполненость базиса

Сообщение sanya1024 » Ср июн 26, 2013 1:50 am

Про линейную зависимость см. http://ru.wikipedia.org/wiki/%D0%9B%D0% ... 1%82%D1%8C и http://webmath.exponenta.ru/dnu/lc/age/ ... /node5.htm.
Гамесс и FireFly проверяют и предупреждают. Гауссиан проверяет и сразу принимает меры (какие -- не говорит). Что делает Орка -- не знаю, не сталкивалась. Наверное, примерно то же, что и Гауссиан.
На самом деле, про Гауссиан я знаю, т.к. попыталась протестировать (дико переполненный) базис за авторством Droog_Andrey (где-то было на форуме). Гамесс обругался и отказался работать, пока я не выкину лишние функции, а Гауссиан проглотил и переварил. А Орке я этот базис не подсовывала, поэтому не знаю.
Ситуация с переполнением базиса часто возникает, если используют Поппловские базисы с поляризационными и диффузными функциями (типа 6-311+G*) на всех атомах в небольшой молекуле. Гамесс при этом советует, какие именно функции надо выкинуть. Гауссиан, по-видимому, выкидывает на свое усмотрение.
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)

Аватара пользователя
Droog_Andrey
Сообщения: 2700
Зарегистрирован: Сб сен 29, 2007 8:29 pm
Контактная информация:

Re: переполненость базиса

Сообщение Droog_Andrey » Ср июн 26, 2013 7:39 am

sanya1024 писал(а):На самом деле, про Гауссиан я знаю, т.к. попыталась протестировать (дико переполненный) базис за авторством Droog_Andrey (где-то было на форуме). Гамесс обругался и отказался работать, пока я не выкину лишние функции, а Гауссиан проглотил и переварил. А Орке я этот базис не подсовывала, поэтому не знаю.
Ситуация с переполнением базиса часто возникает, если используют Поппловские базисы с поляризационными и диффузными функциями (типа 6-311+G*) на всех атомах в небольшой молекуле. Гамесс при этом советует, какие именно функции надо выкинуть. Гауссиан, по-видимому, выкидывает на свое усмотрение.
Во-первых, в том моём базисе все функции ортогональны (и это очевидно). Во-вторых, Гауссиан ничего не выкидывает на своё усмотрение. Просто он стабильнее работает с диффузными функциями (они порой кажутся неортогональными, но чтобы этого не случилось, достаточно взять более густую сетку интегрирования).
2^74207281-1 is prime!

endlesslake
Сообщения: 209
Зарегистрирован: Чт авг 09, 2012 9:13 pm

Re: переполненость базиса

Сообщение endlesslake » Ср июн 26, 2013 10:52 am

Droog_Andrey писал(а):Во-первых, в том моём базисе все функции ортогональны (и это очевидно). Во-вторых, Гауссиан ничего не выкидывает на своё усмотрение. Просто он стабильнее работает с диффузными функциями (они порой кажутся неортогональными, но чтобы этого не случилось, достаточно взять более густую сетку интегрирования).
а что тогда регулирует IOp(3/59) ?
и где в ХартриФоке используется интегрирование по сетке ?

Аватара пользователя
Droog_Andrey
Сообщения: 2700
Зарегистрирован: Сб сен 29, 2007 8:29 pm
Контактная информация:

Re: переполненость базиса

Сообщение Droog_Andrey » Ср июн 26, 2013 12:21 pm

3/59 регулирует ортогонализацию. Но это никак не выкидывание базисных функций.

Можно выкинуть экспоненты с помощью 3/60 (или, что то же самое, Int(BasisTransform=N)), тогда Гауссиан напишет что-нить вроде
Ernie: 8 primitive shells out of 84 were deleted.
В любом случае, всё это чётко задаётся, никакого произвола со стороны Гауссиана нет.

Более густая сетка нужна не для HF, а для более точной оценки Гауссианом ошибок интегрирования.
2^74207281-1 is prime!

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: переполненость базиса

Сообщение VTur » Ср июн 26, 2013 10:50 pm

Переполнение базиса возникает в малых молекулах. Но мы не местныя и понимаем как написано.
С увеличением базисных функций, полная энергия должна понижаться, так как это вариационный метод. Однако каждыъая базисная функция несет с собой некую погрешность. Она так оределена. Чем больше базисных фнкций, тем больше погрешность. В больших базисах суммарная ошибка числа базисных функций становится больше, чем ошибка достижения полного базиса.

[ Post made via Android ] Изображение
После отстоя требуйте долива

Аватара пользователя
sanya1024
Сообщения: 1672
Зарегистрирован: Чт янв 20, 2011 3:24 pm

Re: переполненость базиса

Сообщение sanya1024 » Ср июн 26, 2013 11:15 pm

Э... действительно, "не местный" текст какой-то... как-то не слишком понятно написано. Например, про "суммарную ошибку числа базисных функций" хорошо бы поподробнее, с определением и ссылкой на первоисточник.
В Гауссиане я действительно не такой спец, как тут многие :) А в Гамессе до определенных пор можно бороться с "почти линейной зависимостью" с помощью параметров, регулирующих способ и точность расчета интегралов: ITOL, ICUT, INTTYP, а также используя сферические функции вместо декартовых (ISPHER). Ну и еще просто можно подкрутить QMTTOL. И только когда это не срабатывает (т.е., продолжаются проблемы со сходимостью ССП), имеет смысл выкидывать функции вручную.
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: переполненость базиса

Сообщение VTur » Ср июн 26, 2013 11:32 pm

Каждая функция вносит свою ошибку в общую величину, чем больше функций - тем больше базис, тем больше такая ошибка.
Тут конкурируют две ошибки - с увеличением базиса поллная энергия считается (предполагается) точнее - вариационный принцип, но с увеличением числа функций увеличивается суммарная ошибка представления базиса, ( каждая базисная функция оаределена с некой ошибкой). Т. Е.с одной стороны полная энергия стремиться к Х-Ф пределу, с другой стороны возрастает суммарная ошибка баиса

[ Post made via Android ] Изображение
После отстоя требуйте долива

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: переполненость базиса

Сообщение VTur » Ср июн 26, 2013 11:35 pm

В гамессе крутят QMTOL, но до определенных пределов. Иначе погрешность возрастет.

[ Post made via Android ] Изображение
После отстоя требуйте долива

Аватара пользователя
Lantano
Сообщения: 187
Зарегистрирован: Чт окт 09, 2008 10:35 pm

Re: переполненость базиса

Сообщение Lantano » Чт июн 27, 2013 12:08 am

VTur писал(а):Каждая функция вносит свою ошибку в общую величину, чем больше функций - тем больше базис, тем больше такая ошибка.
каждая базисная функция оаределена с некой ошибкой
Вроде бы базисная функция - не экспериментальная величина, измеряемая с некоторой погрешностью. Откуда в ней ошибка-то?
"Если миру не нужен свет - Не беда, проживёт и так.
Если стал не нужен поэт - Не беда, он наймётся в кабак..."

Аватара пользователя
sanya1024
Сообщения: 1672
Зарегистрирован: Чт янв 20, 2011 3:24 pm

Re: переполненость базиса

Сообщение sanya1024 » Чт июн 27, 2013 1:03 am

VTur писал(а):Каждая функция вносит свою ошибку в общую величину, чем больше функций - тем больше базис, тем больше такая ошибка.
Тут конкурируют две ошибки - с увеличением базиса поллная энергия считается (предполагается) точнее - вариационный принцип, но с увеличением числа функций увеличивается суммарная ошибка представления базиса, ( каждая базисная функция оаределена с некой ошибкой). Т. Е.с одной стороны полная энергия стремиться к Х-Ф пределу, с другой стороны возрастает суммарная ошибка баиса
Откуда Вы это взяли? ссылку на первоисточник в студию. Еще раз спрашиваю: что такое суммарная ошибка представления базиса? Ошибку определяют относительно чего-то принятого за референс -- иначе никто никогда не узнает, что есть какая-то ошибка. Относительно чего определяют ошибку базисных функций?
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: переполненость базиса

Сообщение VTur » Чт июн 27, 2013 8:48 am

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

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

Можно поступить по-другому, взять уран и 6 водородов и описать их всех одним гигантским базисом с целью лучшего описания урана.

Ссылок не дам, и даже заморачиваться этим не буду. Я сам с усам.

[ Post made via Android ] Изображение
После отстоя требуйте долива

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: переполненость базиса

Сообщение VTur » Чт июн 27, 2013 8:55 am

Lantano писал(а):
VTur писал(а):Каждая функция вносит свою ошибку в общую величину, чем больше функций - тем больше базис, тем больше такая ошибка.
каждая базисная функция оаределена с некой ошибкой
Вроде бы базисная функция - не экспериментальная величина, измеряемая с некоторой погрешностью. Откуда в ней ошибка-то?
Ошибка не в самом базисе, фукции вообще могут быть любыми, ошибка возникает при использовании несогласованных наборов функций., произвольного количества. У нас же количество для с, п, д функций не может быть произвольным. Перед функциями стоит коэффициент, который не ноль, если взять и описывать водороды д функциями. Можно взять 1 с функцию и 10 д функций,, и вроде бы все хорошо, но энергия будет плохой,. Кроме того, в самосогласованное поле входят не все орбитали,.

[ Post made via Android ] Изображение
После отстоя требуйте долива

kbob
Сообщения: 1995
Зарегистрирован: Сб окт 17, 2009 9:48 am

Re: переполненость базиса

Сообщение kbob » Чт июн 27, 2013 1:01 pm

sanya1024 писал(а):Боже! :) переполнение базиса -- это линейная зависимость базисных функций, и она порождает проблемы при расчетах.
Точно. Переполнение базиса -- это линейная зависимость базисных функций. Чтобы определить subj диагонализуют матрицу перекрывания АО, нулевые (или близкие к ним) собственные значения говорят о линейной зависимости базисных функций.
NWCHEM при этом пишет что-то типа

Код: Выделить всё

!! The overlap matrix has   3 vectors deemed linearly dependent with

   eigenvalues:

2.16D-06 2.48D-06 7.62D-06
Откуда это берется:
1. Ошибочная геометрия - атомы находятся нефизически близко друг от друга.
2. Используется декартова версия базисных функций (xx+yy+zz комбинация d-функций линейно зависит от s-функции)
3. Слишком большой базис.

Как лечится:
1. Нормальные пакеты должны сами уметь преобразовать начальный АО-базис в ортонормированный и выбросить линейно зависящие комбинации.
2. Ненормальные пакеты позволяют под настройку игнорировать subj.

Сам столкнулся недавно в nwchem в расчете CASSCF(2,2) в базисе TZVP появляется 1 линейно-зависимый вектор. :shock:
настройка

Код: Выделить всё

set lindep:n_dep 0
позволяет заигнорить subj
If you are not part of the solution, you are part of the precipitate.

VTur
Сообщения: 7357
Зарегистрирован: Пт авг 31, 2007 1:36 pm

Re: переполненость базиса

Сообщение VTur » Чт июн 27, 2013 1:29 pm

Тогда мы говорим о разных вещах. Вы о QMTTOL в Гамессе, а я о том, почему малликеновскийанализ иногда выдает глупости

[ Post made via Android ] Изображение
После отстоя требуйте долива

Аватара пользователя
sanya1024
Сообщения: 1672
Зарегистрирован: Чт янв 20, 2011 3:24 pm

Re: переполненость базиса

Сообщение sanya1024 » Чт июн 27, 2013 1:50 pm

Получить ошибку переполнения базиса в Гамессе проще простого: взять 6-311+G* для нафталина. Если почему-то Гамесс это переварит, возьмите ++ и **.
Процедуру определения лин. зависимости kbob описал совершенно верно. Некоторые программы (в частности, Гауссиан) умеют на основании собств. значений матрицы перекрывания выкидывать функции, причем не отдельные АО, а их лин. комбинации, вызывающие проблемы. В Гамессовском мануале тоже про это написано, но, видимо, реализация не очень хорошая, раз такая ошибка возникает часто. Самый очевидный пример -- выкидывание комбинации xx+yy+zz -- это все программы делают легко и непринужденно.
VTur же традиционно "с прямым углом перепутал". Ошибка переполнения базиса -- это сообщение программы об проблеме или вызванные этой проблемой численные нестабильности решения (плохая сходимость ССП). А несбалансированность базиса -- это проблема, к-рую программно отловить на настоящий момент невозможно, нет общих критериев. Проще говоря, это дело пользователя -- смотреть, насколько адекватен задаче его базис.
Например, глупо использовать базис, предназначенный для хорошего описания эл. плотности возле ядра, для расчетов валентных и тем более ридберговых возбуждений. Программа не знает и знать не может, намеренно это сделано или нет. Она только выдает цифру, и если базис не оказался переполненным (несбалансированность не означает переполненности и наоборот), то сходимость ССП будет нормальная и никто ничего не заподозрит... пока не начнет анализировать вклады АО в общую эл. плотность. Тут-то и обнаружится, что куча лишних функций дает нулевые вклады, а функций, ответственных за специфику задачи, явно не хватает. По счастью, большинство современных базисов не дураки делали и тестировали их на типичных задачах на больших сериях соединений. Хотя, конечно, задачи-исключения, для к-рых нормальные человеческие базисы окажутся несбалансированными, всегда можно найти.
Наверняка на любой защите найдется умник, к-рый задаст вопрос "а как Вы проверяли сбалансированность Вашего базиса?". Если использованы старые добрые хорошо известные и проверенные базисы, то проблемы нет. Если же были какие-то игры в базис с добавлением функций "от руки", то вопрос правомерен (хотя скорее всего спрашивающий просто выпендривается). Рекомендую статью http://wires.wiley.com/WileyCDA/WiresAr ... S1123.html с хорошим обзором базисов. Поможет в "обосновании выбора базиса" -- частая проблема, к-рой мучаются многие аспиранты.
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)

Ответить

Вернуться в «квантовая химия и моделирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 18 гостей