Совершенствование алгоритмов численного моделирования в методе динамики частиц — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Модифицированный метод Рунге-Кутты)
(Модифицированный метод Рунге-Кутты)
Строка 6: Строка 6:
  
 
* Рассмотрим задачу Коши
 
* Рассмотрим задачу Коши
<math> dx/dt=f(x,t)   & x(0)=x_0 </math> (1)
+
 
 +
<math> dx/dt=f(x,t) </math>
 +
 
 +
<math> x(0)=x_0 </math> (1)
 +
 
 
* Для неизвестной вектор-функции x(t), в качестве которой для примера может быть взят вектор <math>{r,v}={x,y,z,u,v,w}</math> координат позиции и скорости тела. Данная задача может быть решена численно классическим методом Рунге-Кутты четвёртого порядка.  
 
* Для неизвестной вектор-функции x(t), в качестве которой для примера может быть взят вектор <math>{r,v}={x,y,z,u,v,w}</math> координат позиции и скорости тела. Данная задача может быть решена численно классическим методом Рунге-Кутты четвёртого порядка.  
 +
 
<math> k_1=Δtf(x_n,t_n ) </math>
 
<math> k_1=Δtf(x_n,t_n ) </math>
 +
 
<math> k_2=Δtf(x_n+k_1/2,t_n+Δt/2) </math>
 
<math> k_2=Δtf(x_n+k_1/2,t_n+Δt/2) </math>
 +
 
<math> k_3=Δtf(x_n+k_2/2,t_n+Δt/2) </math>
 
<math> k_3=Δtf(x_n+k_2/2,t_n+Δt/2) </math>
 +
 
<math> k_4=Δtf(x_n+k_3,t_n+Δt) </math>
 
<math> k_4=Δtf(x_n+k_3,t_n+Δt) </math>
 +
 
<math> x_(n+1)=x_n+1/6 (k_1+2k_2+2k_3+k_4 ) </math> (2)
 
<math> x_(n+1)=x_n+1/6 (k_1+2k_2+2k_3+k_4 ) </math> (2)
 +
 
* По сравнению с методами Эйлера, Лагранжа и Верле, данный метод имеет более высокий порядок точности. Однако классический метод Рунге-Кутты четвёртого порядка имеет одну особенность, связанную с необходимостью вычислять функцию <math> f(x,t) </math> четыре раза за одну временную итерацию. Потому этот метод становится неэффективным в вычислительных задачах, где основное расчётное время тратится на вычисление правой части системы дифференциальных уравнений, как, например, это имеет место в случае расчёта молекулярно-динамической задачи множества частиц. Вследствие данной особенности применение метода Рунге-Кутты становится неэффективным и даже его исключительная точность теряет свою значимость.
 
* По сравнению с методами Эйлера, Лагранжа и Верле, данный метод имеет более высокий порядок точности. Однако классический метод Рунге-Кутты четвёртого порядка имеет одну особенность, связанную с необходимостью вычислять функцию <math> f(x,t) </math> четыре раза за одну временную итерацию. Потому этот метод становится неэффективным в вычислительных задачах, где основное расчётное время тратится на вычисление правой части системы дифференциальных уравнений, как, например, это имеет место в случае расчёта молекулярно-динамической задачи множества частиц. Вследствие данной особенности применение метода Рунге-Кутты становится неэффективным и даже его исключительная точность теряет свою значимость.
Ниже приводится модификация метода Рунге-Кутты 4 порядка, где с помощью одного хитрого приёма удаётся избежать многократного вычисления функцию <math> f(x,t) </math> на одном временном шаге и в то же время сохранить высокий порядок по времени.
+
* Ниже приводится модификация метода Рунге-Кутты 4 порядка, где с помощью одного хитрого приёма удаётся избежать многократного вычисления функцию <math> f(x,t) </math> на одном временном шаге и в то же время сохранить высокий порядок по времени.
  
 
== Обезразмеривание системы как способ уменьшения накопления вычислительной ошибки ==
 
== Обезразмеривание системы как способ уменьшения накопления вычислительной ошибки ==

Версия 15:48, 16 октября 2011

Задача

  • ...

Модифицированный метод Рунге-Кутты

  • Рассмотрим задачу Коши

[math] dx/dt=f(x,t) [/math]

[math] x(0)=x_0 [/math] (1)

  • Для неизвестной вектор-функции x(t), в качестве которой для примера может быть взят вектор [math]{r,v}={x,y,z,u,v,w}[/math] координат позиции и скорости тела. Данная задача может быть решена численно классическим методом Рунге-Кутты четвёртого порядка.

[math] k_1=Δtf(x_n,t_n ) [/math]

[math] k_2=Δtf(x_n+k_1/2,t_n+Δt/2) [/math]

[math] k_3=Δtf(x_n+k_2/2,t_n+Δt/2) [/math]

[math] k_4=Δtf(x_n+k_3,t_n+Δt) [/math]

[math] x_(n+1)=x_n+1/6 (k_1+2k_2+2k_3+k_4 ) [/math] (2)

  • По сравнению с методами Эйлера, Лагранжа и Верле, данный метод имеет более высокий порядок точности. Однако классический метод Рунге-Кутты четвёртого порядка имеет одну особенность, связанную с необходимостью вычислять функцию [math] f(x,t) [/math] четыре раза за одну временную итерацию. Потому этот метод становится неэффективным в вычислительных задачах, где основное расчётное время тратится на вычисление правой части системы дифференциальных уравнений, как, например, это имеет место в случае расчёта молекулярно-динамической задачи множества частиц. Вследствие данной особенности применение метода Рунге-Кутты становится неэффективным и даже его исключительная точность теряет свою значимость.
  • Ниже приводится модификация метода Рунге-Кутты 4 порядка, где с помощью одного хитрого приёма удаётся избежать многократного вычисления функцию [math] f(x,t) [/math] на одном временном шаге и в то же время сохранить высокий порядок по времени.

Обезразмеривание системы как способ уменьшения накопления вычислительной ошибки

  • ...

Frozen Particles & Press Particles

  • ...