Как стать автором
Обновить

Программирование молекулярной динамики

Время на прочтение3 мин
Количество просмотров24K
Доброе время суток хабражители и хабражительницы. Сегодня хотел бы поделиться с вами своими попытками в программировании физических процессов. А конкретнее – попытке углубиться до молекулярных масштабов. Тема для разговора под хабракатом – молекулярная динамика.
Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии33

aztotmd: молекулярная динамика [+ непостоянное поле сил] [+ излучательный термостат]. CUDA-версия. Руководство

Время на прочтение26 мин
Количество просмотров2.6K

Проект aztotmd основан на классической молекулярной динамике и содержит основной функционал для классических расчётов, но также и ряд экспериментальных особенностей: непостоянное поле сил и излучательный термостат. Программа распараллелена с помощью технологии CUDA. Здесь представлена инструкция по работе с программой.

 Возможности и ограничения

Требуется видеокарта NVidia с computational capability > 2.2. Программа основана на численном интегрировании уравнений движения скоростным алгоритмом Верле. Опции:

+ периодические граничные условия и только в форме прямоугольного параллелепипеда;

+ парные потенциалы: 6 обычных и 1 температуро-зависимый;

+ 3 способа учета электростатики: наивный, суммирование по Эвальду и метод Феннеля и Гецельтера;

+ 2 термостата: Нозе-Гувера и излучательный;

+ валентные связи;

+ валентны углы;

+ внешнее электрическое поле с постоянным градиентом;

+ возможность динамического образования/удаления валентных связей (включая водородные) и валентных углов;

Далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии9

Вычислительная химия: синтез новых материалов для долговечных синих OLED

Время на прочтение9 мин
Количество просмотров2.8K

В этой статье вы узнаете о моделировании свойств новых материалов, о том, как это помогает увеличить срок службы синих светодиодов в OLED-экранах, зачем нужен искусственный интеллект в квантовой химии, и в какую сторону двигаться студенту, чтобы стать ученым и в итоге сделать публикацию в Nature.

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии2

Облака атомных колебаний

Время на прочтение22 мин
Количество просмотров6.7K

В этой заметке мы поговорим о том, что такое молекулярная динамика, и как её результаты можно реализовать в виде облаков распределений атомов.

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии13

Перенос молекулярной динамики на CUDA. Часть I: Основы

Время на прочтение22 мин
Количество просмотров7.3K
Цель данной статьи – поднять вопросы распараллеливания кода программы для численного моделирования методом молекулярной динамики (МД) с помощью технологии CUDA. Зачем это вообще нужно, ведь уже существуют программные пакеты по МД, работающие в том числе и на CUDA? Дело в том, что я развиваю свою собственную концепцию «непостоянного поля сил» (non-constant force field), которая не реализована в существующих МД-программах.

Переделывать чужой код под эти нужды – довольно неблагодарное занятие, поэтому я взялся перенести уже написанный свой последовательный код и заодно поделится некоторыми размышлениями. Кроме того, это ответ на часто мелькающий здесь комментарий к статьям по CUDA, вроде этого .

Итак, что же такое молекулярная динамика? На Хабре уже есть несколько постов на эту тему, например здесь или вот здесь. Кратко, МД – это метод, позволяющий моделировать движение множества частиц (в том числе атомов, ионов, молекул) и рассчитывать коллективные свойства системы, зависящие от этого движения. Как это работает? Допустим для множества из N частиц заданы некоторые начальные координаты, скорости, массы и (главное!) законы взаимодействия между ними. Изменяем координаты согласно скоростям. На основе законов взаимодействия вычисляем силы, действующие между частицами. Раз знаем силу и массу – знаем ускорение. Поправляем скорость с учетом ускорения. И снова переходим к изменению координат. И так повторяем тысячи раз, пока не надоест не наберем достаточную статистику.

image
Итак
Всего голосов 31: ↑30 и ↓1+29
Комментарии29

Перенос молекулярной динамики на CUDA. Часть II: Суммирование по Эвальду

Время на прочтение10 мин
Количество просмотров3.3K
В предыдущей статье мы обсудили основу метода молекулярной динамики, в том числе вычисление энергии и сил взаимодействия между частицами с заданными парными потенциалами. А что, если частицы обладают некоторым электрическим зарядом? Например, в том случае, если мы моделируем кристалл поваренной соли, состоящий из ионов Na+ и Cl-. Или водный раствор, содержащий те или иные ионы. В этом случае, кроме парных потенциалов типа Леннарда-Джонса между ионами действуют силы электростатического взаимодействия, т.е. закон Кулона. Энергия такого взаимодействия для пары частиц i-j равна:

$E=C\frac{q_iq_j}{r_{ij}},$


где q – заряд частицы, rij – расстояние между частицами, С – некоторая постоянная, зависящая от выбора единиц измерения. В системе СИ это — $\frac{1}{4\pi\epsilon_0}$, в СГС — 1, в моей программе (где энергия выражена в электронвольтах, расстояние в ангстремах, а заряд в элементарных зарядах) C примерно равно 14.3996.

image

Ну и что, скажете вы? Просто добавим соответствующее слагаемое в парный потенциал и готово. Однако, чаще всего в МД моделировании используют периодические граничные условия, т.е. моделируемая система со всех сторон окружена бесконечным количеством её виртуальных копий. В этом случае каждый виртуальный образ нашей системы будет взаимодействовать со всеми заряженными частицами внутри системы по закону Кулона. А поскольку Кулоновское взаимодействие убывает с расстоянием очень слабо (как 1/r), то отмахнуться от него так просто нельзя, сказав, что с такого-то расстояния мы его не вычисляем. Ряд вида 1/x расходится, т.е. его сумма, в принципе, может расти до бесконечности. И что же теперь, миску супа не солить? Убьёт электричеством?
Оказывается
Всего голосов 22: ↑22 и ↓0+22
Комментарии4

Суперкомпьютеры и клеточные мембраны (заключительная часть)

Время на прочтение29 мин
Количество просмотров2.8K

источник изображения

В молодости Клаус Шультен воображал, что станет танцором, и будет жить не полагаясь ни на что, кроме собственного разума и тела. "Но танцор из меня вышел никудышный, – вспоминает он. – Итак, следующим вариантом жизненного пути для меня была теоретическая физика. Только я, карандаш, бумага, ну и ластик, разумеется."

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Что такое температура и как её учитывать в молекулярном моделировании? Реализация на CUDA

Время на прочтение12 мин
Количество просмотров5.7K

Методы численного моделирования молекулярных систем, такие как молекулярная динамика, рассматривают эти системы как механические (что-то вроде набора шариков на пружинках). Однако, в отличие от механических систем, для молекулярных существует понятие температура. Вещество не может существовать без температуры, а температура – без вещества (на счет последней части утверждения есть и другое мнение). Из опыта мы знаем, что очень многие свойства вещества кардинально зависят от температуры, и, естественно, что её надо как-то учитывать. Для поддержания температуры в молекулярной динамике используются специальные алгоритмы-«термостаты». Наиболее известные среди них это термостаты Андерсена, Берендсена и Нозе-Гувера. Все они основаны на молекулярно-кинетической теории газов, где температура есть просто величина пропорциональная среднекинетической энергии молекул. Соответственно, работа данных термостатов осуществляется путём умножения скоростей частиц на некоторую величину.

Что же не так?
Всего голосов 9: ↑9 и ↓0+9
Комментарии10

Перенос молекулярной динамики на CUDA. Часть III: Внутримолекулярное взаимодействие

Время на прочтение17 мин
Количество просмотров2.1K
До этого мы рассматривали молекулярную динамику, где законы взаимодействия между частицами зависели исключительно от типа частиц или от их заряда. Для веществ молекулярной природы взаимодействие между частицами (атомами) сильно зависит от того, принадлежат ли атомы одной молекуле или нет (точнее, связаны ли они химической связью).

Например, вода:

image

очевидно, что водород с кислородом внутри одной молекулы взаимодействуют совсем по-другому, нежели тот же кислород с водородом соседней молекулы. Таким образом, разделяют ВНУТРИмолекулярное (intramolecular) и МЕЖмолекулярное (intermolecular) взаимодействие. Межмолекулярное взаимодействие можно задать короткодействующими и Кулоновскими парными потенциалами, о которых речь шла в предыдущих статьях. Здесь же сконцентрируемся на внутримолекулярном.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии4

Суперкомпьютеры и клеточные мембраны 3

Время на прочтение20 мин
Количество просмотров2.6K

источник изображения

В 1992 году Клаус Шультен столкнулся с большой дилеммой, за которую был бы благодарен любой ученый. Как лучше потратить полмиллиона долларов на оборудование?

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Суперкомпьютеры и клеточные мембраны 2

Время на прочтение31 мин
Количество просмотров2.1K

(Визуализатор VMD в связке с проектором и управлением жестами, 1994 г.)

С самодельным параллельным суперкомпьютером в рюкзаке Клаус Шультен терпеливо ждал в чикагском аэропорту О'Хара, надеясь, что после прибытия из Германии ему не составит труда пройти таможню. Это было летом 1988 года, и Шультен собирался начать новую работу в Университете Иллинойса. В разгар холодной войны, когда напряженность между США и Советским Союзом достигла наивысшего пика, суперкомпьютеры вызывали у администрации Рейгана большой ужас. Хотя Рейган, находясь на своем посту, усилил гонку вооружений и все сопутствующие ей технологические достижения, он хотел, чтобы бурно развивающиеся разработки суперкомпьютеров не попали в руки Советов, которые могли бы создать более совершенное оружие.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии2