当前位置: 首页 > news >正文

用Python获取史瓦西时空中克氏符的分量

文章目录

    • 三维球面坐标
    • 史瓦西时空

三维球面坐标

Einsteinpy中提供了克氏符模型,可通过ChristoffelSymbols获取。简单起见,先以最直观的三维球面为例,来用Einsteinpy查看其克氏符的表达形式。

三维球面的度规张量可表示为

g00=1g11=r2g22=r2sin⁡2θgij=0,i≠j\begin{aligned} g_{00}&=1\\ g_{11}&=r^2\\ g_{22}&=r^2\sin^2\theta\\ g_{ij}&=0, i\not=j \end{aligned} g00g11g22gij=1=r2=r2sin2θ=0,i=j

克氏符这个概念是从度规张量的协变导数为0的事实中得到的,换言之,可通过度规来得到克氏符的分量表达式

import numpy as np
import sympy
from einsteinpy.symbolic import MetricTensor, ChristoffelSymbols, RiemannCurvatureTensorr, th, phi = sympy.symbols('r theta phi')
# 球坐标度规
metric = np.diagflat([1,r**2,(r**2)*(sympy.sin(th)**2)])
m_obj.tensor()
# [[1, 0, 0], [0, r**2, 0], [0, 0, r**2*sin(theta)**2]]
ch = ChristoffelSymbols.from_metric(m_obj)
sympy.latex(ch.tensor())

打印出来如下

[[0000−r000−rsin⁡2(θ)][01r01r0000−sin⁡(θ)cos⁡(θ)][001r00cos⁡(θ)sin⁡(θ)1rcos⁡(θ)sin⁡(θ)0]]\left[\begin{matrix}\left[\begin{matrix}0 & 0 & 0\\0 & - r & 0\\0 & 0 & - r \sin^{2}{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & \frac{1}{r} & 0\\\frac{1}{r} & 0 & 0\\0 & 0 & - \sin{\left(\theta \right)} \cos{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & 0 & \frac{1}{r}\\0 & 0 & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}}\\\frac{1}{r} & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}} & 0\end{matrix}\right]\end{matrix}\right] 0000r000rsin2(θ)0r10r10000sin(θ)cos(θ)00r100sin(θ)cos(θ)r1sin(θ)cos(θ)0

这就是克氏符的真实面貌。

史瓦西时空

下面来搞一下史瓦西时空中的克氏符,而在此之前,先给出史瓦西时空的度规

t, r, th, phi = sympy.symbols("t r theta phi")
G, M, c, a = sympy.symbols("G M c a")
c2 = c**2
# using metric values of schwarschild space-time
# a is schwarzschild radius
list2d = np.diagflat([1-a/r, -1 / ((1 - (a/r)) * c2), -1 * (r**2)/c2,-1 * (r**2) * (sympy.sin(th)**2) / c2])
sch = MetricTensor(list2d, [t, r, th, phi])
sympy.latex(sch.tensor())

即其度规张量为

[−ar+10000−1c2(−ar+1)0000−r2c20000−r2sin⁡2(θ)c2]\left[\begin{matrix}- \frac{a}{r} + 1 & 0 & 0 & 0\\0 & - \frac{1}{c^{2} \left(- \frac{a}{r} + 1\right)} & 0 & 0\\0 & 0 & - \frac{r^{2}}{c^{2}} & 0\\0 & 0 & 0 & - \frac{r^{2} \sin^{2}{\left(\theta \right)}}{c^{2}}\end{matrix}\right] ra+10000c2(ra+1)10000c2r20000c2r2sin2(θ)

上式中,aaa为史瓦西半径,MMM为天体质量。

接下来,就可以请出史瓦西空间中的克氏符了

sch_ch = ChristoffelSymbols.from_metric(sch)
sympy.latex(sch_ch.tensor())

[[0a2r2(−ar+1)00a2r2(−ar+1)00000000000][−a(ac22r−c22)r20000a(ac22r−c22)c2r2(−ar+1)200002r(ac22r−c22)c200002r(ac22r−c22)sin⁡2(θ)c2][0000001r001r00000−sin⁡(θ)cos⁡(θ)][00000001r000cos⁡(θ)sin⁡(θ)01rcos⁡(θ)sin⁡(θ)0]]\left[\begin{matrix}\left[\begin{matrix}0 & \frac{a}{2 r^{2} \left(- \frac{a}{r} + 1\right)} & 0 & 0\\\frac{a}{2 r^{2} \left(- \frac{a}{r} + 1\right)} & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right] \left[\begin{matrix}- \frac{a \left(\frac{a c^{2}}{2 r} - \frac{c^{2}}{2}\right)}{r^{2}} & 0 & 0 & 0\\0 & \frac{a \left(\frac{a c^{2}}{2 r} - \frac{c^{2}}{2}\right)}{c^{2} r^{2} \left(- \frac{a}{r} + 1\right)^{2}} & 0 & 0\\0 & 0 & \frac{2 r \left(\frac{a c^{2}}{2 r} - \frac{c^{2}}{2}\right)}{c^{2}} & 0\\0 & 0 & 0 & \frac{2 r \left(\frac{a c^{2}}{2 r} - \frac{c^{2}}{2}\right) \sin^{2}{\left(\theta \right)}}{c^{2}}\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & \frac{1}{r} & 0\\0 & \frac{1}{r} & 0 & 0\\0 & 0 & 0 & - \sin{\left(\theta \right)} \cos{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & \frac{1}{r}\\0 & 0 & 0 & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}}\\0 & \frac{1}{r} & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}} & 0\end{matrix}\right]\end{matrix}\right] 02r2(ra+1)a002r2(ra+1)a00000000000r2a(2rac22c2)0000c2r2(ra+1)2a(2rac22c2)0000c22r(2rac22c2)0000c22r(2rac22c2)sin2(θ)000000r100r100000sin(θ)cos(θ)0000000r1000sin(θ)cos(θ)0r1sin(θ)cos(θ)0

http://www.lryc.cn/news/29229.html

相关文章:

  • QML编码约定
  • 【Linux】安装Linux操作系统具体步骤
  • 前端ES6异步编程技术——Promise使用
  • Kotlin实现简单的学生信息管理系统
  • 413. 等差数列划分
  • 设计模式七大原则
  • 【Mybatis系列】Mybatis常见的分页方法以及源码理解
  • Java面向对象:多态特性的学习
  • id函数 / 可变类型变量 / 不可变类型变量 / +=操作
  • aws apigateway 使用apigateway集成lambda
  • Linux SPI 驱动实验
  • [1.4]计算机系统概述——操作系统的体系结构
  • FPGA的GigE Vision IP相机图像采集方案设计,转换为千兆UDP,支持10G MAC
  • 大数据相关面试题
  • AI绘画第二步,抄作业复现超赞的效果!
  • Python的并发编程
  • 【Linux】基本系统维护命令
  • 高数:数列的收敛
  • 不平凡的一天——
  • 【Java基础】Map遍历的5种方式
  • 第十四届蓝桥杯三月真题刷题训练——第 2 天
  • 自然语言处理历史最全预训练模型(部署)汇集分享
  • csdn写文章自定义表格怎么做
  • Pytorch处理数据与训练网络问题汇总(协同训练)
  • 机器学习:基于神经网络对用户评论情感分析预测
  • Vue3之组件间传值避坑指南
  • 02-问题思考维度:抓住核心用户、场景化分析、需求收集与辨别、用户故事
  • C 语言编程 — GCC Attribute 语法扩展
  • LeetCode 热题 C++ 399. 除法求值 406. 根据身高重建队列
  • 提升Mac使用性能的5大方法,CleanMyMacX 2023非常的好用哦~