(57)【要約】【課題】マイクロマグネティックシミュレーションの計算時間を短縮する場合に、不正確なシミュレーション結果を検出する。【解決手段】情報処理装置１は、磁性体をメッシュ分割して得られる各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとに、各要素の静磁界ベクトルデータを、磁化ベクトルデータを用いて近似する。情報処理装置１は、要素ごとに、特定の時刻の静磁界ベクトルデータを用いて次の時刻の磁化ベクトルデータを算出する。情報処理装置１は、要素ごとに、特定の時刻と次の時刻との磁化ベクトルデータの変化量を算出する。情報処理装置１は、要素ごとに算出された、それぞれの磁化ベクトルデータの変化量に基づいて、シミュレーションを中止し、中止の旨を出力する。【選択図】図１
2019219246.tif 000002
【特許請求の範囲】
【請求項１】
磁性体をメッシュ分割して得られる各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとに、各要素の静磁界ベクトルデータを、磁化ベクトルデータを用いて近似し、
要素ごとに、特定の時刻の前記静磁界ベクトルデータを用いて次の時刻の磁化ベクトルデータを算出し、
要素ごとに、特定の時刻と次の時刻との前記磁化ベクトルデータの変化量を算出し、
要素ごとに算出された、それぞれの前記磁化ベクトルデータの変化量に基づいて、前記シミュレーションを中止し、中止の旨を出力する
処理をコンピュータに実行させることを特徴とする磁界シミュレーションプログラム。
【請求項２】
該出力する処理は、要素ごとに算出された、それぞれの前記磁化ベクトルデータの変化量の最大値が所定量を超える場合に、前記シミュレーションを中止し、中止の旨を出力する
ことを特徴とする請求項１に記載の磁界シミュレーションプログラム。
【請求項３】
該出力する処理は、要素ごとに算出された、それぞれの前記磁化ベクトルデータの変化量の平均値が所定量を超える場合に、前記シミュレーションを中止し、中止の旨を出力する
ことを特徴とする請求項１に記載の磁界シミュレーションプログラム。
【請求項４】
磁性体をメッシュ分割して得られる各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとに、各要素の静磁界ベクトルデータを、磁化ベクトルデータを用いて近似する磁界ベクトル計算部と、
要素ごとに、特定の時刻の前記静磁界ベクトルデータを用いて次の時刻の磁化ベクトルデータを算出する磁化計算部と、
要素ごとに、特定の時刻と次の時刻との前記磁化ベクトルデータの変化量を算出し変化量計算部と、
要素ごとに算出された、それぞれの前記磁化ベクトルデータの変化量に基づいて、前記シミュレーションを中止し、中止の旨を出力する出力部と、
を有することを特徴とする情報処理装置。
【請求項５】
磁性体をメッシュ分割して得られる各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとに、各要素の静磁界ベクトルデータを、磁化ベクトルデータを用いて近似し、
要素ごとに、特定の時刻の前記静磁界ベクトルデータを用いて次の時刻の磁化ベクトルデータを算出し、
要素ごとに、特定の時刻と次の時刻との前記磁化ベクトルデータの変化量を算出し、
要素ごとに算出された、それぞれの前記磁化ベクトルデータの変化量に基づいて、前記シミュレーションを中止し、中止の旨を出力する
処理をコンピュータが実行することを特徴とする磁界シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁界シミュレーションプログラム、情報処理装置および磁界シミュレーション方法に関する。
【背景技術】
【０００２】
磁性体の磁化挙動を解析する技術として、磁性体を小さな磁石の集合としてモデル化し、磁区状態を数値シミュレーションするマイクロマグネティックシミュレーションが知られている。マイクロマグネティックシミュレーションは、ＨＤＤ（Hard  Disk  Drive）の磁気ヘッドやＭＲＡＭ（Magnetoresistive  Random  Access  Memory）等のミクロな磁性デバイス、および永久磁石や電磁鋼板といった磁性材料の磁区状態を解析するために用いられる。
【０００３】
図１１は、マイクロ磁化による磁性体のモデル化を説明するための図である。ここで、マイクロ磁化とは、個々の小さな磁石のことである。図１１に示すように、マイクロマグネティックシミュレーションでは、磁性体を微小な要素（メッシュ）に分割し、要素ごとにマイクロ磁化９１を配置し、各マイクロ磁化９１の振る舞いを磁化ベクトル９２として計算する。
【０００４】
マイクロマグネティックシミュレーションでは、各マイクロ磁化の運動を支配する方程式（支配方程式）は、式（１）であり、ＬＬＧ（Landau-Lifshitz-Gilbert）方程式と呼ばれる。
【数１】
2019219246.tif 000003
【０００５】
ここで、「→」が上に付されたｍ、γ、αおよび「→」が上に付された有効磁界ベクトルＨeffは、それぞれ磁化ベクトル、ジャイロ磁気定数、ダンピング定数および有効磁界ベクトルである。「→」はベクトルであることを示す。以降、ベクトルを示す「→」は式中でのみ使用し、他の個所では省略する。「×」は外積を示す。
【０００６】
有効磁界ベクトルＨeffは、式（２）のように、異方向エネルギーＥani、交換結合エネルギーＥexc、ゼーマンエネルギーＥappおよび静磁エネルギーＥdの合成である。ここで、Ｍｓは、飽和磁化である。
【数２】
2019219246.tif 000004
【０００７】
異方向エネルギーＥani、交換結合エネルギーＥexc、ゼーマンエネルギーＥappおよび静磁エネルギーＥdは、それぞれ式（３）、式（４）、式（５）および式（６）で計算される。
【数３】
2019219246.tif 000005
【数４】
2019219246.tif 000006
【数５】
2019219246.tif 000007
【数６】
2019219246.tif 000008
【０００８】
ここで、「→」が上に付されたｋ、Ｋｕ、Ａ、Ｍｓおよび「→」が上に付されたＨappは、それぞれ磁気異方性ベクトル、磁気異方性定数、交換結合定数、飽和磁化および外部磁界ベクトルである。
【０００９】
「→」が上に付されたHｄは、静磁界ベクトルであり、式（７）および式（８）で計算される。なお、φは、静磁ポテンシャルである。
【数７】
2019219246.tif 000009
【数８】
2019219246.tif 000010
【００１０】
マイクロマグネティックスシミュレーションである磁界シミュレーションを情報処理装置が実施するフローチャートの参考例を、図１２を参照して説明する。図１２は、磁界シミュレーションのフローチャートの参考例を示す図である。図１２に示すように、情報処理装置は、まず、磁界シミュレーションに必要な計算データを生成する（ステップＳ９１）。例えば、情報処理装置は、対象の磁性体からメッシュを生成する。情報処理装置は、メッシュごとの、静磁ポテンシャルの領域Ｐを生成する。情報処理装置は、メッシュごとの、磁化ベクトルを配置する領域Ｍを生成する。
【００１１】
そして、情報処理装置は、磁界シミュレーションに必要な各種パラメータを設定する（ステップＳ９２）。例えば、情報処理装置は、メッシュごとの、静磁ポテンシャルの初期値を設定する。情報処理装置は、メッシュごとの、磁化ベクトルの初期値を設定する。情報処理装置は、最大の時間ステップｋｍａｘを設定する。
【００１２】
そして、情報処理装置は、時間ステップごとに所定の時間ｋｍａｘまで、ステップＳ９３とステップＳ９７で挟まれた処理を全てのメッシュの磁化ベクトルｍ（ｉ）に対して繰り返し実行する。すなわち、情報処理装置は、メッシュｉごとに、式（８）を用いて、静磁ポテンシャルφを更新する（ステップＳ９４）。
【００１３】
情報処理装置は、メッシュｉごとに、磁界ベクトルを更新する（ステップＳ９５）。例えば、情報処理装置は、式（７）および式（８）を用いて、静磁ポテンシャルφの勾配計算により静磁界ベクトルＨｄを更新する。また、情報処理装置は、外部磁界ベクトルＨａｐｐ、磁気異方性ベクトルｋおよび交換結合磁界ベクトル（∇ｍ）２を更新する。
【００１４】
そして、情報処理装置は、メッシュｉごとに、磁化ベクトルｍ（ｉ）を更新する（ステップＳ９６）。例えば、情報処理装置は、式（２）〜式（６）を用いて、式（１）により、磁化ベクトルｍ（ｉ）を更新する（ステップＳ９６）。
【００１５】
そして、所定の時間分の繰り返しが完了すると、情報処理装置は、磁化ベクトルのシミュレーション結果を出力する。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平１０−１２４４７９号公報
【特許文献２】特開平１０−３２５８５８号公報
【特許文献３】特開２００８−２７５４０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
ところで、マイクロマグネティックスシミュレーションでは、膨大な計算時間を要し、その大部分を静磁界ベクトルＨｄの計算（式（７））に用いられる静磁ポテンシャルφの計算（式（８））が占めている。そこで、静磁界ベクトルＨｄの計算は、静磁ポテンシャルφの計算を実施しないで、式（９）により実施することもできる。なお、Ｎ、μ０は、反磁界係数、真空の透磁率を表す。
【数９】
2019219246.tif 000011
【００１８】
静磁界ベクトルＨｄが式（９）により実施されると、シミュレーションの計算が不正確になる場合があるという問題がある。すなわち、静磁界ベクトルＨｄが式（９）により実施されることで、静磁ポテンシャルφの計算時間を省略し、シミュレーションの計算時間を短縮することができる。しかしながら、静磁界ベクトルＨｄの計算は、近似のため、場合によっては、シミュレーションの計算が破綻し、不正確なシミュレーション結果となることがある。
【００１９】
本発明は、１つの側面では、マイクロマグネティックシミュレーションの計算時間を短縮する場合に、不正確なシミュレーション結果を検出することを目的とする。
【課題を解決するための手段】
【００２０】
本願の開示する磁界シミュレーションプログラムは、１つの態様において、磁性体をメッシュ分割して得られる各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとの各要素の静磁界ベクトルデータを、磁化ベクトルデータを用いて近似し、要素ごとに、特定の時刻の前記静磁界ベクトルデータを用いて次の時刻の磁化ベクトルデータを算出し、要素ごとに、特定の時刻と次の時刻との前記磁化ベクトルデータの変化量を算出し、要素ごとに算出された、前記磁化ベクトルデータの変化量に基づいて、前記シミュレーションを中止し、中止の旨を出力する、処理をコンピュータに実行させる。
【発明の効果】
【００２１】
１実施態様によれば、マイクロマグネティックシミュレーションの計算時間を短縮する場合に、不正確なシミュレーション結果を検出することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施例１に係る情報処理装置の構成を示す機能ブロック図である。
【図２】図２は、データの一例を示す図である。
【図３Ａ】図３Ａは、磁化変化量の特徴の一例を示す図（１）である。
【図３Ｂ】図３Ｂは、磁化変化量の特徴の一例を示す図（２）である。
【図４】図４は、実施例１に係る磁界シミュレーションのフローチャートの一例を示す図である。
【図５】図５は、実施例１に係る磁化変化量算出処理のフローチャートの一例を示す図である。
【図６】図６は、実施例１を適用する磁性体モデルの一例を示す図である。
【図７】図７は、実施例１に係る結果データの一例を示す図である。
【図８】図８は、実施例２に係る磁界シミュレーションのフローチャートの一例を示す図である。
【図９】図９は、実施例２に係る磁化変化量算出処理のフローチャートの一例を示す図である。
【図１０】図１０は、磁界シミュレーションプログラムを実行するコンピュータの一例を示す図である。
【図１１】図１１は、マイクロ磁化による磁性体のモデル化を説明するための図である。
【図１２】図１２は、磁界シミュレーションのフローチャートの参考例を示す図である。
【発明を実施するための形態】
【００２３】
以下に、本願の開示する磁界シミュレーションプログラム、情報処理装置および磁界シミュレーション方法の実施例を図面に基づいて詳細に説明する。なお、情報処理装置は、マイクロマグネティックスシミュレーションを行う装置であり、磁化ベクトルを一定の時間ステップ毎に所定の時間分計算して表示する。また、本発明は、実施例により限定されるものではなく、磁界シミュレーションに広く適用可能である。
【実施例１】
【００２４】
［情報処理装置の構成］
図１は、実施例に係る情報処理装置の構成を示す機能ブロック図である。図１に示すように、情報処理装置１は、入力部２と、表示部３と、記憶部４と、制御部５とを有する。
【００２５】
入力部２は、解析を行うユーザが各種の情報や指示を情報処理装置１に入力するための入力装置である。例えば、入力部２は、キーボード、マウス、タッチパネルに対応する。表示部３は、各種の情報を表示する表示装置である。例えば、表示部３は、ディスプレイ、タッチパネルに対応する。
【００２６】
記憶部４は、例えば、ＲＡＭ、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。記憶部４は、メッシュデータ４１と、計算条件データ４２と、磁化ベクトルデータ４３と、磁界ベクトルデータ４４とを記憶する。
【００２７】
メッシュデータ４１は、シミュレーション対象となる磁性体の領域を有限要素法や有限差分法により有限個に分割された複数の要素からなるデータである。要素とは、シミュレーション対象となる領域を分割した最小単位の領域であり、複数の節点によって構成される。
【００２８】
計算条件データ４２は、磁界シミュレーションの計算条件に関するデータである。計算条件データ４２には、例えば、有限要素法や有限差分法で扱うメッシュの個々の要素の数や、時間ステップの値が含まれる。
【００２９】
磁化ベクトルデータ４３は、磁界シミュ―レーションすなわちマイクロマグネティックシミュレーションの結果を示す磁化ベクトルのデータである。磁化ベクトルデータ４３には、時間ステップ毎の各要素の磁化ベクトルの計算値が所定の時間分含まれる。
【００３０】
磁界ベクトルデータ４４は、磁界シミュ―レーションすなわちマイクロマグネティックシミュレーションの結果を計算する際に用いられる静磁界ベクトルのデータである。磁界ベクトルデータ４４には、時間ステップ毎の各要素の静磁界ベクトルなどの磁界ベクトルの計算値が所定の時間分含まれる。
【００３１】
制御部５は、ＣＰＵ（Central  Processing  Unit）等の電子回路に対応する。そして、制御部５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部５は、磁界シミュレーション処理を実行する。磁界シミュレーション処理は、記憶部４からメッシュデータ４１および計算条件データ４２を読み込んで計算を開始する。そして、磁界シミュレーション処理は、時間ごとに各メッシュの磁化ベクトルを算出するときに、算出結果のチェックを行い、計算が破綻する前に、処理を中止し、中止をユーザに通知する。
【００３２】
制御部５は、前処理部５１と、磁界計算部５２と、磁化計算部５３と、磁化変化量判定部５４と、異常出力部５５とを有する。なお、磁界計算部５２は、磁界ベクトル計算部の一例である。磁化計算部５３は、磁化計算部の一例である。磁化変化量判定部５４は、変化量計算部の一例である。異常出力部５５は、出力部の一例である。
【００３３】
前処理部５１は、磁界シミュレーション処理の前に、前処理を行う。例えば、前処理部５１は、メッシュデータ４１を生成する。また、前処理部５１は、メッシュデータ４１の各要素に配置する磁化ベクトルを生成し、初期値を設定する。また、前処理部５１は、磁界シミュレーション処理に必要な各種パラメータを設定する。
【００３４】
磁界計算部５２は、各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとの各要素の磁界ベクトルを計算する。
【００３５】
例えば、磁界計算部５２は、式（９）を用いて、静磁界ベクトルＨｄを計算する。すなわち、磁界計算部５２は、静磁ポテンシャルの計算を実施しないで、静磁界ベクトルを近似する。なお、式（９）の中のＮ、μ０は、反磁界係数、真空の透磁率である。式（９）の中のＭｓは、飽和磁化である。これにより、磁界計算部５２は、式（８）の静磁ポテンシャルφの計算時間を省略し、静磁界ベクトルＨｄを近似することで、結果的に磁界シミュレーションの計算時間を短縮することが可能となる。
【００３６】
加えて、磁界計算部５２は、外部磁界ベクトルＨａｐｐを計算する。磁界計算部５２は、外部磁界ベクトルＨａｐｐを計算する。磁界計算部５２は、磁気異方性ベクトルｋを計算する。磁界計算部５２は、交換結合磁界ベクトル（∇ｍ）２を計算する。
【００３７】
また、磁界計算部５２は、各種磁界ベクトルの計算結果を磁界ベクトルデータ４４として記憶部４に格納する。
【００３８】
磁化計算部５３は、要素ごとに、特定の時刻の磁界ベクトルを用いて次の時刻の磁化ベクトルを計算する。例えば、磁化計算部５３は、磁界計算部５２によって計算された各種ベクトルを式（３）〜式（６）に代入して、各種エネルギーを計算する。そして、磁化計算部５３は、式（２）により有効磁界ベクトルＨｅｆｆを算出する。そして、磁化計算部５３は、有効磁界ベクトルＨｅｆｆを式（１）に代入して、次の時刻の磁化ベクトルを計算する。
【００３９】
また、磁化計算部５３は、計算結果を磁化ベクトルデータ４３として記憶部４に格納する。
【００４０】
磁化変化量判定部５４は、磁化ベクトルの変化量を判定する。例えば、磁化変化量判定部５４は、要素ごとに、特定の時刻と次の時刻との磁化ベクトルの変化量を算出する。なお、磁化ベクトルの変化量は、以降、「磁化の変化量」や「磁化変化量」と同義である。磁化変化量判定部５４は、要素ごとの各磁化の変化量の最大値を取得する。磁化変化量判定部５４は、取得した変化量の最大値が変化量の閾値より大きいか否かを判定する。
【００４１】
なお、変化量の閾値は、磁化シミュレーションの計算実行時に、作業者によって定義される。特定の時刻と次の時刻との時間刻みが大きいと、時間積分の回数が減るため、計算時間は短縮されるが、１時間ステップ当たりの磁化変化量は大きくなる。磁化シミュレーションでは、磁化の歳差運動（式（１）の右辺第１項）を取り扱う必要があり、磁化の変化量が大きい場合には解析の精度が著しく下がってしまう。そこで、作業者は、計算時間と計算精度のバランスを考え、磁化変化量の閾値および時間刻みを定義する必要がある。
【００４２】
ここで、特定の時刻と次の時刻との磁化ベクトルの変化量の算出方法について、説明する。特定の時刻ｋの要素ｉの磁化ベクトルをｍｉｋとする。次の時刻ｋ＋１の要素ｉの磁化ベクトルをｍｉｋ＋１とする。かかる場合に、磁化変化量判定部５４は、磁化ベクトルの変化量ｄｍｉｋを、式（１０）により算出する。
【数１０】
2019219246.tif 000012
【００４３】
そして、磁化変化量判定部５４は、算出された要素ごとの各磁化の変化量ｄｍｉｋの最大値ｄｍを取得する。磁化変化量判定部５４は、取得した変化量のｄｍが変化量の閾値ｄｍ＿ｍａｘより大きいか否かを判定する。
【００４４】
異常出力部５５は、異常を出力する。例えば、異常出力部５５は、磁化変化量判定部５４によって変化量の最大値が変化量の閾値より大きい場合には、磁界シミュレーションを中止し、中止の旨を通知する。これにより、異常出力部５５は、磁界シミュレーションの計算時間を短縮する場合に、不正確な磁界シミュレーション結果を検出することができる。この結果、ユーザは、不正確な磁界シミュレーション結果を受け取ることを回避できる。
【００４５】
［データの一例］
ここで、データの一例を、図２を参照して説明する。図２は、データの一例を示す図である。
【００４６】
図２左図は、メッシュデータ４１の一例である。図２左図に示すように、メッシュデータ４１には、磁性体をメッシュ分割して得られる各要素の位置が設定されている。なお、メッシュデータ４１は、前処理部５１によって生成される。
【００４７】
図２中図は、磁化ベクトルデータ４３の一例である。図２中図に示すように、磁化ベクトルデータ４３には、時間ステップ毎の各要素の磁化ベクトルが設定されている。なお、磁化ベクトルデータ４３は、磁化計算部５３によって更新される。
【００４８】
図２右図は、磁界ベクトルデータ４４の一例である。図２中図に示すように、磁界ベクトルデータ４４には、時間ステップ毎の各要素の磁界ベクトルが設定されている。なお、磁界ベクトルデータ４４は、磁界計算部５２によって更新される。
【００４９】
［磁化変化量の特徴の一例］
次に、磁化変化量の特徴の一例を、図３Ａおよび図３Ｂを参照して説明する。図３Ａおよび図３Ｂは、磁化変化量の特徴の一例を示す図である。なお、図３Ａおよび図３Ｂで示される磁化ベクトルは、磁化シミュレーションでは、規格化して取り扱われるため、大きさを１とする。
【００５０】
図３Ａに示すように、要素ｉについて、時刻ｋから時刻ｋ＋１に磁化ベクトルが更新されている。かかる場合には、磁化ベクトルが反転し、磁化変化量が「２」を示す。すなわち、磁化変化量が極端に大きくなってしまった場合である。かかる場合には、この要素ｉから磁化の振動が伝搬してしまうため、磁界シミュレーション処理は、不正確な結果となる。そこで、磁化シミュレーションの計算を中止する必要がある。つまり、異常出力部５５は、磁化変化量判定部５４によって各磁性要素の変化量の最大値が閾値より大きければ、磁化ベクトルデータの計算を中止し、中止の旨を通知する。
【００５１】
図３Ｂに示すように、要素ｉについて、時刻ｋから時刻ｋ＋１に磁化ベクトルが更新されている。かかる場合には、磁化ベクトルが９０度回転し、磁化変化量が「１」を示す。すなわち、磁化変化量が極端に大きくない場合である。かかる場合には、この要素ｉから磁化の振動が伝搬しないため、磁界シミュレーション処理は、正確な結果となる。
【００５２】
［磁界シミュレーションのフローチャート］
図４は、実施例１に係る磁界シミュレーションのフローチャートの一例を示す図である。
【００５３】
図４に示すように、前処理部５１は、計算データを生成する（ステップＳ１１）。例えば、前処理部５１は、磁界シミュレーションで用いられるメッシュデータ４１を生成する。前処理部５１は、磁界シミュレーションで用いられる磁化ベクトルデータ４３を生成する。
【００５４】
そして、前処理部５１は、各種パラメータを設定する（ステップＳ１２）。例えば、前処理部５１は、磁化ベクトルデータ４３の初期値を設定する。前処理部５１は、最大のステップ数であるｋｍａｘを設定する。前処理部５１は、変化量の閾値であるｄｍ＿ｍａｘを設定する。
【００５５】
そして、情報処理装置１は、時間ステップｋ毎に最大のステップ数ｋｍａｘまで、ステップＳ１３とＳ１７で挟まれた処理を繰り返し実行する。すなわち、磁界計算部５２は、要素ごとに、静磁界ベクトルを含む磁界ベクトルを更新する（ステップＳ１４）。そして、磁化計算部５３は、要素ごとに、磁化ベクトルを更新する（ステップＳ１５）。そして、磁化変化量判定部５４は、要素ごとに、時間ステップｋと前回の時間ステップｋ−１との磁化ベクトルの変化量（磁化変化量）を算出する。そして、磁化変化量判定部５４は、要素ごとの磁化変化量から、この時間ステップｋに対する磁化変化量ｄｍを算出する。かかる磁化変化量算出処理のフローチャートは、後述する。
【００５６】
そして、磁化変化量判定部５４は、磁化変化量ｄｍが変化量の閾値ｄｍ＿ｍａｘより大きいか否かを判定する（ステップＳ１６）。磁化変化量ｄｍが変化量の閾値ｄｍ＿ｍａｘ以下であると判定した場合（ステップＳ１６；Ｎｏ）、情報処理装置１は、時間ステップｋを１加算すべく、ステップＳ１３に移行する。情報処理装置１は、時間ステップｋが最大のステップ数ｋｍａｘに達すると、磁界シミュレーションを終了する。
【００５７】
一方、磁化変化量ｄｍが変化量の閾値ｄｍ＿ｍａｘより大きいと判定した場合（ステップＳ１６；Ｙｅｓ）、異常出力部５５は、磁界シミュレーションを中止し、中止の旨を通知する（ステップＳ１８）。
【００５８】
［磁化変化量算出処理のフローチャート］
図５は、実施例１に係る磁化変化量算出処理のフローチャートの一例を示す図である。なお、図５のフローチャートは、時刻ｋにおける要素ｉに対するループを行い、時刻ｋにおける磁化変化量ｄｍを算出する。
【００５９】
図５に示すように、磁化変化量算出処理は、磁化変化量ｄｍを初期化する（ステップＳ２１）。磁化変化量算出処理は、ステップＳ２２とステップＳ３０で挟まれる処理を要素ｉに対する処理として、ｉを変えながら全ての要素に対して行う。
【００６０】
各要素ｉに対して、磁界計算部５２は、静磁界ベクトルＨｄを更新する（ステップＳ２３）。例えば、磁界計算部５２は、式（９）より、静磁界ベクトルＨｄを更新する。そして、磁化計算部５３は、式（６）により、静磁界ベクトルＨｄを用いて静磁エネルギーＥｄを算出する。そして、磁化計算部５３は、静磁エネルギーＥｄを用いて、式（２）の第４項を算出する。
【００６１】
各要素ｉに対して、磁界計算部５２は、外部磁界ベクトルＨａｐｐを更新する（ステップＳ２４）。例えば、磁界計算部５２は、外部磁界ベクトルＨａｐｐを更新する。そして、磁化計算部５３は、式（５）により、外部磁界ベクトルＨａｐｐを用いて外部磁界エネルギーＥａｐｐを算出する。そして、磁化計算部５３は、外部磁界エネルギーＨａｐｐを用いて、式（２）の第３項を算出する。
【００６２】
各要素ｉに対して、磁界計算部５２は、異方性磁界ベクトルｋを更新する（ステップＳ２５）。例えば、磁界計算部５２は、磁気異方性ベクトルｋを更新する。そして、磁化計算部５３は、式（３）により、磁気異方性ベクトルｋを用いて異方性エネルギーＥａｎｉを算出する。そして、磁化計算部５３は、異方性エネルギーＥａｎｉを用いて、式（２）の第１項を算出する。
【００６３】
各要素ｉに対して、磁界計算部５２は、交換結合磁界ベクトル（∇ｍ）２を更新する（ステップＳ２６）。なお、ｍは、磁化ベクトルである。例えば、磁界計算部５２は、交換結合磁界ベクトル（∇ｍ）２を更新する。そして、磁化計算部５３は、式（４）により、交換結合磁界ベクトル（∇ｍ）２を用いて交換結合エネルギーＥｅｘｃを算出する。そして、磁化計算部５３は、交換結合エネルギーＥｅｘｃを用いて、式（２）の第２項を算出する。
【００６４】
各要素ｉに対して、磁化計算部５３は、磁化ベクトルｍｉを更新する（ステップＳ２７）。例えば、磁化計算部５３は、式（２）により有効磁界ベクトルＨｅｆｆを算出する。そして、磁化計算部５３は、計算した有効磁界ベクトルＨｅｆｆを用いて式（１）を算出し、磁化ベクトルｍｉを更新する。
【００６５】
各要素ｉに対して、磁化変化量判定部５４は、磁化変化量ｄｍｉを計算する（ステップＳ２８）。例えば、磁化変化量判定部５４は、時間ステップｋと前回の時間ステップｋ−１との磁化ベクトルｍｉの変化量（磁化変化量）ｄｍｉを算出する。
【００６６】
そして、磁化変化量判定部５４は、磁化変化量ｄｍを更新する（ステップＳ２９）。例えば、磁化変化量判定部５４は、各要素ｉに対する磁化変化量ｄｍｉのうち、最大の磁化変化量ｄｍｉを磁化変化量ｄｍとして更新する。すなわち、磁化変化量判定部５４は、時刻ｋにおける磁化変化量ｄｍを更新する。
【００６７】
そして、磁化変化量判定部５４は、全ての要素ｉに対して磁化変化量ｄｍｉを計算し、磁化変化量ｄｍを計算すると処理を終了する。
【００６８】
［磁性体モデルの一例］
図６は、実施例１を適用する磁性体モデルの一例を示す図である。図６左図には、磁性体モデルとして単層磁性薄膜モデルが表わされている。単層磁性薄膜モデルは、磁性体である薄膜が単層である場合のモデルである。図６右図には、磁性体モデルとして多層磁性薄膜モデルが表わされている。多層磁性薄膜モデルは、磁性体である薄膜が多層である場合のモデルである。
【００６９】
［結果データの一例］
このような磁性体モデルを用いて、実施例１に係る磁界シミュレーションを実行した結果について説明する。図７は、実施例１に係る結果データの一例を示す図である。
【００７０】
実施例１に係る磁界シミュレーションでは、磁化変化量の閾値ｄｍ＿ｍａｘが０．１に設定された。かかる場合には、情報処理装置１は、閾値ｄｍ＿ｍａｘを用いた磁化変化量の判定に失敗することなく、磁界シミュレーションの計算を正常に実行する。
【００７１】
図７では、実施例１に係る磁界シミュレーションを実行した場合と、従来の磁界シミュレーションを実行した場合との、総計算時間が示されている。従来の磁界シミュレーションとは、図１２で示した磁界シミュレーションのことをいう。すなわち、従来手法では、静磁界ベクトルＨｄの計算に、静磁ポテンシャルφの計算を実施した場合の磁界シミュレーション手法である。なお、図７では、実施例１に係る磁界シミュレーションを新手法といい、従来の磁界シミュレーションを従来手法というものとする。
【００７２】
図１２によると、磁性体モデルが単層磁性薄膜である場合には、新手法の総計算時間は、１５２秒であり、従来手法の総計算時間は、８０４２秒である。したがって、新手法は、従来手法より、総計算時間を約１／５０に短縮できた。また、磁性体モデルが複層磁性薄膜である場合には、新手法の総計算時間は、１６５秒であり、従来手法の総計算時間は、４６３３秒である。したがって、新手法は、従来手法より、総計算時間を約１／３０に短縮できた。
【００７３】
［実施例１の効果］
このようにして、実施例１では、情報処理装置１は、磁性体をメッシュ分割して得られる各要素の磁化ベクトルの状態をシミュレーションする際に、時刻ごとの各要素の静磁界ベクトルデータを、磁化ベクトルデータを用いて近似する。情報処理装置１は、要素ごとに、特定の時刻の静磁界ベクトルデータを用いて次の時刻の磁化ベクトルデータを算出する。情報処理装置１は、要素ごとに、特定の時刻と次の時刻との磁化ベクトルデータの変化量を算出する。情報処理装置１は、要素ごとに算出された、それぞれの磁化ベクトルデータの変化量に基づいて、シミュレーションを中止し、中止の旨を出力する。かかる構成によれば、情報処理装置１は、磁界シミュレーションの計算時間を短縮する場合に、不正確なシミュレーション結果を検出することができる。
【００７４】
また、情報処理装置１は、要素ごとに算出された、それぞれの磁化ベクトルデータの変化量の最大値が所定量を超える場合に、シミュレーションを中止し、中止の旨を出力する。かかる構成によれば、ユーザは、不正確な磁界シミュレーション結果を受け取ることを回避できる。
【実施例２】
【００７５】
ところで、実施例１では、磁化変化量判定部５４は、要素ごとの各磁化の変化量の最大値が変化量の閾値より大きい場合に、磁界シミュレーションを中止し、中止の旨を通知すると説明した。しかしながら、磁化変化量判定部５４は、これに限定されず、要素ごとの各磁化の変化量の平均値が変化量の閾値より大きい場合に、磁界シミュレーションを中止し、中止の旨を通知しても良い。特に、式（１）の計算に陽解法を用いる場合には、時間刻み間隔が所定の条件を満たさないと、数値が不安定となる。そして、磁界シミュレーションの計算が発散し、磁化変化量の平均値が大きくなる場合がある。かかる場合には、実施例２の磁化変化量の平均値による判定が有効である。
【００７６】
そこで、実施例２に係る磁化変化量判定部５４は、要素ごとの各磁化の変化量の平均値が変化量の閾値より大きい場合に、磁界シミュレーションを中止し、中止の旨を通知する場合を説明する。
【００７７】
［実施例２に係る情報処理装置の構成］
実施例２に係る情報処理装置１は、実施例１の図１に示す情報処理装置１と同一であるので、その重複する構成および動作の説明については省略する。
【００７８】
［磁界シミュレーションのフローチャート］
図８は、実施例２に係る磁界シミュレーションのフローチャートの一例を示す図である。  
【００７９】
図８に示すように、前処理部５１は、計算データを生成する（ステップＳ４１）。例えば、前処理部５１は、磁界シミュレーションで用いられるメッシュデータ４１を生成する。前処理部５１は、磁界シミュレーションで用いられる磁化ベクトルデータ４３を生成する。
【００８０】
そして、前処理部５１は、各種パラメータを設定する（ステップＳ４２）。例えば、前処理部５１は、磁化ベクトルデータ４３の初期値を設定する。前処理部５１は、最大のステップ数であるｋｍａｘを設定する。前処理部５１は、変化量の閾値であるｄｍ＿ｍａｘを設定する。
【００８１】
そして、情報処理装置１は、時間ステップｋ毎に最大のステップ数ｋｍａｘまで、ステップＳ４３とＳ４７で挟まれた処理を繰り返し実行する。すなわち、磁界計算部５２は、要素ごとに、静磁界ベクトルを含む磁界ベクトルを更新する（ステップＳ４４）。そして、磁化計算部５３は、要素ごとに、磁化ベクトルを更新する（ステップＳ４５）。そして、磁化変化量判定部５４は、要素ごとに、時間ステップｋと前回の時間ステップｋ−１との磁化ベクトルの変化量（磁化変化量）を算出する。そして、磁化変化量判定部５４は、要素ごとの磁化変化量から、この時間ステップｋに対する磁化変化量の合計ｄｍ＿ｔｏｔａｌを算出する。かかる磁化変化量算出処理のフローチャートは、後述する。
【００８２】
そして、磁化変化量判定部５４は、磁化変化量の平均値（ｄｍ＿ｔｏｔａｌ／ｉｍａｘ）が変化量の閾値ｄｍ＿ｍａｘより大きいか否かを判定する（ステップＳ４６）。なお、ｄｍ＿ｔｏｔａｌは、各要素に対する磁化変化量の合計であり、ｉｍａｘは、要素の最大数である。磁化変化量の平均値が変化量の閾値ｄｍ＿ｍａｘより大きいか否かを判定する（ステップＳ４６）。磁化変化量の平均値が変化量の閾値ｄｍ＿ｍａｘ以下であると判定した場合（ステップＳ４６；Ｎｏ）、情報処理装置１は、時間ステップｋを１加算すべく、ステップＳ４３に移行する。情報処理装置１は、時間ステップｋが最大のステップ数ｋｍａｘに達すると、磁界シミュレーションを終了する。
【００８３】
一方、磁化変化量の平均値が変化量の閾値ｄｍ＿ｍａｘより大きいと判定した場合（ステップＳ４６；Ｙｅｓ）、異常出力部５５は、磁界シミュレーションを中止し、中止の旨を通知する（ステップＳ４８）。
【００８４】
［磁化変化量算出処理のフローチャート］
図９は、実施例２に係る磁化変化量算出処理のフローチャートの一例を示す図である。なお、図９のフローチャートは、時刻ｋにおける要素ｉに対するループを行い、時刻ｋにおける磁化変化量の合計ｄｍ＿ｔｏｔａｌを算出する。
【００８５】
図９に示すように、磁化変化量算出処理は、磁化変化量の合計ｄｍ＿ｔｏｔａｌを初期化する（ステップＳ５１）。磁化変化量算出処理は、ステップＳ５２とステップＳ６０で挟まれる処理を要素ｉに対する処理として、ｉを変えながら全ての要素に対して行う。
【００８６】
各要素ｉに対して、磁界計算部５２は、静磁界ベクトルＨｄを更新する（ステップＳ５３）。例えば、磁界計算部５２は、式（９）より、静磁界ベクトルＨｄを更新する。そして、磁化計算部５３は、式（６）により、静磁界ベクトルＨｄを用いて静磁エネルギーＥｄを算出する。そして、磁化計算部５３は、静磁エネルギーＥｄを用いて、式（２）の第４項を算出する。
【００８７】
各要素ｉに対して、磁界計算部５２は、外部磁界ベクトルＨａｐｐを更新する（ステップＳ５４）。例えば、磁界計算部５２は、外部磁界ベクトルＨａｐｐを更新する。そして、磁化計算部５３は、式（５）により、外部磁界ベクトルＨａｐｐを用いて外部磁界エネルギーＥａｐｐを算出する。そして、磁化計算部５３は、外部磁界エネルギーＨａｐｐを用いて、式（２）の第３項を算出する。
【００８８】
各要素ｉに対して、磁界計算部５２は、異方性磁界ベクトルｋを更新する（ステップＳ５５）。例えば、磁界計算部５２は、磁気異方性ベクトルｋを更新する。そして、磁化計算部５３は、式（３）により、磁気異方性ベクトルｋを用いて異方性エネルギーＥａｎｉを算出する。そして、磁化計算部５３は、異方性エネルギーＥａｎｉを用いて、式（２）の第１項を算出する。
【００８９】
各要素ｉに対して、磁界計算部５２は、交換結合磁界ベクトル（∇ｍ）２を更新する（ステップＳ５６）。なお、ｍは、磁化ベクトルである。例えば、磁界計算部５２は、交換結合磁界ベクトル（∇ｍ）２を更新する。そして、磁化計算部５３は、式（４）により、交換結合磁界ベクトル（∇ｍ）２を用いて交換結合エネルギーＥｅｘｃを算出する。そして、磁化計算部５３は、交換結合エネルギーＥｅｘｃを用いて、式（２）の第２項を算出する。
【００９０】
各要素ｉに対して、磁化計算部５３は、磁化ベクトルｍｉを更新する（ステップＳ５７）。例えば、磁化計算部５３は、式（２）により有効磁界ベクトルＨｅｆｆを算出する。そして、磁化計算部５３は、計算した有効磁界ベクトルＨｅｆｆを用いて式（１）を算出し、磁化ベクトルｍｉを更新する。
【００９１】
各要素ｉに対して、磁化変化量判定部５４は、磁化変化量ｄｍｉを計算する（ステップＳ５８）。例えば、磁化変化量判定部５４は、時間ステップｋと前回の時間ステップｋ−１との磁化ベクトルｍｉの変化量（磁化変化量）ｄｍｉを算出する。
【００９２】
そして、磁化変化量判定部５４は、磁化変化量の合計ｄｍ＿ｔｏｔａｌを更新する（ステップＳ５９）。例えば、磁化変化量判定部５４は、各要素ｉに対する磁化変化量ｄｍｉをｄｍ＿ｔｏｔａｌに加算する。すなわち、磁化変化量判定部５４は、時刻ｋにおける磁化変化量の合計ｄｍ＿ｔｏｔａｌを更新する。
【００９３】
そして、磁化変化量判定部５４は、全ての要素ｉに対する磁化変化量の合計ｄｍ＿ｔｏａｌを計算すると処理を終了する。
【００９４】
［実施例２の効果］
このようにして、実施例２では、情報処理装置１は、要素ごとに算出された、それぞれの磁化ベクトルデータの変化量の平均値が所定量を超える場合に、シミュレーションを中止し、中止の旨を出力する。かかる構成によれば、ユーザは、不正確な磁界シミュレーション結果を受け取ることを回避できる。
【００９５】
なお、情報処理装置１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部５および記憶部４等の各機能を搭載することによって実現することができる。
【００９６】
また、上記実施例１，２では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、磁界計算部５２と、磁化計算部５３とを統合しても良い。前処理部５１を、メッシュデータや磁化ベクトルデータ等の計算データを生成する第１の前処理部と、磁化ベクトルの初期値や最大ステップ数等の各種パラメータを設定する第２の前処理部とに分散しても良い。記憶部４を情報処理装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【００９７】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した情報処理装置１と同様の機能を実現する磁界シミュレータプログラムを実行するコンピュータの一例を説明する。図１０は、磁界シミュレータプログラムを実行するコンピュータの一例を示す図である。
【００９８】
図１０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ（Hard  Disk  Drive）２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【００９９】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、磁界シミュレータプログラム２０５ａおよび磁界シミュレータ関連情報２０５ｂを記憶する。
【０１００】
ＣＰＵ２０３は、磁界シミュレータプログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。磁界シミュレータ関連情報２０５ｂは、メッシュデータ４１、計算条件データ４２、磁化ベクトルデータ４３および磁界ベクトルデータ４４に対応する。そして、例えばリムーバブルディスク２１１が、磁界シミュレータプログラム２０５ａ等の各情報を記憶する。
【０１０１】
なお、磁界シミュレータプログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣ（Integrated  Circuit）カード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから磁化解析プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１０２】
１    情報処理装置
２    入力部
３    表示部
４    記憶部
４１    メッシュデータ
４２    計算条件データ
４３    磁化ベクトルデータ
４４    磁界ベクトルデータ
５    制御部
５１    前処理部
５２    磁界計算部
５３    磁化計算部
５４    磁化変化量判定部
５５    異常出力部
【図１】
2019219246.tif 000013
【図２】
2019219246.tif 000014
【図３Ａ】
2019219246.tif 000015
【図３Ｂ】
2019219246.tif 000016
【図４】
2019219246.tif 000017
【図５】
2019219246.tif 000018
【図６】
2019219246.tif 000019
【図７】
2019219246.tif 000020
【図８】
2019219246.tif 000021
【図９】
2019219246.tif 000022
【図１０】
2019219246.tif 000023
【図１１】
2019219246.tif 000024
【図１２】
2019219246.tif 000025