На главную страницу

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

  • Длина С-С связи
    Дана оптимизированная структура этана в виде 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
    

    Наша цель состоит в том, что бы создать порядка 20 разных файлов для расчёта энергии в Gamess с разными значениями по длине одной из связей.
    Сделаем для этого bash-скрипт.
    Но сначала мы сделаем файл-заготовку для размножения с изменеными данными о входных координатах(COORD=CART на COORD=ZMT).
    Итак получили файл et.inp
    Теперь напишем скрипт. Вот он make_b.bash
    В итоге скрипт выдал нам таблицу с энергими и с длинной связи.
    1.32986    -79.7339315289
    1.34986    -79.7406173737
    1.36986    -79.7462868578
    1.38986    -79.7510331813
    1.40986    -79.7549412921
    1.42986    -79.7580886263
    1.44986    -79.7605457819
    1.46986    -79.7623771323
    1.48986    -79.7636413832
    1.50986    -79.7643920816
    1.52986    -79.7646780790
    1.54986    -79.7645439543
    1.56986    -79.7640303992
    1.58986    -79.7631745699
    1.60986    -79.7620104053
    1.62986    -79.7605689179
    1.64986    -79.7588784564
    1.66986    -79.7569649422
    1.68986    -79.7548520851
    1.70986    -79.7525615748
    1.72986    -79.7501132582
    

    Все переправим в bond
    Теперь с помощью gnuplot отметим точки и "натянем" на параболу: f(x)=a + k*x*x - 2*k*x*b + k*b*b
    Параметры:
    a=-80
    k=1
    b=1.5
    Получились следующие коэффициенты:
    a=-79.7652+/-0.0004522
    k=0.563608+/-0.02335
    b=1.55432+/-0.002455
    
    И график:

    Точки не совпадают с графиком.=( Нужна более сложная зависимость для полного совпадения.

  • Валентные углы
    Теперь все тоже самое сделаем для валентных углов.
    Скрипт make_ang.bash
    Все переправим в ang
    Апроксимируем с той же функцией c теми же коэффициентами
    Получились следующие коэффициенты:
    a=-79.7647
    k=3.56075e-05
    b=111.38
    

    И график:

    Успех.Здесь функция аппроксимировалась лучше.

  • Торсионные углы
    Теперь тоже самое делаем для торсионных углов.
    Скрипт make_tor.bash
    Все переправим в tors
    Итак получаем после обработки данных в gnuplot график:

    Количество минимов=3. Правый и левый совпадают + 2 по середине.
    обратно

    © Сливко-Кольчик