OpenFOAM事始め(はてなブログ編)

CAEにまつわるアレとかコレ

ValidationとVerification

OpenFOAMを業務で使おうとした場合、品質保証について不安を述べる人がいる。

市販の解析ソフトの場合、開発元はValidationを必ず行なっているはずである。どのレベル(範囲)までやっているか、その結果を公開しているかは別として。

しかし、OpenFOAMの場合は、少なくとも開発元はやっていないだろう。いくらなんでもオープンソース製品でそこまで開発コストはかけられないだろう。

僕の知る限りでは、ある学会のオープンソースワーキンググループで、参加者が手分けしてOpenFOAMのValidationを進めているところがある。とてもいいことだと思うが、少人数で実施しているため(そして皆さん業務の片手間に行なっているため)、今のところは限られたことしかできていない。そして結果はメンバー内の共有にとどまっており、公開されていない(もったいない!)。

つまり、一般の人がOpenFOAMのValidationをと思っても参考になるような資料はほとんどないことになる。

「そんなソフトは怖くて使えない」という意見もごもっともではあるが、僕はそのような人に対しては、Validationはとれていないかも知れないけど、Verificationが取れているじゃないですか、と言うことにしている。

Validationは数値解析の世界では頻繁に使われる言葉だから説明は不要だろう。Verificationはあまり一般的ではないが、「理論が正しく実装され、プログラム化されているかどうか」という意味である。

ソースがオープンなのだから、どのようにプログラム化されているか、ソースを追いかければすべて確認できる。これは重要だ。

市販のソフトは、ソースを見せてくれるわけではないから、開発元の「こういう手法を使っています」という説明を信用するしかない。まあ、ほとんどの場合は信用できると思うが、たまにそれでは考えられないような結果になることがある。理論と実装が乖離しているのか、非公開の、なにかトリッキーな手法が加味されているのか、バグなのか、ユーザーは確認するすべがない。こういう点に不安を感じる人はいないのだろうか。

「Validationは大事だと思うけど、Verificationはもっと大事でしょう」と話して、「なるほど! 全くその通りですね!!」と言っていただけたことは、まだ一度もないのだが。