Gamess (General Atomic and Molecular Electronic Structure System) — програмний пакет, призначений для розрахунку енергії, геометрії й структури молекул, фізичних характеристик наноструктур й опису механізмів хемічних реакцій (наприклад, дисоціація, синтез).
За допомогою програми реалізується множина алгоритмів для різних обчислювальних методів квантової хімії, які мають різний ступінь точності й обчислювальної навантажуваності, починаючи від більш простих й швидких напівемпіричних методів AM1 та PM3 до більш точних, але вимагаючих більших обчислювальних ресурсів PCQDPT, MP4(SPTQ).
Можливості
Основні можливості пакета:
- врахування енергії електронної кореляції на основі теорії збурень, конфігураційної взаємодії, зв'язаних кластерів й функціоналу щільності;
- автоматична оптимізація геометрії, пошук перехідних станів із використанням аналітичних градієнтів;
- обчислення молекулярних властивостей, зокрема дипольного моменту, електростатичного потенціалу, електронної та спінової щільності.
Програмні модулі Gamess підтримують паралельний режим обчислень як на багатопроцесорних ЕОМ, так і у кластерах робочих станцій. Gamess реалізований практично на усіх відомих програмно-апаратних платформах. Існує декілька версій цього продукту. Американський варіант пакета Gamess (US) відноситься до числа вільно розповсюджуваних (некомерційних) програм, функціонування якого підтримується групою AmesLaboratory. Англійський варіант Gamess підтримується групою Daresbury Laboratory.
Інтерфейс
Управління програмою здійснюється через вхідний текстовий файл, у якому записується інформація про досліджувану сполуку й вказуються які фізичні характеристики даної сполуки повинні бути обчисленими, за допомогою яких методів це повинне бути зроблено та з якою точністю. Розширення файлу може бути довільним. Після створення вхідного файлу з обчислювальним завданням необхідно запустити програму за допомогою самостійно написаного стартового файлу *.bat. Цей файл можна створити у будь-якому текстовому редакторі.
Група команд del видаляє робочі файли, які залишилися від попередніх запусків програми. Далі необхідно задати обчислювальне завдання за допомогою команди COPY, наприклад, лістинг:
C:\Gamess\Zavdannja.txt
Зміст завдання може бути наступний:
$CONTRL RUNTYP=ENERGY SCFTYP=UHF MULT=3 $END
$GUESS GUESS=HUCKEL $END
$BASIS GBASIS=N31 NGAUSS=6 DIFFSP=.FALSE $END
$DATA
Energy Carbon 2
C1
Carbon 6.0 0.0 0.0 0.0
Carbon 6.0 2.0 0.0 0.0
$END
У завданні записані дані для обчислення енергії системи з двох атомів вуглецю, які знаходяться на відстані 2 ангстрем. Система має мультиплетність M=3, використовуваний базис - N31.
Запуск програми здійснюється командою
C:\Gamess\PCGAMESS.EXE > C:\Gamess\Virishenja.out
У команді вказано, що отримане рішення повинне бути записаним у вихідний файл Virishenja.out.
Вихідним файлом є текстовим, розширення може бути довільним (*.out наведено для прикладу). Для візуалізації результатів використовуються відповідні програми.
Вихідний файл складається з блоків із командами. У ньому кожний блок відповідає за певні функції обчислювального алгоритму, а також за сам вибір алгоритму рішення з вже реалізованих у програмі варіантів. Всередині блоку знаходяться змінні. Кожний блок має структуру
$ім'я_блоку ... <змінна> = <значення>... $END
Положення початку блоку — другий символ у рядку. В якості першого символу у рядку повинен бути лише <!>, цей символ перетворює усі стоячі після нього символи у коментар.
Сам вихідний файл має велику величину. Його структура є наступною:
- Підготовча частина.
- Процедура самоузгодженого рішення.
- Оптимізовані молекулярні орбіталі.
- Енергетичні характеристики системи.
- Фізичні характеристики системи.
У підготовчій частині міститься інформація про завдання, використовуваний базисний набір із вказанням показників експонент й коефіцієнтів стиснення, значення усіх змінних у всіх активних блоках.
Процедура самоузгодження рішення. Total Energy - повна енергія системи, показники E Change (прирощення по енергії на і-тому кроці) й Density Change (відносна зміна щільності) виконують функцію контролю збіжності рішення[1].
Приклад
Приклад здійснення процедури самоузгодження для знаходження повної енергії молекули води методом Хартрі-Фока-Рутаана.
Iteration
|
Ex
|
Total energy E
|
Change
|
Density change
|
1
|
0
|
-75.368188477
|
-75.368188477
|
0.539575981
|
2
|
1
|
-75.571980468
|
-0.203791991
|
0.137147099
|
3
|
2
|
-75.582758173
|
-0.010777705
|
0.051588713
|
Збіг розв'язку хвильового рівняння досягається за 8 ітерацією при критерію за матрицею . Після досягнення збігу проводиться одна додаткова ітерація
Iteration
|
Ex
|
Total energy E
|
Change
|
Density change
|
4
|
3
|
-75.583872052
|
-0.001113878
|
0.002713332
|
5
|
4
|
-75.583913740
|
-0.000041689
|
0.001781922
|
6
|
5
|
-75.583923021
|
-0.000009280
|
0.000183589
|
7
|
6
|
-75.583923056
|
-0.000000035
|
0.000031273
|
8
|
7
|
-75.583923062
|
-0.000000007
|
0.000004804
|
9
|
8
|
-75.583923062
|
0.000000000
|
0.000001855
|
Розраховане значення повної енергії молекули води для даного прикладу рівне -75.583923 Хартрі
(1 Хартрі=(/a)=627,5096 ккал/моль=2625,500 кДж/моль). Шість значущих цифр після крапки відповідають точності розрахунку не гірше 0.01 кДж/моль. Як видно із прикладу, необхідна точність була досягнута уже на шостому циклі ітераційного процесу, тобто збіг за енергією зазвичай досягається раніше.
Див. також
Примітки
- ↑ Н.Н.Дегтяренко - Описание программных пакетов для квантовых расчетов наносистем.