计算模型与代码的验证
在计算建模领域,确保模型和代码的准确性至关重要。本文将详细探讨计算模型和代码验证的相关内容,包括模型输入验证、合理性检查以及与现有结果的比较等方面。
1. 验证概述
验证的关键目标是避免“输入垃圾,输出垃圾”的现象。假设底层软件已正确实现(经过验证),所有误差源都存在于模型本身。模型失败主要有两个原因:
- 输入参数或方程不符合预期 :即是否给代码提供了正确的信息。
- 参数和方程正确传递,但模型未能准确捕捉潜在现象 :即是否对正确的系统进行了建模。
2. 模型输入验证
验证模型输入是否正确是验证过程的基础。以下是一些需要考虑的关键问题和验证方法:
- 基本检查
- 单位和排版错误 :对于输入较少的模型,手动检查单位是否正确以及是否存在排版错误是快速且可行的。例如,一个简单的分子模型可能只需要定义几十个用于各种键合和非键合相互作用的输入参数,可轻松手动验证。
- 格式正确性 :除了验证数值,还需注意参数的预期格式。许多软件对参数的输入顺序和格式有严格要求。例如,在定义Lennard - Jones势的参数时,LAMMPS和HOOMD - Blue的语法不同:
#(LAMMPS)
pair_coeff 1 1 0.066 3.5
#(HOOMD - Blue)
lj.pair_coeff.set('1', '1', ep