JPH01145723A - プログラム生成方法 - Google Patents

プログラム生成方法

Info

Publication number
JPH01145723A
JPH01145723A JP63139275A JP13927588A JPH01145723A JP H01145723 A JPH01145723 A JP H01145723A JP 63139275 A JP63139275 A JP 63139275A JP 13927588 A JP13927588 A JP 13927588A JP H01145723 A JPH01145723 A JP H01145723A
Authority
JP
Japan
Prior art keywords
partial differential
program
variable
equation
boundary
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
JP63139275A
Other languages
English (en)
Inventor
Nobutoshi Sagawa
暢俊 佐川
Chisato Konno
金野 千里
Yukio Umetani
梅谷 征雄
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 JP63139275A priority Critical patent/JPH01145723A/ja
Publication of JPH01145723A publication Critical patent/JPH01145723A/ja
Priority to US07/577,092 priority patent/US5699271A/en
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

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は対象とする偏微分方程式系中に複数の変数を含
む連立偏微分方程式と境界条件群とで表される物理問題
の数値シミュレーションプログラムを上記方程式と境界
条件とから自動的に生成するプログラム生成方法に関し
、特に流体解析、構造解析のための数値シミュレーショ
ンプログラムの生成に好適なプログラム生成方法に係る
[従来の技術] 特開昭61−503801に記載のように、物理現象を
支配する偏微分方程式を入力し、有限要素法を用いて上
記物理現象を数値的にシミュレーションするプログラム
を自動生成する方法において、従来は取り扱える偏微分
方程式が単一変数のみを含む単一偏微分方程式に限定さ
れていた。即ち、例えば熱伝導現象を支配する。
div (k−grad (f))=0のような単一の
偏微分方程式を変数fについて解く場合にのみ有限要素
法プログラムの自動生成を行っていた。
また、偏微分方程式中に現れる対急変数(解くべき変数
)の位置にも制約があり。
div (k−grad (f、)+V−f、)の形式
の項においてflの位置に解くべき変数(対象変数)が
出現した場合にのみプログラムの自動生成を行っていた
さらに、時間依存の熱伝導問題を陽解法で記述した表現 f=f0+d 1 t −d iv  (grad(f
o))などが入力された場合、fおよびfOを評価する
際に常に一般の帯行列(Consistent Mat
rix)を構成するようなプログラムを自動生成してい
た。
[発明が解決しようとする問題点] 従来は、対象となる偏微分方程式系が複数の変数を含む
連立偏微分方程式である場合、および複数の変数に対し
異なる精度で補則を行う必要のある場合について考慮が
なされていなかった。例えば流速の遅い流体現象を支配
するストークス方程式 %式%(1) (但しmは粘性係数、dx()、dy()はX。
y方向の偏微分、u、vは流速、pは圧力を表す。) は、(1)〜(3)を連立して解く必要があるが、従来
方式ではこれを解くプログラムを自動生成することがで
きなかった。さらに従来は、連立する偏微分方程式に対
し、境界条件群が与えられた場合、どの偏微分方程式と
どの境界条件が対応するかを一意に決定する配慮がなさ
れていた。
また、従来は偏微分方程式中の対象変数の出現位置が限
定されていたために、例えば移流拡散方程式 %式%(4) などを変数fについて解くプロゲラ11を自動生成する
ことが不可能であった。
さらに、従来は時間依存の熱伝導問題を陽解法で記述し
た表現 f =f o + d l t−d iv (g r 
a d (f o)) (5)に対して、fおよびfO
を評価する際に一般の帯行列を構成するようなプログラ
ムを生成しており、帯行列を対角化して計算時間の節約
を図る手法(L ampj、ng )を用いたプログラ
ムを自動生成することはできなかった。
本発明の目的は、物理現象を支配する偏微分方程式系お
よび境界条件群などを入力し、有限要素法による数値シ
ミュレーションプログラムを自動生成する方法において
、より広範囲な偏微分方程式系に対するプログラムの自
動生成方法を提供することにある。具体的には、異なる
精度によって補間する必要のある複数の変数を含む連立
1次方程式と境界条件群に対して妥当なシミュレーショ
ンプログラムを自動生成する方法を提供すること、任意
の位置に対象変数を含む偏微分方程式に対して妥当なシ
ミュレーションプログラムを自動生成する方法を提供す
ること、および入力情報中で与えられた指定に基づいて
行列の対角化を施したシミュレーションプログラムを自
動生成する方法を提供することにある。
[問題点を解決するための手段] 上記従来技術の問題点を解決するために、本発明のプロ
グラム生成方法は、物理現象を支配する偏微分方程式系
、境界条件群、上記物理現象の生起する領域形状および
R11l化の方法に関する指定を入力情報として与え、
上記物理現象を有限要素法を用いて計算機上でシミュレ
ーションするためのFORTRANプログラムを自動生
成するプログラム生成方法において、連立する複数の変
数および偏微分方程式を含む上記偏微分方程式系に対し
、各偏微分方程式に対して最適な重み関数を自動的に選
択して数式的に重み関数を乗じ、数式的に部分積分を実
行し、境界条件群より各偏微分方程式に対して最適な境
界条件を自動的に選択して数式的に境界条件の導入処理
を行い、数式的に対象変数について総和と積分の順序を
交換して変数の離散化処理を行い、係数行列・定数ベク
トルへ成分を代入し線形計算によりこれを解くためのF
ORTRANプログラムの自動生成処理を行なうことを
特徴とする。
[作用] 前記重み関数の自動選択処理によれば、偏微分方程式の
重み関数の次数と対象変数の補間次数とが1対1に対応
する。このことは、離散化した際の未知数の個数と連立
1次方程式の連立本数とが一致することを意味しており
、線形計算によって連立1次方程式の解を得ることが可
能となる。また、各偏微分方程式に対してどの対象変数
の寄与が太きいかを考慮して重み関数を配分するので、
得られる結果の精度面でも有利となる。
一方、上記境界条件の導入処理によれば、連立偏微分方
程式に対する物理的に自然な境界条件を境界積分項中に
最適な形で導入することができる。
また、上記変数の離散化処理は、偏微分方程式中に現わ
れる変数、定数をすべてΣN1fiの形に展開した後、
解くべき対象変数について総和と積分の順序を交換する
ように数式的に大変形を行なう。このため、対象変数が
偏微分方程式中に出現する位置に制約がなくなる。また
、入力情報中で指定がなされた場合、離散化処理部にお
いて補間関数Niを1に置き換えることにより、生成さ
れるFORTRANプログラムが構成する係数行列を対
角成分のみを含む対角行列にすることができる。
[実施例] 本発明の詳細な説明に先立ち、ガレルギン法を用いた有
限要素法による偏微分方程式の正数化手順を説明する。
有限要素法を用いる際には、シミュレーション対象領域
を適当な大きさの要素を用いて分割する。
要素の形状は3辺形または4辺形(3次元では4面体、
3角柱または6面体)が一般的である。図2に要素分割
の1例を示す。各要素にはその頂点あるいは辺の中点に
節点を設ける。節点は変数の値を求めるべき代表点であ
る。即ち、有限要素法を用いた場合には、各節点に対す
る変数値の組の形で偏微分方程式の近似解が得られるこ
とになる。
1つの要素について、要素と節点との関係を第3図、第
4図に示す。
有限要素法を用いて節点上の変数値を得るためには、予
め偏微分方程式を節点上の変数値に関する連立1次方程
式に変形し、これを線形計算によって解くという手順を
経る。この連立1次方程式への変換操作を離散化と呼ぶ
離散化の手順を具体例を用いて示す。
偏微分方程式 %式%(10) を対象変数fについて解く場合、(10)の両辺に重み
関数N、をかけ、その領域全体にわたる積分種を0とお
く。即ち、 /vci i v(g r a d(f))NJd v
=o   (11)とする。重み関数の例を第5図、第
6図に示す。
第5図は第3図の要素に対する重み関数、第6図は第4
図の要素に対する重み関数である。重み関数NJは各節
点毎に1つ定まるので、(11)は節点毎に成立する式
であり、節点数分連立していると考えられる。
(11)に数学上の公式である部分積分を施し、次式を
得る。
f v grad(f)grad(N、+)dv−f 
s ngrad(f)Njds=0(nは境界に対する
法線方向単位ベクトル)第2項は対象領域の境界に関す
る積分であるのでこれに境界条件 n g rad (f) =q          (
13)(qは境界で与えられた流束) を取り込み f v grad(f)grad(NJ)dv−f s
 qNJds=o   (14)と変形し式中に境界条
件を導入する。
ここで、未知量fを既知の基底関数N、の線形結合とし
て f=Z  N五f I(15) のように近似する。但しf、は節点におけるfの値であ
る。この近似により、連続量fは節点における離散的な
値f、に置き換えられることになる。
即ち、第5図あるいは第6図に示した関数の重ね合わせ
として全体のfの分布を近似するわけである。(15)
を(14)に代入すれば、f v grad(ΣNtf
+)grad(Nt)dv−f s qNads”o 
 (16)f+は領域について定数となっているので、
Σとfの順序を交換し、かつf、の積分の外へ出すこと
ができて、結局 ΣCfv grad(Nt)grad(Nt)dv)f
t=fs qNJds  (17)と変形できる。(1
7)において各被積分項は既知であるから、(17)は
f、に関する連立1次方程式となっている。(17)を
行列形式で書けば、A(f)=(c)        
         (1g)(a、、(行列Aの(i、
j)成分) = f v grad(Nt)grad(Nt)dvf
 J= f s qNads     )となる。(1
8)を線形計算によって解けば、求める値(f)を得る
ことができる。以上がガレルギン法を用いた有限要素法
による偏微分方程式の離散化手順の説明である。
次に、変数の補間の精度について説明する。有限要素法
によって離散化を行う場合、変数の値は(15)によっ
て近似される。換言すれば、節点以外の場所における変
数値は節点における変数値から(15)によって補間さ
れることにぼる。従って基底関数(=重み関数)Nのと
り方にとって補間の精度に差が生ずるわけである。具体
的には、第3図に示す要素31を用い、従って第5図に
示す基底関数を用いた場合には、節点間の値は接点値か
ら2次関数的に補間されることになる。このような意味
で第3図に示すような頂点にのみ節点を持つ要素31を
線形要素、第4図に示すような頂点および辺上の中間点
に節点を持つ要素41を2次要素という。同様に第5図
の重み関数を線形の重み関数、第6図の重み関数を2次
の重み関数という。
一般に、要素数が等しい場合、補間の次数の高い2次要
素の方が線形要素より精度がよい。以上が有限要素法に
おける変数の補間の精度の説明である。
次に、係数行列の対角化を行うための手段について説明
する。前記(9)に対し上記ガレルキシ法を適用すれば
次式を得る。
Σ(/ vN+Nadv)ft= ・・・    (2
0)ここで、左辺の補間関数N1を恒等的に1とおけば
、 Σ(/vNjdv)ft= ・・・     (21)
となる。このように変形すれば、左辺から生ずる係数行
列はi=jの場合のみ非零となり、l≠jの場合には零
となる。換言すれば、係数行列が対角化されたことにな
る。以上が係数行列を対角化するための手段である。
以下、本発明の詳細な説明する。
第1図にプログラム生成処理12の構成と、これによっ
て数値シミュレーションを行なう場合のデータの流れを
示す。
プログラム生成処理12は、物理現象を支配する偏微分
方程式系、境界条件群、対象とする領域の形状、および
離散化の方法の指定などの情報を記述したシミュレーシ
ョン情報11を入力し、その現象を有限要素法を用いて
シミュレ−1−するためのFORTRANプログラム2
6を出力する。
同時に要素・節点の情報を格納する節点、要素データ2
5を出力する。このプログラムをFORTRAN翻訳機
構27を通して機械語プログラム28に変換する。計算
装置に機械語プログラム28を入力し、節点要素データ
25をデータとして付与すれば、シミュレーション結果
110を得ることができる。
第8図に流路中の遅い流れをシミュレートする場合のシ
ミュレーション情報11の例を示す。シミュレーション
情報11は領域情報82、境界条件群83偏微分方程式
84よりなる。領域情報82は領域を特徴づける点A、
B、C・・・等の座標情報85とそれらの点を連結した
辺の構成情報86.87、面の構成情報88.89より
成る。
86は辺ABが点Aと点Bを結ぶ直線であること、87
は辺BDが点B、C,G、Dを通る曲線であることを示
す。同時に88は面ABCFが点A。
B、C,Fを頂点とする4辺形であることを示す。
境界条件群83は、領域の境界で成立する境界条件より
成る。条件810は辺BD上とAE上で変数UとVの値
が0であること、即ち壁面で流素が0であることを規定
する。同様に条件811は流入口ABでの流速を、条件
812は流出口DEでの院力と流速勾配を規定している
。偏微分方程式系84は、現象を支配する偏微分方程式
系と解くべき変数名を保持する。813 rsOLVE
u:2  v:2  p:1 0FJは続く偏微分方程
式系を変数u+V+Pについて解くべき事、およびu、
vは2次の補間関数(第6図)によって補間し、pは線
形の補間関数(第5図)によって補間すべき事を示す。
続<814,815,816は遅い流れを支配するスト
ークス方程式である。
もう1つの例として、第25図に係数行列の対角化を指
定を含むシミュレーション情報11(7)例を示す。こ
のうち、領域情報と境界条件群については係数行列対角
化の説明上必要がないので割愛しである。偏微分方程式
2501は時間依存の熱伝導問題の記述例であり、次の
ことを指定している。2501と2505は組をなす指
定であり、間に挾まれた2503.2504を2502
のrUNTI LJ以下が成立するまで繰り返すことを
指示する。ここで、NTはループ1回ごとに1ずつ繰り
上がるカウンタであり1本例ではループが100回繰り
返されることになる。2503は時間依存熱伝導問題の
時間に関する陽的な代入計算であり、こ話を繰り返すこ
とにより、順次各時刻での温度fの分布が求められる。
ここで係数行列の対角化は次のように指示する。即ち、
対角化の対象となる変数を[]で囲み、その直後に対角
化を表わすキーワード(LM)を〈 〉で挾んで記述す
る。2501の例では、左辺の変数fに対する係数行列
が対角化されるべきことを指示している。2504は変
数の更新を行なう代入計算であり、2503によって求
められたfによって旧値fOを′置き換え、次の時間ス
テップの計算を行なう準備をしている。
メツシュ分割部24はシミュレーション情報11を入力
し、要素分割を行って節点要素データ25を生成する。
第9図に第8図の入力情報11に対する節点要素データ
25の例を示す。第8図シミュレーション情報11中偏
微分方程式系84に与えられた補間次数の最大値は2で
あるので、要素としては第4図に示した辺上中間節点つ
きのものを用いる。節点要素データ25は、節点データ
91.要素データ92およびサブセットデータ93より
成る。節点データ91は各節点につけられだ通し番号(
節点番号)順に節点の座標値を列挙したものである。要
素データ92は要素に付けられた通し番号(要素番号)
順に要素を構成する節点番号のリストを列挙したもので
ある。サブセットデータ93は領域情報82中の各辺2
面の名称に対し、それらの辺、面に含まれる節点の節点
番号に列挙したものである。これらの節点要素情報25
は、FORTRANプログラム26の実行時に計算′!
A置29によって配列中に読み込まれ、係数行列、定数
ベクトルの成分を数値的に決定する際に参照される。ま
た、シミュレーション結果110も、上記節点番号ある
いは要素番号順に出力される。
次に、本発明の中心をなす式処理部第1図111につい
て説明する。式処理部111は、シミュレーション情報
11中の境界条件群83と偏微分方程式系84を読み込
み、処理に好適な2分本等の形態である穴情報A19に
変形する人前処理部13と、穴情報A19中の補微分方
程式に対する最適な重み関数を決定し、これを偏微分方
程式に乗じて積分形に変換した穴情報B20に変換する
重み関数決定部と1式情報B20に部分積分を施して穴
情報C21に変形する部分積分実行部15と、穴情報C
21中の積分形に変換された偏微分方程式と境界条件群
と1対1に対応付け、境界条件を導入して穴情報D22
を作成する境界条件照合・導入部16と、穴情報D22
中の変数を節点における変数値の補間で置き換え、対象
変数については積分と総和の順序を交換して穴情報E2
3を作成する離散化部17と、穴情報E23中の係数行
列と定数ベクトルの成分にあたる式から実際の成分を数
値的に求めるFORTRANプログラム26を生成する
プログラム出力部18より成る。
以下、式処理部第1図111の働きを順に追って説明す
る。シミュレーション情報11の例として、第8図およ
び第25図に挙げたものを適宜用いて説明を行なう。
人前処理部13は、シミュレーション情報11から偏微
分方程式系と境界条件群を順次読み込み、各式を処理が
容易な2分水形式に変形して穴情報A19を作成する。
その処理の流れを第24図に示す。まず、シミュレーシ
ョン情報中の偏微分方程式を読み込み、偏微分方程式毎
にヘッダを作成しく2402)、偏微分方程式を通常の
コンパイラ等で用いられる構成解析法に基づいて構成解
析して2分木を作成しく2403)、この2分木をさぎ
のヘッダにつなぐ(2404)。次にシミュレーション
情報中の境界条件式を読み込み、同様にヘッダを作成し
く2406)、ヘッダに境界条件の指定された領域の名
称を格納しく2407)、境界条件を構成解析して2分
木を作成しヘッダにつなぐ(2408,2409)。第
8図のシミュレーション情報に対する穴情報A19の具
体例を第10図に示す。1002以下は偏微分方程式系
第8図84の第1式に対する2分木、1009以下は同
第2式に対する2分本、1010以下は同第3式に対す
る2分木である。同様に1011゜1012.1013
は境界条件群に対する2分木である。各2分木は+、−
,div、grad等の演算子を格納する節と、変数名
u、v、数値O等を格納する末端より成る。節の具体的
なデータ構造を第25図に示す。各節には、その節の左
側、右側の節へのポインタ、ならびに演算子名称を格納
する。また、端末の具体的なデータ構造を第26図に示
す。末端には変数名称または数値と、変数の補間次数お
よび変数に対するオプションを格納する。、(オプショ
ンとしては、その変数に対する係数行列の対角化等の指
定を格納するが、その具体例については後述する。)各
2分木の頂点には、その2分本に対する属性を格納する
ヘッダ(1001,1004,1005,1006゜1
007.1008)を設ける。境界条件に対するヘッダ
には、その境界条件が成立する領域名称および境界条件
の1種、2種の区別を格納する。
(1種、2種の判別については後述する。)偏微分方程
式に対するヘッダは後に重み関数の次数と対応する変数
名称を格納するため空きフィールドとしておく。さらに
、2分木の末端に変数名がある場合、その偶数が何次の
精度で補間されるかを偏微分方程式系84のr、u:2
  v:2  p:IJから読み取り、変数名とペアに
して格納する。もう1つの例として、第20図のシミュ
レーション情報に対して生成される式情報Aを第21図
に示す。第20図中の偏微分方程式系2501において
は、2503式の左辺変数fに対して係数行列の対角化
の指定(LM)が付されている。これにともない、第2
1図式情報Aの対応する末端2602のオプションフィ
ールドにLMが格納され、その変数を離散化する際に係
数行列を対角化すべきことを示す。
次に、重み関数決定部14は、各偏微分方程式に乗ずる
べき重み関数の次数を前述の重み関数決定方法に基づい
て決定し、第2分水のヘッダに格納する。それをもとに
偏微分方程式に重み関数を乗じて積分を行う。以下に重
み関数決定部の処理の方針を説明する。連立偏微分方程
式を有限要素法によって離散化する際には、連立偏微分
方程式中の各偏微分方程式に重み関数をかける必要があ
る。このとき、どの偏微分方程式にどの(何次の)重み
関数をかけるかを決定する必要がある。そのためにまず
、連立偏微分方程式中の各偏微分方程式と解くべき対象
変数とを1対1に対応付ける。
対応付けの規則は以下による。
■ 連立偏微分方程式中の各偏微分方程式についてdi
v (A−grad(f))項(Aは係数テンソル)が
存在し、Aが対角成分を含む場合、未だ対応のついてい
ないfが対象変数であればfとその偏微分方程式とを対
応付ける。1測微分方程式中に該当する項が複数存在す
る場合には、未だ対応のついていない対象変数の内最初
に出現したものとその偏微分方程式を対応付ける。
■ ■で対応のつかない対象変数と偏微分方程式が残っ
た場合、それらを対象として再び■と同様の対応付けを
行う。但し今回はテンソルA中に対角成分を含まない項
に着目して対応付ける。
■ 更に対応のつかない対象変数と偏微分方程式が残っ
た場合には、随れらを対象として次の規則により対応付
ける。対象変数について1階微分のみを含む偏微分方程
式についてはその式に含まれない対象変数と対応をつけ
る。
■ 以上で対応の付かない対象変数と偏微分方程式が残
った場合には、あらかじめ与えられた対象変数の並び順
に対応を付ける。
以上によって偏微分方程式と対象変数とを1対1に対応
付けたあと、その対象変数の補間次数と同じ次数を持つ
重み関数をその偏微分方程式の重み関数とする。以上が
連立偏微分方程式に対する重み関数決定部の処理の方針
である。
第27図にこの処理方針に基づいた重み関数決定部の処
理の流れを示す。第10図式情報A 1.9を例にとれ
ば、処理は次のようになる。まず第10図1002以下
の第1式に対し規則■を適用する。第1式においてはd
iv節の下のgrad節の引き数はUであり、またgr
adには係数が与えられていないので係数テンソルAは
単位テンソルであると判断できる。従って係数テンソル
Aは対角成分を含む見なすことができ、規則■により第
1式に対応する変数はUと判断され、ヘッダ1001に
は変数名Uとその補間次数2を格納する。第2式に対し
ても同様にして対応する変数はVであると判断され、ヘ
ッダ1004には名称Vと補間次数2が格納される。第
3式はu、v以外の変数pと対応付けられることになり
、ヘッダ1005には変数名称pと対応付けられること
になり、ヘッダ1005には変数名称pと補間次数1が
格納される。(第1式とU、第2式とVを対をづけた時
点で第3式と変数pが残るので、規則■を用いずに直接
第3式とpとを対応づけて良い。)以上の重み関数決定
結果に基づき、各式に重み関数を乗じ領域に関する積分
を行う。2分水上での操作は、=節の下の十節に着目し
、その下に領域積分を表すfv節9本節2重み関数を組
み合わせた部分木(第11図1101)を挿入すること
によりなされる。結果として得られる穴情報Bを図11
に示す。ここで、1次の重み関数をNJ、2次の重み関
数をMJで表す。
続く部分積分実行部15では、穴情報B20中の積分項
に対し部分積分を適用する。部分積分実行部の処理の流
れを第29図に示す。2分水上での操作は、領域積分に
ついては重み関数の上にgra’d節を加え(2903
)、fv節の下のdiv節を削除することによってなさ
れる(2905)。同時に、部分積分によって生ずる境
界積分項をヘッダの下につなぐ(2903)。
境界積分項は、境界積分を示すfs節、*節の下に重み
関数、および法線ベクトルとの積を示すn節をつなぎ、
その下に領域積分値のdivlより下に相当する部分木
をつなぐことにより得られる。
第11図1101に対してこの処理を施した結果として
得られる穴情報C21を第12図に示す。
次いで、境界条件照合、導入部16において。
前述の境界条件取り込み方法に基づき、各境界領域ごと
に偏微分方程式と境界条件との対応付けを行い境界条件
を導入する。まず、境界条件導入の前処理として、境界
条件の2分本のヘッダ(第12図1006.1007等
)を順次たどって境界条件の定義された領域名称をピッ
クアップし、偏微分方程式のヘッダの下にその情報をつ
ないで境界領域名称ヘッダをつくる。次に、各偏微分方
程式について、各境界領域ごとに導入すべき境界条件を
決定していく。このとき、偏微分方程式と境界条件式を
1対1に対応付ける方針を以下に説明する。
まず、与えられた境界条件を1種、2種に分類する。分
類の基準を第7図に示す。次に2種境界条件を偏微分方
程式と対応付ける。ここでは、偏微分方程式より得られ
る境界積分の被積分項と境界条件とを逐次比較し、被積
分項を全て含む境界条件が存在した場合、その偏微分方
程式と境界条件を対応付ける。どの偏微分方程式にも対
応の付かない2種境界条件が残った場合にはその境界条
件の導入は行わない。次いで、1種境界条件と残った偏
微分方程式の対応を付ける。対応付けの規則を以下に示
す。
(91種境界条件の対象変数の補間次数と等しい次数の
重み関数がかけられた偏微分方程式と対応付ける。
(Φ 偏微分方程式中で2階微分のかけられた変数と1
種境界条件の対象変数が等しい場合、これらの式を対応
付ける。
■ 偏微分方程式中で1階微分のみのかけられた変数と
1種境界条件の対象変数が等しい場合。
これらの式は対応付けない。
規則の優先順位は■、■、■の順とする。またこれらの
規則によって対応が一意に決まらない場合には、予め指
定された偏微分方程式と境界条件の並び順によって対応
を定める。以上の規則によって境界条件と偏微分方程式
の対応を付けた後、2種境界条件は偏微分方程式の境界
積分項と置換し、1種境界条件は偏微分方程式自身と置
換する。但し、1種、2種いずれの境界条件とも対応の
付かない偏微分方程式が残った場合には、その偏微分方
程式が残った場合には、その偏微分方程式に対する境界
積分項を0と置く。以上が、境界条件照合・導入部で連
立偏微分方程式に対して境界条件2を1対1に対応付け
る方針である。
以上の方針に基づいた偏微分方程式と境界条件の対応付
けの処理の流れを第28図に示す。第13図の例につい
て具体的に処理の流れを説明する。第13図第1式10
01(7)領域BD1301に対して境界条件の2分水
のヘッダを探索すれば。
2種境界条件は存在しないことがわかる(第8図83参
照)。そこで1種境界条件を探索すれば、u=o、v=
oの2条件が指定されている。ここで第1式のヘッダ1
00 ’1を参照すれば第1式に対応する変数がUであ
ることが知れるため、第1式のBDに対する境界条件と
してはU=Oが選ばれる。そこで、境界条件の2分水中
のU=Oに相当する2分水1006を削除し、その内容
を1301にコピーする。同様にして、第1式の2番目
の境界領域DEについて境界条件の2分木のヘッダを探
索すれば、2種境界条件としてn(grad (u))
=O+ n (grad (v))=0が指定されてい
る。前述の境界条件取り込み方法に基づき、これらが第
1式の境界積分項と置換可能かを調べる。置換可能性は
2分水上では以下のように判定できる。まず第1式のヘ
ッダから境界積分項をたどりn節以下に着目する。(第
10図1008参照)此の両者のn節以下が完全に一致
すれば2種境界として取り込み可能であると判断できる
。いま、n (grad (u))=0に石目すればこ
れは第1式の境界積分項に対し上記条件を満たすので取
り込み可能となる。そこで、境界積分項のn節より下の
部分木を境界条件2分水の=節から右側に出た部分木(
第10図1014参照)で置き換えたものを、第1式の
1302以下に格納する。また、ここで取り込んだ境界
条件n g r a d (u) =Oに対する2分本
は削除する。このような操作をすべて式の全境界領域に
ついて行えば境界条件の導入が完了する。
この状態における穴情報D22を第14図に示す。
ここで、対応する境界条件を満たない境界領域が残った
場合には、その境界では境界積分項二〇の2種境界条件
が成立するものとみなし、境界積分項のn以下をOで置
き換えた部分木を該当する境界条件名称ヘッダにつなぐ
。逆に、取り込むことのできない境界条件が指定された
場合にはその境界条件の2分木は削除されずに最後まで
残る。このような残存する2分木は無視して次の処理に
進むか、何らかのワーニングメツセージを出力すること
も可能である。
続いて、離散化部17において変数を節点上の変数値の
補間式によって置換し、さらに対象変数については積分
と総和の順序を交換して対象変数を積分の外側に置く処
理を行う。第30図に離散化部17における処理の流れ
を示す。変数の補間式による置換は、2分水上では次の
操作により実現できる。2分本の末端を探索し、それが
変数であった場合、総和を表すΣ節と本節、基底関数名
(NJまたはMJ)および離散変数名(変数名に添字i
を付したもの)より成る部分木(第15図1501)で
置き換える3002゜基底関数NtとMIとの使い分け
は変数名と対になって格納されている補間次数を参照し
、1の場合にN1.2の場合にMlを用いる。この時点
の穴情報E23を第15図に示す。また、対象変数を積
分の外へ出す操作は、2分水の末端に(離散化された)
対象変数が存在した場合、それに連結する8節9本節お
よび基底関数をまとめてfv節の直前へ移動することに
より実現できる3003 (第6図1601)、この状
態を第16図に示す。なお、この離散化操作は1種境界
条件の2分本については特に行う必要はない。また、第
22図のように行列対角化指定のかけられた項2701
が存在する場合には、これを離散化する際に現われるN
またはM、を1で置き換える3005゜これによって第
23図のような穴情報Eを得ることができる。
以上で式の変形は完了し、プログラム出力部18が最終
的な大変形結果である穴情報E23に基づいてFORT
RANプログラムの生成を行う。
プログラム出力部18の主要な働きは、離散化された偏
微分方程式に対応する連立1次方程式、即ち係数行列と
定数ベクトルを構成するためのFORTRANプログラ
ムを生成することである。プログラム出力部の処理方法
を説明するに先立ち、最終的に構成すべき係数行列の例
を第19図を用いて説明する。係数行列の大きさは、式
の本数(あるいは対象変数の個数本節点数)を次元数と
する正方行列1902となる。この行列中に、さきの離
散化によって得られた対象変数に対する係数式(第17
図1712のfv節以下はpiに対する係数式、同様に
1603のfv節以下はuiに対する係数式)を評価し
て値を代入していくわけである。例えば、第17図17
12以下に現れる重み関数Maのインデクスがkなる値
をとり、基底関数Ntのインデクスが1なる値をとる場
合を考えると、それを評価した値の格納場所は第19図
中斜線位置1901となる。
FORTRANプログラム26中の係数行列への格納は
上記の規則に従うが、1+JをDo−プによって動かし
、同一処理が可能な部分はまとめて処理を行う。このD
oループ生成と係数行列への格納を行うためのプログラ
ム出力部の処理方法は第17図、第18図に示すように
なる。
第17図は領域積分項に対するプログラム出力方法を示
す。1701において係数行列を単位行列化しておく。
これは、例えば辺上中間節点(第4図において各辺の中
点に位置する節点)においては第3式(第8図816)
の重み関数が定義されていないので、この節点に対する
行は成分が全てOとなり、行列が特異となることを避け
る手段である。1703,1704は全ての式、変数に
対するプログラム生成を行わせるためのループである。
ここで着目式2着目変数が定まるので、以降ではその変
数、式に対するプログラム生成を行う。1705におい
て係数行列を評価すべき式を式情報E23中から探索す
る。1706,1707は1712と共に基底関数・重
み関数を全節点についてスキャンするためのDoループ
を生成する。1708.1709は変数・式が定義され
ない節点に対し評価のスキップを行っている。
1710で実際に数値積分を実行して係数値を評価する
ためのプログラムを生成し、1711で第19図に示し
たごとくに行列の対応位置へ係数値を格納するプログラ
ムを生成する。
第32図に第16図式情報Eの第1項(pの係数)を評
価する際にプログラム出力部18で生成されるFORT
RANプログラムの例を示す。
3202は着目式が第1番目の偏微分方程式であること
、3202は着目変数が第3番目の対象変数(p)であ
ることを表わすコードである。
3204.3205.3206はそれぞれ第17図17
12.1706.1707によって生成されたコードで
あり、基底関数、重み関数を全節点についてスキャンす
るためのDoループをなす。
M E S HN Oは全要素数、MODES (L)
は第り番目の要素に含まれる節点の数である。
3207.3208にて着目節点の節点番号を得る。I
ADATA (I、J)は工番目の要素の5番目の節点
の節点番号を格納するテーブルである。
3209.3210は基底関数、重み関数の定義されて
いない節点をスキップするための判定文である。INT
ER(I)は1番目の節点が辺上の中間接点の場合に1
、それ以外の場合に0を格納したテーブルである。32
11においてfvMJ・dx(Nl)の数値積分を行な
うサブルーチンエFUNCをコールする。ここで、5F
NXはd−x(Nl)を定義するファンクション、SF
MはMJを定義するファンクションである。またVAL
は積分結果を受は取る変数である。3212にて積分結
果の係数行列C0FFの対応する位置への足し込みを行
なう。
第18図は境界条件用のFORTRANプログラム出力
方法を示す。領域積分の場合と異なり、1本の式に対し
て複数の境界領域が対応しているので、境界領域をスキ
ャンするループ1803が加わる。また、1種と2種の
境界条件には取り込み方法に差があるので、1804に
よってこれを振り分けている。2種条件に対する処理は
領域積分の場合とほぼ同様であるが、各境界における節
点番号を得るためのプログラムを生成する必要がある。
(1808,1810)一方、1種境界条件についての
プログラム出力方法は第31図に示す。領域積分の場合
と同様にDoループの生成の行なった後、3107.3
108にて係数行列の対応する行の対角成分を1.非対
角成分を0とするプログラムを生成し、3109で定数
ベクトルの対応する位置に境界値(u=cにおけるCの
値)を代入するプログラムを生成する。
以上で、本発明の1実施例の説明を終わる。
本実施例ではストークス流体および時間依存熱伝導問題
を取り上げて説明したが、本発明の特徴はむしろ対象と
する偏微分方程式を選ばないところにあり、2階以下の
偏微分方程式系で記述される他の様々な問題にそのまま
適用できるものである。また、説明を用意するために2
次元問題を取り上げたが、3次元問題についてもまった
く同様にプログラムの自動生成が可能となる。
[発明の効果] 本発明によれば、変数を異なる精度によって補間する必
要のある場合を含む広範囲な連立偏微分方程式系に対し
て適切なFORTRANプログラムを自動生成すること
が可能である。連立偏微分方程式が現れるのは、流体、
不純物拡散、半導体デバイス、構造などきわめて広い分
野にわたっており、しかもこれらの分野は偏微分方程式
の連立によって人手によるプログラミングの困難さも大
きい。このような分野の問題に対してプログラムの自動
生成手段を提供したことにより、プログラム開発工数と
コストの大幅な削減が可能となる。
【図面の簡単な説明】
第1図は本発明の1実施例の全体構成図、第2図は要素
分割の説明図、第3図、第4図は要素の説明図、第5図
は線形の重み関数の説明図、第6図は2字の重み関数の
説明図、第7図は境界条件種別を決定する規則の表、第
8図はシミュレーション情報の説明図、第9図は節点要
素データの説明図、第10図は穴情報Aの説明図、第1
1図は穴情報Bの説明図、第12図は穴情報Cの説明図
、第13.14図は穴情報りの説明図、第15゜16図
は穴情報Eの説明図、第17.18図はプログラム出力
部の処理の流れの説明図、第19図は係数行列構成の説
明図、第20図は係数行列の対角化指定を含むシミュレ
ーション情報の説明図。 第21図は係数行列の対角化指定を含む穴情報Aの説明
図、第22図は係数行列の対角化指定を含む穴情報りの
説明図、第23図は係数行列の対角化指定を含む穴情報
Eの説明図、第24図は大曲処理部の処理の流れの説明
図、第25図は節のデータ構造の図、第26図は末端の
データ構造の図、第27図は重み関数決定部の処理の流
れの説明図、第28図は境界条件照合部の処理の流れの
説明図、第29図は部分積分実行部の処理の流れの説明
図、第30図は離散化部の処理の流れの説明図、第31
図はプログラム生成部の第1種境界に対する処理の流れ
の説明図、第32図は生成FORTRANプログラムの
例。 [符号の説明] 11・・・シミュレーション情報 12・・・プログラム生成機構 13・・・大曲処理部  14・・・重み関数決定部1
5・・・部分積分実行部 16・・・境界条件照合・導入部 17・・・離散化部   18・・・プログラム出力部
19・・・穴情報A    20・・・穴情報B21・
・・穴情報C22・・・穴情報D23・・・穴情報E 
   24・・・メツシュ分割部25・・・節点要素デ
ータ 26・・・FORTRANプログラム 27・・・翻訳機構   28・・・機械語プログラム
29・・・計算装置 30・・・シミュレーション結果 31・・・式処理部 ・、! 代理人 弁理士 小川勝馬、−1− 笛 /圀 箪2圓 第3面 $4田 処た。    ガ仁 $g面 Aγ 菓4面 J4.ガた $7回 第2回 1η  タ  Eコ ;::;都ね用榛21.?髪絆琳・ ノaB         ”””      ノブ//
       7“$72図 箋・3面 第  74 p弓 ノ30ノ 番/り固 ツタ12  傅喀友予テテ1 、’f// 27ffl ¥23田 2112ノ 第2り居

Claims (1)

  1. 【特許請求の範囲】 1、物理現象を支配する偏微分方程式系、境界条件群、
    上記物理現象の生起する領域形状および離散化の方法に
    関する指定を入力情報として与え、上記物理現象を有限
    要素法を用いて計算機上でシミュレーションするための
    プログラムを自動生成するプログラム生成方法において
    、連立する複数の変数および偏微分方程式を含む上記偏
    微分方程式系に対し、数式的に重み関数を乗じ、数式的
    に部分積分を実行し、数式的に上記境界条件群より境界
    条件の導入処理を行い、数式的に変数の離散化処理を行
    い、係数行列・定数ベクトルへ成分を代入し線形計算に
    よりこれを解くためのプログラムを生成することを特徴
    とするプログラム生成方法。 2、上記の重み関数を乗ずる処理は、上記偏微分方程式
    系中の各偏微分方程式に対し、最適な重み関数を自動的
    に選択することを特徴とする特許請求の範囲第1項記載
    のプログラム生成方法。 3、上記の境界条件の導入処理は、上記偏微分方程式系
    中の各偏微分方程式に対し、上記境界条件群からこれに
    適合する境界条件を自動的に選択して導入することを特
    徴とする特許請求の範囲第1項記載のプログラム生成方
    法。 4、上記変数の離散化処理は、偏微分方程式中の解くべ
    き変数(対象変数)について補間関数による総和と積分
    との順序を交換することにより行い、取り扱える偏微分
    方程式の範囲を拡大したことを特徴とする特許請求の範
    囲第1項記載のプログラム生成方法。 5、上記変数の離散化処理は、上記入力情報中で指定が
    なされた場合、使用する補間関数を変化させることによ
    り、生成されるプログラム中で構成される係数行列を対
    角化することを特徴とする特許請求の範囲第1項記載の
    プログラム生成方法。 6、上記プログラムの生成処理は、構成すべき係数行列
    に対して成分を代入する際にインデクスの管理を2重に
    したプログラムを生成することにより、上記偏微分方程
    式中の連立する変数、偏微分方程式に対してプログラム
    の自動生成を行うことを特徴とする特許請求の範囲第1
    項記載のプログラム生成方法。
JP63139275A 1987-08-28 1988-06-08 プログラム生成方法 Pending JPH01145723A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63139275A JPH01145723A (ja) 1987-08-28 1988-06-08 プログラム生成方法
US07/577,092 US5699271A (en) 1987-08-28 1990-08-31 Method of automatically generating program for solving simultaneous partial differential equations by use of finite element method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP62-212759 1987-08-28
JP21275987 1987-08-28
JP63139275A JPH01145723A (ja) 1987-08-28 1988-06-08 プログラム生成方法

Publications (1)

Publication Number Publication Date
JPH01145723A true JPH01145723A (ja) 1989-06-07

Family

ID=26472128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63139275A Pending JPH01145723A (ja) 1987-08-28 1988-06-08 プログラム生成方法

Country Status (2)

Country Link
US (1) US5699271A (ja)
JP (1) JPH01145723A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188454A (ja) * 2006-01-16 2007-07-26 Mitsubishi Heavy Ind Ltd 設計支援装置及びコンピュータプログラム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349878B1 (en) * 1996-08-16 2008-03-25 Options Technology Company, Inc. Simulation method and system for the valuation of derivative financial instruments
US6772136B2 (en) 1997-08-21 2004-08-03 Elaine Kant System and method for financial instrument modeling and using Monte Carlo simulation
US6173276B1 (en) * 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
JPH1185496A (ja) * 1997-09-03 1999-03-30 Fujitsu Ltd オブジェクト指向プログラム作成支援装置
JP2000293508A (ja) * 1999-04-01 2000-10-20 Takayuki Aoki 非等間隔格子において空間微係数を用いたポアソン方程式、拡散方程式および類似の偏微分方程式の高精度計算プログラム
US7369973B2 (en) 2000-06-29 2008-05-06 Object Reservoir, Inc. Method and system for representing reservoir systems
AU7585201A (en) * 2000-06-29 2002-01-14 Object Reservoir, Inc. Feature modeling in a finite element model
JP2002203757A (ja) * 2000-12-28 2002-07-19 Toshiba Corp 境界条件表示プログラムおよび半導体装置の製造方法
JP3864059B2 (ja) * 2001-04-12 2006-12-27 東芝ソリューション株式会社 微分方程式の離散化により生成される連立一次方程式の計算プログラムおよびその計算プログラムを記録したコンピュータ読み取り可能な記録媒体ならびに連立一次方程式の計算装置
US7933824B2 (en) * 2002-06-18 2011-04-26 Philibert F. Kongtcheu Methods, systems and computer program products to facilitate the pricing, risk management and trading of derivatives contracts
JP5258824B2 (ja) * 2010-03-16 2013-08-07 株式会社東芝 プロセスシミュレーションをコンピュータに実行させるプログラム
US9146652B1 (en) * 2011-08-31 2015-09-29 Comsol Ab System and method for creating user interfaces in a multiphysics modeling system
WO2017077609A1 (ja) * 2015-11-04 2017-05-11 富士通株式会社 構造解析方法、及び構造解析プログラム
CN109344438B (zh) * 2018-08-31 2022-10-25 北京航空航天大学 一种区间演化方程的建立及求解方法
CN109598059B (zh) * 2018-11-30 2023-04-18 中国运载火箭技术研究院 一种基于代理模型的热防护系统优化设计方法及设计系统
CN115687859A (zh) * 2022-09-09 2023-02-03 郑州航空工业管理学院 一种偏微分方程数值求解系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104855B2 (ja) * 1985-03-28 1995-11-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 数値シミュレーション装置
US4742473A (en) * 1985-07-16 1988-05-03 Shugar Joel K Finite element modeling system
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 株式会社日立製作所 シミュレーションプログラム生成方法
US4858146A (en) * 1986-08-13 1989-08-15 The Babcock & Wilcox Company Automated design of structures using a finite element database

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188454A (ja) * 2006-01-16 2007-07-26 Mitsubishi Heavy Ind Ltd 設計支援装置及びコンピュータプログラム
JP4599301B2 (ja) * 2006-01-16 2010-12-15 三菱重工業株式会社 設計支援装置及びコンピュータプログラム

Also Published As

Publication number Publication date
US5699271A (en) 1997-12-16

Similar Documents

Publication Publication Date Title
JPH01145723A (ja) プログラム生成方法
US7984371B2 (en) Method and system for the graphical modeling of data and calculations of a spreadsheet
US4819161A (en) Method of automatic generation of a computer for numerical simulation of physical phenomenon
JPH01237726A (ja) 上位仕様書作成方法
US11734264B2 (en) Generation of optimized logic from a schema
US4841479A (en) Method for preparing a simulation program
Tedford et al. On the common structure of MDO problems: a comparison of architectures
Rossi et al. Parallel adaptive mesh refinement for incompressible flow problems
Seiler et al. A multi-dimensional configuration algorithm for modular product architectures
Goult et al. Improving the performance of neutral file data transfers
Varvarezos et al. A sensitivity based approach for flexibility analysis and design of linear process systems
Cook Jr ALPAL, a program to generate physics simulation codes from natural descriptions
Milanič et al. Minimal separators in graph classes defined by small forbidden induced subgraphs
Massé Modelling of continuous media methodology and computer-aided design of finite element programs
Towara Discrete adjoint optimization with OpenFOAM
Bouttier et al. Combinatorics of hard particles on planar graphs
JPH07103400A (ja) 配管系統のモデリング方法
Laughton et al. Fast barycentric-based evaluation over spectral/hp elements
Daems et al. Circuit complexity reduction for symbolic analysis of analog integrated circuits
Bressan et al. A versatile strategy for the implementation of adaptive splines
US20060287977A1 (en) Method of processing data for a system model
Vazquez et al. ModGen: a model generator for instrumentation analysis
US20240126748A1 (en) Generation of optimized logic from a schema
Cao Simmodel transformation middleware for modelica-based building energy modeling and simulation
Vernon Parametric Structural Optimization of a Wheel Using the Flex Representation Method