JPH07120275B2 - シミューションプログラム生成方法 - Google Patents

シミューションプログラム生成方法

Info

Publication number
JPH07120275B2
JPH07120275B2 JP58246271A JP24627183A JPH07120275B2 JP H07120275 B2 JPH07120275 B2 JP H07120275B2 JP 58246271 A JP58246271 A JP 58246271A JP 24627183 A JP24627183 A JP 24627183A JP H07120275 B2 JPH07120275 B2 JP H07120275B2
Authority
JP
Japan
Prior art keywords
program
equation
coefficient
node
calculation program
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.)
Expired - Fee Related
Application number
JP58246271A
Other languages
English (en)
Other versions
JPS60140433A (ja
Inventor
征雄 梅谷
京子 岩沢
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 JP58246271A priority Critical patent/JPH07120275B2/ja
Publication of JPS60140433A publication Critical patent/JPS60140433A/ja
Publication of JPH07120275B2 publication Critical patent/JPH07120275B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は物理現象を数値化して模擬的に再現するシミュ
レーション装置に係り、特に大気挙動、核融合炉内のプ
ラズマ挙動、原子炉内の中性子挙動、構造建築物の配位
挙動など分布量の挙動を数値的に再現するに好適なプロ
グラム生成方法に関する。
〔発明の背景〕 通常、数値シミュレーション装置は汎用の計算装置をプ
ログラムで特定化して用いる方式をとるが、従来はプロ
グラムを汎用のFORTRAN言語などを用いて記述する事か
らシミュレーションの制御に長大な行数を要していた。
これを避けるために、たとえば構造解析分野のNASTRAN
のような汎用パッケージソフトウェアを対象物の形状な
どをパラメータとして入力することにより特定化して使
用する方策もとられているが、方程式をパラメータとす
る事は許されないのでシミュレーションの範囲が限定さ
れる欠点がある。
〔発明の目的〕
本発明の目的は、数値シミュレーションにおける前記の
欠点を克服し、偏微分方程式により挙動の記述される広
範囲の物理現象のシミュレーションを実施するために必
要なプログラムの作成が容易に行なえるプログラム生成
方法を提供することにある。
〔発明の概要〕
数値シミュレーションにより再現されるべき物理現象
は、自然法則の表現である偏微分方程式、舞台となる空
間領域形状、領域の境界における状態、初期状態などが
規定されれば定まり、またそれを近似的に再現するため
の有限要素法などの計算手法も知られている。しかし、
汎用計算装置を特定化して用いる通常の数値シミュレー
ション装置は、上記の情報のみでは機能を実現すること
ができない。そこで、上記の指定にもとずいて汎用計算
機を特定化するためのプログラムを自動生成することに
より、必要最小限の指定で数値シミュレーションの制御
を可能とすることを特徴とする。
すなわち、本発明では、ユーザが記述し易い表現でもっ
て、シミュレーション領域および偏微分方程式を指定す
る入力情報を使用する。この領域は、その形状と位置で
もって指定され、偏微分方程式は、偏微分演算子を使用
して記述される。本発明ではこのような、この入力情報
から、フォートランなどの高級プログラム言語で記述さ
れた第1の計算プログラムを生成し、その後この計算プ
ログラムを機械語で記述された第2の計算プログラムに
変換する。この高級プログラム言語で記述された計算プ
ログラムの生成にあたっては、この入力情報に記述され
ている偏微分方程式内の各項の種類を判別し、その種類
に応じた処理を行うことにより、いろいろの種類の偏微
分方程式に対しても、その方程式で支配された物理量を
計算できるプログラムを自動的に生成する。
〔発明の実施例〕
以下、本発明の一実施例を、第1図から第10図により詳
細に説明する。
第1図は本発明による数値シミュレーション装置の構成
図である。シミュレーション実施者(ユーザ)により入
力される対象物の境界の形状に関する情報ならびに小三
角形や小四面体などによる要素分割情報1と、物理現象
を支配する電磁場方程式などの方程式情報2に基づき、
計算プログラム自動生成機構3がFORTRANによる計算プ
ログラム4と節点要素データ41を生成する。生成された
プログラムは続いて翻訳機構5により機械語の計算プロ
グラム6に変換され、それが計算装置7を制御してシミ
ュレーションを実施する。計算装置7はプログラムの指
令に従って節点要素データ41と入力データ8を読み込ん
でシミュレーションを実施し、シミュレーション結果9
を出力する。
すなわち、本実施例で使用する装置は、次の3つからな
る。
(a)計算プログラム生成機構3 これは、要素分割情報1と方程式情報2を表わす入力情
報から計算プログラム4を生成する装置として作用す
る。この計算プログラム4は、本実施例において第1番
目に生成される計算プログラムで、本実施例では、フォ
ートランにて記述される。上記入力情報は、偏微分演算
子を用いて、偏微分方程式あるいは境界条件を記述する
ことが出来るので、ユーザにとっては記述し易い。フォ
ートランは、入力情報に含まれた偏微分演算子を記述で
きないので、計算プログラム自動生成機構3は、このよ
うな入力情報から、偏微分演算子を記述出来ない高級プ
ログラム言語されたプログラム4を生成するするのに使
用される。
要素分割情報1もユーザにとって記述し易い構造を有す
る。この計算プログラム自動生成機構3は、この入力情
報から、計算プログラム4が使用可能な節点要素データ
41は生成する装置としても作用する。
(b)翻訳機構5 これは、計算プログラム4を機械語で記述された計算プ
ログラム6に変換する装置として作用する。この機械語
で記述された計算プログラム6は、本実施例では2番目
に生成される計算プログラムである。
(c)計算装置7 これは、機械語で記述された計算プログラム6に実行す
る計算機からなる。従って、この計算装置7は、計算プ
ログラム自動生成機構3、翻訳機構5と異なり、プログ
ラムの生成に使用されるのではなく、生成されたプログ
ラムの実行に使用される装置である。
こゝで、本実施例の計算プログラム自動生成機構3の動
作につき説明する。
計算プログラム自動生成機構3への入力となる形状・要
素分割情報1の一例を第2図に示す。第2図において丸
線で示した二重の矩形が形状を示す。これは長いダクト
の断面を表示したものであり、外側の矩形枠20がダクト
の境界を、内側の矩形枠22はダクト内の異物域を示す。
ダクト内部を埋め尽す三角形の各々が要素25(E1,E2
…)と呼ぶ小領域であり、これは有限要素法にてシミュ
レーションを実施するために設けた人為的な区分であ
る。要素25はダクトの矩形枠20、22および内部に節点30
(N1,N2…)をとり、隣接節点を直線で結ぶことにより
得られる。
これらの形状・要素情報は式で与えても良いし、端末か
ら図形として与えても良い。
計算プログラム自動生成機構3への他方の入力である方
程式情報は、たとえば未知量Aに関するヘルムホルツ方
程式 などであり、ダクト内部におけるAの分布を規定する。
ここで▽はラプラス微分演算子 を意味する。Xは、既知の量を表わす。この情報はダク
ト境界における適切な境界条件と共に式の形で計算プロ
グラム自動生成機構3に与えられる。
まず、計算プログラム自動生成機構3の動作説明に先立
ち、有限要素法による計算方法について説明する。
有限要素法は要素分割に依存して各節点上に定義される
基底関数を用いて計算を進める方法である。第i番節点
上に定義される基底関数iの一例を第3図に示す。こ
れは一次の基底関数iであり、第i節点上で値1をと
り、それを取り囲む各要素の他の節点上では値0をと
る。その他の位置では、これら節点値を結んで得られる
稜の上に張られる平面膜上の値をとるテント形の関数で
ある。たとえば第2図との関係では、N1が31、N2が30、
N3が32、N4が33、N5が34、N6が35、N7が36に対応する。
有限要素法においては、基底関数iを用いて、原方程
式を第4図に示す手順にて連立一次方程式に帰着させて
解く。例題として取り上げた第4図の方程式(1)に則
して説明する。まず、求めるべきAと既知量Xの分布を
第4図(2)に示すような基底関数iの一次結合によ
って近似し、係数{α}を未知量として求める。原方
程式のAと既知量Xを基底関数の一次結合で置きかえ、
さらに基底関数iを等号の両辺に掛けて空間領域で積
分すれば第4図(3)の関係式が得られる。(3)式は
節点30ごとに得られるので、節点30の数だけ存在する。
(3)を変形して係数{α}について整理すれば
(4)の関係式が得られる。ここでは積分と微分に関す
る性質(但し、この性質は、シミュレーション領域の境
界での物理量Aの外向きの法線方向の傾斜量がゼロとい
う条件が満たされるときに成立する。本実施例では、こ
の条件が満たされると仮定する) を利用している。ここで、▽は傾斜微分演算子( を意味する。(4)式は、 と置けば、(5)式に示すように{Cij}を係数行列{b
i}を定数ベクトルとする連立一次方程式を意味し、こ
れを解くことにより{α}を求めることができる。
計算プログラム自動生成機構3は、有限要素法のこの性
質を利用して、方程式情報2に基づき、係数行列要素
{Cij}、定数ベクトル{bi}の計算コードとそれに引
き続く連立一次方程式の求解プログラムの読み出しコー
ドを生成する。第4図の例から明らかなように,
{Cij}{bi}の計算式は方程式に依存する。また∫V
j・Vi、∫jiなどの積分値は、節点30なら
びにそれらの隣接節点の座標値から公式を用いて計算さ
れるので計算式は要素分割情報1を使用する。これらの
要素分割情報1を計算プログラム生成機構3は計算コー
ドがシミュレーション実施時に参照しやすいように変換
して,節点要素データ41を併せて生成する。
第5図に、計算プログラム自動生成機構3の構成を示
す。形状及び要素分割情報1を第5図に、計算プログラ
ム自動生成機構3の構成を示す。形状及び要素分割情報
1を形状翻訳部10が解読して表形式の形状内部表現12を
作成する。ここには、矩形などの基本図形から成る形状
単位間の相互関連、各形状単位に属する節点30の番号と
座標値、各節点30が帰属する要素の番号、要素を構成す
る節点の番号などの情報が記録される。形状内部表現12
を用いて節点要素データ生成部15が節点要素データ41を
生成する。方程式情報2は数式翻訳部11が解読して、表
連鎖形式(すなわちリスト形式)の数式内部表現13に変
換する。ここには、前述の(式1)に示すような方程式
の各記号が内部コードに変換され、そのままの順序で記
録される。この数式内部表現は、偏微分方程式を構成す
る、演算子、物理量を示す変数その他を表わす複数の記
号をそれぞれ表わす、互いに連結された情報からなる点
に特徴を有し、その特徴により、以下に述べる処理を容
易に、かつ、自動的に行うのに適する。数式内部表現13
に基づいて、コード生成部14がFORTRANの計算プログラ
ム4を生成する。プログラム生成は第4図の手順に従が
う。すなわち、要素分割情報1にもとずき,(2)式に
より基底関数展開、(3)式により基底関数積分、
(4)式により標準化を経て、係数行列要素{Cij}、
定数ベクトル〔bi}の計算式として第4図の(5)式を
得る。この計算式に対して節点要素データ41を用いた積
分公式を適用した後に、内部コードを文字列に変換して
FORTANの計算プログラム4を生成する。それにひき続い
て、連立一次方程式を解くための呼び出し指令(コール
文)をプログラムに追加する。第4図の過程は、すべて
数式内部表現13の変形により実現する。
以上の過程を第2図の例題に則して具体的に説明する。
第5図における要素分割情報1はたとえば第6図に示す
ようなものである。第6図において,LINE(P1、P2
は、第2図の点P1とP2を結ぶ線分を示し、R(10、D)
はそれをP1からP2に向って細分化の方向に等比10分割す
る事を意味する。同様にして、線分P2P3の3等分割など
形状単位の境界を形成する線分群の分解を指定する。そ
の後、点P1、P2、P3、P4などで張られる四辺形QUAD
(P1、P2、P3、P4)、QUAD(P1、P2、P5、P6)など形状
単位の境界の分割情報に基づく自動分割を指定し、シミ
ュレーション対象領域を埋め尽す。
第5図の形状翻訳部10においては、この情報に基いて、
第7図に示すような形状内部表現12を生成する。これ
は、形状リスト102、節点リスト101、要素リスト100、
従属境界リスト103、帰属要素リスト105の、相互に関連
する5本のリストから成る。形状リスト102は形状単位
(線分、四辺形など)ごとに表が作られ、この表の各々
が従属境界リスト103と節点リスト101をポイントする。
従属境界リスト103、104は当該形状単位の境界となる形
状単位群の形状リスト102をポイントする。形状リスト1
02からポイントされた節点リスト101は、当該形状単位
に属する節点情報(N1、N2、N3……)を保持し、この各
節点ごとに後述の帰属要素リスト105をポイントする。
また、節点リスト101は、各節点情報ごとに、その座標
値(X、Y)も保持する。要素リストは、要素分割の結
果から成る有限要素情報(E1、E2、…)を保持し、要素
(E1、E2、…)を構成する節点の情報(N1、N2、…)と
節点リスト101のポインタ、この要素(E1、E2、…)の
面積あるいは体積情報AREなどを保持する。帰属要素リ
スト105は,それをポイントしている節点リスト101の節
点(例えばN2)の所属する有限要素(E1、E2、…)に関
する要素リスト100群をポイントする。
例えば、第6図の指定から成る第2図のような要素分割
の結果の一部(左上部)について形状内部表現12の状況
は第7図に示すとおりである。
形状翻訳部10は、形状内部表現12を第6図の情報から次
の手順によって生成する。まず第1行「LINE(P1
P2)、R(10、D)」を読み込む事により、L(P1
P2)の形状リスト102と、それに従属する節点リスト101
(N1、N2、N3)を生成する。この節点リスト101上に、
節点情報を作成する。引き続くLINE情報に関しても同様
である。続く「QUAD(P1、P2、P3、P4)、A」を読み込
んだ後、それを構成する境界線分がすでに形状リスト10
2に登録されている事を確認すると共に、従属境界リス
ト103、104などを生成する。QUAD(P1、P2、P3、P4)の
境界には、4つの線分があるので、従属境界リスト103
は、その各々の線分をポイントする。例えば、従属境界
リスト103は線分L(P1、P2)を、従属境界リスト104は
線分L(P1、P4)をポイントする。さらに、境界(P
1P2、P1P4、…)の節点情報を用いて、QUAD(P1、P2、P
3、P4)の内部の節点を決定して、節点リスト101(N4
を生成すると共に、要素分割を行なって、要素E1、E5
E6に関する要素リスト100と帰属要素リスト105を生成す
る。QUAD(P1、P2、P5、P6)に関しても同様に、形状リ
スト102、従属要素リスト103、節点リスト101、要素リ
スト100、帰属要素リスト105が生成される。
次に、節点要素データ生成部15は形状内部表現12に基い
て節点要素データ41を生成する。これは、第8図に示す
ように、節点結合テーブル150、結合要素テーブル151、
第3節点テーブル152、要素構成節点テーブル153、要素
面積テーブル154の5種類のテーブルに格納されるデー
タであり、計算プログラム6が計算装置7を制御する際
に使用するものである。
節点結合テーブル150は、各節点についてそれと共に要
素を構成する他の節点の番号を集めたものであり、節点
N2に関する例を第8図に示す。節点N2は、N1、N3、N4
N5、N6、N7が要素を構成する事を意味し、その状況は第
2図からも明白である。節点要素データ生成部15は、こ
のデータを第7図の節点リスト101と、そこからポイン
トされる帰属要素リスト105と、さらにそこからポイン
トされる要素リスト100とを参照することによって得
る。結合要素テーブル151は、節点結合テーブル150にて
表記される結合節点の各々の対が所属する要素の番号を
保持する。第2図における例を、第8図に示す。たとえ
ば、N2、N1の2節点が所属する要素はE1、E2の2つであ
り状況は第2図より明らかである。このデータを節点要
素データ生成部15は、指定された節点の一方に関する節
点リスト101より、帰属要素リスト105、要素リスト100
を参照し他方の指定節点に関する帰属を判定する事によ
って得る。
第3節点テーブル152は、上記の結合要素テーブル151で
指定される要素を構成する節点のうち、節点結合テーブ
ル150に含まれない第3の節点番号を格納するものであ
り実例を第8図に示す。このデータを節点要素データ生
成部15は、結合要素テーブル151を得る前記の手続きに
より併せて得る。
要素構成節点テーブル153は全要素につき、それを構成
する節点の番号を保持するものであり、節点要素データ
生成部15は、このデータを要素リスト100を順次参照す
る事により得る。本テーブルには節点の番号が各要素に
つき反時計廻りの順序で格納される。
要素面積テーブル154は、結合要素テーブル151と同形式
にて対応する要素の面積を保持するものであり、結合要
素テーブルデータの取得に合わせて当データも取得す
る。
この他に、節点要素データ生成部15は、全節点数NODEと
節点結合テーブル150の最大幅BANDを得、さらに全節点
の座標値(X、Y)を節点リスト101を順次スキャンし
て得る。
第5図の数式内部表現13は、第4図の(1)式に例示す
る方程式情報2における∇、A、=などの記号を数字
から成る内部記号の列に置きかえたものであり、数式翻
訳部11はその置きかえを実施する。
第5図のコード生成部14にては数式内部表現13にもとず
き計算プログラム4を生成する。
コード生成方式の説明に先立ち、計算プログラム4の構
成を説明する。
計算プログラム4の主要な構成を第4図(1)式の例に
つき示すと第9図のようになる。こゝで、200は節点要
素データ生成部15で生成された節点要素データの読み込
みコードであり、NODEは全節点数、BANDは節点結合テー
ブルの最大幅、すなわち、ある節点と結合して要素を構
成する他節点の数の最大を意味する。ELMは、第8図に
おける結合要素ケーブル151、NOD3は第3節点テーブル1
52、NODは要素構成節点テーブル153、AREは要素面積テ
ーブル154X、Yは節点座標値である。これらのテーブル
に格納されたデータは、以降の計算プログラムにて参照
される。続く201は(式3)、(式4)により係数行列
要素{Cij}、定数ベクトル要素{bi}を求めるにあた
ってi、jの範囲を制御するためのループ制御コードで
ある。201にてI1はiに対応し、(3)の「DO54I1
1、NODE」はi値を1から始まり全節点数NODEに終る全
節点番号にわたって変化させる事を意味する。I2は、EL
M(結合要素テーブル151)、NOD3(第3節点テーブル15
2)、ARE(要素面積テーブル154)の横方向の指標であ
り、(2)の「DO54I2=1、BAND」によりI1で指定され
る節点と結合関係のある第2節点を順次参照する。同様
にI3は上記テーブルの第3指標であり、(1)の「DO54
I3=1、2」により要素を構成する第3節点を順次参照
する。
(式3)、(式4)に示すように、係数行列要素
{Cij}、定数ベクトル要素{bi}の計算は、2つの基
底関数の積の積分∫ji、∫Vj・Viを含
む。基底関数は、第3図に示すように当該節点を含む要
素の上でのみ値を持ちそれ以外の要素上ではゼロ値をと
る事から、積分∫ii、∫Vij・Viの値はNi
節点とNj節点が共に含まれる要素の上でのみ計算すれば
よい。このような要素の選択は201の制御を用いてELM
(結合要素テーブル151)を順次参照する事により適切
に行なうことができる。
続く202は節点番号設定コードであり、ELM(I1、I2
I3)により選択された要素番号に対してNOD(要素構成
節点ケーブル153)を索引する事により構成節点番号を
得て、第3節点テーブルNOD3の指定内容を比較して、NO
D上の第3節点の位置を求め、第3節点から始まるNOD上
の節点番号を巡回的に順次に、K、I、Jに設定する処
理を計算装置7に指示する。この処理は、基底関数積分
∫ii、∫Vj・Viの計算を正しく遂行する
ために必要なものである。続く203はK、I、Jの指標
を用いた節点座標差BI〜CKの計算コードであり、これは
基底関数積分の遂行に必要となる。
204は(式3)にもとずく行列係数要素{Cij}の計算コ
ード、205は同じく定数ベクトル要素{bi}の計算コー
ドである。RCOEF(I1、I2)が{Cij}を、CONS(I1)が
{bi}を意味する。204、205の計算コードは、(式
3)、(式4)にて 公式 を適用して得られる。こゝで は節点Ni、Njの両者を含む要素Eの全てについて累和を
とる事を意味し、は要素E上でのf、gの平
均値を意味する。また、Δは要素Eの面積、bj=yk−
yi、bi=yj−yk、cj=xi−xk、ci=xk−xjのおのおのは
節点座標値の差である。
(式3)、(式4)への公式(式5)(式6)の適用結
果と204、205の計算コードの対応は明らかであるが、特
に(17)の等号右辺におけるRCOEF(I1、I2)、(21)
の等号右辺におけるCONS(I1)は、選択された要素に関
する累和を行なう事を指示する。
続く206は第3節点が存在しない場合に累和を抑止する
ための判定コード(4)に呼応する結尾コード(23)な
らびにルーブ制御コード(1)、(2)、(3)に呼応
する結尾コード24から成るループ後置コードである。最
後の207は計算された{Cij}、{bi}を用いて連立一次
方程式の求解を行なうプログラムFLUを呼び出すことを
指示するコードである。
以上に述べた構成を有する計算プログラム4をコード生
成部14が数式内部表現13にもとずいて生成する手順を第
10図に示す。
まず、節点要素データ読み込みコード200を生成し(ス
テップ500)、次いでループ制御コード201、節点番号設
定コード202、座標差計算コード203などの前置コードを
生成する(ステップ501)が、これらは定形コードであ
りその生成に特別な工夫を要しない。
続いて、係数行列要素計算コード204、定数ベクトル要
素計算コード205を第4図(1)式の数式内部表現13を
階段的に書き換える事によって生成する。まず未知量A
の内部記号を基底関数の一次式Σαjjの内部表現で
書きかえる(ステップ502)事によって、第4図(3)
式に対応する数式内部表現13を得る。さらに、別種の基
底関数を右から掛け、等号の両辺に積分をほどこした
(ステップ503)第4図(3)に対応する数式内部表現1
3を得る。これに対して、二階の微分∇を一階に変換
するために(式2)の性質を用いた書き換えを行ない
(ステップ504)、 を得た後に、微積分関数の括弧の展開を分配則に基いて
実施し、 に対応する数式内部表現13へと変換する。さらに積分の
記号を累和の各項に分配して に対応する内部表現とする。
これを未知係数{α}に関して整理するために一旦 を得た後、{α}について整理して、第4図(4)式
で示した の表現を得る。
これより、係数行列要素{Cij}の計算式として(式
3)の右辺に等しい の内部表現を、定数ベクトル要素{bi}の計算式として
(式4)の右辺に等しい の内部表現を得る(ステップ510)。
(式7)に対しては、積分公式(式5)、(式6)を g=1にて適用し、累和 を省略して、 の内部表現を得る(ステップ511)。この内部表現は、
前述した、偏微分方程式に対する数式内部表現13と同様
に、表連鎖形式(すなわち、リスト形式)にて構成され
ている数式内部表現であることは言うまでもない。上記
数式は、一つの要素領域から一つの係数への寄与分を表
わす式であり、この数式内部表現は、以下に述べる簡単
な処理を経て、マトリックス方程式の係数の値を算出す
るのに使用される。この数式内部表現は、フォートラン
で記述可能な、演算子その他を表わす複数の記号をそれ
ぞれ表わす、互いに連結された情報からなる点に特徴を
有し、その特徴により、以下に述べるように、上記マト
リックス方程式の係数を算出するフォートランコードの
生成を、自動的に行うのを容易にする。(式9)におい
てbj、bi、Cj、CiをそれぞれBJ、BI、CJ、CIに置きか
え、ΔをARE(I1、I2、I3)に、 を要素構成節点におけるそれらの値の単純平均に置きか
え、さらに累和をとるためのRCOEF(I1、I2)を等号右
辺の先頭に置くことにより、係数行列要素計算コード20
4を生成する。定数ベクトル要素計算コード205の生成に
関しても同様である(ステップ520)。
これに続き、ループ後置コード206を生成し(ステップ5
21)、さらに求解プログラム呼び出しコード207を生成
する(ステップ522)が、これらは定形コードであり生
成に特別の工夫を要しない。
以上の説明から明らかなように、本実施例では、行列方
程式の係数Cij、定数項biの計算には主に以下の2つの
数式が使用される。
(a)各要素領域に関する領域積分に由来する、係数Ci
jへの寄与分を表わす係数用の数式 前述した式9がこの数式に相当する。
(b)各要素領域に関する領域積分に由来する、定数項
biへの寄与分を表わす定数項用の数式 本実施例ではこの数式を明示しなかったが、前述した式
9と同様に求められる。第9図のコード205は、この定
数項用の数式に従い定数項を算出するコードである。
さらに、これまでの説明から明らかなように、本実施例
で生成される、フォートランで記述された計算プログラ
ム4は、以下の4つのプログラム部分からなる。
(a)上記係数用数式により、係数Cijへの寄与分を算
出する係数算出プログラム部分 このプログラム部分は具体的には第9図のコード203、2
04からなる。
(b)上記定数項用の数式により、定数項biへの寄与分
を算出する定数項算出プログラム部分 このプログラム部分は具体的には第9図のコード205か
らなる。
(c)上記係数算出プログラム部分と定数算出プログラ
ム部分の実行を、節点要素データを使用して実行するよ
うに制御する制御プログラム部分 このプログラム部分は具体的には第9図のコード201、2
02、206からなる。
(d)上記第1から第3のプログラム部分を実行して得
られる係数Cijと定数項biを使用して、上記マトリック
ス方程式を解くためのプログラム部分 このプログラム部分は、具体的には、図9のコード207
からなり、本実施例では、この部分は、別に用意された
行列方程式を解くサブルーチンプログラムを呼び出すコ
ール文からなる。
以上の説明から明らかなように、本実施例では、ユーザ
にとって記述し易い表現でもって、シミュレーション領
域に関する情報および偏微分方程式に関する情報を記述
する入力情報を使用する。この領域は、その位置と形状
でもって指定され、偏微分方程式は、偏微分演算子を使
用して記述される。本実施例ではこのような、この入力
情報から、フォートランで記述された第1の計算プログ
ラムを生成し、その後この計算プログラムを機械語で記
述された第2の計算プログラムに変換している。この入
力情報はユーザには記述し易いにも拘らず、この入力情
報そのままでは、その入力情報が指定する処理を実行す
るプログラムを生成することは容易ではない。この入力
情報が指定する処理を実行するには、この処理を実行す
る、機械語で記述されたプログラムを生成する必要があ
る。しかし、偏微分演算子を含む入力情報から直接機械
語プログラムを生成することは容易ではない。一方、フ
ォートランのような高級プログラム言語で記述されたプ
ログラムを機械語プログラムに変換するコンパイラは一
般に使用されている。本実施例では、ユーザが記述し易
い入力情報から機械語プログラムを生成する手順とし
て、まず、この入力情報からフォートランで記述された
第1の計算プログラムを生成し、その計算プログラムを
機械語で記述された第2の計算プログラムに変換する。
この変換にはすでにあるコンパイル技術を利用できるの
で、この変換は容易に実現できる。こうして、本実施例
は、ユーザが記述し易い入力情報を使用しながら、その
入力情報が指定する処理を実行できる機械語で記述され
た計算プログラムを生成することを容易にしている。
しかも、本実施例では、入力情報からフォートランで記
述された計算プログラムを生成するに当り、この入力情
報に記述されている偏微分方程式内の各項の種類を判別
し、その種類に応じた処理を行っている。このことによ
り、いろいろの種類の偏微分方程式を処理できるように
なっている。
より具体的には、本実施例では、偏微分方程式を構成す
る、演算子、物理量を示す変数その他を表わす複数の記
号をそれぞれ表わす、互いに連結された情報からなる方
程式用数式内部表現データに、この偏微分方程式を翻訳
する。その上で、上記方程式用数式内部表現データに含
まれた各記号の種類に応じた式変形処理を上記方程式用
数式内部表現データに対して実行し、その結果として、
複数の要素領域のいずれかに属する節点Niに関する、マ
トリックス方程式の各係数Cijおよび各定数項biをそれ
ぞれ算出するのに使用する係数用の数式および定数項用
の数式をそれぞれ表わす係数用数式内部表現データと定
数項用数式内部表現データを得る。したがって、任意の
構造を有する偏微分方程式に対しても、これらの数式内
部表現データを自動的に得ることが容易になる。
さらに、マトリックス方程式の各係数Cijおよび各定数
項biをそれぞれ得られた係数用の数式と定数用の数式と
に基づいて算出するための、高級プログラム言語で記載
された、係数算出プログラム部分および定数項算出プロ
グラム部分とを形成する。その際、係数用数式内部表現
データおよび定数項用数式内部表現データとして、上記
係数用の数式および上記定数項用の数式のそれぞれを構
成する、上記高級プログラム言語で記述可能な演算子そ
の他を表わす複数の記号をそれぞれ表わす、互いに連結
された情報からなる数式内部表現データを生成する。し
たがって、これらの数式内部表現から、上記係数算出プ
ログラム部分および定数項算出プログラム部分を自動的
に生成することが容易になる。
本実施例では、空間領域が二次元の場合を取り上げた
が、一次元や三次元等であっても基底関数の積分公式が
異なるのみであるため、同様にプログラムの自動生成が
実現される。
また、方程式に合わせて計算コードを決定するため、
(式1)で取り上げた例題以外の各種の方程式への適用
が可能である。基底関数の種別については、第3図に示
すものの他、より高次のものに対しても積分公式、なら
びに式変形公式の変更により容易に対処できる。
さらに生成するプログラムはFORTRANにとどまらず、PL/
I、PASCALなどFORTRANと同レベルの記述機能を有するも
のであればいずれも自動生成ができる。
〔発明の効果〕
本発明によれば、数値シミュレーションを制御するプロ
グラムの作成労力がFORTRANなどを用いて作成する場合
に較べて大幅に軽減できるので、シミュレーションの実
施が極めて容易になる。
【図面の簡単な説明】
第1図は本発明のプログラム生成方法の一実施例を示す
構成図、第2図は本発明の入力情報の1つである形状記
述例とメッシュ分割例の説明図、第3図は有限要素法で
用いる基底関数の例の説明図、第4図は有限要素法によ
る計算手順を示す説明図、第5図はプログラム生成方法
の構成図、第6図は要素分割情報例の説明図、第7図は
形状内部表現例の説明図、第8図は節点要素データの説
明図、第9図は本発明において自動生成される計算プロ
グラムの一例を示す説明図、第10図はコード生成部の処
理手順の説明図である。 1……要素分割情報、2……方程式情報、3……計算プ
ログラム自動生成機構、4……計算プログラム(FORTRA
N)、5……翻訳機構、6……計算プログラム(機械
語)、7……計算装置、8……入力データ、9……シミ
ュレーション結果、10……形状翻訳部、11……数式翻訳
部、12……形状内部表現、13……数式内部表現、14……
コード生成部、15……節点要素データ生成部、20……形
状外部枠、22……形状内部枠、25……要素、30……節
点、41……節点要素データ、100……要素リスト、101…
…節点リスト、103、104……従属境界リスト、105……
帰属要素リスト、150……節点結合テーブル、151……結
合要素テーブル、152……第3節点テーブル、153……要
素構成節点テーブル、154……要素面積テーブル、200…
…節点要素データ読み込みコード、201……ループ制御
コード、202……節点番号設定コード、203……座標差計
算コード、204……係数行列要素計算コード、205……定
数ベクトル要素計算コード、206……ループ後置コー
ド、207……連立一次方程式求解プログラム呼び出しコ
ード。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】偏微分方程式により支配された物理量のあ
    る領域内での値を有限要素法に基づいて算出するための
    シミュレーションプログラムを生成する方法であって、 (1)シミュレーションすべき物理量(a)を支配する
    偏微分方程式を偏微分演算子を用いて記述する方程式情
    報と、シミュレーションすべき領域の形状と位置でもっ
    てその領域を指定する領域指定情報とを少なくとも指定
    する入力情報から、該方程式情報で指定された偏微分方
    程式を有限要素法で解くための、偏微分演算子を使用し
    ない高級プログラム言語で記述された計算プログラムを
    プログラム生成用の装置により自動的に生成し、 (2)該高級プログラム言語で記述された計算プログラ
    ムを、翻訳用の装置によりコンパイルすることにより、
    機械語で記述された計算プログラムに変換し、該機械語
    で記述された計算プログラムをシミュレーションプログ
    ラムとして出力するステップを有し、 上記ステップ(1)では、 (1a)上記領域指定情報が指定する上記シミュレーショ
    ンすべき領域を複数の要素領域に該プログラム生成用の
    装置により分割し、その結果として該複数の要素領域の
    各々を構成する複数の節点とそれらの節点の位置を表わ
    す節点要素データを生成し、 (1b)該方程式情報で記述された偏微分方程式を有限要
    素法で解くための上記高級プログラム言語で記述された
    計算プログラムとして、該複数の要素領域を構成する複
    数の節点の各々Niと他の節点Njに関連した、該複数の要
    素領域の各節点での該物理量の値ajに関するマトリック
    ス方程式(Cij)(aj)=(bi)を該節点要素データを
    使用して解くためのプログラムを該プログラム生成用の
    装置により生成し、 該ステップ(1b)では、 (A)該偏微分方程式を構成する、演算子、上記物理量
    を示す変数その他を表わす複数の記号をそれぞれ表わ
    す、互いに連結された情報からなる方程式用数式内部表
    現データに、該偏微分方程式を該プログラム生成用の装
    置により翻訳し、 (B)上記方程式用数式内部表現データに含まれた各記
    号の種類に応じた式変形処理を上記方程式用数式内部表
    現データに対して実行し、その結果として、上記複数の
    要素領域のいずれかに属する節点Niに関する、該マトリ
    ックス方程式の各係数Cijおよび各定数項biをそれぞれ
    算出するのに使用する係数用の数式および定数項用の数
    式をそれぞれ表わす係数用数式内部表現データと定数項
    用数式内部表現データを、該プログラム生成用の装置に
    より生成し、その際、該係数用数式内部表現データおよ
    び該定数項用数式内部表現データとして、上記係数用の
    数式および上記定数項用の数式のそれぞれを構成する、
    上記高級プログラム言語で記述可能な演算子その他を表
    わす複数の記号をそれぞれ表わす、互いに連結された情
    報からなる数式内部表現データを生成し、 (C)該マトリックス方程式の各係数Cijおよび各定数
    項biをそれぞれ算出するための、該高級プログラム言語
    で記述された、係数算出プログラム部分と定数項算出プ
    ログラム部分とを、それぞれ該係数用数式内部表現デー
    タと該定数項用数式内部表現データとに基づいて該プロ
    グラム生成用の装置により形成し、 (D)該係数算出プログラム部分と該定数項算出プログ
    ラム部分を、該節点要素データを使用して実行するよう
    に制御するための、該高級プログラム言語で記述された
    実行制御プログラム部分を、該プログラム生成用の装置
    により形成し、 (E)該係数算出プログラム部分および該定数項算出プ
    ログラム部分を実行したときに得られる各係数Cijおよ
    び各定数項biを使用して上記マトリックス方程式を解く
    ためのプログラム部分を、該プログラム生成用の装置に
    よりさらに形成し、該係数算出プログラム部分、該定数
    項算出プログラム部分、該実行制御プログラム部分およ
    び該マトリックス方程式を解くためのプログラム部分か
    らなるプログラムを、上記高級プログラム言語で記述さ
    れた計算プログラムとして出力するシミュレーションプ
    ログラム生成方法。
JP58246271A 1983-12-28 1983-12-28 シミューションプログラム生成方法 Expired - Fee Related JPH07120275B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58246271A JPH07120275B2 (ja) 1983-12-28 1983-12-28 シミューションプログラム生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58246271A JPH07120275B2 (ja) 1983-12-28 1983-12-28 シミューションプログラム生成方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP6042162A Division JPH06325013A (ja) 1994-03-14 1994-03-14 シミュレーション方法

Publications (2)

Publication Number Publication Date
JPS60140433A JPS60140433A (ja) 1985-07-25
JPH07120275B2 true JPH07120275B2 (ja) 1995-12-20

Family

ID=17146045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58246271A Expired - Fee Related JPH07120275B2 (ja) 1983-12-28 1983-12-28 シミューションプログラム生成方法

Country Status (1)

Country Link
JP (1) JPH07120275B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197440B2 (en) 2001-07-11 2007-03-27 Canon Kabushiki Kaisha Finite element method library, finite element method program, and storage medium
KR101388675B1 (ko) * 2012-08-07 2014-04-24 한양대학교 산학협력단 응력구속조건의 민감도를 해석하기 위한 노드 셋 선택방법 및 이를 이용한 응력기반 위상최적설계에서 사용하는 응력구속조건의 민감도를 해석하는 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816449A (en) * 1984-08-09 1989-03-28 Immunetech Pharmaceuticals Immunotherapeutic anti-inflammatory peptide agents
JPS6246338A (ja) * 1985-08-23 1987-02-28 Nec Corp モデルデ−タ半自動生成装置
JPH07120276B2 (ja) * 1986-03-10 1995-12-20 株式会社日立製作所 シミュレーションプログラム生成方法
JPH07120351B2 (ja) * 1986-03-14 1995-12-20 株式会社日立製作所 シミュレーションプログラム生成方法
ATE60096T1 (de) * 1987-05-09 1991-02-15 Kleinewefers Gmbh Verfahren zum betrieb einer walzenmaschine und steueranordnung zur durchfuehrung dieses verfahrens.
JP2718935B2 (ja) * 1988-02-09 1998-02-25 株式会社日立製作所 プログラム生成方法
EP0490478A2 (en) * 1990-12-14 1992-06-17 Tektronix Inc. Automatic compilation of model equations into a gradient based analog simulator
US5438526A (en) * 1991-07-12 1995-08-01 Hitachi, Ltd. Program generation method for particles simulation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理学会技術研究報告(数値解析研究会5−2)梅谷他2名"数値シミュレーション用プログラム言語DEQSOL"(1983−7)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197440B2 (en) 2001-07-11 2007-03-27 Canon Kabushiki Kaisha Finite element method library, finite element method program, and storage medium
KR101388675B1 (ko) * 2012-08-07 2014-04-24 한양대학교 산학협력단 응력구속조건의 민감도를 해석하기 위한 노드 셋 선택방법 및 이를 이용한 응력기반 위상최적설계에서 사용하는 응력구속조건의 민감도를 해석하는 방법

Also Published As

Publication number Publication date
JPS60140433A (ja) 1985-07-25

Similar Documents

Publication Publication Date Title
JPH07120276B2 (ja) シミュレーションプログラム生成方法
US10395410B2 (en) System and method for real-time pose-based deformation of character models
JP2753085B2 (ja) 形状モデリング方法及びその装置
JP4482563B2 (ja) ダイアグラミング環境言語のための単純化データ信号サポート
US4972334A (en) Automatic generation method of a simulation program for numerically solving a partial differential equation according to a boundary-fitted method
JPH03268058A (ja) 文書作成方法及びその装置
JPH07120275B2 (ja) シミューションプログラム生成方法
JPH07120351B2 (ja) シミュレーションプログラム生成方法
Li Pm4vr: A scriptable parametric modeling interface for conceptual architecture design in vr
Peng et al. Automatic model refinement for fast architecture exploration [soc design]
CN104778323A (zh) 集成多源性能分析数据的复杂装备作业流程仿真方法
JP4813639B2 (ja) カスタマイズした解析機能及びカスタマイズした図形機能を定義するためのフィーチャ型マクロ言語
JPH03263174A (ja) プログラム生成方法およびそのための領域分割方法
JP5948479B1 (ja) 2次元または3次元の物体データを表示操作するシステム、方法及びコンピュータソフトウエアプログラム
CN111640170B (zh) 骨骼动画生成方法、装置、计算机设备及存储介质
JP2022040049A (ja) 高レベルソースコードからのqubo又は高次定式化の自動生成のためのフレームワーク
CN114065666A (zh) 一种磁性液体密封耐压能力协同仿真分析方法
JPH06325013A (ja) シミュレーション方法
CN114633850A (zh) 一种船舶结构有限元模型虚拟可视化重构方法
JP6005317B1 (ja) 2次元又は3次元の物体データを表示操作するシステムを用いた図面データ作成方法
JPH08153130A (ja) 有限要素解析支援システム、有限要素解析方法とその装置
CN111985014B (zh) 一种基于标准图集的建模方法及系统
Ryszka et al. GraphTool—a new system of graph generation
CN111985014A (zh) 一种基于标准图集的建模方法及系统
JP2908868B2 (ja) 形状設計装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees