Yurii писал(а):Droog_Andrey писал(а):А не научился ли случаем Гауссиан учитывать симметрию при расчётах периодических систем?
ГауссВью-то уже давно распознаёт...
См. пункт 4:
http://python.rice.edu/~guscus/gaussian ... ml#example
Впрочем, некоторую простейшую оптимизацию можно сделать вручную
Вот, скажем, у нас симметричная структура типа флюорита CaF
2, и мы хотим провести её расчёт. Там в элементарной ячейке четыре формульные единицы, т.е. координаты имеют вид вроде
Код: Выделить всё
Ca 0 0.0 0.0 0.0
Ca 0 a/2 a/2 0.0
Ca 0 a/2 0.0 a/2
Ca 0 0.0 a/2 a/2
F 0 a/4 a/4 a/4
F 0 a/4 a/4 3a/4
F 0 a/4 3a/4 a/4
F 0 a/4 3a/4 3a/4
F 0 3a/4 a/4 a/4
F 0 3a/4 a/4 3a/4
F 0 3a/4 3a/4 a/4
F 0 3a/4 3a/4 3a/4
TV 0 a 0.0 0.0
TV 0 0.0 a 0.0
TV 0 0.0 0.0 a
где a - параметр ячейки.
Однако если попробовать обсчитать таким образом, скажем, K
2[PtCl
6], то редкая машина не загнётся.
Можно поступить немного иначе, указав лишь одну четверть элементарной ячейки, раз уж Гауссиан всё равно всё считает в C1. В случае флюорита это будет выглядеть примерно так:
Код: Выделить всё
Ca 0 0.0 0.0 0.0
F 0 a/4 a/4 a/4
F 0 a/4 a/4 -a/4
TV 0 a/2 a/2 0.0
TV 0 -a/2 a/2 0.0
TV 0 0.0 a/2 a/2
Здесь указана ровным счётом та же самая структура, но базисных функций уже в четыре раза меньше, и время расчёта существенно сокращается. Если Вы экономите оперативную память, уменьшая CellRange до 25 и ниже, результаты расчёта могут немного отличаться из-за разного расположения ghost-атомов; в таком случае прогоните в конце SP с достаточным CellRange.
Главное здесь - проследить за тем, чтобы углы между "сокращёнными" векторами трансляции были как можно ближе к прямым, выбранные атомы - ближе друг к другу, а CellRange был не слишком низким, иначе погрешность увеличивается, а SCF может даже выдать ошибку "PrmSpl: Could not translate".
Рассмотрим для примера моноклинную структуру NO
2[AsF
6] симметрии C2/m. В ней угол бета чуть больше прямого, параметр a почти вдвое превышает параметры b и c, координаты атомов мышьяка в базисе ячейки (0; 0; 0) и (1/2; 1/2; 0), а координаты атомов азота - (1/2; 0; 1/2) и (0; 1/2; 1/2).
Так вот, "сокращая" эту ячейку вдвое, я указываю мышьяк (0; 0; 0) и азот (0; 1/2; 1/2), а в качестве векторов трансляции выбираю (1/2; 1/2; 0), (-1/2; 1/2; 0) и (0; 0; 1). Если бы я взял азот (1/2; 0; 1/2), то получил бы плохую сходимость и увеличенную погрешность расчёта, т.к. этот азот находится существенно дальше от выбранного мышьяка.
В общем, экспериментируйте, используя ГауссВью в качестве визуализатора и для проверки правильности сокращённо заданной структуры, и всё получится