CAMB, CosmoMC的安装和使用

最近重新安装一遍CAMB,正好以自己的安装过程来写一个教程,希望对后来者有帮助

1 CAMB

1.1 CAMB安装

参考githubCAMB
步骤如下:

  1. 1,使用命令git clone --recursive https://github.com/cmbant/CAMB拷贝到自己需要安装的目录下(笔者在工作路径下新建了一个名为CAMB的目录)
  2. 2 ,进入下载的目录下,使用命令pip install -e .
  3. 3 , 使用命令python setup.py make,这需要安装gfortran,如果没有安装,可以通过sudo apt-get install gfortran来安装,并通过gfortran --version查看是否安装成功,如果显示版本则成功。
  4. 4,完成上面两步已经结束了安装,现在测试,(注意python版本的camb已经将camb作为一个命令名,所以可以直接使用camb执行命令),测试代码为camb inifiles/planck_2018.ini,(这里,由于输出会产生大量文件,所以我新建了一个名为test的目录,在目录里面运行camb ../inifiles/planck_2018.ini),如果正确产生下图文件,则安装成功
    在这里插入图片描述
    另外值得一提的是,这个python版本的CAMB是可以使用python程序的,demo见python camb demo

1.2 CAMB简单应用

1.2.1 使用CAMB画功率谱

可以参考官网的readme-fortran文档除了上面的1.1节提到的demo之外,这里主要讲fortran版本的例子。以前在网易博客上写过一篇简单应用的博文-使用CAMB画功率谱。但是网易博客似乎倒闭了,所以图片无法识别,这里不打算再次重复上面说的博文的过程(博文没有了图片,但是大致是可以猜到说什么的)。此时不需要再用./camb params.ini编译,而是直接使用camb params.ini来编译,因为camb在python版中已经成为一个命令。同样,运行之后会生成很多文件,所以我是在test目录下运行的。

2 CosmoMC

2.1 CosmoMC安装

这个安装之前要先安装依赖的库,过程很复杂,所幸有参考文献,一下是四篇最主要的参考来源(主要参考前三篇):
1, 星空下
2, Ming-Hua Li的论文
3,CosmoMC官网readme
4, planck_likelihood_CosmoMC_readme
这里在上面的参考文献上做补充:

  • 1, 关于intel Fortran编译器,网址为intel software tool,这里我直接选择了student,因为student是免费的,所以需要以学生邮箱和学校注册验证通过后才会邮箱收到信息,然后下载这个软件。注册的过程为:点击intel@parallel studio XE下的linux(选择符合自己的系统,笔者是linux),然后全画勾进入注册界面
  • 2,在文献1中的第2部分,一定要注意文中所说的lapack的问题,安装ifort的时候如果自己的电脑是64位,那么在安装的过程中要选择64的选项。也就是安装的过程中有选择IA 32和64的时候选择32(因为它前面是x号,选择表示去掉),安装的时候会看到说找不到32表示已经选了64了。
  • 3 文献1中的第5部分:./waf configure --lapack_mkl=${MKLROOT} --install_all_deps时,如果输出结果找不到cfitsi,则要自己指定:如./waf configure --lapack_mkl=${MKLROOT} --install_all_deps --cfitsio_prefix=/home/username/software/cfitsi 这里cfitsi是自己安装的cfitsi路径(文献1的作者已经做了修改),安装他的提示可以完成。
  • 4 文献2中的F部分,plc (planck likelihood and Chains)(文献1也提到plc-2,笔者用的3.01)参考planck似然,也可以直接下载COM_Likelihood_code(有3.0和3.01的版本),已经不需要像F中提到的那样再进入plc中vi Makefile改内容,这部分直接参考文献1即可。(下载的时候有一个技巧:点击页面框后面的链接按钮,选择wget,然后使用wget终端下载即可)
  • 5 由于很多软件已经更新,所以笔者使用的版本都比1和2文中提到的版本高
  • 6 文献1中提到的plc_2.0,这里笔者使用COM_Likelihood_Data-baseline_3.0

安装遇到的问题:

./cosmomc: relink ‘xxx/intel/compilers_and_xx/libirc.so’ with ‘/lib/x86_64-linux-gnu/libc.so.6’ for IFUNC symbol ‘memmove’
这个问题是由于plc-3.01没有正确指定路径造成的,可以重新装一遍plc

Acknowledgements

花了两天时间终于安装完了,感谢文献1中作者的帮助, 如有必要,再写CosmoMC的使用

2.1 CosmoMC使用

**1)编译 **

make all

(如果有改动要重新编译可以使用make clean, make delete删除编译过的文件)

2) 修改test.ini文件,增加或注释数据
使用planck15年的数据,注释18年的数据
使用planck数据
3)运行cosmoMC

mpirun -np 4 ./cosmomc test.ini  使用4个进程

4)查看结果
为了防止产生的文件过多比较乱,在CosmoMC目录下建一个名为plot_data的文件夹,将disttest.ini文件中做如下修改:
在这里插入图片描述
运行:

./getdist disttest.ini

得到的文件包括如下
在这里插入图片描述
要画二,三维图使用python

python test_tri.py
python test_2D.py

在这里插入图片描述
也可以使用python来画图,指定输出的参数----参考文献arXiv:1808.05080第V部分
为防止文件混乱,在CosmoMC下建立一个名为pytest的文件夹,在文件夹下创建名为disttest.py的文件,内容为:

from getdist import plots, MCSamples
f=plots.getSubplotPlotter(chain_dir='../chains/',width_inch=12)
f.triangle_plot('test',['omegabh2','omegach2','H0','logA','ns'],filled=True,
        legend_labels=['PlanckTT}'], legend_loc='upper right',
        line_args=[{'lw':1, 'color':'darkblue'}], contour_colors=['darkgreen'])
f.export('mymodel_cmb_tri.pdf')

使用python运行即可得到参数限制情况
在这里插入图片描述

3 常见问题

3.1 mpirun detected that one or more processes exited with non-zero status, thus causing…

在这里插入图片描述
问题描述,使用了planck 18年的数据,clik链接的是18年的。在/cosmoMC/CosmoMC/data$路径下ll click*查看到的是如下的链接
在这里插入图片描述
plc_3.0是planck likelihood code 2018
而我在test.ini将planck 的数据使用的是2015年的(即batch2的数据,注batch3是18年的)
在这里插入图片描述
此时导致链接出了问题。简言之,使用了15年数据,却链接的是18年code。
解决方法:链接15年code
打开batch2/lowl.ini,有如下描述:
在这里插入图片描述
即15年的code是用的链接名是clik,而18年使用的是clik_14.0,所以现在将plc_2.0链接到CosmoMC/data下,并命名为click,命令如下

ln -s /home/username/xxx/data/plc_2.0/ CosmoMC/data/clik   #这里code要使用绝对路径
CAMB pytorch 是一个用于计算宇宙微波背景辐射(CMB)的Python库。它是基于CAMB(Code for Anisotropies in the Microwave Background)库的PyTorch版本。CAMB是一个著名的Fortran库,用于计算CMB的理论预测。而CAMB pytorch 则提供了一种使用PyTorch框架进行CMB计算的方法。 CAMB pytorch 通过使用神经网络和深度学习技术,可以更高效地进行CMB计算,并且能够在GPU上进行加速。它提供了许多用于处理CMB数据的函数和工具,包括计算CMB的功率谱、计算CMB的等值线图、进行CMB数据的拟合等。 要使用CAMB pytorch,您需要在环境中安装PyTorch和其他依赖项,并下载预训练模型。您还需要准备nuScenes数据集。一旦准备好这些条件,您就可以使用CAMB pytorch提供的函数和工具来进行CMB计算和分析。 请注意,以上信息是根据提供的引用内容进行推断得出的。如果需要更详细的信息,建议查阅CAMB pytorch的官方文档或相关资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Simple-BEV源码学习](https://blog.csdn.net/WhynotLike2021/article/details/128050997)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值