情報処理装置、情報処理方法
【課題】 ひとつの直交座標系あるいは斜交座標系で表現された領域を用いるだけで複数の座標系で表現された領域の数値計算を行う為の技術を提供すること。
【解決手段】 斜交座標系で表現されている周期境界条件を満たす計算領域とその境界領域を含む全体領域を矩形に分割し(S401,S402)、計算領域内の分割矩形に対してインデックス、初期値を設定し(S403,S404)、境界部分内の分割矩形に対して周期境界条件に従ったインデックスを付加し(S405)、更にこの矩形と同じインデックスが付加されている計算領域内の矩形に対して設定されている初期値を設定する(S406)。
【解決手段】 斜交座標系で表現されている周期境界条件を満たす計算領域とその境界領域を含む全体領域を矩形に分割し(S401,S402)、計算領域内の分割矩形に対してインデックス、初期値を設定し(S403,S404)、境界部分内の分割矩形に対して周期境界条件に従ったインデックスを付加し(S405)、更にこの矩形と同じインデックスが付加されている計算領域内の矩形に対して設定されている初期値を設定する(S406)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、数値計算技術に関するものである。
【背景技術】
【0002】
従来、周期境界条件を満たす領域を計算するには、座標位置xを引数として領域の値を返す関数f(x)を用いて、周期をaとした時に、
f(x+a)=f(x) (1)
を満たす条件の下で計算を行う(特許文献1を参照)。実際に汎用の計算機を用いてプログラムを行う場合としては数々の方法が知られているが、主に
・ 配列を使用する方法
・ ポインタを使用する方法
の2つの方法が知られている。
【0003】
配列を使用する方法としては、例えば、例えば図1に示すような16分割された領域を考える。図1は、x−yの直交座標における領域の分割例を示す図である。同図に示す如く、座標位置xを離散化し、それを整数i,j(i,jは1〜4)でラベリングを行う。そしてf(x)を離散化した関数F[i][j]を用いて
F[0][1]=F[4][1] F[0][2]=F[4][2]
F[0][3]=F[4][3] F[0][4]=F[4][4]
F[5][1]=F[1][1] F[5][2]=F[1][2]
F[5][3]=F[1][3] F[5][4]=F[1][4]
F[1][0]=F[1][4] F[2][0]=F[2][4]
F[3][0]=F[3][4] F[4][0]=F[4][4]
F[1][5]=F[1][1] F[2][5]=F[2][1]
F[3][5]=F[3][1] F[4][5]=F[4][1]
となる条件を与えることで、周期境界条件を満たすことが出来る。
【0004】
また斜交座標系で計算を行うには計量テンソルが用いられ、座標軸のなす角度により計量テンソルが異なるために、複数の座標系で計算を行う際には、座標軸のなす角度が異なる座標系の数だけ計量テンソルを用意する必要がある。
【特許文献1】特開平9−172639号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来の技術例では、周期境界条件を満たす複数の斜交座標系および直交座標系を用いて表された領域の数値計算を行うには、複数の座標系を用意する必要があった。また、数値計算を行う際に計量テンソルが異なるため、座標系ごとに異なる計量テンソルを用意する必要があった。
【0006】
本発明は以上の問題に鑑みてなされたものであり、周期境界条件を満たす直交座標系および斜交座標系を含む複数の座標系で表現された領域の数値計算を汎用の計算機を用いて計算を行った際に、ひとつの直交座標系あるいは斜交座標系で表現された領域を用いるだけで複数の座標系で表現された領域の数値計算を行う為の技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【0008】
即ち、第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理装置であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割手段と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加手段と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定手段と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加手段と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定手段とを備え、
前記分割手段によって分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする。
【0009】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【0010】
即ち、第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理方法であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割工程と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加工程と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定工程と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加工程と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定工程とを備え、
前記分割工程で分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする。
【発明の効果】
【0011】
本発明の構成により、周期境界条件を満たす直交座標系および斜交座標系を含む複数の座標系で表現された複数の領域の数値計算を、ひとつの直交座標系あるいは斜交座標系で表現された領域を用いて行うことが出来る。
【発明を実施するための最良の形態】
【0012】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0013】
[第1の実施形態]
本実施形態では、周期境界条件を満たす斜交座標系で表現された領域を直交座標系で表現する為の技術について説明する。なお、斜交座標系における座標軸の2成分は共に直交座標系における2軸の何れとも共通な方向を持たないものとする。
【0014】
図3は、本実施形態に係る情報処理装置の機能構成を示すブロック図である。初期条件設定部301は、計算領域(数値計算処理を行う対象となる領域)、及び周期境界条件を満たす範囲、領域を変換する場合の変換後の領域、領域に与えられる初期値、領域を分割する分割数、および領域の分割方法を設定する。
【0015】
座標系選択部302は、変換を行う座標系を決定する。計算領域変換部303は、初期条件設定部301によって設定された情報に基づいて、領域の変換を行う。計算領域分割部304は、周期境界条件を満たす領域および、その領域に接する外部の領域(境界領域)を含めた領域を、初期条件設定部301によって設定された情報に従って分割を行う。
【0016】
管理番号付与部305は、計算領域分割部304により分割された領域群のうち、計算領域のみに管理番号を付与する。周期境界設定部306は、計算領域、及びこれに接する外部の領域を含めた領域に、周期境界条件を満たすように管理番号を付与された各領域の初期値と管理番号を設定する。
【0017】
図20は、本実施形態に係る情報処理装置に適用するコンピュータのハードウェア構成を示すブロック図である。
【0018】
2001はCPUで、RAM2002やROM2003に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、本コンピュータを適用した情報処理装置が行う後述の各種の処理を実行する。
【0019】
2002はRAMで、外部記憶装置2006からロードされたプログラムやデータを一時的に記憶するためのエリア、CPU2001が各種の処理を実行する際に用いるワークエリアなど、各種のエリアを適宜提供することができる。
【0020】
2003はROMで、本コンピュータの設定データやブートプログラムなどを格納する。
【0021】
2004は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで各種の指示をCPU2001に対して入力することができる。
【0022】
2005は表示部で、CRTや液晶画面などにより構成されており、CPU2001による処理結果を画像や文字などでもって表示する。
【0023】
2006は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここにOS(オペレーティングシステム)や、コンピュータが行う後述の各処理をCPU2001に実行させるためのプログラムやデータが保存されており、これらはCPU2001による制御に従って適宜RAM2002にロードされる。
【0024】
2007は上述の各部を繋ぐバスである。
【0025】
次に、上記構成を有するコンピュータによって行う計算処理について説明する。本実施形態では上述の通り、斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う。よって、そのために本実施形態では、この計算領域、及びその境界領域に対してインデックスを発行し、インデックスに応じた初期値を設定する。そして初期値を設定した後にはそれぞれの領域について初期値に基づいて計算処理を開始する。
【0026】
図4は、コンピュータが行う処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU2001に実行させるためのプログラムやデータは外部記憶装置2006に保存されており、これをCPU2001による制御に従って適宜RAM2002にロードし、CPU2001がこれを用いて処理を実行することで、本コンピュータは以下説明する各処理を行う。
【0027】
先ず、斜交座標系の2軸(x軸、y軸)のそれぞれとは異なる方向に2軸(x軸、y軸)を有する直交座標系を用いて、図5に示すような斜交座標系で表現されている周期境界条件を満たす計算領域501(0≦x≦a、0≦y≦b)が存在する斜交座標系を、501と面積が等しく、格子分割が行える形状で、且つ分割後の面積が等しい領域(分割領域)の集合に変換する(ステップS401)。図5は、計算領域501の一例を示す図である。
【0028】
例えば、図6に示すような分割領域の集合に変換する。なお、本ステップにおける処理は、格子分割が行える形状で、且つ面積が等しい領域の集合に変換するのであれば、このような形状の領域の集合に変換することに限定するものではなく、例えば、図7に示すような領域の集合に変換するようにしても良い。図6,7は、斜交座標系の変換例を示す図である。
【0029】
図4に戻って、次に、それぞれの分割領域を所定数の矩形に分割する(ステップS402)。本実施形態では図8に示す如く20分割する。図8は、計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【0030】
以上のような処理により、結果として、計算領域501とその境界領域とを含む全体領域を矩形(直交座標系における矩形)に分割することができる。
【0031】
図4に戻って、次に、注目分割領域を分割したそれぞれの矩形に対して図9に示す如く、インデックス(管理番号)を付加すると共に、それぞれの矩形について付加したインデックスを管理するためのテーブルを作成し、RAM2002内に格納する(ステップS403)。図9は、注目分割領域に対して付加するインデックスの例を示す図である。
【0032】
次に、それぞれの矩形について、付加されたインデックスに対応する初期値を設定する(ステップS404)。
【0033】
次に、注目分割領域以外の分割領域を構成する矩形のうち、注目分割領域を構成する矩形に隣接する矩形(即ち、境界部分を構成する矩形)のそれぞれについて同様にインデックスを付加するのであるが、その際、上記周期境界条件に従ってインデックスを付加する(ステップS405)。図10は、注目分割領域に対して図9に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。同図に示す如く、境界領域を構成する矩形については、周期境界条件に従って、注目分割領域内の矩形のインデックスが繰り返し用いられている。
【0034】
よって、境界領域内の矩形に対して、この矩形と同じインデックスが付加されている注目分割領域内の矩形について設定された初期値と同じものを設定する(ステップS406)。即ち、注目分割領域を構成する各矩形と、境界領域を構成する各矩形とで、同じインデックスを有するもの同士は同じ初期値を設定するので、ステップS405では、この対応関係を設定すればよいことになる。例えば、注目分割領域内の位置(x、y)における矩形に対する初期値(若しくは以降の計算処理で決定した値)を返す関数をA[x][y]と定義した場合に、例えば、A[1][0]=A[3][6]と設定する。
【0035】
これにより、斜交座標系での周期境界条件を満たす領域を直交座標系で表現することが出来る。
【0036】
<変形例>
ここで、直交座標系とは、斜交座標系の一部である。即ち、角度θで規定されている斜交座標系のうち、θ=90°である斜交座標系が直交座標系である。そこで、以上説明した処理は、θ≠90°の斜交座標系での周期境界条件を満たす領域をθ=90°の斜交座標系で表現することができる。
【0037】
また、それぞれ異なる角度で規定されている複数の斜交座標系のそれぞれについて以上説明したような処理を行えば、それぞれの斜交座標系での周期境界条件を満たす領域を、1つの直交座標系で表現することができる。
【0038】
また、同様の手順を用いて、図19のように表すことにより、それぞれ異なる角度で規定されている複数の斜交座標系での周期境界条件を満たす領域を、1つの斜交座標系で表現することができる。
【0039】
なお、何れの座標系で表現するにせよ、分割領域を矩形に分割する場合に、この矩形は表現しようとする座標系における矩形となる。即ち、表現しようとする座標系が直交座標系であれば、この矩形は長方形となるのであるが、表現しようとする座標系が斜交座標系である場合、この矩形は、斜交座標系を規定する角度分だけ傾いた平行四辺形となる。
【0040】
なお、以上の説明において、分割領域は20分割しているが、分割数は20に限定するものではない。
【0041】
[第2の実施形態]
本実施形態では、第1の実施形態と同じ計算環境において、斜交座標系における座標軸の2成分のうち一方のみが、直交座標系における2軸の何れかと一致している場合について説明する。
【0042】
図11は、コンピュータが行う処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU2001に実行させるためのプログラムやデータは外部記憶装置2006に保存されており、これをCPU2001による制御に従って適宜RAM2002にロードし、CPU2001がこれを用いて処理を実行することで、本コンピュータは以下説明する各処理を行う。
【0043】
先ず、斜交座標系の2軸(x軸、y軸)のうち一方のみが一致している軸と、この軸に直交している軸の2軸を有する直交座標系を用いて、図5に示すような斜交座標系で表現されている周期境界条件を満たす計算領域501(0≦x≦a、0≦y≦b)が存在する斜交座標系を、格子分割が行える形状で、且つ面積が等しい領域(分割領域)の集合に変換する(ステップS1101)。このような処理は上記ステップS401と同様にして行う。例えば、図12に示すような分割領域の集合に変換する。図12は、分割領域の変形例を示す図である。
【0044】
なお、本ステップにおける処理は、格子分割が行える形状で、且つ面積が等しい領域の集合に変換するのであれば、このような形状の領域の集合に変換することに限定するものではない。
【0045】
図11に戻って、次に、それぞれの分割領域を所定個数の矩形に分割する(ステップS1102)。本実施形態では、図13に示す如く、20分割する。図13は、計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【0046】
図11に戻って、次に、注目分割領域を分割したそれぞれの矩形、及びこの注目分割領域の周期境界条件を満たす境界部を含み、この注目分割領域外の分割領域(隣接分割領域)を構成する矩形についてそれぞれ、図14、15に示す如く、インデックス(管理番号)を付加すると共に、それぞれの矩形について付加したインデックスを管理するためのテーブルを作成し、RAM2002内に格納する(ステップS1103)。図14、15は、分割領域に対して付加するインデックスの例を示す図である。図14,15はそれぞれ、注目分割領域、隣接分割領域に対して付加するインデックスを示す図である。
【0047】
次に、ステップS1103で作成したテーブルを用いて、図16に示す如く、周期境界条件を設定するのであるが、周期境界条件を満たすインデックスは、周期境界条件により正確に対応する領域と、分割された領域に占める面積が最も大きい領域とをインデックスでもって関連付けるものである(ステップS1104)。
【0048】
図16は、注目分割領域に対して図14に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。同図に示す如く、境界領域を構成する矩形については、周期境界条件に従って、注目分割領域内の矩形のインデックスが繰り返し用いられている。なお、このように、境界領域に対してインデックスを付加する処理は、第1の実施形態と同様にして行っても良い。
【0049】
図11に戻って、次に、それぞれの矩形について、付加されたインデックスに対応する初期値を設定する(ステップS1105)。即ち、注目分割領域を構成する各矩形と、境界領域を構成する各矩形とで、同じインデックスを有するもの同士は同じ初期値を設定する。
【0050】
例えば、注目分割領域内における矩形に対するインデックスから、周期境界条件を満たす境界部を含む領域外の分割された領域内の矩形に対するインデックスへの変換を表す関数をS[]、その逆の変換をL[]として、この領域に設定されている値を返す関数をB[]とすると、注目分割領域内における8番目の矩形からx軸の正の方向への境界要素へのアクセスは、図16を参考にして、
B[S[L[8]+1]]]=B[S[17+1]]=B[5]
などと設定することにより斜交座標系での周期境界条件を満たす領域を直交座標系で表現することが出来る。
【0051】
また、このとき、図17に示すようなテーブルを作成することにより、インデックス(i,j)を用いてL[]を用いることなく周期境界条件を表すことが出来る。図17は、インデックスの別の例を示す図である。
【0052】
例えば、注目分割領域内における8番目の矩形のインデックスは(4,2)であるから、この矩形のX軸の正の方向の隣の矩形の値は
B[S[(4+1)+(nx+2)*(2)+1]]=B[S[17+1]]=B[5]
と表される。但し、nxは、X軸方向の領域の分割数4である。
【0053】
なお、本実施形態において、分割領域の形状を図7に示したものとする場合には、インデックスの管理を図10に示したものの代わりに図18に示したものを用いるようにすればよい。
【0054】
また、第1の実施形態と同様に、様々な変形例も可能である。
【0055】
[その他の実施形態]
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0056】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0057】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0058】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0059】
【図1】x−yの直交座標における領域の分割例を示す図である。
【図2】x−yの直交座標における領域の分割例を示す図である。
【図3】本発明の第1の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図4】コンピュータが行う処理のフローチャートである。
【図5】計算領域501の一例を示す図である。
【図6】斜交座標系の変換例を示す図である。
【図7】斜交座標系の変換例を示す図である。
【図8】計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【図9】注目分割領域に対して付加するインデックスの例を示す図である。
【図10】注目分割領域に対して図9に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。
【図11】コンピュータが行う処理のフローチャートである。
【図12】分割領域の変形例を示す図である。
【図13】計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【図14】注目分割領域に対して付加するインデックスを示す図である。
【図15】隣接分割領域に対して付加するインデックスを示す図である。
【図16】注目分割領域に対して図14に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。
【図17】インデックスの別の例を示す図である。
【図18】分割領域の形状を図7に示したものとする場合に用いるインデックスの管理を説明する図である。
【図19】複数の斜交座標系での周期境界条件を満たす領域を、1つの斜交座標系で表現した例を示す図である。
【図20】本発明の第1の実施形態に係る情報処理装置に適用するコンピュータのハードウェア構成を示すブロック図である。
【技術分野】
【0001】
本発明は、数値計算技術に関するものである。
【背景技術】
【0002】
従来、周期境界条件を満たす領域を計算するには、座標位置xを引数として領域の値を返す関数f(x)を用いて、周期をaとした時に、
f(x+a)=f(x) (1)
を満たす条件の下で計算を行う(特許文献1を参照)。実際に汎用の計算機を用いてプログラムを行う場合としては数々の方法が知られているが、主に
・ 配列を使用する方法
・ ポインタを使用する方法
の2つの方法が知られている。
【0003】
配列を使用する方法としては、例えば、例えば図1に示すような16分割された領域を考える。図1は、x−yの直交座標における領域の分割例を示す図である。同図に示す如く、座標位置xを離散化し、それを整数i,j(i,jは1〜4)でラベリングを行う。そしてf(x)を離散化した関数F[i][j]を用いて
F[0][1]=F[4][1] F[0][2]=F[4][2]
F[0][3]=F[4][3] F[0][4]=F[4][4]
F[5][1]=F[1][1] F[5][2]=F[1][2]
F[5][3]=F[1][3] F[5][4]=F[1][4]
F[1][0]=F[1][4] F[2][0]=F[2][4]
F[3][0]=F[3][4] F[4][0]=F[4][4]
F[1][5]=F[1][1] F[2][5]=F[2][1]
F[3][5]=F[3][1] F[4][5]=F[4][1]
となる条件を与えることで、周期境界条件を満たすことが出来る。
【0004】
また斜交座標系で計算を行うには計量テンソルが用いられ、座標軸のなす角度により計量テンソルが異なるために、複数の座標系で計算を行う際には、座標軸のなす角度が異なる座標系の数だけ計量テンソルを用意する必要がある。
【特許文献1】特開平9−172639号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来の技術例では、周期境界条件を満たす複数の斜交座標系および直交座標系を用いて表された領域の数値計算を行うには、複数の座標系を用意する必要があった。また、数値計算を行う際に計量テンソルが異なるため、座標系ごとに異なる計量テンソルを用意する必要があった。
【0006】
本発明は以上の問題に鑑みてなされたものであり、周期境界条件を満たす直交座標系および斜交座標系を含む複数の座標系で表現された領域の数値計算を汎用の計算機を用いて計算を行った際に、ひとつの直交座標系あるいは斜交座標系で表現された領域を用いるだけで複数の座標系で表現された領域の数値計算を行う為の技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【0008】
即ち、第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理装置であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割手段と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加手段と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定手段と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加手段と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定手段とを備え、
前記分割手段によって分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする。
【0009】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【0010】
即ち、第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理方法であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割工程と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加工程と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定工程と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加工程と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定工程とを備え、
前記分割工程で分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする。
【発明の効果】
【0011】
本発明の構成により、周期境界条件を満たす直交座標系および斜交座標系を含む複数の座標系で表現された複数の領域の数値計算を、ひとつの直交座標系あるいは斜交座標系で表現された領域を用いて行うことが出来る。
【発明を実施するための最良の形態】
【0012】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0013】
[第1の実施形態]
本実施形態では、周期境界条件を満たす斜交座標系で表現された領域を直交座標系で表現する為の技術について説明する。なお、斜交座標系における座標軸の2成分は共に直交座標系における2軸の何れとも共通な方向を持たないものとする。
【0014】
図3は、本実施形態に係る情報処理装置の機能構成を示すブロック図である。初期条件設定部301は、計算領域(数値計算処理を行う対象となる領域)、及び周期境界条件を満たす範囲、領域を変換する場合の変換後の領域、領域に与えられる初期値、領域を分割する分割数、および領域の分割方法を設定する。
【0015】
座標系選択部302は、変換を行う座標系を決定する。計算領域変換部303は、初期条件設定部301によって設定された情報に基づいて、領域の変換を行う。計算領域分割部304は、周期境界条件を満たす領域および、その領域に接する外部の領域(境界領域)を含めた領域を、初期条件設定部301によって設定された情報に従って分割を行う。
【0016】
管理番号付与部305は、計算領域分割部304により分割された領域群のうち、計算領域のみに管理番号を付与する。周期境界設定部306は、計算領域、及びこれに接する外部の領域を含めた領域に、周期境界条件を満たすように管理番号を付与された各領域の初期値と管理番号を設定する。
【0017】
図20は、本実施形態に係る情報処理装置に適用するコンピュータのハードウェア構成を示すブロック図である。
【0018】
2001はCPUで、RAM2002やROM2003に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、本コンピュータを適用した情報処理装置が行う後述の各種の処理を実行する。
【0019】
2002はRAMで、外部記憶装置2006からロードされたプログラムやデータを一時的に記憶するためのエリア、CPU2001が各種の処理を実行する際に用いるワークエリアなど、各種のエリアを適宜提供することができる。
【0020】
2003はROMで、本コンピュータの設定データやブートプログラムなどを格納する。
【0021】
2004は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで各種の指示をCPU2001に対して入力することができる。
【0022】
2005は表示部で、CRTや液晶画面などにより構成されており、CPU2001による処理結果を画像や文字などでもって表示する。
【0023】
2006は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここにOS(オペレーティングシステム)や、コンピュータが行う後述の各処理をCPU2001に実行させるためのプログラムやデータが保存されており、これらはCPU2001による制御に従って適宜RAM2002にロードされる。
【0024】
2007は上述の各部を繋ぐバスである。
【0025】
次に、上記構成を有するコンピュータによって行う計算処理について説明する。本実施形態では上述の通り、斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う。よって、そのために本実施形態では、この計算領域、及びその境界領域に対してインデックスを発行し、インデックスに応じた初期値を設定する。そして初期値を設定した後にはそれぞれの領域について初期値に基づいて計算処理を開始する。
【0026】
図4は、コンピュータが行う処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU2001に実行させるためのプログラムやデータは外部記憶装置2006に保存されており、これをCPU2001による制御に従って適宜RAM2002にロードし、CPU2001がこれを用いて処理を実行することで、本コンピュータは以下説明する各処理を行う。
【0027】
先ず、斜交座標系の2軸(x軸、y軸)のそれぞれとは異なる方向に2軸(x軸、y軸)を有する直交座標系を用いて、図5に示すような斜交座標系で表現されている周期境界条件を満たす計算領域501(0≦x≦a、0≦y≦b)が存在する斜交座標系を、501と面積が等しく、格子分割が行える形状で、且つ分割後の面積が等しい領域(分割領域)の集合に変換する(ステップS401)。図5は、計算領域501の一例を示す図である。
【0028】
例えば、図6に示すような分割領域の集合に変換する。なお、本ステップにおける処理は、格子分割が行える形状で、且つ面積が等しい領域の集合に変換するのであれば、このような形状の領域の集合に変換することに限定するものではなく、例えば、図7に示すような領域の集合に変換するようにしても良い。図6,7は、斜交座標系の変換例を示す図である。
【0029】
図4に戻って、次に、それぞれの分割領域を所定数の矩形に分割する(ステップS402)。本実施形態では図8に示す如く20分割する。図8は、計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【0030】
以上のような処理により、結果として、計算領域501とその境界領域とを含む全体領域を矩形(直交座標系における矩形)に分割することができる。
【0031】
図4に戻って、次に、注目分割領域を分割したそれぞれの矩形に対して図9に示す如く、インデックス(管理番号)を付加すると共に、それぞれの矩形について付加したインデックスを管理するためのテーブルを作成し、RAM2002内に格納する(ステップS403)。図9は、注目分割領域に対して付加するインデックスの例を示す図である。
【0032】
次に、それぞれの矩形について、付加されたインデックスに対応する初期値を設定する(ステップS404)。
【0033】
次に、注目分割領域以外の分割領域を構成する矩形のうち、注目分割領域を構成する矩形に隣接する矩形(即ち、境界部分を構成する矩形)のそれぞれについて同様にインデックスを付加するのであるが、その際、上記周期境界条件に従ってインデックスを付加する(ステップS405)。図10は、注目分割領域に対して図9に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。同図に示す如く、境界領域を構成する矩形については、周期境界条件に従って、注目分割領域内の矩形のインデックスが繰り返し用いられている。
【0034】
よって、境界領域内の矩形に対して、この矩形と同じインデックスが付加されている注目分割領域内の矩形について設定された初期値と同じものを設定する(ステップS406)。即ち、注目分割領域を構成する各矩形と、境界領域を構成する各矩形とで、同じインデックスを有するもの同士は同じ初期値を設定するので、ステップS405では、この対応関係を設定すればよいことになる。例えば、注目分割領域内の位置(x、y)における矩形に対する初期値(若しくは以降の計算処理で決定した値)を返す関数をA[x][y]と定義した場合に、例えば、A[1][0]=A[3][6]と設定する。
【0035】
これにより、斜交座標系での周期境界条件を満たす領域を直交座標系で表現することが出来る。
【0036】
<変形例>
ここで、直交座標系とは、斜交座標系の一部である。即ち、角度θで規定されている斜交座標系のうち、θ=90°である斜交座標系が直交座標系である。そこで、以上説明した処理は、θ≠90°の斜交座標系での周期境界条件を満たす領域をθ=90°の斜交座標系で表現することができる。
【0037】
また、それぞれ異なる角度で規定されている複数の斜交座標系のそれぞれについて以上説明したような処理を行えば、それぞれの斜交座標系での周期境界条件を満たす領域を、1つの直交座標系で表現することができる。
【0038】
また、同様の手順を用いて、図19のように表すことにより、それぞれ異なる角度で規定されている複数の斜交座標系での周期境界条件を満たす領域を、1つの斜交座標系で表現することができる。
【0039】
なお、何れの座標系で表現するにせよ、分割領域を矩形に分割する場合に、この矩形は表現しようとする座標系における矩形となる。即ち、表現しようとする座標系が直交座標系であれば、この矩形は長方形となるのであるが、表現しようとする座標系が斜交座標系である場合、この矩形は、斜交座標系を規定する角度分だけ傾いた平行四辺形となる。
【0040】
なお、以上の説明において、分割領域は20分割しているが、分割数は20に限定するものではない。
【0041】
[第2の実施形態]
本実施形態では、第1の実施形態と同じ計算環境において、斜交座標系における座標軸の2成分のうち一方のみが、直交座標系における2軸の何れかと一致している場合について説明する。
【0042】
図11は、コンピュータが行う処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU2001に実行させるためのプログラムやデータは外部記憶装置2006に保存されており、これをCPU2001による制御に従って適宜RAM2002にロードし、CPU2001がこれを用いて処理を実行することで、本コンピュータは以下説明する各処理を行う。
【0043】
先ず、斜交座標系の2軸(x軸、y軸)のうち一方のみが一致している軸と、この軸に直交している軸の2軸を有する直交座標系を用いて、図5に示すような斜交座標系で表現されている周期境界条件を満たす計算領域501(0≦x≦a、0≦y≦b)が存在する斜交座標系を、格子分割が行える形状で、且つ面積が等しい領域(分割領域)の集合に変換する(ステップS1101)。このような処理は上記ステップS401と同様にして行う。例えば、図12に示すような分割領域の集合に変換する。図12は、分割領域の変形例を示す図である。
【0044】
なお、本ステップにおける処理は、格子分割が行える形状で、且つ面積が等しい領域の集合に変換するのであれば、このような形状の領域の集合に変換することに限定するものではない。
【0045】
図11に戻って、次に、それぞれの分割領域を所定個数の矩形に分割する(ステップS1102)。本実施形態では、図13に示す如く、20分割する。図13は、計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【0046】
図11に戻って、次に、注目分割領域を分割したそれぞれの矩形、及びこの注目分割領域の周期境界条件を満たす境界部を含み、この注目分割領域外の分割領域(隣接分割領域)を構成する矩形についてそれぞれ、図14、15に示す如く、インデックス(管理番号)を付加すると共に、それぞれの矩形について付加したインデックスを管理するためのテーブルを作成し、RAM2002内に格納する(ステップS1103)。図14、15は、分割領域に対して付加するインデックスの例を示す図である。図14,15はそれぞれ、注目分割領域、隣接分割領域に対して付加するインデックスを示す図である。
【0047】
次に、ステップS1103で作成したテーブルを用いて、図16に示す如く、周期境界条件を設定するのであるが、周期境界条件を満たすインデックスは、周期境界条件により正確に対応する領域と、分割された領域に占める面積が最も大きい領域とをインデックスでもって関連付けるものである(ステップS1104)。
【0048】
図16は、注目分割領域に対して図14に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。同図に示す如く、境界領域を構成する矩形については、周期境界条件に従って、注目分割領域内の矩形のインデックスが繰り返し用いられている。なお、このように、境界領域に対してインデックスを付加する処理は、第1の実施形態と同様にして行っても良い。
【0049】
図11に戻って、次に、それぞれの矩形について、付加されたインデックスに対応する初期値を設定する(ステップS1105)。即ち、注目分割領域を構成する各矩形と、境界領域を構成する各矩形とで、同じインデックスを有するもの同士は同じ初期値を設定する。
【0050】
例えば、注目分割領域内における矩形に対するインデックスから、周期境界条件を満たす境界部を含む領域外の分割された領域内の矩形に対するインデックスへの変換を表す関数をS[]、その逆の変換をL[]として、この領域に設定されている値を返す関数をB[]とすると、注目分割領域内における8番目の矩形からx軸の正の方向への境界要素へのアクセスは、図16を参考にして、
B[S[L[8]+1]]]=B[S[17+1]]=B[5]
などと設定することにより斜交座標系での周期境界条件を満たす領域を直交座標系で表現することが出来る。
【0051】
また、このとき、図17に示すようなテーブルを作成することにより、インデックス(i,j)を用いてL[]を用いることなく周期境界条件を表すことが出来る。図17は、インデックスの別の例を示す図である。
【0052】
例えば、注目分割領域内における8番目の矩形のインデックスは(4,2)であるから、この矩形のX軸の正の方向の隣の矩形の値は
B[S[(4+1)+(nx+2)*(2)+1]]=B[S[17+1]]=B[5]
と表される。但し、nxは、X軸方向の領域の分割数4である。
【0053】
なお、本実施形態において、分割領域の形状を図7に示したものとする場合には、インデックスの管理を図10に示したものの代わりに図18に示したものを用いるようにすればよい。
【0054】
また、第1の実施形態と同様に、様々な変形例も可能である。
【0055】
[その他の実施形態]
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0056】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0057】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0058】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0059】
【図1】x−yの直交座標における領域の分割例を示す図である。
【図2】x−yの直交座標における領域の分割例を示す図である。
【図3】本発明の第1の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図4】コンピュータが行う処理のフローチャートである。
【図5】計算領域501の一例を示す図である。
【図6】斜交座標系の変換例を示す図である。
【図7】斜交座標系の変換例を示す図である。
【図8】計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【図9】注目分割領域に対して付加するインデックスの例を示す図である。
【図10】注目分割領域に対して図9に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。
【図11】コンピュータが行う処理のフローチャートである。
【図12】分割領域の変形例を示す図である。
【図13】計算領域501上を一番大きく占める分割領域(注目分割領域)について分割例を示す図である。
【図14】注目分割領域に対して付加するインデックスを示す図である。
【図15】隣接分割領域に対して付加するインデックスを示す図である。
【図16】注目分割領域に対して図14に示すようにインデックスを付加した場合に、境界領域に対して付加するインデックスを示す図である。
【図17】インデックスの別の例を示す図である。
【図18】分割領域の形状を図7に示したものとする場合に用いるインデックスの管理を説明する図である。
【図19】複数の斜交座標系での周期境界条件を満たす領域を、1つの斜交座標系で表現した例を示す図である。
【図20】本発明の第1の実施形態に係る情報処理装置に適用するコンピュータのハードウェア構成を示すブロック図である。
【特許請求の範囲】
【請求項1】
第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理装置であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割手段と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加手段と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定手段と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加手段と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定手段とを備え、
前記分割手段によって分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする情報処理装置。
【請求項2】
前記第1の斜交座標系、前記第2の斜交座標系は、直交座標系、斜交座標系の何れかであることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理方法であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割工程と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加工程と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定工程と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加工程と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定工程とを備え、
前記分割工程で分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする情報処理方法。
【請求項4】
コンピュータに請求項3に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項5】
請求項4に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項1】
第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理装置であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割手段と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加手段と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定手段と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加手段と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定手段とを備え、
前記分割手段によって分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする情報処理装置。
【請求項2】
前記第1の斜交座標系、前記第2の斜交座標系は、直交座標系、斜交座標系の何れかであることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
第1の角度で規定されている第1の斜交座標系で表現されている周期境界条件を満たす計算領域内で計算処理を行う情報処理方法であって、
前記計算領域とその境界領域を含む全体領域を、第2の角度で規定されている第2の斜交座標系における矩形に分割する分割工程と、
前記計算領域を分割したそれぞれの矩形に対してインデックスを付加する第1の付加工程と、
前記計算領域を分割したそれぞれの矩形に対して初期値を設定する第1の設定工程と、
前記境界部分を分割したそれぞれの矩形に対して、前記周期境界条件に従ったインデックスを付加する第2の付加工程と、
前記境界部分内の矩形に対して、当該矩形と同じインデックスが付加されている前記計算領域内の矩形に対して設定されている初期値を設定する第2の設定工程とを備え、
前記分割工程で分割されたそれぞれの矩形について設定された初期値に基づいて計算処理を行うことを特徴とする情報処理方法。
【請求項4】
コンピュータに請求項3に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項5】
請求項4に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2007−4717(P2007−4717A)
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願番号】特願2005−187087(P2005−187087)
【出願日】平成17年6月27日(2005.6.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願日】平成17年6月27日(2005.6.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]