Честно говоря, некоторые из Ваших вопросов и комменатриев показались несколько странными (возможно я что-то не понял), поэтому попробую сформулировать то, как я это вижу.АлександрI писал(а):Предлагаю вопрос о мнимых частотах (МЧ) алгоритмизировать.
Начнем с вопроса: Как программа узнает (не буду здесь и далее ставить такие слова в кавычки) о том, что будет МЧ? Конечно же на основании каких то численных величин. Каких именно?
...
Жду мнения всех заинтересованных и жертв МЧ в рассчитанном ИК-спектре...
Что такое "расчет частот" в любой кв.-мех. программе? Сначала это расчет гессиана (матрицы вторых производных энергии по координатам - координаты обычно просто декартовы). Расчет гессиана бывает аналитический (когда производные считаются по формулам теории вомущений) или численный (когда для расчета гессиана каждый атом сдвигают на некоторую величину в каждом из направлений x,y,z и потом считают энергию и градиент для искаженной конфигурации; из набора энергий и градиентов потом можно восстановить матрицу вторых производных). Нелишне отметить, что расчет гессиана имеет смысл только для оптимизированной геометрии (градиент примерно равен нулю, причем с хорошей точностью)
В декартовых координатах матрица гессиана симметрична, но не диагональна, что не очень удобно. Поэтому потом производят ее диагонализацию - переход к таким координатам, в которых гессиан диагонален (т.е. все элементы нули кроме тех, что стоят на диагонали) - такие координаты называются нормальными (пуристы меня поправят, что диагонализуют не гессиан, а его произведение на матрицу кинематических коэффициентов). В результате перехода к нормальным координатам, задача о колебаниях всей молекулы превращается в 3N-6 задач об одномерной гармоническом осцилляторе. Для каждого осциллятора частота определяется как freq=(k/mu)^0.5, где к - силовая постоянная, а mu - приведенная масса. Если помните, для гармонического осциллятора энергия E(pot) = kQ^2, т.е. k - это просто кривизна параболы в нуле (Q здесь это обозначение координаты, т.е. смещения). Если у Вас минимум по координате, т.е. парабола вогнута - k положительна, и частота действительная. Если же максимум - k отрицательна, и чистота мнимая.
Т.о., если у Вас есть мнимые частоты - это означает, что по каким-то координатам получаются "максимумы". Если это так, то что можно сделать? Поробовать сместить систему из максимума, т.е. исказить ее вдоль координаты с мнимой частотой. Если размер системы позволяет - то для этого можно просто сделать IRC (intrinsic reaction coordinate) - при таком расчете программа автоматически смещает систему с каким-то шагом вдоль выбраной координаты, переоптимизируя на каждом шаге. Это м.б. достаточно дорого (и сканировать надо бы в обе стороны), но в итоге должно привести систему к минимуму. Более простой вариант - взять тот же ChemCraft, визуализировать колебание с мнимой частотой, чуть-чуть сместиться от исходной геометрии и переоптимизировать координаты начиная с искаженной таким образом молекулы. Т.е. надо "вытолкнуть" систему из максимума (в котором градиент нулевой) и надеяться, что при оптимизации она "спустится" дальше по координате к минимуму. Важно не дергать сильно (тогда Вы точно выйдете за пределы минимумов по всем остальным координатам, и все займет много времени).
Мнимые частоты могут быть вызваны и "шумом", что особенно часто случается для "мягких" колебаний и при численной расчете. Надо понимать, что при численном расчете по сути проводится расчет разности параметров (энергии, градиентов) у состояний с очень близкими геометриями, а точность их оценки напрямую определяет точность рассчитанных частот. Это значит что для расчета гессиана надо достаточно жестко сводить геометрию (OPTTOL=1.0E-6) и ССП (NCONV=7 или даже 8). Кроме того, в сложных случаях м.б. имеет смысл смещать не на параметр, заданный по умолчанию (VIBSIZ= 0.01000), а на меньший. Грубо говоря, для расчете производной смещение должно быть бесконечно малым, а мы вместо этого используем какое-то конечное. Формально, чем меньше смещение - тем лучше, но с другой стороны это уже определяет требуемую точность расчета, которая для очень малых смещений будет просто запредельной. Значение, используемое по умолчанию - это своего рода компромисс, но для конкретной Вашей системы оптимальное значение может быть другое. И конечно необходимо для каждого направления (x,y,z) смещать каждый атом в обе стороны (NVIB=2). Если речь идет о DFT, то и о сетке интегрирования не стоит забывать. Но все же отмечу что параметры для DFT по умолчанию весьма разумны, и улучшать их надо если Вы ействительно думаете что проблема в численном шуме (небольшие частоты - в пределах, скажем, 20 см)
Да, пока строчил этот опус, меня уже опередили, и примерно теми же словами

