Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
san-smith
12 / 12 / 4
Регистрация: 02.06.2011
Сообщений: 24
Завершенные тесты: 1
1

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

24.12.2013, 13:14. Просмотров 1666. Ответов 1
Метки нет (Все метки)

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

http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{r}(t + \Delta t)=\vec{r}(t) + \vec{v}\Delta t + \vec{a}\Delta t^2/2
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{v}(t + \Delta t/2) = \vec{v} + \vec{a}\Delta t/2
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{a}(t) = -grad(U(\vec{r}(t)))/2
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{v}(t + \Delta t) = \vec{v}(t + \Delta t/2) + \vec{a}\Delta t/2

Здесь U - потенциал Леннарда-Джонса:

http://www.cyberforum.ru/cgi-bin/latex.cgi?U = 4\epsilon ( (\sigma /r )^12 - (\sigma /r )^6 )

Моделировать нужно в 2-мерном пространстве, поэтому градиент в 3-й формуле надо брать по двум направлениям (если я ничего не путаю).
Собственно, как раз в этом месте у меня заковырка и выходит - не могу сообразить, как преобразовать потенциал U(r(t)) в U(x(t),y(t))!
Нет, я в принципе понимаю, что http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{r} = x\vec{i} + y\vec{j}, но куда девать i и j в уравнении потенциала сообразить не могу.

Буду благодарен, если кто подскажет как это сделать или хотя бы кинет ссылку, где рассказывают нечто подобное.

На всякий случай приведу код, в котором хочу это использовать (может кто на вскидку ещё какие ошибки заметит):
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
clear;
N = 100; %количество частиц
Tk = 60;  %время окончания расчетов
dt = 0.1; % шаг времени
Nh = Tk/dt; %количество шагов
 
L = 1000; %длина ящика
H = 1000; %ширина
 
%задаем начальные координаты и скорости
for i = 1:N
    x(i) = rand*L;
    y(i) = rand*H;
    Vx(i) = rand;
    Vy(i) = rand;
end;
 
%начальные ускорения частиц равны нулю
for i = 1:N
    ax(i) = 0;
    ay(i) = 0;
end;
 
%главный цикл
for t = 1:Nh
    for i = 1:N 
        x(i) = x(i) + Vx(i)*dt +0.5*ax(i)*dt^2;
        y(i) = y(i) + Vy(i)*dt +0.5*ay(i)*dt^2; 
      
        %проверка граничных условий - они должны быть периодическими
      if x(i)<0
          x(i) = x(i) + L;
      end;
      if x(i)>L
          x(i) = x(i) - L;
      end;
      if y(i)<0
          y(i) = y(i) + H;
      end;
      if y(i)>H
          y(i) = y(i) - H;
      end;
      
      %вычисление скорости со старым ускорением
      Vx(i) = Vx(i) + 0.5*ax(i)*dt;
      Vy(i) = Vy(i) + 0.5*ay(i)*dt;
      
      %%%%%%%%%%%%%%%%%
      % вычисление нового ускорения
      for j = i+1:N
 
          %???????????????
 
      end;
      %%%%%%%%%%%%%%%%%
      
      %вычисление скорости с новым ускорением
      Vx(i) = Vx(i) + 0.5*ax(i)*dt;
      Vy(i) = Vy(i) + 0.5*ay(i)*dt;    
      
        
    end;
    plot(x,y,'*')
end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 13:14
Ответы с готовыми решениями:

Метод Галёркина для модели динамики популяции
Нужна помощь в написании программы. Смысл в том, чтобы посчитать некоторую...

Схема Холецкого (метод квадратных корней)
Составила программу, но результат выдается неверный. x=0.0299 0.0336 ...

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

Модель динамики разгона автомобиля
Доброго времени суток. Необходима модель динамики разгона авто, т.е. некий...

Задача на метод молекулярной динамики
Нужна найти траекторию движения электронов в атоме лития, протон принять...

1
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
27.12.2013, 17:11 2
Цитата Сообщение от san-smith Посмотреть сообщение
куда девать i и j в уравнении потенциала сообразить не могу
никуда просто считать по отдельности по направлениям Х и У
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 17:11

Хаотическое поведение системы частиц молекулярной динамики (перевод с TrueBasic в C++)
Есть программа на языке True basic, она описывает хаотическое поведение системы...

Метод интегрирования Верле
Реализуйте метод интегрирования Верле. Функция должна принимать начальное...

OpenGL физика, интегратор верле
Добрый день! Ребята подскажите помимо хабра (где не описано столкновение) где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru