-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Лекция по квантовой химии 1, Self Consistent Field #76
Conversation
Добавил упрощения и правки
Хотя в принципе, читать можно, там только результаты вычислений самой энергии в блоках кода не показываются |
Очень круто! Материала много, я лишь по диагонали глянул, к выходным детально уже. А можно написать консольные команды для установки psi4s в окружение? Я без проблем сделаю make-file тогда и все. |
Хорошо, на выходных потыкаю. Ci сервер же на ubuntu? |
Да, там убунта. |
И еще одна мысль. Может разделить лекцию на две? Вме, что до SCF как "зеленую" сделать, все, что после отдельно. Просто очень много материала) Программу курса подправим без вопросов. |
\ket{\Psi(r, \theta, \phi)} = R_{nl}(r) Y_{lm} (\theta, \phi) | ||
$ | ||
|
||
где $Y_{lm}(\theta, \phi)$ -- [сферические функции](https://en.wikipedia.org/wiki/Spherical_harmonics) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
где $Y_{lm}(\theta, \phi)$ -- [сферические функции](https://en.wikipedia.org/wiki/Spherical_harmonics) | |
, где $Y_{lm}(\theta, \phi)$ -- [сферические функции](https://en.wikipedia.org/wiki/Spherical_harmonics) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
поставил зпт выше, после формулы
На этом шаге мы считаем, что $\psi_B$ -- фиксированная волновая функция, и мы находим "переменную" $\psi_A$. Однако, $\psi_A$ тоже будет влиять на $\psi_B$, и записав аналогичное уравнение для частицы B, мы следующим шагом найдем новую $\psi_B$. | ||
После изменения волновых функций каджого электрона -- мы можем заново записать их уравнения с новыми волновыми функциями, и так по кругу, пока волновые функции и их энергии не сойдутся к какому-то стабильному (самосогласованному) решению. | ||
|
||
Все вместе это создает итеративную процедуру: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а можно ли тут сделать так, чтобы эти пункты были под абзацем, а не как новым, мб после .
стоит добавить пробел?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
исправил на md список с общей табуляцией
@SemyonSinchenko по поводу разделения -- имхо не очевидно, где провести границу на "легкую" и "сложную" часть. |
Помимо фундаментальной ценности в виде лучшего понимания устройства мира, объясняющая спектр теория дает крутую возможность -- по измеренному спектру понять, что за вещество перед нами и какие процессы в нем протекают. Например, изучение спектров -- один из немногих способов узнать что-то про процессы в звездах или биологических клетках. Для совсем практиков -- спектроскопия также используется для детекции взрывчатых/ наркотических веществ в малых дозах, а полевые транзисторы (основа большинства современных вычислительные устройства) работают на основе туннельного эффекта -- квантового явления. Так что можно сказать, что квантовая механика используется сплошь и рядом! | ||
``` | ||
|
||
Если мы перейдем в уравнении Х в сферические координаты со следующей параметризацией $\ket{\Psi(\vec{r})} = \frac{\chi(r)}{r} Y(\theta, \phi)$ и воспользуемся несколькими волшебными выводами квантмеха[1], то получим: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bibtex?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SemyonSinchenko вопрос по bibtex -- у нас все ссылки в общем references.bib?
Тут не статьи, а скорее учебники и курсы лекций в ссылках -- их туда же?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Да, для единообоазия, литературу туда. Википедию можно прямо в []()
* l -- орбитальное квантовое число, $0<=l<=n-1$ | ||
* m -- магнитное квантовое число, $-l<=m<=l$ | ||
* s -- спиновое квантовое число, $s = 0|1$ (для атома водорода оно не играет роли, т.к. электрон только один) | ||
* $l$ -- орбитальное квантовое число, $0<=l<=n-1$ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Для буквы l принято использовать \ell (курсив), так читаемее.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Исправил везде на \ell
|
||
$ | {\Psi}(X_A, X_B) |^2 = | {\Psi}(X_B, X_A) |^2 $ | ||
|
||
У этого ограничения есть два решения: либо $ {\Psi}(X_A, X_B) = {\Psi}(X_B, X_A) $ (симметричность), либо $ \Psi(X_A, X_B) = -\Psi(X_B, X_A) $ (антисимметричность). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Возможно стоит уточнить, что только два решения есть при определенных условиях (теорема спин статистики), так как в целом уравнение $ | {\Psi}(X_A, X_B) |^2 = | {\Psi}(X_B, X_A) |^2 $ решается как минимум умножением на любую фазу, не только +-1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Как я понимаю, раз после двух перестановок (AB) + (BA) система должна вернуться в то же состояние, то фаза должна быть кратна pi/2, т.е. +1/-1.
Я здесь хотел дать какую-то интуицию, почему функция должна быть антисимметричной -- не хотелось с потолка заявлять, так что в детали вдаваться не стал.
Если есть идеи, как это сформулировать, чтоб не требовалось куда-то далеко уходить от основной темы -- давай добавлю.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Так как глобальная фаза не влияет на физику, то "вернуться в то же состояние" не значит что после двух перестановок мы должны получить назад \Psi(X_A, X_B), хотя это объяснение часто используют в начальных курсах по квантам. \Psi(X_A, X_B) мы должны получить в пространственном измерении больше двух потому что там любой замкнутый путь частицы можно непрерывно стянуть в точку не приближаясь ко второй частице (в двух измерениях это не так, а в одном частицы обменять вообще невозможно).
Возможно всю историю с фермионами и бозонами лучше вынести в Note, а в основном тексте просто написать, мол есть фермионы и бозоны, у первых волновая функция меняет знак при обмене, а у вторых не меняется.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А весь этот блок про антисимметрию уже обрнут в Note -- это пояснение, почему нужны именно антисимметричные функции.
Если просто написать, что "у фермионов волновая функция должна менять знак при обмене" -- то весь этот Note становится не очень осмысленным, т.к. его цель была как-то аргументировать, почему же должна.
Может, стоит указать в скобках, что на самом деле, все сложнее, и дать ссылку куда-то на более полное объяснение? Я в
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ну для Note advanced лекции возможно аргумент со стягиванием и ок, вопрос уже к @SemyonSinchenko
Сослаться можно например на https://arxiv.org/abs/0707.1889 , там в 2 секции неплохое объяснение
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ну для Note advanced лекции возможно аргумент со стягиванием и ок, вопрос уже к @SemyonSinchenko
Сослаться можно например на https://arxiv.org/abs/0707.1889 , там в 2 секции неплохое объяснение
А чего я сразу, вы тут лучше меня шарите :)
В целом политика такая, что в Note можно любую жесть. Ну и вообще это гибкий курс с максимальной свободой для автора.
Во-первых, легко проверить, что если поменять местами $X_A$ и $X_B$, то вся функция просто изменит знак. | ||
Во-вторых, можно заметить, что эта формула -- определитель матрицы: | ||
$ | ||
\begin{pmatrix} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vmatrix
?
Еще раз почитал - давай попробуем разделить? Просто лекция очень крутая, но большая и подробная, поэтому хотелось бы "удержать" читателя и не спугнуть размером лекции. Мне кажется можно было бы сделать даже три части:
А так - еще раз спасибо, очень крутой вклад! Добавь себя пожалуйста в список основных авторов тут: https://github.com/SemyonSinchenko/qmlcourse/blob/master/qmlcourseRU/book/authors.md |
Супер топ! |
Скорректировала орфографию, немного скорректировала формулировки.
Update quantchembasic.md
Co-authored-by: Evgeniy Zheltonozhskiy <zheltonozhskiy@gmail.com>
Co-authored-by: Evgeniy Zheltonozhskiy <zheltonozhskiy@gmail.com>
@zimka можешь пж присоединить к этому pr твой issue? |
Разделил лекцию на короткое интро попроще, и остальную часть. Вынес ссылки в bibtex. |
Предлагаю оставить это в отдельную задачу, а этот PR мержить. Так будет проще другим авторам - они будут видеть больше лекций, на мой взгляд это важно. |
@SemyonSinchenko порешай конфликтный файл пж |
Перенес изменения из Team в README Conflicts: - Team.md
По факту я все равно делаю git checkout, git merge, решаю конфликт и делаю push (кмк тут не зависит от прав, в веб-морде гита это делать все равно неудобно). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SemyonSinchenko порешай конфликтный файл пж
По факту я все равно делаю git checkout, git merge, решаю конфликт и делаю push (кмк тут не зависит от прав, в веб-морде гита это делать все равно неудобно).
хм, всегда такое делаю через их ui, так удобнее, понятнее и быстрее. ну а так да, можно самому на своей стороне сделать, просто хотел снять это дело с автора pr
e_in_ht_h = psi4.energy('scf', molecule=h_mol) | ||
print(f"Hydrogen ground state energy: {e_in_ev(e_in_ht_h)} eV") | ||
``` | ||
Здесь мы задали явно координаты обоих атомов водорода в молекуле, и энергия электронов была высчитана в предположении, что ядра водородов неподвижны. Здесь расстояние в 0.74А -- взято из [экспериментальных данных](https://cccbdb.nist.gov/exp2x.asp?casno=1333740&charge=0). Если бы мы зададим неправильные координаты, то рассчитанная энергия окажется неверной (точнее, она соответствовала бы нефизичной ситуации, когда неведомая сила "удерживает" ядра водорода на месте). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здесь мы задали явно координаты обоих атомов водорода в молекуле, и энергия электронов была высчитана в предположении, что ядра водородов неподвижны. Здесь расстояние в 0.74А -- взято из [экспериментальных данных](https://cccbdb.nist.gov/exp2x.asp?casno=1333740&charge=0). Если бы мы зададим неправильные координаты, то рассчитанная энергия окажется неверной (точнее, она соответствовала бы нефизичной ситуации, когда неведомая сила "удерживает" ядра водорода на месте). | |
Здесь мы задали явно координаты обоих атомов водорода в молекуле, и энергия электронов была высчитана в предположении, что ядра водородов неподвижны. Расстояние в 0.74А взято из [экспериментальных данных](https://cccbdb.nist.gov/exp2x.asp?casno=1333740&charge=0). Если бы мы задали неправильные координаты, то рассчитанная энергия окажется неверной (точнее, она соответствовала бы нефизичной ситуации, когда неведомая сила "удерживает" ядра водорода на месте). |
print(f"Hydrogen molecule, optimized ground state energy: {e_in_ev(e_in_ht_h_optimized)} eV") | ||
|
||
``` | ||
Для некорректной геометрии получилась завышенная энергия, а после оптимизации -- почти что такая же энергию, как при вычислении с фиксированным растоянием 0.74. В оптимальном состоянии энергия системы должна быть минимальна, так что результаты вполне разумны. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Для некорректной геометрии получилась завышенная энергия, а после оптимизации -- почти что такая же энергию, как при вычислении с фиксированным растоянием 0.74. В оптимальном состоянии энергия системы должна быть минимальна, так что результаты вполне разумны. | |
Для некорректной геометрии получилась завышенная энергия, а после оптимизации -- почти что такая же энергия, как при вычислении с фиксированным растоянием 0.74. В оптимальном состоянии энергия системы должна быть минимальна, так что результаты вполне разумны. |
- как устроен метод Self-Consistent Field для вычисления волновых функций и энергии для задачи многих тел | ||
- как пользоваться SCF в python пакете psi4 | ||
|
||
В примерах мы везде вычисляли ground state энергию, но, конечно, зная волновые функции, можно посчитать много чего еще. Например, можно вычислить спектр поглощения и энергию ионизации (энергии возбужденных состояний), моделировать взаимодействие молекул (найти равновесное состояние для двух систем), с помощью плагинов можно смоделировать рассеяния рентгена молекуле... Квантовая механика постулирует, что любая измеримая величиная является усреднением определенного оператора по волновой функции, поэтому возможности ограничены в основном вычислительной сложностью, а не теорией. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
точно «молекуле»?
@SemyonSinchenko а ты точно уверен что можно уже вливать в master? |
Несколько дней висел, думал уже все посмотрели. Ссори, я сейчас аккуратно вынесу твои правки в отдельную ветку. |
суть не в моих правках, возможно автор ещё что-то хотел добавить или что-то иное |
Я ориентировался на его коммент 4 дня назад, соотв вынес задачу про psi4 и смержил. Го в слаке обсудим этот вопрос, кажется я что-то делаю не так. |
C CI будет проблема -- в коде используется python пакет для квантовых вычислений psi4. Он всем хорош (с документацией, производительный, много методов), кроме одного -- ставится он через conda вместе с бинарниками (есть сборки для win/linux). Соотвественно, через чисто pip его не поставить, а значит и через чисто poetry, как я понимаю, тоже.