OpenMC 0.15.1版本发布:蒙特卡洛粒子输运模拟的重大更新
openmc OpenMC Monte Carlo Code 项目地址: https://gitcode.com/gh_mirrors/op/openmc
OpenMC是一款开源的蒙特卡洛粒子输运模拟软件,主要用于核反应堆物理、辐射屏蔽和临界安全分析等领域。它采用现代C++和Python混合编程实现,具有高性能、可扩展性强等特点,被广泛应用于学术研究和工业领域。最新发布的0.15.1版本带来了多项重要改进和新功能,显著提升了软件的计算能力、易用性和可视化效果。
随机射线求解器的全面增强
本次更新对随机射线求解器进行了多项重要改进:
- 熵计算支持:新增了Shannon熵计算功能,可以更好地评估计算收敛性(#3030)
- 线性源支持:实现了对线性源的模拟能力(#3072)
- 伴随通量求解:现在可以求解伴随通量问题(#3191)
- 准蒙特卡洛采样:支持随机化的准蒙特卡洛采样方法(#3268)
- 权重窗口生成:实现了FW-CADIS权重窗口生成功能(#3273)
- 源区域网格细分:改进了源区域处理方式(#3333)
这些改进使得随机射线方法在复杂问题中的应用更加灵活和高效。
新型复合几何表面建模
为增强几何建模能力,新增了三种复合表面类型:
- 正交盒体(
OrthogonalBox
):简化了长方体几何的创建(#3118) - 圆锥台(
ConicalFrustum
):便于创建锥形几何结构(#3151) - 容器表面(
Vessel
):专为容器类几何设计的复合表面(#3168)
这些新增的复合表面大大简化了复杂几何的建模过程,同时提高了与MCNP模型的兼容性。
可视化功能升级
在可视化方面,本次更新带来了两项重要改进:
- 源点绘制:
Model.plot
方法现在支持绘制源点位置(#2863) - 实体渲染:新增
SolidRayTracePlot
类,采用Phong着色技术实现高质量的3D可视化效果(#2655)
特别是新的实体渲染功能,通过光线追踪和Phong着色算法,可以生成更加真实的三维几何展示效果,大大提升了结果的可视化质量。
材料与网格计算优化
材料系统和网格计算方面也有显著改进:
- 元素原子密度获取:新增
Material.get_element_atom_densities
方法(#3103) - 网格材料体积计算:完全重构了
Mesh.material_volumes
方法,采用基于光线追踪的新算法,性能大幅提升并支持并行计算 - 材料混合:改进了
mix_materials
方法,支持更多参数选项(#3336)
这些改进使得材料处理和网格计算更加高效和灵活。
剂量计算与衰变分析
针对辐射防护和衰变分析应用:
- ICRP 74剂量系数:支持使用ICRP 74标准中的剂量系数(#3020)
- D1S模块:新增
deplete.d1s
子模块,专门用于聚变装置的停机剂量率计算(#3235)
D1S模块的加入使得OpenMC在聚变装置辐射安全分析方面的能力得到显著增强。
性能优化与代码改进
在底层实现和性能方面:
- 依赖项精简:移除了Cython和gsl-lite等第三方依赖(#3111,#3225)
- NCrystal处理:将NCrystal从构建时依赖改为运行时依赖,简化了构建过程(#3328)
- 文件系统处理:改用C++17的std::filesystem处理文件路径(#3042)
- 随机数生成器:改进了PCG随机数生成器的理论实现(#3134)
这些底层改进提高了代码的健壮性和可维护性。
其他重要改进
- 结果自动应用:
Model.run
现在可以自动将计算结果应用到现有的Tally对象,减少了样板代码(#2671) - 统一源采样:新增
Settings.uniform_source_sampling
选项,优化源采样过程(#3195) - DAGMC材料区分:增强了对DAGMC模型中材料的区分能力(#3056)
- 微截面计算:修复了
MicroXS.from_multigroup_flux
中的问题(#3192)
兼容性说明
- 类名变更:
ProjectionPlot
类已更名为WireframeRayTracePlot
,以更好地与新的SolidRayTracePlot
类对应 - NCrystal变更:不再使用
OPENMC_USE_NCRYSTAL
CMake选项,改为运行时自动检测
总结
OpenMC 0.15.1版本在随机射线方法、几何建模、可视化、材料处理和剂量计算等多个方面都有显著提升。这些改进不仅增强了软件的功能性,也提高了计算效率和用户体验,使OpenMC在粒子输运模拟领域的应用更加广泛和深入。特别是新增的D1S模块和实体可视化功能,为聚变研究和结果分析提供了强有力的工具。
openmc OpenMC Monte Carlo Code 项目地址: https://gitcode.com/gh_mirrors/op/openmc
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考