説明

並列有限要素計算システム

【課題】CGCG法を発展させることで,より短時間で解が求まる並列有限要素計算システムを提供する。
【解決手段】解析対象領域Ωと,そのメッシュ分割を与える。並列プロセス数m0,階層数νおよび各階層の領域数νを入力する。並列プロセスにわたる第0階層領域分割を生成する。ν個の階層の領域分割を生成する。全ν階層の領域分割をもとに第1,…,ν世代コース空間W(1),…,W(ν)と,W(ν)の共役空間V(ν)を作る。全世代の2組の剛性行列と2組の外力ベクトルを作る。ν個のコース空間の方程式を直接法で解く。第ν世代の共役空間の方程式を反復法(前処理付きCG法)で解く。u=u(0)=w(1)+…+w(ν)+u(ν)によって解を与える。この方法は,最初に「領域分割」を全部与えておき直列に計算する方法である。領域分割を「共役空間」における反復法の収束の様子を見たうえで順次与え,つぎつぎと計算していく方法も本発明に含まれる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,自由度100万以上の大規模構造問題を効果的に解く,大規模並列有限要素法ソルバアルゴリズムに関するもので,特に,並列CGアルゴリズムを基盤とし,領域分割(Domain Decomposition)に基づくアルゴリズムである。
【0002】
本明細書において,該アルゴリズムを「CGCG法」(Coarse Grid CG method,CGCG method)と称する。Kを当該構造問題の剛性行列とし,領域分割による部分領域単位の自由度の空間をコース(coarse)空間,それに共役直交な空間をファイン空間と称する。CGCG法は,コース空間とファイン空間を分離し,それぞれの解を重ね合わせるものである。この際,領域分割は,コース空間の生成及びファイン空間上のCG法の並列化に用いられる。
【背景技術】
【0003】
このようなCGCG法を利用した並列有限要素計算システムとして,特許文献1に記載のものが知られている。この発明は,本出願人が提案したものである。この先行発明は,CGCG法を使用することで,自由度が100万以上の大規模構造問題を解く際,解が発散することなく求まり,反復計算の回数が少なく,短時間の計算時間で解が求まる,大規模構造問題を解くシステムを提供するものである。
【0004】
このCGCG法では,解析対象の領域分割を行ない,それに基づいて部分領域の内部と境界の区別をすることなしにコース空間を設定し,前処理として簡便な対角スケーリングを採用した前処理つき射影CG法を用いる。すなわち,並列処理用に分割された領域にわたる“コース運動”を考え,解空間をコース空間とその共役直交空間に分解する。コース空間は直接法で解き,共役直交空間には反復法(共役射影並列CG法)を用いる。コース運動として剛体運動をとることで,従来の解法に比較して高速に解を得ることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3824582号公報
【0006】
【非特許文献1】J. Mandel, "Balancing Domain Decomposition". Communications on Numerical Methods in Engineering, 1993, 9, pp.233-241
【発明の概要】
【発明が解決しようとする課題】
【0007】
CGCG法は大規模な有限要素法問題を解くための非常に高速なアルゴリズムであるが,薄板構造への適用性に困難があり,また,よりローカルな問題が全体の収束性に与える場合など,問題依存による収束性の向上の必要がある場合がある。本発明アルゴリズムは,直接法を適用する小さなコース空間と反復法を適用する大きなファイン空間を階層的に多段に取っていくものであるが,コース空間を多段にすることによって,直接法の負荷が大きくなり,薄板構造がより解きやすい方向に改善される。また,構造のよりローカルな運動が表現可能になり,構造依存による収束性の向上がはかれる。
【0008】
また,CGCG法は,反復法を基本にするため,固有値問題,複数荷重問題など,剛性行列は同一で,荷重条件など,右辺のみが異なる問題などが不得意であるが,直接法の負荷を大きくすることによってこれらがより解きやすい方向に改善される。
【0009】
本発明は前記のような要望に基づいて提案されたものであって,その目的は,CGCG法を発展させることで,より短時間で解が求まる並列有限要素計算システムを提供することにある。
【課題を解決するための手段】
【0010】
前記の目的を達成するために,本発明の並列有限要素計算システムは,次の構成を有することを特徴とする。
(1) 解析対象領域Ωと,そのメッシュ分割を与える。
(2) 並列プロセス数m0,階層数νおよび各階層の領域数νを入力する。
(3) 並列プロセスにわたる第0階層領域分割を生成する。
(4) ν個の階層の領域分割を生成する。
【0011】
(5) 全ν階層の領域分割をもとに第1,…,ν世代コース空間W(1),…,W(ν)と,W(ν)の共役空間V(ν)を作る。
(6) 全世代の2組の剛性行列と2組の外力ベクトルを作る。
(7) ν個のコース空間の方程式を直接法で解く。
(8) 第ν世代の共役空間の方程式を反復法(前処理付きCG法)で解く。
(9) u=u(0)=w(1)+…+w(ν)+u(ν)によって解を与える。
【0012】
また,次の構成も,本発明の一態様である。
(1) 解析対象領域Ωと,そのメッシュ分割を与える。
(2) 並列プロセス数m0,階層数νおよび各階層の領域数νを入力する。
(3) 並列プロセスにわたる第0階層領域分割を生成する。
(4) 第k階層領域分割をもとに第k世代コース空間W(k)を作る。
【0013】
(5) 直前世代の共役空間V(k-1)をコース空間とそのK(k-1)共役直交空間に分割する。
(6) 第k世代の2つの剛性行列と外力ベクトルを作る。
(7) 第k世代コース空間の方程式を直接法で解く。
(8) 第k世代の共役空間の方程式について,反復法の収束性をチェックする。
(9) 十分な収束性のチェックを行う。収束性が得られなければ,kをk+1として(5)に戻る。
(10) 十分な収束性が得られた場合には,u=u(0)=w(1)+…+w(k)+u(k)によって解を与える。
【発明の効果】
【0014】
本発明によれば,直接法を適用する小さなコース空間と反復法を適用する大きなファイン空間を階層的に多段に取っていくものであるが,コース空間を多段に取ることによって,直接法の負荷が大きくなり,薄板構造がより解きやすい方向に改善される。また,構造のよりローカルな運動が表現可能になり,構造依存による収束性の向上がはかれる。また,固有値問題,複数荷重問題など剛性行列は同一で,荷重条件など,右辺のみが異なる問題が,直接法の負荷を大きくすることによってこれらがより解きやすい方向に改善される。
【図面の簡単な説明】
【0015】
【図1】本発明の領域分割のイメージを示す模式図。
【図2】本発明の実施例1の処理を示すフローチャート。
【図3】本発明の実施例2の処理を示すフローチャート。
【図4】本発明のシステムを実現するコンピュータのハードウェアを示すブロック図。
【図5】本発明の実施例1の各手段を示すブロック図。
【図6】本発明の実施例2のの各手段を示すブロック図。
【発明を実施するための形態】
【0016】
本発明の前提となる事項について,説明する。
(1)概要
本発明において,Ωを解析対象領域とする。この上の構造問題を有限要素法にしたがって離散化する。目標はここから帰着される線形方程式
Ku=f……(1.1)
を解くことである。
【0017】
(共役直交射影子)
ベクトル空間V上の正定値対称変換AとV上の射影Pが与えられたとき,Vの部分空間PVと(1−P)Vに直和分解され,つぎの2式がなりたつ。
2=P……(5.4)
AP=PTA……(5.5)
あるいはつぎのようにもいえる。ベクトル空間V上の正定値対称変換AとVの部分空間Wが与えられたとき,VからWへの射影Pは(5.4)式をみたし,AとPの間には関係(5.5)がなりたつ。
逆に,(5.4)式と(5.5)式をみたすV上の線形変換Pと,正定値対称変換Aが与えられたとき,Vは部分空間PVと(1−P)Vに直和分解され,これら2つの部分空間はAに関して共役直交である。
【0018】
(部分空間の共役直交基底)
WをVのr次元部分空間とするとき,Wの基底f1,…,frを互いにA共役直交であるようにえらべる。すなわち,Wの基底f1,…,frを適当にとることにより,つぎの関係がなりたつようにできる。
(fj,Afi)=0 (i≠j)……(5.6)
【0019】
(ベクトル空間の共役直交直和分解)
WをVの,Vに一致しない部分空間とするとき,Vは,WとAに関して共役直交な部分空間Vに直和分解できる。
【数1】

【0020】
(共役直交射影の表現)
Vをベクトル空間,Wをr次元部分空間,f1,…,frをWの共役直交基底,AをV上の正定値対称変換,Pを共役直交射影子とするとき,Pは
【数2】

で与えられる。
【0021】
(2)CGCG法
(領域分割)
Ωは有限要素分割されている。その分割に基づいてΩを,オーバラップしないが全部の和集合はΩに一致するような部分領域に分ける。その第1の分割は並列プロセスにわたる分割である。これをさらに分割して,ΩI,I=1,…,mとする。ΩIのある面または稜線は別の部分領域と接していて,これらの面または稜線は複数の部分領域に共有される。Ω内部での部分領域どうしの境界面を内部境界と呼ぶ。この面はあるΩIのある面のグループは外部境界面(Ωの境界面)の一部であることもある。
【0022】
以下では2つの空間VIおよび~VIを定義するが,これは,以下で述べる部分空間から全空間Vへの延長とその逆の制限を定義し,これをもとにコースグリッドの項で述べた方法でコース空間を定義するのに用いるためである。
【0023】
Ω上で定義された有限要素基底関数を{ψj}とする。ψjをΩIに制限した関数のうち,恒等的にゼロでないものを~ψIjと書く。これらの{~ψIj}はΩIの有限要素基底関数をなす。{~ψIj}で離散化されたΩI上の変位場の空間を~VIと書き,切断された局所空間空間と呼ぶ。
【0024】
一方,ΩI(およびその境界)に含まれる節点上に定義される許容変位場がなすベクトル空間をVIと書く。ΩIの基底関数~ψjはもとの基底関数ψjの外側を切り取った(ただし~ψjの定義域には境界面も含む)ものなので,~VIはVIとは異なる。VIはVの部分空間だが,~VIは部分空間ではないことに注意せよ。ΩIはオーバラップしないが,VIは内部境界のまわりでオーバラップする。
【0025】
~VIの各節点における基底関数に,その節点に対応するVIの(実はVの)基底関数の対応させる写像は1対1である。VIはVの部分空間なので,この写像
【数3】

を~VIからVへの,あるいは~VIからVIへの延長(または延長写像)(prolongation)と呼ぶ。~VIはVの部分空間ではないが,NIによって部分空間に埋め込まれる。つまり,NI~VIは部分空間である。一方,NIの転置
【数4】

をVから~VIへの制限(または制限写像)(restriction)と呼ぶ。
【0026】
グローバルな節点を任意にとる。その節点は,あるIに対する部分領域ΩI上にあるとする。対応する自由度を制限(NI)Tによってローカルな自由度に写し,その後,延長NIによってグローバルな自由度に写す。内部境界上の節点の自由度は,(NI)Tによって~VIを含むいくつかの切断された局所空間のローカルな自由度に写され,延長によって元の節点を共有する複数の部分領域に対応する自由度にもどる。この重複を解消するため,つぎのような対角行列DIを定義する。領域分割の際,内部境界上の重複する節点の数を求めておき,その自由度に対応する成分を(1/重複節点数),重複のない成分を1とする。この作用は
【数5】

と表わせる。
【0027】
Vは部分空間VI全部の和からなり,VIはNIによる~VIの延長で得られるが,重複を考慮すると,これらの関係は
【数6】

と表わせる。
【0028】
(コースグリッド)
部分領域ΩI,I=1,…,mの剛体運動を考える。要素分割したΩの全節点数をnとし,グローバルな節点番号をi(i=1,…,n)で表わす。初期の節点座標を
【数7】

とする。肩に付けた添え字Iは,任意の節点はいずれかの部分領域ΩIにあるので,これを明示するために付けたものである。
【0029】
剛体変位後の座標を
【数8】

とする。
【0030】
剛体変位は平行移動3自由度,回転3自由度をもち,
【数9】

と表わせる。
【0031】
ただし
【数10】

であり,U1,U2,U3は各軸に沿った平行移動,
【数11】

は各軸の周りの,ベクトル
【数12】

の右ねじ方向の周りの,大きさ|θ|の回転を表わす。
【0032】
回転は微小とすると,(6.3)は
【数13】

と書ける。したがって,対応する節点変位をuIiとすると
【数14】

となる。
【0033】
以上をもとに,部分領域ΩIの剛体変位場(節点座標を変数にとり,剛体変位を与える~VIのベクトル)の基底をつぎのように定義する。ただし,ΩIの一部が全体領域の外表面に接しており,この部分に変位拘束が課されている場合を除く。
【数15】

【0034】
このように,剛体変位場ベクトルの自由度は1節点あたり6,つまり,部分領域ΩIの剛体変位を与える空間の基底(6.4)の次元は6である。上で除外した,ΩIの表面が全体空間の外表面に一部をなし,ここに変位拘束が課されている場合には,その次元が5以下になることもありうるが,独立な基底をもとにこれを拡大して6にそろえる。
【0035】
このようにして得られた空間を~WIと書くことにする。ΩIの剛体変位はもとよりΩIの許容変位場なので,ベクトル(6.4)はΩIの有限要素基底関数{~ψIj}で表現できる。すなわち,~WIは~VIの部分空間である。NIによって~VIがVIに延長されたように,~WIもNIによってVIに延長される。
【0036】
ただし,自由度の重複の解消は行わなければならない。(6.2)と同じように,内部境界自由度の重複を,1の分割DIを用いて解消し,
【数16】

とおく。これを剛体運動によるVのコース空間と呼ぶ。コース空間WはVの部分空間である。
【0037】
(グローバル空間の共役直交分解)
解析対象モデルΩはメッシュ分割によりn個の節点をもち,したがって自由度は3nである。グローバルな解空間Vの次元および(1.1)の左辺のグローバルな剛性行列Kの次元も3nである。
【0038】
コースグリッドの項で説明した通り,コース空間Wとその共役空間Vに分解する。これは(5.7)式に対応する。Wの基底は(6.4)式を部分領域の数m個分を並べたものであり,したがってWの次元は6mである。Vは,(5.7)式のように作られ,WとVはKに関して共役直交である。Vの次元は3n−6mであり,これをあらためて(f1,…,f6m)とする。6mは3nに比べて,直接法が適用できるほど十分小さいものとする。Vの基底は,Wの基底に,これと共役直交なVの基底を並べて作られる。
【0039】
の基底を(g6m+1,…,g3n)とする。Kの表現はこの基底の並び方に合わせ,(4.1)のように作られているものとする。つまり,基底の並べ替えに応じてKはつぎのような表現をもつ。
【数17】

【0040】
射影Pの表現は,(5.8)式により6m次元単位行列である。より正確には,Pは,次元を合わせて
【数18】

で定義される。
【0041】
Pは6m×3nの横長の行列であり,3n次元の解空間Vを6m次元のコース空間Wに射影する。
W=PV
【0042】
ここで,Pはべき等行列である。
Pの転置行列
【数19】

は,WをVの中のWと同型な部分空間に射影する3n×6mの縦長の行列である。
【数20】

【0043】
コース空間W上のKの作用は,(4.15)と同じように
~K=PKPT
と書ける。
【0044】
共役空間Vへの射影は1−Pだが,(6.7)と同様,次元を合わせて書くと,
【数21】

となる。
【0045】
このように,1−Pは(3n−6m)×3nの横長の行列であり,3n次元の解空間Vを3n−6m次元の共役空間Vに射影する。1−Pの転置行列
【数22】

は,VをVの中のVと同型な部分空間に射影する3n×(3n−6m)の縦長の行列である。すなわち,
【数23】

【0046】
共役空間V上のKの作用は
=(1−P)K(1−PT)
と書け,これは3n−6m次元の正定値対称行列である。
【0047】
(5.6)式により,Kは~KとKにより,
【数24】

と書ける。
【0048】
(CGCG法)
前記の通り,解空間Vをコース空間Wとその共役空間とに直和分解する。
【数25】

【0049】
この上でグローバルな線形方程式,すなわち
Kv=f……(6.13)
を解く。
【0050】
まず,(6.13)をWおよびVにそれぞれPおよび1−Pによって部分空間に写す。
【数26】

【0051】
この上で,v∈VをPTおよび1−PTによってそれぞれWおよびVの元に限定すると,
【数27】

が得られる。
【0052】
これを(6.14)に入れると
【数28】

が得られる。ここで
【数29】

とおく。
【0053】
一方,PV=Wの双対空間W*はWと同一視される。fはKの像空間KVに含まれるので,PfはPKPTによるWの像空間(PKPT)Wに含まれる。同様に,(1−P)V=Vの双対空間V′*はVと同一視され,(1−P)fは((1−P)K(1−PT))V=Vに含まれる。そこで,
【数30】

とおくと,(6.14)は
【数31】

に帰着する。
【0054】
すでに述べたとおり,(6.19)は直接法で解く。(6.20)は,これと同等な方程式
GKu=Gf……(6.21)
について,つぎの前処理付きCG法で解く。ここで,GはV上の適当な正定値対称行列である。
【数32】

【0055】
WとVの共役直交性により,数値誤差を考えなければ,残差rkは反復過程でつねにV(正確にいえばVの双対空間)にとどまり,その結果,勾配ベクトルpk,解の近似ベクトルukもV(こちらは双対空間ではない)にとどまる。収束解は剛体運動と重ねあわされ,幅広い運動スペクトルを表現するものと期待できる。
【0056】
(3)本発明のアルゴリズム
本発明においては,以上述べたCGCG法のアルゴリズムを拡張する。これをここでは,本発明のアルゴリズムを,仮に,強化版CGCG法(enhanced CGCG method)と呼んでおく。領域分割はν(ν≧1)階層に分割される。ν=1の場合が,前節までに述べた通常のCGCG法であり,部分領域の数はmである。
【0057】
(0) 解析対象領域Ωの並列プロセスにわたるm0個の部分領域Ω(0,1),…,Ω(0,m0)。この分割を親領域分割(parent domain decomposition)と呼ぶ。
【0058】
(1) 部分領域Ω(0,1),…,Ω(0,m0)を含む,より細かい領域分割Ω(1,1),…,Ω(1,m1)。これを第1世代領域分割(first generation domain decomposition)と呼ぶ。これがCGCG法の説明に用いた部分領域Ω1,…,Ωmにあたり,第1世代部分領域の数はm1=mである。分割Ω(1,1),…,Ω(1,m1)は分割Ω(0,1),…,Ω(0,m0)を含み,Ω(1,1),…,Ω(1,m1)の全体が全領域Ωに一致する。したがってm1≧m0である。m1=m0の場合はCGCG法に一致しするので,強化版では意味ある分割,すなわちm1>m0とする必要がある。
【0059】
(2) 部分領域Ω(1,1),…,Ω(1,m1)を含む,より細かい領域分割Ω(2,1),…,Ω(2,m2)。ただし,Ω(2,1),…,Ω(2,m2)のうちの最初のある領域のグループはΩ(1,1)に含まれ,つぎのグループはΩ(1,2)に含まれ,最後のグループはΩ(1,m1)に含まれる。これを第2世代領域分割(second generation domain decomposition)と呼ぶ。
【0060】
(ν) 部分領域Ω(ν-1,1),…,Ω(ν-1,mν-1)を含む,より細かい領域分割Ω(ν,1),…,Ω(ν,mν)
ただし,Ω(ν,1),…,Ω(ν,mν)のうちの最初のある領域のグループはΩ(ν-1,1)に含まれ,つぎのグループはΩ(ν-1,2)に含まれ,最後のグループはΩ(ν-1,mν-1)に含まれる。これを第ν世代領域分割(ν-th generation domain decomposition) と呼ぶ。
【0061】
なお、前記(ν)のΩ(ν-1,mν-1)及びΩ(ν,mν)の標記中、上付き文字のmν-1及びmνは、正確には、mν-1及びmνである。同様に前記(0)から(2)や本文以降等の他の式においても、上付き文字中の下付き文字については、便宜的に下付き文字表示を省略している。
【0062】
上の階層的領域分割に従って,コース空間をつぎのように階層的に作る。
【0063】
(1) 第0世代を含む第1世代のコース空間を,コースグリッドの項で述べた方法で構成する。これをW(1)とする。
【0064】
(2) Ω(1,1),…, Ω(1,m1)に対応するそれぞれのコース空間を,コースグリッドの項で述べた方法で各グループ単位の領域分割でコース空間を作る。ただし,各第2世代部分領域は第1世代部分領域の内部境界上の節点は含まず,内部境界面で囲まれている節点のみを用る。
これを第2世代のコース空間と呼び,W(2)と書く。W(2)はm1個のコース空間からなる,互いに他から切り離されたローカルな空間である。m1個の各コース空間は,そこにグループ化されただけの数の第2世代部分領域を持ち,第2世代部分領域数は全体でm2なので,W(2)の次元は6m2である。第1世代のコース運動の中には,W(2)上のコース運動では表現できないものがある。
【0065】
(ν) Ω(ν-1,1),…,Ω(ν-1,mν-1)に対応するそれぞれのコース空間を,コースグリッドの項で述べた方法で各グループ単位の領域分割でコース空間を作る。ただし,各第ν世代部分領域は第ν−1世代部分領域の内部境界上の節点は含まず,内部境界面で囲まれている節点のみを用る。これを第ν世代のコース空間と呼び,W(ν)と書く。W(ν)はmν-1個のコース空間からなる,互いに他から切り離されたローカルな空間である。mν-1個の各コース空間は,そこにグループ化されただけ数の第ν世代部分領域を持ち,27第ν世代部分領域数は全体でmνなので,W(ν)の次元は6mνである。第ν−1世代のコース運動の中には,W(ν)上のコース運動では表現できないものがある。
【0066】
本発明の強化版CGCG法がマルチグリッド法と異なる点は,マルチグリッド法が,細かいメッシュ分割をもとに,より粗い分割を作っていくのに対して,強化版CGCG法では,コースグリッドをより細かく作っていくことにある。すなわち,剛性方程式(6.13)を解く際には,前処理行列Gとしては負荷の軽い対角スケーリングなどを使うのが効率的である。そのため,コース運動を解く際に,それが粗すぎると,十分な精度が得られないことが経験上わかっている。一方,非特許文献1に記載のBDD法では,分割領域Ωの境界面のみに剛体運動を与え,Ω内部は,剛体運動で決まった境界面の変位拘束条件をもとに,部分構造としての剛性方程式を解いているため,BDD法のコースグリッドにはCGCG法のそれよりもより詳細な表現が与えられている。この意味で,CGCG法のコース運動はBDD法と比べ粗い。コースグリッドを細かく取っていくというアイデアは,この粗さを補完することに対応している。
【0067】
Vは第1世代子分割に基づいて,共役直交分解される。これは前節のCGCG法の手順と同じものである。以下で記号を改める。前節を参照して,
【数33】

とおく。
【0068】
第1世代子アルゴリズム(通常のCGCG法アルゴリズム)はつぎのように書ける。
【数34】

【0069】
前記(6.22)式における下から3行目のw(1)に関する方程式は直接法で解く。また,V(1)上の剛性方程式は第2世代分割に基づいてコース空間W(2)とそのK(1)共役直交空間に分解され,この上にCGCG法が適用できる。
【数35】

【0070】
(1)はW(1)と共役直交なので,もとの空間V=V(0)は,
【数36】

と書ける。
【0071】
第2世代アルゴリズムはつぎのようになる。
【数37】

【0072】
前記(6.24)式における下から4行目のw(2)に関する方程式は直接法で解く。
【0073】
以下同様にして,第ν−1世代アルゴリズムが与えられたとして,第ν世代アルゴリズムはつぎのようになる。
【数38】

【0074】
前記(6.25)式の下から4行目のw(ν)に関する方程式は直接法で解く。
【0075】
第1世代アルゴリズム(6.22),第2世代アルゴリズム(6.24)から第ν−1世代アルゴリズムに現れるu(1),u(2),…,u(ν-1)についての方程式は実際には解く必要はなく,それぞれ,つぎの世代のアルゴリズムに吸収される。結局,強化版CGCG法アルゴリズムはつぎのようにまとめられる。ν個のコース問題
【数39】

をそれぞれ直接法で解き,最後の第ν世代アルゴリズムにおける3次元の方程式
νν=fν, uν∈Vν……(6.27)
に前処理付きCG法を適用して,これらで得られた解をすべて足しあわせてグローバルな解を
u=u(0)=w(1)+w(2)+…+w(ν)+u(ν)……(6.28)
で得る。
【0076】
(ν)の次元3はつぎで与えられる。
=3n0−6m1−6m2−…−6……(6.29)
【0077】
また,解空間の共役直交分解による階層的な関係はつぎのように書ける。
【数40】

【0078】
本発明の強化版CGCG法においては,コース空間を多段にとることで,より細かいローカルな運動の表現が可能になって,CGCG法に比べて収束性が向上することが期待できる。また,階層を深くとれば直接法の負荷が大きくなるため,反復法では解きにくい問題も,より解きやすい方向に改善されるものと期待される。
【実施例1】
【0079】
以下,本発明の実施例1を図面に従って説明する。
まず,図4を参照して,実施例1の並列有限要素計算システムを構成するコンピュータのハードウェアを説明する。このハードウェアは,バス30を介して相互に接続されるCPU31と,RAM32と,記憶装置33と,入力装置34と,出力装置35とを具備する。記憶装置33はハードディスクやメモリ等の外部記憶装置である。入力装置34は,キーボードやマウス等のユーザによって操作されることで,各種データをCPU31や記憶装置33に出力する。出力装置35は,モニタやプリンタに例示され,CPU31から出力される求解の結果をユーザに対し視認可能に出力する。
【0080】
CPU31は,入力装置34からの入力に応答して,記憶装置33内の強化版CGCG法のアルゴリズムを利用した求解プログラムを実行する。この際,記憶装置33からの各種データやプログラムはRAM32に一時格納され,CPU31はRAM32内のデータを用いて各種処理を実行する。
【0081】
前記強化版CGCG法を実現するために,実施例1の並列有限要素計算システムにおいては,前記のようなハードウェアを有するコンピュータを,問題入力手段1,条件設定手段2,第0階層領域分割手段3,各階層領域分割手段4,共役空間生成手段5,全世代剛性行列・外力ベクトル作成手段6,直接法計算手段7,反復法計算手段8及び解出力手段9として,機能させる。
【0082】
すなわち,コンピュータの有するキーボード,マウス,ネットワーク,記憶媒体などの入力装置34から入力される問題を受け付ける問題入力手段1,同じく設定すべき条件を受け付ける条件設定手段2を備える。
【0083】
前記第0階層領域分割手段3,各階層領域分割手段4,共役空間生成手段5,全世代剛性行列・外力ベクトル作成手段6,直接法計算手段7,反復法計算手段8及び解出力手段9は,コンピュータのメモリ(RAM32)やCPU31上に展開されるプログラムによって,コンピュータ上に構築される手段で,これら各手段が前記強化版CGCG法のアルゴリズムに従って,与えられた問題に対する解を求める。
【0084】
解出力手段9は,コンピュータに設けられたディスプレイ,プリンタ,記憶媒体,或いはネットワークを通じて接続された他のコンピュータなどの出力装置35に接続され,これらのハードウェア上に求められた解を出力する。
【0085】
次に,各手段が実行する処理を図2のフローチャートに従って説明する。
問題入力手段1は,ユーザからの問題として,解析対象領域Ωと,そのメッシュ分割を受け付ける(ステップ1)。条件設定手段2は,問題を解決する場合に要求される並列プロセス数m0,階層数νおよび各階層の領域数νを含む設定条件を,ユーザから受け付ける(ステップ2)。この処理は,前記アルゴリズムの階層構造の深さを決めることに相当する。
【0086】
前記第0階層領域分割手段3は,前記のようにして受け付けた解析対象領域Ωに対して,V(0)=V,K(0)=K,f(0)=f,P(0)=P,W(1)=W,V(1)=Vとおき,これに基づいて,並列プロセスにわたる第0階層領域分割を生成する(ステップ3)。
【0087】
各階層領域分割手段4は,設定条件として受け付けた階層数νに基づいてν個の階層の領域分割を生成する(ステップ4)。この処理は,前記アルゴリズムの(6.25)式のW(1),…,W(ν)を決めることに相当する。
【0088】
共役空間生成手段5は,前記各階層領域分割手段4によって生成された全ν階層の領域分割をもとに,第1,…,ν世代コース空間W(1),…,W(ν)と,W(ν)の共役空間V(ν)を作成する(ステップ5)。この処理は,前記アルゴリズムの(6.25)式の第2式を作成することに相当する。
【0089】
全世代剛性行列・外力ベクトル作成手段6は,全世代の2組の剛性行列と2組の外力ベクトルを作成する(ステップ6)。この処理は,前記アルゴリズムの(6.26)式を作成することに相当する。
【0090】
直接法計算手段7は,前記のようにして作成された剛性行列と外力ベクトルに基づき,ν個のコース空間の方程式を直接法で解く(ステップ7)。この処理は,前記アルゴリズムの(6.26)式を解くことに相当する。同様に,反復法計算手段8は,第ν世代の共役空間の方程式を反復法で解く(ステップ8)。この処理は,前記アルゴリズムの(6.27)式を解くことに相当する。
【0091】
解出力手段9は,直接法計算手段7によって得られた解と,反復法計算手段8によって得られた解を加算し,u=u(0)=w(1)+…+w(ν)+u(ν)によって解を求め,これをコンピュータの出力装置に出力する(ステップ9)。この処理は,前記アルゴリズムの(6.28)式を実行することに相当する。
【0092】
以上の通り,実施例1によれば,コース空間Wに対しては直接法を適用し,共役空間Vには反復法を適用して,両者の解を足すことで解を求めることができる。その場合に,予め条件設定手段2で受け付けた階層数νによって解析対象領域Ωを階層的に分割することにより,階層数νに応じた数のコース空間を解空間Vから分離することができ,その分,直接法により求解する領域が増大し,反復法により求解する領域が少なくなり,求解の速度が向上する。また,予め階層数νを設定しておくため,求解の途中で反復法における収束性のチェックが不要であり,その点からも計算速度の向上が見込まれる。
【実施例2】
【0093】
本発明の実施例2を図3のフローチャート及び図6のブロック図によって説明する。なお,実施例1と同様な構成並びに作用については,説明を省略する。
【0094】
実施例2においても,前記実施例1と同様に,図4のブロック図に示したコンピュータのハードウェアを使用し,コンピュータを,問題入力手段11,条件設定手段12,第0階層その領域分割手段13,第k階層領域分割手段14,共役空間生成手段15,第k世代剛性行列・外力ベクトル作成手段16,直接法計算手段17,反復法計算手段18及び解出力手段19として,機能させる。
【0095】
このような構成を有する実施例2の作用は,図3のフローチャートに示すとおりである。すなわち,問題入力手段1は,ユーザからの問題として,解析対象領域Ωと,そのメッシュ分割を受け付ける(ステップ11)。条件設定手段2は,問題を解決する場合に要求される並列プロセス数m0,最大階層数νおよび各階層の領域数νを含む設定条件を,ユーザから受け付ける(ステップ12)。
【0096】
前記第0階層領域分割手段3は,前記のようにして受け付けた解析対象領域Ωに対して,V(0)=V,K(0)=K,f(0)=f,P(0)=P,W(1)=W,V(1)=Vとおき,これに基づいて,並列プロセスにわたる第0階層領域分割を生成する(ステップ13)。以上のステップ11から13は,実施例1のステップ1から3と同じ処理である。
【0097】
第k階層領域分割手段14は,第k階層の領域分割を生成する。この場合,第1階層は第0階層の領域のすべてを含み,各階層は直前の階層の領域をすべて含む。(ステップ14)。共役空間生成手段15は,前記第k階階層領域分割手段14によって生成された領域分割をもとに,第k世代コース空間W(k)を作る。この場合,直前世代の共役空間はV(k-1)である。V(k-1)をコース空間とそのk(k-1)共役直交空間に分割する(ステップ15)。
【0098】
全世代剛性行列・外力ベクトル作成手段16は,第k世代の2つの剛性行列と外力ベクトルを作成する(ステップ16)。直接法計算手段17は,前記のようにして作成された剛性行列と外力ベクトルに基づき,第k世代コース空間の方程式を直接法で解く(ステップ17)。同様に,反復法計算手段18は,第k世代の共役空間の方程式を反復法(前処理付きCG法)で解き,その収束性をチェックする(ステップ18)。反復法計算手段18による収束性のチェックの結果,十分な収束性が得られていれば,次の解出力ステップ20に進み,収束性が得られなければkをk+1として前記ステップ14に戻る。また,k=νの場合(予め設定した階層数νに分割数が達した場合)は反復を完結させた上で,ステップ20へ進む(ステップ19)。
【0099】
解出力手段19は,直接法計算手段17によって得られた解と,反復法計算手段18によって得られた解を加算し,u=u(0)=w(1)+…+w(k)+u(k)によって解を求め,これをコンピュータの出力装置に出力する(ステップ20)。
【0100】
この実施例2においては,階層的に領域分割を行う都度,共役空間に対して反復法による求解を行い,その収束性をチェックするので,比較的早めの段階で共役空間について解が求まる場合にはそれ以上の分割処理が不要となり,計算速度の向上が可能となる。また,問題の規模によっては,予め適切な階層数νを決定(予想)できない場合があるが,実施例2では適切な階層数が収束性のチェックによって定まるので,不要な階層的分割を行うこともない。
【産業上の利用可能性】
【0101】
本発明は,大規模な問題を有効に解く有限要素法ソルバアルゴリズムであり,有限要素法に基づく解析一般に適用可能である。たとえば,有限要素法によって定式化される連続体力学全般,固体力学,構造力学,流体力学,熱伝導問題,電磁場問題に利用できる。また,有限要素法は偏微分方程式を支配方程式とする境界値問題の一般的解法とみなされるので,その意味で,CGCG法は,偏微分方程式を支配方程式とする境界値問題全般の解法として適用可能である。
【符号の説明】
【0102】
1…問題入力手段
2…条件設定手段
3…前記第0階層領域分割手段
4…各階層領域分割手段
5…共役空間生成手段
6…全世代剛性行列・外力ベクトル作成手段
7…直接法計算手段
8…反復法計算手段
9…解出力手段
11…問題入力手段
12…条件設定手段
13…第0階層その領域分割手段
14…第k階層領域分割手段
15…共役空間生成手段
16…第k世代剛性行列・外力ベクトル作成手段
17…直接法計算手段
18…反復法計算手段
19…解出力手段

【特許請求の範囲】
【請求項1】
(1) 解析対象領域Ωと,そのメッシュ分割を与える問題入力手段と,
(2) 並列プロセス数m0,階層数νおよび各階層の領域数νを入力する条件設定手段と,
(3) 並列プロセスにわたる第0階層領域分割を生成する第0階層領域分割手段と,
(4) ν個の階層の領域分割を生成する各階層領域分割手段と,
(5) 全ν階層の領域分割をもとに第1,…,ν世代コース空間W(1),…,W(ν)と,W(ν)の共役空間V(ν)を作る共役空間生成手段と,
(6) 全世代の2組の剛性行列と2組の外力ベクトルを作る全世代剛性行列・外力ベクトル作成手段と,
(7) ν個のコース空間の方程式を直接法で解く直接法計算手段と,
(8) 第ν世代の共役空間の方程式を反復法で解く反復法計算手段と,
(9) u=u(0)=w(1)+…+w(ν)+u(ν)によって解を与える解出力手段と,
を有することを特徴とする並列有限要素計算システム。
【請求項2】
(1) 解析対象領域Ωと,そのメッシュ分割を与える問題入力手段と,
(2) 並列プロセス数m0,階層数νおよび各階層の領域数νを入力する条件設定手段と,
(3) 並列プロセスにわたる第0階層領域分割を生成する第0層領域分割手段と,
(4) 第k階層領域分割をもとに第k世代コース空間W(k)を作る第k世代コース空間生成手段と,
(5) 直前世代の共役空間V(k-1)をコース空間とそのK(k-1)共役直交空間に分割する共役空間分割手段と,
(6) 第k世代の2つの剛性行列と外力ベクトルを作る全世代剛性行列・外力ベクトル作成手段と,
(7) 第k世代コース空間の方程式を直接法で解く直接法計算手段と,
(8) 第k世代の共役空間の方程式について,反復法の収束性をチェックし,十分な収束性収束性が得られなければ,kをk+1として,前記共役空間分割手段による処理を再度行わせる収束性判定手段と,
(9) 前記収束性判定手段において十分な収束性が得られた場合には,u=u(0)=w(1)+…+w(k)+u(k)によって解を与える解出力手段と,
を有することを特徴とする並列有限要素計算システム。
【請求項3】
コンピュータを,
(1) 解析対象領域Ωと,そのメッシュ分割を与える問題入力手段と,
(2) 並列プロセス数m0,階層数νおよび各階層の領域数νを入力する条件設定手段と,
(3) 並列プロセスにわたる第0階層領域分割を生成する第0階層領域分割手段と,
(4) ν個の階層の領域分割を生成する各階層領域分割手段と,
(5) 全ν階層の領域分割をもとに第1,…,ν世代コース空間W(1),…,W(ν)と,W(ν)の共役空間V(ν)を作る共役空間生成手段と,
(6) 全世代の2組の剛性行列と2組の外力ベクトルを作る全世代剛性行列・外力ベクトル作成手段と,
(7) ν個のコース空間の方程式を直接法で解く直接法計算手段と,
(8) 第ν世代の共役空間の方程式を反復法で解く反復法計算手段と,
(9) u=u(0)=w(1)+…+w(ν)+u(ν)によって解を与える解出力手段,
として機能させることを特徴とする並列有限要素計算プログラム。
【請求項4】
コンピュータを,
(1) 解析対象領域Ωと,そのメッシュ分割を与える問題入力手段と,
(2) 並列プロセス数m0,階層数νおよび各階層の領域数νを入力する条件設定手段と,
(3) 並列プロセスにわたる第0階層領域分割を生成する第0層領域分割手段と,
(4) 第k階層領域分割をもとに第k世代コース空間W(k)を作る第k世代コース空間生成手段と,
(5) 直前世代の共役空間V(k-1)をコース空間とそのK(k-1)共役直交空間に分割する共役空間分割手段と,
(6) 第k世代の2つの剛性行列と外力ベクトルを作る全世代剛性行列・外力ベクトル作成手段と,
(7) 第k世代コース空間の方程式を直接法で解く直接法計算手段と,
(8) 第k世代の共役空間の方程式について,反復法の収束性をチェックし,十分な収束性収束性が得られなければ,kをk+1として,前記共役空間分割手段による処理を再度行わせる収束性判定手段と,
(9) 前記収束性判定手段において十分な収束性が得られた場合には,u=u(0)=w(1)+…+w(k)+u(k)によって解を与える解出力手段,
として機能させることを特徴とする並列有限要素計算プログラム。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図1】
image rotate


【公開番号】特開2011−242818(P2011−242818A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−106322(P2010−106322)
【出願日】平成22年5月6日(2010.5.6)
【出願人】(599172782)株式会社アライドエンジニアリング (3)
【Fターム(参考)】