Редактирование: Метод Барнса-Хата

Перейти к: навигация, поиск

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

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[Виртуальная лаборатория]] > [[Метод Барнса-Хата]] <HR>
+
[[Image: Barns1.png|400px|right]]  
 
 
[[File: Barns1.png|thumb|400px|right|Результат моделирования формирования планетной системы
 
Земля-Луна в результате гравитационного коллапса пылевого облака]]
 
  
 
= Аннотация =
 
= Аннотация =
Для оптимизации некоторых задач, решаемых методом динамики частиц (таких, как моделирование образования Солнечной системы), используются иерархические методы. Они наиболее неприхотливы к различным особенностям физической модели, в частности к скачкам в распределении частиц. На доступных на сегодняшний день аппаратных ресурсах они позволяют проводить расчеты для систем с числом частиц до <math>10^9</math>, в зависимости от конкретной задачи. Существует, собственно, всего два классических иерархических алгоритма быстрый мультипольный метод и алгоритм Барнса-Хата. Все остальные в той или иной степени являются их модификациями и комбинациями с другими методами расчета сил.
+
Для задач молекулярной динамики (таких, как метод Барнса-Хата) используются иерархические методы, которые наиболее неприхотливы к различным особенностям физической модели, в частности к скачкам в распределении частиц. На доступных на сегодняшний день аппаратных ресурсах они позволяют проводить расчеты для систем с числом частиц до <math>10^9</math>, в зависимости от конкретной задачи. Существует, собственно, всего два классических иерархических алгоритма быстрый мультипольный метод и алгоритм Барнса-Хата. Все остальные в той или иной степени являются их модификациями и комбинациями с другими методами расчета сил.
 
 
В данной статье рассматривается процесс реализации алгоритма Барнса-Хата на примере двумерного случая.
 
  
 
= Описание метода =
 
= Описание метода =
 
== Первый этап ==
 
== Первый этап ==
[[Image: Barns2.png|thumb|210px|right|Пример разбиения иерархического пространства на ячейки для двумерного случая]]  
+
[[Image: Barns2.png|200px|right]]  
 
Объединение частиц в древовидную структуру данных с учетом близости их расположения друг к другу. Существуют реализации с построением дерева путем объединения групп частиц (ближайшие частицы объединяются в пары, образуя узлы, затем пары также объединяются между собой и т.д.). Однако обычно это делается просто иерархической декомпозицией пространства на кубические ячейки. Для двумерного случая пример такого разбиения показан на рисунке справа. Ячейки в нем соответствуют узлам дерева, частицы в них — листьям.
 
Объединение частиц в древовидную структуру данных с учетом близости их расположения друг к другу. Существуют реализации с построением дерева путем объединения групп частиц (ближайшие частицы объединяются в пары, образуя узлы, затем пары также объединяются между собой и т.д.). Однако обычно это делается просто иерархической декомпозицией пространства на кубические ячейки. Для двумерного случая пример такого разбиения показан на рисунке справа. Ячейки в нем соответствуют узлам дерева, частицы в них — листьям.
  
Строка 17: Строка 12:
 
Для подсчета результирующей силы, действующей на какую-либо произвольно взятую частицу, совершается обход дерева от корня. При достижении очередного узла дальнейший расчет проходит по следующей схеме:
 
Для подсчета результирующей силы, действующей на какую-либо произвольно взятую частицу, совершается обход дерева от корня. При достижении очередного узла дальнейший расчет проходит по следующей схеме:
 
<br>
 
<br>
А) если узел терминальный (не имеющий дочерних элементов), то к результату просто добавляется сила, действующая со стороны этого узла;
+
А) если узел терминальный (узел, не имеющий дочерних элементов ), то к результату просто добавляется сила, действующая со стороны этого узла;
 
<br>
 
<br>
 
Б) если узел не терминальный, то для потенциала, создаваемого частицами данного узла, может быть вычислена аппроксимация. С помощью критерия допустимости происходит проверка точности аппроксимации:
 
Б) если узел не терминальный, то для потенциала, создаваемого частицами данного узла, может быть вычислена аппроксимация. С помощью критерия допустимости происходит проверка точности аппроксимации:
Строка 25: Строка 20:
 
== Третий этап ==
 
== Третий этап ==
 
Производится интегрирование уравнений движения и пересчет скоростей и координат частиц.
 
Производится интегрирование уравнений движения и пересчет скоростей и координат частиц.
 +
  
 
== Дополнение к этапу 2-Б ==
 
== Дополнение к этапу 2-Б ==
Строка 42: Строка 38:
  
 
''Комментарий к программе'':
 
''Комментарий к программе'':
* Левой клавишей мыши частицы можно добавлять и перемещать.
+
* Левой клавишей мыши добавляются частицы
* Правой клавишей мыши частицы можно удалять.
+
* Правой клавишей мыши удаляются частицы
  
  
Строка 49: Строка 45:
  
 
Разработчик программы: [[Цветков Денис]], при разработке программы были использованы материалы диссертации [[Ле-Захаров Александр|Александра Ле-Захарова]].
 
Разработчик программы: [[Цветков Денис]], при разработке программы были использованы материалы диссертации [[Ле-Захаров Александр|Александра Ле-Захарова]].
 
 
Материал данной страницы скомпонован [[Александров Сергей|Сергеем Александровым]].
 
Материал данной страницы скомпонован [[Александров Сергей|Сергеем Александровым]].
  
Строка 56: Строка 51:
 
* [[Медиа: Lezakharov_disser_2010.pdf |Материал диссертации]] (Автор [[Ле-Захаров Александр|Александр Ле-Захаров]])
 
* [[Медиа: Lezakharov_disser_2010.pdf |Материал диссертации]] (Автор [[Ле-Захаров Александр|Александр Ле-Захаров]])
 
* [[Проект "Земля - Луна"]]
 
* [[Проект "Земля - Луна"]]
 +
 +
='''Ссылки'''=
 +
* [[Виртуальная лаборатория]]
 
* [https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_(%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85) Дерево_(структура_данных)]
 
* [https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_(%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85) Дерево_(структура_данных)]
 
+
<br>
 
[[Category: Виртуальная лаборатория]]
 
[[Category: Виртуальная лаборатория]]
 +
[[Category: Программирование]]
 +
[[Category: JavaScript]]
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)