Результаты упражнений
Вычисление параметров для молекулярной механики
1.Суть задания состоит в определении констант ковалентных взаимодействий
для молекулярной механики на основе квантово-химических расчётов.
Предоставлена оптимизированная структура этана в виде z-matrix :
$DATA
eth
C1
C
C 1 cc
H 2 ch 1 cchv
H 2 ch 1 cch 3 d1 0
H 2 ch 1 cch 3 d2 0
H 1 ch 2 cch 3 d3 0
H 1 ch 2 cch 5 d3 0
H 1 chv 2 cch 4 d3 0
cc=1.52986
ch=1.08439
chv=1.08439
cch=111.200
cchv=111.200
d1=120
d2=-120
d3=180
$END
Составим файл-заготовку для размножения, пусть имя файла будет et.inp.
Теперь создадим текстовый файл скрипта make_b.bash :
make_b.bash
Запустим скрипт : Это и будут входные файлы для оптимизации геометрии средствами GAMESS.
Появился 21 inp файл и в каждом разное значение для переменной сс.
2.Запустим расчёт для этих файлов, для этого перед строчкой с done
вставим запуск Gamess: gms b_${i}.inp 1 > b_${i}.log
Теперь нам надо извлечь значение энергии из log файла.
Удобно воспользоваться awk.
Сначала в скрипте комментируем запуск Gamess поставив в начало строчки c gms # .
Добавим после за комментированной строчки вызов awk, при этом мы ищем строчку с TOTAL ENERGY и
печатаем 4ое поле считая что поля разделены пробелами:
awk '/TOTAL ENERGY =/{print $4}' b_${i}.log
Запустим скрипт. На экране должно появится 21 значение энергии.
Теперь удобно было бы выводить и значение длины связи, для этого добавим
перед вызовом awk распечатку переменой nb.
Распечатаем переменную и несколько пробелов без переноса строки:
echo -n "$nb "
Теперь запустим скрипт, получим (bond),перенаправим поток в файл :
bash ./make_b.bash > bond
3.Эту зависимость построим в gnuplot.
Сохраним значения коэффициентов
a = -79.7652 +/- 0.0004522 (0.000567%)
k = 0.563608 +/- 0.02335 (4.142%)
b = 1.55432 +/- 0.002455 (0.1579%)
Большая ошибка для k, из-за этого функция и точки совпадают не точно.
6.Проделаем аналогичные операции для валентного угла HCH, его значения должны изменяться от 109.2 до 113.2.
make_b_2.bash
углы_энергии
Сохраним полученные коэффициенты в отчёт.
a = -79.7647 +/- 4.785e-07 (5.999e-07%)
k = 0.000223091 +/- 2.444e-07 (0.1096%)
b = 111.29 +/- 0.0005995 (0.0005387%
Зависимость энергии от угла аппроксимировали параболой:
7.Проделаем аналогичные операции для торсионного угла d3, его значения должны изменяться от -180 до 180 c шагом 12.
make_b_3.bash
углы_энергии
Сохраним полученные коэффициенты в отчёт.
a = -79.7623 +/- 6.577e-07 (8.245e-07%)
k = 0.00234519 +/- 8.891e-07 (0.03791%)
n = 3.00014 +/- 0.0002247 (0.007491%)
Зависимость энергии от угла аппроксимировали косинусом f(x)=k*cos(n*x)+a (k=0,05, n=3, a=-80)
Функция имеет три минимума:
|
|
|
|