(57)【要約】【課題】  エンジンの中の流体の流れをＣＦＤの適用により解析する予測解析システムＡにおいて、ランダムに投入される複数種類のジョブを優先度に応じて切換えて実行する場合に、実行中のジョブを中断することに起因する計算のやり直しや精度の低下を防止し、且つ中断されるジョブのユーザの不満を軽減して、システムの設計・開発ツールとしての実用性を向上する。【解決手段】  新規ジョブの投入に応じて、実行中或いは実行待ちの各ジョブの優先度を読み込み（ＳＡ１９）、新規ジョブの優先度が実行中のジョブよりも高いときには（ＳＡ２０でＹＥＳ）、この実行中のジョブを演算の種類やその進行状況に対応付けて設定した適切なタイミングで中断して、新規ジョブを実行する（ＳＡ２２）。途中の演算結果に有意性があれば（ＳＡ２３でＹＥＳ）、これをＰＣ端末５に表示させる（ＳＡ２４）。【選択図】    図５
2005257517.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの中の流体の流れを模擬するＣＦＤ演算ジョブをコンピュータ装置により実行させて、その演算結果に基づいてエンジンの性能を予測する予測解析方法であって、
前記演算ジョブが、１次元及び３次元の少なくとも一方のＣＦＤ解析モデルを用いて、定常状態又は非定常状態のいずれかの流れ演算を行う複数種類のものである場合に、
前記コンピュータ装置により実行中か或いは実行待ちの各演算ジョブの優先度を、予め設定した基準に従って決定し、
前記実行待ちの演算ジョブの優先度が実行中の演算ジョブよりも高いときには、この実行中の演算ジョブを、少なくとも該演算ジョブにおける演算の種類とその進行状況とに対応する所定のタイミングで中断して、前記優先度の高い実行待ちの演算ジョブを開始することを特徴とするエンジン性能の予測解析方法。
【請求項２】
エンジンの中の流体の流れをＣＦＤの適用により模擬する演算ジョブを実行して、これにより該エンジンの性能を予測するためのコンピュータシステムであって、
前記演算ジョブが、１次元及び３次元の少なくとも一方のＣＦＤ解析モデルを用いて、定常状態又は非定常状態のいずれかの流れ演算を行う複数種類のものであり、
実行中か或いは実行待ちの各演算ジョブの優先度を、予め設定された基準に従って決定するジョブ優先度決定手段と、
前記ジョブ優先度決定手段により決定された実行待ちの演算ジョブの優先度が実行中の演算ジョブよりも高いとき、この実行中の演算ジョブを所定のタイミングで中断して、前記優先度の高い実行待ちの演算ジョブを開始させるジョブ切換え手段と、を備え、
前記実行中の演算ジョブを中断するタイミングが、少なくとも該演算ジョブにおける演算の種類とその進行状況とに対応付けて設定されていることを特徴とするエンジン性能の予測解析システム。
【請求項３】
ジョブ優先度決定手段は、演算ジョブの優先度を少なくとも演算の所要時間と進行状況とに基づいて決定するものであることを特徴とする請求項２の予測解析システム。
【請求項４】
実行中の演算ジョブが１次元の定常又は非定常演算のいずれかを行うものである場合、この演算ジョブを中断するタイミングは、模擬するエンジンの気筒の燃焼サイクルが終了した時点に設定されていることを特徴とする請求項２又は３のいずれかの予測解析システム。
【請求項５】
実行中の演算ジョブが複数の模擬運転条件下でそれぞれ１次元の定常演算を行うものである場合、この演算ジョブを中断するタイミングは、いずれかの模擬運転条件に対応する演算が終了したときに設定されていることを特徴とする請求項４の予測解析システム。
【請求項６】
実行中の演算ジョブが時系列に変化する模擬運転条件下で１次元の非定常演算を行うものである場合、この演算ジョブを中断するタイミングは、前記模擬運転条件の変化の度合いが所定以下のときに設定されていることを特徴とする請求項４の予測解析システム。
【請求項７】
実行中の演算ジョブが時系列に変化する境界条件の下で３次元の非定常演算を行うものである場合、この演算ジョブを中断するタイミングは、前記境界条件の変化の度合いが所定以下であって、且ついずれかの境界条件下における解析モデル内の流れ場の計算が終了したときに設定されていることを特徴とする請求項２又は３のいずれかの予測解析システム。
【請求項８】
ＣＦＤ演算のためのデータを一時的に記憶する一時記憶領域とそれ以外の記憶領域とを備えた記憶装置が設けられ、
ジョブ切換え手段によって実行中の演算ジョブが中断されたとき、その中断時点までの途中の演算結果が技術的な有意性を持つ場合に、この途中の演算結果を前記一時記憶領域以外の記憶領域に記憶させて、保存する途中結果保存手段を備えることを特徴とする請求項２〜７のいずれか１つの予測解析システム。
【請求項９】
エンジンの中の流体の流れをＣＦＤの適用により模擬する演算ジョブを実行して、これにより該エンジンの性能を予測するためのコンピュータシステムの制御プログラムであって、
前記演算ジョブが、１次元及び３次元の少なくとも一方のＣＦＤ解析モデルを用いて、定常状態又は非定常状態のいずれかの流れ演算を行う複数種類のものであり、
実行中か或いは実行待ちの各演算ジョブの優先度を、予め設定された基準に従って決定するジョブ優先度決定ステップと、
前記ジョブ優先度決定ステップで決定された実行待ちの演算ジョブの優先度が実行中の演算ジョブよりも高いとき、この実行中の演算ジョブを所定のタイミングで中断して、前記優先度の高い実行待ちの演算ジョブを開始させるジョブ切換えステップと、を有し、
前記実行中の演算ジョブを中断するタイミングが、少なくとも該演算ジョブにおける演算の種類とその進行状況とに対応付けて設定されている、ことを特徴とするエンジン性能の予測解析システムの制御プログラム。
【請求項１０】
ジョブ優先度決定ステップでは、演算ジョブの優先度を少なくとも演算の所要時間と進行状況とに基づいて決定する、ことを特徴とする請求項９の制御プログラム。
【請求項１１】
実行中の演算ジョブが１次元の定常又は非定常演算のいずれかを行うものである場合、ジョブ切換えステップでは、その演算により模擬するエンジンの気筒の燃焼サイクルが終了した時点で演算ジョブを中断する、ことを特徴とする請求項９又は１０のいずれか一方の制御プログラム。
【請求項１２】
実行中の演算ジョブが複数の模擬運転条件下でそれぞれ１次元の定常演算を行うものである場合、ジョブ切換えステップでは、いずれかの模擬運転条件に対応する演算が終了したときに演算ジョブを中断する、ことを特徴とする請求項１１の制御プログラム。
【請求項１３】
実行中の演算ジョブが時系列に変化する模擬運転条件下で１次元の非定常演算を行うものである場合、ジョブ切換えステップでは、前記模擬運転条件の変化の度合いが所定以下のときに演算ジョブを中断する、ことを特徴とする請求項１２の制御プログラム。
【請求項１４】
実行中の演算ジョブが時系列に変化する境界条件の下で３次元の非定常演算を行うものである場合、ジョブ切換えステップでは、前記境界条件の変化の度合いが所定以下であって、且ついずれかの境界条件下における解析モデル内の流れ場の計算が終了したときに、演算ジョブを中断することを特徴とする請求項９又は１０のいずれかの制御プログラム。
【請求項１５】
予測解析システムには、ＣＦＤ演算のためのデータを一時的に記憶する一時記憶領域とそれ以外の記憶領域とを備えた記憶装置が設けられ、
ジョブ切換えステップにおいて実行中の演算ジョブが中断されたとき、その中断時点までの途中の演算結果が技術的な有意性を持つ場合に、この途中の演算結果を前記一時記憶領域以外の記憶領域に記憶させて、保存する途中結果保存ステップをさらに有することを特徴とする請求項９〜１４のいずれか１つの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＦＤ（Computational Fluid Dynamics）を利用してエンジンの中の流体の運動を解析し、これにより当該エンジンの性能を予測するための予測解析方法、予測解析システム及びその制御プログラムに関する。
【背景技術】
【０００２】
従来より、エンジンやトランスミッション等の性能を評価するために、例えば特許文献１に開示されるような種々の計測・試験方法が提案されている。また、特許文献２には、エンジンの開発完了を待たずにパワートレインの性能を評価することのできるシミュレーションシステムが開示されている。
【０００３】
そのようなシミュレーションの技術として、エンジンの吸排気の流れや燃焼ガスの運動をＣＦＤの適用により解析し、この解析結果に基づいてエンジンの性能を予測することが一般的に行われている。すなわち、例えば吸気ポートから燃焼室へ吸い込まれる吸気の複雑な流れをコンピュータを用いた数値計算によって模擬する仮想の実験（シミュレーション）を行い、このシミュレーションの結果に基づいて例えば吸気ポートの形状を決定することにより、試作や実験の繰り返しに費やされる開発工数を削減して、効率の良い設計・開発を行うことができる。
【０００４】
特に近年ではコンピュータの計算能力の目覚ましい進歩によって、吸排気ポートや吸排気マニホルド等の複雑な形状とその内部における吸気の流れとを３次元で模擬することもできるようになったので、例えばエンジンの全体的な吸排気の流れは簡易な１次元のシミュレーションによって模擬し、解析のために特に重要な部位については３次元のシミュレーションを行って、その両方のシミュレーション結果からエンジンの性能を予測することも行われている。
【０００５】
そして、本願の発明者らは、前記の如く簡易な１次元のシミュレーションを基本としつつ、そのための物理モデル（解析モデル、数値計算モデル）の一部を必要に応じて自動で３次元のモデルに置き換えて演算することのできるシステムを提案して、既に特許出願している（例えば特願２００３−２７８２６，特願２００３−２７８４３等）。この提案例のシステムでは、１次元で求めたエンジン全体の吸排気の流れ場から自動的に３次元モデルの境界条件を決定するようにしているので、１次元及び３次元のＣＦＤ演算を並行して自動的に行うことができる。
【０００６】
また、前記のシステムでは、特に３次元ＣＦＤの膨大な演算量に対処すべく、高速のサーバコンピュータを複数台、並列に接続して、いわゆるマルチＣＰＵによる分散処理を行うとともに、それらのサーバコンピュータにネットワークを介して接続された多数のクライアントコンピュータを例えばエンジンの設計部門、開発部門、実験部門等にそれぞれ配置して、該各部門のエンジニア（ユーザ）が容易にシステムにアクセスできるようにしている。
【特許文献１】特表２００２−５２６７６２号公報
【特許文献２】特開２００２−１４８１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前記提案例のシステムにおいてユーザがシステムに投入するジョブは、上述の如く１次元や３次元のＣＦＤによってエンジンの吸排気や冷却水等の流れを演算するものである。そのように流れを模擬する空間の次元がそれぞれ異なり、しかも定常演算と非定常演算とがあることから、解析モデルの規模にもよるが、投入されるジョブの計算量はその種類によって全く異なり、例えば１次元の定常演算を行うジョブと、１次元及び３次元の非定常演算を行うジョブとでは完了までの所要時間が著しく相違することになる。
【０００８】
そのため、前記提案例のシステムにおいて、各ユーザから投入されるジョブを仮にその投入順に処理するようにした場合、例えばシステムが込んでいて、重いジョブ（例えば３次元の非定常演算のような所要時間の長いジョブ）が複数、実行中か或いは実行待ちのときには、前記１次元の定常演算のように数分から数十分程度しか要しない軽いジョブを投入したユーザが、その演算結果を得るまでに何日も待たされることがあり、甚だ不合理である。
【０００９】
そこで、例えば、実行中及び実行待ちの各ジョブにその所要時間や重要性、或いは投入頻度等に応じて優先順位を付けて、優先度の高いジョブが投入されたときには、それよりも優先度の低いジョブを実行中であっても、これを中断して優先度の高いジョブを先に実行するようにすることが考えられる。
【００１０】
しかし、そのように実行途中のジョブを中断する場合には、そのタイミングについて細心の注意を払う必要がある。これは、コンピュータによる数値計算を途中で停止させるときには、そのタイミングによって、それまでの計算の一部が無駄になったり、或いは再開後の計算の精度が低下したりするからであり、さらに、中断のタイミングによって、それまでの演算結果が解析に利用できたり、できなかったりするからである。
【００１１】
本発明は、斯かる点に鑑みてなされたものであり、その目的とするところは、それぞれ所要時間の大幅に異なる数種類のＣＦＤ演算ジョブを行うコンピュータシステムにおいて、実行中のジョブを中断するときの手順に工夫を凝らし、中断に伴う計算のやり直しや精度の低下を防止し、且つ中断されたジョブのユーザの不満を軽減して、システムの設計・開発ツールとしての実用性を向上することにある。
【課題を解決するための手段】
【００１２】
前記の目的を達成するために、本願発明では、実行中のジョブの演算の種類やその進行状況に応じて、少なくとも計算のやり直しや精度の低下を招くことがなく、さらに、可能ならば中断までの途中の演算結果を解析に利用できるような適切なタイミングでもって、当該実行中の演算ジョブを中断するようにした。
【００１３】
より具体的に、請求項１の発明は、エンジンの中の流体の流れを模擬するＣＦＤ演算ジョブをコンピュータ装置により実行させて、その演算結果に基づいてエンジンの性能を予測する予測解析方法を対象とする。そして、前記演算ジョブが、１次元及び３次元の少なくとも一方のＣＦＤ解析モデルを用いて、定常状態又は非定常状態のいずれかの流れ演算を行う複数種類のものである場合に、前記コンピュータ装置により実行中か或いは実行待ちの各演算ジョブの優先度を予め設定した基準に従って決定し、その実行待ちの演算ジョブの優先度が実行中の演算ジョブよりも高いときには、この実行中の演算ジョブを少なくともその演算の種類と進行状況とに対応する所定のタイミングで中断して、前記優先度の高い実行待ちの演算ジョブを開始ようにする。
【００１４】
前記の方法により、まず基本的に、１次元の定常から３次元の非定常まで互いに所要時間の大きく異なる数種類の演算ジョブがコンピュータ装置に投入されるときでも、これらの各演算ジョブの実行順をその優先度に応じて入れ替えることにより、例えば特に重要なジョブを優先的に処理することができ、また、比較的軽いジョブは重いジョブの処理中に適度に割り込ませて、効率良く処理することができる。
【００１５】
より具体的には、例えば演算の本来の所要時間と現在までの進行状況とに基づいて、当日の業務時間中に終了するジョブの優先度を高くすればよい。また、既に実行中の演算ジョブについては、これを中断した場合に技術的に有用な演算結果が得られない場合、その優先度を高くするのが好ましい。さらに、前記コンピュータ装置として複数ＣＰＵによる分散処理を行っている場合には、ジョブ毎に必要なＣＰＵの数が異なることも考慮して、優先度を決めることが好ましい。
【００１６】
そうして決定した優先度に応じて、実行中の演算ジョブを中断する場合には、少なくとも演算の種類とその進行状況とに対応する適切なタイミングで演算ジョブを中断する。すなわち、例えば、４サイクルエンジンのシミュレーションであれば、各気筒毎の燃焼サイクルに相当するクランク角で７２０度の範囲（以下、イテレーションともいう）の区切りで演算ジョブを中断するようにすれば、コンピュータ装置による数値計算の停止や再開に伴う誤差の発生を防いで、演算精度の低下を防止することができ、計算のやり直しが必要になることもない。
【００１７】
また、エンジンの運転状態が変化する様子を模擬する非定常運転状態のシミュレーションや、吸排気のように流れ場が大きく変動する非定常流れの計算であれば、それぞれ、運転条件や流れ場の変化が大きいときは避けて、比較的変化の小さい状態で演算ジョブを中断するのが好ましい。
【００１８】
さらに、中断までの途中の演算結果を解析に利用できるように、演算の種類及びその進行状況を考慮して、技術的な有意性の有る演算結果が得られる時点（所定のタイミング）までは計算を進め、その後に演算ジョブを中断することが好ましい。
【００１９】
次に、本願の請求項２の発明は、エンジンの中の流体の流れをＣＦＤの適用により模擬する演算ジョブを実行して、これにより該エンジンの性能を予測するためのコンピュータシステムを対象として、前記演算ジョブが、１次元及び３次元の少なくとも一方のＣＦＤ解析モデルを用いて、定常状態又は非定常状態のいずれかの流れ演算を行う複数種類のものである場合に、実行中か或いは実行待ちの各演算ジョブの優先度を予め設定された基準に従って決定するジョブ優先度決定手段と、このジョブ優先度決定手段により決定された実行待ちの演算ジョブの優先度が実行中の演算ジョブよりも高いとき、この実行中の演算ジョブを所定のタイミングで中断して、前記優先度の高い実行待ちの演算ジョブを開始させるジョブ切換え手段と、を備えるものとし、その上で、前記演算ジョブを中断するタイミングは、少なくとも該演算ジョブにおける演算の種類とその進行状況とに対応付けて設定するものとした。
【００２０】
前記のコンピュータシステムによれば、まず基本的に、互いに所要時間の大きく異なる数種類の演算ジョブが投入されるときに、その各演算ジョブの優先度がジョブ優先度決定手段により決定され、これに応じて、演算ジョブの実行がジョブ切換え手段により切換えられて、効率の良い処理が行われる。その際、実行中の演算ジョブは、少なくとも演算の種類とその進行状況とに対応する適切なタイミングで中断されるので、それに伴い計算の精度が低下したり、計算のやり直しが必要になることがなく、また、中断までの途中の演算結果を有効利用することも可能になる。
【００２１】
つまり、請求項２の発明のコンピュータシステムによれば、上述した請求項１の発明に係る予測解析方法を自動的に実行して、その作用効果を容易に得ることができる。
【００２２】
ここで、前記ジョブ優先度決定手段は、演算ジョブの優先度を少なくとも演算の所要時間と進行状況とに基づいて決定するものとするのが好ましい（請求項３の発明）。例えば、処理時間が数分程度の軽いジョブの優先度は高くすればよいし、また、処理時間が数日程度の比較的重いジョブであっても、その大部分の計算が既に終了していて、当日のユーザの作業予定時間中に終了するものについては、優先度を高くするのが好ましい。
【００２３】
また、実行中の演算ジョブを中断するタイミングとしては、例えば、その実行中の演算ジョブが１次元の定常又は非定常演算のいずれか一方を行うものである場合には、これを中断するタイミングを、模擬するエンジンの気筒の燃焼サイクルが終了した時点、即ちイテレーションの区切りとするのが好ましい（請求項４の発明）。
【００２４】
特に、前記実行中の演算ジョブが、複数の模擬運転条件下でそれぞれ１次元の定常演算を行うものである場合には、これを中断するタイミングは、いずれかの模擬運転条件に対応する演算が終了したときとするのが好ましい（請求項５の発明）。こうすれば、中断までの途中の演算結果により、少なくとも１つの模擬運転条件についての定常運転シミュレーションの結果が得られ、途中の演算結果であっても技術的有意性があるので、ユーザが解析を進める上で有効に利用することができ、ジョブを中断されたことに対するユーザの不満が軽減される。
【００２５】
一方、実行中の演算ジョブが、時系列に変化する模擬運転条件下で１次元の非定常演算を行うものである場合、これを中断するタイミングは、前記模擬運転条件の変化の度合いが所定以下のときとするのが好ましい（請求項６の発明）。すなわち、模擬運転条件が大きく変化するときには、その変化に対応するために計算の途中であっても、それまでの計算履歴に基づいて計算条件（時間刻み、緩和係数）やモデルを補正することがあり、このようなタイミングで計算を中止すると、再開後の演算の精度が大幅に低下し、再開が不能になることもあるからである。
【００２６】
また、例えばエンジンの加速運転を模擬する計算を途中で中止した場合、その途中の演算結果からは加速性能についての知見を十分に得ることはできないので、少なくとも加速運転が終わるまでは計算を継続するのが好ましく、この意味からも、模擬運転条件の変化の度合いが比較的小さいときに演算ジョブを中断するのがよい。
【００２７】
さらに、前記実行中の演算ジョブが、時系列に変化する境界条件の下で３次元の非定常演算を行うものである場合、これを中断するタイミングは、前記境界条件の変化の度合いが所定以下であって、且ついずれかの境界条件下で解析モデル内の流れ場の計算が終了したときとするのが好ましい（請求項７の発明）。
【００２８】
こうすることで、前記１次元の非定常演算の場合と同様に演算の精度低下を防止することができ、また、演算の再開が不能になることを回避できる。尚、３次元のＣＦＤ演算の場合は、最初に解析モデルの入口及び出口にそれぞれ境界条件を与えて流れ場の計算を開始するときに、その解析モデル内の流れ場が略静止していることに起因して計算上の数値振動を生じ、場合によっては計算が発散することもあるので、少なくともその数値振動が収まってモデル内の流れ場が安定するまでは計算を中止しないことが好ましい。
【００２９】
加えて、前記の予測解析システムには、ＣＦＤ演算のためにデータを一時的に記憶する一時記憶領域とそれ以外の記憶領域とを備えた記憶装置を設けるとともに、ジョブ切換え手段によって実行中の演算ジョブが中断されたとき、その中断時点までの途中の演算結果が技術的な有意性を持つ場合に、この途中の演算結果を前記一時記憶領域以外の記憶領域に記憶させて保存する途中結果保存手段を備えることが好ましい（請求項８の発明）。
【００３０】
こうすれば、中断された演算ジョブの途中の演算結果が記憶されている記憶領域には、その後の演算によるデータが上書きされることがないので、前記中断されたジョブのユーザは随時、前記途中の演算結果を参照して解析に利用することができ、利便性がさらに向上する。
【００３１】
次に、本願の請求項９の発明は、エンジンの中の流体の流れをＣＦＤの適用により模擬する演算ジョブを実行して、これにより該エンジンの性能を予測するためのコンピュータシステムの制御プログラムを対象とする。そして、前記演算ジョブが、１次元及び３次元の少なくとも一方のＣＦＤ解析モデルを用いて、定常状態又は非定常状態のいずれかの流れ演算を行う複数種類のものである場合に、実行中か或いは実行待ちの各演算ジョブの優先度を、予め設定された基準に従って決定するジョブ優先度決定ステップと、このジョブ優先度決定ステップで決定された実行待ちの演算ジョブの優先度が実行中の演算ジョブよりも高いとき、この実行中の演算ジョブを所定のタイミングで中断して、前記優先度の高い実行待ちの演算ジョブを開始させるジョブ切換えステップと、を有するものとし、その上で、前記実行中の演算ジョブを中断するタイミングが、少なくとも該演算ジョブにおける演算の種類とその進行状況とに対応付けて設定されているものとする。
【００３２】
前記の制御プログラムによってコンピュータシステムを制御することにより、このコンピュータシステムが請求項２の発明に係るエンジン性能の予測解析システムとなり、これにより、該請求項２の発明と同じ作用が得られる。
【００３３】
前記制御プログラムのジョブ優先度決定ステップでは、演算ジョブの優先度を少なくとも演算の所要時間と進行状況とに基づいて決定するのが好ましい（請求項１０の発明）。こうすれば、請求項３の発明と同じ作用が得られる。
【００３４】
また、前記ジョブ切換えステップでは、実行中の演算ジョブが１次元の定常又は非定常演算のいずれか一方を行うものである場合、その演算により模擬するエンジンの気筒の燃焼サイクルが終了した時点で演算ジョブを中断するのが好ましい（請求項１１の発明）。こうすれば、請求項４の発明と同じ作用が得られる。
【００３５】
特に、前記実行中の演算ジョブが、複数の模擬運転条件下でそれぞれ１次元の定常演算を行うものであれば、そのいずれかの模擬運転条件に対応する演算が終了したときに演算ジョブを中断するのが好ましく（請求項１２の発明）、一方、時系列に変化する模擬運転条件下で１次元の非定常演算を行うものであれば、その模擬運転条件の変化の度合いが所定以下のときに演算ジョブを中断するのが好ましい（請求項１３の発明）。こうすれば、請求項５、６の発明と同じ作用が得られる。
【００３６】
或いは、前記実行中の演算ジョブが、時系列に変化する境界条件の下で３次元の非定常演算を行うものである場合、ジョブ切換えステップでは、前記境界条件の変化の度合いが所定以下であって、且ついずれかの境界条件下における解析モデル内の流れ場の計算が終了したときに、演算ジョブを中断するのが好ましい（請求項１４の発明）。こうすれば、請求項７の発明と同じ作用が得られる。
【００３７】
さらに、前記の予測解析システムにおいてＣＦＤ演算のためのデータを一時的に記憶する一時記憶領域とそれ以外の記憶領域とを備えた記憶装置を設け、その制御プログラムには、ジョブ切換えステップにおいて実行中の演算ジョブが中断されたとき、その中断時点までの途中の演算結果が技術的な有意性を持つ場合に、この途中の演算結果を前記一時記憶領域以外の記憶領域に記憶させて、保存する途中結果保存ステップをさらに有することが好ましい（請求項１５の発明）。こうすれば、請求項８の発明と同じ作用が得られる。
【発明の効果】
【００３８】
以上、説明したように、本願発明に係るエンジン性能の予測解析方法、予測解析システム及びその制御プログラムによると、それぞれ所要時間の大幅に異なる数種類のＣＦＤ演算ジョブを行うコンピュータシステムにおいて、それら各演算ジョブを優先度に応じて切換えて実行するとともに、そのために実行中の演算ジョブを中断するときには、そのジョブの演算の種類や進行状況に対応する適切なタイミングで中断するようにしたので、中断に伴う計算のやり直しや精度の低下を防止し、且つ中断された演算ジョブのユーザの不満を軽減して、システムの設計・開発ツールとしての実用性を向上することができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【００４０】
（システムの全体構成）
図１は、本発明の実施形態に係るエンジン性能の予測解析システムＡの全体構成を示す概念図である。このシステムは、エンジンの中の流体である吸排気や冷却水等の流れを１次元乃至３次元のＣＦＤ演算によって模擬したり、気筒内の燃焼を化学反応式によって模擬したり、或いは、それららを組み合わせて行うようにしたものである。すなわち、このシステムでは、１次元流れのシミュレーション（ＣＦＤ）を行うジョブ（演算ジョブ）と、３次元流れのＣＦＤを行うジョブと、化学反応シミュレーション（化学反応ＳＩＭ）を行うジョブと、そ個別に実行できる他に、それら各シミュレーションの間の演算データの授受を自動化して、エンジンの全体的な運転シミュレーションを行うジョブも実行できるようになっている。
【００４１】
図示の符号１，１，…は、主にＣＦＤ演算を実行するコンピュータ装置であり、この実施形態では、特に３次元ＣＦＤの膨大な演算量に対応すべく高速のサーバコンピュータを複数台、並列に接続して使用している（以下、演算サーバという）。これらの各演算サーバ１は、周知の如くＲＡＭ（一時記憶領域）やＲＯＭを有し、例えばハードディスクドライブ等の記憶装置（一時記憶領域以外の記憶量域）を内蔵するとともに、それぞれディスプレイ等の画像表示装置１０が接続され、さらに、図示しないが、プリンタ等の出力装置やオペレータによる入力操作を受け付けるキーボード、マウス等の入力デバイスも接続されている。
【００４２】
また、前記各演算サーバ１，１，…の記憶装置には、少なくとも、吸排気の流れを模擬するための１次元及び３次元の各ＣＦＤプログラムと、そのための物理モデル（解析モデル、数値計算モデル）を構築する専用のプリプロセッサと、燃焼状態を模擬する化学反応シミュレーションプログラムと、それら各プログラムによるシミュレーションの結果を画像表示するための画像処理プログラムとが記憶されている。さらに、前記記憶装置には、システムに投入された複数のジョブをその負荷に応じて所定数の演算サーバ１，１，…に振り分けるとともに、それらジョブに優先順位を付けて効率良く処理するためのジョブ管理プログラムが記憶されている。
【００４３】
前記演算サーバ１，１，…は、その動作中に必要に応じて一般的な手法によりモデルデータベースＤＢ１１にアクセスすることができる。このモデルＤＢ１１には、１次元及び３次元のＣＦＤ演算に用いられるエンジンの物理モデルが格納されているとともに、その雛形がエンジンの各部位毎に種別された状態で格納されており、また、前記プリプロセッサにより新たに構築されたモデルも格納されるようになっている。尚、前記雛形というのは、例えば吸気系のサージタンク、独立吸気通路、吸気ポート等や排気系の排気ポート、排気マニホルド、ＥＧＲ通路等のように吸気や排気が流通する部位の基本的な形状を模擬し、且つその寸法、形状や材質、表面の状態、熱伝導率等の物理特性値が変更可能な部品モデルであって（以下、テンプレート部品と呼ぶ）、それらテンプレート部品を組み合わせることにより、容易にモデルを構築することができるようになっている。
【００４４】
また、前記演算サーバ１，１，…は、その動作中に必要に応じて一般的な手法によりＣＦＤ演算データベースＤＢ１２にアクセスすることができる。このＣＦＤ演算ＤＢ１２には、ＣＦＤ演算における計算の時間刻み、離散化スキーム、緩和係数等の計算条件やそれ以外にＣＦＤ演算のために用いられる種々のデータが格納されている。例えば、ＣＦＤ演算ＤＢ１２には、詳しい説明は省略するが、前記モデルＤＢ１１に格納されている３次元の物理モデルに対応付けて、その入口側及び出口側の各境界面における吸排気流の偏り分布を設定した偏り分布データが格納されている。
【００４５】
さらに、前記演算サーバ１，１，…は、その動作中に必要に応じて一般的な手法により化学反応データベースＤＢ１３にアクセスすることができる。この化学反応ＤＢ１３は、エンジンの気筒内燃焼室に充填されて燃焼に寄与する吸気中の種々のガス成分（化学種）のうちから代表的なものを、気筒内の状態を表す種々の物理量の組に対応付けて予めグループ化した状態で、格納したものである。従って、詳しくは後述するが、ＣＦＤ演算の結果として得られる気筒内の状態に応じて、これに対応するガス成分のグループを前記化学反応ＤＢ１３から読み込み、それらガス成分の化学反応をそれぞれ模擬することによって、燃焼状態を模擬することができる。
【００４６】
図示の符号２は、主にエンジンの諸元値、物理特性及び性能特性を互いに関連づけて記憶した実験データのデータベースＤＢ１４（実験ＤＢ）に接続されて、そのデータの管理を行うコンピュータ装置である（以下、実験ＤＢサーバという）。すなわち、エンジンやトランスミッションに関する過去の実験・開発の過程で蓄積されたデータは、周知の統計的解析手法により整理されて、エンジンの諸元値、その物理特性（例えば体積効率、燃焼特性、損失係数等）及びその性能特性（例えば出力、燃費、エミッション等）を互いに関連づけた実験式として、実験ＤＢ１４に格納されている。そして、この実験式に基づいて、例えばエンジンの諸元値や物理特性からその性能特性を予測することができるようになっている。
【００４７】
また、図示の符号３は、エンジンの設計を支援するための３次元ＣＡＤシステムのコンピュータ装置である（以下、設計ＣＡＤサーバという）。この設計ＣＡＤサーバ３は、機械設計や構造解析のための汎用のＣＡＤプログラムを実行するとともに、その動作中に必要に応じて、一般的な手法により設計データベースＤＢ１５（設計ＤＢ）にアクセスして、エンジンの設計ＣＡＤデータを呼び出したり、それらに変更を加えて新たに設計ＤＢ１５に格納したりすることができる。すなわち、設計ＤＢ１５には種々のエンジンの３次元の設計ＣＡＤデータが、そのエンジンの各部位毎に個別に取り出して利用できる状態で格納されている。
【００４８】
図示の符号５，５，…は、それぞれパーソナルコンピュータからなる端末（ＰＣ端末）であり、これらはエンジンやトランスミッションの設計部門、開発部門、実験部門等に複数台ずつ配置されていて、光通信ケーブル等を用いたネットワーク６によって前記演算サーバ１，１，…、実験ＤＢサーバ２、設計ＣＡＤサーバ３に双方向通信可能に接続されている。そして、該各部門のＰＣ端末５，５，…が前記ネットワーク６を介して演算サーバ１，１，…等に接続されて（ログイン）いわゆるサーバ・クライアント環境を構成し、このＰＣ端末５，５，…と主に演算サーバ１，１，…との間でコマンドやファイルが授受されることにより、シミュレーション（ジョブ）が実行されるようになっている。
【００４９】
尚、前記実験ＤＢサーバ２、設計ＣＡＤサーバ３及びＰＣ端末５にもそれぞれ演算サーバ１と同様にハードディスクドライブ等の記憶装置が内蔵され、また、ディスプレイ１０や出力装置、入力デバイス等が接続されている。
【００５０】
（シミュレーションの内容）
次に、前記コンピュータシステムＡにより実行されるシミュレーション・ジョブ（演算ジョブ）の具体的な内容を、４サイクル４気筒ガソリンエンジンの運転シミュレーションについて説明する。
【００５１】
−１次元のＣＦＤ演算−
まず、１次元のＣＦＤ演算は、例えば図２(a)に示すように、エンジンの吸気通路上流のスロットル弁thvから第１〜第４気筒ｃ1〜ｃ4の燃焼室を経て触媒コンバータcatに至る１次元ＣＦＤの物理モデルＭ１を用いて、エンジンの全体的な吸排気の流れを模擬するものである。図の例では、モデルＭ１は、サージタンクstから各気筒ｃ1〜ｃ4までの独立の吸気通路と、スロットル弁thvからサージタンクstまでの共通の吸気通路とをそれぞれ管の集合体として表し、同様に、各気筒ｃ1〜ｃ4から排気マニホルドexmの集合部までの独立排気通路と、その排気集合部から触媒コンバータcatの入口までの共通の排気通路とをそれぞれ管の集合体として表している。また、サージタンクstや第１〜第４気筒ｃ1〜ｃ4はそれぞれ容器として表している。
【００５２】
そのような１次元のモデルＭ１において管内を流れる吸気や排気の流れはいずれも圧縮性粘性流体の１次元流とみなし、その流れの状態を表す圧力ｐ、密度ρ、速度ｕ及び温度Ｔの各変数について周知の質量保存、運動量保存及びエネルギ保存の各方程式を、与えられた運転条件（模擬運転条件）の下で数値計算により解いてゆく。すなわち、前記各保存式から得られる例えば特性方程式を用いて、流れ変数の値を計算し、スロットル下流から触媒上流までに至る吸排気の流れを所定の時間刻み（例えばクランク角）毎に記述する。この際、容器についてはその内部の状態は一様で、管から流入した流体は瞬時に均一に分布すると仮定する。また、管同士や管と容器との接合部分では適当な境界条件を与え、さらに、管の曲がり具合や壁面における摩擦、熱損失等の影響も考慮することが好ましい。
【００５３】
そして、例えば、同図(b)に示すようなスロットル全開トルクカーブを得るためには、１０００ｒｐｍ全開（全負荷）、２０００ｒｐｍ全開、３０００ｒｐｍ全開、…のような複数の模擬運転条件下でそれぞれ運転条件を一定として１次元の定常演算を行い、その演算結果をまとめることにより、図示のグラフを得る。より詳しくは、前記個々の模擬運転条件の下で、吸排気の流れが全て静止している初期状態からスタートし、エンジンの各気筒の燃焼サイクルに相当するクランク角で７２０度の範囲（イテレーション）を１サイクルとして、例えば各気筒内のピストンの往復動作や吸排気の流れを模擬するサイクル計算を繰り返して、収束計算を行えばよい。このような１次元定常演算は通常、１、２台の演算サーバ１，１，…を用いて数分から数十分程度で完了する。
【００５４】
また、同図(c)に示す１０・１５モードのように、エンジンのアイドル運転、加速運転、定常運転及び減速運転が繰り返される様子を模擬する１次元の非定常演算は、前記定常演算に時間軸を追加するという考え方でよく、そのような運転状態の変化に対応して時系列に変化する模擬運転条件を与えて、前記のような１次元のシミュレーションを連続して行う。このような１次元非定常演算は通常、１、２台の演算サーバ１，１，…を用いて数時間から数日程度で完了する。
【００５５】
−３次元のＣＦＤ演算−
一方、３次元のＣＦＤ演算は、解析の目的に応じて設定される特定の部位のみを３次元で模擬するもので、例えば図３に示すような排気マニホルドのモデルＭ３を用いて、その中の排気の流れを３次元で記述する。このモデルＭ３は、各気筒毎の独立排気通路s1〜s4やその下流の共通排気通路s5の形状をそれぞれ模擬するとともに、通路内壁面を覆うように層状の領域（レイヤーＬ）を設定し、このレイヤーＬの内部とそれ以外の領域、即ちレイヤーＬよりも内側の通路空間とにそれぞれメッシュを切って、計算格子に分割したものである。
【００５６】
そして、３次元のＣＦＤでは、通路内の排気流の状態を表す各保存式を３次元で解いてゆく。すなわち、該各保存式を時間及び空間において離散化して表した例えば差分方程式を用いて、前記１次元のＣＦＤ演算や後述の化学反応ＳＩＭにより与えられる境界条件の下で通路内の流れ場を３次元で計算し、この計算を所定の時間刻み毎に繰り返すことで、時々刻々と変化する排気マニホルド内の流れの様子を３次元で記述することができる。
【００５７】
その場合に、例えば吸気ポートから気筒内に流入する定常タンブル流れや吸気ポートの定常流量係数等を調べるための定常演算では、前記３次元モデルの入口及び出口の境界条件を一定とし、該モデル内の各計算点で流速が零になっている初期状態から計算を開始して、初期の数値振動が減衰して各計算点の流れ変数値が落ち着くまで、サイクル計算を繰り返す。このような３次元定常演算は、解析モデルの規模によっても異なるが、通常は４〜８台以上の演算サーバ１，１，…を用いて行われ、数時間から数日程度で完了する。
【００５８】
また、例えば排気系の酸素濃度センサや触媒コンバータに対する排気流の偏り具合を調べるための３次元の非定常演算では、前記３次元モデルの入口側及び出口側境界面における流れの状態を前記した１次元のＣＦＤ演算により求めて、これに基づいて境界条件を時系列に変化させながら、その瞬間毎の境界条件とバランスするモデル内の流れ場を前記定常演算と同様にして求めてゆく。このような３次元の非定常演算は前記定常演算と同様に通常は４〜８台以上の演算サーバ１，１，…を用いて行われ、数日から１０数程度で完了する。
【００５９】
−１＋３次元のＣＦＤ演算−
さらに、この実施形態の予測解析システムＡでは、前記１次元の定常又は非定常演算と３次元の非定常演算とを自動で組み合わせて、両者を並行して行うこともできる。すなわち、計算の時間刻み毎に、或る瞬間のエンジン全体の吸排気の流れ場を１次元のモデルＭ１によって求め、この流れ場のデータから例えば排気マニホルドの３次元モデルＭ３に入口側及び出口側境界条件を与えて、その内部の流れ場を３次元で計算する。そして、時間刻みを進めて、同様に１次元及び３次元の流れ場の計算を繰り返すのである。
【００６０】
その際に３次元ＣＦＤの計算量を減らすために、排気マニホルドのモデルＭ３は例えば各独立吸気通路s1〜s4及び共通排気通路s5に分割できるものとしておき、１次元モデルＭ１の排気マニホルド全体を３次元のモデルＭ３に置き換えるのではなく、各気筒毎の独立排気通路については対応する気筒ｃ1〜ｃ4が排気行程にあるときにのみ３次元のモデルｓ1〜ｓ4に置き換えて、この単独の独立排気通路のモデルｓ1〜ｓ4を共通排気通路のモデルs5と組み合わせたものを用いるようにする。
【００６１】
また、１次元の流れ場のデータから３次元の境界条件を与えるときには、１次元で求められた各境界面における平均的な流れ変数ｐ，ρ，ｕ，Ｔの値を、ＤＢ１２に格納されている偏り分布データに従って適当な重み付けをして、該各境界面全体に展開すればよい。そのようにして自動でデータを受け渡しながら、全体的な吸排気の流れは簡易に１次元で模擬し、高い精度の要求される部位のみを３次元で模擬することにより、エンジンの実際の運転状態を１＋３次元で再現する精度の高いシミュレーションを、面倒な設定作業なしに容易に実現することができる。このような１＋３次元の非定常演算は通常、８台以上の演算サーバ１，１，…を用いて数日から２０日程度で完了する。
【００６２】
−化学反応シミュレーション−
次に、気筒内の燃焼状態を模擬する化学反応シミュレーションについても簡単に説明する。これは、上述の如くエンジンの吸排気等の流れを模擬するＣＦＤとは異なり、気筒内の混合気や燃焼ガスの運動は無視して、化学反応式により燃焼反応を記述するものである。具体的には、まず、上述の如き１次元乃至３次元のＣＦＤ演算によって気筒内に充填される吸気の状態、即ち圧縮行程初期の燃焼室の圧力ｐ及び温度Ｔが求められる。また、吸気流速ｕからは気筒内流動の強さが求められる。一方、混合気の空燃比や燃焼室に残留する既燃ガス（内部ＥＧＲガス）の量、気筒壁温等は、シミュレーションにおけるエンジンの運転状態（例えばエンジン負荷と回転速度等）に基づいて、予め設定されているマップから求められる。
【００６３】
そうして圧縮行程初期における燃焼室の状態を表す複数の物理量の値が求められれば、その物理量の組に対応するガス成分のグループを化学反応ＤＢ１３から読み込む。このＤＢ１３におけるガス成分グループのデータは、主に燃料として供給される種々の炭化水素と、空気中の窒素や酸素と、ＥＧＲガスに含まれる炭化水素、炭酸ガス、水蒸気等とのうちから、前記気筒の状態を表す物理量の組に対応する代表的なものを抽出して、その反応式とともに記憶したものである。
【００６４】
前記の如く抽出したグループのガス成分（化学種）に基づいて、まず、気筒の圧縮行程では、ピストンの上昇に伴い燃焼室の圧力ｐが上昇し、これに伴い温度Ｔが上昇することと、気筒壁面との熱交換によって熱を奪われることとを考慮して、そのような条件下における各ガス成分の反応を逐次、記述する。また、気筒の圧縮上死点近傍では火花点火による混合気の着火を模擬し、これによる化学反応（燃焼）の進行を、気筒の膨張行程における燃焼室容積の増大を加味しつつ膨張行程終了時点まで逐次、記述する。
【００６５】
そして、その膨張行程での化学反応シミュレーションの結果として得られる気筒内の既燃ガスの組成、合計の発熱量や気筒壁面との間の熱交換、ピストンに加えられた仕事量、該ピストンの下降に伴う燃焼室容積の拡大等に基づいて、当該気筒が排気行程に移行したときに燃焼室から排出される既燃ガス（排気）の状態を求める。このデータは上述したＣＦＤプログラムにおける排気流の初期値として用いることができる。
【００６６】
（優先度に応じたジョブ管理）
上述したように、この実施形態のコンピュータシステムＡでは、エンジンの設計部門、開発部門、実験部門等からそれぞれシミュレーション・ジョブが投入されて、１次元や３次元の定常及び非定常ＣＦＤ演算を行うものである。そして、物理モデルの規模にもよるが、該各ジョブの実行に必要とされる演算サーバ１，１，…の数（以下、ＣＰＵ数ともいう）や所要時間は演算の種類によって全く異なり、例えば１次元の定常演算を行うジョブと１次元及び３次元の非定常演算を行うジョブとでは、完了までの所要時間が著しく相違する。
【００６７】
そのため、前記の如く各部門のユーザから投入されるジョブを仮にその投入順に処理するようにした場合、例えばシステムが込んでいて、１＋３次元の非定常演算のように所要時間の長い重いジョブが複数、実行中であれば、１次元の定常演算のように数分から数十分程度しか要しない軽いジョブを投入したユーザが、その演算結果を得るまでに何日も待たされることがあり、甚だ不合理であった。
【００６８】
そこで、この実施形態では、本願発明の特徴として、前記のようにシステムＡに投入された複数のジョブを主にその負荷（計算量、所要時間）に応じて所定数の演算サーバ１，１，…に振り分けるとともに、実行中か実行待ちのジョブをリストアップして、それぞれに必要とする所要時間や重要性、或いは投入頻度等に応じて優先順位を付け、優先度の高いものから先に実行するようにしている。このため、新たに優先度の高いジョブが投入されたときには、このジョブを先に実行するために、それよりも優先度の低いジョブを中断することになる。
【００６９】
しかし、一般的に、ＣＦＤの流れ計算を区切りの悪いところで中止すると、流れ場のデータを保存したり再び読み出したりする際に誤差が発生して、計算の精度が低下する虞れがある。また、特に非定常演算の場合、その模擬運転条件や境界条件が大きく変化するときには、計算の途中であっても、それまでの計算履歴に基づいて時間刻みや緩和係数等の計算条件、或いはモデル自体を修正することがあり、このようなタイミングで計算を中止すると、その中断時点での計算データは保存することはできても、メモリやディスク等の記憶容量を考慮すれば、計算の履歴を全て保存することはできないから、計算精度が大幅に低下し、計算の再開が不能になることもあり得る。
【００７０】
さらに、通常、中断されたジョブのユーザは多かれ少なかれ不満を感じることになるが、一般にＣＦＤ演算は、これを中断するタイミングによって、それまでの途中の演算結果を解析に利用できる場合と利用できない場合とに分かれるから、この中断のタイミングによって、中断されたジョブのユーザの利便性が大幅に相違し、該ユーザの感じる不満の度合いが著しく異なるものとなるのである。
【００７１】
この点につき、この実施形態では、実行中のジョブを中断するタイミングについて細心の注意を払い、その演算の種類や進行状況に応じて、少なくとも計算のやり直しや精度の低下を招くことがなく、さらに、可能ならば中断までの途中の演算結果を解析に利用できるような適切なタイミングでもって、中断するようにしている。
【００７２】
以下、この実施形態のコンピュータシステムＡにおいて、投入される多数のジョブに優先順位を付けて実行するジョブ管理の手順を、図４〜６のフローチャートに基づいて具体的に説明する。
【００７３】
図示のフローは、演算サーバー１，１，…において、クライアントであるＰＣ端末５，５，…から新しいジョブが投入されるたびにスタートし、まずステップＳＡ１では新規のジョブに含まれるＣＦＤ演算の種類、必要なＣＰＵ数、演算条件等を読みとり、こうして読みとった演算の種類や演算条件等に基づいて、続くステップＳＡ２においてジョブを完了するまでの計算量を算出して、これを分散処理する場合の推奨ＣＰＵ数毎にジョブ完了までの所要時間を推定する。
【００７４】
続いて、ステップＳＡ３において、システムＡのジョブリスト（実行中及び実行待ちのジョブの識別情報を、その演算の種類や進捗状況等の情報とともに格納したリスト）に載っているジョブの中に、同じユーザのものがいくつあるか検索する。そして、同じユーザのジョブの数が予め設定したしきい値よりも少なければ、ステップＳＡ４に進んで前記新規のジョブの優先順位係数（優先度）を所定値、上げる一方、ジョブの数が前記設定したしきい値以上であれば、ステップＳＡ５に進んで優先順位係数を所定値、下げる。
【００７５】
前記ステップＳＡ４，ＳＡ５に続くステップＳＡ６では、前記ステップＳＡ２において推定した所要時間から、新規のジョブが当日の勤務時間中に完了するかどうか判定する。この場合の勤務時間というのは、会社の規定による勤務時間であってもよいし、残業予定を含むユーザの当日の作業予定時間であってもよい。そして、ジョブが勤務時間中に終わるのであれば、ステップＳＡ７に進んで優先順位係数を所定値、上げる一方、勤務時間中に終わらないのであれば、ステップＳＡ８に進んで優先順位係数を所定値、下げる。
【００７６】
尚、前記ステップＳＡ６の判定は、実行中のジョブが中断されたり、再開されたりすることを考慮して、新規のジョブだけでなく、実行中及び実行待ちの全てのジョブについて少なくとも１日に１回は同様の判断を行い、随時、優先順位係数を変更、更新するのが好ましい。その場合、実行中のジョブについては本来の所要時間と現在時刻までの進行状況とに基づいて、予定完了時期を判断する。
【００７７】
前記ステップＳＡ７，ＳＡ８に続くステップＳＡ９では、今度は、前記ステッップＳＡ６と同様にしてジョブが明日の朝までに完了するかどうか判定し、明日の朝までに終わるのであれば、ステップＳＡ１０に進んで優先順位係数を所定値、上げる一方、明日の朝までに終わらないのであれば、ステップＳＡ１１に進んで優先順位係数を所定値、下げる。尚、さらにその週の終わりまでにジョブが完了するかどうかを判断基準に加えてもよい。
【００７８】
続いて、ステップＳＡ１２では、主に演算の種類に基づいて、ジョブを中断した場合に得られる途中の演算結果に技術的な有意性があるかどうか（途中結果に意味があるか）判定する。そして、実行中のジョブについては、これを中断した場合に技術的に有用な演算結果が得られない場合、ステップＳＡ１３に進んで優先順位係数を所定値、上げる一方、中断しても技術的に有用な演算結果が得られるのであれば、ステップＳＡ１４に進んで優先順位係数を所定値、下げる。つまり、完了しなくては意味のないものについては、原則として中断せずに早く完了させる。
【００７９】
続いて、ステップＳＡ１５では、ジョブに「至急ジョブ制約」が付いているかどうか判定し、至急の制約があればステップＳＡ１６に進んで、優先順位係数を所定値、上げる一方、至急の制約がなければステップＳＡ１７に進んで、優先順位係数を所定値、下げる。つまり、特段の重要性があるジョブは優先順位を上げて早く実行する。
【００８０】
そして、前記ステップＳＡ１６，ＳＡ１７に続くステップＳＡ１８では、前記各ステップにおいて値を上げ下げした優先順位係数を反映するようにジョブリストを更新してから、図５に示すジョブ切替えのフローに進む。このように、主にジョブの完了予定や重要性を考慮して優先順位を付けて処理することで、１次元の定常から３次元の非定常まで所要時間の大きく異なる複数種類のジョブが投入されるものにおいても、それらを効率良く処理することができる。
【００８１】
前記の如くジョブリストを更新した後に、図５に示すフローのステップＳＡ１９では、そのジョブリストをサーチして実行中及び実行待ちの各ジョブの優先度を読みとり、続くステップＳＡ２０において、前記新規のジョブの優先度が実行中のいずれかのジョブよりも高いかどうか判定する（この判定の対象は、必要なＣＰＵ数が新規ジョブと同じものに限定してもよいし、それよりも多いＣＰＵ数を必要とするものを含んでもよい）。
【００８２】
そして、新規ジョブの優先度が実行中のいずれのジョブと比べても同じか又は低いときにはステップＳＡ２１に進み、その新規ジョブを実行待ちとして、リターンする一方、新規ジョブの優先度がいずれかのジョブよりも高ければ、ステップＳＡ２２に進んで、その優先度の低い実行中のジョブを中断して、新規のジョブを開始する。すなわち、ジョブ管理プログラムのメインルーチンから以下に詳述するサブルーチンへ中断指令が送られ、これを受けて開始されるサブルーチンによって、ジョブの演算種類及びその進行状況に応じて予め設定されたタイミングでジョブが中断された後に、中断信号がメインフローに戻される。
【００８３】
続いて、ステップＳＡ２３では、前記の中断したジョブのそれまでの演算結果に技術的な有意性があるかどうか判定し、有意性があればステップＳＡ２４に進んで、ジョブを中断したことを示す中断情報と、そのジョブを中断するまでの途中の演算結果とをＰＣ端末５，５，…に表示させて、しかる後にリターンする。一方、前記途中の演算結果に技術的な有意性がなければステップＳＡ２５に進んで、前記中断情報のみをＰＣ端末５，５，…に表示させ、しかる後にリターンする。
【００８４】
−ジョブ中断の手順−
次に前記ステップＳＡ２２〜ＳＡ２５において実行中のジョブを中断するときの手順を、より詳しく図６に示すサブルーチンのフローチャートに基づいて説明すると、スタート後のステップＳＢ１でメインフローからの中断指令を受け入れた後に、ステップＳＢ２において、中断するジョブで現在、行っている演算の種類を１次元定常、１次元非定常、３次元定常及び３次元非定常のいずれであるか判別する（ジョブが１次元及び３次元のＣＦＤ演算を組合わせたものであっても、或る時点で行っている演算は前記４つのうちのいずれか１つである）。
【００８５】
そして、まず第１に、前記実行中のジョブが１次元の定常演算であれば、ステップＳＢ３に進んで、計算状況を監視し、ステップＳＢ４において計算がイテレーションの区切りに来たかどうか、また、ステップＳＢ５においていずれかの模擬運転条件に対応する演算が終了したかどうか（例えば図２(b)においていずれかの回転速度についての収束計算を終了したかどうか、即ち回転速度の区切りかどうか）判定して、そのいずれかの判定がＮＯならばステップＳＢ３に戻る一方、両方の判定がＹＥＳになれば、ステップＳＢ６に進む。
【００８６】
ステップＳＢ６ではジョブを中断させ、ＰＣ端末５，５，…において中断情報（ジョブの中断を示す情報）を出力させる。続いてステップＳＢ７では、ジョブの中断時点での流れ場のデータや演算条件等を含み、その中断時点から計算を再開することのできるリスタート用のモデルを作成して、ハードディスク等に保存する。続いてステップＳＢ８では、中断までの途中の演算結果も前記ＰＣ端末５，５，…に表示させるとともに、演算サーバ１，１，…のハードディスクに記憶させる。そして、ステップＳＢ９に進んでジョブの中断を示す中断信号をメインフローに返送して、制御終了となる（エンド）。
【００８７】
つまり、１次元の定常演算は、基本的に、エンジンの所定の気筒の燃焼サイクルに相当するクランク角で７２０度の範囲（イテレーション）の区切りでジョブを中断することにより、演算精度の低下を防止するようにしている。また、図２(b)の回転速度のような模擬運転条件毎の区切りで中断することで、それまでの途中の演算結果から少なくとも１つの模擬運転条件についてシミュレーションの結果が得られ、ユーザが解析を進める上で有効に利用することができるので、ジョブの中断に対するユーザの不満を軽減できる。
【００８８】
２番目に、実行中のジョブが、エンジンの模擬運転条件を時系列に変化させながら行う１次元の非定常演算であると判別した場合は（ＳＢ２）、ステップＳＢ１０に進んで計算状況を監視し、続くステップＳＢ１１において計算がイテレーションの区切りに来たかどうか判定する。この判定がＮＯであれば前記ステップＳＢ１０に戻る一方、判定がＹＥＳであればステップＳＢ１２に進んで、予め設定した時間の区切り（例えば１秒ごとにデータを保存するようにしている場合、その秒毎の区切り）に来たかどうか判定する。
【００８９】
前記ステップＳＢ１２において秒の区切りに来ていないと判定すれば（ＮＯ）、前記ステップＳＢ１０に戻る一方、秒の区切りに来たと判定すれば（ＹＥＳ）ステップＳＢ１３に進み、今度は前記模擬運転条件の変化の度合いが所定以下かどうか（例えば図２(c)に示す１０．１５モードにおいて、エンジンの減速運転終了後の定常運転状態を模擬するモードの区切りに来たかどうか）判定する。そして、この判定がＮＯならば前記ステップＳＢ１０に戻る一方、判定がＹＥＳになれば、前記ステップＳＢ６〜ＳＢ９に進んでジョブを中断した後に、制御終了となる。
【００９０】
すなわち、非定常演算の場合は、まず基本的に前記定常演算の場合と同様にイテレーションの区切りで演算を中断するとともに、模擬運転条件の変化に対応するために計算途中であっても計算条件やモデルの補正を行うことを考慮して、このような補正のタイミングを避けて、例えばモードの区切りのような定常運転状態で演算を中断するようにする。これにより、演算精度の低下を防止することができ、ジョブの再開が不能になることもない。
【００９１】
また、通常、演算結果データを保存する場合、メモリやディスクの記憶容量を考慮すれば、微小時間刻みで行う計算結果をその全ての時間刻みについて保存するのではなく、前記時間刻みとは別に設定した時間間隔（或いはクランク角）毎のデータを保存することになるので、この時間間隔の区切り（前記秒の区切り等）で計算を中止するようにすれば、それまでの計算が無駄になることがない。
【００９２】
さらに、前記１０．１５モードのようにアイドル運転、加速運転、定常運転及び減速運転が繰り返される様子を模擬する場合には、例えば加速運転の途中で計算を中止すると、その途中の演算結果からは加速性能についての知見を十分に得ることはできないので、少なくとも加速運転が終わるまでは計算を継続するのが好ましく、この意味からもモードの区切りでジョブを中断するようにしている。
【００９３】
３番目に、実行中のジョブが、境界条件を時系列に変化させながら行う３次元の非定常演算であると判別した場合は（ＳＢ２）、ステップＳＢ１４に進んで計算状況を監視し、続くステップＳＢ１５において、或る瞬間の入口側及び出口側境界条件に対応する３次元モデル全体の流れ場の計算が終了したかどうか（計算サイクルの区切りかどうか）判定し、続くステップＳＢ１６では、その入口側及び出口側境界条件の変化の度合いがいずれも所定以下であるかどうか判定する（境界条件の変化小？）。
【００９４】
そして、いずれかの判定がＮＯならばステップＳＢ１４に戻る一方、両方の判定がＹＥＳになれば、前記ステップＳＢ６〜ＳＢ９に進んでジョブを中断した後に、制御終了となる。
【００９５】
つまり、３次元の非定常演算の場合は、或る瞬間の流れ場を求めるための計算量がかない多いので、この計算が終了するまではジョブを中断しないのが好ましく、また、上記１次元の場合と同様に境界条件の変化が比較的小さな状況で計算を中断することで、演算の精度低下を防止することができる。
【００９６】
尚、実行中のジョブが３次元の定常演算であると判別した場合は（ＳＢ２）、前記のような計算状況の監視等は行わずにステップＳＢ１７に進んでジョブを中断させ、ＰＣ端末５，５，…に中断情報を出力させる。続いてステップＳＢ１８において、リスタート用のモデルを作成してハードディスク等に保存した後に、ステップＳＢ９に進んでジョブの中断を示す中断信号をメインフローに返送して、制御終了となる。このように直ちにジョブを中断するのは、３次元の定常演算は殆どの場合、途中の演算結果に技術的有意性がないことによるが、その分、ジョブの優先度は高くなっているので、中断されることは極めて少ない。
【００９７】
前記図４に示すフロー（ステップＳＡ１〜ＳＡ１８）が全体として、実行中か或いは実行待ちの各ジョブの優先度を予め設定された基準に従って決定するジョブ優先度決定ステップに対応し、また、図５のフローのステップＳＡ２２と図６のフローのステップＳＢ２〜ＳＢ７，ＳＢ１０〜ＳＢ１８とが、実行中のジョブを所定のタイミングで中断して、それよりも優先度の高い実行待ちのジョブを開始させるジョブ切換えステップに対応している。
【００９８】
さらに、前記図６のフローのステップＳＢ８が、前記ジョブ切換えステップにおいて実行中のジョブが中断されたとき、その中断時点までの途中の演算結果が技術的な有意性を持つ場合に、これを演算サーバ１，１，…のハードディスク等に記憶させて、保存する途中結果保存ステップに対応している。
【００９９】
そして、この実施形態の予測解析システムＡでは、前記演算サーバ１，１，…において前記図４のフローのステップＳＡ１〜ＳＡ１８が、また、図５のフローのステップＳＡ２２及び図６のフローのステップＳＢ２〜ＳＢ７，ＳＢ１０〜ＳＢ１８が、さらに、図６のフローのステップＳＢ８が、それぞれ実行されることにより、この演算サーバ１，１，…が、ジョブ優先度決定手段１ａと、ジョブ切換え手段１ｂと、途中結果保存手段１ｃとを構成する。
【０１００】
したがって、この実施形態に係るエンジン性能の予測解析システムＡによると、１次元の定常演算から３次元の非定常演算、さらには化学反応シミュレーションまで、それぞれ所要時間の大幅に異なる数種類のＣＦＤ演算ジョブがランダムに投入されるコンピュータシステムＡにおいて、それらのジョブの優先度をその重要性、途中結果の有意性、予定完了時期等に基づいて決定し、こうして決定した優先度に応じて実行順序を入れ替えることにより、特に重要なジョブを優先的に処理することができ、また、比較的軽いジョブは重いジョブの処理中に適度に割り込ませて、効率良く処理することができる。
【０１０１】
さらに、実行中のジョブを中断する場合には、上述したように１次元の定常・非定常、３次元の定常・非定常といった演算の種類に応じて、それぞれ中断決定時点のジョブの進行状況を考慮した適切なタイミングで演算を中止するようにしており、これにより、中断に伴う数値計算のやり直しや計算精度の低下を防止することができるとともに、中断されるまでの途中の演算結果を解析に利用できるようにして、中断されたジョブのユーザの不満を軽減することができる。よって、システムの設計・開発ツールとしての実用性は極めて高い。
【０１０２】
（他の実施形態）
尚、本発明は前記実施形態に限定されるものではなく、その他の種々の実施形態を包含するものである。すなわち、例えば前記実施形態では図６のフローに示すように、３次元の定常演算を中断する場合には計算状況の監視を行わず、直ちに中断するようにしているが、これに限らず、最初にモデルの入口側及び出口側にそれぞれ境界条件を与えて流れ場の計算を開始した後、流れ場が落ち着くまで所定回数は計算を継続し、その間は中断しないようにしてもよい。
【０１０３】
これは、前記のように最初に境界条件を与えて計算を開始するときには、３次元モデル内の流れ場が略静止していることに起因して計算上の数値振動を生じ、場合によっては計算が発散することもあるので、少なくともその数値振動が収まってモデル内の流れ場が安定するまでは、即ち、少なくともモデルがきちんとできていることが分かるまでは、計算を中止しないのが好ましいからである。
【０１０４】
また、前記実施形態では、主にＣＦＤ演算ジョブについて具体的なジョブ管理の仕方を説明したが、化学反応ＳＩＭについても優先度を付けたり、適切なタイミングで中断することが好ましい。反対に、化学反応シミュレーションは行わずに、１次元及び３次元のＣＦＤのみによってエンジンの吸排気の流れを模擬する場合にも、本願発明を適用することができる。
【０１０５】
また、前記実施形態では、４サイクルエンジンについてのシミュレーションを行う場合について説明したが、これに限ることはなく、２サイクルエンジンやロータリエンジンについてもシミュレーションを行えることは言うまでもない。
【産業上の利用可能性】
【０１０６】
以上のように、本発明に係るエンジン性能の予測解析システム等は、ＣＦＤの適用によりエンジンの中の流体の流れを解析するコンピュータシステムにおいて、互いに処理時間の大幅に異なる複数のＣＦＤ演算ジョブがランダムに投入されても、それらを優先度に応じて効率よく処理することができ、ユーザの利便性も高いので、特にエンジンの設計、開発、実験等の各部門に跨る大規模なシステムに好適なものである。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態に係るエンジン性能の予測解析システムＡの全体構成図である。
【図２】(a)はＣＦＤ演算のための１次元モデルの模式図であり、(b)(c)はそれぞれ定常演算及び非定常演算の結果や模擬運転条件を示す説明図である。
【図３】ＣＦＤ演算のための３次元モデルの一例を示す模式図である。
【図４】ジョブに優先順位を付ける手順のフローチャート図である。
【図５】優先度に応じてジョブを切換える手順のフローチャート図である。
【図６】演算の種類に応じて適切なタイミングでジョブを中断するサブルーチンのフローチャート図である。
【符号の説明】
【０１０８】
Ａ          エンジン性能の予測解析システム
Ｍ１        １次元ＣＦＤ解析モデル
Ｍ３，ｓ1〜ｓ5    ３次元ＣＦＤ解析モデル
１，１，…  演算サーバ
１ａ        ジョブ優先度決定手段
１ｂ        ジョブ切換え手段
１ｃ        途中結果保存手段
【図１】
2005257517.tif 000003
【図２】
2005257517.tif 000004
【図３】
2005257517.tif 000005
【図４】
2005257517.tif 000006
【図５】
2005257517.tif 000007
【図６】
2005257517.tif 000008