본문 바로가기
Physics/전산물리

Barnes-Hut 시뮬레이션 진행상황 2

by hydrogendeuteride 2023. 3. 3.

아직 뷰나 softener 같은 게 완성되지 않아서 확대, 축소, 이동 등이 불가능하고, 입자들이 지나치게 가까이 붙으면 한 입자가 스윙바이 되서 보이저 우주선처럼 초고속으로 날아감.

 

force softening는 입자가 지나치게 가까이 가더라도 힘 계산에 어느 정도의 거리를 반영해서 서로 약간 떨어진 것처럼 계산해서 입자들의 스윙바이를 막아줌.

https://academic.oup.com/mnras/article/314/3/475/969154

 

Optimal softening for force calculations in collisionless N-body simulations

Abstract. In N-body simulations the force calculated between particles representing a given mass distribution is usually softened, to diminish the effect of gra

academic.oup.com

근데 내가 짠 코드에 적용시키려면 거리의 제곱을 한 후에 일정한 거리의 제곱을 더해줘야 하는데

1. 그 일정한 거리가 얼마인가?

2. 내가 짠 건 가속력 기반이라 거리의 제곱이 아니라 거리 노름의 세제곱 분의 일 * 거리 벡터인데 이런 경우 세제곱은 제곱의 1.5제곱으로 처리해야 하는데 그럴 경우 연산량이 얼마나 늘어나는지? 같은 경우를 처리해야 함.

 

그리고 분포 함수가 그냥 구간 내 랜덤이라서 위 사진의 흰 점처럼 그냥 유니폼하게 네모낳게 찍힌 걸 기반으로 계산함.

 

분포 함수는 plummer distribution을 써야 하는데 이 함수는 어떻게 만들 건지, 상수값은 어떻게 할 건지 등등등

 

그리고 어느 정도 시간이 지나면 갑자기 프로그램이 멈추면서 램을 기가 단위로 먹는 현상이 나타나는데 아마 경계에서 약간 벗어난 입자가 크기가 정해진 쿼드트리 안에 들어오는 과정에서 에러를 만드는 것 같음. 아마 softener과 뷰포트, 더 넓은 공간, 경계 측정 함수의 개선(속도만 바꾸는 거에서 위치도 약간 보정해 주는 걸로 하거나 약간 더 많은 공간을 시뮬레이션 하되 입자가 반사되는 경계를 약간 안쪽으로 바꾼다던가)이 필요함.

 

한달안에 완성할것임

https://github.com/hydrogendeuteride/Barnes_Hut_Demo

 

GitHub - hydrogendeuteride/Barnes_Hut_Demo: 2D Barnes-Hut galaxy simulation

2D Barnes-Hut galaxy simulation. Contribute to hydrogendeuteride/Barnes_Hut_Demo development by creating an account on GitHub.

github.com

 

 

댓글