GSoC 2020: 블로그 5 - EinsteinPy에 켈 제로 지선 기능 추가
10366 단어 gsoc
약간의 물리...
인력[2]의 33장에서 저자는 카드의 1968년 창의적인 논문을 논술했는데 제목은'클 인력장족의 전체적인 구조'로 좋은 결과를 제시했다. 그 중 하나는 클(초) 하미턴의 양을 유도하는 것으로 다음과 같이 쓸 수 있다(M단위 시스템에서).
G=c=M=1G=c=M=1G=c=M=1
):
H=−(a4(E2−2pr2)−8aELr−2r(pθ2(−2+r+pr2(−2+r)2r−E2r3)+a2(2L2)−2pθ2−4pr2(−2+r)r+E2r(2+3r))+(a2+(−2+r)r)(a2E2cos2θ−2L2cscθ2)4(a2)+(−2+r)r)(r2+a2cosθ2))
\수학 {H}=-\분형 {(a^4(E^2-2p\ur^2)-8 a E L r-2r(p\theta^2(-2+r)+p\ur^2(-2+r)^2r-E^2r^3)+a^2(2 L^2-2p\theta^2-4p\ur^2(-2+r)r+(a^2+(-2+r)(a^2 E^2 cos 2\theta-2 L^2\cs\theta2)}{4(a^2 2+(-2+r)r)(r^2+a^2\cos\theta^2)}
H=−4(a2+(−2+r)r)(r2+a2cosθ2))(a4(E2−2pr2)−8aELr−2r(pθ2(−2+r+pr2(−2+r)2r−E2r3)+a2(2L2)−2pθ2−4pr2(−2+r)r+E2r(2+3r))+(a2+(−2+r)r)(a2E2cos2θ−2L2cscθ2)
어디
E=−ptE=-p\t E=−회사 명
화목하다
L=pɕL=pɕφL=pɕ
각각 입자의 에너지와 궤도 각동량을 측정한다.주의, 이 하미턴의 양은 일반 테스트 입자, 즉 질량일 수도 있고 무질량일 수도 있다.그리고 하미턴의 원리를 이용하여 운동의 동력학 방정식, 즉
dqidλ=∂H∂PIDλ=−∂H∂기운
\분형 {\mathrm{d}q\ui}{\mathrm{d}\lambda}=\frac{\partial\mathcal{H}}{\partial p\ui}\quad
\분형 {\mathrm{d}p\ui}{\mathrm{d}\lambda}=-\frac{\partial\mathcal{H}}{\partialq\ui}
dλdqi=∂원주율∂Hdλdpi=−∂기운∂H
Mathematica에서 계산한 결과 해당 노트북과 Python 코드here에 액세스할 수 있습니다.
...아직 줄거리가 좀 있다
불행하게도, 이러한 1단계 ODE를 사용하더라도, Python의 오류 누적 문제는 아래 그림과 같다.이 결과는 개구리 점프 구해기를 통해 얻은 것으로 원칙적으로 오차 누적을 최소화해야 한다.
클류 제로 탈출
비록 비교적 짧은 통합 지속 시간에 대해서는 결과가 좋다.
클류 제로 포획
저의 지도교사와 토론한 후에 저는 다른 언어를 연구했습니다. 이것은 도움이 될 것입니다. 우리는 줄리아를 선택했습니다. 왜냐하면 우수한 DifferentialEquations.jl 세트가 있고 Python과 매우 가깝기 때문입니다.또 다른 관건은 DiffEqPhysics가 제공한 하미턴 문제 유형은 구해 시스템의 과정을 크게 간소화시켰다. 왜냐하면 정방향 모드의 자동 미분을 사용하여 하미턴 양의 편도수를 자동으로 계산하기 때문이다.하미턴 양의 분리성은 이곳에서 도움이 된다.이 모든 것을 감안하여 나는 줄리아와 voilá에서 하나의 모듈을 실현했는데 결과는 정확했다. 설령 이상한 측지선에 대해서도.
클류 제로 스냅(Plots.jl로 그리기)
클류 소용돌이(Plots.jl로 그리기)
이제 Julia 코드를 EinsteinPy와 통합하는 문제가 생겼기 때문에 PyJulia를 고려했습니다.그러나 그것은 installation on *nix systems 과 약간의 문제가 있다.그래서 나는 파이썬
subprocess
을 사용하여 자신의 포장기를 쓰기로 했다.제 GSoC 멘토 Shreyas의 도움으로 Julia 모듈과 Python 패키지를 현재 einsteinpy_geodesics
에 포장했습니다. 이것은 EinsteinPy의 추가 모듈입니다.아인슈타인 / 아인슈타인 측지선
Kerr 시공족에서 지선을 측정하는 Julia 해산기에 사용되는 Python 패키지입니다.관리자:
이름:
아인슈타인 측지선
웹 사이트:
https://docs.geodesics.einsteinpy.org/en/latest/
버전:
0.2.dev0
EinsteinPy 측지선은 EinsteinPy의 추가 패키지로 줄리아의
우수DifferentialEquations.jl
키트,python 인터페이스를 제공하여 켈 & 슈바시 시공의 지선 측정
EinsteinPy는 발생하는 문제를 해결하는 데 전문적으로 사용되는 순수한 파이썬 패키지입니다.
광의 상대론과 인력 물리학에서
아인슈타인과 마찬가지로 아인슈타인 측지선은 마성이공대학 허가증에 따라 발표됐다.
문서
이 모듈의 전체 문서는 https://docs.geodesics.einsteinpy.org/en/latest/(제공: Read the Docs에 액세스하십시오.
요구 사항
EinsteinPy 측지선은 Python>=3.7, Julia>=1.5 및 다음 Julia 패키지가 필요합니다.
줄리아
설치
먼저 Julia가 시스템에 설치되어 PATH에 추가되었는지 확인합니다.참조https://julialang.org/downloads/platform/
플랫폼별 바이너리 파일과 설치 설명을 가져옵니다.insteinpy_측지선도 미분 방정식이 필요하다.jl 회사
및 ODEInterfaceDiffeq.jl.다음과 같이 추가할 수 있습니다.
$julia
julia>Pkg 사용
julia>소포.추가("미분 방정식")
julia>소포.추가(ODEINterfaceDiffeq)
마지막으로 insteinpy_측지선은...
View on GitHub
그 밖에 저는 측지선 드로잉 모듈을 철저하게 수정했고
Static
과 Interactive
모드(각각 사용matplotlib
와 plotly
에 3차원 애니메이션, 파라미터 드로잉과 2차원 드로잉에서 공간 좌표를 선택하는 지원을 추가했습니다.최종 API를 통해 생성된 그림을 아래에 보여 드리겠습니다.여기에 표시된 그림은 Static
와 Interactive
백엔드, 그리고 클래스 시간과 클래스 제로 측정 지선을 혼합했다.켈류 영측지선
켈류 시측지선
클 프레임 드래그
Schwarzschild 진입
클래스 Schwarzschild 시간 닫기 궤도
클래스 Schwarzschild 시간 폐쇄 궤도 매개 변수 그림
다음까지...
EinsteinPy 측지선 API는 현재 옵션
einsteinpy_geodesics
플러그인을 통해python 백엔드와julia 백엔드 사이의 해산기 선택을 제공합니다.나는python 백엔드를 개선하는 데 계속 노력할 것이지만, 현재einsteinpy_geodesics
는 Kerr시공가족(Schwarzschild 포함)의 EinsteinPy에 정확하고 정확한 측지선 계산을 추가하였다.그 밖에 HamiltonianProblem
방법의 주의해야 할 점은 원칙적으로 클 뉴먼 측지선까지 쉽게 확장될 수 있다는 것이다. 이것은 내가 GSoC의 약속이 끝난 후에 즉시 탐색하고 싶은 것이다.나는 또 다른 단편 블로그가 있는데 API를 어떻게 사용하는지 설명했다. 이것은 아마도 마지막 GSoC 블로그일 것이다.그 전에, 나는 너희들에게 아주 좋은 애니메이션을 하나 남겼는데, 완전히 아인슈타인이 창작한 것이다.(극치)클류 시등 반경 궤도
참고 문헌:
[1]: 카드, 브랜던;Global Structure of the Kerr Family of Gravitational Fields, 1968년, 174(5), 1559-1571페이지
[2]: Misner, Charles W.와 Thorne, K.S.와 Wheeler, J.A;인력, 1973, W.H.Freeman, ISBN: 978-0-7167-0344-0978-0-691-17779-3
Reference
이 문제에 관하여(GSoC 2020: 블로그 5 - EinsteinPy에 켈 제로 지선 기능 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jes24/gsoc-2020-blog-5-adding-kerr-null-geodesics-functionality-to-einsteinpy-2ocj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)