Совершенствование алгоритмов численного моделирования в методе динамики частиц — различия между версиями
Материал из Department of Theoretical and Applied Mechanics
(→Модифицированный метод Рунге-Кутты) |
(→Модифицированный метод Рунге-Кутты) |
||
Строка 7: | Строка 7: | ||
* Рассмотрим задачу Коши | * Рассмотрим задачу Коши | ||
− | <math> dx/dt=f(x,t) </math> | + | <math> dx/dt=f(x,t) </math> <math> (1) </math> |
− | <math> x(0)=x_0 | + | <math> x(0)=x_0 </math> |
* Для неизвестной вектор-функции x(t), в качестве которой для примера может быть взят вектор <math> (r,v) = (x,y,z,u,v,w) </math> координат позиции и скорости тела. Данная задача может быть решена численно классическим методом Рунге-Кутты четвёртого порядка. | * Для неизвестной вектор-функции x(t), в качестве которой для примера может быть взят вектор <math> (r,v) = (x,y,z,u,v,w) </math> координат позиции и скорости тела. Данная задача может быть решена численно классическим методом Рунге-Кутты четвёртого порядка. | ||
Строка 21: | Строка 21: | ||
<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> x_(n+1)=x_n+1/6 (k_1+2k_2+2k_3+k_4 ) </math> |
* По сравнению с методами Эйлера, Лагранжа и Верле, данный метод имеет более высокий порядок точности. Однако классический метод Рунге-Кутты четвёртого порядка имеет одну особенность, связанную с необходимостью вычислять функцию <math> f(x,t) </math> четыре раза за одну временную итерацию. Потому этот метод становится неэффективным в вычислительных задачах, где основное расчётное время тратится на вычисление правой части системы дифференциальных уравнений, как, например, это имеет место в случае расчёта молекулярно-динамической задачи множества частиц. Вследствие данной особенности применение метода Рунге-Кутты становится неэффективным и даже его исключительная точность теряет свою значимость. | * По сравнению с методами Эйлера, Лагранжа и Верле, данный метод имеет более высокий порядок точности. Однако классический метод Рунге-Кутты четвёртого порядка имеет одну особенность, связанную с необходимостью вычислять функцию <math> f(x,t) </math> четыре раза за одну временную итерацию. Потому этот метод становится неэффективным в вычислительных задачах, где основное расчётное время тратится на вычисление правой части системы дифференциальных уравнений, как, например, это имеет место в случае расчёта молекулярно-динамической задачи множества частиц. Вследствие данной особенности применение метода Рунге-Кутты становится неэффективным и даже его исключительная точность теряет свою значимость. | ||
+ | |||
* Ниже приводится модификация метода Рунге-Кутты 4 порядка, где с помощью одного хитрого приёма удаётся избежать многократного вычисления функцию <math> f(x,t) </math> на одном временном шаге и в то же время сохранить высокий порядок по времени. | * Ниже приводится модификация метода Рунге-Кутты 4 порядка, где с помощью одного хитрого приёма удаётся избежать многократного вычисления функцию <math> f(x,t) </math> на одном временном шаге и в то же время сохранить высокий порядок по времени. | ||
+ | |||
+ | * Идея заключается в разложении функций <math> f(x_n+k_i/2,t_n+Δt/2) </math> в ряд Тейлора в окрестности точки <math> (x_n,t_n) </math>. | ||
+ | |||
+ | <math> f(x_n+k_i/2,t_n+Δt/2)=∂f/∂x (x_n,t_n )∙k_i/2+ ∂f/∂t (x_n,t_n ) Δt/2+⋯ </math> | ||
+ | |||
+ | * Здесь присутствуют малоприятные производные, однако, как потом окажется, с ними можно будет легко разобраться. Сколько членов в разложении нужно оставить, чтобы в схеме сохранился четвёртый порядок? – До <math> (Δt)^4 </math> и <math> (k_i )^4 </math> или меньше? | ||
+ | |||
+ | * Для слагаемых с локальными производными по времени ответ очевиден – необходимо удерживать всё вплоть до <math> (Δt)^4 </math>, ибо в противном случае мы потеряем наш 4-й порядок по времени для схемы в целом. Однако для <math> k_i </math> на самом деле достаточно только первой производной. | ||
+ | * В случае, когда правая часть (1) не зависит явно от времени, (3) предельно упрощается. | ||
+ | f(x_n+k_i/2,t_n+Δt/2)=∂f/∂x (x_n,t_n )∙k_i/2 (4) | ||
+ | Данная ситуация имеет место при молекулярно-динамическом моделировании, поскольку потенциал взаимодействия, как правило, является функцией только координат и скоростей частиц. | ||
== Обезразмеривание системы как способ уменьшения накопления вычислительной ошибки == | == Обезразмеривание системы как способ уменьшения накопления вычислительной ошибки == |
Версия 15:54, 16 октября 2011
Содержание
Задача
- ...
Модифицированный метод Рунге-Кутты
- Рассмотрим задачу Коши
- Для неизвестной вектор-функции x(t), в качестве которой для примера может быть взят вектор координат позиции и скорости тела. Данная задача может быть решена численно классическим методом Рунге-Кутты четвёртого порядка.
- По сравнению с методами Эйлера, Лагранжа и Верле, данный метод имеет более высокий порядок точности. Однако классический метод Рунге-Кутты четвёртого порядка имеет одну особенность, связанную с необходимостью вычислять функцию четыре раза за одну временную итерацию. Потому этот метод становится неэффективным в вычислительных задачах, где основное расчётное время тратится на вычисление правой части системы дифференциальных уравнений, как, например, это имеет место в случае расчёта молекулярно-динамической задачи множества частиц. Вследствие данной особенности применение метода Рунге-Кутты становится неэффективным и даже его исключительная точность теряет свою значимость.
- Ниже приводится модификация метода Рунге-Кутты 4 порядка, где с помощью одного хитрого приёма удаётся избежать многократного вычисления функцию на одном временном шаге и в то же время сохранить высокий порядок по времени.
- Идея заключается в разложении функций в ряд Тейлора в окрестности точки .
- Здесь присутствуют малоприятные производные, однако, как потом окажется, с ними можно будет легко разобраться. Сколько членов в разложении нужно оставить, чтобы в схеме сохранился четвёртый порядок? – До и или меньше?
- Для слагаемых с локальными производными по времени ответ очевиден – необходимо удерживать всё вплоть до , ибо в противном случае мы потеряем наш 4-й порядок по времени для схемы в целом. Однако для на самом деле достаточно только первой производной.
- В случае, когда правая часть (1) не зависит явно от времени, (3) предельно упрощается.
f(x_n+k_i/2,t_n+Δt/2)=∂f/∂x (x_n,t_n )∙k_i/2 (4) Данная ситуация имеет место при молекулярно-динамическом моделировании, поскольку потенциал взаимодействия, как правило, является функцией только координат и скоростей частиц.
Обезразмеривание системы как способ уменьшения накопления вычислительной ошибки
- ...
Frozen Particles & Press Particles
- ...