Главная Семестры Проекты Обо мне

Вычисление параметров для молекулярной механики

1-2.

Была дана оптимизированная структура этана в виде z-matrix, где вместо значений длин и углов связей стоят переменные. Необходимо создать порядка 20 разных файлов для расчёта энергии в Gamess с разными значениями по длине одной из связей. Для начала добавила шапку для dft к файлу и сохранила его под названием et.inp:

$CONTRL COORD=ZMT UNITS=ANGS dfttyp=b3lyp RUNTYP=ENERGY $END
$BASIS GBASIS=N31 NGAUSS=6
POLAR=POPN31 NDFUNC=1 $END
$GUESS GUESS=HUCKEL $END
$system mwords=2 $end
$DATA


Чтобы проверить, работает ли файл, я запустила Gamess.

3.

Создаем файл скрипта make_b.bash, как описано в задании, поменяв значение стартовой длины изменяемой связи так, чтобы она соответствовала файлу et.inp:

#!/bin/bash
for i in {-10..10}; do
    nb=$(echo "scale=5; 1.52986 + $i/50" | bc -l)
    sed "s/cc=1.001/cc=$nb/" et.inp > b_${i}.inp
done


Запускаем скрипт: bash ./make_b.bash

На выходе получаем 21 inp файл, при этом в каждом разное значение для переменной cc.

Затем необходимо запустить рассчет для полученных файлов. Для этого приписываем к файлу скрипта перед строкой done следующее:
gms b_${i}.inp 1 > b_${i}.log

Чтобы извлечь значения инергии из log файлов, используем команду awk. Перед строкой gms ставим знак # (комментируем), а после вводим:
awk '/TOTAL ENERGY =/{print $4}' b_${i}.log

Чтобы вывести значения длин связей, ставим следующее перед командой awk:
echo -n "$nb "

Запускаем скрипт и пишем результат в файл:
bash ./make_b_awk.bash > bond

Результаты находятся в файле
bond

5.

Далее необходимо построить зависимость энергии молекулы от длины одной связи. Для начала запустила gnuplot и ввела команду: plot "bond"



Рис. 1. Длина связи C-C.

На рисунке 1 видим график, похожий на параболу. Ищем коэффициенты в функции f(x)=a+k(x-b)^2, которые бы позволили наиболее близко описать наблюдаемую зависимость. Задаем функцию в развернутом виде: f(x)=a + k*x*x - 2*k*x*b + k*b*b и задаем стартовые значения коэффициентов: a=-80; k=1; b=1.5. Подгоняем коэффициенты под имеющиеся точки в файле bond: fit f(x) "bond" via a,k,b.

Полученные коэффициенты лежат в файле fit1.log


Рис. 2. Длина связи C-C.

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

6.

Необходимо проделать те же операции для валентного угла HCH, при этом его значения должны изменяться от 109.2 до 113.2.
Результаты находятся в файле
bond2



Рис. 3. Валентный угол HCH.

7.


Повторяем процедуру для торсионного угла d3, его значения должны изменяться от -180 до 180 c шагом 12. Не проводим подгонку.


Результаты находятся в файле bond3



Рис. 4. Торсионный угол d3.

Важно понимать, что -180 и +180 - это один и тот же угол, а значит, мы видим три минимума и три максимума.
 


©Melnichuk Anastasia