본문 바로가기

분류 전체보기118

2차원 파동방정식 FDM 보호되어 있는 글 입니다. 2023. 7. 1.
하고 싶은 거 23.6.28 만들 것들: 파동방정식 FDM 만들기 - 내일 완성할듯 1차원, 3차원 슈뢰딩거 방정식 FDM, 인공신경망으로 풀기 양자 회로 시뮬레이션 Barnes-Hut 3차원화, 더 안정적인 초기 조건(지수 분포 모델이 불안정함) 찾기 알아야 하는 것들: OpenGL - 몇년 전에 이미 다 공부했는데 전역하고 까먹음 CUDA 인공지능 공부 웹개발 쪽도 공부해야하는데 쉬우니까 금방 하겠지? 번역할 것들: toughsf 토성 식민화 번역 -하고 있긴 한데 속도가 너무 안나옴 toughsf 솔라 세일 번역 toughsf 궤도 방어 잠수함 글 번역 projectrho나 NIAC 뒤적거려서 재밌는거 대충 쓰기 핵폭탄 관련해서 정보 찾아보고 있는데 이걸로 어떻게 쓸지는 모름. 쓰고싶은 건 많은데 지식이 부족해서 뭘 써야 할지.. 2023. 6. 28.
다른 행성에서 사는 법: 천왕성 가장 이상한 파란색의 행성은 옆으로 누워 쉬고 있음. 천왕성계에서 우리의 집을 찾을 수 있을까? 설명 천왕성은 네 번째로 큰 행성이고, 얼음형 거대 행성 중에서는 가장 큼. 태양에서부터 거리 18.3AU~20.1AU 사이의 거리를 공전해서 목성까지 보다 네 배나 멀고 해왕성보다 가까움. 가장 특이한 점은 대기 중의 메테인으로 인한 파란 대기와 자전축이 97.7도 기울어져 있다는 것임. 또한, 무게는 지구보다 14.5배 무겁지만, 표면 중력이 0.88g로 모든 가스 행성들 중에서 가장 낮음. 천왕성은 목성이나 토성보다 훨씬 덜 알려져있음. 말할 수 있는 것은 메테인과 암모니아, 물 얼음과 수소, 메테인, 헬륨 대기로 구성되어 있다는 것뿐임. 천왕성의 지름은 50700km임. 고체 핵과 수천 킬로미터 두께의.. 2023. 3. 28.
가끔씩은 내가 쓸모없어지는 느낌 코딩 실력은 생각보다 별로여도 디버깅은 기가막히게 잘해줌 아직 여러 부분에서 부족하지만(부정확한 정보를 쓴다던가 맥락 이해가 좀 딸린다던가) 그래도 인간 대용으로는 이 정도면 차고 넘치는것같음. 코딩할 때 고생의 반절은 디버깅인데 이걸 이렇게 잘 해주면 대충 코드 짜넣고 얘보고 오류 잡으라 하면 다 잡아줌. 얘가 지식의 풀이 넓어서 최적화 팁같은것도 꽤 잘 줌. 인간 공부 대신해줄 정도는 안되도 뛰어난 교사 역할은 해줄 수 있음. 2023. 3. 15.
Barnes-Hut 은하 시뮬레이션 Barnes-Hut 시뮬레이션은 n체 운동 시뮬레이션을 $O(n \log(n))$ 의 시간 복잡도로 풀 수 있게 해주는 알고리즘임. 기존 n체 시뮬레이션은 한 입자와 다른 n개의 입자가 서로 끌어당기는 힘을 계산하므로 n개의 입자가 있다면 시간 복잡도는 $n^2$임. 태양계처럼 n이 9 정도라면 현대 컴퓨터로는 1초에 수만 번 계산을 할 수 있겠지만, 만약 n이 500 이상이라면 시간복잡도 $n^2$의 시간복잡도로는 수 초가 걸림. 이런 연산은 핵융합 시뮬레이션이나 분자동역학 시뮬레이션, 우주 시뮬레이션(은하나 토성의 고리 같은 거) 등에 사용되고 보통 슈퍼컴퓨터가 이런 연산을 수행함. Barnes-Hut 시뮬레이션은 쿼드트리라는 자료구조를 사용해서 연산의 시간 복잡도를 줄이는데, 방법은 이럼: 일단 공.. 2023. 3. 11.
Barnes-Hut 시뮬레이션 진행상황 2 아직 뷰나 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.. 2023. 3. 3.
다른 행성에서 살아남기: 수성 핵전쟁, 생물권의 붕괴, 재앙적인 지구 온난화, 우주 엘리베이터. 이유가 무엇이든 지구가 더 이상 살기 좋은 환경이 아닐 때 대다수는 다른 행성에 살기 원할 것이고, 그러기 위한 자원을 충분히 갖고 있을 것임. 그럼 다른 행성 위에서 사는 모습은 어떨까? 설명 수성은 태양에서 가장 가까운 행성으로, 극단적인 환경의 행성임. 태양빛은 지구의 다섯 배에서 열 배에 달하고 표면 온도는 700K까지 올라감. 섭씨로는 427도임. 이 온도에서 알루미늄은 원래 강도의 90%를 잃고 일반적인 우주복에 있는 우주비행사는 몸이 끓어버릴것임. 차가운 면도 더 상황이 좋지는 않음. 대기가 없어서 100K(-173도)까지 떨어지고, 이 온도에서는 산소가 고체가 됨. 두 번 공전할 때 세 번 자전함. 원래는 더 컸지만, 다른 .. 2023. 2. 19.
조금 더 깔끔한 이중진자 시뮬레이션 https://youtu.be/k2oe_A52pk0 전보다 더 완벽해진 이중 진자 시뮬레이션 더 깔끔한 코드와 여러 개의 진자를 동시에 굴릴 수 있게 작성했음(영상에서는 하나밖에 안보이지만 진자를 추가하는 것 자체는 아주 쉬움). 저번에 짠 코드는 좀 많이 더럽긴 함. 원래는 그냥 SFML 기술 실증 프로젝트였는데 막상 손대다 보니 아예 중소규모 프로젝트가 되버림. 깃헙 주소: https://github.com/hydrogendeuteride/DoublePendulum_Continued Visual Studio 깃은 처음 써봐서 아직 많이 미숙함. 그리고 파워셸 너무 불편함. 코드(클릭하면 나옴) 더보기 #ifndef _PENDULUM_H_ #define _PENDULUM_H_ #include #incl.. 2023. 2. 17.
Barnes-Hut 시뮬레이션 진행 상황 Barnes Hut 시뮬레이션은 은하나 우주 거대 구조, 분자동역학처럼 매우 많은(대충 1000이상) 입자의 n체 시뮬레이션을 하려고 만든 알고리즘임. 이제 GUI, 멀티코어, 올바른 상수값 입력 정도만 완성하면 되는데 그거 만들기 전에 기술실증용으로 2중 진자 시뮬레이션 먼저 만들거임. 저 세개중에서는 멀티코어 프로세싱이 경험도 없고 제일 어려운건데 왜 이 시뮬레이션에 멀티코어가 필수인지는 아래 설명하겠음. 일단 코드(Eigen 라이브러리 필요, C++17이상) #ifndef BARNES_HUT_DEMO_QUADTREE_H #define BARNES_HUT_DEMO_QUADTREE_H #include #include #include #include #include #include #include #in.. 2023. 2. 8.