Помощь в написании студенческих работ
Антистрессовый сервис

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

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

На базе компьютерной технологии VBA разработан программный комплекс для расчета параметров теории молекулярных колебаний. Тестирование проведено на молекуле муравьиной кислоты, для которой имеется экспериментальный материал по спектрам высокого разрешения 28 изотопозамещенных молекул. Согласно результатов анализа для получения силовых полей наиболее эффективными являются базисы программы… Читать ещё >

Молекулярное моделирование: Методы расчета молекулярных параметров (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Молекулярные модели и их математическое описание
    • 1. 1. Криволинейные координаты в молекулярной динамике и элементы тензорного анализа
    • 1. 2. Молекулярный гамильтониан и вибронная модель
    • 1. 3. Адиабатическое приближение и колебательно-вращательная модель многоатомной молекулы
    • 1. 4. Колебательная модель многоатомной молекулы и естественные колебательные координаты
  • 2. Расчетные схемы и методы теории молекулярных колебаний
    • 2. 1. Колебательная модель и расчетные формулы для вычисления параметров колебательно-вращательного взаимодействия
    • 2. 2. Валентно-оптическая схема и колебательно-вращательная модель многоатомной молекулы
    • 2. 3. Расчетные формулы обертонной спектроскопии
    • 2. 4. Естественные колебательные координаты в расчетных методах СКАК «
    • 2. 5. Колебательная модель и уравнение рассеяния быстрых электронов на молекуле
    • 2. 6. Расчетные формулы для молекулярной поляризуемости и гиперполяризуемости
  • 3. Алгоритмы и программы расчета молекулярных параметров теории колебаний многоатомных молекул 84 3.1 .Алгоритмы решения прямой механической задачи теории колебаний молекул
    • 3. 2. Алгоритмы решения обратной механической задачи теории колебаний
    • 3. 3. Расчетные формулы для вычисления параметров колебательно-вращательного взаимодействия сложных молекулярных систем
    • 3. 4. Алгоритм вычисления параметров кинематической ангармоничности
  • 4. Моделирование внутримолекулярной динамики пятичленных циклических соединений и их галоидозамещенных
    • 4. 1. Тестирование комплекса программ для анализа внутримолекулярной динамики
    • 4. 2. Моделирование внутримолекулярной динамики галоидозамещенных пиррола, фурана и тиофена

Молекулярное моделирование, сравнительно молодое научное направление в физике молекул, сформировалось в последнее десятилетие текущего века на базе вычислительной спектроскопии и квантовой механики молекул (квантовой химии). Начало было положено создателями отечественной школы молекулярной спектроскопии: М. В. Волькенштейном, М. А. Ельяшевичем, Б. И. Степановым.

Дальнейшее развитие молекулярная спектроскопия получила благодаря работам Л. А. Грибова, М. А. Ковнера, Л. М. Свердлова, в которых впервые в отечественной литературе описаны расчетные методы колебательной спектроскопии многоатомных молекул. Последними была создана и известная в научном мире саратовская школа молекулярной спектроскопии. Теоретические работы представителей этой школы: В. И. Березина, Л. М. Бабкова, М. В. Приютова внесли существенный вклад в развитие вычислительной спектроскопии, а компьютерная реализация предложенных методов позволила осуществить массовые расчеты молекулярных параметров теории колебательных и электронно-колебательных спектров в гармоническом приближении.

Бурное развитие экспериментальной техники спектроскопии высокого и сверхвысокого разрешения требует дальнейшего развития расчетных методов вычислительной спектроскопии, связанного с необходимостью учета ангармонических эффектов и колебательно-вращательного взаимодействия. Появившиеся здесь трудности были обусловлены ограниченностью принятого для описания молекулярных моделей математического аппарата, каковым до последнего времени являлся классический анализ.

Поскольку переход от исходного квантовомеханического уравнения для молекулярной системы к его упрощенным вариантам — молекулярным моделям — связан с введением системы криволинейных координат, наилучшим образом описывающих молекулярную динамику и позволяющих в том или ином приближении разделить различные виды молекулярного движения, то естественным шагом является использование математического аппарата тензорной алгебры. Это позволяет без дополнительных, нередко обременительных предположений переходить к модельным молекулярным гамильтонианам, осуществлять их разложения, получать расчетные формулы колебательной спектроскопии в соответствующем приближении, сравнивать полученные в рамках одного приближения, но с использованием различных систем криволинейных координат, указанные расчетные формулы для рассматриваемых молекулярных параметров.

Цель диссертационной работы состоит в следующем:

Использование квантовомеханических методов расчета электронной структуры молекул для решения прямых и обратных задач теории молекулярных колебаний.

На защиту выносятся следующие результаты:

1. Методика получения расчетных формул для молекулярных параметров теории колебательных и колебательно-вращательных спектров многоатомных молекул с привлечением математического аппарата тензорного и функционального анализа и использованием системы естественных колебательных координат для описания ядерной подсистемы.

2. Алгоритмы решения прямой и обратной механической задачи при использовании полной системы естественных колебательных координат, расчета кориолисовых постоянных, постоянных центробежного искажения и дефектов инерции в многоатомных молекулах.

3. Использование квантовомеханических расчетов электронной структуры многоатомных молекул для моделирования силовых полей и колебательных спектров галоидозамещенных фурана, пиррола и тиофена, предвычисления параметров колебательно-вращательного взаимодействия.

Научная новизна.

Используя математический аппарат тензорного анализа и систему естественных колебательных координат для описания ядерной подсистемы многоатомной молекулы с учетом кинематической, механической, электрооптической ангармоничности и колебательно-вращательного взаимодействия, получены расчетные формулы для обертонной спектроскопии, молекулярной поляризуемости и гиперполяризуемости. Проведено сопоставление двух подходов в описании колебательной модели многоатомной молекулы, уточнено выражение для функции плотности вероятности и связанного с ней уравнения рассеяния быстрых электронов на молекуле. Осуществлена компьютерная реализация задачи предвычисления параметров колебательно-вращательного взаимодействия в многоатомных молекулах с привлечением результатов квантов омеханических расчетов геометрической и электронной структуры. Проведен анализ внутримолекулярной динамики малоизученного класса замещенных пятичленных циклических соединений (фурана, пиррола и тиофена).

Научная ценность.

Исследователи в области физики, химии и биологии могут использовать полученные результаты для создания материалов с заданными свойствами, таких как лекарственные препараты, рабочие среды для оптических генераторов, присадок для топлива и другие химико-технологические продукты.

Практическая ценность.

Результаты диссертации могут быть внедрены в научно-исследовательских лабораториях, занимающихся исследованиями в области анализа структуры и спектров сложных молекулярных объектов. Они позволят получать структурные и энергетические параметры исследуемых соединений, проводить анализ электронографических экспериментальных данных.

Степень достоверности результатов.

Достоверность результатов обеспечивается соответствием применяемого математического аппарата классу решаемых задач, каковым является уравнение Шредингера для молекулярной системы, удовлетворительным совпадением полученных расчетных данных с тестовыми результатами. Традиционно используемые в практике спектрохимических расчетов формулы для параметров теории молекулярных колебаний, полученные в гармоническом приближении, представляют собой частный случай полученных соотношений.

Апробация работы.

Основные результаты диссертационной работы были представлены на: I Всероссийской конференции по молекулярному моделированию (Москва, 1998) — XXIV Европейском конгрессе по молекулярной спектроскопии (Прага, 1998) — XIII Национальной школе-семинаре с международным участием по спектроскопии молекул и кристаллов (Сумы, 1997) — II и III межвузовских конференциях по спектроскопии и физике молекул и проблемам преподавания физики (Саратов, 1997,1998).

Структура диссертации.

Диссертация состоит из введения, четырех глав, заключения, приложения и списка литературысодержит 152 страницы машинописного текста.

Основные выводы и результаты.

1. Описана методика использования математического аппарата тензорного анализа для построения модельных молекулярных гамильтонианов, установления связи между молекулярными параметрами, полученными при использовании различных систем криволинейных координат.

2. Получены расчетные формулы для вычисления ряда молекулярных параметров теории колебательных спектров молекул (постоянных колебательно-вращательного взаимодействия, среднеквадратичных амплитуд колебаний, поляризуемостей и гиперполяризуемостей, интенсивностей) с учетом колебательно-вращательного взаимодействия и ангармонических эффектов.

3. Разработана схема анализа колебательно-вращательного взаимодействия в многоатомных молекулах с использованием естественных колебательных координат и квантово-механических методов расчета электронной структуры молекул.

4. На базе компьютерной технологии VBA разработан программный комплекс для расчета параметров теории молекулярных колебаний. Тестирование проведено на молекуле муравьиной кислоты, для которой имеется экспериментальный материал по спектрам высокого разрешения 28 изотопозамещенных молекул. Согласно результатов анализа для получения силовых полей наиболее эффективными являются базисы программы Gaussian-94: HF/3−21G, HF/D95V, Hf/LanL2DZ. Самыми неэффективными оказались базисы: MP2/CEP-4G* и HF/LanL2MB. На центробежные искажения выбор метода существенного влияния не оказывает. Как и следовало ожидать (из теории колебательно-вращательных спектров) высока чувствительность кориолисовых постоянных к изменению системы силовых постоянных от метода к методу. Здесь наилучшими являются базисы: HF/3−21G, HF/D95V,.

ШЬапЬ2Б2, ИР/БИС**, НР/СЕР-ЗЮ**. Принимая во внимание согласие рассчитанных в этих базисах частот колебаний, можно сделать вывод о наилучших результатах расчета параметров муравьиной кислоты при использовании базисов НР/3−2Ш и НРЛ395У.

5. Осуществлен квантово-механический расчет молекул класса пятичленных циклических соединений (пиррол, фуран и тиофен), проведен анализ внутримолекулярной динамики перечисленных молекул.

6. Для данного класса молекул более предпочтительным является следующий подход: оценка геометрии и силовых постоянных осуществляется методами квантовой химии, а затем решается обратная задача.

7. Проведен анализ эффективности базисов программы Оаи881ап-94 относительно класса пятичленных циклических соединений. В этом случае наилучшими являются базисы Ш73−2Ш и Ш76-ЗЮ.

Заключение

.

Показать весь текст

Список литературы

  1. В.И., Элысин М. Д. Криволинейные координаты и соотношение Душинского в теории молекулярных спектров. Общий подход // Журн. прикл. спектр,-1991,-Т.55.-№ 1.-С.69−73.
  2. В.И., Элькин М. Д. Криволинейные координаты и соотношение Душинского в теории молекулярных спектров. Анализ ядерной подсистемы // Журн. прикл. спектр.- 1991, — Т.55- № 2, — С.225−229.
  3. Berezin V.I., Elkin M.D. Semiempirical models in theory of intensities of rotation-vibration of polyatomic molecules// J.Mol.Struct 1992, — V.272 — P.95−109.
  4. М.Д., Костерина Э. К. Внутримолекулярная динамика и ее математическое описание в задачах молекулярной спектроскопии и газовой электронографии // Хим. физика 1994 — № 13 — С.29−32.
  5. М.Д., Березин К. В., Ведяева С. Ю., Пулин О. В., Шатурная О. С. Математическое описание внутримолекулярной динамики в задачах молекулярной спектроскопии // Журн. прикл. спектр 1998 — Т.65- № 1- С.40−46.
  6. П.К. Риманова геометрия и тензорный анализ. М.: Наука, 1964.-664с.
  7. В.И., Элькин М. Д. Валентно-оптическая схема и колебательно-вращательная модель многоатомной молекулы // Журн. прикл. спектр 1992-Т.56- № 3- С.368−372.
  8. М.В., Грибов JI.A., Ельяшевич М. А., Степанов Б. И. Колебания молекул. М.: Наука, 1972. 699с.
  9. И.Б. Эффект Яна-Теллера и вибронное взаимодействие в современной химии. М.: Наука, 1987. 343с.
  10. П.А., Киселев А. А. Введение в теорию молекулярных спектров. Л.: Изд. ЛГУ, 1983.-232с.
  11. Ф. Р. Симметрия молекул и молекулярная спектроскопия. М.: Мир, 1981.-451с.
  12. А.Г. Ангармоническая теория рассеяния электронов многоатомными молекулами // Хим. физика, — 1982, — № 5 С.587−593.
  13. М.Д. Кинематическая ангармоничность в электронографиче-ских исследованиях геометрии молекул // Журн. структ. химии 1986 — Т.27-№ 5, — С.42−47.
  14. Dushinsky F. Zur deutung der electronen spectren mehratomiger molecu-len // Acta Physicochim.URSS.- 1937, — V.7.- № 4, — P. 551−566.
  15. Amat G., Nielsen H.H., Tarrago G. Rotation-vibration of polyatomic molecules. -N.Y., 1971.-580p.
  16. Nauts A., Chapuisat X. Momentum, quasi-momentum and hamiltonian operation in terms of arbitrary curvilinear coordinates, with special emphasis on molecular hamiltonians // Mol. Phys.- 1985, — V.55 № 6, — P. 1287−1318.
  17. Watson J.K.G. Simplification of the molecular vibration-rotation hamiltonian//Mol. Phys.- 1968, — V.15 № 5- P.479−490.
  18. Oka T. Vibration-rotation interaction in symmetric-top molecules and the splitting between A1 and A2 levels // J. Chem. Phys.- 1967, — V.41.- № 12, — P.5410−5426.
  19. Aliev M.R., Watson J.K.G. The rotation dependence of diagonal Coriolis coupling // J. Mol. Spectr.- 1979, — V.75.- № 1, — P.150−160.
  20. Hoy A. R, Mills I.M., Strey G. Anharmonic force constants calculation // Mol. Phys.- 1972, — V.24 № 6, — P. 1265−1290.
  21. М.Д. Ангармонический анализ колебательных спектров многоатомных молекул // Опт. и спектр 1983- Т.54- № 5, — С.895−897.
  22. С.Ю., Шатурная О. С., Элькин М. Д. Метрические соотношения для естественных колебательных координат // Актуал. вопр. науч. иссл.
  23. . сб. науч. тр. Вып 3. Изд-во Сарат. пед. ин. Саратов, 1999 С. 29−34.
  24. Е., Дешиус Дж., Кросс П. Теория колебательных спектров молекул. М.: ИЛ, 1960. 357с.
  25. Nielsen Н.Н. The vibration-rotation energies of molecules and their spectra in the Infra-red // Handbooch der Physik.- 1953, — V.37.- № 1, — P. 173−313.
  26. A.C. Алгебраическая проблема собственных чисел. M.: Мир, — 1956, — 356с.
  27. Л.М., Ковнер М. А., Крайнов Е. П. Колебательные спектры многоатомных молекул М.: Наука, 1970. 559с.
  28. Л.А., Дементьев В. М. Методы и алгоритмы вычислений в теории колебательных спектров М.: Наука, 1981. 355с.
  29. М.В., Ельяшевич М. А., Степанов Б. И. Колебания молекул. М.: ГИТТЛ, 1949. 600с.
  30. Watanabe H. Group-theoretic determination of normal coordinates of molecular vibration // J. Math. Phys.- 1986, — V.27.- № 8, — P.1931−1932.
  31. В.И., Элькин М. Д. О методе решения обратной колебательной задачи для многоатомных молекул // Журн. прикл. спектр 1975- Т.22-№ 2, — С.358−359.
  32. Г. Колебательные и вращательные спектры многоатомных молекул. М.: ИЛ, 1949. 648с.
  33. А., Мохан Н. Колебательная спектроскопия. Современные воззрения. М.: Мир, 1982. Гл. 16. — С.273−291.
  34. Л.М., Кукина B.C. Вывод формул для расчета среднеквадратичных смещений атомов при колебаниях и среднеквадратичных амплитуд колебаний межъядерных расстояний многоатомных молекул // Опт. испектр, — 1967, — T.23 С.172−174.
  35. С. Колебания молекул и среднеквадратичные амплитуды. М.: Мир, 1971.-488с.
  36. Meal J.H., Polo S.R. Vibration-rotation interaction in polyatomic molecules. I. The Zeta matrices // J. Chem. Phys.- 1956, — V.24.- P. l 119−1125.
  37. Parker P.M. Summery properties of the asymmetric-rotator centrifugal distortion constants // J. Chem. Phys.- 1962, — V.37.- P. 1596−1599.
  38. Kivelson D., Wilson E. B J. Theory of centrifugal distortion constants of polyatomic rotor molecules // J. Chem. Phys.- 1953, — V.21.-№ 7.- P. 1229−1236.
  39. Е.И., Свердлов JI.M. Вывод формулы для дефекта инерции многоатомных молекул // Опт. и спектр 1968 — Т.27- № 2- С.232−236.
  40. Л.С., Авербух B.C. Теория и расчет интенсивности в колебательных спектрах молекул. М.: Наука, 1971. 142с.
  41. JI.A. Введение в молекулярную спектроскопию. М.: Наука, 1976.-399с.
  42. Грибов J1.A. Общая формула для интенсивностей обертонов и составных частот в инфракрасных спектрах многоатомных молекул // Опт. и спектр,-1962, — Т. 13.- № 4, — С.594−597.
  43. JI.M. Формулы для интенсивности составных частот и обертонов в спектрах комбинационного рассеяния и инфракрасного поглощения // Опт. и спектр, — 1963, — Т.15, — № 6, — С.814−816.
  44. М.Д., Гавва С. П., Свердлов J1.M. О расчетных формулах для интенсивностей составных частот и обертонов // Опт. и спектр 1981- Т.51-№ 4 — С.728−731.
  45. Т.Д., Щепкин Д. Н. Первое приближение валентно-оптической схемы в криволинейных координатах. Формулы для вторых производных молекул ХУ // Опт. и спектр, — 1985, — Т.58, — № 4, — С.714−718.
  46. П.А. Основы теории взаимодействия света с веществом. Минск: Наука и техника, 1977. 496с.
  47. M.Д. Ангармонический анализ интенсивностей в ИК колебательных спектрах многоатомных молекул // Опт. и спектр 1984 — Т.57 — № 3-С.561−564.
  48. М.Д., Попов А. Ф., Свердлов J1.M. О методе вычисления коэффициентов связи между точными и приближенными естественными колебательными координатами// Опт. и спектр- 1981- Т.51.-№ 2-С.358−361.
  49. М.Д., Березин К. В., Пулин О .В., Шатурная О. С. Расчетные формулы полуэмпирической теории интенсивностей в обертонной спектроскопии // Известия вузов. Сер. Физика 1998 — № 2 — С.59−64.
  50. М., Ока T., Morino Y. Effects of vibration and rotation on the internuclear distance // J. Mol. Spectr 1964, — V.13.- № 2, — P.193−213.
  51. M.Д., Креденцер Е. И. О вычислении средних значений геометрических параметров многоатомных молекул // Журн. структ. химии.-1981- Т.22.-№ 3, — С.155−157.
  52. Reitan A. The influence of anharmonicity upon the vibrational probability densities and mean amplitudes in molecules // Kgl. norske vid. selskabs. skr 1958-№ 2, — 20p.
  53. М.Д. К вопросу об использовании функции плотности вероятности в ангармонической теории рассеяния электронов молекулами // Журн. структ. химии, — 1989, — Т. ЗО, — № 6, — С.33−37.
  54. М.Д., Костерина Э. К. К теории рассеяния электронов многоатомными молекулами // Журн. структ. химии 1994- Т.35- № 2 — С.40−45.
  55. А.Г. Ангармоническая модель интенсивности рассеяния электронов многоатомными молекулами в газовой фазе // Журн. структ. химии, — 1982, — Т.23- № 6, — С.143−147.
  56. Nasarenko A.Y., Spiridonov V.P., Butaev В.S., Gerchikov A.G. Second-order perturbation approach to anharmonic analysis of molecules by electron diffraction//J. Mol. Struct.- 1984, — V. l 10 № 1−2, — P.35−47.
  57. В.И. Теория электронографического исследования трехатомных молекул, характеризующихся большими амплитудами колебаний // Журн. структ. химии, — 1983, — Т. 24,-№ 6, — С.69−85.
  58. А.Г. Криволинейные координаты в электронографическом анализе потенциальных функций молекул СО2 и Hgl2 // Журн. структ. химии,-1984, — Т.25- № 4, — С.30−34.
  59. Watson J.K.G. The vibration-rotation hamiltonian of linear molecules // Mol. Phys.- 1970, — V.19-№ 4,-P.465−487.
  60. Carney G.D., Kern C.W. Vibration-rotation analysis of some nonlinear molecules by a variational methods // Int. J. Quant, chem. Symp- 1975, — № 9-P.317−323.
  61. JI.A., Прокофьева Н. И. Алгоритм вычисления поправок на кинематическую ангармоничность в теории колебаний многоатомных молекул // Опт. и спектр, — 1978, — Т.45, — № 5, — С.899−902.
  62. А.И., Грибов Л. А. Соотношение решений ангармонических колебательных задач в криволинейных и линейных колебательных координатах //Опт. и спектр.- 1985, — Т.58.-№ 6,-С.1247−1251.
  63. М.Д. Материалы IV Всесоюз. совещ. по изучению структуры молекул в газовой фазе. Иваново. 1987.
  64. В.П. Перспективы развития метода газовой электронографии // Журн. структ. химии 1982.- Т.23- № 6 — С.138−142.
  65. М., Хуан Кунь Динамическая теория кристаллических решеток М.:ИЛ, 1958.-488с.
  66. А.Ф., Элькин М. Д. Библиотека PL/1 процедур для расчета молекулярных параметров теории колебательных спектров молекул // Деп. ВИНИТИ. Рег.№ 509-В86.
  67. И.С., Рыжик И. М. Таблицы интегралов, сумм, рядов и произведений. М.: Наука, 1971. 1108с.
  68. М.Д. Фурье-представление уравнения рассеяния электронов колебательной подсистемой многоатомной молекулы // Журн. структ. химии-1994, — Т.35.-№ 6. -С.183−186.
  69. А.Н., Фомин C.B. Элементы теории функций и функционального анализа. М., 1968. — 542с.
  70. М.Д., Березин К. В., Костерина Э. К. Учет колебательно-вращательного взаимодействия в полуэмпирической теории интенсивности ИК и КР спектров молекул //Журн. прикл. спектр 1994- Т.61- № 1−2, — С.28−33.
  71. Pandey Р.К.К., Santry D.P. Vibrational contribution to molecular polari-zabilities and hyperpolarizabilities // J. Chem. Phys.- 1980, — V.73 № 6, — P.2899−2901.
  72. А.И., Филипов A.A. Поляризуемость и показатель преломления колебательно-возбужденного молекулярного газа // Хим. физика- 1984.— Т.З.- № 8, — С.1069−1074.
  73. М.А. Атомная и молекулярная спектроскопия. М.: Физ-матгиз. 1962.
  74. М.Д., Березин В. И. Кинематическая и электрооптическая ангармоничность в полуэмпирической теории интенсивностей ИК и КР спектров многоатомных молекул // Журн. прикл. спектр 1995 — Т.62 — № 6, — С.49−57.
  75. Г. С., Степанов Н. Ф., Татевский В. М. Метод последовательного согласования силовых полей изотопозамещенных молекул // Вестник МГУ-1968 № 2 — С.9−14.
  76. В.И., Элькин М. Д. Учет влияния замещения на силовое поле ароматического кольца // Опт. и спектр.- 1974 Т.37 — № 2 — С.237−240.
  77. С.Ю., Шатурная О. С., Пулин О. В., Элькин М. Д. Компьютерное моделирование колебательных спектров многоатомных молекул. Решение обратных задач // Актуал. вопр. науч. иссл. Межвуз. сб. науч. тр. Вып 3 Издво Сарат. пед. ин. Саратов, 1999 С. 61−65.
  78. Л.М., Кукина B.C. О различных видах расчетных формул для определения постоянных Кориолиса//Опт. и спектр.-1967.-Т.22.-С.321−322.
  79. Л.М. О различных видах расчетных формул для определения производных тензора инерции по нормальным координатам и постоянных центробежного искажения // Опт. и спектр.-1969.-Т.26.-С. 1053−1055.
  80. Л.М., Креденцер Е. И. Матричное выражение и некоторые свойства дефекта инерции // Опт. и спектр 1970 — Т.29 — С.508−510.
  81. В.Ф. Исследование динамики молекулярных систем различных классов.- Изд-во СГУ. Саратов 1998 г.
  82. Redington R.L. Vibrational spectra and normal coordinate analysis of iso-topically labeled formic acid monomers // J. Mol. Spectr.- 1977 V.65 — P.171−189.
  83. О.И., Москиенко M.B., Дюбко С. Ф. Исследование вращательного спектра молекул НСООН, DCOOH, HCOOD, DCOOD в субмиллиметровом диапазоне // Журн. прикл. спектр 1975 — Т.23- № 4. -С.692−695.
  84. Е.И., Свердлов Л. М. Расчет дефектов инерции, колебательно-вращательных и силовых постоянных муравьиной кислоты и ее дейте-розамещенных//Журн. физ. химии, — 1973 -№ 6- С.160−165.
  85. Willemot Е., Dangoisse D., Bellet J. Spectroscopie moleculare etude des spectres de rotation des etats vibrationales excites v6 (1105 cm"1) et v8 (1033 cm"1) de l’acide formique // C.R. Acad. Se Paris.- 1974.- Т.279, — P. 247−250.
  86. Rico M., Orza J.M. Fundamental vibrations of thiophene and and its deu-terated derivatives // Spectrochim. Acta 1965.- V.21.-№ 4.-P.689−719.
  87. Rico M., Barrachina M., Orza J.M. Fundamental vibrations of furan and deuterated derivatives // J. Mol. Spectr.- 1967, — V24.- № 2, — P.133−148.
  88. Вак В., Christensen D., Dixon W. The complete structure of furan // J. Mol. Spectr.- 1962,-№ 9,-P. 124−129.
  89. Вак В., Christensen D., Nygaard L., Andersen J. The structure of thiophene // J. Mol. Spectr.- 1966, — № 20, — P.233−239.
  90. Scott D.W. A valence force field for furan and pyrrole and their deuterium and methyl derivatives // J. Mol. Spectr.- 1971.- V37- № 1.- P.77−91.
  91. Orza J.M., Rico M., Biarge J. Complete quadratic potential function for out-of-plane vibrations of thiophene//J. Mol. Spectr.-1966.-V.19-№ 2.-P. 1088−1202.
  92. Mata F., Martin M.C., Sorensen G.O. Microwave spectra of deuterated fu-rans. Revised molecular structure of furan // J. Mol. Struct.- 1978 V.48 — № 2-P.157−163.
  93. М.Д. Теория характеристических колебаний замещенных пиридина, — Дисс. канд. ф.-м. наук, — Саратов 1972 — 161с.
  94. Ю.Н., Степанов Н. Ф. Метод эмпирической коррекции квантово-механического силового поля молекулы // Журн. физ. химии 1995-Т.69.-№ 4- С. 592−600.
  95. Ю.Н. Масштабированное квнтово-механическое силовое поле как инструмент исследования поворотной изомерии молекул // Вестн. МГУ. Сер. 2, — 1996, — № 37, — С.453−460.
  96. С.В., Степанов Н. Ф., Панченко Ю. Н. Влияние масштабирования квантово-механического силового поля на частоты и формы колебаний молекулы//Журн. структ. химии, — 1998,-Т.39-№ 2. -С.210−216.
  97. Ю.Н. Перенос силовых постоянных и масштабирующих множителей в колебательных задачах // ЖСХ 1999. — Т.40. — № 3. С.548−555.
  98. Процедуры пользовательской библиотеки для расчета молекулярных параметров теории колебаний многоатомныхмолекул.1. Option Explicit
  99. Sub EVS1S (M As Integer, D () As Double, NT As Integer, NR As Integer, NC As Integer)
  100. Ввод исходных данных типа Double в линейный массив D (1 to М) 'из электронной таблицы с номером NT, начиная с ячейки NR, NC. Dim j As Integer For j = 0 To M 1
  101. D (j + 1) = Worksheets (NT).Cells (NR, NC + j).Value Next j1. End Sub 'EVS1S
  102. Sub EVS2S (M As Integer, D () As Double, NT As Integer, NR As Integer, NC As Integer)
  103. Вывод исходных данных типа Double из линейного массива D (1 to М) 'в электронную таблицу с номером NT, начиная с ячейки NR, NC в виде столбца. Dim j As Integer For j = 0 To M 1
  104. Worksheets (NT).Cells (NR, NC + j).'Value = D (j + 1)1. Next j1. End Sub 'EVS2S
  105. Sub EVS2I (M As Integer, D () As Double, NT As Integer, NR As Integer, NC As Integer)
  106. Вывод исходных данных типа Double из линейного массива D (1 to М) с округлением до целогов электронную таблицу с номером NT, начиная с ячейки NR, NC в видестолбца.1. Dim j As Integer1. For j = 0 To M 1
  107. Worksheets (NT).Cells (NR, NC + j)."Value = CInt (D (j + 1)) Next j1. End Sub 'EVS2S
  108. CMM1 =s2/sl End Function' CMM2
  109. Sub CMM2(M As Integer, XYZM () As Double) 'Преобразование кординат атомов к цетру масс молекулы Dim i As Integer, j As Integer, s As Double For i = 1 To 3s = CMM1(M, i, XYZM) For j = 1 ToM1. XYZM (i, j) = XYZM (i, j) s1. Next j1. Next i1. End Sub 'CMM2
  110. Sub CMM4(M As Integer, XYZM () As Double, Ncos () As Double)
  111. Преобразование координат посредством матрицы направляющих косинусов
  112. Dim i As Integer, j As Integer, k As Integer, Rl (l To 3) As Double
  113. For i = 1 To M: For j = 1 To 3: Rl (j) = 0: For k = 1 To 3
  114. Rl (j) = Rl (j) + XYZM (k, i) * Ncos (k, j): Next k: Next j
  115. For j = 1 To 3: XYZM (j, i) = Rl (j): Next j: Next i: End Sub 'CMM4
  116. Sub CMM5(M As Integer, Nw As Integer, SA () As Double, Ncos () As Double)
  117. Приведение матрицы смещений атомов к главным осям инерции молекулы
  118. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim t As Integer
  119. Dim Rl (l To 3) As Double: For i = 1 To M: For t = 0 To Nw 1: For j = 1 To 3:1. R1G) = 0
  120. For k = 1 To 3: Rl (j) = RIG) + SA (i, 3 * t + k) * Ncos (k, j): Next k: Next j For j = 1 To 3: SA (i, 3 * t + j) = RIG): Next j: Next t: Next i: End Sub 'CMM5
  121. Sub EVS1(N As Integer, M As Integer, D () As Double, NT As Integer, NR As Integer, NC As Integer)
  122. Ввод исходных данных из электронной таблицы с номером NT, начиная с ячейки NR, NC.
  123. Dim i As Integer: Dim j As Integer: For i = 1 To N: For j = 1 To M
  124. D (i, j) Worksheets (NT).Cells (NR + i — 1, NC + j — 1).Value: Next j: Next i: End Sub1. EVS1
  125. Sub EVS1I (N As Integer, M As Integer, D () As Integer, NT As Integer, NR As Integer, NC As Integer)
  126. Ввод исходных данных из электронной таблицы с номером NT, начиная с ячейки NR, NC.
  127. Dim i As Integer: Dim j As Integer: For i = 1 To N: For j = 1 To M
  128. D (i, j) = Worksheets (NT).Cells (NR + i 1, NC + j — 1). Value: Next j: Next i: End Sub1. EVS1
  129. Sub EVS2(N As Integer, M As Integer, D () As Double, NT As Integer, NR As Integer, NC As Integer)
  130. Ввод исходных данных в электронную таблицу с номером NT, начиная с ячейки NR, NC.
  131. Dim i As Integer: Dim j As Integer: For i = 0 To N 1: For j = 0 To M — 1 Worksheets (NT).Cells (NR + i, NC + j).Value = D (i + 1, j + 1): Next j: Next i: End Sub 'EVS2
  132. Sub JCOBI (N As Integer, A () As Double, L () As Double, E As Double, f As Integer) 'Вычисление собственных векторов и собственных чисел симметричной матрицы A (N, N) c точностью Е.
  133. Результат на диагонали матрицы, А и по строкам матрицы L (N, N).F=0-, ztJM главных моментовинерции молекул, Р=2-Вычисление частот колебаний, F=1-Нормировка кинематики
  134. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim С As Double: Dim s As Double
  135. Dim D As Double: Dim H As Double: Dim p As Double: Dim r As Double: Dim q As Double
  136. For i = 1 To N: For j = i To N: L (i, j) = 0: L (j, i) = 0: Next j: L (i, i) = 1: Next i M: p = 0: For i = 1 To N -1: For j = i+ lToN: p = p + A (i, j) л 2 Next j: Next i: p = (p/N/2)A0.5 'Вычисление преграды If p > E Then
  137. For i = 1 To N 1: For j = i + 1 To N: H = A (i, j) If Abs (H) > p Then D = A (i, i)-AG, j) If D = 0 Then
  138. С = 1 / Sqr (2): s = Sgn (H) * С Elser = 2 * H / D: q = Sqr (l + г Л 2): С = Sqr (0.5 + 0.5 / q): s = Sqr (0.5 0.5 / q) s — Sgn® * s: End If' tg (2x) 'Cos (x) 'Sin (x)
  139. H = H*s/C:D = A (i, i) + H: q = A (j, j) H: For k = 1 To N: H = A (i, k) A (i, k) = H * С + AG, k) * s: A (k, i) = A (i, k): A (j, k) = A (j, k) * С — H * s
  140. A (kJ) = AG, к): H = L (i, к): L (i, к) = H * С + L (j, к) * s1. j, к) = L (j, к) * С Н * s: Next к: A (i, i) = D: A (j, j) = q: A (i, j) = 0: AO', i) = 01. End If: Next j: Next i1. GoTo M: End If1. f = 2 Then
  141. For i = 1 To N: A (l, i) = A (i, i) л 0.5: Next i: End If: If f= 1 Then
  142. For i = 1 To N: For j = 1 To N: L (i, j) = L (i, j) * Abs (A (i, i)) л 0.5: Next j: Next i End If: End Sub 'JCOBI
  143. Sub ZAGLAV (NT As Integer, NR As Integer, NC As Integer, X As String) Worksheets (NT).Cells (NR, NC).Formula = X End Sub 'ZAGLAV
  144. Sub CTab (N As Integer, M As Integer, NT As Integer, NR As Integer, NC As Integer, CI As Integer)
  145. Sub TM (N As Integer, A () As Double, B () As Double)
  146. Транспонирование квадратной матрицы A (1:N, 1: N). Результат в матрице B (1:N, 1: N)
  147. Dim i As Integer: Dim j As Integer: Dim s As Double: For i = 1 To N: For j = i To N s = A (i, j): B (i, j) = AG, i): B (j, i) = s: Next j: Next i: End Sub 'TM Sub PM (N As Integer, M As Integer, k As Integer, A () As Double, B () As Double, CO As Double)
  148. Перемножение матриц A (1 :N, 1: M) and B (1 :M, 1: K).
  149. Результат -матрица C (1 :N, 1: M). Можно поместить и на место матрицы А.
  150. Dim i As Integer: Dim j As Integer: Dim t As Integer: ReDim RM (1 To N)
  151. For i = 1 To N: For j = 1 To M: RM (j) = 0: For t = 1 To M: RM (j) = RM (j) + A (i, t) *1. B (tJ)
  152. Next t: Next j: For j = 1 To N: C (i, j) = RM (j): Next j: Next i: End Sub ' PM
  153. Sub EVS13(N As Integer, A () As Double, E As Double, det As Double)
  154. Процедура обращения матрицы Методом Гаусса-Жордана
  155. Dim у As Double: Dim w As Double: Dim i As Integer: Dim j As Integer: Dim k As1. teger
  156. Dim r As Integer: Dim p As Integer: Dim X As String: ReDim B (1 To N) As Double
  157. ReDim C (1 To N) As Double: ReDim Z (1 To N) As Integer: det = 1
  158. For j = 1 ToN: Z (j) = j: Next j: For i = 1 To N: k = i: у = A (i, i): r = i -1: p = i + 1
  159. For j = p To N: w = A (i, j)1. Abs (w) > Abs (y) Thenk = j: у = w: End If: Next j: det = у * det1. Abs (y) < E Then
  160. X = InputBox («MaTpHua близка к вырожденной»): End If: у = 1 / у: For j = 1 To N
  161. C (j) = A (j, k): AO, k) = AG, i): A (j, i) = -C (j) * y: B (j) = A (i, j) * у
  162. A (i, j) = B (j): Next j: A (i, i) = y: j = Z (i): Z (i) = Z (k): Z (k) = j
  163. For k = 1 To r: For j = 1 To r: A (k, j) = A (k, j) B (j) * C (k): Next j: Next k
  164. For k = 1 To r: For j = p To N: A (k, j) = A (k, j) B (j) * C (k): Next j: Next k
  165. For k = p To N: For j = 1 To r: A (k, j) = A (k, j) B (j) * C (k): Next j: Next k
  166. For k = p To N: For j = p To N: A (k, j) = A (k, j) B (j) * C (k): Next j: Next k: Next i1. For i = 1 To Nrepeat: k = Z (i)1. k = i Then1. GoTo nexti: End If
  167. For j = 1 To N: w = A (i, j): A (i, j) = A (k, j): A (k, j) = w: Next j p = Z (i): Z (i) = Z (k): Z (k) = p: det = -det: GoTo repeat nexti: Next i: End Sub 'EVS13
  168. Sub IzTabI (NT As Integer, NR As Integer, NC As Integer, NN As Integer)
  169. Занесение в ЭТ с номером NT, начиная с ячейки NR, NC целого числа NN
  170. NN = Worksheets (NT).Cells (NR, NC). Value: End Sub TzTabI
  171. Sub VTabV (NT As Integer, NR As Integer, NC As Integer, NN As Double)
  172. Занесение в ЭТ с номером NT, начиная с ячейки NR, NC целого числа NN
  173. Worksheets (NT).Cells (NR, NC).Value = NN: End Sub 'VTabI
  174. Sub IzTabV (NT As Integer, NR As Integer, NC As Integer, NN As Double)
  175. Расположение собственных векторов Ncosl: N+1,1 :N. и собственных чиселматрицы в порядке убывания (Т>0)или возрастания (Т<0)
  176. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim s As Double
  177. For i = 1 To N -1: For j = i + 1 To N1. t * Ncos (N + 1, i) < t * Ncos (N + 1, j) Thens = Ncos (N + 1, i): Ncos (N + 1, i) = Ncos (N + 1, j): Ncos (N + 1, j) = s
  178. For k = 1 To N: s = Ncos (k, i): Ncos (k, i) = Ncos (k, j): Ncos (k, j) = s
  179. Next k: End If: Next j: Next i: End Sub 'Por1. Sub KChDat2000()
  180. Исходные данные для вычисления матрицы силовых постоянных по данным квантовой химии
  181. Dim М As Integer: Dim s As String: Dim j As Integer: Dim k As Integer: Dim NM As Integer
  182. Dim NT As Integer: Dim Z As String: Dim Nw As Integer: Dim NK As Integer: Dim t As Integer
  183. Dim Ns As Integer: Dim v As String: Dim DK (1 To 9) As String: DK (1) = «x»: DK (2) = «y»
  184. DK (3) = «z»: Dim E As Double: Dim i As Integerv = «(Силовое поле по данным квантовой химии)»: s = InputBох (''Задайте имя молекулы", v)
  185. Z = s + у: s = 1прШ-Вох («Задайте номер ЭТ под исходные данные и результат», Z): NT = Clnt (s)
  186. Call ZAGLAV (NT, 1, 4, «Таблица №=»): Call VTabI (NT, 1, 5, NT): Call ZAGLAV (NT, 2, 4, Z)
  187. Call ZAGLAV (NT, 4, 2,, гЫМ (Число изотопов)="): s = 1пр^Вох («Введите число изотопов: NM = «, Z)
  188. Call CTab (M, 3 + NM, NT, 9, 5 + NM, 20): Call CTab (4, 3, NT, 9, 9 + 2 * NM, 20) Call ZAGLAV (NT, 7, 5 + NM, s + «(в главных осях инерции)») s = «Матрица поворота и главные моменты инерции»: Call ZAGLAV (NT, 7,9 + 2 * NM, s)
  189. For k = 1 To M: s = «Atom» & CStr (k): Call ZAGLAV (NT, 8 + k, 1, s) Call ZAGLAV (NT, 23 + M + k, 1, s): Call ZAGLAV (NT, 28 + 2 * M + k, 1, s): Next k
  190. For k = 0Tol: j = k*(3 + NM): For t = 1 To 3: Call ZAGLAV (NT, 8, t + j + 1, DK (t)): Next t
  191. For t = 1 To NM: Call ZAGLAV (NT, 8, 4 + j +1, «Изотоп» + CStr (t)): Next t: Next k Call ZAGLAV (NT, 12, 8 + 2 * NM, «Ixx, Iyy, Izz»): For k = 1 To 3:
  192. Call ZAGLAV (NT, 8 + k, 8 + 2 * NM, DK (k) +.): Call ZAGLAV (NT, 8, k + 8 + 21. NM, DK (k)): Next k: v = «Число координат типа:» 'Формрование матрицы S-векторов в координатах симметрии
  193. NR = Clnt (s): Call ZAGLAV (NT, 5, 5, v + «R=»): Call VTabI (NT, 5, 8, NR) Dim NX As Integer: s = InputBox (v + «XI-изменение угла между плоскостями?», 1. Z)
  194. NX = Clnt (s): Call ZAGLAV (NT, 6, 5, v + «X=»): Call VTabI (NT, 6, 8, NX) NK = NQ + NB + NR + NX: Dim NKS As Integer
  195. Call ZAGLAV (NT, 3, 9, «№С8(число коэффиц. симметрии)=»): Call VTabI (NT, 3, 12, NKS)
  196. Е = 1Е-20: v = «Точность решения задачи»: s = 1прШВох («Введите» + v, Z, CStr (E))
  197. Е = CDbl (s): Call ZAGLAV (NT, 6, 9, v): Call VTabV (NT, 6, 12, E) s = «Иходные данные»: v = «: для исходного изотопа» Call ZAGLAV (NT, M + 9, 2, s + «(Матрица топологии)»)
  198. Call ZAGLAV (NT, M + 17, 2, s + «(Матрица ненулевых коэффициентов симметрии)»)
  199. Call ZAGLAV (NT, М + 22, 2, s + «(Связь декартовых и нормальных координат) «+ v)
  200. Call ZAGLAV (NT, 2 * М + 24, 2, s + «(Приведенные массы)» + v) Call ZAGLAV (NT, 2 * М + 27, 2, «Матрица S-векторов» + v) Call ZAGLAV (NT, 3 * M + 29, 2, s + «(Частоты) и расчетные (формы колебаний)» + v)
  201. Call ZAGLAV (NT, 3 * М + Ns + 32, 2, «Силовое поле «+ v)
  202. Call ZAGLAV (NT, 3 *M + 2*Ns + 35, 2, «Масштабирующие множителиестественных координат»)
  203. Call CTab (6, NK, NT, M + 11, 2, 19) ' Диапазона под топологию
  204. Call CTab (3, NKS, NT, M + 19, 2, 19) ' Диапазона под коэффиценты симметрии
  205. Call CTab (M, 3 * Nw, NT, M + 24, 2, 19) 'Диапазона под смещения атомов
  206. Call CTab (l, Nw, NT, 2 * M + 26, 2,19) 'Диапазона под приведенные массы
  207. Call CTab (M, 3 * Ns, NT, 2 * M + 29, 2, 20) * Диапазона под S-векторы
  208. Call CTab (l, Nw, NT, 3 * M + 31, 2,19) 'Диапазона под частоты
  209. For k = 1 To NX: Call ZAGLAV (NT, M+10, k + NQ + NB + NR+1, «NX» + CStr (k)): Next k
  210. For k = 1 To 6: Call ZAGLAV (NT, M + 10 + k, 1, «Atom»): Next k
  211. For k = 1 To NKS: Call ZAGLAV (NT, M + 18, 1 + k, «NKS» + CStr (k)): Next k
  212. Call ZAGLAV (NT, M + 19, 1, «Строк-ЕК»): Call ZAGLAV (NT, M + 20, 1,1. Столб-KS»)
  213. For k = 1 To Nw: v = «Q» + CStr (k): For j = 1 To 3
  214. Call ZAGLAV (NT, M + 23, 3 * k + j 2, v + DK (j)): Next jt = 2 * M: Call ZAGLAV (NT, t + 25, k + 1, «Massa «+ v): s = «q» + CStr (k)
  215. For j = 1 To 3: Call ZAGLAV (NT, t -f 28, 3 * k + j 2, s + DK (j)): Next jt = 3 * M: Call ZAGLAV (NT, t + 30, k + 1, «W» + CStr (k))
  216. Call ZAGLAV (NT, t + 31 + k, 1, s): Call ZAGLAV (NT, t + Ns + 33, k + 1, s)
  217. Call ZAGLAV (NT, t + Ns + 34 + k, 1, s): Call ZAGLAV (NT, t + 2 * Ns + 36, k + 1,1. MM» + s)
  218. Next к: Dim G As Integer: G = MsgBox («Будете решать механическую задачу для изотопов?», 1, Z) If G < 2 Then
  219. Call VTabI (NT, 5, 12, G): v = «Решение механической задачи»: Call ZAGLAV (NT, 5, 9, v) t = 3*M + 2* Ns: Call ZAGLAV (NT, t + 38, 2, v): Call CTab (3 * NM, Nw, NT, t + 40, 2, 19)
  220. Call ZAGLAV (NT, t + 3 * NM + 40, 2, «Коэффициенты надежности эксперимента»)
  221. Call CTab (l, NM, NT, t + 3 * NM + 42, 2, 19)
  222. For k = 1 To Nw: Call ZAGLAV (NT, t + 39, k + 1, «W» + CStr (k)): Next k
  223. For k = 1 To NM: Call ZAGLAV (NT, t + 39 + 3 * k, 1, «Dw»)
  224. Call ZAGLAV (NT, t + 39 + 3 * k 1, 1, «WBbm.»)
  225. Call ZAGLAV (NT, t + 39 + 3 * k 2, 1, «WonbiT.»)
  226. CallZAGLAV (NT, t + 3 *NM + 41, k+l, «Изотоп» + CStr (k)): Nextk:
  227. Dim D As Integer: D = MsgBox («Bычиcлять кориолисовы и центробежныепараметры?», 1, Z)1. D < 2 Then
  228. Call VTabI (NT, 3, 16, D): v = «Постоянные Кол.Вращ.Взам.»: Call ZAGLAV (NT, 3, 13, v) t = 3*M + 2*Ns + 3* NM: Call ZAGLAV (NT, t + 43, 2, «Вычисление постоянных кориолиса»)
  229. Call CTab (3 * Nw, Nw, NT, t + 45, 2, 20)
  230. Call ZAGLAV (NT, t + 3 * Nw + 45, 2, «Производные от тензора инерции понормальным координатам»)
  231. Call CTab (6, Nw, NT, t + 3 * Nw + 47, 2, 20)
  232. Call ZAGLAV (NT, t + 3 * Nw + 53, 2, «Постоянные центробежного искажения (В в МгГ)»)
  233. Call CTab (NM, 21, NT, t + 3 * Nw + 55, 2, 20)
  234. For k = 1 To Nw: Call ZAGLAV (NT, t + 44, 1 + k, «W» + CStr (k))
  235. For j = 0 To 2: Call ZAGLAV (NT, t + 44 + k + Nw * j, 1, «W» + CStr (k) + DKG +1.): Next j
  236. Call ZAGLAV (NT, t + 46 + 3 * Nw, 1 + k, «W» + CStr (k)): Next k: i = 0: For k = 1 To 3
  237. For j = k To 3: s = DK (k) + DK (j): i = i + 1: DK (i + 3) = s
  238. Call ZAGLAV (NT, t + 3 * Nw + 46 + i, 1, «I» + s): Next j: Next k: i = 2: For k = 4 To 9
  239. For j = k To 9: Call ZAGLAV (NT, t + 3 * Nw + 54, i, «T» + DK (k) + DK (j)): i = i + 1
  240. Next j: Next k: For k = 1 To NM: Call ZAGLAV (NT, t + 3 * Nw + 54 + k, 1, «Изотоп» + CStr (k))
  241. Next k: End If: End If: v = «НЕТ»: Dim Shema As Integer: s = «Схема переноса силового поля?»
  242. Shema = MsgBox (s, 1, Z): Call ZAGLAV (NT, 4, 13, s)1. Shema < 2 Thenv = «ДА»: Call CTab (Nw + 1, Nw, NT, 3 * M + Ns + 34, 2, 19): End If: Call ZAGLAV (NT, 4, 16, v) End Sub 'KChdat2000 Sub KChcal2000()
  243. Dim X As String: Dim NT As Integer: Dim f As Integer
  244. X 1пр^Вох («Задайте номер ЭТ»): NT = Clnt (X): Dim M As Integer: Call IzTabI (NT, 3, 4, M)
  245. Dim NM As Integer: Call IzTabI (NT, 4, 4, NM): Dim NK As Integer: Call IzTabI (NT, 5, 4, NK)
  246. Dim Nw As Integer: Call IzTabI (NT, 6, 4, Nw): Dim NQ As Integer: Call IzTabI (NT, 3, 8, NQ)
  247. Dim NB As Integer: Call IzTabI (NT, 4, 8, NB): Dim NR As Integer: Call IzTabI (NT, 5, 8, NR)
  248. Dim NX As Integer: Call IzTabI (NT, 6, 8, NX): Dim Ns As Integer: Call IzTabI (NT, 4, 12, Ns)
  249. Dim NKS As Integer: Call IzTabI (NT, 3, 12, NKS): Dim G As Integer: Call IzTabI (NT, 5, 12, G)
  250. Dim E As Double: Call IzTabV (NT, 6, 12, E):
  251. Приведение координат атомов к главным осям инерции молекулы
  252. Dim Ncos (l То 4, 1 То 3) As Double: ReDim XYZM (1 To 4, 1 To M) As Double
  253. ReDim DKM (1 To M, 1 To 3 + NM) As Double: Call EVS1(M, 3 + NM, DKM, NT, 9, 2)
  254. Call TPM (M, 4, DKM, XYZM, 0): Call GlavOsi (M, XYZM, Neos, 1): Call TPM (4, M, XYZM, DKM, 0)
  255. Call EVS2(M, 3 + NM, DKM, NT, 9, 5 + NM): Call EVS2(4, 3, Neos, NT, 9, 9 + 2 * NM)
  256. Получение S-векторов в симметризованной форме
  257. ReDim SV (1 То М, 1 То 3 * NK) As Double: ReDim Mit (l To NK) As Integer
  258. ReDim TM (1 To 6, 1 To NK) As Integer: Call EVS1I (6, NK, TM, NT, M + 11, 2)
  259. Call TIP (NQ, NB, NR, NX, Mit): Call MSV (M, NK, Mit, XYZM, TM, SV)
  260. ReDim MNKS (1 To 3, 1 To NKS) As Double: Call EVS1(3, NKS, MNKS, NT, M +19, 2)
  261. Call SymSv (M, NK, Ns, NKS, MNKS, SV):
  262. Call EVS2(M, 3 * Nw, SV, NT, 2 * M + 29, 2): Call IzTabSt (NT, 4, 16, X)
  263. ReDim SA (1 To M, 1 To 3 * Nw) As Double: ReDim Lq (l To Ns, 1 To Nw) As1. Double
  264. ReDim H (1 To Nw) As Double: ReDim FC (1 To Nw + 1, 1 To Nw) As Double: If X = «НЕТ» Then
  265. Получение матрицы форм нормальных колебаний
  266. Call EVS1(M, 3 * Nw, SA, NT, M + 24, 2): Call CMM5(M, Nw, SA, Neos)
  267. Call EVS2(M, 3 * Nw, SA, NT, M + 24, 3 * (Nw + 1))
  268. ReDim MW (1 To Nw) As Double: Call EVSlS (Nw, MW, NT, 2 * M + 26, 2)
  269. Call KChForma (M, Ns, Nw, SV, SA, MW, Lq): Call EVS2(Ns, Nw, Lq, NT, 3 * M + 32, 2)
  270. X = «Точность в расчете кинематики=»: X = X + CStr (CKin (M, NT, Nw, Lq, SV, XYZM))
  271. Получение матрицы силовых постоянных
  272. Call EVSlS (Nw, H, NT, 3 * M + 31, 2): Dim s As Double: Call EVS13(Nw, Lq, 0.1, s)
  273. Call EVS2(Nw, Nw, Lq, NT, 3*M+32, 3 + M)' контроль обращения Call KvPole (Nw, Nw, Lq, H, FC): Call EVS2(Nw, Nw, FC, NT, 3 * M + Ns + 34, 2) Call EVSl (Nw, Nw, Lq, NT, 32 + 3 * M, 2)
  274. X = X + «-Точность в расчете поля=» + CStr (CForce (Nw, Н, Lq, FC)) f = MsgBox (X, 1, «Контроль расчета кинематики и поля») ' Масштабирование силового поля
  275. ReDim ММ (1 То Nw) As Double: Call EVSlS (Nw, MM, NT, 3 * M + 2 * Ns + 37, 2)
  276. Call Mashtab (Nw, MM, FC): Call EVS2(Nw + 1, Nw, FC, NT, 3 * M + Ns + 34, 2): End If’Схема Кв. химии
  277. G < 2 Then 'Решение механической задачи для всех изотопов ReDim Pole (l То Nw, 1 То Nw) As Double: Dim Dw As Double: Dw = 0 ReDim MKK (1 To Nw, 1 To Nw) As Double: Dim k As Integer: Dim Df As Double: Df = 100
  278. ReDim KNE (1 To NM) As Double: Call EVS1 S (NM, KNE, NT, 3 * (M + NM) + 2 * Ns + 42, 2)
  279. ReDim Hh (l To Nw) As Double: f = 1: Do While f < 2: Call Obnole (Nw, Pole): For к = 1 To NM
  280. Call EVSl (Nw, Nw, FC, NT, 3 * M + Ns + 34, 2): Call FVU (k, M, Nw, DKM, SV, MKK, FC):•Call EVS2(Nw, Nw, MKK, NT, 32 + 3 * M, 3 + к * Nw)' Контроль кинематики•Call EVS2(Nw, Nw, FC, NT, 34 + Ns + 3 * M, 3 + k * Nw^omponb поля
  281. Call PMZ (Nw, MKK, FC, Lq, H, E): Call Por2000(Nw, H, Lq, -1)
  282. Call EVS2I (Nw, H, NT, 3 * M + 2 * Ns + 40 + 3 * k 2, 2) 'Вывод частотколебаний
  283. Call EVS2(Nw, Nw, Lq, NT, 3 * M + 32, 2 + k * (Nw + 1)) 'Вывод форм колебаний
  284. Call EVS1 S (Nw, Hh, NT, 3 * M + 2 * Ns + 39 + 3 * k 2, 2): Call OMZ (k, Nw, Lq, Hh, KNE, Pole)
  285. Call EVS2I (Nw, Hh, NT, 3*M + 30, 2 + k* (Nw + 1))
  286. Next k: Call EVSl (Nw, Nw, FC, NT, 3 * M + Ns + 34, 2): Call SpPole (NM, Nw, Pole, KNE, FC)
  287. Call EVS2(Nw, Nw, FC, NT, 3 * M + Ns + 34, 2): Call MaxDw (Nw, H, Hh, Dw) X = «Максимальное относительное расхождение частот колебаний на данном шаге (%)=» + CStr (Dw)f = MsgBox (X + «.На предыдущем было:» + CStr (Df), 1, «Продолжить решение ОМЗ»)
  288. Df = Dw: Dw = 0: Loop: Call IzTabI (NT, 3, 16, f)1. f < 2 Then 'Вычисление параметров колебательно-вращательного взаимодействия
  289. ReDim КР (1 То 3 * Nw, 1 То Nw) As Double: ReDim PTI (1 To 6, 1 To Nw) As Double
  290. ReDim Tay (l To 21) As Double: For k = 1 To NM: Call TPM (M, 4, DKM, XYZM, k)
  291. Call GlavOsi (M, XYZM, Neos, 1): Call EVS1(M, 3 * Nw, SV, NT, 2 * M + 29, 2): Call CMM5(M, Ns, SV, Neos)
  292. Call EVSl (Nw, Nw, FC, NT, 3 * M + Ns + 34, 2): Call FVU (k, M, Nw, DKM, SV, MKK, FC)
  293. Call EVS13(Nw, MKK, E, s): Call MetricEQ (k, M, Ns, DKM, MKK, SV) Call EVS2(M, 3 * Nw, SV, NT, 2 * M + 29, 2 + (3 * Nw + 1) * k) Call EVS13(Nw, MKK, E, s): Call PMZ (Nw, MKK, FC, Lq, H, E): Call Por2000(Nw, H, Lq, -1)
  294. Call EVS2I (Nw, H, NT, 3 * M + 31, 2 + k * (Nw + 1)) 'Вывод частот колебаний Call EVS2(Nw, Nw, Lq, NT, 3 * M + 32, 2 + k * (Nw + 1)) 'Вывод форм колебаний
  295. Call MetricNQ (k, M, Ns, Nw, SV, Lq, SA): Call PCoriolis (k, Nw, M, DKM, SA, KP) Call EVS2(M, 3 * Nw, SA, NT, M + 24, 2 + (3 * Nw + 1) * k)
  296. Call EVS2(3 * Nw, Nw, KP, NT, 3 *M + 2*Ns + 3* NM + 45, 2 + Nw * (к 1)): Call Distor3m (M, Nw, XYZM, SA, PTI)
  297. Call EVS2(6, Nw, PTI, NT, 3 * (M + NM + Nw) + 2 * Ns + 47, 2 + Nw * (к -1))
  298. Call Distor2m (M, Nw, XYZM, H, SA, Neos, Tay)
  299. Call EVS2S (21, Tay, NT, 3 * (M + NM + Nw) + 2 * Ns + 54 + k, 2)1. Next k: End If
  300. End If: End Sub 'KChcal2000
  301. Sub MaxDw (Nw As Integer, Hl () As Double, H2() As Double, Dw As Double) Dim i As Integer: Dim s As Double: For i = 1 To Nw: s = Abs ((Hl (i) H2(i)) / Hl (i) * 100)1. s > Dw Then
  302. Dw = s: End If: Next i: End Sub 'MaxDw
  303. Sub SpPole (NM As Integer, Nw As Integer, Pole () As Double, KNE () As Double, FC () As Double)
  304. Усреднение поля по набору изотопов
  305. Dim i As Integer: Dim j As Integer: Dim s As Double: s = 0: For i = 1 To NM: s = s + KNE (i)
  306. Next i: For i = 1 To Nw: For j = i To Nw: FC (i, j) = Pole (i, j) / s: Next j: Next i: End Sub 'SpPole
  307. Sub Obnole (Nw As Integer, Pole () As Double) ' Обнуление матрицы Pole
  308. Dim i As Integer: Dim j As Integer: For i = 1 To Nw: For j = 1 To Nw: Pole (i, j) = 0
  309. Next j: Next i: End Sub 'Obnole
  310. Sub OMZ (k As Integer, Nw As Integer, Lq () As Double, H () As Double, KNE () As Double, Pole () As Double)
  311. Решение обратной механической задачи-накопление поля в вехнем крыле Pole матрицы
  312. ReDim Ll (l То Nw + 1, 1 То Nw) As Double: Dim u As Double: Dim i As Integer: Dim j As Integer
  313. Call EVS13(Nw, Lq, 0.1, u): Call KvPole (Nw, Nw, Lq, H, LI): For i = 1 To Nw
  314. For j = 1 To Nw: Pole (i, j) = Pole (i, j) + Ll (i + 1, j) * KNE (k): Next j: Next i: End Sub 'OMZ
  315. Sub TPM (M As Integer, N As Integer, DKM () As Double, XYZM () As Double, k As Integer)
  316. Dim i As Integer: Dim j As Integer: For i = 1 To M: For j = 1 To N: XYZM (j, i) = DKM (i, j): Next j: Next i If k > 0 Then
  317. Dim s As Double: Dim к As Integer: Dim TIM (1 To 3, 1 To 3) As Double: Call CMM2(M, XYZM)
  318. Call CMM3(M, XYZM, TIM): Call JC0BI (3, TIM, Neos, 0.1, 0): For к = 1 To 3
  319. Ncos (4, к) = TIM (k, k): Next k: Call Por (3, Neos, t): Call CMM4(M, XYZM, Neos): End If: End Sub 'GlavOsi
  320. Sub KChForma (M As Integer, Ns As Integer, Nw As Integer, SV () As Double, SA ()
  321. As Double, MW () As Double, Lq () As Double)
  322. Получение матрицы форм нормальных колебаний Lql: Nq, l: N.
  323. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim t As Integer: Dim s As1. Double
  324. For i = 1 To Nw: For j = 1 To Ns: s = 0: For k = 1 To M: For t = 0 To 2s = s + SV (k, 3 * j -1) * SA (k, 3 * i -1): Next t: Next k: Lq (j, i) = s / (MW (i)) Л 0.5:1. Next j: Next i1. End Sub 'KChForma
  325. Sub KvPole (N As Integer, Nw As Integer, Lq () As Double, H () As Double, FC () As Double)
  326. Получение матрицы силовых постоянных FC1: Nq, l: Nq.
  327. Dim i As Integer: Dim j As Integer: Dim k As Integer: For i = 1 To N: For j = 1 To N: FC (i + 1, j) = 0: For k = 1 To N
  328. FC (i + 1, j) = FC (i + 1, j) + Lq (k, i) * Lq (k, j) * (H (k) / 1000) Л 2: Next k: Next j: Next i: End Sub 'KvPole
  329. Function CKin (M As Integer, NT As Integer, NQ As Integer, Lq () As Double, SV () As Double, XYZM () As Double) As Double
  330. Контроль вычисления кинематики через S-BeKTopbi (SV) и формы колебаний (Ьо)
  331. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim t As Integer: Dim v As Double: Dim R1 As Integer: R1 = 0
  332. Dim w As Double: CKin = 0: For i = 0 To NQ 1: For j = i To NQ — 1: R1 = R1 + 1: v = 0: w = 0: For k = 1 To NQv = v + Lq (i + 1, k) * LqG + 1, k): Next k: 'Worksheets (NT).Cells (3 * M + 32, 3 + R1 + NQ). Value = v
  333. For k = 1 To 3: For t = 1 To M: w = w + SV (t, 3 * i + k) * SV (t, 3 * j + k) / XYZM (4, t): Next t: Next k: v = Abs (Abs (v) Abs (w)): ' Worksheets (NT).Cells (3 * M + 33, 3 + R1 + NQ).Valuew1.v> CKin Then
  334. Function CForce (N As Integer, H () As Double, Lq () As Double, FC () As Double) As Double
  335. Контроль вычисления силового поля
  336. Dim i As Integer: Dim j As Integer: Dim к As Integer: Dim t As Integer: Dim s As Double
  337. Dim i As Integer: DS = 0: For i = 1 To 3: DS = DS + (XYZM (i, M2) XYZM (i, Ml)) A 2
  338. Next i: DS = DS Л 0.5: End Function 'DS
  339. Function Evector (k As Integer, Ml As Integer, M2 As Integer, XYZM () As Double) As Double
  340. Вычисление к-ой составляющей единичного вектора связи Ml → М2
  341. Evector = (XYZM (k, М2) XYZM (k, Ml)) / DS (M1, M2, XYZM): End Function1. Evector
  342. Function VPV3M (k As Integer, VI As Integer, V2 As Integer, MV () As Double) As Double
  343. Вычисление К -ой составляющей векторного произведения трехмерных векторов, расположенных построчно в рабочем массиве MV в строках VI и V2 соответственно
  344. Dim i As Integer: Dim j As Integer: i = 2: j = 3 If к = 2 Then i = 3: j = 1: End If If к = 3 Theni = 1: j = 2: End If: VPV3M = MV (V1, i) * MV (V2, j) MV (V1, j) * MV (V2, i): End Function 'VPV3M
  345. Sub NOLSM (M As Integer, RM () As Double) ' обнуление рабочего строчного массива
  346. Dim i As Integer: For i = 1 To M: RM (i) = 0: Next i: End Sub 'NOLSM
  347. Sub SV1(M As Integer, к As Integer, NK1 As Integer, XYZM () As Double, TM1()
  348. As Integer, RC () As Double) вычисление к-ой составляющей S-вектора, связывающего NKl-ю координату типа Qизменение длины валентной связи с декартовыми координатами. Результат в строке RC.
  349. Dim s As Double: Dim tl As Integer: Dim t2 As Integer: tl = TM1(1, NK1): t2 = TM1(2, NK1)
  350. Call NOLSM (M, RC): s = Evector (k, tl, t2, XYZM): RC (t2) = s: RC (tl) = -s: End Sub
  351. Function VUgol (Ml As Integer, M2 As Integer, M3 As Integer, XYZM () As Double) As Doubleвычисление скалярного произведения направляющих векторов валентного угла (значениеcos (B)). Угол В образован атомами М1, М2,МЗ
  352. Dim i As Integer: Dim si As Double: Dim s2 As Double: VUgol = 0: For i = 1 To 3 VUgol = VUgol + Evector (i, M2, Ml, XYZM) * Evector (i, M2, M3, XYZM): Next i: End Function 'VUgol
  353. Function Fvector (k As Integer, tl As Integer, t2 As Integer, T3 As Integer, XYZM () As Double) As Double
  354. Вычисление F12 вектора для координаты типа В123(см. SV2)
  355. Dim si As Double: Dim s2 As Double: s2 = VUgol (tl, t2, T3, XYZM): si = DS (tl, t2, XYZM) * (1 s2 л 2) л 0.5
  356. Fvector = (Evector (k, t2, tl, XYZM) * s2 Evector (k, t2, T3, XYZM)) / si: End Function 'Fvector
  357. Sub SV2m (M As Integer, k As Integer, NK2 As Integer, XYZM () As Double, TM2() As Integer, RC () As Double)
  358. RC (T3) = Fvector (k, T3, t2, tl, XYZM): RC (t2) = -RC (tl) RC (T3): End Sub 'SV2m
  359. Sub SV3(M As Integer, к As Integer, NK3 As Integer, XYZM () As Double, TM3() As Integer, RC () As Double)
  360. Вычисление К-ой составляющей S вектора для координаты с номером NK3 типа К (изменения угла междусвязью и плоскостью. Связь дифференциала этого угла с дифференциалами смещений атомов
  361. Call NOLSM (M, RC): Dim i As Integer: Dim si As Double: Dim s2 As Double: Dim s3 As Double: Dim s4 As Double
  362. Dim s As Double: Dim t (l To 6) As Integer: For i = 1 To 6: t (i) = TM3(i, NK3): Next i: si = DS (t (2), t (l), XYZM): s2 = DS (t (4), t (3), XYZM): s3 = DS (t (6), t (5), XYZM): s4 = 0
  363. For i = 1 To 3: s4 = s4 + Evector (i, t (3), t (4), XYZM) * Evector (i, t (5), t (6), XYZM): Next is4 = (1 s4 Л 2) л 0.5: s = VPV3(k, t (3), t (4), t (5), t (6), XYZM) / s4 / si
  364. RC (t (l)) = RC (t (l)) + s: RC (t (2)) = RC (t (2)) s: s = VPV3(k, t (l), t (2), t (3), t (4), 1. XYZM) / s4 / s3
  365. RC (t (5)) = RC (t (5)) + s: RC (t (6)) = RC (t (6)) s: s = VPY3(k, t (5), t (6), t (l), t (2), XYZM) / s4 / s2
  366. RC (t (3)) = RC (t (3)) + s: RC (t (4)) = RC (t (4)) s: End Sub 'SV3
  367. Sub SV4X (M As Integer, k As Integer, NK4 As Integer, XYZM () As Double, TM3()
  368. As Integer, RC () As Double)
  369. Вычисление К-ой составляющей S вектора для координаты с номером NK4 типа X изменения угла междудвумя плоскостями. Связь дифференциала этого угла с дифференциалами смещений атомов
  370. Dim i As Integer: Dim s As Double: Dim MV (1 To 14, 1 To 4) As Double: Dim t (l To 6) As Integer
  371. Call NOLSM (M, RC): For i 1 To 6: t (i) = TM3(i, NK4): Next i: For i = 1 To 14: MV (i, 4) = 0: Next i
  372. MV (1, 4) = DS (t (2), t (l), XYZM): MV (2, 4) = DS (t (2), t (3), XYZM): MV (3, 4) = DS (t (5), t (4), XYZM)
  373. MV (4, 4) = DS (t (5), t (6), XYZM): For i = 1 To 3: MV (1, i) = Evector (i, t (2), t (l), XYZM)
  374. MV (2, i) = Evector (i, t (2), t (3), XYZM): MV (3, i) = Evector (i, t (5), t (4), XYZM) MV (4, i) Evector (i, t (5), t (6), XYZM): MV (5, i) = VPV3(i, t (2), t (l), t (2), t (3), XYZM)
  375. MV (6, i) = VPV3(i, t (5), t (4), t (5), t (6), XYZM): MV (11, 4) MV (11, 4) + MV (5, i) * MV (6, i)
  376. MV (5, 4) = MV (5, 4) + MV (1, i) * MV (2, i): MV (6, 4) = MV (6, 4) + MV (3, i) * MV (4, i): Next i
  377. MV (12, 4) = (1 MV (5, 4) A 2) Л 0.5: MV (13, 4) = (1 — MV (6, 4) A 2) A 0.5 MV (5, 4) = MV (5, 4) / MV (12, 4): MV (6, 4) = MV (6, 4) / MV (13, 4)
  378. MV (11, 4) = MV (11, 4) / MV (12, 4) / MV (13, 4): For i= 1 To 3: MV (5, i) = MV (5, i)/MV (12, 4)
  379. MV (6, i) = MV (6, i) / MV (13, 4): Next i If Abs (MV (l 1, 4)) > 0.99 Then ' Плоский случай
  380. For i = 1 To 3: MV (5, i) = Evector (i, t (2), t (5), XYZM): Next i' вектор E25
  381. For i = 1 To 3: MV (11, i) = VPV3M (i, 5, 6, MV): Next i' g=E25*N2.'
  382. For i = 1 To 3: MV (7, i) = VPV3M (i, 1,11, MV): MV (8, i) = VPV3M (i, 2, 11, MV)
  383. Else 'CosX=Nl *N2. dX=-(dNl *N2+dN2!|!Nl)/SinX.
  384. Nl=el *e2./SinAl .N2=[e3*e4]/SinA2
  385. MV (14, 4) = (1 MV (11, 4) Л 2) Л 0.5: MV (11, 4) = MV (11, 4) / MV (14, 4) ' SinX, Ctg X
  386. For i = 1 To 3 'смешанное произведениее1*К2.*е2- [e2*N2]*el- [e3*Nl]*e4-[e4*Nl]*e3
  387. MV (7, i) = VPV3M (i, 1, 6, MV): MV (8, i) = YPV3M (i, 2, 6, MV) ' el *N2.,[e2*N2] MV (9, i) = VPV3M (i, 3, 5, MV): MV (10, i) = VPV3M (i, 4, 5, MV) ' [e3*Nl],[e4*Nl]
  388. MV (7, 4) = MV (7, 4) + MV (7, i) * MV (2, i): MV (8, 4) = MV (8, 4) + MV (8, i) * MV (1, i)
  389. MV (9, 4) = MV (9, 4) + MV (9, i) * MV (4, i): MV (10, 4) = MV (10, 4) + MV (10, i) * MV (3, i)
  390. MV (11, i) = Fvector (i, t (l), t (2), t (3), XYZM): MV (12, i) = Fvector (i, t (3), t (2), t (l), XYZM)
  391. MV (13, i) = Fvector (i, t (4), t (5), t (6), XYZM): MV (14, i) = Fvector (i, t (6), t (5), t (4), XYZM)
  392. Function VPV3(k As Integer, Ml As Integer, M2 As Integer, M3 As Integer, M4 As Integer, XYZM () As Double) As Double
  393. Вычисление К-й составляюшей векторного произведения единичных векторовсвязей, образованных соответственно атомами М1→М2 и М3→М4
  394. Dim i As Integer: Dim j As Integer: i = 2: j = 3 If k = 2 Then i = 3: j = 1: End If If к = 3 Then i = 1: j = 2: End If
  395. VPV3 = Evector (i, Ml, M2, XYZM) * Evector (j, МЗ, M4, XYZM) Evector (j, Ml, M2, XYZM) * Evector (i, M3, M4, XYZM) End Function' VPV3
  396. Sub TIP (NQ As Integer, NB As Integer, NR As Integer, NX As Integer, Mit () As Integer)
  397. Dim i As Integer: Dim N As Integer: N = NQ + NB + NR + NX: For i = 1 To N:1. Mit (i) = 11. i > NQ Then1. Mit (i) = 2: End If1. i > NQ + NB Then1. Mit (i) = 3: End If1. i > NQ + NB + NR Then
  398. Mit (i) = 4: End If: Next i: End Sub TIP
  399. Sub MSV (M As Integer, NK As Integer, Mit () As Integer, XYZM () As Double, TM ()
  400. As Integer, SV () As Double)
  401. Вычисление матрицы S-векторов Sv (l:M, l: NK)
  402. Dim i As Integer: Dim k As Integer: Dim t As Integer: Dim j As Integer
  403. ReDim RC (1 To M) As Double: For i = 1 To NK: For к = 1 To 3: t = t + 1 If Mit (i) = 1 Then
  404. Call SV1(M, k, i, XYZM, TM, RC): End If If Mit (i) = 2 Then
  405. Call SV2m (M, k, i, XYZM, TM, RC): End If If Mit (i) = 3 Then
  406. Call SV3(M, k, i, XYZM, TM, RC): End If If Mit (i) = 4 Then
  407. Call SV4X (M, k, i, XYZM, TM, RC): End If
  408. For j = 1 To M: SVG, t) = RC (j): Next j: Next k: Next i: End Sub 'MSV
  409. Sub SymSv (M As Integer, NK As Integer, Ns As Integer, NKS As Integer, MNKS ()
  410. As Double, SV () As Double)
  411. Переход к симметризованной матрице S-векторов
  412. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim t As Integer
  413. ReDim MKS (1 To NK, 1 To Ns) As Double: ReDim RM (1 To 3 * Ns) As Double
  414. For i = 1 To NK: For j = 1 To Ns: MKS (i, j) 0: Next j: Next i: For k = 1 To NKSi = CInt (MNKS (l, k)): j = CInt (MNKS (2, k>): MKS (i, j) = MNKS (3, k): Next k
  415. For i = 1 To M: For j = 1 To Ns: For t = 0 To 2: RM (3 * j -1) = 0: For k = 1 To NK
  416. RM (3 * j -1) = RM (3 * j -1) + SV (i, 3 * k -1) * MKS (k, j): Next k: Next t: Next j
  417. For j = 1 To 3 * Ns: SV (i, j) = RM (j): Next j: Next i: End Sub 'SymSv
  418. Sub FVU (N As Integer, M As Integer, Nw As Integer, DKM () As Double, SV () As
  419. Double, MKK () As Double, FC () As Double) формирование матриц кинематических коэффициентов (МКК) и силовых постоянных (РС) для N-ro изотопа
  420. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim t As Integer: Dim s As Double
  421. Решение прямой механической задачи с получением частот и форм колебаний Dim i As Integer: ReDim Ll (l To Nw, 1 To Nw) As Double: Call JCOBI (Nw, MKK, LI, E, 1)
  422. Call TM (Nw, LI, Lq): Call PM (Nw, Nw, Nw, FC, Lq, FC): Call PM (Nw, Nw, Nw, LI, FC, LI)
  423. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim s As Double
  424. For i = 1 To Nw 1: For j = i + 1 To Nw1. t * H (i) < t * H (j) Thens = H (i): H (i) R (j): H (j) = s: For к = 1 To Nw: s = Lq (k, i): Lq (k, i) = Lq (k, j) Lq (k, j) — s: Next k: End If: Next j: Next i: End Sub 'Por2000
  425. Sub MetricEQ (N As Integer, M As Integer, Ns As Integer, DKM () As Double, KIN () As Double, SV () As Double)
  426. Получение смещений атомов N изотопа при изменении естественных координат
  427. KINNs, Ns.- матрица обратных кинематических коэффициентов, SV[M, 3*Ns]-S-векторы и смещения
  428. ReDim SVR (1 То 3 * Ns) As Double: Dim i As Integer: Dim j As Integer: Dim k As Integer
  429. Dim t As Integer: Dim s As Double: For i = 1 To M: For k = 0 To 2: For j = 1 To Ns: s = 0
  430. For t = 1 To Ns: s = s + SV (i, 3 * t k) * KIN (t, j): Next t: SVR (3 * j — k) = s / DKM (i, 3 + N)
  431. Next j: Next k: For k = 1 To 3 * Ns: SV (i, k) = SVR (k): Next k: Next i: End Sub 'MetricEQ
  432. Sub MetricNQ (N As Integer, M As Integer, Ns As Integer, Nw As Integer, SV () As Double, Lq () As Double, CA () As Double)
  433. Получение смещений атомов N изотопа при изменении нормальных координат Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim t As Integer: Dim s As Double: For i = 1 To M
  434. For к = 0 То 2: For j = 1 То Nw: s = 0: For t = 1 To Ns: s = s + SV (i, 3 * t k) * Lq (t, j): Next t
  435. CA (i, 3 * j k) = s: Next j: Next k: Next i: End Sub 'MetricNQ
  436. Sub PCoriolis (N As Integer, Nw As Integer, M As Integer, DKM () As Double, CA ()
  437. As Double, KP () As Double)
  438. Вычисление постоянных кориолиса N- изотопа для всех трех проекций в одном массиве КР (1:3*Nw, l: Nw)
  439. Исходные данные DKM-матрица геометрии и масс, СА (1 :М, 1:3Nw)-MaTpmja смещений атомов
  440. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim tl As Integer: Dim R1 As Integer: Dim t2 As Integer
  441. Dim r2 As Integer: Dim p As Integer: Dim s As Double: For i = 1 To Nw: For j = i To Nw
  442. KP (i + k * Nw, j) = KP (i + k * Nw, j) + s * (CA (p, tl) * CA (p, Rl) CA (p, t2) * CA (p, r2))
  443. Next p: Next k: Next j: Next i: End Sub 'Coriolis
  444. Function Distorlm (M As Integer, Nw As Integer, A As Integer, В As Integer, w As Integer, XYZM () As Double, CA () As Double) As Double
  445. Функция вычисляет производную от АВ-компонеты тензора инерции по W-ому нормальномуmjie6aHHK>.CAl:m, l:3*Nw.- матрица смещений атомов при колебаниях, XYZM[1:4,1:M]матрица координат и масс атомов в системе главных осей и центра масс.
  446. Dim i As Integer: Dim j As Integer: Dim k As Integer: Dim s As Single: Dim у As1. Single:
  447. Sub Distor2m (M As Integer, N As Integer, XYZM () As Double, H () As Double, CA () As Double, GMI () As Double, Tay () As Double) 'Получение массива центробежных искажений TAY1:21.
  448. СА-матрица смещений атомов, Н -частот колебаний, GMI-главных моментов инерции
  449. XYZM-координат и масс атомов в главных осях инерции и центре масс.
  450. Dim i As Integer: Dim j As Integer: Dim t As Integer: Dim k As Integer: Dim s As1. Double
  451. Dim AB (1 To 6) As Double: For t = 1 To 21: Tay (t) = 0: Next t: s = 4.44 * 10 л 10
  452. For t = 1 To N: k = 0: For i = 1 To 3: For j = i To 3: k = k + 1
  453. AB (k) = Distorlm (M, N, i, j, t, XYZM, CA) / H (t) / GMI (4, i) / GMI (4, j)
  454. Next j: Next i: k = 0: For i = 1 To 6: For j = i To 6: k = k + 1
  455. Tay (k) = Tay (k) s * AB (i) * AB (j) / 2: Next j: Next i: Next t: End Sub 'Distor2m
  456. Sub Distor3m (M As Integer, N As Integer, XYZM () As Double, SA () As Double, 1. PTI () As Double)
  457. Первые производных от тензора инерции PTI1: N, 1:6.
  458. Dim i As Integer: Dim j As Integer: Dim t As Integer: Dim k As Integer
  459. For t = 1 To N: k = 0: For i = 1 To 3: For j = i To 3: k = k + 1
  460. PTI (k, t) = Distorlm (M, N, i, j, t, XYZM, SA): Next j: Next i: Next t: End Sub1. Distor31. Дефект инерции
  461. Sub DefIn (N As Integer, NP As Integer, NN As Integer, w () As Double, Def As Double, h As Double, с As Double)
  462. Dim dl As Double, d2 As Double, hch As Double, pi As Double, с As Double
  463. Dim s As Integer, si As Integerpi = 3.1 415 926: dl = 0: d2 = 0
  464. For s = 1 To NP: S2 = 0: For si = 1 To N1. si <> s Then S2 = S2 + (w (sl) л 2 / (w (s) * (w (s) л 2 w (sl) л 2))) * ((10 л 6) *
  465. XKP (s, si) A 2 + (10 л 6) * YKP (s, si) л 2 + (10 * 6) * ZKP (s, si) л 2)
  466. Next si: dl = dl + S2 / 2: Next s
  467. For t = NP + 1 To N: d2 = d2 + 3 / (4 * w (t)): Next t1. Def=(dl+d2) *h/(pi * c)1. End Sub
Заполнить форму текущей работой