(57)【要約】【課題】  任意の位置の、任意の範囲に格子を作成／消去する処理、格子の生成／消滅に伴って必要となる関数の値を変化させる処理を統合することで、それぞれの処理を連動させるための技術を提供すること。【解決手段】  格子の情報内に存在する登録関数の情報と、関数の情報内に存在する関数の生成・消滅手法の情報と、格子情報への処理操作群内に存在する登録関数の操作を呼び出す操作を加えて、格子の生成・消滅工程と関数の生成・消滅工程を統合する。【選択図】  図５
2006323781.tif 000002
【特許請求の範囲】
【請求項１】
ｎ次元空間で定義される関数方程式に対して、当該ｎ次元空間を離散化して得られる格子と、当該格子の上に定義される関数を用いて当該格子の情報と、当該関数の情報と、当該格子の情報を処理する手続きにより構成される格子情報への処理操作プログラム群と、当該関数の情報を処理する手続きにより構成される関数情報への処理操作プログラム群とを保持する保持手段と、
当該格子情報への処理操作プログラム群内の格子の生成・消滅操作プログラム、当該関数情報への処理操作プログラム群内の関数の生成・消滅操作プログラム、当該格子の情報内に存在する登録関数の情報、当該関数の情報内に存在する関数の生成／消滅手法の情報、当該格子情報への処理操作プログラム群内に存在する登録関数の操作プログラムを呼び出す操作プログラムを用いて、格子及び関数の生成／消滅を行う生成／消滅手段と、
前記生成／消滅手段により更新された格子、及び関数を用いて前記関数方程式の解を求める計算手段と
を備えることを特徴とする情報処理装置。
【請求項２】
ｎ次元空間で定義される関数方程式に対して、当該ｎ次元空間を離散化して得られる格子と、当該格子の上に定義される関数を用いて当該格子の情報と、当該関数の情報と、当該格子の情報を処理する手続きにより構成される格子情報への処理操作プログラム群と、当該関数の情報を処理する手続きにより構成される関数情報への処理操作プログラム群とを保持する保持工程と、
当該格子情報への処理操作プログラム群内の格子の生成・消滅操作プログラム、当該関数情報への処理操作プログラム群内の関数の生成・消滅操作プログラム、当該格子の情報内に存在する登録関数の情報、当該関数の情報内に存在する関数の生成／消滅手法の情報、当該格子情報への処理操作プログラム群内に存在する登録関数の操作プログラムを呼び出す操作プログラムを用いて、格子及び関数の生成／消滅を行う生成／消滅工程と、
前記生成／消滅工程で更新された格子、及び関数を用いて前記関数方程式の解を求める計算工程と
を備えることを特徴とする情報処理方法。
【請求項３】
コンピュータに請求項２に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項４】
請求項３に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値計算技術に関するものである。
【背景技術】
【０００２】
物理現象を数値計算によって解析する技術については様々な技術が開発されている。このような技術において、例えば流体の現象解析では空間の離散化近似によって格子生成を行うことが一般的である。
【０００３】
一般的に格子の密度の上昇とともに現象解析の解の精度が向上すること、そして格子の増加が計算時間の増加を伴うこと、複雑な現象の解析を行う際には格子生成自体に多くの計算時間がかかること、といった事情から格子生成法についての研究がなされてきた。
【０００４】
その中でもアダプティブ法を用いた格子生成は、一度格子生成を行った後で、より良い精度、より早い計算時間を実現する格子へと格子を変化させるという方法であり、現象に適した格子を生成する有効な手段である。非特許文献１で詳しく紹介されているように、アダプティブ法の中でもｈ法（要素細分化法）と呼ばれる方法は各格子における解の精度を一定に保つように、誤差の大きな領域の格子を細分化し、誤差の小さな領域の格子を粗くする方法であり、少ない格子で良い精度の解を得られる格子生成法である。
【０００５】
また、非特許文献２で詳しく紹介されているように、ｈ法のうちアダプティブ・メッシュ・リファインメント法を用いた現象解析も効果を上げている。
【非特許文献１】日本機械学会論文集（Ｂ編）  57-534  (1991)  436-441
【非特許文献２】日本機械学会論文集（Ｂ編）  67-664  (2001)  2946-2954
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来の数値計算方法では格子生成・消滅、関数生成・消滅の工程が別々に分離しており、プログラムを書く技術者本人が格子と関数の情報を管理した上で格子、関数のそれぞれにそれぞれの工程の命令を出さなければならなかった。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、任意の位置の、任意の範囲に格子を作成／消去する処理、格子の生成／消滅に伴って必要となる関数の値を変化させる処理を統合することで、それぞれの処理を連動させるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【０００９】
即ち、ｎ次元空間で定義される関数方程式に対して、当該ｎ次元空間を離散化して得られる格子と、当該格子の上に定義される関数を用いて当該格子の情報と、当該関数の情報と、当該格子の情報を処理する手続きにより構成される格子情報への処理操作プログラム群と、当該関数の情報を処理する手続きにより構成される関数情報への処理操作プログラム群とを保持する保持手段と、
当該格子情報への処理操作プログラム群内の格子の生成・消滅操作プログラム、当該関数情報への処理操作プログラム群内の関数の生成・消滅操作プログラム、当該格子の情報内に存在する登録関数の情報、当該関数の情報内に存在する関数の生成／消滅手法の情報、当該格子情報への処理操作プログラム群内に存在する登録関数の操作プログラムを呼び出す操作プログラムを用いて、格子及び関数の生成／消滅を行う生成／消滅手段と、
前記生成／消滅手段により更新された格子、及び関数を用いて前記関数方程式の解を求める計算手段と
を備えることを特徴とする。
【００１０】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００１１】
即ち、ｎ次元空間で定義される関数方程式に対して、当該ｎ次元空間を離散化して得られる格子と、当該格子の上に定義される関数を用いて当該格子の情報と、当該関数の情報と、当該格子の情報を処理する手続きにより構成される格子情報への処理操作プログラム群と、当該関数の情報を処理する手続きにより構成される関数情報への処理操作プログラム群とを保持する保持工程と、
当該格子情報への処理操作プログラム群内の格子の生成・消滅操作プログラム、当該関数情報への処理操作プログラム群内の関数の生成・消滅操作プログラム、当該格子の情報内に存在する登録関数の情報、当該関数の情報内に存在する関数の生成／消滅手法の情報、当該格子情報への処理操作プログラム群内に存在する登録関数の操作プログラムを呼び出す操作プログラムを用いて、格子及び関数の生成／消滅を行う生成／消滅工程と、
前記生成／消滅工程で更新された格子、及び関数を用いて前記関数方程式の解を求める計算工程と
を備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成により、任意の位置の、任意の範囲に格子を作成／消去する処理、格子の生成／消滅に伴って必要となる関数の値を変化させる処理を統合することで、それぞれの処理を連動させることを目的とする。
【発明を実施するための最良の形態】
【００１３】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１４】
先ず、以下の各実施形態で説明する数値計算処理を実行するコンピュータについて説明する。
【００１５】
図２は、コンピュータのハードウェア構成を示すブロック図である。
【００１６】
２０１はＣＰＵで、ＲＡＭ２０３にロードされているプログラムやデータを用いてコンピュータ全体の制御を行うと共に、コンピュータが行う後述の各処理を実行する。
【００１７】
２０２は入力装置で、キーボードやマウスなどにより構成されており、コンピュータの操作者が操作することで、各種の指示をＣＰＵ２０１に対して入力することができる。
【００１８】
２０３はＲＡＭで、外部記憶装置２０５からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを備える。
【００１９】
２０４は出力装置で、プリンタなどの印刷装置、ディスプレイ装置などの表示装置等、ＣＰＵ２０１による処理結果を様々な形態でもって出力するための装置により構成されている。
【００２０】
２０５は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置により構成されており、ここにＯＳ（オペレーティングシステム）や、コンピュータが行う後述の各処理をＣＰＵ２０１に実行させるためのプログラムやデータなどが保存されており、これらはＣＰＵ２０１による制御に従ってＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【００２１】
２０６は通信装置で、ＬＡＮカードやモデムなどにより構成されており、外部装置とのデータ通信を行う際のインターフェースとして用いられるものである。
【００２２】
２０７は上述の各部を繋ぐバスである。
【００２３】
なお、コンピュータの構成についてはこれに限定するものではなく、例えば、コンピュータが行う後述の各処理をＣＰＵ２０１に実行させるためのプログラムやデータなどをＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記録媒体に記録させると共に、このような記録媒体に格納されているプログラムやデータを読み出す記録媒体ドライブ装置をバス２０７に繋ぐようにしても良い。
【００２４】
次に、このような構成を有するコンピュータが作り出す仮想空間中で物理現象を解析する従来の処理について説明する。物理現象を解析するとは、物理現象を支配している関数方程式を解くことに等価なのであるが、コンピュータを用いて物理現象を解析する場合には、先ず、仮想空間（物理現象を解析する部分領域）中に格子点を配置し、関数方程式のうち、各格子点に対応する物理量を求める。
【００２５】
図３は、従来の物理現象解析処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させるためのプログラムやデータはＲＡＭ２０３にロードされ、ＣＰＵ２０１がこれを用いて処理を実行することで、コンピュータは以下説明する各処理を実行することになる。
【００２６】
先ず、プログラムの実行に先立ち、各変数の初期化など、様々な初期化処理を行う（ステップＳ３０１）。次に、外部記憶装置２０５から、以下の処理で用いるデータ群をＲＡＭ２０３にロードする（ステップＳ３０２）。次に、ロードしたデータに基づいて、仮想空間を格子状に分割する（ステップＳ３０３）。このロードしたデータには各格子点の仮想空間中における位置データも含まれているので、この位置データが示す各位置に格子を配置すれば、結果として、仮想空間を格子状に分割することができる。
【００２７】
次に、ステップＳ３０２でロードしたデータに基づいて、ステップＳ３０３で配置した各格子点に、現象解析するための物理量（関数）を定義する（ステップＳ３０４）。ステップＳ３０２でロードしたデータには、各格子点に対してセットする物理量のデータも含まれているので、それぞれの格子点に応じた物理量をセットする。
【００２８】
次に、アダプティブ・メッシュ・リファインメント法に従った処理を行う。即ち、誤差の大きな領域の格子を細分化し、誤差の小さな領域の格子を粗くする（ステップＳ３０５）。以降ではより一般的に任意の位置の、任意の範囲に格子を作成することを格子の生成と呼ぶ。また任意の位置の、任意の範囲の格子を消去することを格子の消滅と呼ぶ。
【００２９】
ここで、格子の生成／消滅は格子上に定義された関数の定義点の増加／減少を意味している。従って格子の生成に伴って関数の定義点を増やし、そこに適切な関数の値を代入する必要がある。また格子の消滅に伴って関数の定義点を減らし、場合によっては関数の値を変更させる必要がある。以降では格子の生成に伴って必要となる関数の値を変化させる操作を関数の生成と呼び、格子の消滅に伴って必要となる関数の値を変化させる操作を関数の消滅と呼ぶ。
【００３０】
よって、ステップＳ３０５における格子の生成／消滅がなされていれば、次に、それに応じて関数の生成／消滅を行う（ステップＳ３０６）。
【００３１】
そして次に、関数の演算を行って物理現象を支配している関数方程式を解く（ステップＳ３０７）。そして終了条件を満たすか否かを判断し（ステップＳ３０８）、例えば、上記非特許文献２に開示されているように、物理現象の終了時間に達した場合には処理をステップＳ３０９に進め、関数方程式を解いた結果を出力装置２０４に出力したり、ファイルとして外部記憶装置２０５に出力したりする（ステップＳ３０９）。そして、本処理の終了に係る処理を行う（ステップＳ３１０）。
【００３２】
図４は、以上の処理を行うためのプログラム、及びデータの構成例を示す図である。同図において４０１は格子に係る一連の処理をＣＰＵ２０１に実行させるためのプログラムの集合で、ここでは格子の生成／消滅処理をＣＰＵ２０１に実行させるためのプログラム４０４のみがこの集合４０１に含まれる。また、４０２は関数に係る一連の処理をＣＰＵ２０１に実行させるためのプログラムの集合で、ここでは関数の生成／消滅処理をＣＰＵ２０１に実行させるためのプログラム４０５のみがこの集合４０２に含まれる。
【００３３】
一方、４０３は、格子や関数の生成／消滅処理をＣＰＵ２０１に実行させるためのデータの集合であり、ここでは格子に係るデータ（格子の位置、大きさ、形状など現象解析のために必要な格子に係る情報を示すデータ）４０６や、関数に係るデータ（関数の名前、位置、値など現象解析のために必要な関数に係る情報を示すデータ）４０７がこの集合４０３に含まれる。
【００３４】
しかし上述の通り、以上のような従来の処理、及び構成では、格子の生成／消滅と関数の生成／消滅とは独立して行われているために、プログラムを書く技術者本人が格子と関数の情報を管理した上で格子、関数のそれぞれにそれぞれの工程の命令を出さなければならなかった。
【００３５】
よって以下の各実施形態ではこれに鑑み、以下のようなプログラム／データ構成を外部記憶装置２０５に備えると共に、これを用いて以下説明するような処理を行う。なお、以下の各実施形態で用いるコンピュータについては従来と同じ、即ち、図２に示した構成を有するものとするが、この構成に限定するものではない。
【００３６】
図５は、以下の各実施形態に係る物理現象解析処理を行うためのプログラム、及びデータの構成例を示す図である。同図において５０１は格子に係る一連の処理をＣＰＵ２０１に実行させるためのプログラムの集合で、ここでは格子の生成／消滅処理をＣＰＵ２０１に実行させるためのプログラム５０４、関数の登録処理をＣＰＵ２０１に実行させるためのプログラム５０５、関数の登録消去処理をＣＰＵ２０１に実行させるためのプログラム５０６、登録関数の動作プログラムを呼び出すプログラム５０７がこの集合５０１に含まれる。
【００３７】
また、５０２は関数に係る一連の処理をＣＰＵ２０１に実行させるためのプログラムの集合で、ここでは関数の生成／消滅処理をＣＰＵ２０１に実行させるためのプログラム５０８、格子の登録処理をＣＰＵ２０１に実行させるためのプログラム５０９、格子の登録消去処理をＣＰＵ２０１に実行させるためのプログラム５１０、登録格子の動作プログラムを呼び出すプログラム５１１、関数の生成／消滅手法の記憶制御プログラム５１２がこの集合５０２に含まれる。
【００３８】
一方、５０３は、格子や関数の生成／消滅処理をＣＰＵ２０１に実行させるためのデータの集合であり、ここでは格子に係るデータ群５１３や、関数に係るデータ群５１４がこの集合４０３に含まれる。ここでは、格子に係るデータ群５１３には、格子の位置、大きさ、形状など現象解析のために必要な格子に係る情報を示すデータに加え、登録関数に係る情報５１５が含まれている。また、関数に係るデータ群５１４には、関数の名前、位置、値など現象解析のために必要な関数に係る情報を示すデータに加え、登録格子に係る情報５１６、関数の生成／消滅手法に係る情報５１７が含まれている。
【００３９】
ここで登録関数とは、格子上に定義された関数であって、プログラム５０５を実行することで登録される関数のことで、その情報は格子情報５１３内の登録関数の情報５１５として保存される。また登録関数の操作とは登録関数の関数情報への処理操作群内の操作を指す。
【００４０】
また、登録格子とは関数が定義されている格子であって、プログラム５０９を実行することで登録される格子のことで、その情報は関数情報５１４内の登録格子の情報５１６として保存される。また登録格子の操作とは登録格子の格子情報への処理操作群内の操作を指す。
【００４１】
また、プログラム５０６、５１０を実行すれば、それぞれ、登録関数、登録格子はそれぞれ登録関数、登録格子ではなくなる。
【００４２】
図１は、以下の各実施形態に係る物理現象解析処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させるためのプログラムやデータはＲＡＭ２０３にロードされ、ＣＰＵ２０１がこれを用いて処理を実行することで、コンピュータは以下説明する各処理を実行することになる。
【００４３】
先ず、プログラムの実行に先立ち、各変数の初期化など、様々な初期化処理を行う（ステップＳ１０１）。次に、外部記憶装置２０５から、以下の処理で用いるデータ群をＲＡＭ２０３にロードする（ステップＳ１０２）。次に、ロードしたデータに基づいて、仮想空間を格子状に分割する（ステップＳ１０３）。以上のステップＳ１０１からステップＳ１０３の各ステップにおける処理は、それぞれステップＳ３０１からステップＳ３０３の各ステップにおける処理と同じである、
次に、ステップＳ１０２でロードしたデータに基づいて、ステップＳ１０３で配置した各格子点に、現象解析するための物理量（関数）を定義するという、上記ステップＳ３０４における処理と同様の処理を行うと共に、プログラム５０９を実行して、関数が定義されている格子を登録格子として、登録格子の情報５１６に保存する処理を行う（ステップＳ１０４）。
【００４４】
そして、ＣＰＵ２０１は登録格子の情報５１６を参照してプログラム５１１を実行することでプログラム５０５を呼び出し、これを実行するので、これによりこの関数はこの格子の登録関数となり、登録関数の情報５１５に保存する（ステップＳ１０４）。
【００４５】
更に、ステップＳ１０４では、プログラム５１２を実行することで、生成／消滅手法を情報５１７として保存する。
【００４６】
そして次に、関数、格子の生成／消滅処理を行う（ステップＳ１０５）。より詳しくは先ず格子の生成／消滅の必要性を判断し、格子の生成／消滅を行う。つまり、プログラム５０４を実行し、格子の生成／消滅処理を行う。そしてその処理結果を情報５１３として保存する。
【００４７】
そして情報５１５を元に、プログラム５０７を実行して関数の生成／消滅プログラム５０８を呼び出し、実行する。その際、既に保存されている関数の生成／消滅手法情報５１７を元に関数の生成／消滅プログラム５０８を実行する。そしてその実行結果を情報５１４として保存する。
【００４８】
そして次に、関数の演算を行って物理現象を支配している関数方程式を解く（ステップＳ１０６）。そして終了条件を満たすか否かを判断し（ステップＳ１０７）、例えば、上記非特許文献２に開示されているように、物理現象の終了時間に達した場合には処理をステップＳ１０８に進め、関数方程式を解いた結果を出力装置２０４に出力したり、ファイルとして外部記憶装置２０５に出力したりする（ステップＳ１０８）。そして、本処理の終了に係る処理を行うのであるが、その際には、格子への関数の登録消去、関数への格子の登録消去操作を行い、登録関数の情報５１５、登録格子の情報５１６を削除する（ステップＳ１０９）。
【００４９】
以上のような処理を行うことで、格子の生成／消滅操作を行うだけで、自動的に関数の生成・消滅操作を実現することが可能となる。
【００５０】
［第１の実施形態］
本実施形態では、図１のフローチャートに従った処理をより具体的なものにするために、その一例として、２０００年ISO、ANSIの規格に準拠したC++言語の用語を用いて実現する。なお、以下説明する本実施形態に係る処理は、このような言語で実現することに限定するものではなく、その他の言語でもって実現することもできる。
【００５１】
以下の説明では格子は格子クラスを、関数は関数クラスを作るものとし、格子情報への処理プログラム群５０１内のプログラムは、プログラム５０７を除いて格子クラスのメンバ関数として実装する。図５における関数情報への処理プログラム群５０２内のプログラムは、プログラム５１１を除いて関数クラスのメンバ関数として実装する。格子の情報５１３内の情報は格子クラスのメンバ変数として保存する。関数の情報５１４内の情報は関数クラスのメンバ変数として保存する。
【００５２】
図６は、本実施形態に係るステップＳ１０４で用いるプログラム、及びデータの構成例を示す図である。
【００５３】
登録関数の情報６１０は関数クラスへのポインタとして実装する。登録格子の情報６１１は格子クラスへのポインタとして実装する。関数の生成・消滅手法の情報６１２は関数オブジェクトへのポインタとして実装する。この関数オブジェクトは関数の生成・消滅操作プログラム５０８で呼ばれる。詳しくは後述する。
【００５４】
よって本実施形態では上記ステップＳ１０４における処理を以下のようにして行う。
【００５５】
格子の登録プログラム６０５を実行すると、関数が定義されている格子クラスのオブジェクトへのポインタを引数として指定する。このポインタは登録格子の情報６１１として保存される。続いて登録格子の操作を呼び出すプログラム６０６を実行して、関数の登録プログラム６０４を呼び出し、実行する。これは登録格子の情報６１１である格子クラスへのポインタから格子クラスのメンバ関数である関数の登録プログラム６０４を呼び出すことで実装する。この時、関数の登録プログラム６０４の引数としてプログラム６０４を呼び出している関数クラスのオブジェクト自身へのポインタを指定する。
【００５６】
関数の登録プログラム６０４では引数である関数クラスのオブジェクトへのポインタを登録関数の情報６１０として保存する。
【００５７】
次に、関数の生成・消滅手法の記憶プログラム６０７を実行する。関数の生成・消滅手法の記憶プログラム６０７の引数として関数オブジェクトへのポインタを指定し、このポインタを関数の生成・消滅手法の情報６１２として保存する。
【００５８】
図７は、本実施形態に係るステップＳ１０５で用いるプログラム、及びデータの構成例を示す図である。
【００５９】
情報７１１は関数オブジェクトへのポインタである。関数オブジェクトは本実施形態では格子上の関数の生成・消滅が行われる位置を引数とし、関数の生成時にはその位置の新たな関数の値を返し、関数の消滅時には何もしないという関数オブジェクトを用いる。
【００６０】
ステップＳ１０５では、格子生成／消滅の必要性を判断すると、格子の生成／消滅プログラム７０４を実行する。格子の生成／消滅プログラム７０４では、引数として格子生成／消滅が行われる位置を指定する。
【００６１】
格子の生成／消滅プログラム７０４では、指定された位置の格子を生成／消滅し、格子の情報７０７に保存することで実装する。続いて登録関数の操作を呼び出すプログラム７０５を用いて関数の生成／消滅プログラム７０６を呼び出し実行する。これは登録関数の情報７０９である関数クラスへのポインタから関数クラスのメンバ関数である関数の生成／消滅プログラム７０６を呼び出すことで実装する。
【００６２】
関数の生成／消滅プログラム７０６では、引数として関数生成／消滅の位置を指定する。関数の生成／消滅プログラム７０６では関数の生成／消滅手法の情報７１１である関数オブジェクトへのポインタから関数オブジェクトを呼び出し、関数生成／消滅の位置を引数として渡す。関数の生成時には関数オブジェクトは関数の値を返すので、返された関数の値を関数の情報７０８として保存し、関数の消滅時には関数オブジェクトは何もしないので、引数で与えられた関数の位置の値を消去するというように関数の情報７０８を変更することで実装する。
【００６３】
図８は、本実施形態に係るステップＳ１０９で用いるプログラム、及びデータの構成例を示す図である。
【００６４】
ステップＳ１０９では、まず登録格子の情報８１０を用いて関数の登録消去プログラム８０４を呼び出し実行する。これは登録格子の情報８１０である格子クラスへのポインタから格子クラスのメンバ関数である関数の登録消去プログラム８０４を呼び出すことで実装する。
【００６５】
関数の登録消去プログラム８０４では登録関数の情報８０９にＮＵＬＬを代入することで実装する。続いて格子の登録消去プログラム８０５を実行する。格子の登録消去プログラム８０５では登録格子の情報８１０にＮＵＬＬを代入することで実装する。
【００６６】
以上のように実装することで本実施形態に係る目的を達成することができる。とりわけ格子の生成／消滅操作及び関数の生成／消滅操作は解くべき関数方程式に依存した実装になる。そのため引数や返り値は本実施形態と一致するとは限らない。従って本実施形態で用いた関数オブジェクトの引数と返り値も本実施形態と一致するとは限らない。また関数及び格子の登録消去操作は本実施形態で示した終了工程で行う他に、その他の工程で実施することも可能である。その場合には当然ながらこの格子への生成／消滅操作と関数への生成／消滅操作は連動しない。
【００６７】
［第２の実施形態］
登録関数の情報５１５として関数クラスへのポインタのリストを用いることで格子上に複数の関数が定義された場合でも、情報５１５として関数クラスのオブジェクトへのポインタを複数個持つことが可能となる。
【００６８】
その際に関数のメンバ変数として、登録関数の情報５１５のリストのイタレータであり、それも登録関数自身を指すイタレータを持つことで、関数の登録消去プログラム５０６の実行の際に、イタレータを用いて、消去すべき関数の特定が可能になるため、この操作が楽になる。
【００６９】
また情報５１５として複数の関数クラスのポインタを持つことで、格子上に定義される関数が異なった種類の関数クラスのオブジェクトでも管理することが可能である。
【００７０】
加えて、上記ステップＳ１０４、Ｓ１０９ではプログラム５０５、５０６の格子の登録及び登録消去操作を関数から呼び出しを行ったが、これはその限りではなく格子から呼び出すような実装でも可能である。
【００７１】
以上のことから、格子の生成／消滅工程と関数の生成・消滅工程において、格子情報への処理操作群の格子の生成・消滅操作を行うだけで、格子の情報に保存された登録関数の情報を参照し、登録関数の関数の生成・消滅操作を、自動的に、登録関数の情報に保存された関数の生成・消滅手法の情報を用いて行うことができ、格子の生成・消滅工程と関数の生成・消滅工程を統合することができる。
【００７２】
つまり、従来は技術者自身が関数の生成・消滅工程について管理をしなければならなかったのが、関数を格子に登録し、関数の生成・消滅手法を指定しておけば、格子の生成・消滅操作を行うだけで、自動的に関数の生成・消滅操作を行うことができる。
【００７３】
加えて関数の生成・消滅操作によって関数の情報を管理する際に必要なメモリ操作も自動的に行うことができる。
【００７４】
また関数が適用される関数方程式は従来技術で紹介したような物理現象の解析の分野だけでなく、一般的にｎ次元空間で定義される関数方程式の数値計算でも行うことができる。
【００７５】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００７６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７９】
【図１】物理現象解析処理のフローチャートである。
【図２】コンピュータのハードウェア構成を示すブロック図である。
【図３】従来の物理現象解析処理のフローチャートである。
【図４】プログラム、及びデータの構成例を示す図である。
【図５】物理現象解析処理を行うためのプログラム、及びデータの構成例を示す図である。
【図６】ステップＳ１０４で用いるプログラム、及びデータの構成例を示す図である。
【図７】ステップＳ１０５で用いるプログラム、及びデータの構成例を示す図である。
【図８】ステップＳ１０９で用いるプログラム、及びデータの構成例を示す図である。
【図１】
2006323781.tif 000003
【図２】
2006323781.tif 000004
【図３】
2006323781.tif 000005
【図４】
2006323781.tif 000006
【図５】
2006323781.tif 000007
【図６】
2006323781.tif 000008
【図７】
2006323781.tif 000009
【図８】
2006323781.tif 000010