项目简介
本项目是基于 C++ 语言开发的 opacity-tools
库,目标是打造一个支持多语言的便携式库,用于计算尘埃不透明度。主要应用于多尘埃流体动力学代码和辐射传输代码中的实时尘埃不透明度计算。
项目的主要特性和功能
- 支持 C、C++、FORTRAN 等多语言调用库函数,方便不同编程背景开发者使用。
- 利用 Brugemann 有效介质近似,支持不同颗粒成分,可处理任意尘埃颗粒尺寸分布。
- 能计算积分的 Rosseland 和 Planck 不透明度以及与波长相关的不透明度,适用于多组辐射传输代码。
- 提供命令行工具,可指定输入目录、输出目录、输出格式和精度等参数。
- 提供 Python 包装器,通过 C 层调用 C++ 库函数,还配有示例 Jupyter 笔记本。
安装使用步骤
安装
假设用户已经下载了本项目的源码文件。
1. 生成 Makefile 并编译:
bash
cd </path/to/oapacity-tools/>
cmake.
make -j <NCore>
2. 若要更改编译器,可按以下方式运行 cmake:
bash
cmake -D CMAKE_C_COMPILER=<c-compiler> -D CMAKE_CXX_COMPILER=<c++-compiler>.
使用
命令行接口(CLI)
构建完成后,可从 opacity-tools/bin/
调用 CLI,支持的参数有输入目录 --from_dir=./
、输出目录 --output_dir=./
、输出格式 --text_output
(默认输出为二进制)和单精度 --FP32
(默认是双精度)。
库调用
- C++:由于 C++ 中
opacity-tools
是仅头文件的库,直接链接头文件即可使用。 - C:需链接
opacity-tools/lib/
中的静态库,opacity-tools/examples/
提供了简单示例。 - FORTRAN:
*_interface.cxx
文件中定义了 FORTRAN 友好的函数,opacity-tools/examples/
提供了使用示例。
Python 封装
调用 C++ 库函数通过 C 层实现,但内存分配方面未经过广泛测试。opacity-tools
中提供了示例 Jupyter 笔记本。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】