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

May 27, 2012 11:13

Продолжение, часть 1, часть 2

Обычно для публикации в статье, курсовой, дипломе, диссертации и т.д. результат предыдущего этапа не слишком хорош, но его можно доработать в ручном режиме. для этого нам понадобится:На предыдущем этапе мы получили колебательные спектры вещества в выходном файле Firefly. После построения спектров с помощью GaussSum в том же каталоге, где был исходный файл, появляется подкаталог gausssumверсия (например, gausssum2.2) и в нём два текстовых файла IRSpectrum.txt и RamanSpectrum.txt с пересчитанными в нём спектрами.


Кроме того, обычно расчёт проводится для сравнения с экспериментальным спектром, который для этого нужно экспортировать в текстовый формат, при необходимости удалить заголовок и заменить запятые в вещественных числах на точки, а разделитель колонок на пробелы или Tab. Из gwyddion экспорт можно выполнить через меню График->Экспортировать текст и там выбрать Совместимый с gnuplot.

Для построения красивого спектра из вышеописанных файлов будем использовать gnuplot. Скопируем оба текстовых файла в один каталог и запустим из него же gnuplot (под win32 последние версии gnuplot, если запускать его из меню, работают с файлами в каталоге Мои Документы или Documents, если нужно указать путь, то он пишется через прямые косые черты "/"). набор графиков строится командой plot:
plot "Fe-633.txt" using ($1/100):2 with lines title "1" ,\
"pcs-fe-785.txt" using ($1/100):2 with lines title "2" ,\
"Fe.txt" using 1:($2/10.0) with lines title "3"
в кавычках имя файла, using - какие столбцы в таблице использовать как оси X и Y (например, using 1:4), with lines - линиями, title - заголовок графика в легенде. В using можно делать простые математические операции, как в этом примере, тогда вместо номера столбца пишется операция в круглых скобках, перед номерами столбцов в операции ставится знак доллара.
Другие команды gnuplot:
  • set xlabel "Wavenumber/cm^{-1}" - подпись оси X, аналогично ylabel для Y, x2label и y2label - оси справа и сверху, если они нужны.
  • set grid - сетка
  • set xrange [0:4000] - диапазон значений по оси X, аналогично yrange, * - считать границу автоматически.
  • save "raman.plt" и load "raman.plt" - сохранить набор команд в файл и загрузить обратно
  • fit f(x) "lc-hem.csv" via a,b,c,d  - аппроксимация данных из файла "lc-hem.csv" функцией f(x) подгонкой переменных a, b, c, d
  • f(x) = a*x*x*x+b*x*x+c*x+d - задание функции
  • a = 450.0 задание переменной вещественного типа, b=20 - целого типа.
  • set terminal postscript eps enhanced monochrome "Helvetica"18
    set output "raman-lc.eps"
    replot - построить график в файл eps, set terminal png - то же самое, но в файл png.
остальное описано в руководствах. Обычно я подбираю интенсивность теоретического спектра умножением спектра на постоянную величину таким образом, чтобы величина наиболее яркой линии в спектре была одинакова на теоретическом и практическом, у них всё равно величины измерения получаются разные, графики сдвигаю друг относительно друга с помощью добавления некоторой постоянной величины.




Теперь пришла пора разобрать спектр на отдельные линии. Открываем рассчитанный файл в wxmacmolplt, экспортируем File->Export, внизу выбираем формат png, меняем dpi на 300dpi (Print), включаем прозрачность Enable background transparency. Загружаем этот файл в GIMP, Цвет->Составляющие->Разобрать, там RGBA и разобрать на слои. В окне Слои. каналы и контуры выбираем Слои, и убираем значок видимости (глаз) у всех слоёв, кроме альфа-канала. Инструментом "Выделение смежных областей" выделяем белую область. Закрашиваем там серым те атомы и связи молекулы, которые для данной линии в спектре остаются неподвижны (В wxmacmolplt колебательные моды видны в менюшках Subwindow->Frequencies и View->Animate mode). Собираем обратно Цвет->Составляющие->Собрать->RGBA, получаем полупрозрачную модель молекулы. Расставляем поверх изображения стрелок для данной колебательной моды (их удобно вертеть командами Слой->Преобразования). Получаем нечто вроде этого:


далее или нафотошопливаем эти картинки поверх спектра в том же GIMP, или собираем отдельную большую картинку с ними, расставляя их по направляющим (Изображение->Направляющие).

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

Previous post Next post
Up