前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Geant4下配置使用宇宙线模拟产生子 CRY

Geant4下配置使用宇宙线模拟产生子 CRY

作者头像
梁佐佐
发布2020-11-09 17:37:16
2.3K13
发布2020-11-09 17:37:16
举报
文章被收录于专栏:人芳觅人芳觅

本文简述利用Geant4 cmake如何链接CRY库,并在自己的Geant4程序中使用

01

下载cry包地址:

https://nuclear.llnl.gov/simulation/main.html

点击 Install from source,获取**.tar.gz文件。本文撰稿时版本为v1.7找一个合适的目录解压;打开命令行,在解压后的文件目录 : make,make完会有bug,发现是无法读取data中的数据,bug如下:

此时将test文件夹下的testMain.cc文件中的第75行中的data路径加上:

改为如下:

这里会运行一个test程序,输出是:…identical,如下(不用管):

现在目录里面重要的文件有geant文件夹,里面是关于在geant下如何使用;一个是src文件夹,里面包含了各种.c .h .o文件,也就是构成CRY库的源文件地址啦。一个是data文件夹,里面包含了三个不同海拔的数据。最后一个lib文件夹,里面是静态库文件libCRY.a

02

cd 到cry_v1.7的geant文件夹下:

  • cd /home/zhaijj/geant4.10.05/cry_v1.7/geant
  • 执行make 会发现有以下bug,需要source一下setup文件
  • 输入source ../setup
  • 重新make会发现以下种种bug(主要有两种bug. 1>单位没被定义,需要在对应的文件下加入如下头文件#include "G4SystemOfUnits.hh"。2>中子相关的物理过程找不到,这里需要到对应的PhysicsList.cc文件中把中子过程注释掉(不懂))

Bug如下:

  • 将对应的中子过程进行注释:

再次make以后会发现有如下bug:

继续进入到PhysicsList.cc文件里,定位到错误行处,发现是theParticleIterator改变量没有定义,加入定义如下,保存并退出:

  • 打开PrimaryGeneratorAction.cc文件,加入#include "G4SystemOfUnits.hh"头文件,并且更改文件中的三处读取data文件的路径如下:

把 “../data”改成

"/home/zhaijj/geant4.10.05/cry_v1.7/data"(你自己的存放路径)(总共三处)

  • 执行make
  • 运行cosmic cmd.file,成功运行如下:

不懂这里为什么官方下载的数据包会有这么多bug,着实不懂。。。

03

回到根目录下 cd ~

将之前需要source的setup文件的路径加入到.bashrc中,并source

附:

在geant4 .mac文件中控制CRY的行为,由于有PrimaryGeneratorMessenger的存在,所以命令如下:

/CRY/inputreturnNeutrons 1/0 1是开启,0是关闭

/CRY/inputreturnProtons

/CRY/inputreturnElectrons

/CRY/inputreturnGammas

等等,这些可以参考cry安装目录下geant文件夹内 cmd.file

/CRY/update 要先于/run/beamOn 运行

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人芳觅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01
  • 02
  • 03
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档