JP3315399B1 - 差分格子の生成方法とそのプログラム及び記録媒体 - Google Patents

差分格子の生成方法とそのプログラム及び記録媒体

Info

Publication number
JP3315399B1
JP3315399B1 JP2001153002A JP2001153002A JP3315399B1 JP 3315399 B1 JP3315399 B1 JP 3315399B1 JP 2001153002 A JP2001153002 A JP 2001153002A JP 2001153002 A JP2001153002 A JP 2001153002A JP 3315399 B1 JP3315399 B1 JP 3315399B1
Authority
JP
Japan
Prior art keywords
grid
stretching function
points
dimensional stretching
function unit
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
JP2001153002A
Other languages
English (en)
Other versions
JP2002351930A (ja
Inventor
正寿 青木
Original Assignee
正寿 青木
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 正寿 青木 filed Critical 正寿 青木
Priority to JP2001153002A priority Critical patent/JP3315399B1/ja
Application granted granted Critical
Publication of JP3315399B1 publication Critical patent/JP3315399B1/ja
Publication of JP2002351930A publication Critical patent/JP2002351930A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

【要約】 【課題】等比級数を用いず、各小区間の接合部も含め
て、1〜3次元の解析モデルの特異な部位を任意の座標
軸に投影して得られる全制御点列間を滑らかに延伸する
ことができる差分格子の生成方法とそのプログラム及び
記録媒体を提供する。 【解決手段】該制御点列で区切られた各小区間に対応し
た一次元延伸関数単位を生成し、各小区間の各端部に位
置する2つの格子点間隔同士を共有させながら数珠状に
連結するとともに、制御点列の両端に位置する一次元延
伸関数単位の格子点間隔を確定値とし、共有する各両端
部の格子点間隔を近似値として、各一次元延伸関数単位
の格子点を逐次計算し、全ての格子点の位置が一定の誤
差範囲に収束するまで繰り返す。さらには、生成された
全格子点列における、隣接する2つの格子点間隔の大き
い値を小さい値で割った隣接格子点間隔比の内、最大の
隣接格子点間隔比を求め、目標とする隣接格子点間隔比
以下になるまで、各一次元延伸関数単位の格子点数を再
設定して格子点の逐次計算を繰り返す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、差分方程式の計算
に用いる差分格子の生成方法と、そのプログラム及び記
録媒体に関するものである。
【0002】
【従来の技術】流体などの動的な現象を記述する方程式
を差分法により差分方程式に置き換え、コンピュータで
安定して解くためには、品質の良い差分格子の生成が重
要になる。最も単純な格子作成方法は、全解析領域を等
間隔に分割することであるが、例えば、1〜3次元の解
析モデルの特異な部位である固体と流体の境界層等を正
確に計算するために必要とされる格子点間隔を全解析領
域に適用することは、膨大な数の格子点が必要となり、
計算時間やメモリ容量の増大などの問題から現実的では
ない。
【0003】このため、解析上高い精度が要求される固
体と流体の境界層近傍では非常に細かい差分格子を使
い、固体から離れるに連れて該差分格子を徐々に粗くす
る、という「格子点間隔の延伸」が行われている。この
とき、細かい格子から粗い格子へ格子点間隔が連続して
滑らかに増減する差分格子を生成することが、計算の安
定性及び収束性を大きく左右する要因となる。
【0004】単純な境界層などの問題であれば、このよ
うな格子点の延伸は等比級数などを用いれば容易に生成
可能であるが、物質の境界、形状データ、予測される境
界層の厚さなどから抽出される複雑な制御点列(例えば
図1(1)のX1,X2, …X9,X10参照)のように、多くの制御
点列を固定したまま、全解析領域で連続して滑らかに格
子点を延伸することは、手作業では極めて困難である。
たとえ可能であったとしても、格子作成にかかる作業
は、コスト的に釣り合わない。
【0005】これに対する解決策として、不純物分布か
らPN接合面を計算し、等比級数を用いて各小区間(図1
のX1-X2, X2-X3, …,X8-X9, X9-X10)を分割する差分格
子自動生成方法が特開平4-317354号において提案されて
いる。
【0006】
【発明が解決しようとする課題】しかしながら、この特
開平4-317354号による方法では、小区間内での等比級数
の公比のみに着目しているため、小区間同士の接合部で
は公比の整合性が保てなくなる。
【0007】また、この方法では、各接合部において、
格子点間隔の比を許容値の範囲に収めることによって問
題を解決しているが、許容値の指定には、主観的要素が
介在するため、その根拠が不明確であり、また作業量も
増大する。一方、等比級数を用いずに滑らかな延伸を行
う方法として、M.Vinokurは“JOURNAL OF COMPUTATIONA
L PHYSICS 50,215-234(1983)”において、正規化された
線分1の両端の格子点幅ΔX1,ΔXM-1(図10及び図11参
照)と任意の格子点数M(=11)を指定し、三角関数と双曲
線関数を用いる一次元延伸(補間)関数を提案した。
【0008】しかし、この方法では、両端の格子点幅Δ
X1,ΔXM-1を規定する4点のみしか適用されず、図1
(1)に示した5点以上の固定された制御点列に応用す
ることはできなかった。従って本発明は、等比級数を用
いず、各小区間の接合部も含めて全制御点列間を滑らか
に延伸することができる差分格子の生成方法とそのプロ
グラム及び記録媒体を提供することを目的とする。
【0009】
【課題を解決するための手段】本発明に係る差分格子の
生成方法を、図面を参照して以下に順次説明する。 (1)まず、物質境界、形状データ、境界層厚さなど、
1〜3次元の解析モデルの特異な部位を入力手段により
任意の座標軸に投影して得られるN(=10)個の制御点列X1
-XN(=10)メモリ手段から入力する(図1(1)参照)。 (2)これらの制御点列X1-X10で区切られた小区間X1-X
2, X2-X3, …X8-X9, X9-X10に対応したN-1(=9)個の一次
元延伸関数単位Ei(i=1,…, N-1)を第1演算手段によ
生成し、数珠状に連結する。この一次元延伸関数単位
Eiの生成は次のように行う。
【0010】まず、正規化された長さ1の線分の両端に
おける格子点幅(ΔX1,ΔXM-1)と端点を含めた格子点
数M(≧4)を指定すると、滑らかに格子点を分布させる
一次元延伸関数を定義する。これは、例えば上述したM.
Vinokurによる一次元延伸関数(図10参照)を用いること
ができるが、その他の両端の格子点幅を指定することの
できる一次元延伸関数を用いてもよい。
【0011】そして、この一次元延伸関数に、図2にお
ける制御点XiからXi+1までの距離を、図10における点2
から点M-1までの距離で除した値を倍率として、図10の
点2および点M-1を図2に示したXi,Xi+1の位置に対応させ
ることにより、実座標での延伸を可能にした関数を一次
元延伸関数単位Eiとする。また、格子点数の指定は、
Xi,Xi+1の2点とその内部の格子点の数の和とするように
変更する。
【0012】図3には、図2と図10との関係が示されてい
る。さらに、図2及び図4に示すように、EiのD.left.out
とEi-1のD.right.in、Ei-1のD.right.outとEi
D.left.in、EiのD.right.outとEi+1のD.left.in
、Ei+1のD.left.outとEiのD.right.inを共有する
ことにより、一次元延伸関数単位を数珠状に接続する。 (3)次に、上記(2)で連結された一次元延伸単位群に
おいて、第2演算手段により、該制御点列の両端に位置
する小区間に対応した一次元延伸関数単位E1,EN-1の格
子点間隔を確定値とし、共有する各端部の格子点間隔を
近似値として、各一次元延伸関数単位の格子点を各一次
元延伸関数単位について逐次計算し、全ての格子点の位
置が一定の誤差範囲に収束するまで繰り返す。
【0013】すなわち、両端の一次元延伸関数単位E1
D.right.inおよび同EN-1のD.left.inを確定値とし
て、図4に示すごとく、一次元延伸関数単位E2,E3,E4,
…,EN-3,EN-2の順番で、逐次、延伸処理を実行する。こ
のとき、図5に示すごとく、一次元延伸関数単位Ei-1
D.right.inを精度の高い近似値(延伸計算済みの値で
斜線入り矢印で示す。)とし、同Ei+1のD.left.inを
精度の低い近似値(前回の延伸計算の古い値で白抜き矢
印で示す。)として、それぞれ、同EiのD.left.outと
D.right.outの値に用いて同Eiの延伸を行い、同Ei
D.right.inをより精度の高い近似値として同Ei+1の延
伸計算に使用する。
【0014】上記の延伸逐次計算を繰り返すことによ
り、前回の逐次計算による近似値と今回の逐次計算によ
る近似値との差異が徐々に減少し、一意の値に近づいて
行くので、図6に示すように、最終的(図示の例では6回
目)には格子点の位置は一定の値(変動が一定の値以
下)に収束することになる。
【0015】なお、各回の逐次計算において延伸計算が
同EN-2に達した後、計算の収束を速めるために、逆方向
から同じ処理を行うことが好ましい。さらに、同E1およ
びEN -1では延伸は行わず、格子点間隔を均等に分割す
る。また、図4及び図5は逐次計算の中間段階を示してい
るが、最初は、各一次元延伸関数単位に初期格子点数M=
2を与える。これは、最初は小区間の端点のみ、すなわ
ち分割しないことを意味しており、制御点列のみを用い
て一次元延伸関数単位を生成することになる。
【0016】例えば、小区間X5-X6の一次元延伸関数単
位は、隣接する小区間X4-X5とX6-X7とで求めることにな
る。ただし、この場合の各格子点は元の制御点列に過ぎ
ない(図7参照)。 (4)上記の逐次計算が一定の誤差に収束したことを確
認した後、第3演算手段により、上記(3)で生成された全
格子点列における、隣接する2つの格子点間隔の大きい
値を小さい値で割った隣接格子点間隔比Rの内、最大の
隣接格子点間隔比Rmaxを求め、目標とする隣接格子点間
隔比Rtarget以下になるまで、各一次元延伸関数単位の
格子点数を再設定して格子点の逐次計算を繰り返す。
【0017】すなわち、Rmax>Rtarget の場合には、1ヶ
所以上の小区間内で、隣接格子点間隔比がRtargetより
大きいと考えられるので、以下の方法で、Rtarget以上
の隣接格子点間隔比Rを有するEiの格子点数を"1"だけ増
やす。なお、ここでの各比較式は一次元延伸関数単位Ei
について示している。
【0018】i)Xi〜Xi+1間での隣接格子点間隔比RがR
targetより大きいとき(R>Rtarget)は、Eiの格子点数
を"1"だけ増やす。 ii) R=D.left.in/D.left.out>Rtarget:接合部で自小区
間の格子点間隔の方が前小区間のものより粗いので、Ei
の格子点数を"1"だけ増やす。
【0019】iii)R=D.left.out/D.left.in>Rtarget:
接合部で自小区間の格子点間隔の方が前小区間のものよ
り細かいので、Ei-1の格子点数を"1"だけ増やす。 iv)R=D.right.in/D.right.out>Rtarget:接合部で自小
区間の格子点間隔の方が後小区間のものより粗いので、
Eiの格子点数を"1"だけ増やす。
【0020】v)R=D.right.out/D.right.in>Rtarget:
接合部で自小区間の格子点間隔の方が後小区間のものよ
り細かいので、Ei+1の格子点数を"1"だけ増やす。そし
て、最大隣接格子点間隔比Rmaxが目標隣接格子点間隔比
Rtarget以下になるまで、上記のステップを繰り返す。
【0021】なお、上記i)〜v)は重複して適用される
場合があるが、各一次元延伸関数単位の格子点数の1回
の増加は、"1"以下である。図1(2)は、目標隣接格子点
間隔比Rtargetを種々変化させた場合を示しており、目
標隣接格子点間隔比Rtargetが小さくなって行くと、全
領域での整合性がより向上することとなる。
【0022】なお、本発明では、上記のいずれかにおけ
る方法の各ステップをコンピュータに実行させるための
プログラム及びこのプログラムを記録したコンピュータ
読み取り可能な記録媒体が提供される。
【0023】
【発明の実施の形態】図8は、本発明に係る差分格子の
生成方法を実施するための一実施例の構成を示してお
り、ここでは、入出力装置(I/O)1と、演算装置(CP
U)2と、プログラム等を格納したCD-ROM, FD, HD等の外
部記憶装置ROM3と、メモリRAM4とで構成されている。
【0024】図9は、上記のプログラムを示したもので
あり、制御点列X1-XN(=10)の配列を納めたテキストファ
イル及び目標隣接格子点間隔比Rtargetの数値は、入出
力装置(I/O)1を経由してメモリRAM4に記憶される(ス
テップS1,S2)。演算装置2は、RAM4を使用して一次元延
伸関数単位の生成(ステップS3)を行うと共に、その接続
(図3参照)を行う(ステップS4)。
【0025】そして、逐次計算を実行後(ステップS5)、
全格子点列データが収束したか否かを判定し(ステップS
6)、収束していないときには収束するまで繰り返し、収
束した時点で最大隣接格子点間隔Rmaxを求める(ステッ
プS7)とともに、上記の目標格子点間隔比Rtargetと比較
して(ステップS8)、Rmax>Rtargetのときは分割数を再設
定する(ステップS9)。
【0026】Rmax≦Rtargetになったときには、計算結
果を表示し(ステップS10)、全格子点列データをテキス
トファイルとして出力する(ステップS11)。なお、本発
明をサブルーチンとして実行する場合には、引数とし
て、目標隣接格子点間隔比Rtargetと制御点列X1-X
N(=10)を格納した配列を受け取り、計算を開始する。処
理の終了後、得られた格子点の座標を配列に格納し、コ
ールしたルーチンに返すことになる。
【0027】
【発明の効果】以上説明したように、本発明に係る差分
格子の生成方法とそのプログラム及び記録媒体によれ
ば、1〜3次元の解析モデルの特異な部位を任意の座標
軸に投影して得られ制御点列で区切られた各小区間に
対応した一次元延伸関数単位を生成し、各小区間の各端
部に位置する2つの格子点間隔同士を共有させながら数
珠状に連結するとともに、連結した一次元延伸関数単位
群において制御点列の両端に位置する小区間に対応した
一次元延伸関数単位の格子点間隔を確定値とし、共有す
る各端部の格子点間隔を近似値として、各一次元延伸関
数単位の格子点の位置を各一次元延伸関数単位について
逐次計算し、全ての格子点の位置が一定の誤差範囲に収
束するまで繰り返し、さらには、生成された全格子点列
における、隣接する2つの格子点間隔の大きい値を小さ
い値で除した隣接格子点間隔比の内、最大の隣接格子点
間隔比を求め、目標とする隣接格子点間隔比以下になる
まで、各一次元延伸関数単位の格子点数を再設定して格
子点の逐次計算を繰り返すように構成したので、差分方
程式を解く過程で必要とされる全格子点列が滑らかに分
布した、品質のよい差分格子を効率よく生成することが
可能である。
【0028】また、全解析領域で、隣接格子点間隔比を
目標隣接格子点間隔比以下に抑えることができる。さら
には、解析作業が大幅に効率化し、解析格子の品質も向
上するとともに、格子点数も少なく抑えることができ、
計算収束性、計算速度が向上し、メモリーの消費量が節
約できる効果がある。
【図面の簡単な説明】
【図1】本発明により生成された格子点列を制御点列と
の関係で示した図である。
【図2】本発明により生成された格子点列を含む一次元
延伸関数単位の構造(実スケール)を示した図である。
【図3】図2と図10との関係を示したグラフ図であ
る。
【図4】本発明により生成された格子点列を含む一次元
延伸関数単位を数珠状に連結した状態を示す図である。
【図5】本発明による逐次計算の過程を説明するための
図である。
【図6】本発明による逐次計算例を説明した図である。
【図7】本発明による格子点生成の初期段階を説明する
ための図である。
【図8】本発明を実施するための装置構成例を示したブ
ロック図である。
【図9】本発明による差分格子の生成方法及びプログラ
ムの処理過程を示したフローチャート図である。
【図10】従来より知られている一次元延伸関数の構造
を説明するための図である。
【図11】従来より知られている一次元延伸関数を示し
たグラフ図である。
【符号の説明】
1 入出力装置(I/O) 2 演算装置(CPU) 3 ROM 4 RAM

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】入力手段により、1〜3次元の解析モデル
    の特異な部位を任意の座標軸に投影し制御点列をメモ
    リ手段から入力する第1ステップと、第1演算手段により、 該制御点列で区切られた各小区間
    に対応した一次元延伸関数単位を生成し、各小区間の各
    端部に位置する2つの格子点間隔同士を共有させながら
    数珠状に連結する第2ステップと、該第2ステップで連結された一次元延伸単位群におい
    て、第2演算手段により、該 制御点列の両端に位置する
    小区間に対応した一次元延伸関数単位の格子点間隔を確
    定値とし、共有する各端部の格子点間隔を近似値として
    任意の格子点数が与えられた各一次元延伸関数単位の格
    子点の位置を各一次元延伸関数単位について逐次計算
    し、全ての格子点の位置が一定の誤差範囲に収束するま
    で繰り返す第3ステップと、 を備えたことを特徴とする差分格子の生成方法。
  2. 【請求項2】請求項1において、 該第2ステップが、最初は、該制御点列で区切られた各
    小区間自体を共有させながら1つの小区間に対応した一
    次元延伸関数単位を生成するステップを含むことを特徴
    とした方法。
  3. 【請求項3】請求項1又は2において、 該第3ステップが、逆方向から該格子点の逐次計算を繰
    り返すステップを含むことを特徴とする方法。
  4. 【請求項4】請求項1から3のいずれかにおいて、第3演算手段により、 該第3ステップ生成された全格
    子点列における、隣接する2つの格子点間隔の大きい値
    を小さい値で割った隣接格子点間隔比の内、最大の隣接
    格子点間隔比を求め、目標とする隣接格子点間隔比以下
    になるまで、各一次元延伸関数単位の格子点数を再設定
    して格子点の逐次計算を繰り返す第4ステップをさらに
    備えたことを特徴とする方法。
  5. 【請求項5】請求項1から4のいずれかにおいて、 該各一次元延伸関数単位が、長さ1の線分上における両
    端の初期格子点間隔に基づき、M(M≧4)個の格子点
    を、隣接する格子点間隔が連続して滑らかに増減するよ
    うに分布させる一次元延伸関数を実スケール座標に展開
    したものであることを特徴とした方法。
  6. 【請求項6】請求項1から5のいずれかにおける方法の
    各ステップをコンピュータに実行させるためのプログラ
    ム。
  7. 【請求項7】請求項6おけるプログラムを記録したコン
    ピュータ読み取り可能な記録媒体。
JP2001153002A 2001-05-22 2001-05-22 差分格子の生成方法とそのプログラム及び記録媒体 Expired - Fee Related JP3315399B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001153002A JP3315399B1 (ja) 2001-05-22 2001-05-22 差分格子の生成方法とそのプログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001153002A JP3315399B1 (ja) 2001-05-22 2001-05-22 差分格子の生成方法とそのプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP3315399B1 true JP3315399B1 (ja) 2002-08-19
JP2002351930A JP2002351930A (ja) 2002-12-06

Family

ID=18997590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001153002A Expired - Fee Related JP3315399B1 (ja) 2001-05-22 2001-05-22 差分格子の生成方法とそのプログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP3315399B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116228993A (zh) * 2023-05-08 2023-06-06 中国空气动力研究与发展中心计算空气动力研究所 一种网格边构建方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116228993A (zh) * 2023-05-08 2023-06-06 中国空气动力研究与发展中心计算空气动力研究所 一种网格边构建方法
CN116228993B (zh) * 2023-05-08 2023-08-25 中国空气动力研究与发展中心计算空气动力研究所 一种网格边构建方法

Also Published As

Publication number Publication date
JP2002351930A (ja) 2002-12-06

Similar Documents

Publication Publication Date Title
US5892691A (en) Method, apparatus, and software product for generating weighted deformations for geometric models
US20110128285A1 (en) Parallel triangle tessellation
JPH04198812A (ja) スカラ量分布表示方法
CN103325130B (zh) 基于t样条的几何迭代图像拟合方法
CN116310048A (zh) 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法
JP3315399B1 (ja) 差分格子の生成方法とそのプログラム及び記録媒体
CN112053436A (zh) 基于曲面拟合的地形生成方法
JPH05269956A (ja) 任意の線に沿って組版する電子組版装置
JP3463843B2 (ja) 自由曲面生成装置および自由曲面生成方法
JP2938909B2 (ja) 曲面生成方法及びその装置
JP4119817B2 (ja) パラメータ実長展開装置、方法及びそのプログラム
JPH07262386A (ja) 図形描画装置及びその方法
JP2767807B2 (ja) 物体の表面形状データ作成方法
JP2004272782A (ja) 形状データ作成方法および形状データ作成システム
CN112149244B (zh) 一种增减材制造中等值线加工轨迹的规划方法
JPH0927048A (ja) メッシュ生成方法および装置
JP2767806B2 (ja) 物体の表面形状データ作成方法
JPH0567071B2 (ja)
JPH11272888A (ja) Cad/cae装置
JPS62263564A (ja) 座標格子作成支援方法及びその装置
JP3334989B2 (ja) 図形作成装置及び方法
JPH1126456A (ja) 不純物補間方法
JP2767801B2 (ja) 物体の表面形状データ作成方法
JPH1011612A (ja) ズーミング解析装置
JPS6297070A (ja) 有限要素処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020521

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080607

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090607

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100607

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100607

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110607

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110607

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120607

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130607

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees