Считаем колебательные спектры (часть 1).

Nov 19, 2011 15:00

Итак, нам понадобятся:
ghemical: http://www.bioinformatics.org/ghemical/ghemical/index.html (версия под win32: http://www.bioinformatics.org/ghemical/download/release20080731/ghemical-2.98b-win32-tester.zip, скачивается, распаковывается и в /bin запускается relocate.bat, который пропишет в нужные места где искать служебные файлы, иконки и так далее). Несколько устаревшая, но очень удобная рисовалка молекул.
openbabel: http://openbabel.org/wiki/Main_Page - универсальный конвертер химических форматов. Вызывается командой babel из командной строки, в win32 есть графический интерфейс, но при наличии Far manager с его более-менее приличным текстовым интерфейсом он не очень нужен.
firefly: http://classic.chem.msu.su/gran/gamess/index.html (он же pcgamess, также в качестве считающего софта можно использовать orca, nwchem и ещё пару десятков подобных программ) - основной считающий движок, который решает уравнения квантовой физики и потом выводит результат в виде больших наборов цифирек.
wxMacMolPlt: http://www.scl.ameslab.gov/MacMolPlt/ графический интерфейс к GAMESS. Не полностью совместим с Firefly, что лечится патчами: http://slackbuilds.org/repository/14.0/academic/wxmacmolplt/ или добавлением опции -legacy к командной строке запуска firefly.
Gausssum: http://gausssum.sourceforge.net/ переводит спектры из машинночитаемых форматов в красивые графики или таблицы зависимости интенсивности от волнового числа, пересчитывает в интенсивности, моделирует уширение линий и компенсирует переоценку энергии при расчёте.

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



Щелкнув по области рисования правой кнопкой мыши и выбрав там Расчёт->Оптимизация геометрии (Compute->Geometry Optimization) мы получим изображенное на следующей картинке:


Если полученный результат не вызывает эстетического отторжения и не противоречит вашим представлениям о мироустройстве, то можно сохранить его в файл с помощью всё той же менюшки, вызываемой правой кнопкой мыши. Ghemical ругнётся, что новый формат может быть несовместимым со старым, но он уже настолько много лет как новый и все давно в курсе.
Если не получилось, то можно или отредактировать нужный кусок, или начать заново с чистого листа.

На этом этапе мы получаем полуфабрикат для дальнейших расчётов уже квантовой химией, к чему мы сейчас и перейдём.

Конвертируем получившийся файл с помощью babel во входной формат pcgamess:
babel ca3po42.gpr -o gamin ca3po42.inp
формат команды babel -i тип_входного_файла входной_файл -o тип_выходного_файла выходной_файл
Если тип файла можно однозначно определить по расширению (.gpr - ghemical), то соответствующие опции можно не указывать, что мы и сделали.

Копируем получившийся файл в каталог с установленным firefly. Следующая задача - написать заголовок файла. Это можно сделать с помощью wxMacMolPlt (Subwindow->Input Builder), а можно скопировать уже готовый. Кусок файла до $DATA должен выглядеть примерно так:
 $CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE DFTTYP=B3LYP MAXIT=300 $END
 $SYSTEM TIMLIM=180000 MEMORY=200000000 MKLNP=2 $END
 $BASIS GBASIS=N31 NGAUSS=6 $END
 $GUESS GUESS=HUCKEL $END
 $STATPT OPTTOL=0.0001 NSTEP=200 $END
 $P2P p2p=.t. dlb=.t. $END
 $DATA
пробелы в начале строки нужны.

SCFTYP=RHF - про спин, все электроны спарены, иначе UHF;
RUNTYP=OPTIMIZE - оптимизация геометрии;
DFTTYP=B3LYP - используем теорию функционала плотности, гибридный функционал B3LYP;
MAXIT=300 - число прогонов большого цикла оптимизации, должно быть несколько сотен;
$SYSTEM TIMLIM=180000 MEMORY=200000000 MKLNP=2 $END - ограничения на время, память (количество свободной памяти, измеряется в словах по 8 байт, максимум можно 256, т.е. 2GB), число параллельных потоков в процессоре (для DFT не работает);
$BASIS GBASIS=N31 NGAUSS=6 $END - гауссов базис 6-31G, минимальный из дающих похожие на правду результаты;
остальное можно найти в инструкции к firefly, стоящие здесь значения в принципе разумны для большинства задач.

Запускаем firefly командой:
./firefly -f -r -i имя_входного_файла -o имя_выходного_файла
или
./firefly -legacy -f -r -i имя_входного_файла -o имя_выходного_файла
если используется непатченная версия wxMacMolPlt

если мы всё сделали правильно, то компьютер на какое-то время загрузится работой. Наблюдать за процессом расчёта можно с помощью wxMacMolPlt (Subwindow->Energy plot) или просто выводя выходной файл на экран, например, с помощью всё того же Far.

Если расчёт закончился удачно, то в конце файла будет написано нечто вроде
 EXECUTION OF FIREFLY TERMINATED NORMALLY 20:31:49 19-NOV-2011
и в файле будет строчка
1 ***** EQUILIBRIUM GEOMETRY LOCATED *****
тогда мы получили скорей всего правильную геометрию и можем продолжать дальше

Либо возможен случай
1 ***** FAILURE TO LOCATE STATIONARY POINT, TOO MANY STEPS TAKEN *****
UPDATED HESSIAN, GEOMETRY, AND VECTORS WILL BE PUNCHED FOR RESTART
в этом случае делаем новый входной файл
babel -i gamout имя_выходного_файла -o gamin имя_нового_входного
копируем заголовок и запускаем firefly снова пока не получим волшебное слово
EQUILIBRIUM в выходном файле.

Посмотреть что получилось можно всё в том же wxmacmolplt:



Продолжение в следующей части: http://dn2010.livejournal.com/3398.html

Полезные ссылки:
http://classic.chem.msu.su/gran/gamess/marek/en/docs/PCG-Tutorial-Usage.pdf - руководство по использованию Firefly вместе с wxMacMolPlt.
http://classic.chem.msu.su/gran/gamess/Firefly_input_rev002.pdf - список ключевых слов

квантовая химия, ликбез

Previous post Next post
Up