Мне нужно для своих задач научиться решать ядерное уравнение Шредингера в приближении “Жёсткий ротатор – гармонический осциллятор”. Изначально для этого надо найти поверхность потенциальной энергии молекулы в гармоническом приближении. Я провёл такой расчёт для молекулы озона в программе Gaussian09. Программа мне выдала выходной файл (с расширением .out) и файл “форматированный чекпоинт” с расширением .fch.
В файле .fch напечатаны такие декартовы координаты атомов:
O1 0.000000000 0.000000000 0.455483035
O2 0.000000000 1.131064087 -0.227741017
O3 0.000000000 -1.131064087 -0.227741017
Далее приводятся силы (градиенты энергии):
Цитата:
Cartesian Gradient R N= 9
1.35706545E-15 -6.34041430E-16 9.06506923E-08 -1.71369282E-16 7.92786370E-08
-4.53253417E-08 -1.18569617E-15 -7.92786725E-08 -4.53253275E-08
Я привёл этот кусок чтобы проиллюстрировать, что моя молекула находится в положении минимума энергии (равновесная геометрия) – градиенты примерно нулевые.
Далее в файле напечатаны силовые постоянные (вторые производные энергии по декартовым координатам атомов):
Цитата:
Cartesian Force Constants R N= 45
-1.26603926E-04 3.64626364E-12 3.53287483E-01 -3.87525061E-12 -1.25555859E-12
3.67103438E-01 6.33019612E-05 3.70967163E-12 3.02013391E-12 -7.00734661E-05
-5.91922853E-12 -1.76643742E-01 1.18068182E-01 1.88796760E-13 2.81060001E-01
3.22031734E-12 1.06807784E-01 -1.83551719E-01 -3.06840880E-12 -1.12437983E-01
1.23835123E-01 6.33019604E-05 6.01812544E-12 -1.98130066E-12 6.77151024E-06
-3.91208118E-12 2.88949326E-13 -7.00734673E-05 -5.40095541E-15 -1.76643742E-01
-1.18068182E-01 -3.91267352E-12 -1.04416259E-01 5.63019923E-03 1.86526736E-13
2.81060001E-01 -3.82414369E-13 -1.06807784E-01 -1.83551719E-01 -2.89212401E-13
-5.63019923E-03 5.97165964E-02 3.06718627E-12 1.12437983E-01 1.23835123E-01
Чтобы было понятнее, матрица вторых производных для этой молекулы выглядит так:
-0.0001 0.0000 0.0000 0.0001 0.0000 0.0000 0.0001 0.0000 0.0000
0.0000 0.3533 0.0000 0.0000 -0.1766 0.1068 0.0000 -0.1766 -0.1068
0.0000 0.0000 0.3671 0.0000 0.1181 -0.1836 0.0000 -0.1181 -0.1836
0.0001 0.0000 0.0000 -0.0001 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 -0.1766 0.1181 0.0000 0.2811 -0.1124 0.0000 -0.1044 -0.0056
0.0000 0.1068 -0.1836 0.0000 -0.1124 0.1238 0.0000 0.0056 0.0597
0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0001 0.0000 0.0000
0.0000 -0.1766 -0.1181 0.0000 -0.1044 0.0056 0.0000 0.2811 0.1124
0.0000 -0.1068 -0.1836 0.0000 -0.0056 0.0597 0.0000 0.1124 0.1238
Такая же матрица показана в .out файле, так что вроде всё правильно.
Как мне объяснили, матрицу силовых постоянных надо диагонализировать, тогда диагональными элементами станут фундаментальные частоты колебаний данной молекулы (точнее, квадраты циклических частот). Я продиагонализировал и к сожалению не вышло ничего путного. Вот какие элементы на диагонали получилось после диагонализации:
-0.0001 0.3533 0.3671 -0.0001 0.2811 0.1238 -0.0001 0.2811 0.1238
Тут явно вышла ерунда поскольку ненулевые значения имеют разный знак. Согласно расчёту в программе Gaussian, эта молекула должна иметь такие частоты колебаний: 639.4649, 991.0042, 1066.5987.
Вначале мне сказали что моя ошибка в том, что я не переводил матрицу силовых постоянных в масс-взвешенные координаты; но когда начал переводить – лучше не стало, а потом я взял именно молекулу озона, у которой все атомы одинаковы, соответственно с точностью до множителя всё должно быть корректно и без этого перевода координат.
Ещё я возможно слышал, что для этой задачи надо ещё использовать G-матрицу, но я пока не понимаю что это такое.
Прошу помочь.