Метод частиц в ячейках (PIC)

advertisement
Исследование проблемы
неинвариантности относительно
поворота в методе частиц в
ячейках (PIC)
Выполнили: Агафонцев А.А.
Веретельникова И.В.
Руководитель: н.с. ИВМиМГ СО РАН, Киреев С.Е.
Цель работы

Исследовать проблему
неинвариантности относительно
поворота в задаче моделирования
самогравитирующего пылевого облака.
Решается задача:
 f
 f
f
u  a   0
t
x
u

a  
 2
 2
 2


 4
2
2
2
x
y
z


 t , x    fdu
Используется PIC-метод:
• сетка
• частицы
Метод частиц в ячейках (PIC)
u n1  u n    u n1
x n1  x n    x n1
2. Частица → сетка: вычисление распределения плотности на сетке
1. Лагранжев этап: осуществление сдвига частиц
3. Эйлеров этап: вычисление гравитационного потенциала (решение
трехмерного уравнения Пуассона на сетке): ρ → φ
4. Вычисление сил на сетке:
F
F
Переход на Лагранжев этап.
Смотрим время, при котором плотность достигает некоторого порога.
Проверка правильности работы программы
ячеек по
направлению
TAU
EPS
NP
EPS
число частиц
шаг
TAU
модельное время
100
1,00E-04
100000
0,01
65
0,65
100
1,00E-04
100000
0,05
16
0,8
100
1,00E-05
100000
0,01
100
1
100
1,00E-04
100000
0,01
65
0,65
100
1,00E-04
100000
0,01
65
0,65
100
1,00E-04
225000
0,01
65
0,65
1,2
Модельное время
1
0,8
0,6
0,4
0,2
0
базовый
расчет
уменьшили
TAU
уменьшили
EPS
увеличили
число частиц
Решение уравнения Пуассона с помощью быстрого
преобразования Фурье (FFT)



FFT
7
~
~
27

FFTR
(7) ikl 
(27) ikl 
FFT – прямой метод, сложность
порядка О(n*log(n)); является
значительно более быстрым, чем
методы Зейделя и Якоби.
 4*(
ikl
1
1
1
2 i
2 k
2 l
sin

sin

sin
)
2
2
2
NX hy
NY hz
NZ
hx
 ikl

6
2 i
2 k
2 l
*
(
1

(
1

sin
)(
1

sin
)(
1

sin
))
2
h
NX
NY
NZ
Тест с шаром. Проверка на соответствие распределения
потенциала аналитическому решению.
fourie_7
fourie_27
Исследование неинвариантности
Алгоритмы:
Пуассон
7 точек
Подпрограммы:
1. move_particles
2. density
3. poisson
4. force
Пуассон
27 точек
Алг 1
Алг 2
Базовый алгоритм
1. cетка → частицы
2. частицы → сетка
3. cетка
4. сетка
Тест с кругом для FFT
1,20E-03
1,00E-03
8,00E-04
6,00E-04
4,00E-04
2,00E-04
0,00E+00
1
7
13 19 25 31 37 43 49 55 61 67 73 79 85 91 97
Выделяется 4-я гармоника,
схема 7 точек.
Ряд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
1,20E-03
1,00E-03
8,00E-04
6,00E-04
4,00E-04
2,00E-04
0,00E+00
1
7
13 19 25 31 37 43 49 55 61 67 73 79 85 91 97
Выделяется 4-я гармоника,
схема 27 точек.
Ряд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
Сравнение графиков гармоник для различных
алгоритмов решения задачи
FFT, 7 точек
FFT, 27 точек
3,50E-04
3,50E-04
3,00E-04
3,00E-04
2,50E-04
2,50E-04
2,00E-04
Ряд4
2,00E-04
Ряд4
Ряд8
Ряд16
1,50E-04
Ряд8
1,00E-04
1,00E-04
5,00E-05
5,00E-05
0,00E+00
Ряд16
1,50E-04
0,00E+00
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
1
Первый алгоритм
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
Второй алгоритм
3,00E+00
1,80E+00
1,60E+00
2,50E+00
1,40E+00
2,00E+00
1,20E+00
Ряд4
1,50E+00
Ряд8
Ряд16
1,00E+00
Ряд4
1,00E+00
Ряд8
8,00E-01
Ряд16
6,00E-01
4,00E-01
5,00E-01
2,00E-01
0,00E+00
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
0,00E+00
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
Распараллеливание
Использовали:
• многопоточную библиотеку FFTW
• OpenMP
7-точечная схема, FFT
1400
1279.442017
1200
1000
925.764343
time
800
735.041077
688.0755
600
400
200
0
1
2
4
8
threads
Threads
Time
Speedup
Efficiency, %
1
2
4
8
1279,442017
925,764343
735,041077
688,0755
1
1,382038557
1,740640159
1,859450041
100
69,10192787
43,51600397
23,24312552
Алгоритм 1
160
144,743408
140
120
time
100
86,672218
80
55,316227
60
39,002926
40
20
0
1
2
3
4
threads
Threads
Time
Speedup
Efficiency, %
1
2
4
8
144,743408
86,672218
55,316227
39,002926
1
1,67000928
2,616653663
3,711091009
100
83,5004638
65,41634157
46,38863761
Алгоритм 2
120
113,069267
100
time
80
60
56,792877
40
28,51438
17,219147
20
0
1
2
3
4
threads
Threads
Time
Speedup
Efficiency, %
1
2
4
8
113,0693
56,792877
28,51438
17,219147
1
1,9909058
3,9653419
6,5664848
100
99,545289
99,133549
82,08106
Выводы
Схема решения уравнения Пуассона
практически не влияет на
неинвариантность.
 Этап перехода от сетки к частицам
сильнее влияет на неинвариантность,
чем этап вычисления распределения
плотности (density).

Спасибо за внимание
Download