(57)【要約】【課題】  ｎ次元におけるベクトル場の時間発展をシミュレーションする際にその計算時間を短縮する。【解決手段】  ベクトル場のシミュレーションにおいて、その時間発展を支配する方程式が各ベクトルの回転のみを行うものである場合、各計算ステップにおいてあらかじめ与えられた回転角度だけ常に回転するような時間ステップを自動的に計算することでシミュレーションに要する時間の短縮を図る。【選択図】  図１
2006048490.tif 000002
【特許請求の範囲】
【請求項１】
ｎ次元におけるベクトル場の時間発展をシミュレーションする際にその計算時間を短縮する方法であって、シミュレーションの際に用いる基礎方程式がそのベクトルの位置・大きさを変えずに方向のみを変えるものであるときに、１ステップの計算で、決められた一定の最大角度θだけ常にベクトルの方向を変化させるように１ステップの時間を自動的に選択することにより、計算時間の短縮を実現する計算時間短縮方法。
【請求項２】
請求項１の計算時間短縮方法を用いたデータ処理プログラムを記憶した記憶媒体。
【請求項３】
請求項１の計算時間短縮方法を用いたデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル場のシミュレーション技術に関するもので、特にその計算時間の短縮方法に関わるものである。
【背景技術】
【０００２】
一般的にある物理量の時間発展を記述する基礎方程式
【０００３】
【数１】
2006048490.tif 000003
（数式１）
を計算機上で実装する場合には、その方程式の時間微分を差分化する。その差分化方法にはいくつかの種類があるが、最も一般的かつ簡単な方法は前進差分法である。この方法は、時刻nまで計算が進み、次に時刻n+1の計算をしようとする際、時間微分項を以下のように差分化する方法である。ここで、φは一般的な物理量である。
【０００４】
【数２】
2006048490.tif 000004
（数式２）
（数式２）を（数式１）式に代入し、時間微分以外の項を全て時刻nで評価するものとすると、
φn+1＝φn＋Δtf（φn）
（数式３）
が得られる。この式の右辺より、Δtの値を指定すると、既知量φnから未知量φn+1が計算できる。
【特許文献１】特開平５−１５９０４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、（数式３）にて指定するΔｔの大きさは、大きすぎると数値的に誤差が発生し、小さすぎると計算時間が長くかかる。よって、一般的には数値的な誤差が発生しない範囲で時間ステップを大きくとることが求められる。しかし、適切な時間ステップの大きさは一般的に各時刻によって異なるため、ある一定の時間ステップを用いて計算を行う際に選択すべきΔtconstは、計算をｍステップ行うときの適切な時間ステップをｔｍとしたとき、
Δｔconst＝min｛ｔ1，ｔ2，ｔ3，…，ｔm｝
（数式４）
でなければならない。よって、一般的に一定の時間ステップを用いて計算を行う場合はΔtconstよりも小さい値を予想して時間ステップを設定する必要があり、また大きな時間ステップを取ることができる時刻に際しても適切な時間ステップよりもはるかに小さい時間ステップを用いて計算を行わなければならず、非常に効率が悪い。
【０００６】
よって、計算を高速化させるためには各時刻において適切な時間ステップを計算する必要があり、その時間ステップΔtは、その問題に特有の時間ステップに関する拘束条件が存在する場合は、その条件から逆算できる。
【０００７】
本発明は、計算体系中のベクトルがその大きさや位置を変えず、その方向のみを変えて回転していくような体系を計算するときの、最も効率的な時間ステップを自動的に計算していく手段を提供するものである。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本出願に係る発明は、計算体系（ベクトル場）の各ベクトルをその位置で大きさを変えずに方向のみを変化させて回転させるような基礎方程式を時間について前進差分化して得られる差分方程式ｆと、数値的な誤差を発生させない1ステップ当たりの最大回転角度θと仮の時間ステップΔt0が用意されたとき、始めに時刻nにおける全てのベクトルに対し時間ステップΔt0で差分方程式ｆを適用させて各ベクトルを仮に回転させた後、各ベクトルの中で変化量が最大のものの角度θmaxを計算し、真の時間ステップΔtを
【０００９】
【数３】
2006048490.tif 000005
（数式５）
として計算し、この時間ステップΔtを用いて再び時刻nにおける全てのベクトルに対し差分方程式ｆを適用させて各ベクトルを回転させることを特徴とした計算時間短縮方法を提案する。
【発明の効果】
【００１０】
本発明によれば、1ステップ中のベクトル回転の計算処理は増えるが、その分時間ステップは数倍大きくすることが出来るため、結果的に計算時間を短縮させることができる。また、1ステップ当たりの計算がベクトル回転計算とそれ以外の計算ルーチンにより構成されるとき、1ステップ当たりの計算時間に対して、ベクトル回転計算以外の計算ルーチンの占める割合が増えるほど、計算時間の短縮効果が大きくなる（図４・図５参照）。
【発明を実施するための最良の形態】
【００１１】
＜実施形態１＞
本実施例では、計算体系として3次元の磁性体を用い、ベクトル場としては磁性体内に存在する磁化ベクトル
【００１２】
【数４】
2006048490.tif 000006
を用いる。計算体系は、3次元の単一構造格子で空間的に離散化されている。また、基礎方程式としては磁化の時間発展を記述するLLG（Landau-Lifshitz-Gilbert）方程式を用いる。LLG方程式は以下のように表される。
【００１３】
【数５】
2006048490.tif 000007
（数式６）
ここで、αは減衰係数、γは電子の磁気角運動量比、
【００１４】
【数６】
2006048490.tif 000008
は実効磁界である。実効磁界は以下の式により計算される。
【００１５】
【数７】
2006048490.tif 000009
（数式７）
ここで、Aは交換スティフネス係数、Kは磁気異方性定数、
【００１６】
【数８】
2006048490.tif 000010
は軸方向単位ベクトル、
【００１７】
【数９】
2006048490.tif 000011
は外部磁場、
【００１８】
【数１０】
2006048490.tif 000012
は反磁界である。さらに、反磁界は以下の式により計算される。
【００１９】
【数１１】
2006048490.tif 000013
（数式８）
【００２０】
【数１２】
2006048490.tif 000014
（数式９）
ここで、μ0は真空の透磁率で、φは磁気ポテンシャルである。
【００２１】
実際の計算では、この式の時間微分項を前進差分化して得られた差分方程式
【００２２】
【数１３】
2006048490.tif 000015
（数式１０）
を用いる。
【００２３】
以上より、通常のLLG方程式計算は（数式９）→（数式８）→（数式７）→（数式１０）の順に計算を行う（詳細は図２のフローチャートを参照）。
【００２４】
本発明では、あらかじめ1ステップ当たりの最大回転角度θと仮の時間ステップΔt0が用意されたとき、時刻nにおける全ての磁化ベクトル
【００２５】
【数１４】
2006048490.tif 000016
に対し時間ステップΔt0で差分方程式ｆを適用させて各ベクトルを仮に回転させる。その中で、時刻nの状態と比較して最も回転量が大きいベクトル
【００２６】
【数１５】
2006048490.tif 000017
に着目し、その角度を計算する。ここで、時刻nの
【００２７】
【数１６】
2006048490.tif 000018
を
【００２８】
【数１７】
2006048490.tif 000019
、仮に回転させた後の
【００２９】
【数１８】
2006048490.tif 000020
を
【００３０】
【数１９】
2006048490.tif 000021
とすると、通常回転量は微小であるから、
【００３１】
【数２０】
2006048490.tif 000022
（数式１１）
と計算できる（図３参照）。これより、真の時間ステップΔｔを（数式５）より計算し、このΔｔを用いて再び時刻nにおける全ての磁化ベクトル
【００３２】
【数２１】
2006048490.tif 000023
に対して（数式１０）を作用させる。これで１ステップの計算が終了する。この本発明による計算を行う時のフローチャートを図１に示す。
【図面の簡単な説明】
【００３３】
【図１】本発明における磁化の時間発展計算の流れ。
【図２】従来の磁化の時間発展計算の流れ。
【図３】ベクトルの回転角度の計算。
【図４】ベクトル回転ルーチンとそれ以外の計算ルーチンの時間がほぼ等しいときの総計算時間比較。
【図５】ベクトル回転ルーチンよりもそれ以外の計算ルーチンの時間が長いときの総計算時間比較。
【図１】
2006048490.tif 000024
【図２】
2006048490.tif 000025
【図３】
2006048490.tif 000026
【図４】
2006048490.tif 000027
【図５】
2006048490.tif 000028