cradle

開発背景

開発者インタビュー

開発者インタビュー No.1「SCRYU/Tetraの長所を残しつつ新しいソルバーとしての特徴を生かす」

設立30年以上に渡り、熱流体解析の分野におけるソフトウェアの開発に専念してきたソフトウェアクレイドルが2016年に新たにリリースしたscFLOW®。従来比3倍(最大)の計算スピードと安定性を持つ新ソルバーと、初心者でも複雑なモデル構築と高品質なメッシュ作成が可能な新プリプロセッサーを搭載し、同社の次世代ソフトウェアとして今後もさらなる進化を遂げる予定だ。今回は、scFLOW®のソルバーの開発を担当した開発部入江に開発背景について聞いた。

株式会社ソフトウェアクレイドル  開発部 入江 智洋
株式会社ソフトウェアクレイドル 開発部入江 智洋
Unlimitedライセンス(ソルバー)サムネイル
scFLOW®solverロゴ

開発の背景を聞かせてください

弊社の非構造格子系ソルバーとしてはSCRYU/Tetraがありますが、SCRYU/Tetraのユーザー様、あるいは導入をご検討いただいた際に寄せられるご意見として、「とにかく解析時間を短縮したい」というご要望がよくあります。SCRYU/Tetraもバージョンアップのたびにソースコードのチューニングを行っており、解析時間の短縮に努めてきましたが、実製品を対象とした流体解析はとにかく長い計算時間が必要となるため、製品設計等の現場で特によく使われる定常解析について飛躍的な高速化を目指せないかというのが発端です。それと同時に、SCRYU/Tetraは改良を重ねてきた強力なソルバーではありますが、SCRYU/Tetraの基礎スキームではどうしても苦手とする部分を別のスキームを採用することによって解決できないかという要請があります。

また、SCRYU/Tetraは1998年にバージョン1がリリースされて以来、17年に渡って開発を続けてまいりました。その間、計算機環境やご利用状況も大きく変わってきましたので、新しい技術を導入していくには、変更を繰り返すよりも新規の製品としたほうが開発の効率上、有利な場合があります。

scFLOWによるファンの解析
scFLOW®によるファンの解析

SCRYU/Tetraは既に多くのユーザー様がいらっしゃいます。そのため、大規模な変更は難しい面があり、新しい手法を導入するためには、新ソルバーとしたほうが都合がよい側面もありました。また、これまでSCRYU/Tetraに慣れ親しんでいただいているお客様にも違和感なく受け入れてもらえるために、プリ、ポストなどの周辺ツールはなるべく継承していける設計が望ましいと考えました。このような経緯から、scFLOW®の特徴としては高速なソルバーであることを第一目標として、特によく使われる定常解析や、大規模な解析対象に関しても並列効率のよいソルバーを目指して開発に取り組みました。

次に、メッシュの品質に大きく依存しないような解法によってロバストさを確保したいと思いました。ここではSCRYU/Tetraで培ったノウハウを反映していくことによって、安定性の向上を図ることにしました。また、使い勝手においても定評のあるSCRYU/Tetraの特徴を引き継ぎ、SCRYU/Tetraの既存ユーザー様にも違和感のない操作方法、さらに作業効率を向上できるような条件設定のフォーマットを導入しました。このような特徴をもつソルバーを目標として2016年11月にscFLOW®V13リリースし、現在もV14に向けて鋭意開発を続けています。

scFLOW®開発背景

scFLOWとSCRYU/Tetraのコントロールボリュームの違い
scFLOW®とSCRYU/Tetraのコントロールボリュームの違い

入江さんは、scFLOW®の開発において、どの部分を担当されたのですか?

scFLOW®ソルバー全体の統括を行っていますが、scFLOW® V13では主に乱流モデル、重合格子、マトリックスソルバーなどの機能開発を担当しました。

苦労した点や、工夫したポイントなどがあればお聞かせください

ソルバー開発メンバー(写真1)の中には、現行製品の開発業務と兼務している者もいましたし、開発期間も決して十分とは言えなかったため、効率よく開発業務を進める必要がありました。具体的には、開発メンバー間の情報共有をこれまで以上に密にし、各メンバーが他のメンバーの進捗状況や悩んでいる問題を共有し、お互いにフォローし合うことができる体制づくりに注力しました。また、機能的にはSCRYU/Tetraから引き継ぐべきところ、作り直すところを見極め、なるべくSCRYU/Tetraの長所を残しつつ新しいソルバーとしての特徴を生かせるような設計を心がけています。

例えば私が実装した部分では、乱流モデルやマトリックスソルバーについて、SCRYU/Tetraで実績のあるものをscFLOW®でも使えるようにしています。一方で、基礎的な解析条件を設定するコマンド群に関しては、より合理的かつ拡張性を考慮した設計にしてプリのGUIデザインがユーザーにやさしいものになるような仕様をゼロから作り直しています。弊社の構造格子系ソルバーとして実績のあるSTREAMからも、長所となる部分は参考にしています。

scFLOW®の主な特長はどのようなところでしょうか

図2 ユーザー関数・スクリプト機能(SCRYU/Tetra未実装機能)
図2 ユーザー関数・スクリプト機能(SCRYU/Tetra未実装機能)

SCRYU/Tetraとの比較になりますが、最大の特徴は要素中心型の有限体積法導入にあります。これまで、SCRYU/Tetraでは4面体、5面体、6面体で構成される計算メッシュの節点位置に変数を定義し、この節点周りに、図1の右図のような節点と節点を結ぶエッジの中点、および要素の重心を通る面で構成された、いわゆるコントロールボリュームを構成し、有限体積法による支配方程式の離散化を行ってきました。一方、scFLOW®では図1の左図に示すように、このコントロールボリュームをメッシュの要素とし要素の中心位置に変数を定義します。よって、メッシュを構成する要素は任意の多面体となります。

図1の左右の図では、変数の定義位置が同じ場合の双方のコントロールボリュームを赤い線で描いていますが、SCRYU/Tetraでは、右図のように要素を構成する辺に基づいてコントロールボリュームの界面を分割し、流束(フラックス)の出入りを緻密に積分する形をとります。一方、scFLOW®では図1の左図のように、同じデータ点数でもコントロールボリューム界面の数が減りますので、支配方程式を離散化する際に行うコントロールボリューム毎の積分演算を大幅に減らすことが可能になります。

SCRYU/Tetraの離散化手法は、要素の形状を4種類に限ることによって、要素内の補間処理や勾配計算を形状関数(有限要素法などで用いられる要素内の物理量分布を表す近似関数)を使って正確に行えるなど、有利な点も多いのですが、scFLOW®では解析速度の向上を最優先とし、離散化の段階での演算量を減らすことが可能なスキームを選択しました。加えて、マトリックスソルバーの高速化や定常解析での収束性改善など、全体として計算時間の短縮を図っています。

取材日当日に同席していたソルバー開発メンバー
取材日当日に同席していたソルバー開発メンバー

また、解析機能面ではV14以降でも順次追加を行っていきますが、V13ではSCRYU/Tetraの機能のうち、特に利用頻度が高い重要なものを実装しています。加えて、SCRYU/Tetraには無かった機能として、JavaScriptによるスクリプト機能(図2)を追加しています。SCRYU/Tetraでは、既存機能のカスタマイズをする場合にC言語を用いたユーザー関数機能をご利用頂いておりました。ソルバー本体と同じプログラミング言語を用いることで大規模なカスタマイズ案件でも高速な演算が可能な反面、C言語コンパイラを用意しコンパイルする作業がユーザー様にとって負担となるものでした。そこで、コンパイルする必要がないスクリプト言語であるJavaScriptを導入することにより、ユーザー様の負担を軽減することを目指しました。通常のアプリケーションでスクリプト言語による機能追加というのは作業の自動化など(弊社ではVBScriptを提供)が主な用途ですが、CFDソルバー本体の機能拡張に適用する場合は計算速度が最大の問題となります。今回、JavaScriptでは計算速度の問題もクリアできる目途がたったことから、scFLOW®ソルバーのスクリプト機能として採用しました。

どのようなお客様に利用いただきたいですか?

scFLOW®が目指す姿は、従来から熱流体解析に精通されている研究者や製品開発に携わる方はもちろんのこと、これまで熱流体解析そのものにも馴染みが薄かった方にも日常のツールとして使って頂けるものです。あらゆる製品設計において省エネルギーや環境への影響が極めて重要視されてきていますので、熱流体解析がお役に立てる場面はこれまで以上に増えていくと考えます。

そのためには、ソルバーとしては特別ではない計算環境でも結果が得られる計算速度やメモリ性能を目指しています。一方、scFLOW®のアプリケーション全体を通して、解析データの準備や解析結果の分析に適したデータ構造を適用していますので、初心者や学生の方にとってもやさしい製品に仕上がっていると思います。

利用することでのメリットや注意点などあれば教えてください

scFLOW®を使用していただくと、特に定常解析の計算速度の向上を実感していただけると思います。2017年2月からscFLOW®において、並列計算の並列数無制限のライセンス形態を開始しました。大規模な計算を必要とするお客様には大きなメリットがあると思われます。こちらも併せて是非ご利用いただきたいと思います。

注意点としては、SCRYU/Tetraと同じ非構造系ソルバーではありますが、異なるスキームやメッシュを用いていますので、SCRYU/Tetraと必ずしも同様な結果が得られるとは限りません。同じ名称の機能であっても、scFLOW®に適した設定となっている場合もありますので、疑問に思われたらお気軽に弊社サポート窓口までお問い合わせください。

今後の開発予定などあればお聞かせください

2018年にリリースを予定しているV14では、SCRYU/Tetraの主要機能を網羅できることを目指して開発を進めています。また、今後はSCRYU/Tetraにはない新しい機能の追加も進めていく予定ですので是非ご期待ください。

最後にユーザー様へひとことお願いします

生まれたばかりの製品ですので、まだまだ成長途上の部分が多々あることは否めません。これまでのクレイドル製品もそうですが、scFLOW®も日本で開発したソフトウェアになります。これまで同様に、ユーザー様のご意見・ご要望を迅速かつ柔軟に製品開発取り込んでいきたいと思っています。是非使ってみた感想やご意見をお寄せいただければ幸いです。

scflow-logo開発者インタビュー