переполненость базиса
переполненость базиса
Господа "Зубры" квантовой химии у меня к вам такой вопрос: может мне кто-нибудь более-менее внятно объяснть явление переполнености базисного набора и способы определения этого самого переполнения. Ну и если совсмем все пойдет хорошо, то и примерный алгоритм как программы этот вопрос обходят (процедура выбрасывания).
Буду очень признателен за любые ссылки и наводки.
Заранее спасибо
Буду очень признателен за любые ссылки и наводки.
Заранее спасибо
"Bite my shiny metal ass"
Bender
Bender
- Droog_Andrey
- Сообщения: 2700
- Зарегистрирован: Сб сен 29, 2007 8:29 pm
- Контактная информация:
Re: переполненость базиса
Это когда электронов больше, чем базисных функций, что ли?
2^74207281-1 is prime!
Re: переполненость базиса
Боже!
переполнение базиса -- это линейная зависимость базисных функций, и она порождает проблемы при расчетах. При этом базис может быть далеко не полным. Представьте себе трехмерное пространство и 3 вектора в нем. Три некопланарных вектора будут линейно независимыми и будут образовывать (вообще говоря, неортогональный) базис трехмерного пространства. Но если вектора копланарны (и, следовательно, линейно зависимы), то сколько бы вы их ни взяли -- они не образуют базис трехмерного пространства, т.е. базис не полон, но переполнен. Типа как флюс: полнота есть, но как бы односторонняя.
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)
- Droog_Andrey
- Сообщения: 2700
- Зарегистрирован: Сб сен 29, 2007 8:29 pm
- Контактная информация:
Re: переполненость базиса
В таком случае термин "переполненность" неудачен. Я бы использовал "неортогональность".
2^74207281-1 is prime!
Re: переполненость базиса
Ок, более-менее, а как быть со способами проверки. Разумно предположить, что любой пакет, если не по дефолту, то уж по принуждению точно, должен уметь выполнять проверку на переполненость или линейную зависимость. Sanya, а может быть подкинете что нибудь с передовиц?sanya1024 писал(а):Боже!переполнение базиса -- это линейная зависимость базисных функций
[ Post made via Android ]

"Bite my shiny metal ass"
Bender
Bender
Re: переполненость базиса
Про линейную зависимость см. 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*) на всех атомах в небольшой молекуле. Гамесс при этом советует, какие именно функции надо выкинуть. Гауссиан, по-видимому, выкидывает на свое усмотрение.
Гамесс и FireFly проверяют и предупреждают. Гауссиан проверяет и сразу принимает меры (какие -- не говорит). Что делает Орка -- не знаю, не сталкивалась. Наверное, примерно то же, что и Гауссиан.
На самом деле, про Гауссиан я знаю, т.к. попыталась протестировать (дико переполненный) базис за авторством Droog_Andrey (где-то было на форуме). Гамесс обругался и отказался работать, пока я не выкину лишние функции, а Гауссиан проглотил и переварил. А Орке я этот базис не подсовывала, поэтому не знаю.
Ситуация с переполнением базиса часто возникает, если используют Поппловские базисы с поляризационными и диффузными функциями (типа 6-311+G*) на всех атомах в небольшой молекуле. Гамесс при этом советует, какие именно функции надо выкинуть. Гауссиан, по-видимому, выкидывает на свое усмотрение.
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)
- Droog_Andrey
- Сообщения: 2700
- Зарегистрирован: Сб сен 29, 2007 8:29 pm
- Контактная информация:
Re: переполненость базиса
Во-первых, в том моём базисе все функции ортогональны (и это очевидно). Во-вторых, Гауссиан ничего не выкидывает на своё усмотрение. Просто он стабильнее работает с диффузными функциями (они порой кажутся неортогональными, но чтобы этого не случилось, достаточно взять более густую сетку интегрирования).sanya1024 писал(а):На самом деле, про Гауссиан я знаю, т.к. попыталась протестировать (дико переполненный) базис за авторством Droog_Andrey (где-то было на форуме). Гамесс обругался и отказался работать, пока я не выкину лишние функции, а Гауссиан проглотил и переварил. А Орке я этот базис не подсовывала, поэтому не знаю.
Ситуация с переполнением базиса часто возникает, если используют Поппловские базисы с поляризационными и диффузными функциями (типа 6-311+G*) на всех атомах в небольшой молекуле. Гамесс при этом советует, какие именно функции надо выкинуть. Гауссиан, по-видимому, выкидывает на свое усмотрение.
2^74207281-1 is prime!
-
endlesslake
- Сообщения: 209
- Зарегистрирован: Чт авг 09, 2012 9:13 pm
Re: переполненость базиса
а что тогда регулирует IOp(3/59) ?Droog_Andrey писал(а):Во-первых, в том моём базисе все функции ортогональны (и это очевидно). Во-вторых, Гауссиан ничего не выкидывает на своё усмотрение. Просто он стабильнее работает с диффузными функциями (они порой кажутся неортогональными, но чтобы этого не случилось, достаточно взять более густую сетку интегрирования).
и где в ХартриФоке используется интегрирование по сетке ?
- Droog_Andrey
- Сообщения: 2700
- Зарегистрирован: Сб сен 29, 2007 8:29 pm
- Контактная информация:
Re: переполненость базиса
3/59 регулирует ортогонализацию. Но это никак не выкидывание базисных функций.
Можно выкинуть экспоненты с помощью 3/60 (или, что то же самое, Int(BasisTransform=N)), тогда Гауссиан напишет что-нить вроде
Более густая сетка нужна не для HF, а для более точной оценки Гауссианом ошибок интегрирования.
Можно выкинуть экспоненты с помощью 3/60 (или, что то же самое, Int(BasisTransform=N)), тогда Гауссиан напишет что-нить вроде
В любом случае, всё это чётко задаётся, никакого произвола со стороны Гауссиана нет.Ernie: 8 primitive shells out of 84 were deleted.
Более густая сетка нужна не для HF, а для более точной оценки Гауссианом ошибок интегрирования.
2^74207281-1 is prime!
Re: переполненость базиса
Переполнение базиса возникает в малых молекулах. Но мы не местныя и понимаем как написано.
С увеличением базисных функций, полная энергия должна понижаться, так как это вариационный метод. Однако каждыъая базисная функция несет с собой некую погрешность. Она так оределена. Чем больше базисных фнкций, тем больше погрешность. В больших базисах суммарная ошибка числа базисных функций становится больше, чем ошибка достижения полного базиса.
[ Post made via Android ]
С увеличением базисных функций, полная энергия должна понижаться, так как это вариационный метод. Однако каждыъая базисная функция несет с собой некую погрешность. Она так оределена. Чем больше базисных фнкций, тем больше погрешность. В больших базисах суммарная ошибка числа базисных функций становится больше, чем ошибка достижения полного базиса.
[ Post made via Android ]

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

После отстоя требуйте долива
Re: переполненость базиса
В гамессе крутят QMTOL, но до определенных пределов. Иначе погрешность возрастет.
[ Post made via Android ]
[ Post made via Android ]

После отстоя требуйте долива
Re: переполненость базиса
Вроде бы базисная функция - не экспериментальная величина, измеряемая с некоторой погрешностью. Откуда в ней ошибка-то?VTur писал(а):Каждая функция вносит свою ошибку в общую величину, чем больше функций - тем больше базис, тем больше такая ошибка.
каждая базисная функция оаределена с некой ошибкой
"Если миру не нужен свет - Не беда, проживёт и так.
Если стал не нужен поэт - Не беда, он наймётся в кабак..."
Если стал не нужен поэт - Не беда, он наймётся в кабак..."
Re: переполненость базиса
Откуда Вы это взяли? ссылку на первоисточник в студию. Еще раз спрашиваю: что такое суммарная ошибка представления базиса? Ошибку определяют относительно чего-то принятого за референс -- иначе никто никогда не узнает, что есть какая-то ошибка. Относительно чего определяют ошибку базисных функций?VTur писал(а):Каждая функция вносит свою ошибку в общую величину, чем больше функций - тем больше базис, тем больше такая ошибка.
Тут конкурируют две ошибки - с увеличением базиса поллная энергия считается (предполагается) точнее - вариационный принцип, но с увеличением числа функций увеличивается суммарная ошибка представления базиса, ( каждая базисная функция оаределена с некой ошибкой). Т. Е.с одной стороны полная энергия стремиться к Х-Ф пределу, с другой стороны возрастает суммарная ошибка баиса
Вот и вся моя работа. Стеречь ребят над пропастью во ржи. (Дж. Д. Сэлинджер)
Re: переполненость базиса
Это не аналитическое выражение. Модель представляет собой набор чисеных методов, в основном, ряды. Ряды вставлены одни в другие, либо перемножаются. При отрубании у рядов хостов, возникает ошибка (о малая или там О большое). В таких моделях ряды должны быть сбалансированы. Иначе модель становится неустойчивой (по Ляпунову), когда небольшие различия на входе дают большие рпсхождения на выходе.
Я с ошибкой переполнения базиса не встречался, но знаю, что такая есть. Ее монжо сконструировать, взяв несбалансированный базис, где-то электронная плотность будет описана лучше, где-то меньшим числом функций, если базис несбалансирован, то в результате самосогласования ( а это большая карусель), электронная плотность может перетечь туда, где ее должно быть мало из мест, где ее должно быть много.
Можно поступить по-другому, взять уран и 6 водородов и описать их всех одним гигантским базисом с целью лучшего описания урана.
Ссылок не дам, и даже заморачиваться этим не буду. Я сам с усам.
[ Post made via Android ]
Я с ошибкой переполнения базиса не встречался, но знаю, что такая есть. Ее монжо сконструировать, взяв несбалансированный базис, где-то электронная плотность будет описана лучше, где-то меньшим числом функций, если базис несбалансирован, то в результате самосогласования ( а это большая карусель), электронная плотность может перетечь туда, где ее должно быть мало из мест, где ее должно быть много.
Можно поступить по-другому, взять уран и 6 водородов и описать их всех одним гигантским базисом с целью лучшего описания урана.
Ссылок не дам, и даже заморачиваться этим не буду. Я сам с усам.
[ Post made via Android ]

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

После отстоя требуйте долива
Re: переполненость базиса
Точно. Переполнение базиса -- это линейная зависимость базисных функций. Чтобы определить subj диагонализуют матрицу перекрывания АО, нулевые (или близкие к ним) собственные значения говорят о линейной зависимости базисных функций.sanya1024 писал(а):Боже!переполнение базиса -- это линейная зависимость базисных функций, и она порождает проблемы при расчетах.
NWCHEM при этом пишет что-то типа
Код: Выделить всё
!! The overlap matrix has 3 vectors deemed linearly dependent with
eigenvalues:
2.16D-06 2.48D-06 7.62D-061. Ошибочная геометрия - атомы находятся нефизически близко друг от друга.
2. Используется декартова версия базисных функций (xx+yy+zz комбинация d-функций линейно зависит от s-функции)
3. Слишком большой базис.
Как лечится:
1. Нормальные пакеты должны сами уметь преобразовать начальный АО-базис в ортонормированный и выбросить линейно зависящие комбинации.
2. Ненормальные пакеты позволяют под настройку игнорировать subj.
Сам столкнулся недавно в nwchem в расчете CASSCF(2,2) в базисе TZVP появляется 1 линейно-зависимый вектор.
настройка
Код: Выделить всё
set lindep:n_dep 0If you are not part of the solution, you are part of the precipitate.
Re: переполненость базиса
Тогда мы говорим о разных вещах. Вы о QMTTOL в Гамессе, а я о том, почему малликеновскийанализ иногда выдает глупости
[ Post made via Android ]
[ Post made via Android ]

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