问题
我目前正在进行有限元Navier Stokes仿真,并且我想研究各种参数的影响。在输入文件中或通过命令行选项指定了一些参数。其他参数在Makefile中作为标志提供,因此每当我更改这些选项时,都必须重新编译我的代码。我很想获得一些有关系统地探索参数空间的好方法的建议。
- 是否有有用的C ++ / Python库/框架可以帮助解决此类问题?例如,发现boost.Program_options很有帮助,因为可以使用命令行参数来重载输入文件选项。我还看到有人使用工作文件非常有效地描述每种情况,并且一位同事建议将参数作为注释块写入vtu文件也可以工作。
- 也许根本不值得花很多时间在这上面吗?只是分散注意力和时间流失,最好只是通过测试过程中的蛮力和特设肌肉吗?
一些想法
我目前主要是手工做事,遇到以下问题:
- 命名测试用例。我尝试将结果存储在以运行参数命名的文件夹中,并用下划线将其分隔,例如
Re100_dt02_BDF1...
。如果缩写太多,它们很快就会变长或难以阅读/难以理解。另外,实数参数包括.
尴尬/丑陋的a。 - 记录运行数据。有时我希望看到结果写入终端并也保存到文本文件中。例如,来自StackOverflow的答案有些帮助,但解决方案似乎有点麻烦。
- 根据参数绘制数据。从各种日志文件中收集相关数据需要花费一些时间,然后我可以将其绘制到一个文件中,如果使用更好的系统,这也许会变得更容易。
- 记录有关数据的注释。检查结果后,我在文本文件中写了一些注释,但要使其与结果文件夹保持同步有时很困难。