计算科学比我以前的编程有更多的参数,我发现很难跟踪。跟踪它们的最佳方法是什么?
编辑源代码,注释掉。很适合快速尝试,但经过一番探索,我已经忘记了之前的那些是什么。当设置需要对代码的多个部分进行更改(例如更改粘度和初始条件 (IC))时,难度要大得多。
在一个类中对于每个实验,为设置的每个部分编写一个带有方法的类,然后从主代码的适当部分(例如特定 IC和特定边界条件 (BC)以及组合的值和,并排除/关闭某些方面,例如平流,并且可能还会更改可视化参数,例如缩放-尽管这确实应该是分开的)。为所有这些单独的更改设置一个类将它们放在一个地方。(要运行实验,为它实例化类,并将其插入主代码。)
- 代码:类的另一个好处是可以很容易地包含实际代码。例如,通常将 IC 定义为函数或方法,而不是数据点,因为前者更易于理解和修改。有时,实验是改变数学表达式/离散化(也就是可执行代码)。
文件格式将参数存储在一个文件中,并读入并配置主代码的适当部分。这在选择不同的数学表达式时效果不佳,除非您使用的是动态语言(例如 python)。可以使用适当的数据库(例如 SQL)而不是文件。
尽管这些不包括结果,例如数据、图表、图像。以上是我以程序员为中心的想法,但我突然想到计算科学可能有更“科学”的方法,即有条不紊地记录实验输入和结果。这可以通过在纸上做笔记来完成,或者以某种更容易出版的形式来完成。
或许,标准软件包还包括轻松记录输入和结果的方法?例如,自动记录,以便您可以轻松返回,如果您需要撰写或重新访问特定实验?
我对什么被认为是最好的方式都感兴趣......而且,什么 人们你实际上做了,这可能比所谓的“最好”更好(这可能太死板,增加了复杂性开销)。
编辑我们的注意力有限,代码、参数、实验和假设可能足够复杂,没有不必要的管理开销——特别是如果你还在学习(就像我一样)。因此,考虑到真实环境和需求,在实践中,与“适当的”重量级工业/机构/企业级解决方案相比,快速和肮脏有时可能是更好的权衡。