计算克尔黑洞的准正规模。

qnm的Python项目详细描述


githubPyPI versionDOIlicenseDocumentation Status

欢迎使用QNM

计算kerr的Cook-Zalutskiy spectral approach的python实现 准正规频率(qnms)。

使用这个python包,您可以计算 不同(s,l,m,n),在期望的无量纲自旋参数0≤a<;1。 角扇区被视为 自旋加权球 谐波。因此得到球面分解 求解ω和a(see below for details)时的系数。

我们已经预先计算了大量的低空模式(s=-2和s=-1, 所有L<;8,所有N<;7)。这些可以用一个 函数调用,并插值以获得 在a的某个值处查找根。

安装

Pypi

qnm可通过PyPI

pip install qnm

来源

git clone https://github.com/duetosymmetry/qnm.git
cd qnm
python setup.py install

如果您没有根权限,请将最后一步替换为 python setup.py install --user

依赖关系

所有这些都可以通过pip或conda安装。

文档

自动生成的api文档可在Read the Docs: qnm上获得。

用法

最高级别的接口是通过qnm.cached.KerrSeqCache,它 从磁盘加载缓存的自旋序列。自旋序列只是一种模式 由(s,l,m,n)标记,自旋a从a=0到一些 最大值,例如0.9995。大量低空自旋序列 已预计算并可联机使用。第一次使用 包,下载预计算的序列:

importqnmqnm.download_data()# Only need to do this once# Trying to fetch https://duetosymmetry.com/files/qnm/data.tar.bz2# Trying to decompress file /<something>/qnm/data.tar.bz2# Data directory /<something>/qnm/data contains 860 pickle files

然后,使用qnm.modes_cache加载 ^感兴趣的{}。如果模式不是 它将尝试计算它(请参阅 如何控制计算)。

grav_220=qnm.modes_cache(s=-2,l=2,m=2,n=0)omega,A,C=mode_seq(a=0.68)print(omega)# (0.5239751042900845-0.08151262363119974j)

mode_seq(a)调用自旋序列将返回复数 准正规模频率ω,复角分离 常数a和系数向量c用于分解 自旋加权球谐和 自旋加权球谐函数(see below for details)。

目视检查模式对于检查解算器是否 表现良好。这很容易用matplotlib实现。这是 一些简单的例子:

importnumpyasnpimportmatplotlibasmplimportmatplotlib.pyplotaspltmpl.rc('text',usetex=True)s,l,m=(-2,2,2)mode_list=[(s,l,m,n)forninnp.arange(0,7)]modes={}forindinmode_list:modes[ind]=qnm.modes_cache(*ind)plt.figure(figsize=(16,8))plt.subplot(1,2,1)formode,seqinmodes.items():plt.plot(np.real(seq.omega),np.imag(seq.omega))modestr="{},{},{},n".format(s,l,m)plt.xlabel(r'$\textrm{Re}[\omega_{'+modestr+r'}]$',fontsize=16)plt.ylabel(r'$\textrm{Im}[\omega_{'+modestr+r'}]$',fontsize=16)plt.gca().tick_params(labelsize=16)plt.gca().invert_yaxis()plt.subplot(1,2,2)formode,seqinmodes.items():plt.plot(np.real(seq.A),np.imag(seq.A))plt.xlabel(r'$\textrm{Re}[A_{'+modestr+r'}]$',fontsize=16)plt.ylabel(r'$\textrm{Im}[A_{'+modestr+r'}]$',fontsize=16)plt.gca().tick_params(labelsize=16)plt.show()

结果如下所示:

example_22n plot

s,l,n=(-2,2,0)mode_list=[(s,l,m,n)forminnp.arange(-l,l+1)]modes={}forindinmode_list:modes[ind]=qnm.modes_cache(*ind)plt.figure(figsize=(16,8))plt.subplot(1,2,1)formode,seqinmodes.items():plt.plot(np.real(seq.omega),np.imag(seq.omega))modestr="{},{},m,0".format(s,l)plt.xlabel(r'$\textrm{Re}[\omega_{'+modestr+r'}]$',fontsize=16)plt.ylabel(r'$\textrm{Im}[\omega_{'+modestr+r'}]$',fontsize=16)plt.gca().tick_params(labelsize=16)plt.gca().invert_yaxis()plt.subplot(1,2,2)formode,seqinmodes.items():plt.plot(np.real(seq.A),np.imag(seq.A))plt.xlabel(r'$\textrm{Re}[A_{'+modestr+r'}]$',fontsize=16)plt.ylabel(r'$\textrm{Im}[A_{'+modestr+r'}]$',fontsize=16)plt.gca().tick_params(labelsize=16)plt.show()

结果如下所示:

example_2m0 plot

球面分解

qnms的角依赖性是自然自旋加权的{em1}$spheroid 谐波。球体实际上不是完全正交的 基准集。同时自旋加权{em1}$spheral谐波是完全的 和正射波,使用得更普遍。所以你 通常希望在 球体术语(右侧),

equation

在此,可在运行时选择“最小值”=最大值(m,s)和“最大值”。首席执行官 系数返回为复数ndarray,其中第0个 与最小值相对应的元素

学分

代码由Leo C. Stein开发和维护。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpring重定向请求处理程序   SwingJava:拆分字符串并将其放入文本区域的   Java:标记“”上出现语法错误,此标记后面应为表达式   web服务Java RestService从日志文件写入和读取数据   java如何将ArrayList<String>转换为char数组,然后向后打印每个单词?   java SimpleDataFormat解析返回年终日期   加密Java aes解密bytebuffer,包括填充为空字节   java有没有办法从特定的if语句调用变量?   java从更新返回到渲染   spring GRPC Java登录测试   java为什么下面的代码不工作(StringBuffer.toString!=null)   java是一种可行的模式吗?   使用Spring集成测试的JavaOSGi片段   java jCommander为未知和未使用的值引发异常?   在imageView的editText中输入的java图像URL