将MCNP几何图形转换为Tripoli-4®格式的工具

t4-geom-convert的Python项目详细描述


t4_geom_转换

pypi version

此存储库包含一个python的开发版本 用于将MCNP几何图形转换为Tripoli-4格式的工具。

功能

以下是MCNP建模引擎的特性列表 由t4 geom_convert至少部分支持和转换

  • 所有表面类型(sq除外)
  • 布尔单元格运算符
  • 曲面和单元格上的仿射变换(请参见当前 限制尽管如此)
  • 边界条件(反射,白色表面)
  • 同位素组成和细胞密度
  • 宇宙和填充,甚至嵌套,可能有仿射变换
  • 晶格(请参阅当前 限制尽管如此)

安装

如果要安装最新的稳定版本,只需键入以下命令 终端中的命令:

$ pip install t4_geom_convert

您还可以使用安装最新开发版本

$ pip install git+https://github.com/arekfu/t4_geom_convert.git@next

对于本地安装,您可能需要将--user选项传递给pip。偶数 更好的是,您可以创建一个虚拟环境并安装t4 geom\u convert

$ python3 -m venv /path/to/some/folder
$ source /path/to/some/folder/bin/activate
$ pip install -U pip setuptools
$ pip install t4_geom_convert

依赖关系

mcnp输入文件由mip进行解析。我们使用稍微修改过的版本 mip,与t4 geom_convert一起提供。MIP取决于tatsu 4.3.0.

t4 geom_convert也取决于numpy

用法

基本用法是

$ t4_geom_convert <mcnp_input>

这将创建名为<;mcnp_input>;.t4的tripoli-4输出文件,其中包含 转换后的几何体。您也可以为输出选择不同的名称 使用-o选项归档。

使用-h选项列出所有可用选项。

晶格转换

t4_geom_convert能够处理重复结构的转换 (格)目前只支持六面体晶格(lat=1)。

声明为lat=1的六面体单元表示晶格的单位单元, 假设在所有方向重复,直到 包围牢房。由于tripoli-4格表示的局限性, 我们选择了用纯基于表面的方法来表示晶格。 这意味着t4_geom_convert将实际发出单独的单元格定义 对于通过封闭单元可见的晶格中的每个单元。这个 要发出的单元格定义的范围必须由用户通过 --lattice命令行选项。例如,考虑下面的mcnp 输入:

A lattice example
1 0  1 -2 3 -4 IMP:N=1 U=2 LAT=1
10 1 -1. -10 IMP:N=1 FILL=2
1000 0 10 IMP:N=0

1 PX -1.5
2 PX 1.5
3 PY -0.5
4 PY 0.5
10 SO 4

m1 13027 1.

这里的单元是二维的。晶格填充一个半径的球体 4。假设单元索引为(0,0),则可见晶格单元是

  • (-1,-4)至(-1,4)
  • (0,-4)至(0,4)
  • (1,-4)至(1,4)

这可以通过目视检查MCNP几何结构或 几何因素。一旦确定了索引界限,则 --lattice选项必须指定为

$ t4_geom_convert --lattice 1,-1:1,-4:4 <mcnp_input>
                            ↑  ↑ ↑  ↑ ↑
             cell number ───┘  │ │  │ └ j-range upper bound
        i-range lower bound ───┘ │  └─── j-range lower bound
          i-range upper bound ───┘

这将产生以下tripoli-4几何图形(x-y剪切),其中有几个单元格 索引已注释: 转换几何图形示例ry with lattices

一维格的语法是

--lattice <cell>,<i-from>:<i-to>

对于三维晶格,它是

--lattice <cell>,<i-from>:<i-to>,<j-from>:<j-to>,<k-from>:<k-to>

请注意,ijk轴不一定与坐标轴相同。

晶格单元单元可以在几个包围单元中显示为填充图案。它 目前无法为每种类型指定不同的填充范围。

当前限制

下面列出了t4 geom_convert当前无法执行的一些操作,但是 可能在未来能够做到(大致按可能性的降序排列):

  • []转换sq曲面
  • []使用m=-1处理仿射变换( 仿射变换)
  • []优化填充负宇宙(不与 封闭单元)
  • []警告Tripoli-4字典中缺少同位素 (当前需要手动编辑转换后的文件并删除 缺失同位素的出现)
  • []转换MCNP宏体
  • []转换电池温度
  • []转换六边形格
  • []提供一种方法来指定每个封闭单元的晶格填充范围(这 需要以一种与嵌套格一起工作的方式指定,
  • []重复数据消除重复曲面定义,即删除重复曲面 有利于其中一个副本的定义(这尤其是一个问题 对于晶格,它倾向于生成许多相同的表面)
  • []重复数据消除重复的单元定义(这比 重复数据消除表面)
  • []为尽可能多的单元生成Tripoli-4连接图 (主要是格)
  • []识别并自动抑制空单元格(它们可能会生成 通过晶格发展或填充发展) -用线性规划解算器求解平面包围的单元? -在一般情况下使用SAT解算器?
  • []转换(某些)MCNP源定义
  • []转换(某些)MCNP计数定义

mip/tatsu有几个限制:

  • []MIP不支持Tatsu>;4.3.0(有些中断,但我不确定是什么 现在正是时候)
  • []输入文件不能包含异常或非ascii字符,如&;或 é之前,您需要从输入文件中删除这些字符 正在尝试转换
  • []补码之间的单元格定义中不允许有空格 运算符及其参数: -好:42 -好:(123-124) -错误:42 -错误:(123-124)

欢迎您的帮助!如果您想实施 新功能或以任何方式参与项目。

报告错误

请在github问题页上报告任何错误/功能请求。

许可证和确认书

开发t4 geom_convert的部分资金来自eurofusion 财团。t4_geom_convert根据gnu public的条款发布 许可证,第3版

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

推荐PyPI第三方库


热门话题
java如何克服带有空值的不可空bean级验证   “此行有多个标记”的authenticateUser上的java MySQLConnection错误   java处理Jackson异常   java Netbeans编辑器如何知道文件在撤消后不会被修改?   目标C相当于Java的ArrayList   java当需要int时,可以将short传递给方法调用吗?   drawString()方法上的java MouseListener   java服务器socket是执行此操作的最佳选项   java需要单个匹配bean,但找到了2:org。springframework。网状物servlet。mvc。方法注释。RequestMappingHandlerMapping   如何在Java中执行Windows命令?   安卓应用程序的java文件主机   java将所有spring引导属性都设置在内。将yml文件转换为系统属性   Java邮件中的html内联链接在邮件客户端中不起作用   Java二进制文件的bazel版本控制   java如何在自定义ListView中使用Intent   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java一次add()调用可以在Solr服务器中索引多少文档?   java如何获取Avro GenericRecord大小