核燃料循环包 CYCLUS 的安装与使用

参考CYCLUS官网:Cyclus — Home (fuelcycle.org)

以下操作在 ubuntu20.04.6 LTS上完成。

一、miniconda3的安装

安装miniconda3,参考Miniconda3的安装、配置和使用

1. 切换到安装位置,打开终端,输入以下代码:

wget https://mirrors.ustc.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash  Miniconda3-latest-Linux-x86_64.sh

2. 可将 .bashrc 文件中的conda初始设置注释,添加以下内容:

先进入 .bashrc 文件:

vi ~/.bashrc

添加以下内容:

alias condaac='source ~/miniconda3/bin/activate'

实现 condaac 命令激活conda环境,即让终端进入conda环境。

二、新建虚拟环境

为了避免 Cyclus 的安装破坏Base环境,及便于管理Cyclus,需新建虚拟环境。

condaac

conda create --name cyclus python=3.9

三、安装Jupyter Notebook

为了便于使用Cyclus,借助 Jupyter Notebook交互计算应用程序。

conda activate cyclus

conda install jupyter notebook

四、安装Cyclus

1. 安装

conda install -c conda-forge cycamore

如果出现证书验证方面问题,使用下面命令安装:

conda config --set ssl_verify false

conda install -c conda-forge cycamore

2. 测试

cyclus_unit_tests

cycamore_unit_tests

至此安装完成。

五、安装 Cymetric 包

为了对 cyclus 的输出文件 .sqlite 进行分析,安装 Cymetric 包。

1. 在 https://github.com/cyclus/cymetric 上的 Releases 上下载 Source code(zip) 文件。

2. 进入下载文件所在文件夹,一般为Download,新建终端。

3. 解压zip文件

unzip cymetric-1.6.0.zip

4. 进入完成解压的文件夹,进行安装

cd cymetric-1.6.0

condaac

conda activate cyclus

python setup.py install

六、Cyclus 的使用

1. 在 https://zenodo.org/records/4557613网站上下载 Cyclus案例文件。

输入文件有:input_deployinst.xml、input_oncethrough.xml、input_recycle.xml、input_secondreactor.xml

输出文件有:output_deployinst.sqlite、output_oncethrough.sqlite、output_recycle.sqlite、output_secondreactor.sqlite

input_deployinst.xmloutput_deployinst.sqlite示例:

2. 进入 input_deployinst.xml 所在文件夹内,启动终端,启动 jupyter

condaac

conda activate cyclus

jupyter notebook

3. New -> 新建Notebook

4. 使用 cyclus 计算 input_deployinst.xml

!cyclus input_deployinst.xml -o output_d.sqlite

可将 ouput_d.sqliteoutput_deployinst.sqlite进行对比验证。

七、cymetric 的使用

可在上面建立的 Notebook中继续操作。

1. 列出 cymetric 的帮助信息:

!cymetric -h

2. 列出 output_d.sqlite 中的数据列表名:

# -l 表示列出 database 中的数据表

!cymetric output_d.sqlite -l

3. 列出某个数据表内容:

使用数据表名进行索引会得到 DataFrame结构的返回值(有些数据表返回 ColumnProxy,没法索引查看),如 Resources[:] 的返回值为 DataFrame对象,可使用 print 函数进行打印。

  • 使用 [:] 、 [None] 、 [...] 列出某一数据表的所有内容:
# -e 表示执行代码模式

# 双引号"" 里是python代码,用 分号; 分隔每行代码

!cymetric output_d.sqlite -e "print(Resources[:])"

  • 获得 MaterialInfo[:] 的行名和列名

获取行名

!cymetric output_d.sqlite -e "print(Resources[:].index)"

>>
RangeIndex(start=0, stop=5725, step=1)

获取列名

!cymetric output_d.sqlite -e "print(Resources[:].columns)"

>>
Index(['SimId', 'ResourceId', 'ObjId', 'Type', 'TimeCreated', 'Quantity',

       'Units', 'QualId', 'Parent1', 'Parent2'],

      dtype='object')

  • 对 Resources[:] 进一步索引,输出对应内容:

使用  列名字符串  选出对应列,使用  冒号:切片索引  选出对应行。

打印 Resources数据表中 'ResourceId' 列的内容:

# Resources[:][['ResourceId']]返回DataFrame

!cymetric output_d.sqlite -e "print(Resources[:][['ResourceId']])"
>>
      ResourceId

0             22
1             24
2             56
3             57
4             59
...          ...
5720       13286
5721       13289
5722       13290
5723       13292
5724       13293

[5725 rows x 1 columns]


# Resources[:]['ResourceId']返回Series

!cymetric output_d.sqlite -e "print(Resources[:]['ResourceId'])"
>>
0          22
1          24
2          56
3          57
4          59
        ...  
5720    13286
5721    13289
5722    13290
5723    13292
5724    13293

Name: ResourceId, Length: 5725, dtype: int64

打印 Resources数据表中 前5列 的内容:

!cymetric output_d.sqlite -e "print(Resources[:][:5])"
>>
                                  SimId  ResourceId  ...  Parent1 Parent2
0  e3584b69-d0f0-4655-861e-606b4ea66a7a          22  ...        0       0
1  e3584b69-d0f0-4655-861e-606b4ea66a7a          24  ...        0       0
2  e3584b69-d0f0-4655-861e-606b4ea66a7a          56  ...       22       0
3  e3584b69-d0f0-4655-861e-606b4ea66a7a          57  ...       22       0
4  e3584b69-d0f0-4655-861e-606b4ea66a7a          59  ...       57       0

[5 rows x 10 columns]

4. 使用数据画图

!cymetric output_d.sqlite -e "Resources[:][:10].plot(x='ResourceId', y='Quantity',kind='bar'); plt.savefig('R-Q.jpg')"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值