JPH03263174A - プログラム生成方法およびそのための領域分割方法 - Google Patents

プログラム生成方法およびそのための領域分割方法

Info

Publication number
JPH03263174A
JPH03263174A JP2061145A JP6114590A JPH03263174A JP H03263174 A JPH03263174 A JP H03263174A JP 2061145 A JP2061145 A JP 2061145A JP 6114590 A JP6114590 A JP 6114590A JP H03263174 A JPH03263174 A JP H03263174A
Authority
JP
Japan
Prior art keywords
equation
discrete
partial differential
variables
upwind
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2061145A
Other languages
English (en)
Inventor
Miyuki Saji
佐治 みゆき
Michiru Yamabe
山部 みちる
Chisato Konno
金野 千里
Nobuhiro Iogi
五百木 伸洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2061145A priority Critical patent/JPH03263174A/ja
Priority to US07/668,257 priority patent/US5450568A/en
Publication of JPH03263174A publication Critical patent/JPH03263174A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
〔産業上の利用分野〕 本発明は、任意の偏微分方程式で表わされる物理モデル
を対象として、差分法による数値計算プログラムを自動
的に生成できる方法に関し、特に流体解析に好適なプロ
グラム生成方法およびそのための領域分割方法に関する
【従来の技術】
ディジタル形電子計算機の発達に伴って、数値計算を実
用上差し支えない精度のもとに近似的に解く方法が種々
提案されてきた。そのいずれの場合も、偏微分方程式の
微分を有限の差分て置き換えた差分方程式を解くもので
ある。これは、差分法と呼ばれる。この方法によると、
空間は格子(通常は正方格子)に細分され、空間の点は
格子点で代表される。このように、偏微分方程式の数値
計算手法においては、偏微分方程式が解析領域で成立す
る場合、その解析領域に格子をはり、その格子点上で偏
微分方程式を離散化し、この離散式を解くことにより数
値解を求めている。ここで、離散式とは、偏微分方程式
において、微分演算子を展開し得る離散点における変数
の関係式であって、この微分演算子の展開を離散化と呼
ぶ。 一方、差分法を実行するための離散式をコード化してプ
ログラムを作成する方法については、例えば、情報処理
学会rコンピュータシステム」シンポジウム、佐用他「
数値シミュレーション語DEQSOIJに記載されてい
る。これによれば、内点ては偏微分方程式を、また境界
では境界条件式を、それぞれテーラ−展開により求めた
離散化公式に従って離散式を導いて、それらの離散式を
コード化することによりプログラムを生成している。 従来、提案された差分法によるプログラムの自動生成方
法としては、例えば、特願昭61−54762号明細書
および図面に記載の「数値化計算の自動化装置」、ある
いは特願昭63−139.147号明細書および図面に
記載の「プログラム生成方法」がある。また、論文とし
ては、J、ofCone、 Phys、62.66−8
2(1986)、 R、I 、 I ssa″TheC
omputation  orCompressibl
e  and  I ncompressjble  
Recjrculating  Flow  by  
a  N。 n−1terative  Implicit  5c
he@e 、あるいは「日本機械学会論文集、fi B
−52−477(昭6l−5)、河合他著“高レイノル
ズ数における3次風上差分法の比較”がある。 上記提案の特願昭61−54762号明細書および図面
によれば、差分法によるプログラムの自動生成方法は、
偏微分方程式、解析領域、格子情報、変数、定数を入力
とすると、変数および定数の評価点(離散点)を格子点
上にとり、その離散点を囲むコントロールボリュームに
より物理類の保存則を満たす離散化を行って、計算プロ
グラムを自動生成していた。ここで、コントロールボリ
ュームとは、解析領域を#散点の各座標点を中心として
微小領域に分割し、この微小領域を用いて処理するため
のものである。つまり、コントロールボリュームの考え
方は、メツシュに入力する量とメツシュから出力する量
が等しくなければならず、またこの点の値は小領域の中
で積分した値であり、最終的に小領域の面積で割算した
値であると考える。この考え方により、これら小領域の
面積の総和が全体の総和と等しくなる。 しかしながら、上記方法では、流体問題に対するシミュ
レーションプログラムは支配方程式の数理的は性質上生
成できなかった。何故ならば、上記方法では流体計算に
必要なスタガードメツシュ、および風上差分の各数値計
算手法が含まれていないからである。 ここで、スタガードメツシュとは、変数の離散点を格子
点とは別の位置に配置して、離散式を求める手法であり
、1965年に発表されて以来、スタンダードなものと
なっており、上記従来文献等でも使用されている。 また、風上差分とは、微分演算子の離散化において、流
れの上流側の離散値の割合を大きくとり、下流側の離散
値の割合を小さくとる方法であって、安定に解を求める
ための手法である。 風上差分は、前述の文献「日本機械学会論文集1B−5
2−477(昭61−5月)河合他著“高レイノルズ数
における3次風上差分法の比較”に記載されているよう
に、各種の風上方法がある。そして、この風上差分も、
また流体計算においてはスタンダードなものとなってい
る。 〔発明が解決しようとする課題) このように、従来のプログラム生成方法では。 流体解析について下記のような問題点があった。 (i)第1の問題点として、従来のプログラム生成方法
では、格子点上にしか離散点をとれなかったため、流体
解析問題で通常用いられているスタガードメツシュに対
応できない、つまり、流体のシミュレーションをとる場
合、種々の箇所に変数が位置するが、従来の方法では、
格子点上のみの配置しか取扱えないため、格子の中間点
上に離散点をとる方法が適用できず、解が収束しなかっ
た。 (U)第2の問題点として、従来のプログラム生成方法
では、微分演算子の離散化方法が上流側も下流側も同一
の割合で離散値をとるという通常の中心差分しか用意し
ていなかった。つまり、流体解析問題で通常用いられる
風上差分は、サポートされていなかった。なお、メツシ
ュを細かくとればこれに対応できるが、現在の方法では
メツシュを粗くとらざるを得ない。また、通常行われて
いる風上差分の離散化は、コントロールボリューム界面
の値を風上側に評価する方法とは考えられておらず、一
般には微分演算子をそのまま風上差分の離散式に置き換
える方法がとられていた。すなわち、従来の方法では、
前述の風上差分の方法、つまり風上側で離散値の割合を
大きくとる方法は考えておらず、中心差分で行う方法を
とっていた。 その結果、境界付近でコントロールボリューム間の出入
りが同一であるという保証がなかった。コントロールボ
リュームの考え方では、そのメツシュの入力量と出力量
が等しくなければならない。 第23図は、風上差分法の説明図である。 例えば、第23図において、河村・桑原の3次精度風上
差分を用いる場合でも、境界に近いコントロールボリュ
ーム641では、精度を落して1次精度風上差分を用い
、内側のコントロールボリューム642でのみ、河村・
桑原の3次精度風上差分を用いる。その離散化は次のよ
うになる。 ・ ・ ・ ・ ・ (2) 上式(1)が1次精度風上差分を用いたものであり、(
2)が3次精度風上差分を用いたものであるため、コン
トロールボリューム境面643における物理量の出入り
量は等しくならない。 (iii)第3の問題点として、従来のプログラム生成
方法では、微分演算子は用意されたa / a X 。 a/ay、a/azと、その組み合わせの形でしか記述
できず、また、それらの微分演算子の離散化方法を中心
差分としていたため、ユーザが部分的に離散化精度を向
上させることはできなかった。 すなわち、従来の方法では、テーラ−展開により求めた
離散式を使用している。この場合、内点では中心差分を
、境界では片側差分を、それぞれ用いており、中心差分
の方が近似精度は高いが、境界で中心差分を用いると離
散参照点が領域外にはみ出てしまう。 (1v)第4の問題点として、偏微分方程式が、“未知
数=偏微分方程式”という代入文形式の場合、従来の方
法では、必ずしも求める回答が正しくならないことであ
る。計算プログラムでは、格子点上の値を計算する場合
、同一の計算を行う格子点について、DOループを構成
する。代入文で左辺変数が右辺にも用いられていると、
代入文を離散化した時に参照する点の中に旧値と新値が
混在してしまう。また、DOループを構成する順序によ
っても、各参照点が旧値を用いるか、新値を用いるかが
異なることから、常に同じ結果が得られないという問題
があった。 (V)第5の問題点として、行列解法を用いて偏微分方
程式を解く場合、従来では、行列の形にかかわらず、2
次元では5点差分用、3次元では7点差分用の行列解決
を用いる計算プログラムを生成していたため、必ずしも
その行列の形に適合した解法を用いていたとは言えない
という問題があった。 (vi)ffI6の問題点として、従来のプログラム生
成方法では、解析領域の内部に物質の境界がある場合に
ついて、何の配慮もなされていなかったので、この問題
には対応できなかった。 (vii)第7の問題点として、従来のプログラム生成
方法では、標準の離散化を行う偏微分方程式に対してD
Oループを生成する方法しかなかったので、風上差分や
ユーザの定義した非標準の微分演算子が用いられている
偏微分方程式には対応できなかった。 (vi)第8の問題点として、従来のプログラム生成方
法では、離散式生成処理の最後に、離散化後の偏微分方
程式の右辺各項に対して、コントロールボリュームの面
積・体積による割り算を施こしているため、演算数が多
くなり、式長も長くなり、かつ割り算による誤差の混入
が多くなるという問題があった。 本発明の第1の目的は、これら従来の課題を解決するも
のであって、流体解析で用いられるスタガードメツシュ
を用いるとともに、風上差分を用いた計算プログラムを
自動生成することができるプログラム生成方法を提供す
ることにある。 また、本発明の第2の目的は、物理現象に近い言語の記
述により流体解析を可能にし、その際に偏微分方程式の
持つ保存則を満足させる離散化を行うことができるプロ
グラム生成方法を提供することにある。 また、本発明の第3の目的は、ユーザが定義した微分演
算子に対しても、保存則を満たす離散化を行うことがで
き、また計算結果がそのプログラムの生成順序によらず
同一となることを保証するプログラム生成方法を提供す
ることにある。 また、本発明の第4の目的は、行列解法を用いて解く偏
微分方程式に対しては、自動的に最適な行列解法を選択
して効率のよい計算プログラムを生成することができ、
また内部境界条件に対するプログラムの自動生成を実現
し、内部境界条件が必要な流体の速成問題への適用も可
能なプログラム生成方法を提供することにある。 また、本発明の第5の目的は、風上差分やユザ定義の微
分演算子を用いた偏微分方程式に対しても、計算効率の
よいプログラムを生成でき、かつ代入文で表わされる偏
微分方程式に対しても効率のよいプログラムを生成でき
るプログラム生成方法を提供することにある。 〔課題を解決するための手段J 上記目的を達成するため、本発明のプログラム生成方法
は、(イ)物理現象が起こっている空間領域の形状情報
、形状の格子分割情報、物理現象を数値的に解析するた
めに必要な変数および定数、変数および定数を用いた偏
微分方程式、初期値、境界条件、物性値の条件および計
算手順を含む数式情報を表わす高水準の問題向き言語に
よる記述の他に、変数および定数の値の評価点である離
散点が格子点上かまたは格子点の中間点上にあるかを示
すスタガード情報を入力して、格子と変数および定数の
離散点との相対的な位置関係を求め、位置関係を用いて
解析領域内の偏微分方程式中の微分演算子を展開して離
散式を生成し、離散式をコード化して数値シミュレーシ
ョンプログラムを生成することに特徴がある。また、(
ロ)上記離散式の生成処理では、偏微分方程式の形式か
ら偏微分方程式の解決対象である変数を検出し、解法対
象変数の離散点の位置より偏微分方程式を離散化するた
めの微小領域の位置を決定することにも特徴がある。ま
た、(ハ)Jll散式の生成処理では、解析領域を形状
および境界条件により小領域に分割し、分割された小領
域に対してその偏微分方程式の微小領域の位置からDO
ループ範囲を決定する場合に、スタガード変数を含む偏
微分方程式に対しても、DOループ数の少なく、かつル
ープ長の最も長いDOループを張ることにも特徴がある
。 また、(ニ)離散式の生成処理では、コントロールボリ
ュームの中心点と偏微分方程式中に使用されるスタガー
ド変数およびスタガード定数を含む各変数および定数の
離散点の相対位置関係を求め、求めた関係を用いてスタ
ガード変数およびスタガード定数を含む偏微分方程式に
対して、コントロールボリュームの中心を基準位置とす
る離散式を生成することにも特徴がある。また、(ホ)
離散式の生成処理では、スタガード変数およびスタガー
ド定数を含む偏微分方程式に対してコントロールボリュ
ームの中心を基型位置とする相対位置における離散式を
求め、格子点と微小領域の位置関係を求め、その位置関
係を用いて離散式から本来の解析領域での位置である絶
対位置における離散式を生成することにも特徴がある。 また、(へ)離散化の生成処理では、スタガード変数お
よびスタガド定数を含む偏微分方程式を離散化し、その
結果の離散式中の変数および定数の参照点が変数および
定数の離散点上にない場合には、格子点と変数および定
数との位置関係を求めて、求められた位置関係から該変
数および定数に対する加重平均を用いた補間式を選択し
、補間式を適用して変数および定数の離散点を参照する
離散式を生成することにも特徴がある。また、(ト)離
散化の生成方法では、スタガード変数およびスタガード
定数を含む偏微分方程式を離散化する場合に、偏微分方
程式の境界勾配項に境界条件を取り込み、取り込みが不
可能なスタガード変数に対しては、偏微分方程式を離散
化して得られる離散式中の解析領域外を参照する項を境
界条件を単独で離散化して得られる項の評価式で置き換
えて、偏微分方程式の離散式を生成することにも特徴が
ある。また、(チ)内部境界条件を入力すると、各内部
境界条件を取り込んで離散化し、該離散化により得られ
た離散式をコード化して数値シミュレーションプログラ
ムを生成することにも特徴がある。また、(す)内部境
界条件を入力した後の処理では、境界条件ないし内部境
界条件でノーマル方向を示す記号を含む式が存在した場
合、解析領域の位置により自動的に該ノーマル方向を検
出し、境界条件ないし内部境界条件を該ノーマル方向を
用いた式に書き替え、書き替えられた境界条件を偏微分
方程式にに取り込んで、離散化を行うことにも特徴があ
る。また、(ヌ)偏微分方程式から得られる離散式を行
列解法を用いて解く場合に、偏微分方程式の形式より離
散式中の解法対象変数の参照点の位置を求めて、求めら
れた位置関係から性能上最適な行列解法を選択して、選
択された行列解法を用いて離散式を解き、離散式をコー
ド化して数値シミュレーションプログラムを生成するこ
とにも特徴がある。また、(ル)偏微分方程式中の流れ
を解析する運動方程式の記述から、運動方程式中で方向
毎の1次微分の形の移流項を自動検出し、移流項から流
れを表わす変数の名称と、流れの上流側の離散値の割合
を大きく下流側の離散値の割合を小さく取るための風上
差分を施こす変数の名称を検出して、検出された移流項
に対して風上差分を施こすことにより、数値シミュレー
ションプログラムを生成することにも特徴がある。また
、(ワ)移流項に対して風上差分を施こす処理では、運
動方程式に対して、流れの方向と該流れを表わす変数の
名称と風上差分を施こす変数の名称と風上差分の種類を
指定することにより、流れの上流方向の定義点を用いて
近似し、かつ界面での物理量の入出力量が同一になるよ
うにすることにより、指定の風上差分を施こした離散化
コードを生成することにも特徴がある。また、(力)移
流項に対して風上差分を施こす処理では、コントロール
ボリューム界面での風上差分の評価式を保持しており、
偏微分方程式をコントロールボリューム界面にて部分積
分した結果に対して風上差分の評価式を施こして、離散
化コードを生成することにも特徴がある。また、(ヨ)
移流項に対して風上差分を施こす処理では、風上差分を
施こす方向の境界とコントロールボリュームの界面との
距離を求め、距離に応じての風上評価式の複数種別のう
ちの1つを自動的に決定することにも特徴がある。また
(夕)移流項に対して風上差分を施こす処理では、コン
トロールボリューム界面で用いる風上評価式の種別を参
照して1つの式を選択し、偏微分方程式中で風上差分を
施こす項から流れを表わす変数の係数を求め、該係数お
よび流れを表わす変数、風上差分を施こす変数を風上評
価式に埋め込むことにより、風上差分を施こした離散化
コードを生成することにも特徴がある。また、(し)ユ
ーザによる非標準の微分演算子名称とその演算子に対す
る展開式とその展開式が成立する領域の指定と、偏微分
方程式における演算子の使用から、偏微分方程式に対す
る離散化コードを生成することにも特徴がある。また、
(ソ)非標準の微分演算子と、その展開式を保持し、偏
微分方程式で非標準の微分演算子が1階微分に用いられ
ているか、2階微分の内側に用いられているかを調べ、
1階微分に用いられる場合には非標準の微分演算子を展
開式に置き換え、2階微分の内側に用いられる場合には
偏微分方程式を微小領域で部分積分した結果に対して非
標準の微分演算子を展開式に置き換えることにより、離
散化コードを生成することにも特徴がある。また、(ツ
)非標準の微分演算子が2階微分の内側に用いられてい
る場合、微小領域の解析対象領域の位置と非標準の微分
演算子の成立する領域の記述から、コントロールボリュ
ーム界面で成立する非標準の微分演算子の展開式を求め
、2階微分を微小領域で部分積分した結果に現われる非
標準の微分演算子を展開式で置き換えることによリ5離
散化コードを生成することにも特徴がある。 (ネ)偏微分方程式を風上差分を施こす項、非標準の微
分演算子を用いる項、およびそれ以外の項に分け、各々
に対してDOループ数が最も少なく、かつDOループ長
が最も長くなるようにDOルプ範囲を決定することにも
特徴がある。また、(す)!微分方程式を微小領域で積
分し、境界領域の境界勾配項に境界条件を取り込み、勾
配積を差分式に置き換えることにより、離散式を生成す
る方法において、偏微分方程式に境界条件を取り込んだ
式に対して、その式を風上差分を施こす項に分け、用け
られた各項に対して離散式を生成することにも特徴があ
る。また、(う)偏微分方程式のうち、風上差分を施こ
す偏微分方程式の風上項に対するDOループを決定する
際に、解析対象領域の形状、境界条件、風上差分の種類
から、形状を領域に分割して、高次風上差分を用いる場
合、風上差分を施こす方向に対して境界の1メツシュ内
側の領域を分割し、境界の1メツシュ内側の小領域どう
しで成立する偏微分方程式が同じ小領域を統合し、境界
の1メツシュ内側の小領域に対して境界条件により分割
することにより、風上項の離散化コードが同一となる小
領域を求めることにも特徴がある。また、本発明の領域
分割方法は、(ム)ユーザが定義した非標準の微分演算
子が用いられる場合、その項に対するDOループを決定
する際に、非標準の微分演算子の展開式が成立する領域
の指定、解析対象領域の形状、および非標準の微分演算
子が用いられている項の形から、形状により解析対象領
域を分割し、非標準の微分演算子が2次微分の内側に用
いられる場合にのみ、コントロールボリュームの上端と
下端界面で用いる展開式が異なる領域を分割することに
より、非標準の微分演算子を用いた項の離散式が同一と
なる小領域を求めることにも特徴がある。また、(つ)
偏微分方程式のうちの代入文に対し、左辺変数が参照さ
れる変数として右辺にも用いられる場合、参照される変
数または更新される変数をワークメモリに置き換え、代
入文を中間語上に生成して、その代入文に対して通常の
離散化を施こして、参照される変数と更新される変数の
不一致を回避することにも特徴がある。さらに、())
コントロールボリュームの体積または面積による割り算
を、偏微分方程式の各項に施こすことなく、偏微分方程
式の式全体に1回だけ施こすことにも特徴がある。 〔作  用〕 本発明においては、(イ)ユーザが格子点からのずれを
定義するだけで、スタガード変数・定数を用いた偏微分
方程式の離散式を生成することができ、その格子点から
のずれを考慮した離散化を行うことができる。これによ
り、ユーザは最少限の指定でスタガード変数・定数を用
いた計算プログラムを得ることができる。(ロ)境界の
解析対象領域に対する位置によりノーマル方向を判断す
るので、境界条件のノーマルベクトル方向を自動的に検
出することができ、ユーザは方向を意識することなく、
境界条件を記述することができる。(ハ)行列の非ゼロ
要素が行列のどこに分布するかを調べることにより、任
意の行列用であるか、5点差分用であるか等を判断する
ので、行列の形式に適合する解法を選択することができ
、計算プログラムを実行する際に無駄が生じない。 (ニ)偏微分方程式中の項の形式により、風上差分の施
こし方を判断するので、流れを表わす偏微分方程式に対
して自動的に風上差分を施こす項とその施こし方を検出
でき、偏微分方程式を記述するだけで風上差分を施こし
た計算プログラムを得ることができる。(ホ)移流項を
コントロールボリュームで部分積分した結果に対し、風
上差分式を用いて評価するので、偏微分方程式に風上差
分を施こすことができ、偏微分方程式の持つ保存則を損
うことなく、風上差分を施こした計算プログラムを得る
ことができる。(へ)2階微分の内側に用いられた場合
、コントロールボリュームで部分積分した結果に対して
展開を行うので、偏微分方程式の持つ保存則を損うこと
なく、ユーザ定義の非標準の微分演算子の展開を行うこ
とができる。 (ト)偏微分方程式をコントロールボリュームで部分積
分し、境界条件を取り込んだ後に偏微分方程式の項の種
別毎に分けるので、正しい境界条件の取り込みが可能で
ある。(チ)風上差分を施こす座標方向毎に風上差分用
の領域分割を行うので、各風上差分を施こす項毎に最も
DOループ長の大きいDOループを生成することができ
る。 (す)微分演算子が用いられている項の形式により、1
次微分項に用いられている場合には、演算子の展開式が
異なる領域で、2次微分の内側に用いられる場合には、
コントロールボリュームの上端・下端の展開式が異なる
領域で、それぞれ分割することによって、ユーザが定義
した非標準の微分演算子を用いる積用にDOループの範
囲を求めることができるので、最もDOループ長の大き
いDOループを生成することができる。(ヌ)代入文の
値を一旦ワーク変数に代入し、そのワーク変数値を元の
代入文の左辺変数に戻す文を生成することにより、ワー
ク変数を用いて代入文を生成するので、ユーザが代入文
を旧位と新値を用いて記述したものと同一の計算結果が
得られる。(ル)代入式右辺全体に対して5面積と体積
による割り存が施こされることにより、コントロールボ
リュームの面積と体積による割り算を出力時に行うこと
ができるので、計算プログラムの演算量が少なくてすむ
。 〔実施例] 以下、本発明の実施例を、図面により詳細に説明する。 fit図は、本発明の全体の流れを説明する機能ブロッ
ク図である。 各実施例に先立って、処理対象とする機能の概要を説明
することにする。本発明によるプログラム生成処理(0
102)は、物理現象が起こっている空間領域の形状情
報および偏微分方程式等の物理現象に近い言語の記述(
0101)から、FORTRANの計算プログラム(0
103)を生成する処理過程である。すなわち、プログ
ラム生成処理(OI O2)は、物理現象の言語記述(
0101)を読み込み、構文解析処理(0106)によ
り中間語(0104)を生成する。一方、標準テーブル
(0105)には、風上評価テーブル(011,1>と
積分テーブル(OI l 2)が格納されている。中間
語(0104)およびプログラム生成処理(OI O2
)の標準テーブル(0105)に保持された内容を、コ
ード生成処理(0107)に読み込む。コード生成処理
(0107)は、言語の記述(0101)で与えられた
偏微分方程式の記述から離散式生成処理(0204)に
より離散式を生成し、その離散式からFORTRANの
計算プログラム生成処理(0110)により計算プログ
ラム(0103)を生成する。なお、風上評価テーブル
(0111)には、風上差分の名称(1吹精度、2次精
度)と領域の種別(下端側境界、内点、上端側境界)と
風上差分の評価式が記憶されており、また積分テーブル
(O112)には、各辺の離散式が記憶されている。 第2図は、本発明の第1の実施例を示すもので、格子点
以外に離散点を持つ変数であるスタガード変数を含む偏
微分方程式に対する離散化を行うプログラム生成方法の
機能ブロック図である。 このプログラム生成処理(0200)は、入力(020
1)として偏微分方程式(0202)、解析領域(02
16)、解析領域に対する格子分割(0217)、境界
条件(0218)、および偏微分方程式中に使用される
変数・定数の離散点の位置(0219)を与え、出力と
して、これらの入力(0201)に対する計算プログラ
ム(0202)を得る。 データの流れとしては、入力(0201)の1つである
偏微分方程式(0212)がどのような中間データを経
て、出力である計算プログラム(0202)になるかに
着目して説明する。なお、各処理のさらに詳細な説明は
、そのブロック内に記載された図面番号の図面に詐述さ
れている。 プログラム生成処理(0200)では、先ず、離散式の
生成(0204)を行う。そのために、先ず偏微分方程
式に対するコントロールボリュームの位置決定を行い(
0205)、コントロールボリュームテーブル(070
5)を求める。次に、同−離散式が成立するように解析
領域を分割して(0206)、小領域格納テーブル(3
301)を得る。 そして、その各小領域毎に(0207)、偏微分方程式
(0212)に対する離散式(0215)を求める。そ
のために、先ずコントロールボリュームの中心を基準位
置として偏微分方程式を部分積分、境界条件の取り込み
、微分演算子の展開の順序で離散化しく0208)、相
対位置離散式(0213)を得る。次に、この相対位置
離散式(0213)を、本来の解析領域での位置におけ
る離散式となるようにインデックスを戻しく0209)
、絶対位置離散式(0214)を得る。次に、絶対位置
離散式(0214)中に現われた各変数、定数の参照点
が各変数・定数の離散点でない場合には、補間を行う(
0210)。これには、加重平均による補間と境界条件
による補間の2種類の補間があり、各離散点を参照する
ような離散式(0215)を生成する。このような手順
で離散式(0215)を生成すると(0204)、最後
に、各小領域で生成した離散式(0215)から計算プ
ログラム(0202)を生成する(0211)。 第3図(1)〜(3)は、スタガード変数(値の評価点
が格子上にない変数)を含む偏微分方程式(以下、スタ
ガード系の偏微分方程式と呼ぶ)に対する離散化の原理
を示す説明図である。 (1)は変数の離散点、(2)はコントロールボリュー
ムの位置、(3)は離散化についての説明図である。 最初に、第3図(1)により、変数の離散点について説
明する。スタガード変数の場合、変数の値の評価点であ
る離散点は、格子点上だけでなく、格子線の中点および
、さらにその間の中点上にも配置されることがある。す
なわち、スタガード系の場合、離散点は変数毎に異なっ
ている。 例えば、第3図(1)の0301に示すように、変数り
は格子点上にあり、変数Uはy軸上の格子点の中点上、
変数VはX軸上の格子点の中点上。 変数pはUとVの中間上に、それぞれ離散点がある。こ
れらのうち、u*”+  pがスタガード変数であって
、2次元の場合、格子点上と合わせてこれら4点が配置
可能な全離散点である。 次に、第3図(2)により、スタガード変数を含む偏微
分方程式を離散化する場合のコントロールボリュームの
位置について説明する。 スタガード変数を含む偏微分方程式の場合、偏微分方程
式の解法対象である変数の離散点の位置によって、コン
トロールボリュームの位置が決定される。第3図(2)
では、0302に示すように、変数L+ u+ vr 
pが各々解法対象の変数であるときのコントロールボリ
ュームの位置である。これらの位置を中心とした正方形
の各小領域(破線で示す)がコントロールボリュームで
ある。 次に、第3図(3)により、離散化について説明する。 各コントロールボリュームにおいて、偏微分方程式を離
散化する。その場合、式中の各変数について、各離散点
を参照するようにコントロールボリューム方式により離
散化を行う。このコントロールボリューム方式による離
散化については、従来と同じ原理に基づいており、偏微
分方程式をコントロールボリューム内における収支を示
す式とし、式中の各変数について各離散点を参照する離
散式で示すように離散化する。その基本的手順も従来の
方法と同じであって、304に示すように、部分積分、
境界条件の取り込み、残った微分演算子の展開、補間の
順序で行う。例えば、0303に示す偏微分方程式を図
に示すコントロールボリュームで離散化する場合には、 dX(u−dx(v))=0 ・・・・・(3)これを
部分積分すると、 u、◆dx(v)・a+u、・dx(v)すbu、・d
x(v)・n−u、 ・dx(v)・b=0 ・・・・
・・・・・・・・・・・・(4)これは、境界のコント
ロールボリュームではないので、境界条件の取り込み処
理を行うことなく、次に残った微分演算子を展開する。 △X         △X △X          △X ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・(5)得
られた展開式(5)では、補間の必要はないため、上式
(5)が目的の離散式となる。 第4図(a)(b)は、本発明の離散化処理の特徴を示
す説明図である。 本発明の離散化処理の特徴としては、(j)変数離散点
の決定(4001)と、(il)コントロールボリュー
ムの位置の決定(4004)と、(iii)離散化基準
点(4007)と、(iv )部分積分(4010)と
、(v)補間(4013)とがある。 先ず、変数離散点の決定(4001)については、原理
の説明でも述べたように、従来は変数の値の評価点であ
る離散点は常に格子点上にあったが、本発明では、スタ
ガード系の揚台、離散点は格子点上のみならず格子線上
の中点およびさらにその中点に配置が可能であり、その
位置は変数毎に異なっている。本発明では、この変数離
散点の決定(4001)は、ユーザの指定により行われ
る。 偏微分方程式dx(u−dx(v))=0に対して、従
来は変数u、vとも格子点が離散点であったが(400
3)、スタガード系では、例えばユーザはUをXの位置
、■を△の位置等と離散点を指定することが可能である
(4002)。 次に、コントロールボリュームの位置決定(4004)
については、従来のコントロールボリュームは常に変数
の離散点である格子点を中心とする位置を取っていたが
(4006)、本発明では、変数毎に離散点の位置が異
なるため、偏微分方程式毎にコントロールボリュームの
位置を決定する処理が必要になる。具体的には、偏微分
方程式の解法対象である変数の離散点を中心とするよう
に位置を決定する(4005)。図に示すように、従来
は、格子点上の■であったが、スタガード系では、例え
ば先の偏微分方程式を離散点が△であるVについて解く
とすれば、コントロールボリュムは横軸の中間点△Vを
中心とする小領域となる。 次に、離散化処理に関して、第4図(b)により3つの
特徴を示す。従来のコントロールボリューム方式による
主な離散化処理手順は、原理に示した通り、部分積分、
境界条件取り込み、微分演算子のM開、および補間とな
っている。本発明でも、この基本的な手順は同じである
が、本発明の処理として次の3つの点が異なっている。 先ず、基準点(4007)については、従来はコントロ
ールボリュームの位置が常に格子点を中心としていたた
め、格子点を離散化時に用いるインデックスの基準位置
として離散化することができた(4009)。しかし、
本発明では、偏微分方程式毎にコントロールボリューム
の位置が異なる。 従って、コントロールボリュームの中心を基準点として
離散化した後、最終的には、本来の解析領域に対応する
離散式となるようにインデックスを操作する処理が必要
となる(4008)。すなわち、■に示すように、最初
は離散化過程でのインデックスijとし、最終的には■
に示すように、lJをi +(+/2)jにしてインデ
ックスを戻す。 次に1部分積分(4010)については、従来は変数の
離散点とコントロールボリュームの位置の関係が常に同
じであったため1部分積分時のコントロールボリューム
各辺の代表点は常に辺の中点に決定していた(4012
に示す0点)。これに対して、本発明では、偏微分方程
式中に使用されている各変数の離散点とコントロールボ
リュームの位置の関係が一意には定まらないため、部分
積分時のコントロールボリューム各辺の代表点は偏微分
方程式毎に各変数に対して決定する処理が必要となる(
4011)。この場合、代表点の位置は、コントロール
ボリューム各辺の中点または端点となる。例えば、偏微
分方程式dx(u−dx(φ))=0に対して、従来の
部分積分では、右辺は下式%式% (6) これに対して、スタガード系の場合、各変数の離散点が
図のような例のときには、φの代表点はコントロールボ
リューム辺の中点、Uの代表点は端点となり、部分積分
後の式は下式(7)となる。 u4・dx(φ)、・a+u1dx(φ)、−b−u、
・dx(φ)、・a −u、・d x(φ)1b=0・
・・・・・・・・(7) 次に、補間(4013)については、従来はコントロー
ルボリューム方式に従って部分積分、境界条件の取り込
み、微分演算子の展開を、それぞれ行った結果、なお離
散式中の各変数の参照点が格子点上にない場合には、加
重平均により補間を実施していた(4015)。これに
対して、本発明でも、同一の理山により補間を実施する
が、従来の加重平均による補間に追加して、スタガード
変数に対しては境界条件による補間を実施する(401
4)。 以上が、新規変更処理を行う点である。 次に、第2図のスタガード系を含む偏微分方程式に対す
る離散化を実施するプログラム生成処理の入力および出
力を説明する。 第5図は、プログラム生成処理の入力例を示す図である
。 第5図において、0501は第2図の解析領域(021
6)、格子(021?)、偏微分方程式(02]2)、
境界条件(0218)を示したものであり、0502は
使用変数の離散点位置(0219)を示したものである
。また、0503〜0509はこれらに対応する入力デ
ータを示すものである。 REGION文、FREGION文(0503)は、解
析領域の範囲を示し、またM E S H文(0504
)はその解析領域をどのように格子に分割するかを示し
ている。ここでは、X軸は25刻みでO〜50まで分割
し、Y軸も同じように分割すること・・を規定している
。VAR文(0505)は、使用する変数がu、■、p
であること、5TAGGARD文(0506)はこれら
の変数の離散点の位置がどこであるかを示す。例えば、
変数Vは、離散点が格子点上からX方向に半格子分ずれ
た位置にあると指示されている(0502)、BCON
D文(0507)は、境界条件を示している。 そして、S CHE M E文(0508)以下が計算
手順である。そのうち、5olve(0509)で指示
した式が解くべき偏微分方程式である。これは、この偏
微分方程式を変数■について、行列解法を用いて解くこ
とを指示している。なお、式中の記号dx(φ)は微分
演算子(aφ/aX)を示している。 第6図は、プログラム生成処理の出力例を示す図である
。 これは、第2図のプログラム生成処理の出力(0202
)の例であって、第5図の入力例に対応した生成for
tranプログラムの一部である。 具体的には、第5図の入力例の(0501)の図におけ
るy=Qの領域(実線で囲まれたV=Oの部分)、つま
り第6図の(0601)の示す部分における計算プログ
ラムが(0602)である。 第5図に示すように、入力で偏微分方程式を行列解法を
用いて変数Vに対して解くことを指示しているため、生
成プログラムではその行列情報を生成している。第6図
に示す計算プログラム(0602)は、DOループと、
コード群からなる。 第7図は、本発明の離散式の生成中の第1の処理(コン
トロールボリュームの位置決定)を示す機能ブロック図
である。 偏微分方程式に対するコントロールボリュームの位置決
定(0205)は、第2図のプログラム生成処理(02
00)の最初の処理である。偏微分方程式の形状を見て
、コントロールボリュームの位置がどこであるかを決定
する。この処理(0205)への入力は、第2図のプロ
グラム生成(0200)の入力(0201)のうち、偏
微分方程式(0212)と偏微分方程式に使用される変
数・定数の位置(0219)の2つである。 出力は、その偏微分方程式のコントロールボリュームの
位置を示すコントロールボリュームテーブル(0705
)である。先ず、このコントロールボリュームテーブル
(0705)について、詳述する。 第8図は、コントロールボリュームテーブルが持つ情報
を示す図である。 第8図では、それぞれOを付した点を解法対象変数の離
散点とした場合におけるコントロールボリュームの位置
を点線で示しである。コントロールボリュームの位置決
定処理(0205)では、例えば2次元の場合、(08
01)〜(0804)の4つの情報のいずれかを持つコ
ントロールボリュムテーブル(0705)を出力する。 (a)は格子点上に離散点がある場合、(b)は横軸上
の中間点に離散点がある場合、(c)は縦軸上の中間点
に離散点がある場合、(d)は格子の中央部に離散点が
ある場合を、それぞれテーブルに含んでいる。 第7図に戻って、コントロールボリュームテーブル(0
705)の生成手順(0205)を説明する。 最初に、入力データ偏微分方程式(0212)より、こ
の偏微分方程式の解決対象となる変数を決定する(07
02)。この処理(0702)は、従来の規則に従って
、偏微分方程式の形式より求める。この出力を、解法対
象変数(0706)とする。 次に、この解法対象変数(0706)を入力するととも
に、最初の入力データである偏微分方程式に使用される
変数・定数の離散点の位置(0219)を入力すること
により、解法対象変数の離散点を見つける処理を行う(
0703)。この処理の出力は、解法対象変数の離散点
の位置(0707)である。 最後に、求められた解法対象変数の離散点の位置(07
07)から、その離散点がコントロールボリュームの中
心となるようにコントロールボリュームの位置を決定す
る処理を行い(0704)、その処理の出力としてコン
トロールボリュームテーブル(0705)を生成する。 第9図(a−1)(a−2)(b−1)(b−2)は、
第2図における次の処理(lfi域分割処理)の説明図
である。 この処理(0206)では、同−離散式が成立するよう
に解析領域を分割する。この領域分割処理(0206)
の入力は、第2図のプログラム生成処理(0200)へ
の人力(0201)のうち、解析領域(0216)と、
解析領域に対する格子分割(0217)と、偏微分方程
式に使用される変数・定数の位置(0219)、および
処理(0205)の出力であるコントロールボリューム
テーブル(0705)である。また、この処理(020
6)の出力は、同−離散式の成立する小領域のDOルー
プ範囲が含まれた小領域テーブル(3301)である。 先ず、第9図(a−l)に示すように、形状に対する領
域の分割を行う(0903)。これは、従来と同じ方法
による分割であって、例えば(0904)で示すように
、内点(実線の方形で囲まれた部分)、境界(周囲の実
線上に存在する部分)、かど点(点で表わされる部分)
に分割する。次に、DOループ範囲の修正を行う(09
06)。これにより。 小領域格納テーブル(0905)にD○ループ範囲を格
納する。この小領域格納テーブル(0905)は、未だ
修正が済んでいないので、中間結果出力にすぎない。 次に、この中間結果である小領域格納テーブル(090
5)に対して、DOループ範囲の修正を行う(0906
)。 第9図(b−1)(b−2)は、D○ループ範囲の修正
処理の一例を示す図である。 (b−1)は、第9図の上部境界における形状分割(0
903)の処理結果である。これは、コントロールボリ
ュームの中心が格子点上にある場合であって、従来と同
じDOループ範囲である。コントロールボリュームの位
置がずれると、同じ形状でもD○ループ範囲が異なる。 例えば、対象変数の離散点が格子の中央にある場合のD
Oループ範囲は、(b−2)に示すようになる。すなわ
ち、形状で分割した結果に対し、コントロールボリュー
ムの中心がどこにあるかによって、DOループ範囲のイ
ンデックスを修正する必要がある。<b−1)から(b
−2)にインデックスを修正する場合には、インデック
ス値をマイナスlすればよい。 第9図(a−1)に戻って、このDOループ範囲の修正
(0906)について述べる。先ず、境界の場合で(0
907)、DOループ範囲の上側が外部に接触する場合
(0908)、上側のインデックスをマイナス1する(
0909)。例えば、第9図(b−1)において、イン
デックスlOの領域は。 この処理によりインデックス9に修正される。次に、内
点の場合(0907)、DOループ範囲の上側が境界の
ときには(0910)、上側のインデックスをマイナス
1する(0911)。例えば、第9図(b−1)におい
て、インデックス8〜9の領域は、インデックス8に修
正される。 これによって、スタガード変数を含む偏微分方程式につ
いても、領域分割が可能になる。そして、この処理結果
を小領域格納テーブル(3301)に出力する。 小領域格納テーブル(3301)の構成は、第9図(a
−2)に示すように、各小領域に対して各方向毎に、D
Oループ範囲が格納されている。 次に、第2図において、分割した小領域格納テーブル(
3301)の各小領域毎に、離散式を生成する処理につ
いて述べる。 第10図(a)(b)(c)は、それぞれコントロール
ボリュームの中心を基準位置として偏微分方程式を離散
化する処理と、その処理で用いられる位置関係テーブル
の説明図である。 この離散化処理(0208)の入力は、第2図のプログ
ラム生成処理(0200)の入力(0201)のうち、
偏微分方程式(0212)と、境界条件(0218)と
、偏微分方程式に使用される変数・定数の離散点の位置
(0219)と、処理(0205)の出力であるコント
ロールボリュームテーブル(0705)である。 また、この処理(0208)の出力は、その偏微分方程
式のコントロールボリュームの中心を基準位置として偏
微分方程式を離散化した結果である相対位f[ff11
11散式(02]3)および後の処理に用い、られる位
置関係テーブル(1005)である。 離散化処理(0208)の処理手順は、次の通りである
。先ず、入力データである偏微分方程式(0212)に
使用される変数・定数の離散点の位置(0219)と、
コントロールボリュームテーブル(0705)より、コ
ントロールボリュームの中心と各変数・定数の離散点の
位置関係を求めて(1001)、位置関係テーブル(1
005)を生成する。 位置関係テーブル(1005)は、第1O図(b)に示
すように、コントロールボリュームの中心を基準位置と
した場合、各変数・定数の離散点がこの基準位置からど
れだけずれているか、例えば、Xのプラス方向に半格子
分だけずれている等の情報が格納されている。例えば、
第10図(C)に示すように、変数・定数の離散点A、
B、Cに対して50の点がコントロールボリュームの中
心であって場合には、第1O図(b)に示すテーブル内
容となる。すなわち、Aは中心であるから、ずれはxl
y、X方向ともに0であり、nは○の位置からX方向と
X方向にそれぞれ1/2ずつずれており、Cは○の位置
からX方向にはOであるが、X方向にはl/2だけずれ
ている。 次に、第10図(a)に戻って、偏微分方程式(02]
2)を部分積分する(1002)。これを行うためには
、先に求めた位置関係テーブル(1005)と、システ
ムが最初から保持している積分テーブル(0112)と
を用いて、入ツノデータ偏微分方程式(0212)に対
して部分積分する。偏微分方程式を部分積分した結果は
、積分離散式(lO07)と呼ばれる。 第11図(A)(B)は、部分積分処理(1002)の
詳細説明図である。 偏微分方程式(0212)を、先の処理(1001)で
求めた位置関係テーブル(1005)と、システムが最
初から保持していた積分テーブル(0112)とを用い
て部分積分し、積分離散式(+007)を生成する。そ
のための手順は、以下の通りである。 先ず、微分演算子の方向によりコントロールボリューム
辺より積分する辺を選択する。例えば、2次元でaXで
あれば、y軸に並行な辺を積分辺として選択する(+1
01)。具体的には、図(1107)の実線部が選択さ
れる。 次に、積分する各辺について、その項に含まれる全変数
・定数の離散点との位置関係を1位置関係テーブル(1
005)から求める。例えば、2次元でy軸に並行な辺
であれば、X方向のずれをチエツクする(+102)。 偏微分方程式の項のdx(u−dx(v))(1106
)においては、(1108)で示すように、△に離散点
がある変数Vにはずれがないが、Xに離散点のあるUは
ずれがあるとチエツクを行う。 次に、上記チエツクを行った結果、辺の分割を決定する
。項中にずれがある変数があれば、そのずれ方向に辺を
分割する(1103)、この例では、(+109)に示
すように、項に含まれる変数Uはずれがあるため、辺A
はaとbに、辺BはCとdに、それぞれ分割する。 次に、上記結果をもとにして、積分離散式を決定する。 積分テーブル(1110)をたどって添字を決定する。 積分テーブル(1110)はシステムが最初から保持し
ているテーブルであって、第11図(B)に示すように
、各辺axp、AxEの離散式を保持している。ただし
、a〜pについては、ずれのある変数に対する離散式で
ある。すなわち、(a)(b)の各辺については、(d
)に示すように、それぞれi±(1/2)、j±(1/
2)等のずれを持つ変数の離散式を持っている。△cy
h、△Cy1.ΔCyは、(C)に示すような辺の長さ
を示している。 第11図(A)に戻って、部分積分処理の説明を続行す
る。先に述べたように、積分テーブル(1110)の離
散式はずれがある変数に対するものであるため、ずれの
ない変数については、離散式中のずれ方向の添字の±l
/2を削除する(1104)。例えば、(1110)に
示すように、辺aの積分式i +I72. j +I/
2* c h yを積分テーブル(0112)よりたど
り見つける。ずれのない変数φは、この式をそのまま用
い、ずれのある変数Uは、添字の±l/2を削除するの
で5その結果、辺aに対するd x(u −d x(v
))の積分離散式は、次のような式となる。 u (i十+7z、 J ) * d x (φ(1+
l/2. j +l/2)*chy・・・・・・・・・
・・・・(8)なお、離散式決定時に境界辺での部分積
分項に対し¥マークを付け、境界条件取り込み処理に備
えて、境界における微分演算項と、スタガード変数に¥
マークを付ける(1105)。例えば、(1111)に
示すように、辺c、dが境界の場合には、辺Cのdx(
u(v))の積分離散式は、次のような式となる。 u(i−1/2.j)*¥dx(φ(i −1/2. 
j + 1/2))*chy・・・・・・・・・・・・
・(9)そして、上記部分積分処理(1002)により
積分離散式を生成する。ここまでが、第10図(a)に
おける部分積分(1002)の説明である。そして、第
1O図(a)の次の処理に移る。 次に、境界条件の取り込み処理(1003)を行う。こ
れは、先の部分積分(1002)の出力である積分離散
式(1007)の境界勾配項に入力データである境界条
件(0218)を取り込むことにより、境界条件マツチ
ング離散式(+008)を生成する。この取り込み方法
は、積分離散式(1007)中に¥マークで指示された
境界勾配項および境界での値を、境界条件(0218)
により順次置き換えることにより実施する。 次に、勾配演算子離散化(1004)処理を行う。 これは、先の境界条件取り込み(1003)処理の出力
である境界条件マツチング離散式(1008)に残って
いる微分演算子である勾配微分演算子を従来と同じよう
に展開しく1004)、相対位置離散式(0213)を
生成する。 以上が第2図(a)の離散化処理(0208)の説明で
ある。 次に、第2図の解析領域の位置におけるインデックスに
戻す処理(0209)について詳述する。 第12図(a)(b)は、解析領域の位置のインデック
スに戻す処理の最初と最後の状態図である。 (a)の(1201)は、生成fortranL上での
解析領域の位置におけるインデックスである。このよう
に、点線で囲まれた組は、同一のインデックスを持って
いる(ここでは、全てがIJのインデックス)。第2図
に示すように、このインデックスを持つ離散式を、絶対
位置離散式(02+4)と呼ぶ。入力となる相対位置離
散式(0213)は、例えば(1202)に示すように
、コントロールボリュームの中心を(i、j)とする相
対的なインデックスである。 コノ処理(0209)は、(1202)のインデックス
を(1201)のインデックスに戻る処理である。 第13図は、解析領域の位置のインデックスに戻す処理
の説明図である。 この処理(0209)の入力は相対位置離散式(021
3)と位置関係テーブル(1005)であり、出力は相
対位置離散式(0213)のインデックスを修正した絶
対位置離散式(0214)である。 処理手順は、相対位置離散式中に現われる各変数(使用
変数)に対して(1301)、位置関係テーブル(l 
OO5)を参照することにより、各方向毎に操作を行う
(1302)。そして、先ずコントロールボリュームの
中心が格子上にある場合(1303)で、かつ使用変数
の離散点が格子上にないとき(+304)、使用変数の
インデックスに72を加える(1305)。また、逆に
、コントロールボリュームの中心が格子上にない場合(
1306)、使用変数の離散点が格子上にあるときには
(1307)、使用変数のインデックスに+1/2を加
える(1308)。なお、以下では絶対離散式中の添字
は、全て大文字で示す。これによって、インデックスの
修正が行われる。 以上がインデックスを戻す処理(0209)である。次
に、第2図のプログラム生成処理(0200)の離散式
生成処理(0204)中の最後の処理である補間処理(
0210)について詳述する。 補間処理(0210)は、が1述のように、それまでの
処理(0205〜0209)で生成した絶対位置離散式
(0214)の中で各変数・定数がその変数・定数の離
散点を参照していない場合、離散点を参照するように絶
対位置離散式(0214)を補間する処理である。 第14図は、補間処理の流れを示す図である。 補間処理(0210)の入力は、境界条件(0218)
と(0209)の出力である絶対位置離散式(02]4
)であり、出力は絶対位置離散式(0214)を補間し
た離散式(0215)である。 処理の流れは、先ず各変数・定数がその変数・定数の離
散点を参照していない場合(1401)、初めに加重平
均による補間を行う(1402)。 第15図は、加重平均による補間処理の流れ図である。 加重平均による補間(1402)の手順としては、先ず
絶対位置離散式をたどり(1501)、添字I。 J、Kに1/2が付加された変数、定数があれば、つま
り参照点が各離散点上になければ(1502)、X+ 
y+Z各方向について(1503)、次のような補間を
行う。すなわち、その変数の離散点が格子上にあれば(
1504)、一般変数公式による補間を行う(1505
)。これは、第15図に示すように、変数φの離散点が
格子上1.T+1.参照点が1+]/2の場合、I+1
/2はIと++1の中間に該当するため、φ(I+1/
2)はφ(1)とφ(1+1)の値を加えて2で割るこ
とにより補間する。これとは逆に、その変数の離散点が
格子上になければ(1504)、スタガード公式による
補間を行う(1506)。これは、第15図に示すよう
に、変数φの離遠点が格子上でないI’、I’+1.参
照点が格子上で1’+l/2の場合、I′+l/2は■
′とI’+1の△x(T)と△x(T+1)の比の位置
にあるため、φ(1)とφ(++1)の値を△x(1+
1 )と△x(1)の比で掛は合わせ、加えて2で割る
ことにより補間する。なお、添字に±1/2の付加され
ない変数・定数については(1508)、操作を加えな
い(1509)。 以上が、第14図における加重平均による補間(140
2)であり、この補間を行った結果を添字解消式(+ 
405)とする。 第14図において、次にこの添字解消式(1405)に
対して、境界条件の離散値による補間を行う(1403
)。 第16図は、境界条件の離散値による補間処理の詳細流
れ図である。 この補間(1403)では、境界上に離散点を持たない
変数に対して、従来の境界条件の取り込み処理(第10
図の(1003))では対応できない境界条件が与えら
れていた場合に、この境界条件を値として偏微分方程式
にフィードバックする。この補間方法は、精度の低下し
ないスタガード変数に対してのみ実施する。 補間処理(+403)の入力は、添字解消式(1405
)と、境界条件(0218)であり、出力は添字解消式
(1405)に補間処理を行った離散式(0215)で
ある。 処理の流れは、先ず添字解消式(1405)中に境界外
を参照しているスタガード値があった場合(1601)
、その境界条件があるか否かを見て(1602)、なけ
ればエラーを出力する(1603)、また、あれば(+
604)、以下の処理な行う(1605,1606,1
607)。 例を示して説明する。(1608)に示すように、添字
1−1の部分が領域の外である場合には、添字解消式(
1609)、つまり −(v(1,J) −v(1−1,J))/CX I 
*CYJにおいて境界外のスタガード値v(I−1,J
)を、境界条件v=o(1610)で補間する例を考え
る。 そのためには、先ず境界条件を離散化する(1605)
。その結果、(+611)の過程を経て、(vIJ十V
l−1J)/2=O・ ・・ ・ ・ ・ ・(!O)
を得る。次に、離散化境界条件の移項を行い、φ(境界
外)=・・・・の形式にする(1.606)。この例で
は、境界外の値Vl−IJを左辺に移し、vl−+、)
=2零〇−v1..(1612)−・−(II)を得る
。最後に、添字解消式中のφ(境界外)に移項した境界
条件右辺を代入する(1607)。この例では、添字解
消式中のv(1−1,J)を、(1612)の右辺で置
き換えて次式を得る。 −(vl、J−(2*0−vl+]  J))/cxl
*cy、))(1613)・・・・・・・・・・・・(
12)以上が、第2図のプログラム生成方法(0200
)の離散式生成(0204)(0205〜0210)の
処理説明である。これにより、各領域における離散式(
0215)から従来と同じ計算プログラムを生成する(
0211)。 次に、内部境界条件について、説明する。 先ず、内部境界条件の必要性について述べる。 物理現象が生じている空間領域の一部分(以下、部分領
域と呼ぶ)について、偏微分方程式を解く場合がある。 これは、大きな解析領域を小さなメモリで解く場合に、
領域を部分に分割して反復しながら解く際に必要となり
、また部分領域によって成立する偏微分方程式が異なる
場合にも必要となる。この部分解法を実行する場合には
、内部境界について内部境界条件の機能が必要となる。 第17図は、内部境界条件指定のある物理問題例を示す
図である。 この図により、処理方法の概要と新たに必要となる技術
について述べる。 第17図の解析領域i 1+i 2 (+704)にお
いて、点線で示す内部境界ifに内部境界条件ngra
d (φ)、=O(1701)が与えられている。 方、偏微分方程式(1702)は、領域(1704)の
左半分11(1705)で解き、偏微分方程式(170
3)(7)右半分i 2(1706)テ解く。コノ場合
、偏微分方程式(1702)(1703)は、それぞれ
内部境界11で内部境界条件ngrad(φ)=0(+
701)を取り込んで111敗化する必要がある。 取り込みの方法は、一般の境界条件と同じである。ただ
し、ノーマル方向を示す記号を含む式の記述が含まれて
いた場合には、解析対象となる領域によりそのノーマル
方向が異なるため、これを正しく処理する必要がある。 例えば、内部境界条件ngrad(φ)=O(1701
)は、解析領域に対して外向法線方向の勾配を示す記号
ngradを含む。 従って、偏微分方程式(+702)においては、ngr
ad== a / a x 、偏微分方程式(1703
)においては、ngrad= −a / a xとみな
して処理する必要がある。 第18図(A)(B)は、内部境界条件指定のある場合
のプログラム生成の流れ図である。 第18図のプログラム生成処理は、第2図のプログラム
生成処理(0200)と異なるので、これらを区別する
ために、第18図の処理を(1800)とする。 プログラム生成処理(1800)の入力は、第2図と同
じように、偏微分方程式(+801)、解析領域(+7
04)、解析領域に対する格子分割(O217)、境界
条件(0218)、偏微分方程式中に使用される変数・
定数の離散点の位置(0219)(以上の3つは第2図
を参照)、および新たに偏微分方程式を解く内部解析領
域(1705)、内部境界条件(1701)であり、出
力は内部境界条件(1701)を取り込んだ計算プログ
ラム(1821)である。 処理の手順は、先ず離散式生成(1820)のf+ii
処理として、各偏微分方程式毎に(1801)、内部境
界条件処理(1802)を実行する。この内部境界条件
処理(1802)の入力は、内部境界条件(+701)
、解析領域(1704)、内部解析領域(1705)で
あり、出力はノーマル方向の微分演算子を方向を持った
微分演算子に書き替えたdx型の内部境界条件(181
9)である。 −例として、第17図に示した偏微分方程式(] 70
2)を解く場合を考える。入力は、内部境界条件ngr
ad (φ) =O(+ 701)、解析領域i1+1
2(1704)、および内部解析領域11 (1705
)である。先ず、解析領域(1704)と内部解析対象
領域(1705)から内部境界を検出する(1804)
。この例では、内部境界ifを検出する(1813)。 次に、内部境界の方向を検出する(+ 805)。この
例では、(1814)に示すように、内側、外側を決定
する。次に、ノーマル方向を決定する(1806)。こ
の例の場合、+X方向がノーマル方向である(1815
)、そして、ワークメモリに内部境界条件をコピーL(
+807)、最後にワークメモリ中の内部境界条件を書
き替える(1809)。この例では、ノーマル方向が+
X方向であるため、ngradを+dxに書き替える(
1817)。 +dx(φ)=0 ・ ・ ・ ・ ・ ・ ・ ・ 
・ ・(13)上式(13)に示したものが、dx型の
内部境界条件(1819)である。このdx型内部境界
条件(1819)を用いて離散式を生成する(+820
)。 この離散式生成方法については、第2図に示した離散式
生成処理と同じである。ただし、内部境界条件の取り込
み方法は、一般の境界条件と同じであり、またその場合
に書き替えてdx型の内部境界条件(1819)を使用
する。そして、離散式より計算プログラムを生成する(
0211)。 次に、偏微分方程式に対して、反復法を用いる行列解法
で解けという指定があった場合のプログラム生成方法に
ついて、詳述する。 第19図は、反復法を用いた行列解法で解く場合のプロ
グラム生成方法の流れ図である。 第19図のプログラム生成方法は、行列解法で解けとい
う指示があるとき、自動的に離散式の形からより最適な
行列解法を選択するもので、第18図の方法と区別する
ために、プログラム生成方法(1901)とする。 コノ処Fl(1901)(7)入力(0201)は、第
2図と同じであって、出力は最適な行列解法に対する計
算プログラム(0202)である。 処理手順としては、先ず偏微分方程式に対して行列解法
指定があると(+902)、最適な行列解法を選択する
(1903)。行列解法選択処理(1903)の入力は
、偏微分方程式(0212)であり、出力は選択した行
列解法量(1915)である。 先ず、風上差分指定があった場合(1904)、任意の
行列解法を選択しく1905)、これを出力とする。風
上差分指定がなかった場合(1904)、ユーザ定義微
分演算子の有無を見て(1906)、あれば、離散式の
対象変数に対する参照離散点のパターンを検出しく19
07)、定型パターン、つまり2次元であれば5点差分
、3次元であれば7点差分の場合(1908)、定型行
列解決を選択しく1909)、これを出力とする。定型
パターンでない場合(1908)、任意行列解法を選択
しく1910)、これを出力とする。 次に、クロス微分があるか否かを調べ(1911)、あ
れば、クロス微分行列解法を選択しく1912)、これ
を出力とする。また、ユーザ定義微分演算子も、クロス
微分もない場合には(1913)、定型行列解法を選択
しく1914)、これを出力とする。以上が行列解法の
選択処理(1903)であり、これによって最適な行列
解法(1915)が選択される。 第19図においては、次に第2図と同じ手順により、離
散式を生成した後(0200)、その離散式より計算プ
ログラムを生成する(0211)。ただし、この場合、
先に選択した行列解法(1915〉に対応したワークメ
モリを確保し、その解法をコールするようなプログラム
を生成する。 以上が、偏微分方程式に対し行列解決指定があった場合
のプログラム生成処理である。 次に、風上差分の原理とその特長について、説明する。 第20図は、風上差分の原理および本発明で解決した問
題に関する説明図である。 前述のように、従来のプログラム生成方法では、静止状
態のコントロールボリュームしか考慮していなかったの
で、微分演算子の離散化では通常の中心差分をとること
で、入側と出側の入出力量が等しくなっていた。しかし
、流体計算の場合には、境界付近でコントロールボリュ
ーム間の入出力量が等しくならないという問題があった
。そこで、本発明では、風上差分による微分演算子の離
散化を行い、流れの上流側の離散値の割合を大きく、下
流側の離散値の割合を小さくとる方法を用いる。 これにより、安定に解を求めることができる。 第20図(a)はコントロールボリューム616上の操
作を示す図であり、第20図(b)は偏微分方程式上の
操作を示す図であり、第20図(c)は中心差分を示す
図、第20図(d)(e)はそれぞれ1次化度風上差分
と、2次精度風上差分を示す図である。 (b)に示すように、通常、風上差分は偏微分方程式6
11中の移流項612に施こされる。つまり、この移流
項は1階微分であり、流体の速度の傾斜を表わしており
、自分の位置が消えて他の位置が表われるが、第3項、
第4項の拡散項はいずれも2階微分であり、2乗するこ
とにより自分の位置が定義されるので、安定している。 以下、この移流項612に着目した風上差分の近似方法
を説明する。 第20図(a)において、移流項612をコントロール
ボリューム616の中心点613のP点で離散化する。 この時のコントロールボリューム616で移流項を積分
すると、UvとUoを参照する離散式が現われる。Uv
とU、は、それぞれコントロールボリューム616の入
側と出側の流体の速度に関する値である。これらのU、
とUlをどのように近似するかによって、差分の種類と
精度が決定される。例えば、従来の中心差分では、 U
、をその両隣の定義点UPとUvで近似し、 U8を同
じく両隣の定義点UF:とU、で近似している。すなわ
ち、第20図(C)に示すように、中心差分では、それ
ぞれ両隣の定義点で近似した値を加重平均したUvとU
、の差をとると、両者のUPが相殺されて、(U、−U
ll:)/ 2となる。自分のP点がない偏微分方程式
を解くことは非常に不安定となる。 これに対して、本発明の風上差分では、流れの上流方向
の定義点を用いて近似するのである。例えば、(a)に
おいて、Aの方向に流れが存在する場合には、1次精度
風上差分では格子点Wに関するUvを上流方向の格子点
Wに関するUvで近似し、Uoを同じく1つ上流の格子
Pに関するUPで近似するのである(第20図(d)参
照)。これによって、偏微分方程式を解く場合に非常に
安定して解を求められる。また、UvとU6をさらに上
流側の点(格子点WW、および格子W)を用いて近似す
ると、高精度の風上差分となる。例えば、2次精度風上
差分ではUWをUvvとUvで似近し、同じ<  U、
をUvとU、で似近する(第20図(e)参照)。第2
0図(e)に示すように、2次精度風上差分における加
重平均では、テーラ展開の結果、係数3を乗算した値が
入るため、両者の差分をとっても自分の位置Pが相殺さ
れずに、最後まで残る。 このように、本発明においては、通常行われる中心差分
と風上差分を、界面をどう近似するかという観点で統一
的に捉えたことに特長点がある。 これによって、界面での物理量の人出量が同じになるこ
とを保証することができる。 また、汎用的な数値シミュレーションプログラムを生成
するためには、流れの向きに左右されないコードを生成
する必要がある。すなわち、第20図(d)の615に
示す1次精度風上差分の近似を例にとると、これはAか
ら流れがある場合には正しく近似されているが、逆にB
からの流れの場合には、U、をUPで、またUlをUF
、で、それぞれ近似しなければならない。 とれについては、A、Bのいずれの方向から流れが来て
も成立する近似式をU、とUlに持たせることにより、
解決することができた。 次に、領域分割について、説明する。 数値シミュレーションプログラムでは、通常、同じ処理
ができる部分を1つのDOループとする。 2次精度風上差分を用いる場合を考えると、第20図(
a)のコントロールボリューム618の上端側界面e’
 (Bからの流れの場合)で、2次精度風上差分を施こ
すと、解析対象領域外の点EE’ を参照してしまう。 そこで、第20図(a)におけるインデックスaの部分
とインデックスbの部分のDOループを分ける必要が生
じる。すなわち、インデックスaは界面から遠い領域で
あり、これには2次精度風上差分を、またインデッグb
は界面に近い領域であって、これには1次精度差分を、
それぞれ分けて適用するのである。 次に、DOループの分割について、説明する。 また、DOループの範囲を決定する場合、できる限りD
Oループ長を長くとる方が、数値シミュレーションプロ
グラムを実行する場合の効率がよい。そこで、風上差分
が施こされる移流項を、他の項(例えば、拡散項)と別
のDOループにすることにより、DOループの範囲がル
ープ長の短い方に合わされてしまうという問題を解決し
た。 第21図(a)(b)は、拡散項および移流項に対する
DOループの範囲を示す図である。 本発明においては、拡散項に対して(a)に示すように
D○ループの範囲621を定め、移流項に対しては(b
)に示すようにDOループの範囲622を定めぬ。これ
により、偏微分方程式の移流項と拡散項に対して別々に
DOループ範囲を決めることができ、その結果、拡散項
に対しては大きいループ(ループ長の長いループ)を生
成することができる。すなわち、内点、境界、かど点に
分けると、移流項に対しては風上差分を施こし、かつ界
面から遠い部分で2次精度風上差分、界面に近い部分で
1次精度差分と、ばらばらにコードを分割する必要があ
るため、fortranを短く分ける必要が生じる。一
方、拡散項に対しては、風上差分を施こす必要がないた
め、DOループも分割されず、精度のよい大きいDOル
ープを生成できる。 次に、自動離散化について、説明する。 第20図(a)におけるコントロールボリューム618
の格子点e′については、Bから流れが来るときのみ、
EE’ を参照するのを防ぐために、精度を落した風上
差分式〈1次精度風上差分)を用いて評価する必要があ
る。本発明のプログラム生成方法では、これをfort
ranに組込んで自動的にコード生成を行う。 次に、代入文の生成について、説明する。 偏微分方程式を代入文で記述した場合には、解法対象変
数である代入文の左辺変数が代入文の右辺にも用いられ
ると、格子点上の値の計算順序を変更することにより、
その結果、計算結果が変わってしまうという問題がある
。 第22図(a)(b)(c)は、偏微分方程式を代入文
で記述した場合の説明図である。 第22図(a)は、偏微分方程式を代入文で記述した場
合を示している。 A=−dx(A)+d iv(g rad(A))・・
・・・・・・・・・・(14) 上式(14)の右辺第1項のdx(A)は、aW/aX
であり、第2項のdjv(grad(A))は、a”W
/ax′である。すなわち、W=Aの代入文で記述した
偏微分方程式である。第22図(a)の631に示す代
入文においては、左辺変数Aが右辺にも用いられている
。 例えば、第22図(b)の632と第22図(c)の6
33において、・で示す格子点上の値を計算する際に、
631で示す偏微分方程式を解く場合には5周囲の4点
を参照する。この時に、参照時刻が・点より611であ
る0点は新値を参照する点となり、参照時刻が・点より
後であるΔ点は旧値を参照する点となるため、632と
633とでは計算結果が異なってしまう。すなわち、6
32では、計算される・点の左側の格子点は新値、右側
の格子点は旧値として計算されるのに対して、633で
は、計算される・点の左側の格子点は旧値、右側の格子
点は新値として計算される。 さらに、前述のように、項を計算する順序によっても計
算結果が異なることになる。 そこで、本発明においては、文の計算結果を一旦ワーク
変数(ワークメモリ)に格納し、それを改めて左辺変数
に代入することにより、この問題を解決した。すなわち
、新値と旧値を両方参照せずに、ワークメモリをアクセ
スして参照することにより、常に旧値を使用するように
した。 第24図(a)(b)は、本実施例のプログラム生酸処
理への入力例を示す図である。 第24図(a)の312aおよび312bは領域の記述
であり、これは第24図(b)に示す領域および名称を
意味している。すなわち、XとyはそれぞれO〜50.
0〜28に分けられた横軸と縦軸を意味し、A、Bはそ
れぞれ0〜20と20〜28に、および20〜50に分
けられたメツシュ領域を意味している。また、313は
境界条件の記述であり、312−bで定義した領域名称
を用いて記述する。314は非標準の微分演算子および
その展開式とそれが成立する領域の記述であり、312
−bで定義した領域名称を用いて記述する。 311は、運動方程式に風上差分指定を行ったものであ
る。316が風上差分を施こす移流項、317が風上差
分の指定である。UPWX (FOLW(UU)、UP
VAR(UU)、FOUPW) で、316のtJUに
対してX方向に1吹精度風上差分を施こすことを示して
いる。315はユーザ定義の非標準の微分演算子を用い
た例であり、318がその項である。 第25図(a)(b)は、それぞれ数値シミュレション
プログラム例を示す図である。 第25図<a>では、第24図(a)における偏微分方
程式311に対する出力の数値シミュレーションプログ
ラム例を示し、第25図(b)では、第24図(a)に
おける偏微分方程式315に対する出ツノの数値シミュ
レーションプログラム例を示す。 第25図(a)において、この偏微分方程式からは3種
類のD○ループが生成される。1つは、風」二差分を施
こす項以外に対するDOループ(323)であり、これ
は、y方向移流項(326)、拡散項(327)から構
成される。2つ目は、風上差分を施こす項に対するDO
ループ(324)であり、これはX方向移流項(329
)から構成される。3つ目は、ワーク変数値ZZDUM
MをUUに戻すD○ループ<325)である。元の偏微
分方程式は、左辺変数を右辺にも用いているので、32
3および324のループでは、結果をワーク変数ZZD
UMMに格納するコードとしく321 aおよび321
b)、式322では、ワーク変数の値を元の物理変数に
戻す。また、コントロールボリュームの面積による割り
算(328aおよび328 b)は、式の最後に1回行
うコードを生成する。 次に、第25図(b)においては、非標準の微分演算子
が用いられた偏微分方程式(第24図(a)の315)
に対する出力プログラムの構成を示している。この偏微
分方程式からも、3種類のり。 ループが生成される。その1つは、非標準の微分演算子
を用いない項に対するDOループ(901)であり、こ
れはX方向移流項(904)と拡散項(905)から構
成される。2つ目は、非標準の微分演算子を用いた項に
対するD○ループ(902)である。3つ目は、ワーク
変数値ZZDLIMMの値を元の偏微分方程式の左辺変
数Vvに戻すDOループ(903)であり、このコード
を生成する理由は第25図(a)に示す通りである。 第26図は、本発明の第2の実施例を示す風上差分およ
び非標準の微分演算子が用いられた場合のプログラム生
成方法の流れ図である。 第25図(a)(b)に示した出力プログラムを生成す
るための処理の概要が、第26図に示されている。この
処理は、第2図に示した基本の離散化フローに、風上差
分および非標準の微分演算子を用いた場合の処理、さら
に代入文の右辺に左辺変数を用いた場合の代入文の生成
処理を追加したものである。 処理の入力(338)は、中間語であって、代入文、5
OLVE文、境界条件文、領域形状の各文に対応するも
の、および予め作成されである風上評価テーブル、なら
びに演算子定義テーブルである。これらを人力として、
FORTRANの計算プログラム(337)を生成する
。 先ず、偏微分方程式が代入文である場合には、代入文の
左辺変数が右辺にも現われる場合にのみ、ワーク変数を
用いた代入文の書き換え、およびワーク変数値を代入文
の左辺変数に代入する文の生成を行い(330)、その
結果を偏微分方程式テーブル(3302)に格納する。 次に、偏微分方程式テーブル(3302)に保持されて
いる各偏微分方程式に対して、離散式の生成(0200
a)、および離散式より計算プログラムの生成(021
1)を行う。 離散式の生成(0200a)は、第2図に示す基本フロ
ーに、風上差分の処理と非標準の微分演算子展開の処理
を加えたものである。ここでは、基本フローについての
説明は省略して、追加された処理についてのみ詳述する
。 先ず、離散式生成処理(0200a)について、説明す
る。 先ず、代入式の生成を実行する(330)。これについ
ては、第32図で詳述する。 偏微分方程式テーブル(3302)から読み込んだ偏微
分方程式より風上差分指定の有無を式の本数分だけ調べ
て、風上差分の指定がある場合、その移流項を検出して
(331)、風上差分情報および偏微分方程式をワーク
テーブル(3303)に格納する。次に、偏微分方程式
を解くコントロールボリュームの位置を決定しく020
5)、続いて数値シミュレーションプログラムにおける
DOループの範囲を決定する領域分割(0206a)を
行う。 領域分割(0206a)は、通常の領域分割に追加して
、風上差分が施こされている項に対する処理(332)
およびユーザ定義の非標準の微分演算子が施こされてい
る項に対する処理(333)からなる。これらの処理(
332,333)では、領域形状、境界条件および偏微
分方程式の情報(338)を入力として、DOループの
範囲を決定して、その範囲を小領域格納テーブル(33
01)に格納する。この小領域格納テーブル(3301
)には、■風上差分も非標準の微分演算子も用いない項
に対する小領域、■風上差分を施こす項に対する小領域
、■非標準の微分演算子を用いる項に対する小領域、の
順序で格納される。 次に、小領域格納テーブル(3301)に格納された領
域毎に(つまり、DOループの単位毎に)(207)、
偏微分方程式の離散化(0208a)、プログラム用離
散式への修正(0209)、および補間(0210)を
行って、各小領域毎の離散式を得る。 偏微分方程式の離散化(0208a)では、前述のよう
に、偏微分方程式を微分演算子を含まない形に変形する
。先ず、小領域格納テーブル(3301)中の風上差分
項でも非標準の微分演算子の使用順に対してでもない小
領域について、偏微分方程式の部分積分および境界条件
の取り込みを行う(809)。次に、同じ小領域につい
て、式分割を行う(334)。これは、境界条件を取り
込んだ後の偏微分方程式から、風上項と非標準の微分演
算子を用いる積用の小領域格納テーブル(3301)に
格納する処理である。処理(809)と(334)が全
て終了した段階で、風上項分および非標準の演算子積用
の小領域格納テーブル(3301,)には、それぞれの
項が格納される。 次に、風上積用の小領域格納テーブル(3301)に関
しては、風上項の積分結果について、風上の評価式を用
いた離散化を行う(335)。これは、対象とするコン
トロールボリューム界面で用いる評価規則を決める処理
(335a)、風上差分を施こす項を、評価式を用いて
置き換える処理(335b)からなる。 ここまでで、コントロールボリュームを示す微分演算子
の展開が終了し5次に勾配を示す微分演算子の展開(8
10)、ユーザ定義の非標準の微分演算子の展開(33
11i)を行う。非標準の微分演算子の展開処理(33
6)では、非標準の微分演算子が用いられる1階微分、
および2階微分の内側微分についての展開を行う。 以上で、微分演算子の111敗化を全て終了する。 この後、解析領域での位置におけるインデックスに戻す
処理(0209)、補間処理(0210)を行って、離
散式の生成処理(0200a)を完了する。 なお、離散式の生成(0200a)時には、離散化の途
中の偏微分方程式、およびその項の情報を持つワークテ
ーブル(3303)を用いる。 以上が離散化の概略処理フローである。 次に、離散式の生成処理(0200a)で用いる中間語
およびその他のテーブルの構成について。 説明する。 第27図(a)(b)(c)は、風上評価テーブルの構
成図である。 予め用意されている中間テーブルの1つに、風上評価テ
ーブルがある。このテーブルには、システム内で標準に
保持する風上差分の名称(341)と、風上差分のコン
トロールボリューム界面における評価式(343)と、
その評価式が成立する領域の種別(342)とを保持す
る。 例えば、1次精度風上差分とS kew−upwind
法は、第27図(b)に示す3つの領域(345,34
7゜349)について評価式を保持しており、2次精度
以上の風上差分については、第27図(C)に示す5つ
の領域(345a、346,347a、348゜349
a)について評価式を保持している。第27図(b)(
c)の345,345aは下端側境界、346は下端側
準境界、347,347aは内点、348は上端側車境
界、349,349aは上端側境界として欄(342)
に保持され、それぞれの評価式は欄(343)に保持さ
れる。この場合1例えば、2次精度風上差分についての
上端側車境界については、Aからの流れの場合には2次
精度風上差分が成立する評価式を保持することにより。 領域の種別により稍度を落した評価式を用いて離散化す
ることが可能である。 この風上評価テーブルは、風上評価式による離散化(第
26図の処理(335))で参照される。 次に、演算子定義テーブルについて、説明する。 第28図は、演算子定義テーブルの構成と内容を示す図
である。 このテーブルは、ユーザ定義の非標準の微分演算子とし
て、DIFFS文で定義された内容を格納している。こ
のテーブルは、第24図(a)の入力プログラムのDI
FFS文(314)を読み込んだ時点で生成され、その
内容として、微分演算子の名称(351)、その展開式
(353)、展開式が成立する領域名称(352)の情
報を保持している。 第28図の例では、第24図(a)の(314)を入力
した時に生成されるテーブルである。 演算子定義テーブルは、DIFFS文で定義した微分演
算子を使用する項に関して領域分割を行う場合(第26
図の(333))および非標準の微分演算子の展開を行
う場合(第26図の(336))に参照される。 次に、小領域格納テーブルについて、説明する。 第29図は、第26図に示す小領域格納テーブルの構成
図である。 小領域格納テーブル(3301)は、DOループの範囲
を決定する領域分割の結果と、DOループの対象とする
項の種別、成立する偏微分方程式を保持するためのテー
ブルである。このテーブルには、対象とする項の種別、
つまりどの項を対象とするものかを示すフィールド(3
62)と、DOループの範囲である小領域の範囲を示す
フィールド(361)と、対象とする偏微分方程式を格
納するフィールド(363)の3つのフィールドを持っ
ている。これらのフィールドは、領域分割時(第26図
(0206a))に生成され、偏微分方程式の離散化(
第26図(0208a))、計算プログラムの生成(第
26図(0211))において参照される。 次に、偏微分方程式テーブルについて、説明する。 第30図は、偏微分方程式テーブルの構成図である。 偏微分方程式テーブル(3302)は、入力プログラム
により記述された偏微分方程式を保持するテーブルであ
って、その偏微分方程式中における解く変数(以下、対
象変数と呼ぶ)(371)のフィールドと、偏微分方程
式(372)を保持するフィールドを持つ。偏微分方程
式毎の離散式を生成する場合に、このテーブルが用いら
れる。また、このテーブルは、偏微分方程式(代入式)
において、左辺変数(対象変数)が右辺に現われる場合
に、ワーク変数を用いて新たに代入文を生成する処理(
第26図の330)において用いられる。 第31図は、第26図におけるワークテーブルの構成図
である。 ワークテーブル(3303)は、離散式生成の途中の偏
微分方程式およびその中の各項の情報を保持するテーブ
ルである。このテーブルでは、項の数だけその情報が保
持される。フィールドとしては、この項が風上項か、ユ
ーザ定義の微分演算子を使用する項か、それ以外の項か
を示すフィールド(381)と、風上項の場合には、風
上差分の種別(382)、流れの変数名(383)、風
上差分を施こす変数(384)、および風上差分を施こ
す方向(385)等の風上差分情報を保持するフィール
ドと、離散化途中の式(386)を保持するフィールド
からなる。すなわち、偏微分方程式(luu’/ a 
Xのうち、Uは流れを表わす名称(382)に、U′は
風上差分を施こす名称(384)に、Xは風上差分を施
こす方向(385)に、それぞれ格納される。このよう
にして、離散式の生成(第26図の0200a)の途中
の結果を、項に分けた形で常に保持している。 次に、代入文の生成処理(第26図の330)および検
出処理(331)、領域分割処理(332゜333)、
式分割(334)、風上評価式を用いた離散化(335
)、および非標準の微分演算子の展開(336)につい
て、許細なフローを示して説明する。 第32図は、代入文生成処理の流れ図である。 この処理(330)は、右辺に左辺変数が現われる代入
文に対して、ワーク変数を用いて生成される。この処理
(330)は、代入文に対応する中間語(338)を入
力とし、偏微分方程式テーブル(3302)を出力とす
る。 先ず、偏微分方程式の右辺に、代入文の左辺変数がある
か否かを調べる(391)。もし、左辺変数が右辺にあ
ったときには、偏微分方程式の解法対象変数ZZDUM
Mと代入文右辺を、偏微分方程式テーブル(3302)
に格納する(392)(395)。次に、偏微分方程式
テーブル(3302)に代入文を生成する(393)。 解法対象変数として代入文の左辺変数を、偏微分方程式
右辺としてZZDUMMをテーブルに格納することによ
り、ワーク変数値を元の偏微分方程式の左辺に代入する
文が得られる(396)。 第33図は、移流項検出処理の流れ図である。 前述のように、風上差分情報は偏微分方程式の移流項に
のみ加えられる。従って、移流項検出処理(331)で
は、与えられた方程式は項に分割された後、風上差分の
情報が項に付加される。 この処理(331)の入力は、代入文またはSOL V
 E文の中間!(338)、および偏微分方程式テーブ
ル(3302)であり、出力はワークテーブル(330
3)である。 先ず、中間語より代入文または5OLVE文に記述され
た風上差分情報(LIIIIWX)を取り出す(40I
)。次に、風上差分を施こす各方向毎に(402)、偏
微分方程式テーブル(3302)に格納されている代入
文または5OLVE文より、風上差分を施こす座標方向
についての1次微分を取り出す(403)。そして、取
り出された項に流れを示す名称および被微分項に風上差
分を施こす変数名称があれば(404)、この項を風上
差分を施こす項とみなして、ワークテーブル(3303
)に風上差分の情報を格納する(405)。さらに1項
の内容をワークテーブル(3303)に格納する。ここ
では、第1項目の−DLT*Dx(uu*uu)に風上
差分情報が付加される。 移流項の検出処理が終了すると1次にコントロールボリ
ュームの位置を決定しく第26図の0205)、DOル
ープの範囲を決める領域分割(第26図の0206a)
を行う。以下、風上積分の領域分割(第26図の332
)、非標準の微分演算子のある項分領域分割(第26図
の333)について説明する。 第34図は、風上項用領域分割の処理の流れ図、および
小領域テーブルの入出力状態図であり、また第35図は
、領域分割の処理の一例を示す図である。 第34図の上方のテーブルが小領域テーブルの入力状m
(3301a)であり、下方のテーブルが小領域テーブ
ルの出力状態(3301b)である。 小領域テーブルの入力状態(3301a)には、風上項
でも、非標準の微分演算子の用いられる項でもない項に
ついての領域分割結果(411)が格納されている。こ
れに、風上積分の領域分割結果(,112)を加えるこ
とにより、出力状771(3301b)を得る。1本の
偏微分方程式に多方向(例えば、X方向とy方向)の風
上差分が施こされる場合には、小領域テーブルの領域分
割結果(412)中に、X方向の風上積分の領域分割結
果、およびX方向の風上積分の領域分割結果の順序で格
納する。 風上積分領域分割(332)の処理では、先ず解析対象
領域の形状により領域分割を行い(413)、その分割
結果に対して各風上差分を施こす方向毎に(414)、
処理中の風上差分の方向について風上用分割を行う(4
15)。このとき、2次精度以上の風上差分については
、風上方向の境界より1メツシュ内側の領域を分割する
。次に、風上方向の境界の1メツシュ内側の領域どうし
で成立する偏微分方程式が同じ場合には、これらを統合
する(416)。次に、境界と風上方向の境界より1メ
ツシュ内側の領域について、風上方向境界における境界
条件の成立する領域により分割する(417)。このよ
うにして得られた領域分割結果を、小領域格納テーブル
(3301b)の441aの後方に格納する(418)
。 第35図に示すように、解析対象領域の形状による領域
分割結果(421)に対して、風上方向がX方向とする
と、X方向風上差分により領域分割を施こしく422)
、X方向について内側分割結果(423)を得る。さら
に、境界の1メツシュ内側の領域どうしの統合を施こし
く424)、X方向の風上積分領域分割結果(425)
を得る。 第36図は、非標準の微分演算子のある積分領域分割の
処理の流れ図、および入出力状態図であり、第37図は
、第36図の流れに従った領域分割例を示す図である。 領域分割処理(333)の上方は小領域格納テーブルの
入力状態(3301c)であり、下方は同じく出力状態
(3301d)である。 小領域格納テーブルの入力状態(3301c)には、風
上項でも、非標準の微分演算子の用いられる項でもない
項についての領域分割結果(431)、および偏微分方
程式中に風上項がある場合には。 風上積分の領域分割結果(432)が格納されている。 これに、非標準の微分演算子が用いられている積分の領
域分割結果(439)を加えて、小領域格納テーブルの
出力状態(3301d)を得る。 非標準の微分演算子が施こされている積分の領域分割(
333)では、先ず解析対象領域の形状により領域分割
を行い(433)、その結果に対して非標準の微分演算
子が成立する領域の指定により分割を行う(434)。 次に、非標準の微分演算子の展開式が同じものどうしを
統合する(435)。 さらに、非標準の微分演算子が1次微分項に用いられて
いるか、2次微分の内側に用いられているかを調べ(4
36)、2次微分の内側に用いられている場合には(4
37)、コントロールボリューム界面の上端側と下端側
で成立する非標準の微分演算子の展開式が異なる場合、
この領域を分割する(438)。 このようにして得られた領域分割結果を、小領域格納テ
ーブル(3301d)の(431a、432a)の後方
に格納する。 第37図においては、解析対象領域の形状による分割結
果(441)に対し、非標準の微分演算子の成立する領
域の指定(448)による分割を施こして(442)、
その結果(443)を得る1次に、非標準の微分演算子
の展開式が同じである小領域どうしを統合しく444)
、その結果(445)を得る。非標準の微分演算子がl
im分に用いられている場合には、この結果(445)
が領域分割の最鼾結果となる。また、2階微分の内側に
用いられている場合には、さらにコントロールボリュー
ム界面の上端と下端とで用いる非標準の微分演算子の展
開式が異なる領域を分け(446)、その結果(447
)を得る。 領域分割の処理(第26図の0206a)が終了したな
らば、小領域格納テーブル(3301)に格納されてい
る小領域毎に偏微分方程式の離散化(0208a)を実
行する。 偏微分方程式の離散化(0206a)では、第26図に
示すように、先ず小領域格納テーブルの風上項でも非標
準の微分演算子が施こされる項でもない項に対するもの
について、偏微分方程式の部分積分および境界条件の取
り込みを行い(809)、その結果を風上項と非標準の
微分演算子が施こされる項とそれ以外の項に分割する(
式分割=334)。 第38図は、第26図における式分割の処理の流れ図、
および小領域格納テーブルの入出力状態図である。 式分割処理(334)の上方には入力状態の小領域格納
テーブル(3301e)が、また下方には出力状態の小
領域格納テーブル(3301f)が示されている。 小領域格納テーブル(3301e)には、入力時、風上
項でも非標準の微分演算子の使用項でもない項に対する
テーブルに、風上項や非標準の微分演算子を施こす項を
含む離散化途中の偏微分方程式が格納されている。 式分割処理(334)では、この離散化途中の偏微分方
程式をたどって(451)、項の種別が風上項か、非標
準の微分演算子を施こす項か、あるいはそれ以外の項か
を調べる(452)。項が風上項であれば、先ず風上差
分項に対する小領域格納テーブル(3301e)より現
在処理中の小領域格納テーブルの小領域の範囲に含まれ
るテーブルを探索しく453)、そのテーブルの偏微分
方程式を格納するフィールドに項の内容を移す(454
)。 また、項が非標準の微分演算子を施こす項であれば、同
じように非標rpの微分演算子を施こす項に対する小領
域格納テーブル(3301e)から対応するテーブルを
探索しく455)、そのテーブルの偏微分方程式フィー
ルドに項の内容を移す(156)。 また、項が上記以外の項であれば、何も処理をしない(
457)。 小領域格納テーブル(3301f)は、このようにして
得られた出力状態を示している。すなわち、テーブル(
3301e)における風上差分を施こす項(458)は
、(3301f)において、風上項用のテーブルのフィ
ールド(459)に移されている。 式分割処理(第26図の334)が終了すると、風上項
用および非標準の微分演算子を施こす積用の小領域格納
テーブルの偏微分方程式フィールドが、各々に対応する
項で満たされる。 第26図に示すように、偏微分方程式の離散化処理(0
208a)では、風上項について風上評価式を用いた離
散化(335)、勾配演算子の展開(8’I O)が施
こされ、また非標準の微分演算子を施こす項については
、勾配演算子の展開(336)が施こされ、それ以外の
項については、勾配演算子の展開が施こされる。これに
より、偏微分方程式の離散化が終了する。 風上評価式を用いた離散化(第26図の335)は、コ
ントロールボリューム界面における評価規則を求める処
理(335a)と、風上差分を施こす項を評価式を用い
て置き換える処理(335b)とからなる。 第39図は、コントロールボリューム界面における評価
規則を求める処理の流れ図である。 風上差分を施こす方向の各コントロールボリューム界面
について(461)、先ずコントロールボリューム界面
と境界との距離を求める(462)。 風上差分の種別が1次精度風上差分またはskew−u
pwind法のように、1/2メツシュ隣りまでしか参
照しない風上差分の場合には(463)、コントロール
ボリューム界面と境界との距離が0、つまりコントロー
ルボリューム界面が境界上にある揚台には(464)、
境界の評価規則をBQいる(465〉。また、距離が1
72以上の場合には、内点の評価規則を用いる(466
)。 また、2次精度以上の風上差分の場合には(2次精度差
分、河村・桑原による3次精度風上差分。 あるいはQUI CK法等)、距離がOのとき境界の評
価m則を(468)、距離が172から1のとき境界側
から流れが来る場合に限り、精度を落とした風上差分を
用いて、準境界の評価規則を(469)、また距離が3
/2以上のとき内点の評価規則を用いる(460)。 このようにして決定した評価規則を用い、風上差分を施
こす項を評価式を用いて置き換える処理(第26図の3
35 b)を行う。 第40図は、風上差分を施こす項を評価式を用いて離散
化する処理の流れ図およびワークテーブルの入出力状態
図である。 離散化処理(335b)の上方は、入力状態のワクチ−
プル(3303a)であり、下方は出力状態のワークテ
ーブル(3303b)である。 入力状態のワークテーブル(3303a)では、コント
ロールボリュームにおける部分積分および境界条件の取
り込みが終了した状態の偏微分方程式が格納されている
。 これに風上差分を施こすためには、式の最後までたどり
ながら(470)、以下の処理を行う。 先ず、流れを表わす変数について(471)、因子単位
に式をたどって、流れを表わす変数があれば、因子中で
流れを表わす変数の係数を取り出し。 その因子を取り出した係数で置き換える(472)。 出力状態のテーブル(3303b)における符号(47
8a、478b)が、上記係数である。 次に、風上差分を施こす変数について(471)、風上
差分を施こす変数を、風上差分の評価式に置き換える(
473)、その時、評価式のflowの代りに流れを表
わす変数名称を入れる。入力状態のテーブル(3303
a)における(477.479)は風上差分を施こす変
数であり、これらをそれぞれ出力状態のテーブル(33
03b)に示すように、風上差分の評価式(477a、
479a)に置き換える。また、出力状態のテーブル(
3303b)における(477a、479a)中の(4
75a、 475 b、 476 a、 476 b)
は、評価式中のflowを流れを表わす変数に置き換え
たものである。 また、それ以外の場合には(471)、そのままの状態
とする(474)。 以上の処理によって、風上項に対する風上差分の評価式
を用いた離散化が行われる。 次に、非標準の微分演算子の展開(第26図の336)
について説明する。 第41図は、非標準の微分演算子の展開の処理の流れ図
、および入出力状態のワークテーブルを示す図である。 展開処理(336)の上方は入力状態のワークテーブル
(3303c)であり、下方は出力状態のワークテーブ
ル(3303d)であって、非amのm分演算子が1次
微分に用いられている場合を示している(3303c)
。 非標準の微分演算子の展開(336)では、先ず非標準
の微分演算子が項中で1次微分で使用されているか、ま
たは2次微分の内側で使用されているかを調べる(48
1)。 1次微分に使用されている場合には(482)、その領
域で成立する非標準の微分演算子の展開式を演算子定義
テーブルから取り出しく483)、式中の非標準の微分
演算子を展開式で置き換える(484)。 2次微分の内側に使用された場合には(482)、コン
トロールボリュームの界面毎に(485)、コントロー
ルボリューム界面で成立する非標準の微分演算子の展開
式を演算子定義テーブルより取り出しく486)、続い
てコントロールボリューム界面での非標準の微分演算子
を展開式で置き換える(487)。 この処理により、入力状態のテーブル(3303c)に
おける非標準の微分演算子DDY(488)は、出力状
態のテーブル(3303d)における(488a)に置
き換えられる。 以上で、偏微分方程式の離散化処理(第26図の020
4)が終了する。 この後、離散化した偏微分方程式を解析領域での位置に
おけるインデックスに戻す処理(第26図の0209)
、および補間処理(第26図の0210)を行うことに
より、離散式の生成(第26図の0200)は終了する
。 次の処理過程、すなわち各領域における離散式より計算
プログラムを生成する処理(第26図の0211)では
、小領域格納テーブルに格納されている順、つまり■風
上差分も、非標準の微分演算子も用いられない項、■風
上差分を施こす項、■非標準の微分演算子が用いられる
項、の順序で項の種別毎に計算プログラムがFORTR
ANファイル(第26図の337)に出力される。 以上で、風上差分、非a準の微分演算子を、入力である
言語記述で指定した場合についての説明を終わる。 次に、風上差分の自動化について説明する。 これは、風上差分について、ユーザが言語で指定しない
場合でも、自動的に風上差分を施こす方法である。 第42図は、入力言語の偏微分方程式から風上差分を施
こす項とその施こし方を自動検出する方法を示す流れ図
である。 風上差分の自動検出処理(491)は、構文解析時に行
い、風上差分を施こす場合には、中間語(338)に風
上差分の施こし方を格納する。 先ず、入力言語の偏微分方程式(0101)から1次微
分項を検出する(492)。この場合には、a u u
 / a x 、  a v u / a yが検出さ
れる。次に、その1次微分項について、被微分項で最初
の変数(ここでは、U)を流れの変数とみなしく493
)、さらに被微分項で2番目の変数(u)が解法対象変
数と同じであれば、これを風上差分を施こす変数とみな
す(494)。流れの変数と風上差分を施こす変数が存
在するならば、この項に風上差分を施こすとみなす(4
95)。風上差分を施こさなければ、そのままの形で中
間語を生成し、風上差分を施こせば、風上差分用の中間
語を生成する(496)。 なお、風上差分用中r+oWJ(33g)は、先に示し
た形式、つまりユーザが言語で風上指定を行った場合と
同じ形式とする。すなわち、風上差分を施こす方向(4
97)、流れの変数(498)、風上差分を施こす変数
(499)、風上差分の種別(491O)とする。ここ
で、風」二差分の種別は、精度のよいQUICK法固定
としたが、他の手法を用いたい場合には、それを指定さ
せても同じように処理することができる。 風上差分指定の中間語ができ上がれば、それ以降の処理
は、前述したように、ユーザが風上差分の指定を行う場
合の処理と同じように処理することができる。なお、変
数や定数にスタガード変数が用いられている場合でも、
同じような順序で処理が可能である。 〔発明の効果〕 以上説明したように、本発明によれば、(i)本数・定
数の値の評価点である離散点が格子点上および格子の中
間点上にある各種変数を含む偏微分方程式に対してもそ
の離散化が可能となるので。 スタガード変数を必ず用いるような流体系の物理モデル
に対しても数値シミュレーションプログラムを生成する
ことが可能である。また、(H)スタガード変数を含む
偏微分方程式に対しても、適切なコントロールボリュー
ムの位置を設定して離散化を行うことができるので、ス
タガード変数を含む偏微分方程式に対しても、コントロ
ールボリューム方式による離散化が可能である。また(
fin)スタガード変数を含む偏微分方程式に対しても
、DOループ数が少なく、ループ長が最も長いり。 ループを張ることが可能である。また(iv)スタガー
ド変数を導入すると、離散化のパターンが従来の7倍に
増加するが、本発明では、どのような偏微分方程式に対
してもコントロールボリュームの中心を基準位置とする
離散式を同一処理で生成してから、本来の解析領域での
位置つまり絶対位置での離散式に修正するので、任意の
コントロールボリュームと任意の離散点の変数を持つ偏
微分方程式の離散化プログラム生成手順を短縮すること
ができ、また離散化規)1!Iのパターンが1種類であ
るため、FORTRAN生成時のワークエリアが少なく
てすむ。また、(v)スタガード変数を含む偏微分方程
式の離散化において、離散式中の変数の参照点が変数の
離散点上にない場合、どの変数に対しても加重平均を用
いた補間を行うので、精度のよい離散式を生成すること
が可能である。また、また、(vI)コントロールボリ
ューム方式で適応可能な境界条件は、これによって取り
込み、その他のユーザが一般に記述することが多い境界
条件については精度が落ちない範囲で補間による取り込
むという2段階の取り込み方法を行うので。 最適な境界条件の取り込みが可能である。また。 (■)内部境界の指定が可能であるため、部分領域で偏
微分方程式を解く必要がある熱と流体の達成問題等に対
するシミュレーションプログラムの自動生成が可能であ
る。また、 (vj)内部境界条件をノーマルベクトル
nを用いた形式で記述する場合(n・・・・・grad
(φ)に・・・)、解析領域により同じ内部境界の境界
条件でも解析する領域によってその法線方向が異なるが
、本発明では、各法線方向を自動的に求める方法を用い
るので、内部境界条件を取り込んで離散化することが可
能となる。また、(Lx)行列解法を用いて偏微分方程
式を解く場合に、同じ反復法でも離散化の形により最適
な解法が異なるが、本発明では、最適な解法の自動選択
方法を用いるので、ユーザは簡単に最適な行列解決を使
用することが可能である。また、(X)本発明によれば
、流れを表わす偏微分方程式の指定、または流れを表わ
す偏微分方程式の指定と風上差分の指定から、風上差分
を施こした数値シミュレーションプログラムを自動生成
でき、かつ風上差分をコントロールボリューム界面で評
価するので、偏微分方程式が持つ保存則を満たした数値
シミュレーションプログラムの自動生成が可能である。 また、(xi)ユーザが定義した非標準の微分演算子の
記述に対しても、離散化が可能となるので、解析対象領
域の境界付近で離散化精度を向上することができ、離散
化の自由度が大となる。また、コントロールボリューム
で部分積分した結果に対して、展開を行う方法を用いる
ので、保存則を満たす離散化が可能である。また、(x
ii)項の種別毎に式を分割して、その各々に対してD
Oループを生成するので、項の種別毎にDOループ数を
最も少なく、かつDOループ長を最も長くすることが可
能であり、計算効率のよい数値シミュレーションプログ
ラムの自動生成が可能である。また、(xiii)本発
明では、風上差分を施こした偏微分方程式に対しても、
DOループ範囲の決定が可能である。さらに、(xiv
)本発明では、ユーザが定義した非標準の微分演算子を
用いた偏微分方程式に対しても、DOループ範囲の決定
が可能である。さらに、(XV)本発明によれば、代入
文に対しては旧位のみを参照することにより。 数値シミュレーションプログラムを生成するので、計算
結果の同一性が保証される。さらに、(xvi)代入文
形式で記述された偏微分方程式に対して、コントロール
ボリュームの面積・体積による割り算を代入式右辺全体
に施こすことができるので、生成した数値シミュレーシ
ョンプログラムの演算量を少なくでき、実行効率を向上
することができるとともに、割り算による誤差の混入も
少なすることができる。
【図面の簡単な説明】
第1図は本発明のプログラム生成方法の全体流れ図、第
2図は本発明の第1の実施例を示すスタガード変数を含
む偏微分方程式に対するプログラム生成方法の処理の流
れ図、第3図はスタガード変数を含む偏微分方程式に対
する離散化の原理説明図、第4図はスタガード変数を含
む偏微分方程式に対する本発明の離散化処理の特徴点を
記載した図、第5図は第2図の処理の流れにおける入力
例を示す図、第6図は第2図の処理の流れにおける出力
例を示す図、第7図はコントロールボリューム決定方法
の処理の流れ図、第8図はコントロールボリュームテー
ブルの内容と種類を示す図、第9図は領域分割処理の流
れ図および領域分割のインデックス修正処理の意味を示
す図、第10図はコントロールボリュームの中心を基準
位置として離散化する処理の流れ図および位置関係テー
ブルの構成図、f511図は部分積分の処理の流れ図お
よび積分テーブルの構成図、第12図は相対位置離散式
と絶対位置離散式のインデックス例を示す図、第13図
は解析領域での位置におけるインデックスに戻す処理の
流れ図、第14図は補間処理の流れ図、第+5図は加重
平均による補間処理の流れ図、第16図は境界条件の離
散値による補間処理の流れ図、第17図は内部境界の原
理説明図、第18図は内部境界の指定のある偏微分方程
式に対するプログラム生成方法の処理の流れ図、第19
図は行列解法指定のある偏微分方程式に対するプログラ
ム生成方法の処理の流れ図、第20図は風上差分の原理
説明図、第21図は拡散項と移流項に対するDOループ
の範囲を示す図、第22図は代入文を用いた偏微分方程
式で、格子上の点の計算順序を変えた場合の説明図、第
23図は風上差分法の課題の説明図、第24図は第2の
実施例における入力例およびその範囲を示す図、第25
図は第2の実施例の出力例を示す図、第26図は本発明
の第2の実施例を示す離散式生成処理の全体の流れ図、
第27図は風上評価テーブルの構成図、第28図は演算
子定義テーブルの構成図、第29図は小領域格納テーブ
ルの構成図、第30図は偏微分方程式テーブルの構成図
、第31図はワークテーブルの構成図、第32図は代入
文生成処理の流れ図、第33図は移流項検出処理の流れ
図、第34図は風上差分用領域分割の処理の流れ図、第
35図は風上差分用領域分割の処理説明図、第36図は
非標準の微分演算子の用いられている項用領域分割の処
理の流れ図、第37図は第36図の分割処理の動作説明
図、第38図は式分割の処理の流れ図、第39図は界面
における風上差分の評価規則を求める処理の流れ図、第
40図は風上差分の評価式を用いた離散化の処理の流れ
図、第41図は非標準の微分演算子の展開の処理の流れ
図、第42図は風上差分指定の自動検出の処理の流れ図
である。 0101 :物理現象の言語記述、0103:FORT
RAN計算プログラム、0105:標準のテーブル、0
111:風上評価テーブル、0112:積分テーブル、
0104:中間語、0705:コントロールボリューム
テーブル、3301・小領域格納テーブル、3302:
偏微分方程式テーブル、3303:ワークテーブル、0
202 :計算プログラム、338:中間語、337:
FOR1’ RA Nファイル、351:演算子定義テ
ーブルの微分演算子名称、352:同じく領域、353
:同じく展開式、362:小領域格納テーブルの項の種
別、361:同じく小領域の範囲、363:偏微分方程
式。 第 9 図(その2) (b−1) ィ・デク−:OO■  3’5    (りCI]D。 (b−2) 第 ○ 図 (その2) 位置関係テ フル (b) 1y、+2 に人力する 図(その3) く 第 図 (al 、   I J−i Δ :コントローノケ1ノユームノ中心 第 1 図 解法選択 出カニ計算プログラム〜0202 第 2 図(その2) (bl 第 図 (a) (c) 33 第 2 図 第 図(その2) (b) 第 図(その1) (a EXD: 第 図(その2) (b) 47 第 2 図 第 図 第 図 第 図 領域分割例 第 3 図 ト444 ト446

Claims (1)

  1. 【特許請求の範囲】 1、物理現象を表わす解析領域の内点では偏微分方程式
    を、該解析領域の境界では偏微分方程式および境界条件
    式を、それぞれ成立するコントロールボリューム内にて
    偏微分方程式中の微分演算子を展開し得る離散点での変
    数の関係式である離散式を導き、該離散式をコード化し
    てシミュレーションプログラムを生成するプログラム生
    成方法において、該変数および定数の値の評価点である
    離散点が格子点上かまたは該格子点の中間点上にあるか
    を示す情報(スタガード情報)を入力して、格子と該変
    数および定数の離散点との相対的な位置関係を求め、該
    位置関係を用いて解析領域内の偏微分方程式中の微分演
    算子を展開して離散式を生成し、該離散式から数値シミ
    ュレーションプログラムを生成することを特徴とするプ
    ログラム生成方法。 2、上記離散式の生成処理では、偏微分方程式の形式か
    ら該偏微分方程式の解法対象である変数を検出し、該解
    法対象変数の離散点の位置より偏微分方程式を離散化す
    るためのコントロールボリュームの位置を決定すること
    を特徴とする請求項1に記載のプログラム生成方法。 3、上記離散式の生成処理では、解析領域を形状および
    境界条件により小領域に分割し、分割された小領域に対
    してその偏微分方程式のコントロールボリュームの位置
    からDOループ範囲を決定する場合に、スタガード変数
    を含む偏微分方程式に対しても、DOループ数の少なく
    、かつループ長の最も長いDOループを張ることを特徴
    とする請求項1に記載のプログラム生成方法。 4、上記離散式の生成処理では、コントロールボリュー
    ムの中心点と偏微分方程式中に使用されるスタガード変
    数およびスタガード定数を含む各変数および定数の離散
    点の相対位置関係を求め、求めた関係を用いてスタガー
    ド変数およびスタガード定数を含む偏微分方程式に対し
    て、コントロールボリュームの中心を基準位置とする離
    散式を生成することを特徴とする請求項1に記載のプロ
    グラム生成方法。 5、上記離散式の生成処理では、スタガード変数および
    スタガード定数を含む偏微分方程式に対してコントロー
    ルボリュームの中心を基準位置とする相対位置における
    離散式を求め、格子点とコントロールボリュームの位置
    関係を求め、該位置関係を用いて該離散式から本来の解
    析領域での位置である絶対位置における離散式を生成す
    ることを特徴とする請求項1に記載のプログラム生成方
    法。 6、上記離散化の生成処理では、スタガード変数および
    スタガード定数を含む偏微分方程式を離散化し、その結
    果の離散式中の変数および定数の参照点が該変数および
    定数の離散点上にない場合には、格子点と該変数および
    定数との位置関係を求めて、求められた位置関係から該
    変数および定数に対する加重平均を用いた補間式を選択
    し、該補間式を適用して該変数および定数の離散点を参
    照する離散式を生成することを特徴とする請求項1に記
    載のプログラム生成方法。 7、上記離散化の生成方法では、スタガード変数および
    スタガード定数を含む偏微分方程式を離散化する場合に
    、該偏微分方程式の境界勾配項に境界条件を取り込み、
    取り込みが不可能なスタガード変数に対しては、偏微分
    方程式を離散化して得られる離散式中の解析領域外を参
    照する項を境界条件を単独で離散化して得られる該項の
    評価式で置き換えて、該偏微分方程式の離散式を生成す
    ることを特徴とする請求項1に記載のプログラム生成方
    法。 8、物理現象を表わす解析領域の内点では偏微分方程式
    を、該解析領域の境界では偏微分方程式および境界条件
    式を、それぞれ成立するコントロールボリューム内にて
    テーラー展開により偏微分方程式中の微分演算子を展開
    し得る離散点での変数の関係式である離散式を導き、該
    離散式をコード化してシミュレーションプログラムを生
    成するプログラム生成方法において、該物理現象が起こ
    っている空間領域の形状情報、形状の格子分割情報、該
    物理現象を数値的に解析するために必要な変数および定
    数、該変数および定数を用いた偏微分方程式、初期値、
    境界条件、物性値の条件および計算手順を含む数式情報
    を表わす高水準の問題向き言語による記述の他に、内部
    境界条件を入力すると、各内部境界条件を取り込んで離
    散化し、該離散化により得られた離散式をコード化して
    数値シミュレーションプログラムを生成することを特徴
    とするプログラム生成方法。 9、上記内部境界条件を入力した後の処理では、境界条
    件ないし内部境界条件でノーマル方向を示す記号を含む
    式が存在した場合、解析領域の位置により自動的に該ノ
    ーマル方向を検出し、上記境界条件ないし内部境界条件
    を該ノーマル方向を用いた式に書き替え、書き替えられ
    た境界条件を偏微分方程式にに取り込んで、離散化を行
    うことを特徴とする請求項8に記載のプログラム生成方
    法。 10、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式からシミュ
    レーションプログラムを生成するプログラム生成方法に
    おいて、該物理現象が起こっている空間領域の形状情報
    、形状の格子分割情報、該物理現象を数値的に解析する
    ために必要な変数および定数、該変数および定数を用い
    た偏微分方程式、初期値、境界条件、物性値の条件およ
    び計算手順を含む数式情報を表わす高水準の問題向き言
    語による記述を入力し、偏微分方程式から得られる離散
    式を行列解法を用いて解く場合に、該偏微分方程式の形
    式より該離散式中の解法対象変数の参照点の位置を求め
    て、求められた位置関係から性能上最適な行列解法を選
    択して、選択された行列解法を用いて離散式を解き、該
    離散式をコード化して数値シミュレーションプログラム
    を生成することを特徴とするプログラム生成方法。 11、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力し、該偏微分方程式中の
    流れを解析する運動方程式の記述から、該運動方程式中
    で方向毎の1次微分の形の移流項を自動検出し、該移流
    項から流れを表わす変数の名称と、流れの上流側の離散
    値の割合を大きく下流側の離散値の割合を小さく取るた
    めの風上差分を施こす変数の名称を検出して、検出され
    た移流項に対して風上差分を施こすことにより、数値シ
    ミュレーションプログラムを生成することを特徴とする
    プログラム生成方法。 12、上記移流項に対して風上差分を施こす処理では、
    運動方程式に対して、流れの方向と該流れを表わす変数
    の名称と風上差分を施こす変数の名称と風上差分の種類
    を指定することにより、流れの上流方向の定義点を用い
    て近似し、かつ界面での物理量の入出力量が同一になる
    ようにすることにより、指定の風上差分を施こした離散
    化コードを生成することを特徴とする請求項11に記載
    のプログラム生成方法。 13、上記移流項に対して風上差分を施こす処理では、
    コントロールボリューム界面での風上差分の評価式を保
    持しており、偏微分方程式をコントロールボリューム界
    面にて部分積分した結果に対して風上差分の評価式を施
    こして、離散化コードを生成することを特徴とする請求
    項11に記載のプログラム生成方法。 14、上記移流項に対して風上差分を施こす処理では、
    風上差分を施こす方向の境界とコントロールボリユーム
    の界面との距離を求め、該距離に応じての風上評価式の
    複数種別のうちの1つを自動的に決定することを特徴と
    する請求項11に記載のプログラム生成方法。 15、上記移流項に対して風上差分を施こす処理では、
    コントロールボリューム界面で用いる風上評価式の種別
    を参照して1つの式を選択し、偏微分方程式中で風上差
    分を施こす項から流れを表わす変数の係数を求め、該係
    数および流れを表わす変数、風上差分を施こす変数を風
    上評価式に埋め込むことにより、風上差分を施こした離
    散化コードを生成することを特徴とする請求項11に記
    載のプログラム生成方法。 16、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力するとともに、ユーザに
    よる非標準の微分演算子の名称と該微分演算子に対する
    展開式と該展開式が成立する領域を指定し、かつ該偏微
    分方程式における該微分演算子を使用することにより、
    該偏微分方程式に対する離散化コードを生成することを
    特徴とするプログラム生成方法。 17、上記風上差分を施こす処理では、ユーザの指定し
    た非標準の微分演算子と、該微分演算子を用いた展開式
    を保持し、該偏微分方程式で該非標準の微分演算子が1
    階微分に用いられているか、あるいは2階微分に用いら
    れているかを判断し、1階微分に用いられている場合に
    は、該非標準の微分演算子を該展開式に置き換え、2階
    微分の内側に用いられている場合には、微小領域の解析
    対象領域での位置と、該非標準の微分演算子の成立する
    領域の記述から、該微小領域界面で成立する該非標準の
    微分演算子の展開式を求め、2階微分を該微小領域で部
    分積分した結果に対して、該非標準の微分演算子を該展
    開式に置き換えることにより、離散化コードを生成する
    ことを特徴とする請求項16に記載のプログラム生成方
    法。 18、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力して、数値シミュレーシ
    ョンプログラムを生成する際に、該偏微分方程式を風上
    差分を施こす項、非標準の微分演算子を用いる項、およ
    びそれ以外の項に分けて、各々に対して、DOループ数
    が最も少なく、かつDOループ長が最も長くなるように
    、DOループの範囲を決定し、上記の分けられた各々の
    項に対して離散式を生成することを特徴とするプログラ
    ム生成方法。 19、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力するとともに、風上差分
    を施こす方向、流れを表わす変数の名称、風上差分を施
    こす変数の名称、および風上差分の種類を指定すると、
    該偏微分方程式のうち風上差分を施こす偏微分方程式の
    風上項に対するDOループを決定する際に、解析対象領
    域の形状、境界条件、および風上差分の種類から、辺を
    共有する矩形ないし直方体の直和で表わされる最小数の
    小領域に形状を分割し、高次風上差分を用いる場合、風
    上差分を施こす方向に対して境界の1メッシュ内側の領
    域を分割し、境界の1メッシュ内側の小領域どうしで成
    立する偏微分方程式が同じ小領域を統合し、境界および
    境界の1メッシュ内側の小領域に対して境界条件により
    分割することにより、風上項の離散化コードが同一にな
    る小領域を求めることを特徴とする領域分割方法。 20、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力するとともに、ユーザが
    定義した非標準の差分展開式を適用する微分演算子を用
    いる場合、上記差分展開式の項に対するDOループを決
    定する際に、該非標準の微分演算子の展開式が成立する
    領域を指定し、解析領域の形状、および該微分演算子が
    1階微分または2階微分の内側に用いられているかを判
    断し、該非標準の微分演算子が用いられている項の形か
    ら形状により解析対象領域を分割し、分割結果に対して
    該非標準の微分演算子の展開式が異なる領域により分割
    し、さらに該非標準の微分演算子が2次微分の内側に用
    いられている場合にのみ、微小領域の上端と下端界面で
    用いる展開式が異なる領域を分割することにより、該非
    標準の微分演算子を用いた項の離散式が同一となる小領
    域を求めることを特徴とする領域分割方法。 21、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力すると、該偏微分方程式
    のうちの代入文に対して、更新される左辺変数が参照さ
    れる変数として右辺にも用いられている場合には、参照
    される変数ないし更新される変数をワーク変数に置き換
    える代入文を中間語上に生成し、該代入文に対して通常
    の離散化を施こして、参照される変数と更新される変数
    の不一致を回避した離散化コードを生成することを特徴
    とするプログラム生成方法。 22、物理現象を表わす解析領域の内点では偏微分方程
    式を、該解析領域の境界では偏微分方程式および境界条
    件式を、それぞれ成立するコントロールボリューム内に
    て偏微分方程式中の微分演算子を展開し得る離散点での
    変数の関係式である離散式を導き、該離散式をコード化
    してシミュレーションプログラムを生成するプログラム
    生成方法において、該物理現象が起こっている空間領域
    の形状情報、形状の格子分割情報、該物理現象を数値的
    に解析するために必要な変数および定数、該変数および
    定数を用いた偏微分方程式、初期値、境界条件、物性値
    の条件および計算手順を含む数式情報を表わす高水準の
    問題向き言語による記述を入力するとともに、代入文で
    記述された該偏微分方程式を微小領域で積分し、さらに
    該方程式の両辺を該微小領域の体積ないし面積で割算す
    ることにより離散式を生成する場合に、該微小領域の体
    積ないし面積による割り算を、該偏微分方程式の各項に
    施こすことなく、該偏微分方程式の式全体に1回だけ施
    こして、コードを生成することを特徴とするプログラム
    生成方法。
JP2061145A 1990-03-14 1990-03-14 プログラム生成方法およびそのための領域分割方法 Pending JPH03263174A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2061145A JPH03263174A (ja) 1990-03-14 1990-03-14 プログラム生成方法およびそのための領域分割方法
US07/668,257 US5450568A (en) 1990-03-14 1991-03-12 Program generation method for solving differential equations using mesh variables and staggered variables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2061145A JPH03263174A (ja) 1990-03-14 1990-03-14 プログラム生成方法およびそのための領域分割方法

Publications (1)

Publication Number Publication Date
JPH03263174A true JPH03263174A (ja) 1991-11-22

Family

ID=13162645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2061145A Pending JPH03263174A (ja) 1990-03-14 1990-03-14 プログラム生成方法およびそのための領域分割方法

Country Status (2)

Country Link
US (1) US5450568A (ja)
JP (1) JPH03263174A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997020276A1 (en) * 1995-12-01 1997-06-05 Sonnet Software, Inc. Conformal meshing for electromagnetic analysis of planar circuits
FR2759473B1 (fr) * 1997-02-12 1999-03-05 Inst Francais Du Petrole Methode pour simplifier la realisation d'un modele de simulation d'un processus physique dans un milieu materiel
JP2000057127A (ja) * 1998-08-11 2000-02-25 Matsushita Electric Ind Co Ltd 流体解析装置及び、プログラム記録媒体
JP2000293508A (ja) * 1999-04-01 2000-10-20 Takayuki Aoki 非等間隔格子において空間微係数を用いたポアソン方程式、拡散方程式および類似の偏微分方程式の高精度計算プログラム
US7099812B2 (en) * 1999-09-24 2006-08-29 Intrinsity, Inc. Grid that tracks the occurrence of a N-dimensional matrix of combinatorial events in a simulation using a linear index
US6591158B1 (en) 2000-06-09 2003-07-08 The Boeing Company Methods and apparatus for defining a low-curvature tool path
US20030122584A1 (en) * 2001-07-02 2003-07-03 Boehm Fritz A. Software program that transforms an N-dimensional matrix of integers to a linear index
AU2003904100A0 (en) * 2003-08-05 2003-08-21 The University Of Queensland Apparatus and method for early detection of cardiovascular disease using vascular imaging
FR2886742B1 (fr) * 2005-06-02 2007-07-27 Inst Francais Du Petrole Methode de changement d'echelle des permeabilites absolues pour construire un modele de simulation d'ecoulement

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809202A (en) * 1985-12-27 1989-02-28 Thinking Machines Corporation Method and apparatus for simulating systems described by partial differential equations
JPH07120276B2 (ja) * 1986-03-10 1995-12-20 株式会社日立製作所 シミュレーションプログラム生成方法
JPH07120351B2 (ja) * 1986-03-14 1995-12-20 株式会社日立製作所 シミュレーションプログラム生成方法
JPS63223869A (ja) * 1987-03-13 1988-09-19 Hitachi Ltd プログラム生成方法
JPH01307826A (ja) * 1988-06-06 1989-12-12 Hitachi Ltd プログラム生成方法
JP2765888B2 (ja) * 1988-12-02 1998-06-18 株式会社日立製作所 プログラム生成方法および実行方法

Also Published As

Publication number Publication date
US5450568A (en) 1995-09-12

Similar Documents

Publication Publication Date Title
Nicholson et al. pyomo. dae: A modeling and automatic discretization framework for optimization with differential and algebraic equations
EP1211624A2 (en) Methods and apparatus for automatically producing spreadsheet-based models
CN110738027B (zh) 生成电子表格公式的计算机实现的方法、设备和存储介质
JPH07120276B2 (ja) シミュレーションプログラム生成方法
CN110738037A (zh) 用于自动生成电子表格的方法、装置、设备及存储介质
JPH03263174A (ja) プログラム生成方法およびそのための領域分割方法
JPH01307826A (ja) プログラム生成方法
CN111402383B (zh) 应用于Houdini的Revit模型处理方法
Jesus et al. Layered shape grammars for procedural modelling of buildings
Apprich et al. Finite element approximation with hierarchical B-splines
CN112991490A (zh) 信息化的海图生产方法及系统
JPH0567179A (ja) 形状データ処理方法及び装置
JPH07120275B2 (ja) シミューションプログラム生成方法
CN114386200B (zh) 一种基于参数化模板技术的工程图生成方法及设备
JP3099621B2 (ja) 標準部品データベース用cadシステム
Harada et al. Automatic curve fairing system using visual languages
Bressan et al. A versatile strategy for the implementation of adaptive splines
Shi et al. A new interactive information visualization framework based on the object-oriented views of querying and visualizing databases
Scheffler et al. Graphical Modelling of a Meta‐Model of CAD Models for Deep Drawing Tools
CN117421089B (zh) 一种台阶类地理信息要素处理方法和装置
US6892374B2 (en) Systems and methods for generating an artwork representation according to a circuit fabrication process
Schwedler Integrated structural analysis using isogeometric finite element methods
US20230220811A1 (en) Method and device for using and producing multi-dimensional characteristic maps for controlling and regulating technical devices
Goloviznin et al. Dissipative and Dispersive Properties of Finite Difference Schemes for the Linear Transport Equation on A 4× 3 Metatemplate
JP5530732B2 (ja) 作業指示生成システム、方法及びプログラム