Метод молекулярной динамики

Автор: Пользователь скрыл имя, 23 Декабря 2010 в 03:10, курсовая работа

Описание работы

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

Содержание

Введение 3
СОБЫТИЙНЫЙ ПОДХОД В МОЛЕКУЛЯРНОЙ ДИНАМИКЕ 5
1.1. Событийная молекулярная динамика 6
1.2. Организация информации 7
1.3. Обновление состояний 8
1.4. Вычисление событий и структура связанных ячеек 9
1.5. Оптимальное количество ячеек 10
2. МОДЕЛЬ ТЕЧЕНИЯ ГАЗА ВСРЕДЕ С ФИЛЬТРАМИ 12
2.1 Описание рабочей области 12
2.2 Инициализация входных параметров 13
Выводы 15
Список использованной литературы 16

Работа содержит 1 файл

!!!Курсовой _МОДЕЛЮВАННЯ МОДЕЛКУЛЯРНОЇ ДИНАМІКІ ІЗ ЗАСТОСУВАННЯМ ПОДІЙНОГО ПІДХОДУ.docx

— 101.59 Кб (Скачать)

Содержание 
 

Введение 3

СОБЫТИЙНЫЙ  ПОДХОД В МОЛЕКУЛЯРНОЙ ДИНАМИКЕ 5

1.1. Событийная молекулярная динамика 6

1.2. Организация информации 7

1.3. Обновление состояний 8

1.4. Вычисление событий и структура связанных ячеек 9

1.5. Оптимальное количество ячеек 10

2. МОДЕЛЬ ТЕЧЕНИЯ ГАЗА ВСРЕДЕ С ФИЛЬТРАМИ 12

2.1 Описание рабочей  области 12

2.2 Инициализация входных  параметров 13

Выводы 15

Список  использованной литературы 16 
 

 

Введение

 

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

     Сегодня метод молекулярной динамики является одним из доминирующих методов компьютерного  моделирования физических процессов  в мировой компьютерной науке[1]. Дополненный методами теоретической  физики, теории устойчивости, случайных  процессов и др., метод молекулярной динамики является основным инструментом исследований систем с большим числом степеней свободы. В настоящее время  ведется активное развитие методов  квантовой молекулярной динамики.

     Метод молекулярной динамики основан на численном  решении классических уравнений  движения частиц в некотором выделенном объеме среды. Все частицы, находящиеся  в выделенный объеме (ячейке), взаимодействуют  друг с другом посредством заданного  потенциала взаимодействия. Выбор потенциала взаимодействия частиц является наиболее важным этапом построения численной  модели. Для определения микроскопических характеристик среды, как правило, используется расчет корреляционных функций.

     Весьма  эффективным является событийный подход в молекулярной динамике. Его применяют  для много компонентных систем, составляющие которых развиваются независимо. В [2] рассматривается система, состоящая из N твердых сфер в прямоугольной области с периодическими граничными условиями. В этом алгоритме рассматриваются два основных объекта данных: состояния частиц и список событий. Все события записываются в очередь по приоритету. Сложность извлечения следующего события из такой очереди – , вставки нового события – . Пространство моделирования делят на ячейки одинакового размера.  

 

СОБЫТИЙНЫЙ  ПОДХОД В МОЛЕКУЛЯРНОЙ ДИНАМИКЕ

 

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

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

     Единственная  причина, по которой событийная молекулярная динамика не стала также популярна, как традиционная молекулярная динамика, управляемая временем, это то, что  распараллеливание является крайне сложной процедурой. Парадоксальность этого задания заключается в  алгоритмическом распараллеливании  физически непараллельной динамики. Тем не менее, некоторые идеи и  основные положения были предложены в работе [8]. Они особенно подходят для компьютеров с разделяемой памятью, но могут также быть использованы для архитектур с разделенной памятью.  
 

    1. Событийная молекулярная динамика
 

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

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

     Обработка событий включает в себя обновление состояний для задействованных  частиц и пересчет ближайших будущих  событий для этих частиц. Основная схема алгоритма представлена на рис. 1.

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

     Цикл обработки  событий
  1. Получить следующее событие из стека – получить значение текущего времени
  2. Обновить состояния обеих частиц к текущему моменту времени
  3. Вычислить новые ближайшие события для обеих частиц
  4. Определить следующее событие для обеих частиц и добавить его в стек
  5. Перейти к шагу 1

     Рис. 1.1 - Схема основной части алгоритма

    1. Организация информации
 

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

     

,

     где - время состояния, - текущее время, - время события. 

     Состояния частиц:

     Список  событий:

     

     Рис. 1.2 - Структура данных для N частиц 

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

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

     Все события записываются в очередь  по приоритету, которая обычно реализуется  как имплицитная куча [8, 9], но применение других структур данных с подобными характеристиками также возможно [10]. Куча представляет собой двоичное дерево со следующим правилом упорядочивания: каждый родительский узел имеет более высокий приоритет, чем его потомки; потомки между собой не упорядочены. Таким образом, корень всегда имеет высший приоритет, то есть самое раннее время события. Получение следующего события из очереди с приоритетом имеет вычислительную сложность . Вставка нового события в очередь по приоритету имеет сложность .

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

    1. Обновление  состояний
 

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

     Типичное  правило столкновения для твердых  сфер выглядит следующим образом:

     

,

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

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

     Более ранний алгоритм проверяет при каждом столкновении, становится ли соучастник события недействительным и, если да, помечает этого партнера. Эта стратегия является менее эффективной, так как иногда одна и та же частица может быть определена как недействительная несколько раз. Кроме того в параллельном алгоритме возможно будет необходимым дополнительное сообщение между различными процессами.

    1. Вычисление  событий и структура связанных  ячеек
 

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

     

     Две частицы 1 и 2 столкнуться в момент времени  :

     

,

     где , - это относительные скорости и положения частиц в момент времени , а - радиусы частиц. Если мнимо или меньше , частицы не столкнутся.

     Если  алгоритм должен осуществлять проверку столкновений со всеми частицами, то его скорость выполнения будет очень  низкой для большого числа частиц. Поэтому мы делим пространство модели на С ячеек равного размера. Каждая частица принадлежит ячейке, в  которой лежит ее центр. Если размер ячейки больше, чем максимальное расстояние между двумя частицами при  взаимодействии, то есть в случае твердых  сфер превышает диаметр частиц, вычисление событий должно происходить только тогда, когда частицы лежат в  одной или соседних ячейках (одна квадратная ячейка имеет 8 соседних в  двумерном случае и 26 в трехмерном).

Информация о работе Метод молекулярной динамики