Программный комплекс ABINIT

ABINIT - это программный комплекс, который позволяет, используя теорию функционала плотности, рассчитывать полную энергию, плотность зарядов и электронную структуру систем, состоящих из электронов и ядер (молекул и периодических твердых тел). Также ABINIT позволяет производить геометрическую оптимизацию, молекулярную динамику из первых принципов, рассчитывать зонную структуру твердых тел, использовать функции отклика, рассчитывать различные свойства молекул и твердых тел [1].

Начало работы

Для запуска необходимо создать файл с расширением .files, который содержит информацию о входных и выходных файлах (например, файл tbasel l.files (рис. 5.1).

tbasel_l.in tbasel_l.out tbasel_li tbasel_lo tbasel_l Olh.pspgth

Рисунок 5.1 - Содержание файла tbase 11.files

Для запуска расчеты нужно выполнить набрать в командной строке: abinit < tbase 1_1.files > log, где log - имя лог-файла.

На рисунке 5.2 приведен пример входного файла tl l.in.

  • ?задание ячейки acell 10 10 10 ?определение типов атомов ntypat 1 znucl 1
  • ?определение атомов natom 2 typat 1 1 xcart
  • -0.7 0.0 0.0
  • 0.7 0.0 0.0
  • ?определение набора данных плоских волн ecut 10.0
  • ?определение сетки к-точек kptopt 0 nkpt 1
  • ?определение процедуры сходимости nstep 10 toldfe 1.0d-6 diemac 2.0 optforces 1

Рисунок 5.2 - Конфигурационный файл для расчета энергии молекулы водорода (shareabinit-test utorialInput base 1_1 .in)

Во входном файле задаются параметры, которые соответствуют входным переменным [1].

Основные переменные

accuracy - настройка точности расчета, при это автоматически устанавливаются переменные ecut, boxcutmin, fband, tolvrs, tolmxf, optforces, timopt, npulayit, nstep, prteig, prtden, и если usepaw = 1, pawecutdg, bxctmindg, pawxcdev, pawmixdg, pawovlp, pawnhatxc. По умолчанию значение устанавливается равным 4, что соответствует вычислениям с высокой точностью.

acell - коэффициенты масштабирования примитивных векторов (rprim). По умолчанию в атомных единицах 3*1 Бор, может быть указано в Ангстремах.

angdeg - задает углы между направлениями примитивных векторов элементарной ячейки (в градусах), альтернатива использованию входного массива rprim, используется совместно с a cell.

bdgw - зоны, между которыми будет рассчитана GW корректировка.

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

bs_algorithm - алгоритм Бете-Солпитера, по умолчанию параметр равен двум. Определяет алгоритм, используемый для расчета макроскопической диэлектрической функции: 1 - макроскопическая диэлектрическая получается путем выполнения прямой диагонализации экситонного Гамильтониана, 2 - итерационный метод Хэйдока, 3 - метод сопряженных градиентов.

bs_calctype - тип расчета Бете-Солпитера. По умолчанию параметр равен 1 -использовать собственные значения Кона-Шэма и волновые функции, которые хранятся в KSS файлах, 2 - энергии считываются из внешнего файла GW, 3 -амплитуды и энергии квазичастиц будут считаны из файла QPS.

bs_coulomb_term - расчет Кулоновского члена, по умолчанию параметр равен 11.

bs_exchange_term - расчет обменного члена, по умолчанию параметр равен единице - обменный член рассчитывается, 0 - обменный член не рассчитывается.

bs_haydock_niter - определяет максимальное число итераций метода Хэйдока, используемых для вычисления макроскопической диэлектрической функции. Итерационный алгоритм останавливается, когда разница между двумя последовательными оценками оптических спектров меньше bs_haydock_tol.

bs_haydock_tol - определяет критерий сходимости для итерационного метода Хэйдока.

bs_loband -индекс наименьшей занимаемой зоны. Для спин-поляризованных расчетов, необходимо использовать два отдельных индекса.

chksymbreak - проверка нарушения симметрии. По умолчанию параметр равен 1 - проверка производится, 0 - проверка не производится.

diemac - макроскопическая диэлектрическая проницаемость, по умолчанию 1000000. Приближенное значение макроскопической диэлектрической проницаемости системы позволяет ускорить процедуру самосогласования. Для металлов задают очень большое значение. Для кремния параметр задается равным 12, аналогичное значение можно применять для других полупроводников. Для диэлектриков используют значения 2-4. Для молекул в случае большой пустой ячейки используют значения 1.5-3.

ecut - отсечка кинетической энергии, задает количество плоских волн. Влияет на качество расчета - чем выше ecut, тем лучше сходятся расчеты. По умолчанию указывается в Хартри, может быть указана в других величинах. Обычно выбирают минимальное значение, которое приводит к достоверным результатам.

ecuteps - отсечка энергии для расчета диэлектрической матрицы. Должен быть не больше, чем в четыре раза параметра ecutwfn.

ecutsigx - отсечка энергии для создания обменной части оператора собственной энергии, используется только при параметре optdriver равном 4.

ecutwfn - отсечка энергии для волновых функций при параметре optdriver равном 3 или 4. Как правило, этот параметр меньше ecut.

enunit -единица измерения энергии, в которой производится вывод в выходной файл. По умолчанию параметр равен нулю (Хартри), 1 - эВ, 2 - Хартри и эВ. Также используется для вывода частот фононов: 1 - эВ и ТГц, 2 - Хартри, эВ, см1, ТГц, К.

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

icutcoul - определяет выражение, по которому будет рассчитываться

Кулоновское взаимодействие в обратном пространстве, выбор зависит от размерности пространства.

ionmov - выбор алгоритма для перемещения ионов, по умолчанию параметр равен нулю (не двигать ионы). Если значение равно 1, 5, 6, 7, 8, 9, 12, 13, 14, 23 -производится молекулярно-динамическое моделирование различными способами. Если значение равно 2, 3, 4, 10, И, 20 - структурная оптимизация различными способами. При ionmov=30 производится расчет фононной структуры.

iscf - положительные значения (0-7, 12-17) - выбор между алгоритмами для SCF (самосогласованного поля). Отрицательные значения (-1, -2, -3) для несамосогласованных расчетов. Значение -2 используется для расчета зонной структуры, производится вычисление собственных значений занятых и незанятых состояний при произвольных к - точках в фиксированном самосогласованном потенциале. Значение -1 используется для определения возбужденных состояний при TDDFT расчетах.

ixc - выбор функционалов обмена и корреляции. По умолчанию равен 1 (LDA или LSD). Если параметр равен нулю - тогда функционал обмена и корреляции не используется.

jdtset - индекс набора данных. Индекс используется для спецификации каждого набора данных: имена переменных для этого набора данных используются с добавлением индекса.

kpt - число k-точек в обратном пространстве. Используется при условии kptopt = 0.

kptbounds - k-точки границ. Задается с помощью примитивных векторов в обратном пространстве.

kptrlatt - сетка k-точек в реальном пространстве, по умолчанию параметр равен нулю. Параметр частично определяет сетку k-точек, другая часть информации содержится в shiftk. Этот параметр не может быть использован вместе с ngkpt. Значения kptrlatt - это координаты трех векторов в реальном пространстве, они определяет супер-решетку в реальном пространстве. Решетка k-точек является 99

обратной этой супер-решетки и может быть сдвинута (shiftk). Если ngkpt и kptrlatt не определены, то будет автоматически генерироваться множество сеток k-точек и выбраться наилучшее сочетание kptrlatt и shiftk, что позволяет достигать достаточной величины kptrlen.

kptnrm - нормализующий знаменатель для каждой к-точки.

kptopt - начальная установка списка k-точек. Задает либо прямое чтение к-точек, либо получение их из других переменных. Если значение равно нулю, то происходит непосредственное чтение из параметров nkpt, kpt, kptnrm, wtk. Значение равно 1-4, в этом случае k-точки задаются из обработки значений ngkpt, kptrlatt, nshiftk, shiftk. Если значение отрицательное, то k-точки задаются из обработки kptbounds, ndivk и используется для расчета зонной структуры по различным направлениям (iscf = - 2).

kptrlen - длина наименьшего из реальных пространственных векторов. Когда ngkpt и kptrlatt не определены, будет автоматически генерироваться большой набор возможных сеток k-точек и будут выбраться из этого множества те сетки, которые дают длину наименьшего вектора, который больше, чем kptrlen, и такие, которые при использовании совместно с kptopt = 1 сводятся к наименьшему числу к-точек. Эта процедура может занять много времени и ее делают один раз для данной элементарной ячейки, но не использовать эту процедуру по умолчанию.

natom - общее число атомов в элементарной ячейке. По умолчанию значение равно 1.

nband - число занятых и возможно незанятых зон, для которых вычисляются волновые функции наряду с собственными значениями. Если параметр occopt не равен 0 или 2, то это значение может не использоваться - количество зон в этом случае задается переменной fband. В случае GW расчетов nband задает число зон, которые будут использоваться для генерации экранирования (восприимчивости и диэлектрической матрицы) и собственной энергии.

ndivk - количество делений k-линий. Задает число делений каждого из сегментов зонной структуры, которые определяются kptopt и kptbounds. Можно автоматически генерировать количество делении - для этого нужно использовать ndivsm.

ndivsm - число делений наименьшего сегмента. Для других сегментов количество делений вычисляется автоматически.

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

ngkpt - число точек сетки для генерации k-точек, используется только при kptopt > = 0 и если kptrlatt не был определен.

nkpt - число k-точек. Если значение равно нулю, то оно получается из других переменных. Для расчетов в основном состоянии нужно выбрать k-точку в первой зоне Бриллюэна.

nshiftk - задает число смещенных сеток, которые будут использоваться для создания полной сетки k-точек. Максимальное значение 8, значения сдвигов определяются в shiftk.

nsppol - число независимых спиновых поляризаций, может принимать значения 1 или 2.

nstep - максимальное количество шагов итераций, по умолчанию равно 30. Полная сходимость обычно происходит через 12-20 шагов.

nsym - количество пространственных групп симметрии. Если в задаче нет симметрии, то nsym=l. По умолчанию параметр равен нулю - в этом случае происходит автоматический поиск симметрии.

ntime - количество шагов времени, по умолчанию равно нулю.

ntypat - число типов атомов, по умолчанию параметр равен единице.

осс - уровень занятости всех зон, по умолчанию параметр равен нулю. Используется, если occopt == 0 или occopt == 2, при iscf не равным -2. Типичные значения 2 или 0, но может быть и 1.

occopt - опции заселенности, контроль обрабатывания параметров nband, осс и wtk. Если значение равно нулю, то все k-точки имеют одинаковое число зон и заселенность зон. Если значение равно единице (по умолчанию), то формируется массив осс для полупроводника. Значение равно 2 - k-точки могут иметь разное количество зон и различную заселенность, осс задается явно для зон во всех к-точках. Если значения occopt равны от 3 до 7, то это соответствует заселенности в металлах.

optcell - оптимизируют форму и размер ячейки, по умолчанию параметр равен нулю (изменение только позиций ядер). Если optcell = 1, то изменяется только объем ячейки (не изменяется rprim). Если optcell = 2, то производится полная оптимизация геометрии ячейки. Если optcell = 3, то производится полная оптимизация геометрии ячейки при постоянном объеме. Если параметр optcell равен 4, 5 или 6, то производится оптимизация геометрии ячейки в одном из направлений, при постоянных двух других. Если параметр optcell равен 7, 8 или 9, то производится оптимизация геометрии ячейки в двух направлениях, при постоянном одном.

optdriver - для каждого набора данных выбирается задачи, которая выполняется подпрограммой. По умолчанию optdriver = 0 - расчет основного состояния, подпрограмма gstate. Если optdriver = 1, то выполняется вычисление функции отклика (RF), подпрограмма respfh; optdriver = 2 - расчет восприимчивости (SUS), подпрограммой suscep; optdriver = 3 - расчет восприимчивости и диэлектрической матрицы (SCR), подпрограмма screening; optdriver = 4 - расчет собственной энергии (SIG), подпрограмма sigma; optdriver = 5 - расчет нелинейных функций отклика подпрограмма nonlinear; optdriver = 99 - расчет в приближении Бете-Солпитера (BSE), подпрограмма bethe_salpeter.

ppmfrq - мнимая частота в приближении GW с плазмонно-полюсной моделью, prtkpt -распечатать множество k-точек, по умолчанию параметр равен нулю, qpt - координаты q-точки, по умолчанию [0, 0, 0], используется если ngpt =1.

rfdir - задает направление вычисления функции отклика, по умолчанию [0, 0, 0]. Три элемента соответствуют примитивным векторам.

rfelfd - включение расчетов функции отклика электрического поля. По умолчанию параметр равен нулю - нет поля возмущения, 1 - полный расчет, 2 -только производная от основного состояния относительно волновых векторов, 3 -только генерация отклика первого порядка.

rprim - примитивные трансляции в реальном пространстве. По умолчанию параметр равен [[1, 0, 0], [0, 1, 0], [0, 0, 1]]. В столбцах матрицы задаются три безразмерных примитивных трансляции в реальном пространстве, по умолчанию это три единичных вектора в декартовой системе координат. Каждый из векторов умножается на значения в acell и коэффициент перемасштабирования scalecart. Альтернатива - angdeg.

scalecart - коэффициенты перемасштабирования декартовых координат, на которые умножаются вектора в rprim.

shiftk - смещение k-точек. Используется в случае kptopt > = 0 и должен быть определен, если nshiftk > 1. Возможно автоматическое задание комбинации параметров kptrlatt и shiftk, процедура описывается с входными переменными kptrlen.

spinat - задает первоначальный спин для каждого атома, по умолчанию ноль.

symmorphi - указывает на возможность работы с несимморфными векторами: 1 (по умолчанию) - разрешены, 0 - не разрешены.

symrel - симметрия в реальном пространстве, матрица 3x3. По умолчанию [[1, 0, 0], [0, 1, 0], [0, 0, 1]], если nsym == 1. Когда используется поиск симметрии, данный параметр будет рассчитываться автоматически.

toldfe - предел сходимости для абсолютных разностей полной энергии, которые должны дважды достигнуть этого значения для остановки расчета. По умолчанию ноль (игнорируется). Когда геометрия оптимизирована, использование toldfe следует избегать, лучше использовать toldff или tolrff. Когда все силы равны нулю в силу симметрии, то лучше использовать tolvrs.

toldff - предел сходимости для разностей сил для остановки расчета.

tolmxf - предел сходимости для максимальной разности сил для остановки расчета.

tolrff - предел сходимости для разностей относительных сил для остановки расчета (по отношению к максимальной силе).

tolvrs - предел сходимости для остатка потенциала. Остаточный потенциала -это разница между входным и выходным потенциалом, когда последний получается 103

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

tsmear - температура распределения, значение по умолчанию 0.01 Хартри.

Если occopt = 3 (распределение Ферми-Дирака), то tsmear является физической температурой, в других случаях - параметр для сходимости.

typat - набор меток каждого атома с обозначением его типа. Набор должен быть согласован с координатами атомов, с указанными псевдопотенциалами и зарядом ядра znucl.

wtk - веса для k-точек. По умолчанию параметр равен единице. Позволяет не использовать дробные веса.

xangst - параметр задает декартовы координаты атомов в ангстремах.

xcart - декартовы координаты атомов в атомных единицах.

xred - координаты атомов в обратном пространстве в пределах элементарной ячейки.

znucl - задает заряд ядра атома для каждого типа псевдопотенциала по порядку [1].

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >