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

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

2. Создем файл-заготовку для размножения et.inp. Проверил работает ли он, для чего запускаес GAMESS и получаем выходной файл без ошибок.

3. Делаем скрипт make_b.bash для того чтобы создать 21 файл с разными длинами связей.

4. Добавляем в скрипт команды для запуска GAMESS и вывода нужных нам строк. В итоге получаем файл: bond.

5. Запускаем Gnuplot:

	gnuplot

Сначала зададаем функцию в развернутом виде, в строке gnuplot введём:

	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 

Получаем значения коэффициентов:

    a = -79.7652
    k = 0.563608
    b = 1.55432

Строим график:

set term 'png'
set output 'gnu_bond.png'
plot "bond", f(x)

6. Сделаем аналогичные операции для валентного угла HCH

Его значения должны изменяться от 109.2 до 113.2

Скрипт для создания файлов: make_hch

Получаем файл: HCH

Получаем значения коэффициентов и график:

a=-79.7647
k=3.56075e-05
b=111.38

7. Сделаем аналогичные операции для для торсионного угла d3

Его значения должны изменяться от -180 до 180 c шагом 12

Получаем файл: torsion

Значения коэффициентов и график с апроксимированной зависимостью функицией:

f(x)=a*cos(k*x*pi/180)+b
a=0.00234519
k=3.00014
b=-79.7623

Так как крайние точки совпадают, получается 3 минимума.