JPH01307826A - プログラム生成方法 - Google Patents
プログラム生成方法Info
- Publication number
- JPH01307826A JPH01307826A JP63139147A JP13914788A JPH01307826A JP H01307826 A JPH01307826 A JP H01307826A JP 63139147 A JP63139147 A JP 63139147A JP 13914788 A JP13914788 A JP 13914788A JP H01307826 A JPH01307826 A JP H01307826A
- Authority
- JP
- Japan
- Prior art keywords
- equation
- discrete
- boundary
- discretization
- control volume
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、プログラム生成方法に関し、特に数値計算プ
ログラムを作成する前の段階で、偏微分方程式と境界条
件で表わされる物理問題の数値シミュレーションを行う
際に、その偏微分方程式で表わされた物理法則の意味す
る保存性を維持させることにより、高精度な数値計算プ
ログラムを自動的に生成できるようにしたプログラム生
成方法に関する。
ログラムを作成する前の段階で、偏微分方程式と境界条
件で表わされる物理問題の数値シミュレーションを行う
際に、その偏微分方程式で表わされた物理法則の意味す
る保存性を維持させることにより、高精度な数値計算プ
ログラムを自動的に生成できるようにしたプログラム生
成方法に関する。
従来、差分法を実行するための離散式をコード化してプ
ログラムを作成するプログラム自動生成方法についでは
、例えば、情報処理学会「コンピュータシステム」シン
ポジウム、佐用他「数値シミュレーション語DEQSO
Ljに記載されている。これによると、内点では偏微分
方程式を、また境界では境界条件式を、それぞれテーラ
−展開により求めた離散化公式に従って離散式を導いて
、それらの離散式をコード化することによりプログラム
を生成していた。
ログラムを作成するプログラム自動生成方法についでは
、例えば、情報処理学会「コンピュータシステム」シン
ポジウム、佐用他「数値シミュレーション語DEQSO
Ljに記載されている。これによると、内点では偏微分
方程式を、また境界では境界条件式を、それぞれテーラ
−展開により求めた離散化公式に従って離散式を導いて
、それらの離散式をコード化することによりプログラム
を生成していた。
ここで、離散化とは、解析領域を複数の離散点と呼ばれ
る代表点により表わし、各微分演算項を離散点での値か
らなる近似式で表わすことである。
る代表点により表わし、各微分演算項を離散点での値か
らなる近似式で表わすことである。
この場合、偏微分方程式および境界条件式は、各離散点
における物理量どうしの関係式となるので、これを離散
式と呼んでいる。また、その離散化の公式を離散化規則
と呼ぶ。
における物理量どうしの関係式となるので、これを離散
式と呼んでいる。また、その離散化の公式を離散化規則
と呼ぶ。
第3図および第4図は、それぞれ従来の方法による離散
化規則を示す図である。
化規則を示す図である。
3次元空間を想定した場合、微分演算子は5次の10個
、すなわち、a / a x 、 a / a y 、
a /a z 、a2/ a x2.a2/ a y
2.a2/ a z2. div。
、すなわち、a / a x 、 a / a y 、
a /a z 、a2/ a x2.a2/ a y
2.a2/ a z2. div。
grad、 rot、 v”である。これらのうち、基
本となるものは、a / a x 、 a / a y
、 a / a z (7)3 ツであって、他の7
つは数学的にこれら3つの演算の組み合わせで示される
。第3図では、これらの基本となる3つの微分演算子a
/ a x + a / a y 。
本となるものは、a / a x 、 a / a y
、 a / a z (7)3 ツであって、他の7
つは数学的にこれら3つの演算の組み合わせで示される
。第3図では、これらの基本となる3つの微分演算子a
/ a x + a / a y 。
a / a Zに対する内点の離散式と、境界(下限)
離散式と、境界(上限)の離散式とが示されている。
離散式と、境界(上限)の離散式とが示されている。
また、第4図では、他の7つの微分演算子の定義、つま
り3つの基本演算子を用いた式が示されている。
り3つの基本演算子を用いた式が示されている。
従来の方法では、この数学的な規則に従って、a’/a
x2〜v2の式を展開していた。また、基本の演算子a
/ a x 、 a / a y 、 a / a
zに対して、従来の方法では、第3図に示すように、テ
ーラ−展開により求めた離散式を使用していた。すなわ
ち、各々、内点では中心差分を、境界では片側差分を、
それぞれ用いている。一般に、片側差分よりも中心差分
の方が近似精度は高いが、境界において中心差分を用い
ると離散参照点が領域外にはみ出るため、上記仕様とな
っていた。
x2〜v2の式を展開していた。また、基本の演算子a
/ a x 、 a / a y 、 a / a
zに対して、従来の方法では、第3図に示すように、テ
ーラ−展開により求めた離散式を使用していた。すなわ
ち、各々、内点では中心差分を、境界では片側差分を、
それぞれ用いている。一般に、片側差分よりも中心差分
の方が近似精度は高いが、境界において中心差分を用い
ると離散参照点が領域外にはみ出るため、上記仕様とな
っていた。
なお、本例では、3次元のものを示しているが、1次元
、2次元の場合も同じように考える。
、2次元の場合も同じように考える。
前述の従来方法では、次のような2つの課題が生じる。
その第1は、従来の方式では、偏微分方程式の物理的な
意味をとらえずに離散化を行っている点である。基本的
に偏微分方程式は、その物理現象の保存性を満たしてお
り、本来はその離散式も同じでなくではならない。しか
し、従来の方法では、微分演算子を全て数学的にとらえ
て、第3図に示すa / a x 、 a / a y
、 a / a z (7)合成トシテ離散化してい
るので、物理現象の保存性を近似した離散式とはならな
い。すなわち、領域の境界部分では、正確な物理現象を
表わしていないことになる。微分方程式には、物理的に
その微分演算の領域的な範囲(これを、本発明ではコン
トロールボリュームと呼ぶ)の演算を意味するものと勾
配の演算を意味するものの2種類がある。そして、各々
の意味を考えて、適切な離散化を行う必要がある。
意味をとらえずに離散化を行っている点である。基本的
に偏微分方程式は、その物理現象の保存性を満たしてお
り、本来はその離散式も同じでなくではならない。しか
し、従来の方法では、微分演算子を全て数学的にとらえ
て、第3図に示すa / a x 、 a / a y
、 a / a z (7)合成トシテ離散化してい
るので、物理現象の保存性を近似した離散式とはならな
い。すなわち、領域の境界部分では、正確な物理現象を
表わしていないことになる。微分方程式には、物理的に
その微分演算の領域的な範囲(これを、本発明ではコン
トロールボリュームと呼ぶ)の演算を意味するものと勾
配の演算を意味するものの2種類がある。そして、各々
の意味を考えて、適切な離散化を行う必要がある。
他の1つの課題は、境界上の点における離散式の生成で
ある。第3図に示したように、境界では、片側差分によ
る離散化規則を用いて、境界条件をmh化している。例
えば、aφ/ a X =φが点iの境界条件であると
すると、点iでは(φ、−φ□−0)/△X=φ工が離
散式となる。ところが、この離散式は、点i+(1/2
)でaφ/ a X =φを内点と同じ中心差分により
離散化した式と同一である。中心差分は片側差分より近
似精度が高く、従って境界条件を片側差分することは、
本来の成立式が半メツシュ内側にずれることになる。つ
まり、これもまた偏微分方程式の持つ保存則を近似した
離散式とはならない。
ある。第3図に示したように、境界では、片側差分によ
る離散化規則を用いて、境界条件をmh化している。例
えば、aφ/ a X =φが点iの境界条件であると
すると、点iでは(φ、−φ□−0)/△X=φ工が離
散式となる。ところが、この離散式は、点i+(1/2
)でaφ/ a X =φを内点と同じ中心差分により
離散化した式と同一である。中心差分は片側差分より近
似精度が高く、従って境界条件を片側差分することは、
本来の成立式が半メツシュ内側にずれることになる。つ
まり、これもまた偏微分方程式の持つ保存則を近似した
離散式とはならない。
本発明の目的は、これらの課題を解決し、偏微分方程式
が持つ保存則を満たした離散式の生成が可能であり、高
精度な数値計算用のシミュレーションプログラムを作成
することができるプログラム生成方法を提供することに
ある。
が持つ保存則を満たした離散式の生成が可能であり、高
精度な数値計算用のシミュレーションプログラムを作成
することができるプログラム生成方法を提供することに
ある。
上記目的を達成するため、本発明のプログラム生成方法
は、物理現象を表わす解析領域の内点では偏微分方程式
を、該解析領域の境界では偏微分方程式及び境界条件式
を、それぞれ成立する微少領域においてテーラ−展開に
より求めた離散化公式に従って離散式を導くことにより
、該離散式をコード化してシミュレーションプログラム
を生成するプログラム生成方法において、上記物理現象
を表わす偏微分方程式と該物理現象を解析する解析領域
と該解析領域の境界条件と、該解析領域の離散化に必要
な離散化規則と、該解析領域の代表点である離散点の座
標値とを入力し、先ず該解析領域を上記座標値の各離散
点を含む互いに重複しない微小領域に分割し、上記偏微
分方程式の中から上記微小領域の演算を意味する微分演
算子を抽出し、該微分演算子を上記離散化規則に従って
離散化することにより中間コードである展開式を得、次
に上記解析領域の境界部分に対してのみは特別な演算を
行わせるため、該展開式の中の境界勾配の演算を意味す
る項を抽出し、これを上記境界条件で置換し、次に上記
展開式中の勾配演算を意味する微分演算子を上記離散化
規則に従って離散化することにより離散式を生成し、最
後に該離散式をコード化してプログラムを自動生成する
ことに特徴がある。
は、物理現象を表わす解析領域の内点では偏微分方程式
を、該解析領域の境界では偏微分方程式及び境界条件式
を、それぞれ成立する微少領域においてテーラ−展開に
より求めた離散化公式に従って離散式を導くことにより
、該離散式をコード化してシミュレーションプログラム
を生成するプログラム生成方法において、上記物理現象
を表わす偏微分方程式と該物理現象を解析する解析領域
と該解析領域の境界条件と、該解析領域の離散化に必要
な離散化規則と、該解析領域の代表点である離散点の座
標値とを入力し、先ず該解析領域を上記座標値の各離散
点を含む互いに重複しない微小領域に分割し、上記偏微
分方程式の中から上記微小領域の演算を意味する微分演
算子を抽出し、該微分演算子を上記離散化規則に従って
離散化することにより中間コードである展開式を得、次
に上記解析領域の境界部分に対してのみは特別な演算を
行わせるため、該展開式の中の境界勾配の演算を意味す
る項を抽出し、これを上記境界条件で置換し、次に上記
展開式中の勾配演算を意味する微分演算子を上記離散化
規則に従って離散化することにより離散式を生成し、最
後に該離散式をコード化してプログラムを自動生成する
ことに特徴がある。
本発明においでは、偏微分方程式が持つ保存性を精度よ
く近似した離散式を生成するために、解析領域を離散点
の各座標値を中心とした微小領域(これを、本発明では
コントロールボリュームと呼ぶ)に分割し、この微小領
域を用いて処理する方式(以下、この方式をコントロー
ルボリューム方式と呼ぶ)によって自動離散化を実現し
ている。
く近似した離散式を生成するために、解析領域を離散点
の各座標値を中心とした微小領域(これを、本発明では
コントロールボリュームと呼ぶ)に分割し、この微小領
域を用いて処理する方式(以下、この方式をコントロー
ルボリューム方式と呼ぶ)によって自動離散化を実現し
ている。
数式処理において、コントロールボリューム方式を用い
た離散化を自動化するためには、次の3つの動作原理を
用いる。
た離散化を自動化するためには、次の3つの動作原理を
用いる。
i)第1の原理は、偏微分方程式にある微分演算子の物
理的な意味の把握、つまり微分演算子がコントロールボ
リュームの演算を意味するものか、あるいは勾配の演算
を意味するものかを自動的に把握することである。
理的な意味の把握、つまり微分演算子がコントロールボ
リュームの演算を意味するものか、あるいは勾配の演算
を意味するものかを自動的に把握することである。
ii)第2の原理は、第1の原理により把握した2種類
の微分演算に対して、各々物理的意味のある離散化規則
を適用し、自動的に離散化することである。
の微分演算に対して、各々物理的意味のある離散化規則
を適用し、自動的に離散化することである。
これら第1と第2の原理により、課題の1つである偏微
分方程式の物理的な意味をとらえた離散化が実現できる
。
分方程式の物理的な意味をとらえた離散化が実現できる
。
1ii)第3の原理は、境界上の点の離散化において、
偏微分方程式を離散化する際に、その境界の勾配の演算
を意味する項に対し境界条件を自動的に取り入れること
である。
偏微分方程式を離散化する際に、その境界の勾配の演算
を意味する項に対し境界条件を自動的に取り入れること
である。
これによって、もう1つの課題である境界上における保
存性を満たす離散式の生成が可能となる。
存性を満たす離散式の生成が可能となる。
以下、上記第1.第2および第3の各原理に従った作用
を述べる。
を述べる。
第1の原理、つまり偏微分方程式中の微分演算子の物理
的意味を把握する方法は、次のような動作を行う。例え
ば、第6図に示す偏微分方程式。
的意味を把握する方法は、次のような動作を行う。例え
ば、第6図に示す偏微分方程式。
div(grad(φ))=α(式503)についでは
、 divをコントロールボリュームの演算を意味する
微分演算子、gradを勾配の演算を意味する微分演算
子として把握する。他の場合にも各々の微分演算子につ
いて、式の形式および式中に現われた位置によりいずれ
の意味を示すのかを判断する。
、 divをコントロールボリュームの演算を意味する
微分演算子、gradを勾配の演算を意味する微分演算
子として把握する。他の場合にも各々の微分演算子につ
いて、式の形式および式中に現われた位置によりいずれ
の意味を示すのかを判断する。
第2の原理、つまり第1の原理で判断した各微分演算子
に対して、各々物理的に意味のある離散化を行う方法は
次のような動作を行う。
に対して、各々物理的に意味のある離散化を行う方法は
次のような動作を行う。
例えば、第6図に示した偏微分方程式div(grad
(φ))=αにおいて、divはコントロールボリュー
ムの演算を意味している(第1の原理により)。そこで
、第6図に示すように、内点(ij)でのコントロール
ボリュームでは、X方向がi+(1/2)から1−(1
/2)、X方向がj−(1/2)からj+(1/2)と
すると、点(ij)の収支はその面積の平均として、次
のように離散化する。
(φ))=αにおいて、divはコントロールボリュー
ムの演算を意味している(第1の原理により)。そこで
、第6図に示すように、内点(ij)でのコントロール
ボリュームでは、X方向がi+(1/2)から1−(1
/2)、X方向がj−(1/2)からj+(1/2)と
すると、点(ij)の収支はその面積の平均として、次
のように離散化する。
(aφ/a X)1弓、、−(aφ/ a xl=−シ
、J△X Δy ・ ・ ・ ・ ・ ・ ・ ・ ・ (1)これが、
コントロールボリュームの演算を意味する微分演算子に
対する離散化である。
、J△X Δy ・ ・ ・ ・ ・ ・ ・ ・ ・ (1)これが、
コントロールボリュームの演算を意味する微分演算子に
対する離散化である。
さらに、gradは勾配の演算を意味するものであるた
め、その離散化、例えば中心差分(aφ/a×)=(φ
i+i−φt4) /△x、(aφ/む)=(φ司−φ
=−L)/△yを用いて離散化し、次の離散式を得る。
め、その離散化、例えば中心差分(aφ/a×)=(φ
i+i−φt4) /△x、(aφ/む)=(φ司−φ
=−L)/△yを用いて離散化し、次の離散式を得る。
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (2)
このように、第1および第2の原理を用いて得られた内
点の離散化は、コントロールボリューム方式による離散
化となる。
このように、第1および第2の原理を用いて得られた内
点の離散化は、コントロールボリューム方式による離散
化となる。
第3の原理、つまり境界条件の自動的な取り込みに対し
では、次のような処理を行う。
では、次のような処理を行う。
境界上の点の離散化の際に、第1の原理によりその微分
演算子の意味を把握し、第2の原理によりコントロール
ボリュームの演算を意味する微分演算子の離散化を行う
。次に、第3の原理によりその離散式中にある境界の勾
配演算を意味する項を自動抽出して、さらにこれを境界
条件に置換える。この第3の原理により、境界における
離散化もコントロールボリューム方式によるものと同一
となる。
演算子の意味を把握し、第2の原理によりコントロール
ボリュームの演算を意味する微分演算子の離散化を行う
。次に、第3の原理によりその離散式中にある境界の勾
配演算を意味する項を自動抽出して、さらにこれを境界
条件に置換える。この第3の原理により、境界における
離散化もコントロールボリューム方式によるものと同一
となる。
以下、本発明の原理および実施例を、図面により詳細に
説明する。
説明する。
第5図は1本発明におけるコントロールボリューム方式
の原理説明図である。
の原理説明図である。
最初に、偏微分方程式の持つ保存則を近似した離散化方
式であるコントロールボリューム方式について詳述する
。
式であるコントロールボリューム方式について詳述する
。
前述のように、解析領域をコントロールボリュームと呼
ぶ小領域に分割し、各小領域における収支を考えた偏微
分方程式の離散化を行う方法をコントロールボリューム
方式と呼ぶ。その場合に、各離散化点を1つのコントロ
ールボリュームが取り囲むように、かつ解析領域全体を
互いに重なり合わない複数個のコントロールボリューム
に分割する。
ぶ小領域に分割し、各小領域における収支を考えた偏微
分方程式の離散化を行う方法をコントロールボリューム
方式と呼ぶ。その場合に、各離散化点を1つのコントロ
ールボリュームが取り囲むように、かつ解析領域全体を
互いに重なり合わない複数個のコントロールボリューム
に分割する。
第5図において、破線で囲まれた領域が2次元の解析領
域におけるコントロールボリューム403である。点A
−D(404〜4070:対す7.mlントロールボリ
ュームが示されている。例えば、内点A(404)、B
(405)では、各点を囲むΔX、Δyを1辺とするコ
ントロールボリュームを、また境界上の点C(406)
では、境界を1辺とする内点の半分の面積のコントロー
ルボリュームを。
域におけるコントロールボリューム403である。点A
−D(404〜4070:対す7.mlントロールボリ
ュームが示されている。例えば、内点A(404)、B
(405)では、各点を囲むΔX、Δyを1辺とするコ
ントロールボリュームを、また境界上の点C(406)
では、境界を1辺とする内点の半分の面積のコントロー
ルボリュームを。
また角点D(407)では、境界を2辺とする内点の1
/4の面積のコントロールボリュームを、それぞれ定義
する。これにより、全離散点のコン1〜ロールボリユー
ムの総和が、解析領域に一致する。
/4の面積のコントロールボリュームを、それぞれ定義
する。これにより、全離散点のコン1〜ロールボリユー
ムの総和が、解析領域に一致する。
そして、偏微分方程式を各々のコントロールボリューム
にわたって積分することにより離散式を算出する。積分
により得られた離散式は、各コントロールボリュームに
おける偏微分方程式の示す物理量の収支を示しているこ
とになる。コントロールボリュームの総領域は、解析領
域自体であるため、全コントロールボリュームから得ら
れた離散式は、解析領域に対する偏微分方程式が示す収
支を表わしている。つまり、このことが偏微分方程式の
持つ保存則を満たしているということである。
にわたって積分することにより離散式を算出する。積分
により得られた離散式は、各コントロールボリュームに
おける偏微分方程式の示す物理量の収支を示しているこ
とになる。コントロールボリュームの総領域は、解析領
域自体であるため、全コントロールボリュームから得ら
れた離散式は、解析領域に対する偏微分方程式が示す収
支を表わしている。つまり、このことが偏微分方程式の
持つ保存則を満たしているということである。
第6図および第7図は、それぞれコントロールボリュー
ム方式における離散化の考え方を示す図である。
ム方式における離散化の考え方を示す図である。
第6図は、第5図の内点A(404)に対するコントロ
ールボリューム(501)での離散化例を示すものであ
る。第5図に示した解析領域(401)で、偏微分方程
式div(grad(φ))=α(式503)が成立す
る場合、内点Aを含むコントロールボリューム(501
)においてもこの式(503)が成立する。いま、φを
変数、αを定数とし、φの収支を考える。点Aに対する
コントロールボリューム(501)は、X方向に△x
(504)、X方向に△y(505)の大きさを持ち、
座標上、X方向はx i−4からXL+奇まで、X方向
はyニー春からy工→までがそれぞれ定義される。
ールボリューム(501)での離散化例を示すものであ
る。第5図に示した解析領域(401)で、偏微分方程
式div(grad(φ))=α(式503)が成立す
る場合、内点Aを含むコントロールボリューム(501
)においてもこの式(503)が成立する。いま、φを
変数、αを定数とし、φの収支を考える。点Aに対する
コントロールボリューム(501)は、X方向に△x
(504)、X方向に△y(505)の大きさを持ち、
座標上、X方向はx i−4からXL+奇まで、X方向
はyニー春からy工→までがそれぞれ定義される。
このコントロールボリューム内で、偏微分方程式(50
3)を積分する。以下、変形式で表わす。
3)を積分する。以下、変形式で表わす。
div (grad (φ))=α(503)→/ c
vdiv (grad (φ))ds=fovα・・・
・・ (3)ガウスの発散定理より、 → f grad(φ ) −ndu= rx
* Δ X Δ y ・ 拳 −(4)ここで
、−nはノーマル方向のベクトルであり、→(aφ/
a X)i+4J・Δy−(clφ/aX)□−÷4・
△y+(aφ/ay)0.、+1・△X−(aφ/ay
)、4−1・△x=α・ΔX△y・・・・ll・・・・
拳・ (5)上式(5)の左辺の各項は、φの各辺df
、 bh、 bd。
vdiv (grad (φ))ds=fovα・・・
・・ (3)ガウスの発散定理より、 → f grad(φ ) −ndu= rx
* Δ X Δ y ・ 拳 −(4)ここで
、−nはノーマル方向のベクトルであり、→(aφ/
a X)i+4J・Δy−(clφ/aX)□−÷4・
△y+(aφ/ay)0.、+1・△X−(aφ/ay
)、4−1・△x=α・ΔX△y・・・・ll・・・・
拳・ (5)上式(5)の左辺の各項は、φの各辺df
、 bh、 bd。
hfにおける収支(502)を示していることがわかる
(第6図参照)。
(第6図参照)。
上式(5)はコントロールボリュームに対する収支式で
あり、点Aはこのコントロールボリュームの平均と考え
ると、離散式は上式を面積ΔX・△yで割った式となる
。
あり、点Aはこのコントロールボリュームの平均と考え
ると、離散式は上式を面積ΔX・△yで割った式となる
。
△X
各微分演算子をテーラ−展開による中心差分により離散
化し、次式(7)を得る。
化し、次式(7)を得る。
・・・・・・・・・・・ (7)
これが、コントロールボリューム方式により得られる内
点の離散式となる。
点の離散式となる。
次に、第7図において、境界点B(405)に対するコ
ントロールボリューム(601)での離散式例を示す。
ントロールボリューム(601)での離散式例を示す。
コントロールボリューム(601)内では、偏微分方程
式div −(grad (φ))=α(602)が、
x=iの境界上では境界条件grad (φ)=β(6
03)が成立するものとして、内点と同じようにφを変
数、αを定数として、φの収支を考える。
式div −(grad (φ))=α(602)が、
x=iの境界上では境界条件grad (φ)=β(6
03)が成立するものとして、内点と同じようにφを変
数、αを定数として、φの収支を考える。
点Bに対するコントロールボリューム(601)は、X
方向にΔx/2(604)、X方向にΔy(605)の
大きさを持ち、座標上、X方向はX工からX i+4ま
で、X方向はy、、−圭から:!/j+4までが、それ
ぞれ定義されている。
方向にΔx/2(604)、X方向にΔy(605)の
大きさを持ち、座標上、X方向はX工からX i+4ま
で、X方向はy、、−圭から:!/j+4までが、それ
ぞれ定義されている。
このコントロールボリューム(601)内で偏微分方程
式(602)を積分する。内点の場合と同じように式を
変形すると、次式(8)を得る。
式(602)を積分する。内点の場合と同じように式を
変形すると、次式(8)を得る。
(δφ/ a X)i+Lj jΔy−(a φ/ax
)t−4a・△y+<aφ/ a y)i=丹・Δx/
2−(aφ/ ay ) x J−i・△x/2=α、
・・・・・・・・・・・・・ (8)これもまた、左辺
の各項はφの各辺df、ac。
)t−4a・△y+<aφ/ a y)i=丹・Δx/
2−(aφ/ ay ) x J−i・△x/2=α、
・・・・・・・・・・・・・ (8)これもまた、左辺
の各項はφの各辺df、ac。
dc、faにおける各収支(607)を表わしている。
これらのうち、辺acにおける収支(aφ/aX)=Δ
yは、境界条件に他ならない。従って、上式(8)は、
次のように書き換えることができる。
yは、境界条件に他ならない。従って、上式(8)は、
次のように書き換えることができる。
Ca φ/ a x)=、hΔy−β・Δy + Ca
φ/ a y)i=4・△x/2−(aφ/δy)よ
J−1・△x / 2 = (α□ΔXΔy)/2 ・
・・・・・・・・・・・・・ (9)従って、点Bに対
する離散式は、式(9)をさらに面積で割り、各微分演
算子をテーラ−展開による中心差分により離散化した式
となる。すなわち、・・・・・・・・・・・・ (10
) 以上がコントロールボリューム方式による自動離散化で
あり、またその生成された離散式を使用した精度のよい
シミュレーションプログラムの自動生成方法である。
φ/ a y)i=4・△x/2−(aφ/δy)よ
J−1・△x / 2 = (α□ΔXΔy)/2 ・
・・・・・・・・・・・・・ (9)従って、点Bに対
する離散式は、式(9)をさらに面積で割り、各微分演
算子をテーラ−展開による中心差分により離散化した式
となる。すなわち、・・・・・・・・・・・・ (10
) 以上がコントロールボリューム方式による自動離散化で
あり、またその生成された離散式を使用した精度のよい
シミュレーションプログラムの自動生成方法である。
第2図は、本発明の一実施例を示すプログラム生成方法
の全体の処理フローチャートである。
の全体の処理フローチャートである。
入力情報(101)を与えると、処理装置により計算精
度の高い数値計算プログラムを自動生成する。その手順
として3つの流れがあって、第1の流れで、入力情報(
101)の中の解析領域(106)とメツシュ情報(1
080)を入力とした領域分割処理(1021)により
、離散点座標値データ(108)を求める。第2の流れ
では、この離散点座標値データ(108)と入力情報(
101)の偏微分方程式(104)、境界条件(105
)および離散化規則(107)を入力として離散式生成
処理(102)により、離散式1(123)を生成する
。ここでは、コントロールボリューム方式により計算精
度の高い離散式を生成する。第3の流れでは、この離散
式1(123)と、入力情報(101)中の解析対象変
数(109)を入力としたプログラム作成処理(125
)により、生成プログラム(103)を出力する。これ
らのうち、領域分割処理(1021)とプログラム作成
処理(125)は、公知の方法を用いて処理されるが、
離散式生成処理(102)は本発明による新しい方法で
処理される。
度の高い数値計算プログラムを自動生成する。その手順
として3つの流れがあって、第1の流れで、入力情報(
101)の中の解析領域(106)とメツシュ情報(1
080)を入力とした領域分割処理(1021)により
、離散点座標値データ(108)を求める。第2の流れ
では、この離散点座標値データ(108)と入力情報(
101)の偏微分方程式(104)、境界条件(105
)および離散化規則(107)を入力として離散式生成
処理(102)により、離散式1(123)を生成する
。ここでは、コントロールボリューム方式により計算精
度の高い離散式を生成する。第3の流れでは、この離散
式1(123)と、入力情報(101)中の解析対象変
数(109)を入力としたプログラム作成処理(125
)により、生成プログラム(103)を出力する。これ
らのうち、領域分割処理(1021)とプログラム作成
処理(125)は、公知の方法を用いて処理されるが、
離散式生成処理(102)は本発明による新しい方法で
処理される。
従って、以下は主として1、本発明の特徴とする部分で
ある離散式生成処理プログラム(102)について、詳
述する。
ある離散式生成処理プログラム(102)について、詳
述する。
最初に、第2図における入力情報(101)について、
説明する。
説明する。
第13図は、第2図におけるプログラム入力情報を示す
図である。
図である。
2次元矩形領域で、第13図に示す物理モデル(130
)を解く場合、その下に記載された入力情報(131)
を与える。先ず、メツシュ情報(MES H)(108
0)は、メツシュ刻みを示すものであり、MESH文で
指示する。ここでは、X方向はOから5まで1刻み、Y
方向はOから4まで1刻みが示されている。解析領域情
報(106)は、解析領域がX方向が1〜5、Y方向が
1〜4であることをFREGION文で指示する。境界
条件(105)は、REGION文とB CON D文
を用いて、式とその成立境界部分を示す。例えば、第2
種境界条件δU / a X =αが境界座標X=1゜
Y=1〜4の範囲で成立する場合、先ずこの領域範囲に
REGION文でLEFTという名称を付け、次にBC
OND文でLEFT領域にDX(u)=α、つまりaU
/δX=αが成立することを指示する。偏微分方程式(
104)と解析対象変数(109)は、5OLVE文で
指示される。離散化規則(107)は、第13図では例
示されていないが、式で与えることができる。また、離
散化規則(107)が与えられていない場合には、シス
テムのデフォルトで規定した離散化規則を用いる。
)を解く場合、その下に記載された入力情報(131)
を与える。先ず、メツシュ情報(MES H)(108
0)は、メツシュ刻みを示すものであり、MESH文で
指示する。ここでは、X方向はOから5まで1刻み、Y
方向はOから4まで1刻みが示されている。解析領域情
報(106)は、解析領域がX方向が1〜5、Y方向が
1〜4であることをFREGION文で指示する。境界
条件(105)は、REGION文とB CON D文
を用いて、式とその成立境界部分を示す。例えば、第2
種境界条件δU / a X =αが境界座標X=1゜
Y=1〜4の範囲で成立する場合、先ずこの領域範囲に
REGION文でLEFTという名称を付け、次にBC
OND文でLEFT領域にDX(u)=α、つまりaU
/δX=αが成立することを指示する。偏微分方程式(
104)と解析対象変数(109)は、5OLVE文で
指示される。離散化規則(107)は、第13図では例
示されていないが、式で与えることができる。また、離
散化規則(107)が与えられていない場合には、シス
テムのデフォルトで規定した離散化規則を用いる。
次に、本発明の出力情報について、詳述する。
第14図は、本発明の出力情報である生成プログラム例
を示す図である。
を示す図である。
この例では、第13図に示す入力情報例に対する出力情
報の生成プログラム(103)を示している。生成FO
RTRAN(140)は、5つのD○ループから構成さ
れる。これは、第13図に示す物理モデルに示した4辺
の境界および内点に対するコードである。例えば、第1
4図のDoループ(141)は、y=1の境界に対する
FORTRANコーTR間じ<Doループ(142)は
内点に対するFORTRANコーTR間る。¥¥C0N
5には、離散式の定数、¥¥MTRXIから¥¥MTR
X5には、離散式のφ0,1−□、φト、+J+φ□、
。
報の生成プログラム(103)を示している。生成FO
RTRAN(140)は、5つのD○ループから構成さ
れる。これは、第13図に示す物理モデルに示した4辺
の境界および内点に対するコードである。例えば、第1
4図のDoループ(141)は、y=1の境界に対する
FORTRANコーTR間じ<Doループ(142)は
内点に対するFORTRANコーTR間る。¥¥C0N
5には、離散式の定数、¥¥MTRXIから¥¥MTR
X5には、離散式のφ0,1−□、φト、+J+φ□、
。
φ、ヤ0,1.φi+J+□の係数を入れる。全雛散点
について、上述のような離散式の定数と係数を入力する
コードを生成する。
について、上述のような離散式の定数と係数を入力する
コードを生成する。
これらの¥¥C0N5および¥¥MTRX1〜¥¥MT
RX5を、第14図に示す連立1次方程式(145)に
して、これを解くことによりφの解を求めることができ
る。以上が、第2図における出力の生成プログラム(1
03)の概要である。
RX5を、第14図に示す連立1次方程式(145)に
して、これを解くことによりφの解を求めることができ
る。以上が、第2図における出力の生成プログラム(1
03)の概要である。
次に、第2図に示す各処理の流れについて、詳述する。
第2図における領域分割処理(1021)は、入力情報
(101)である解析領域(106)およびメツシュ情
報(1080)より離散点を求め、離散点座標値データ
(108)を生成するものである。
(101)である解析領域(106)およびメツシュ情
報(1080)より離散点を求め、離散点座標値データ
(108)を生成するものである。
領域分割処理(1021)の次に、第2図の離散式生成
処理(102)を実行する。
処理(102)を実行する。
第1図は、本発明の一実施例を示す離散式生成処理のフ
ローチャートである。
ローチャートである。
前述のように、領域分割処理(1021)で生成された
離散点座標値データ(108)と、入力情報のうちの偏
微分方程式(104)、境界条件(105)および離散
化規則(107)を入力として、最初にコントロールボ
リューム離散化処理(111)を行う。
離散点座標値データ(108)と、入力情報のうちの偏
微分方程式(104)、境界条件(105)および離散
化規則(107)を入力として、最初にコントロールボ
リューム離散化処理(111)を行う。
この処理は、偏微分方程式の中からコントロールボリュ
ームを示す微分演算子を自動的に抽出し、離散化する。
ームを示す微分演算子を自動的に抽出し、離散化する。
目的の微分演算子の抽出は、偏微分方程式の物理的な意
味を自動的に推定することによって可能であり、この詳
細なフローは後述する。
味を自動的に推定することによって可能であり、この詳
細なフローは後述する。
また、離散化処理は、全離散点について、各々与えられ
た離散化規則(107)がある場合にはその規則に従い
、ない場合にはシステムがデフォルトとして規定した離
散化規則に従う。なお、各離散点は、各コントロールボ
リュームの代表点として離散化が行われる。コントロー
ルボリュームの大きさ、位置についても、離散化規則中
に規定される。これらの離散化規則の詳細についでは、
後述する。
た離散化規則(107)がある場合にはその規則に従い
、ない場合にはシステムがデフォルトとして規定した離
散化規則に従う。なお、各離散点は、各コントロールボ
リュームの代表点として離散化が行われる。コントロー
ルボリュームの大きさ、位置についても、離散化規則中
に規定される。これらの離散化規則の詳細についでは、
後述する。
コントロールボリューム離散化処理(111)により生
成された中間コードを、以下展開式1%式%) 次に、全離散点の座標値(108)に対して、盾散点振
り分は処理(115)を行う。すなわち、全離散点の中
から、境界をコントロールボリュームに含まれる離散点
と内点とに振り分ける。そして、前者の境界の点におけ
る展開式1(113)についでは、境界条件置換処理(
116)を行う。この処理(116)は、展開式1(1
13)中にある境界の勾配を示す項を自動的に抽出し、
与えられた境界条件(105)に置き換える処理である
。この置き換え処理(116)により生成された中間コ
ードを展開式2(118)と呼ぶ。
成された中間コードを、以下展開式1%式%) 次に、全離散点の座標値(108)に対して、盾散点振
り分は処理(115)を行う。すなわち、全離散点の中
から、境界をコントロールボリュームに含まれる離散点
と内点とに振り分ける。そして、前者の境界の点におけ
る展開式1(113)についでは、境界条件置換処理(
116)を行う。この処理(116)は、展開式1(1
13)中にある境界の勾配を示す項を自動的に抽出し、
与えられた境界条件(105)に置き換える処理である
。この置き換え処理(116)により生成された中間コ
ードを展開式2(118)と呼ぶ。
次に、境界を含むコントロールボリュームを代表する離
散点からは展開式2(118)を入力とし、また内点に
ついでは展開式1(113)を入力として、勾配離散化
処理(121)を行う。この処理(121)は、入力さ
れた展開式(113,118)から微分演算子を抽出し
、コントロールボリューム離散化処理(111)と同じ
ように、与えられた離散化規則(107)、またはデフ
ォルトとして規定した離散化規則に従って離散化を行う
(121)。
散点からは展開式2(118)を入力とし、また内点に
ついでは展開式1(113)を入力として、勾配離散化
処理(121)を行う。この処理(121)は、入力さ
れた展開式(113,118)から微分演算子を抽出し
、コントロールボリューム離散化処理(111)と同じ
ように、与えられた離散化規則(107)、またはデフ
ォルトとして規定した離散化規則に従って離散化を行う
(121)。
なお、ここで展開される微分演算子は、全て勾配を示す
ものである。
ものである。
以上により、第1図に示すコントロールボリューム方式
を用いた離散化処理、つまり離散式生成処理(110)
が終了する。これによって得られた中間コードは、離散
式1(123)と呼ばれる。
を用いた離散化処理、つまり離散式生成処理(110)
が終了する。これによって得られた中間コードは、離散
式1(123)と呼ばれる。
第1S図は、第1図における中間コード・離散式1の一
例を示す図である。
例を示す図である。
入力情報(101)の偏微分方程式(104)に対する
離散式(150)は、離散式生成処理(110)により
、次のようになる。
離散式(150)は、離散式生成処理(110)により
、次のようになる。
φ、ヤ□−φ、 φ、−φ1−1
△Xエヤ、+ΔX工
そして、これが図示したテキスト形式の中間コード・離
散式1(123)となる。
散式1(123)となる。
再び第2図に戻って、離散式生成処理(102)の次の
処理であるプログラム作成処理(125)について、詳
述する。この処理(125)は、離散式1(123)と
入力情報(101)の1つである解析対象変数(109
)を入力として、生成プログラム(L 03)を出力す
る処理である。
処理であるプログラム作成処理(125)について、詳
述する。この処理(125)は、離散式1(123)と
入力情報(101)の1つである解析対象変数(109
)を入力として、生成プログラム(L 03)を出力す
る処理である。
第16図は、第2図におけるプログラム作成処理の概要
を示す図である。
を示す図である。
解析対象変数(109)と離散式1(123)とを入力
として、始めに、括弧展開処理(161)を行う。この
処理(161)は、入力された離散式1(123)に対
して、対象変数(109)について括弧展開する。この
括弧展開処理(161)が済んだ離散式を離散式2(1
62)と呼ぶ。
として、始めに、括弧展開処理(161)を行う。この
処理(161)は、入力された離散式1(123)に対
して、対象変数(109)について括弧展開する。この
括弧展開処理(161)が済んだ離散式を離散式2(1
62)と呼ぶ。
第17図は、第16図における離散式1と離散式2の一
例を示す図である。
例を示す図である。
第17図に示す離散式1 (120)の内容(150)
は、第15図に示したものと同じであるが、これに対す
る離散式2(162)は第17図の式(170)となる
。対象変数(109)φについて、括弧展開した結果と
なっている。
は、第15図に示したものと同じであるが、これに対す
る離散式2(162)は第17図の式(170)となる
。対象変数(109)φについて、括弧展開した結果と
なっている。
次に、第16図に示すように、この離散式2(162)
に対して、定数抽出処理(163)を行う。
に対して、定数抽出処理(163)を行う。
これは、離散式2(162)の中から対象変数(109
)を含まない項を抽出する処理である。例えば、第17
図の例の場合、離散式2(170)中の項−at(17
1)がこれに該当する。さらに、抽出した項をプログラ
ム出力処理1(164,)により、定数項としてプログ
ラムに出力する。最後に、第16図の処理(165)〜
(167)に示すように、解析対象変数(109)の各
添字ごとに(165)、係数抽出処理(166)を行い
、さらにプログラム出力処理2(167)を行う。例え
ば、第17図の離散式2の例(170)では、φ□ヤ、
の係数として(172)を、φ□の係数として(173
)を、φ1−□の係数として(174)をそれぞれ抽出
し、プログラム(103)に出力する。
)を含まない項を抽出する処理である。例えば、第17
図の例の場合、離散式2(170)中の項−at(17
1)がこれに該当する。さらに、抽出した項をプログラ
ム出力処理1(164,)により、定数項としてプログ
ラムに出力する。最後に、第16図の処理(165)〜
(167)に示すように、解析対象変数(109)の各
添字ごとに(165)、係数抽出処理(166)を行い
、さらにプログラム出力処理2(167)を行う。例え
ば、第17図の離散式2の例(170)では、φ□ヤ、
の係数として(172)を、φ□の係数として(173
)を、φ1−□の係数として(174)をそれぞれ抽出
し、プログラム(103)に出力する。
第17図の生成FORTRAN(1700)は、離散式
2(170)に対する出力である。¥¥C0N5(I)
に定数を、¥¥MTRxにφ、、0.φ□。
2(170)に対する出力である。¥¥C0N5(I)
に定数を、¥¥MTRxにφ、、0.φ□。
φ、−0の係数をそれぞれ入力するコードを、生成プロ
グラムとして出力する。
グラムとして出力する。
以上で、第2図の第3の処理であるプログラム作成処理
(125)の概要を、第16図と第17図を用いて説明
した。
(125)の概要を、第16図と第17図を用いて説明
した。
次に、第2図に示す3つの処理(1021,102,1
25)のうち1本発明の特徴的部分である離散式生成処
理(110)について、詳述する。
25)のうち1本発明の特徴的部分である離散式生成処
理(110)について、詳述する。
初めに、微分演算子の抽出、つまりコントロールボリュ
ームまたは勾配を示す微分演算子の自動抽出処理につい
て、述べる。この処理は、第1図におけるコントロール
ボリューム離散化処理(111)にて、コントロールボ
リュームを示す微分演算子を選択することにより実施し
ているり第8図は、本発明における判定規則を示す図で
ある。本発明の選択方法は、第8図の判定規則により自
動判定することを可能にしている。
ームまたは勾配を示す微分演算子の自動抽出処理につい
て、述べる。この処理は、第1図におけるコントロール
ボリューム離散化処理(111)にて、コントロールボ
リュームを示す微分演算子を選択することにより実施し
ているり第8図は、本発明における判定規則を示す図で
ある。本発明の選択方法は、第8図の判定規則により自
動判定することを可能にしている。
div、 grad、 rotの各微分演算子は、それ
ぞれ物理的な性質を示している。そこで、式中に現われ
た場合、全てdivはコントロールボリュームを、gr
adとrotは勾配を示すものと定義した(規則81)
。
ぞれ物理的な性質を示している。そこで、式中に現われ
た場合、全てdivはコントロールボリュームを、gr
adとrotは勾配を示すものと定義した(規則81)
。
これらより展開されたa / a X 、δ/ay、a
/δ2も同じである(規則82)。
/δ2も同じである(規則82)。
次に、δ/aX、a/δy、a/azが式中にそのまま
現われた場合には、以下に述べる理由により規則(82
)に示すような定義を行う。
現われた場合には、以下に述べる理由により規則(82
)に示すような定義を行う。
i)境界条件式に現われる微分演算子δ/ a X 。
a/ay、a/azは、全て1階微分項の中に現われる
。例えば、aφ/δX=α等の形式となる。
。例えば、aφ/δX=α等の形式となる。
これは、境界勾配に他ならない。従って、この微分演算
子a/ax、a/ay、a/a zを、勾配と定義する
。
子a/ax、a/ay、a/a zを、勾配と定義する
。
次に、2階の偏微分方程式について示す。これは、一般
によく知られているように、 div(k 、 grad(φ)+V、φ)=α・・・
(12)という形に帰着される。従って、偏微分方程式
%式% と記述されていても、各々がdivまたはzradに対
応するとして、次のように定義する。
によく知られているように、 div(k 、 grad(φ)+V、φ)=α・・・
(12)という形に帰着される。従って、偏微分方程式
%式% と記述されていても、各々がdivまたはzradに対
応するとして、次のように定義する。
11)2階微分項の内側のδ/aXは、勾配と定義する
。また。
。また。
1ii)2階微分項の外側のa / a Xは、コント
ロールボリュームと定義する。
ロールボリュームと定義する。
1v)1階微分項のa / a Xは、コントロールボ
リュームと定義する。
リュームと定義する。
ここでは、X方向のみ述べたが、X方向、Z方向につい
ても同じである。また、v2についでは、v2=δ”/
ax2と展開して、上記の定義を適用するものとする。
ても同じである。また、v2についでは、v2=δ”/
ax2と展開して、上記の定義を適用するものとする。
v)1階の偏微分方程式の場合も同じように、これはd
iv(φ)=αという形式に帰着される。従って、aφ
/ a X + aφ/ a y =α、と記載された
場合には、このa/ax、a/δyは全てコントロール
ボリュームと定義する。
iv(φ)=αという形式に帰着される。従って、aφ
/ a X + aφ/ a y =α、と記載された
場合には、このa/ax、a/δyは全てコントロール
ボリュームと定義する。
以上述べた規則(81,82)に従うことにより、コン
トロールボリュームを示す微分演算子と勾配を示す微分
演算子の自動判別を可能とし、その振り分けを第1図に
示すコントロールボリューム離散化処理(111)で実
施する。
トロールボリュームを示す微分演算子と勾配を示す微分
演算子の自動判別を可能とし、その振り分けを第1図に
示すコントロールボリューム離散化処理(111)で実
施する。
次に、離散化規則の詳細について詳述する。なお、離散
化規則は、第1図に示すコントロールボリューム離散化
処理(111)で、コン1〜ロールボリユームを示す微
分演算子の離散化を行う際と、勾配離散化処理(121
)で勾配を示す微分演算子の離散化を行う際に、参照す
る。
化規則は、第1図に示すコントロールボリューム離散化
処理(111)で、コン1〜ロールボリユームを示す微
分演算子の離散化を行う際と、勾配離散化処理(121
)で勾配を示す微分演算子の離散化を行う際に、参照す
る。
本実施例においでは、ユーザから離散化規則の入力がな
い場合、システムでデフオル1−のに数代規則を規定し
ている。
い場合、システムでデフオル1−のに数代規則を規定し
ている。
第9図は、システムにおけるデフォルトの離散化規則を
示す図である。
示す図である。
微分演算子はコントロールボリュームを示すもの(91
)と、勾配を示すもの(92)の2種を用意して、離散
化規則をそれぞれ内点(93)と境界(94)について
定義する。
)と、勾配を示すもの(92)の2種を用意して、離散
化規則をそれぞれ内点(93)と境界(94)について
定義する。
コントロールボリュームを示すもの(91)について、
内点(93)では(X方向のみを考えると)次式とする
。
内点(93)では(X方向のみを考えると)次式とする
。
aφ、 φ、+1−φ、−★
□=□・・・・・・・・(13)
aX △X工+Δx2
これは、第9図において(図では、2次元で示されてい
る)、点ijを取り囲む点線で示した通り、離散点から
各方向の半メツシュずつの大きさを持つものである。ま
た、境界上の点(94)では、その境界を1辺とするコ
ントロールボリュームを定義し、離散式は1次式として
いる。
る)、点ijを取り囲む点線で示した通り、離散点から
各方向の半メツシュずつの大きさを持つものである。ま
た、境界上の点(94)では、その境界を1辺とするコ
ントロールボリュームを定義し、離散式は1次式として
いる。
また、勾配(92)について、内点では、テーラ−展開
で求めた中心差分公式 %式% を使用する。また、境界上の点(94)についでは、境
界勾配aφ/ayは離散化せずに、境界条件で置き換え
るようにする。ただし、置き換えるべき境界条件が存在
しない場合に限り、従来の方法と同じく、テーラ−展開
で求めた片側差分公式を使用するように定義°シている
。
で求めた中心差分公式 %式% を使用する。また、境界上の点(94)についでは、境
界勾配aφ/ayは離散化せずに、境界条件で置き換え
るようにする。ただし、置き換えるべき境界条件が存在
しない場合に限り、従来の方法と同じく、テーラ−展開
で求めた片側差分公式を使用するように定義°シている
。
また、コントロールボリュームにおいでは、離散化規則
を変更することにより、シミュレーションの対象となる
物理現象の範囲が広がり、また勾配についでは、離散化
規則を導出する際のテーラ−展開式の数を増加すること
により、より高精度な離散化規則を与えることができる
。
を変更することにより、シミュレーションの対象となる
物理現象の範囲が広がり、また勾配についでは、離散化
規則を導出する際のテーラ−展開式の数を増加すること
により、より高精度な離散化規則を与えることができる
。
次に、第2図における歴数式生成処理(プログラム生成
処理)(102)の詳細について、内点の場合と境界上
の点の場合とに分けて、説明する。
処理)(102)の詳細について、内点の場合と境界上
の点の場合とに分けて、説明する。
第10図は、内点の離散点における処理およびデータの
流れを示す図である。
流れを示す図である。
ここでは、均一メツシュを用いて説明するが、不均一メ
ツシュでも処理は同じである。−例として、偏微分方程
式v2φ十k(aφ/aX)=a(1000)が1次元
領域の内点jにおいて成立した場合の処理を示す。
ツシュでも処理は同じである。−例として、偏微分方程
式v2φ十k(aφ/aX)=a(1000)が1次元
領域の内点jにおいて成立した場合の処理を示す。
初めに、偏微分方程式(1000)に対して、第1図に
示すコントロールボリューム離散化処理(111)を行
う。この処理(111)は、次の2つの処理から成り立
っている。第1の処理は、偏微分方程式(1000)の
中からコントロールボリュームを示す微分演算子を抽出
する処理(1001)である。抽出方法は、第8図に示
した定義に従う。
示すコントロールボリューム離散化処理(111)を行
う。この処理(111)は、次の2つの処理から成り立
っている。第1の処理は、偏微分方程式(1000)の
中からコントロールボリュームを示す微分演算子を抽出
する処理(1001)である。抽出方法は、第8図に示
した定義に従う。
すなわち、第1項v2φは(a / a x)(a φ
/ a x)と書き換えられ、従って、外側のaφ/
a Xがコントロールボリュームを示すものとする。ま
た、第2項のk(aφ/aX)は、2階の偏微分方程式
中の1階微分項であるため、この微分演算子a/aXも
コントロールボリュームを表わしている。
/ a x)と書き換えられ、従って、外側のaφ/
a Xがコントロールボリュームを示すものとする。ま
た、第2項のk(aφ/aX)は、2階の偏微分方程式
中の1階微分項であるため、この微分演算子a/aXも
コントロールボリュームを表わしている。
コノ処理(1001)テは、これら2つ(1)a/ax
に対して、勾配を示す微分演算子と区別するため。
に対して、勾配を示す微分演算子と区別するため。
¥印を付けて次のように表わす。
¥aCaφ/ax)/ax+に¥(aφ/ax)=a
(1002)・・・・・・・・・・ (17) 第2の処理では、この式(1002)に対して、コント
ロールボリュームを示す微分演算子を離散展開する(1
003)。これは、先に¥印を付けた微分演算子に対し
てのみ、第9図に示したシステムの離散化規則 あるいはユーザの指定した離散化規則を適用し、・・・
・・・・・・・・・ (18) を得る。これは、第10図の中間コード・展開式1(1
13)に該当する。ここでは、均一メツシュを使用する
ため、△X工=△x2=ΔXとしている。
(1002)・・・・・・・・・・ (17) 第2の処理では、この式(1002)に対して、コント
ロールボリュームを示す微分演算子を離散展開する(1
003)。これは、先に¥印を付けた微分演算子に対し
てのみ、第9図に示したシステムの離散化規則 あるいはユーザの指定した離散化規則を適用し、・・・
・・・・・・・・・ (18) を得る。これは、第10図の中間コード・展開式1(1
13)に該当する。ここでは、均一メツシュを使用する
ため、△X工=△x2=ΔXとしている。
次に、第1図の離散点振り分は処理(115)では、現
在、内点iの処理を行っている際中であるため、境界条
件置き換え処理(116)は行わずに、次の勾配離散化
処理(122)を行う。この処理は、第10図に示すよ
うに2つの処理から成り立っている。第1の処理は、展
開式1(113)の勾配を示す微分演算子を展開する処
理(1004)である。
在、内点iの処理を行っている際中であるため、境界条
件置き換え処理(116)は行わずに、次の勾配離散化
処理(122)を行う。この処理は、第10図に示すよ
うに2つの処理から成り立っている。第1の処理は、展
開式1(113)の勾配を示す微分演算子を展開する処
理(1004)である。
すなわち、展開式1(113)中の微分演算子は全て勾
配を示すものであるため、これらを第9図に示す離散化
規則 に従って離散化する。ただし、ユーザが離散化規則を指
定してあれば、それに従う。展開式1の離散化の結果1
次式(1005)を得る。
配を示すものであるため、これらを第9図に示す離散化
規則 に従って離散化する。ただし、ユーザが離散化規則を指
定してあれば、それに従う。展開式1の離散化の結果1
次式(1005)を得る。
φ、や□−φ□ φ□−φ、−0
次に、第2の処理として、上式(19)つまり第10図
中の式(1005)における添字1/2を解消し、式を
まとめる(1006)。その結果、離散式1 (123
)として、次式を得る。
中の式(1005)における添字1/2を解消し、式を
まとめる(1006)。その結果、離散式1 (123
)として、次式を得る。
以上が、内点における離散式の生成処理手順である。
第11図および第12図は、第1図における境界点に対
する処理の詳細説明図である。
する処理の詳細説明図である。
先ず、第11図により、処理の手順を述べる。
第1番目に、内点の場合と同じように、コントロールボ
リューム離散化処理(111)を行う。すなわち、偏微
分方程式の中からコントロールボリュームを示す微分演
算子を抽出して、これを展開し、中間コード展開式1を
生成する。次に、第1図に示す離散点振り分は処理(1
15)により、境界条件置き換え処理(116)を行う
。この詳細を次に述べる。
リューム離散化処理(111)を行う。すなわち、偏微
分方程式の中からコントロールボリュームを示す微分演
算子を抽出して、これを展開し、中間コード展開式1を
生成する。次に、第1図に示す離散点振り分は処理(1
15)により、境界条件置き換え処理(116)を行う
。この詳細を次に述べる。
先ず、展開式1の中の境界勾配を示す項aφ/axe(
点iは境界を示す)を抽出し、変数φをテーブル1にR
1&する(1101)。テーブル1は、境界勾配が現わ
れている変数、例えばaφ/ a Xlが存在するなら
ばφを登録するテーブルであり。
点iは境界を示す)を抽出し、変数φをテーブル1にR
1&する(1101)。テーブル1は、境界勾配が現わ
れている変数、例えばaφ/ a Xlが存在するなら
ばφを登録するテーブルであり。
後の境界条件の置き換え処理で使用する。そして、テー
ブル1には、式中に現われる全ての境界勾配から各々の
変数を登録する。ただし、同一変数が現われた場合には
、登録は1回だけにする。例えば、展開式1が、 (grad(φs)) 、 (grad(φ2))
i+(grad(φ□))t”k= (grad(φx
)) i+xである場合、φ、とφ2を1個ずつ格納
する。なお、この場合、jが境界、i+1は内点てあり
、φ。
ブル1には、式中に現われる全ての境界勾配から各々の
変数を登録する。ただし、同一変数が現われた場合には
、登録は1回だけにする。例えば、展開式1が、 (grad(φs)) 、 (grad(φ2))
i+(grad(φ□))t”k= (grad(φx
)) i+xである場合、φ、とφ2を1個ずつ格納
する。なお、この場合、jが境界、i+1は内点てあり
、φ。
は登録しない。
以下、第11図の処理(11,03)〜(1108)を
、テーブル1に登録した全ての境界勾配のチエツクが終
了するまで繰り返して行い、中間コード展開式2を生成
する(1102)。これらの処理(1103) 〜(1
108)ハ、テーブル1に登録した境界勾配を境界条件
に置き換える処理である。
、テーブル1に登録した全ての境界勾配のチエツクが終
了するまで繰り返して行い、中間コード展開式2を生成
する(1102)。これらの処理(1103) 〜(1
108)ハ、テーブル1に登録した境界勾配を境界条件
に置き換える処理である。
これについて、詳述する。先ず、テーブル1に登録した
変数の1つ、例えばφ、に注目して、境界条件の中から
φ□よの境界勾配、この場合にはX方向の境界勾配を含
むものを見つけ出す(1103)。
変数の1つ、例えばφ、に注目して、境界条件の中から
φ□よの境界勾配、この場合にはX方向の境界勾配を含
むものを見つけ出す(1103)。
もし、見つかった場合には(1104)、展開式1の中
の境界勾配積aφ□/δXを境界条件式で置き換える(
1105)。そして、テーブル1のφ1に対して、変換
済チエツクを行う(1106)。例えば2展開式1が(
grad(φ1 )i −(grad (φ2)、+・
・・=であり、境界条件が(grad(φx ) =
= (grad (φ2)0、+αの場合には、展開式
1の(grad(φ、))、を境界条件式の右辺に置き
換え、次のようにする。
の境界勾配積aφ□/δXを境界条件式で置き換える(
1105)。そして、テーブル1のφ1に対して、変換
済チエツクを行う(1106)。例えば2展開式1が(
grad(φ1 )i −(grad (φ2)、+・
・・=であり、境界条件が(grad(φx ) =
= (grad (φ2)0、+αの場合には、展開式
1の(grad(φ、))、を境界条件式の右辺に置き
換え、次のようにする。
((grad(φ2))L+ α)−(grad(φ2
))、+・・・;・・・また、展開式1中に複数の(g
rad (φ、))、が存在した場合には、全てを境界
条件に置き換えるようにする。そして、次に置き換えた
境界条件式中に、テーブル1に登録しである他の変数の
境界勾配が存在しているならば、これもまたテーブル1
に変換済チエツクを行う(1107)。上記の例の場合
、変数φ2がこれに該当する。
))、+・・・;・・・また、展開式1中に複数の(g
rad (φ、))、が存在した場合には、全てを境界
条件に置き換えるようにする。そして、次に置き換えた
境界条件式中に、テーブル1に登録しである他の変数の
境界勾配が存在しているならば、これもまたテーブル1
に変換済チエツクを行う(1107)。上記の例の場合
、変数φ2がこれに該当する。
処理(1103)で、境界条件が見つかった場合には、
以上の処理(1105)〜(1107)を行い。
以上の処理(1105)〜(1107)を行い。
見つからなかった場合には、テーブル1に登録したこの
変数φ1に対して変換なしチエツクを行う(1108)
。このように、テーブル1に登録した全ての変数につい
て境界条件を探し、それがあれば置き換えて、変換あり
チエツク、または変換なしチエツクを行う。以上の処理
(1102)〜(1108)は、第1図における境界勾
配積の置換処理(116)である。
変数φ1に対して変換なしチエツクを行う(1108)
。このように、テーブル1に登録した全ての変数につい
て境界条件を探し、それがあれば置き換えて、変換あり
チエツク、または変換なしチエツクを行う。以上の処理
(1102)〜(1108)は、第1図における境界勾
配積の置換処理(116)である。
この処理(116)の終了後、第1図に示す勾配離散化
処理(121)を行う。これは、次の3つの処理より成
る。すなわち、先ず得られた式の数式処理を行う(11
09)。これは、数式中に相殺する項があれば、これを
相殺する。例えば、先の((grad (φz))t
+ (z ) (grad(φ、))i・・・−=
に対して、grad 8φ2)□を相殺して、α+・・
・・=の式を生成するにこで得られたものが展開式2で
ある。次に、内点の場合と同じく、展開式2に対して、
勾配を示す微分演算子を展開を行い(1110)、添字
の1/2の解消を行い、式をまとめて離散式1を生成す
る(1111)。以上の処理が、境界点に対する離散式
の生成処理の手順である。
処理(121)を行う。これは、次の3つの処理より成
る。すなわち、先ず得られた式の数式処理を行う(11
09)。これは、数式中に相殺する項があれば、これを
相殺する。例えば、先の((grad (φz))t
+ (z ) (grad(φ、))i・・・−=
に対して、grad 8φ2)□を相殺して、α+・・
・・=の式を生成するにこで得られたものが展開式2で
ある。次に、内点の場合と同じく、展開式2に対して、
勾配を示す微分演算子を展開を行い(1110)、添字
の1/2の解消を行い、式をまとめて離散式1を生成す
る(1111)。以上の処理が、境界点に対する離散式
の生成処理の手順である。
なお、本来、境界勾配を示す項は、全て境界条件で置き
換えられる必要がある。従って、離散式1を生成した時
点で、置き換えがなく、また数式処理後も式中にδφt
/aXの項が存在する場合には、ワーニング(警報)を
出力する。
換えられる必要がある。従って、離散式1を生成した時
点で、置き換えがなく、また数式処理後も式中にδφt
/aXの項が存在する場合には、ワーニング(警報)を
出力する。
最後に、第12図により、境界上の離散点の処理の一例
を説明する。
を説明する。
欄外に示した(1201)の偏微分方程式v2φ□−k
v2φ2=α、および座標からX=Oでの境界条件a
φ、/a x=β+kca φ−/a x)が成立する
2次元領域を考える。x=Oの角ではない離散点(II
J)における離散式の生成を例示する。コントロールボ
リュームは、その下に示した(1202)となる。生成
手順は、表(1203)内に記載されている。ここの例
では、X方向のみ示している。
v2φ2=α、および座標からX=Oでの境界条件a
φ、/a x=β+kca φ−/a x)が成立する
2次元領域を考える。x=Oの角ではない離散点(II
J)における離散式の生成を例示する。コントロールボ
リュームは、その下に示した(1202)となる。生成
手順は、表(1203)内に記載されている。ここの例
では、X方向のみ示している。
■コントロールボリュームを表わす微分演算子を抽出し
、¥マークを付加して、¥a(aφ、/aX)/ax+
に¥acaφz/ayc)/ax=aを得る。
、¥マークを付加して、¥a(aφ、/aX)/ax+
に¥acaφz/ayc)/ax=aを得る。
■この¥のマークの付加されたコントロールボリューム
を示す微分演算子を展開して。
を示す微分演算子を展開して。
((a φ1/ a x) i+) k (aφ2/
a x) 、+4)−((aφ、/ax)i k (
aφz/ax)=’t =a=を得る。
a x) 、+4)−((aφ、/ax)i k (
aφz/ax)=’t =a=を得る。
■上記■で得られた式の中に存在する境界勾配を示す変
数を、テーブル1に登録する。ここでは、変数φ、とφ
2を登録する。
数を、テーブル1に登録する。ここでは、変数φ、とφ
2を登録する。
■テーブル1に登録した変数のうち、先ずφ1に注目し
て、境界条件を探す。
て、境界条件を探す。
境界条件Ca φ、/ a x)r= fl=+ k
Ca φ2/aX)tが存在したので、この右辺を上記
0式の(aφ、/aX)□に代入し、 とする。
Ca φ2/aX)tが存在したので、この右辺を上記
0式の(aφ、/aX)□に代入し、 とする。
また、テーブル1の中の変数φ1に対して変換済チエツ
クを行う。
クを行う。
■上記■で置き換えた境界条件の右辺に変数φ2に対す
る境界勾配が含まれていたため、テーブル1中のφ2に
対しても変換済みチエツクを行う。
る境界勾配が含まれていたため、テーブル1中のφ2に
対しても変換済みチエツクを行う。
■テーブル1にWBした全ての変数φ0.φ2に対する
チエツクが終了したので、得られた式の数式処理を行い
、次式を得る。
チエツクが終了したので、得られた式の数式処理を行い
、次式を得る。
・・・・・・・・・・・・・・・ (21)■勾配を示
す微分演算子の展開、および添字1/2の解消を行い、
次式を得た後、処理を終了する6以上が、内点および境
界上の点における離散式生成処理(102)の手順であ
る。両者とも、このようにして離散式1(123)を生
成した後、第2図に示すように、プログラム生成処理(
125)により生成プログラム(103)を生成する。
す微分演算子の展開、および添字1/2の解消を行い、
次式を得た後、処理を終了する6以上が、内点および境
界上の点における離散式生成処理(102)の手順であ
る。両者とも、このようにして離散式1(123)を生
成した後、第2図に示すように、プログラム生成処理(
125)により生成プログラム(103)を生成する。
その手順は、先の第16図および第17図に示した通り
である。
である。
本実施例においでは、コントロールボリューム方式によ
る数値シミュレーションプログラムの自動生成が可能と
なる。従って、保存性のある精度の高いプログラムが生
成される。
る数値シミュレーションプログラムの自動生成が可能と
なる。従って、保存性のある精度の高いプログラムが生
成される。
特に、本実施例では、境界点の離散化において、あでは
まる境界条件が存在しない場合、ワーニングを出力する
ことにより、ユーザに偏微分方程式と境界条件の不適合
の存在を知らせることができる。さらに、その場合でも
、片側差分により離散化することにより、離散式の生成
を可能にしているので、ユーザの必要とするプログラム
を生成することができる。
まる境界条件が存在しない場合、ワーニングを出力する
ことにより、ユーザに偏微分方程式と境界条件の不適合
の存在を知らせることができる。さらに、その場合でも
、片側差分により離散化することにより、離散式の生成
を可能にしているので、ユーザの必要とするプログラム
を生成することができる。
第18図は、本発明による数値結果例を示す図である。
物理問題として、熱拡散間M(181)を考える。
次元は1次元、解析領域はX方向に○〜1で、メツシュ
刻みは0.1、解析対象変数φに対して偏微分方程式a
φ/at=v2φ、そして、境界条件aφ/δX=φ(
x=o)、aφ/ax= ’t’(x = 1 )、
および初期条件φ=1を解く。なお、時間刻みをt=o
、o025とする。
刻みは0.1、解析対象変数φに対して偏微分方程式a
φ/at=v2φ、そして、境界条件aφ/δX=φ(
x=o)、aφ/ax= ’t’(x = 1 )、
および初期条件φ=1を解く。なお、時間刻みをt=o
、o025とする。
第18図内の表には、t=0.5000の時の結果が示
されている(200回目、182)。X=Oからx=0
.5までの解析解と、本発明を用いたコントロールボリ
ューム方式および従来方式で求めた解とが示されている
。また、コントロールボリューム方式と従来方式の各値
の解析解に対する誤差も合わせて9百分率で示しである
。その誤差を比較すると、解析解に比して、従来方式で
は7〜8%以上を示すのに対し、本発明のコントロール
ボリューム方式では0.2%以下である。
されている(200回目、182)。X=Oからx=0
.5までの解析解と、本発明を用いたコントロールボリ
ューム方式および従来方式で求めた解とが示されている
。また、コントロールボリューム方式と従来方式の各値
の解析解に対する誤差も合わせて9百分率で示しである
。その誤差を比較すると、解析解に比して、従来方式で
は7〜8%以上を示すのに対し、本発明のコントロール
ボリューム方式では0.2%以下である。
このように、−例ではあるが、本発明の方法を用いれば
、高精度のシミュレーションプログラムの生成が可能と
なる。
、高精度のシミュレーションプログラムの生成が可能と
なる。
特に、本実施例においでは、境界点の離散化に対して、
あではまる境界条件が存在しない場合には、ワーニング
を出力することにより、ユーザに偏微分方程式と境界条
件の不適合を通知することができる。そして、その場合
でも、片側差分によって離散化することにより、離散式
を′生成することができるので、ユーザが必要とするプ
ログラムを生成することができる。
あではまる境界条件が存在しない場合には、ワーニング
を出力することにより、ユーザに偏微分方程式と境界条
件の不適合を通知することができる。そして、その場合
でも、片側差分によって離散化することにより、離散式
を′生成することができるので、ユーザが必要とするプ
ログラムを生成することができる。
また、特に本実施例では、コントロールボリュームを示
す微分演算に対する離散化規則をユーザが定義できるの
で、シミュレーションの対象となる物理現象を広げるこ
とができる。また、勾配を示す微分演算に対する離散化
規則もユーザが定義できるので、より高精度の離散式を
生成することができる。
す微分演算に対する離散化規則をユーザが定義できるの
で、シミュレーションの対象となる物理現象を広げるこ
とができる。また、勾配を示す微分演算に対する離散化
規則もユーザが定義できるので、より高精度の離散式を
生成することができる。
さらに、偏微分方程式を指定すると、それに適合する境
界条件の形式を自動的に提示することができるので、ユ
ーザが必要な境界条件の形式を簡単に把握することが可
能であり、その結果、適切な数値計算プログラムを作成
することが可能である。
界条件の形式を自動的に提示することができるので、ユ
ーザが必要な境界条件の形式を簡単に把握することが可
能であり、その結果、適切な数値計算プログラムを作成
することが可能である。
以上説明したように、本発明によれば、コントロールボ
リューム方式による数値シミュレーションプログラムを
自動的に生成することができるので、保存性のある、つ
まりその式が表わす物理法則の意味を保存する性質を持
った高精度なプログラムを作成することが可能となる。
リューム方式による数値シミュレーションプログラムを
自動的に生成することができるので、保存性のある、つ
まりその式が表わす物理法則の意味を保存する性質を持
った高精度なプログラムを作成することが可能となる。
第1図は本発明の一実施例を示すプログラム生成方法の
中心部分である離散式生成処理のデータの流れ図、第2
図は本発明のプログラム生成方法の全体の処理の流れを
示す図、第3図は従来の方法による離散化規則を示す図
、第4図は各微分演算子の数学的定義を示す図、第5図
はコントロールボリューム例を示す図、第6図は内点に
おけるコントロールボリューム方式の考え方を示す図。 第7図は境界におけるコントロールボリューム方式の考
え方を示す図、第8図は本発明における各微分演算子の
物理的意味の定義を示す図、第9図は本発明の一実施例
を示す離散化規則例の図、第10図は内点の離散式生成
例を示す図、第11図は境界における離散式生成手順を
示す図、第12図は境界点における離散式生成例を示す
図、第13図はプログラム方法の入力情報例を示す図、
第14図は同じく出力である生成プログラム例を示す図
、第15図は中間コードである離散式1の例を示す図、
第16図はプログラム作成処理の概要を示す図、第17
図はプログラム作成処理のデータの流れを示す図、第1
8図は本発明の数値結果例を示す図である。 102:離散式生成処理、111:コントロールボリュ
ーム離散化処理、115:離散点振り分は処理、116
:境界条件置換え処理、121:勾配離散化処理、10
1,131:入力情報、108:離散点座標値データ、
113:展開式1.118:展開式2.123,150
:離散式1.170:離散式2.103:生成プログラ
ム、1021:領域分割処理、125ニブログラム作成
処理、402゜404.405,406.407:離散
点、401:解析領域、403,501,601:コン
トロールボリューム、104,503,602=偏微分
方程式、603:境界条件、130:物理モデル、14
0.1700、:生成FORTRAN、142:内点に
対するコード、145:連立−次方程式、150:離散
式の内容。 第 1 図 第 4 図 い? 第 6 図 8x〜50牛 偏微分方程式 alv(grad($) ) −α第
7 図 φ−−−−ゆ△x/2 〜604 偏微分方程式 aiv(grad(φ))−α〜602
境界条件式 gr已(φ)−β〜603第 8
図 第 9 図 第 13 図 〆一− 諌 区 − 〇
中心部分である離散式生成処理のデータの流れ図、第2
図は本発明のプログラム生成方法の全体の処理の流れを
示す図、第3図は従来の方法による離散化規則を示す図
、第4図は各微分演算子の数学的定義を示す図、第5図
はコントロールボリューム例を示す図、第6図は内点に
おけるコントロールボリューム方式の考え方を示す図。 第7図は境界におけるコントロールボリューム方式の考
え方を示す図、第8図は本発明における各微分演算子の
物理的意味の定義を示す図、第9図は本発明の一実施例
を示す離散化規則例の図、第10図は内点の離散式生成
例を示す図、第11図は境界における離散式生成手順を
示す図、第12図は境界点における離散式生成例を示す
図、第13図はプログラム方法の入力情報例を示す図、
第14図は同じく出力である生成プログラム例を示す図
、第15図は中間コードである離散式1の例を示す図、
第16図はプログラム作成処理の概要を示す図、第17
図はプログラム作成処理のデータの流れを示す図、第1
8図は本発明の数値結果例を示す図である。 102:離散式生成処理、111:コントロールボリュ
ーム離散化処理、115:離散点振り分は処理、116
:境界条件置換え処理、121:勾配離散化処理、10
1,131:入力情報、108:離散点座標値データ、
113:展開式1.118:展開式2.123,150
:離散式1.170:離散式2.103:生成プログラ
ム、1021:領域分割処理、125ニブログラム作成
処理、402゜404.405,406.407:離散
点、401:解析領域、403,501,601:コン
トロールボリューム、104,503,602=偏微分
方程式、603:境界条件、130:物理モデル、14
0.1700、:生成FORTRAN、142:内点に
対するコード、145:連立−次方程式、150:離散
式の内容。 第 1 図 第 4 図 い? 第 6 図 8x〜50牛 偏微分方程式 alv(grad($) ) −α第
7 図 φ−−−−ゆ△x/2 〜604 偏微分方程式 aiv(grad(φ))−α〜602
境界条件式 gr已(φ)−β〜603第 8
図 第 9 図 第 13 図 〆一− 諌 区 − 〇
Claims (1)
- 1、物理現象を表わす解析領域の内点では偏微分方程式
を、該解析領域の境界では偏微分方程式及び境界条件式
を、それぞれ成立する微少領域内においてテーラー展開
により求めた離散化公式に従がい離散式を導くことによ
り、該離散式をコード化してシミュレーションプログラ
ムを生成するプログラム生成方法において、上記物理現
象を表わす偏微分方程式と該物理現象を解析する解析領
域と該解析領域の境界条件と該解析領域の離散化に必要
な離散化規則と該解析領域の代表点である離散点の座標
値とを入力し、先ず該解析領域を上記座標値の各離散点
を含む互いに重複しない微小領域に分割し、上記偏微分
方程式の中から上記微小領域の演算を意味する微分演算
子を抽出し、該微分演算子を上記離散化規則に従って離
散化することにより中間コードである展開式を得、次に
上記解析領域の境界部分に対してのみは特別な演算を行
わせるため、該展開式の中の境界勾配の演算を意味する
項を抽出し、これを上記境界条件で置換し、次に上記展
開式中の勾配演算を意味する微分演算子を上記離散化規
則に従って離散化することにより離散式を生成し、最後
に該離散式をコード化してプログラムを自動生成するこ
とを特徴とするプログラム生成方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63139147A JPH01307826A (ja) | 1988-06-06 | 1988-06-06 | プログラム生成方法 |
| US07/361,283 US5129035A (en) | 1988-06-06 | 1989-06-05 | Method of generating a numerical calculation program which simulates a physical phenomenon represented by a partial differential equation using discretization based upon a control volume finite differential method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63139147A JPH01307826A (ja) | 1988-06-06 | 1988-06-06 | プログラム生成方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01307826A true JPH01307826A (ja) | 1989-12-12 |
Family
ID=15238663
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63139147A Pending JPH01307826A (ja) | 1988-06-06 | 1988-06-06 | プログラム生成方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5129035A (ja) |
| JP (1) | JPH01307826A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USD1056954S1 (en) | 2014-09-02 | 2025-01-07 | Apple Inc. | Display screen or portion thereof with animated graphical user interface |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03263174A (ja) * | 1990-03-14 | 1991-11-22 | Hitachi Ltd | プログラム生成方法およびそのための領域分割方法 |
| IE69192B1 (en) * | 1990-12-21 | 1996-08-21 | Hitachi Europ Ltd | A method of generating partial differential equations for simulation a simulation method and a method of generating simulation programs |
| US5438526A (en) * | 1991-07-12 | 1995-08-01 | Hitachi, Ltd. | Program generation method for particles simulation |
| US5583789A (en) * | 1993-07-30 | 1996-12-10 | Gas Research Institute | Local integral method for computing molecular diffusion and chemical reaction |
| US5640331A (en) * | 1993-07-30 | 1997-06-17 | Gas Research Institute | Method and apparatus for obtaining species concentrations and reaction rates in a turbulent reacting flow |
| DE4326382A1 (de) * | 1993-08-05 | 1995-04-20 | Franz Arnulf Eberle | Verfahren und Rechengerät zum Berechnen des Feldes eines physikalischen Vorganges |
| JPH0981610A (ja) * | 1995-09-12 | 1997-03-28 | Toshiba Corp | シミュレーション方法及びその装置 |
| US6173276B1 (en) * | 1997-08-21 | 2001-01-09 | Scicomp, Inc. | System and method for financial instrument modeling and valuation |
| US6772136B2 (en) | 1997-08-21 | 2004-08-03 | Elaine Kant | System and method for financial instrument modeling and using Monte Carlo simulation |
| JP2000293508A (ja) * | 1999-04-01 | 2000-10-20 | Takayuki Aoki | 非等間隔格子において空間微係数を用いたポアソン方程式、拡散方程式および類似の偏微分方程式の高精度計算プログラム |
| US6402367B1 (en) * | 2000-06-01 | 2002-06-11 | Aemp Corporation | Method and apparatus for magnetically stirring a thixotropic metal slurry |
| US6399017B1 (en) * | 2000-06-01 | 2002-06-04 | Aemp Corporation | Method and apparatus for containing and ejecting a thixotropic metal slurry |
| US6432160B1 (en) * | 2000-06-01 | 2002-08-13 | Aemp Corporation | Method and apparatus for making a thixotropic metal slurry |
| US6796362B2 (en) * | 2000-06-01 | 2004-09-28 | Brunswick Corporation | Apparatus for producing a metallic slurry material for use in semi-solid forming of shaped parts |
| US7024342B1 (en) * | 2000-07-01 | 2006-04-04 | Mercury Marine | Thermal flow simulation for casting/molding processes |
| FI20002296A7 (fi) * | 2000-10-17 | 2002-04-18 | Lumeo Software Oy | Mekaanisen alisysteemin ja hydraulisen alisysteemin omaavan systeemin simulointi |
| AU2002214340A1 (en) * | 2000-10-25 | 2002-05-06 | Jae-Seung Lee | Numerical analysis method for the nonlinear differential equation governing optical signal transmissions along optical fibers |
| US6742567B2 (en) * | 2001-08-17 | 2004-06-01 | Brunswick Corporation | Apparatus for and method of producing slurry material without stirring for application in semi-solid forming |
| AU2003243629A1 (en) * | 2002-06-18 | 2003-12-31 | Phil Kongtcheu | Methods, systems and computer program products to facilitate the formation and trading of derivatives contracts |
| US7904280B2 (en) * | 2003-04-16 | 2011-03-08 | The Mathworks, Inc. | Simulation of constrained systems |
| EP2455874A4 (en) * | 2009-06-25 | 2012-11-28 | Asahi Glass Co Ltd | PHYSICAL QUANTITY CALCULATION METHOD, DIGITAL ANALYSIS METHOD, PHYSICAL QUANTITY CALCULATION PROGRAM, DIGITAL ANALYSIS PROGRAM, PHYSICAL QUANTITY CALCULATION DEVICE, AND DIGITAL ANALYSIS DEVICE |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 | プログラム生成方法 |
-
1988
- 1988-06-06 JP JP63139147A patent/JPH01307826A/ja active Pending
-
1989
- 1989-06-05 US US07/361,283 patent/US5129035A/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USD1056954S1 (en) | 2014-09-02 | 2025-01-07 | Apple Inc. | Display screen or portion thereof with animated graphical user interface |
Also Published As
| Publication number | Publication date |
|---|---|
| US5129035A (en) | 1992-07-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01307826A (ja) | プログラム生成方法 | |
| JP6668182B2 (ja) | 回路設計装置及びそれを用いた回路設計方法 | |
| US4819161A (en) | Method of automatic generation of a computer for numerical simulation of physical phenomenon | |
| Cheung et al. | Verifying integer programming results | |
| US4841479A (en) | Method for preparing a simulation program | |
| US11321500B1 (en) | Smart takeoff estimation systems and methods | |
| CN102667867A (zh) | 改进的计算机实施的几何特征检测方法 | |
| Gu et al. | Co-simulation of algebraically coupled dynamic subsystems without disclosure of proprietary subsystem models | |
| EP2799981A1 (en) | Method for providing code, code generator and software development environment | |
| JP3462669B2 (ja) | 加工工程設計システム | |
| JPH01145723A (ja) | プログラム生成方法 | |
| JP6622592B2 (ja) | 生産計画立案支援システムおよび支援方法 | |
| US20180365341A1 (en) | Three-Dimensional Cad System Device, and Knowledge Management Method Used in Three-Dimensional Cad | |
| KR20170126312A (ko) | 유한요소 해석을 이용한 설계 자동화 장치 및 방법 | |
| KR20140087533A (ko) | 가상설비를 이용한 제조설비 시뮬레이션 시스템 및 방법 | |
| JP6002507B2 (ja) | ソフトウェア検証用プログラムおよびソフトウェア検証システム | |
| JPH03263174A (ja) | プログラム生成方法およびそのための領域分割方法 | |
| US20240242183A9 (en) | Rule-based design scheduling system for processing build project schedules | |
| JP5530732B2 (ja) | 作業指示生成システム、方法及びプログラム | |
| WO2021020055A1 (ja) | 設計支援システム、設計支援方法及び設計支援プログラム | |
| Heisel et al. | Optimal configurations of the machine tool structure by means of neural networks | |
| JP7248801B2 (ja) | 設計支援システム及び設計支援方法 | |
| Shapeev et al. | The method of collocations and least residuals combining the integral form of collocation equations and the matching differential relations at the solution of PDEs | |
| Simonov et al. | Generation of mathematical models of linear dynamic systems described by block diagrams | |
| US20240320570A1 (en) | Information generation device, information generation method, and information generation program |