(57)【要約】【課題】マイクロマグネティックスシミュレーションの処理の高速化を図る。【解決手段】磁化シミュレーション装置１０は、不均一メッシュモデル１で構造が表された磁性体を示す磁性体データと外部磁界データとに基づいて、複数の要素それぞれにおける磁気的エネルギーの勾配を示す勾配ベクトルを算出する。次に磁化シミュレーション装置１０は、複数の要素それぞれについて、要素の体積の逆数と勾配ベクトルとに基づいて、磁気的エネルギーを最小化する状態の探索方向を示す方向ベクトルを算出する。さらに磁化シミュレーション装置１０は、複数の要素それぞれの磁化ベクトルを方向ベクトルが示す方向に変化させることで、磁気的エネルギーを最小化する複数の要素それぞれの磁化ベクトルを算出する。そして磁化シミュレーション装置１０は、収束条件を満たすまで、勾配ベクトルの算出と、方向ベクトルの算出と、磁化ベクトルの算出とを繰り返し実行する。【選択図】図１
2019200615.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
体積が不均一な複数の要素を含む不均一メッシュモデルで構造が表された磁性体を示す磁性体データと、前記磁性体が置かれた空間の磁界を示す外部磁界データとに基づいて、前記複数の要素それぞれにおける磁気的エネルギーの勾配を示す勾配ベクトルを算出し、
前記複数の要素それぞれについて、要素の体積の逆数と前記勾配ベクトルとに基づいて、磁気的エネルギーを最小化する状態の探索方向を示す方向ベクトルを算出し、
前記複数の要素それぞれの磁化状態を示す磁化ベクトルを前記方向ベクトルが示す方向に変化させることで、前記磁気的エネルギーを最小化する前記複数の要素それぞれの磁化ベクトルを算出し、
収束条件を満たすまで、前記勾配ベクトルの算出と、前記方向ベクトルの算出と、前記磁化ベクトルの算出とを繰り返し実行する、
処理を実行させる磁化シミュレーションプログラム。
【請求項２】
前記方向ベクトルの算出では、前記複数の要素それぞれの前記勾配ベクトルに、要素の体積の逆数のγ乗（γは正の実数）を乗算した結果に基づいて、前記方向ベクトルを算出する、
請求項１記載の磁化シミュレーションプログラム。
【請求項３】
前記コンピュータに、さらに、
前記複数の要素それぞれの体積の逆数に応じた値を対角要素とする対角行列を、前処理行列として生成する処理を実行させ、
前記方向ベクトルの算出では、前記前処理行列を用いて、前記複数の要素それぞれの前記方向ベクトルを算出する、
請求項１または２記載の磁化シミュレーションプログラム。
【請求項４】
コンピュータが、
体積が不均一な複数の要素を含む不均一メッシュモデルで構造が表された磁性体を示す磁性体データと、前記磁性体が置かれた空間の磁界を示す外部磁界データとに基づいて、前記複数の要素それぞれにおける磁気的エネルギーの勾配を示す勾配ベクトルを算出し、
前記複数の要素それぞれについて、要素の体積の逆数と前記勾配ベクトルとに基づいて、磁気的エネルギーを最小化する状態の探索方向を示す方向ベクトルを算出し、
前記複数の要素それぞれの磁化状態を示す磁化ベクトルを前記方向ベクトルが示す方向に変化させることで、前記磁気的エネルギーを最小化する前記複数の要素それぞれの磁化ベクトルを算出し、
収束条件を満たすまで、前記勾配ベクトルの算出と、前記方向ベクトルの算出と、前記磁化ベクトルの算出とを繰り返し実行する、
磁化シミュレーション方法。
【請求項５】
体積が不均一な複数の要素を含む不均一メッシュモデルで構造が表された磁性体を示す磁性体データと、前記磁性体が置かれた空間の磁界を示す外部磁界データとを記憶する記憶部と、
前記磁性体データと前記外部磁界データとに基づいて、前記複数の要素それぞれにおける磁気的エネルギーの勾配を示す勾配ベクトルを算出し、前記複数の要素それぞれについて、要素の体積の逆数と前記勾配ベクトルとに基づいて、磁気的エネルギーを最小化する状態の探索方向を示す方向ベクトルを算出し、前記複数の要素それぞれの磁化状態を示す磁化ベクトルを前記方向ベクトルが示す方向に変化させることで、前記磁気的エネルギーを最小化する前記複数の要素それぞれの磁化ベクトルを算出し、収束条件を満たすまで、前記勾配ベクトルの算出と、前記方向ベクトルの算出と、前記磁化ベクトルの算出とを繰り返し実行する処理部と、
を有する磁化シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気シミュレーションプログラム、磁気シミュレーション方法、および磁気シミュレーション装置に関する。
【背景技術】
【０００２】
電磁界分野におけるシミュレーション技術として、永久磁石などの磁性体（磁性材料）のミクロな磁化状態を計算機上で数値的に計算するマイクロマグネティックスシミュレーションがある。マイクロマグネティックスシミュレーションでは、計算機は、シミュレーション空間内で磁性体を微小な要素（メッシュ）に分割し、メッシュごとにマイクロ磁化を配置する。そして計算機は、各マイクロ磁化の時系列変化を計算する。
【０００３】
磁性体の解析においては、しばしば定常状態が磁気物性に関する重要な情報を与える。磁性体の定常状態とは、予め定義された系の磁気的エネルギーが最小となる磁化の状態である。従って系の磁気的エネルギーを最小化するマイクロ磁化状態を求めることができれば、磁性体の定常状態を再現することができる。このように磁性体の全エネルギーを最小にするマイクロ磁化の状態を求める手法は、エネルギー最小化手法と呼ばれる。
【０００４】
マイクロマグネティックスシミュレーションにおいて利用されるエネルギー最小化手法の１つに、非線形共役勾配法（ＮＣＧ法：Nonlinear Conjugate Gradient method）がある。
【０００５】
マイクロマグネティックスシミュレーションでは、どのように磁性体のメッシュ分割を行うかが計算時間と計算精度に大きく関わってくる。傾向として、メッシュが粗ければ粗いほど全体のメッシュ数が少なくなり、結果として計算に必要な時間が短くなるが、計算結果が真の値からずれる。逆にメッシュが細かければ細かいほど全体のメッシュ数が多くなり、計算に必要な時間が長くなるが、計算結果が真の値に近づいていく。実際にシミュレーションを行う際には計算結果が真の値からずれない範囲でできるだけメッシュサイズを大きくすることが行われている。
【０００６】
メッシュサイズは、モデル内で均一でなくてもよい。注目する一部の領域だけメッシュサイズを小さくし、その他の領域ではメッシュサイズを大きくすることで全体のメッシュ数を抑え計算の高速化を図ることも可能である。このようにメッシュサイズに疎密があるモデルを、以下では不均一メッシュモデルと呼ぶ。
【０００７】
磁化の解析に関する技術としては、例えば非線形共役勾配法を用いたマイクロマグネティックスシミュレーションの計算量を削減する磁性体シミュレーション装置がある。また、高速で高精度な磁場解析を実現するため、ボロノイ多面体形状の要素内の仮想粒子が満たすべき関係を仮想粒子ごとに記述した運動方程式を数値的に解くことにより、粒子の磁場状態を演算する解析装置がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１７−０８４０８１号公報
【特許文献２】特開２０１２−１２８４９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＮＣＧ法では、収束判定が満たされるまで所定の物理量の計算を繰り返し実行する。そのため、ＮＣＧ法を用いたマイクロマグネティックスシミュレーションの高速化のためには、物理量計算の反復回数を減らすことが重要となる。しかし、不均一メッシュモデルで表現される磁性体を、ＮＣＧ法を用いたマイクロマグネティックスシミュレーションにより計算すると、物理量計算の反復回数が均一メッシュを使用した場合に比べて倍以上に増大する。その結果、不均一モデルを採用しても、物理量計算の反復回数の増大により、シミュレーションの高速化が十分に図れない。
【００１０】
１つの側面では、本件は、マイクロマグネティックスシミュレーションの処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、コンピュータに以下の処理を実行させる磁化シミュレーションプログラムが提供される。
コンピュータは、体積が不均一な複数の要素を含む不均一メッシュモデルで構造が表された磁性体を示す磁性体データと、磁性体が置かれた空間の磁界を示す外部磁界データとに基づいて、複数の要素それぞれにおける磁気的エネルギーの勾配を示す勾配ベクトルを算出する。次にコンピュータは、複数の要素それぞれについて、要素の体積の逆数と勾配ベクトルとに基づいて、磁気的エネルギーを最小化する状態の探索方向を示す方向ベクトルを算出する。さらにコンピュータは、複数の要素それぞれの磁化状態を示す磁化ベクトルを方向ベクトルが示す方向に変化させることで、磁気的エネルギーを最小化する複数の要素それぞれの磁化ベクトルを算出する。そしてコンピュータは、収束条件を満たすまで、勾配ベクトルの算出と、方向ベクトルの算出と、磁化ベクトルの算出とを繰り返し実行する。
【発明の効果】
【００１２】
１態様によれば、マイクロマグネティックスシミュレーションの処理の高速化を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る磁化シミュレーション装置の機能構成例を示す図である。
【図２】マイクロマグネティックスシミュレーションに用いるコンピュータのハードウェアの一例を示す図である。
【図３】マイクロマグネティックスシミュレーションのための機能を示すブロック図である。
【図４】メッシュ構造データの一例を示す図である。
【図５】メッシュごとの磁化が定義された磁性体を示す模式図である。
【図６】マイクロマグネティックスシミュレーションに用いる配列の一例を示す図である。
【図７】配列へのベクトルデータの格納方法の一例を示す図である。
【図８】マイクロマグネティックスシミュレーションの処理手順の一例を示すフローチャートである。
【図９】前処理行列作成処理の手順の一例を示すフローチャートである。
【図１０】方向ベクトル計算処理の手順の一例を示すフローチャートである。
【図１１】マイクロマグネティックスシミュレーションの検証例を示す図である。
【図１２】磁化曲線の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。第１の実施の形態は、不均一メッシュモデルを用いたマイクロマグネティックスシミュレーションを効率的に行う磁化シミュレーション装置である。
【００１５】
図１は、第１の実施の形態に係る磁化シミュレーション装置の機能構成例を示す図である。磁化シミュレーション装置１０は、記憶部１１と処理部１２とを有する。記憶部１１は、例えば磁化シミュレーション装置１０が有するメモリ、またはストレージ装置である。処理部１２は、例えば磁化シミュレーション装置１０が有するプロセッサ、または演算回路である。磁化シミュレーション装置１０は、記憶部１１と処理部１２とを用いて、不均一メッシュモデルを用いたマイクロマグネティックスシミュレーションを効率的に行うための、磁化シミュレーション方法を実現する。例えば磁化シミュレーション装置１０は、不均一メッシュモデルを用いたマイクロマグネティックスシミュレーションを効率的に行う処理の手順が記述された磁化シミュレーションプログラムを、処理部１２で実行することで、磁化シミュレーション方法を実現する。
【００１６】
磁化シミュレーション装置１０は、例えばＮＣＧ法によるマイクロマグネティックスシミュレーションを実行する。ここで、マイクロマグネティックスシミュレーションについて詳細に説明する。
【００１７】
マイクロマグネティックスシミュレーションとは、磁性体の理論計算の一手法である。磁化シミュレーション装置１０は、シミュレーション空間内に磁性体を定義し、その磁性体を微小な要素（メッシュと呼ぶこともある）に分割する。各メッシュは、例えば四面体または八面体の立体構造を有している。また各メッシュの体積は不均一である。すなわち磁性体は、複数のメッシュに分割されることで、不均一メッシュモデル１で表されている。
【００１８】
磁化シミュレーション装置１０は、不均一メッシュモデル１を用いてマイクロマグネティックスシミュレーションを実行する。例えば磁化シミュレーション装置１０は、系の全エネルギーである磁気的エネルギーＥtotalを示すエネルギー定義情報を記憶している。磁気的エネルギーＥtotalは、以下の式で表される。
【００１９】
【数１】
2019200615.tif 000003
【００２０】
ここでＥaniは異方性エネルギーであり、Ｅexcは交換エネルギーであり、Ｅapplはゼーマンエネルギーであり、Ｅstaticは静磁界エネルギーである。異方性エネルギー、交換エネルギー、ゼーマンエネルギー、および静磁界エネルギーは、それぞれ以下の式で表される。
【００２１】
【数２】
2019200615.tif 000004
【００２２】
【数３】
2019200615.tif 000005
【００２３】
【数４】
2019200615.tif 000006
【００２４】
【数５】
2019200615.tif 000007
【００２５】
【数６】
2019200615.tif 000008
【００２６】
ここで、ｍは単位磁化ベクトルである。なお、単位磁化ベクトルは、各メッシュの磁化を示す磁化ベクトルを飽和磁化で除算して得られるベクトルである。ｍxは単位磁化ベクトルのｘ成分である。ｍyは単位磁化ベクトルのｙ成分である。ｍzは単位磁化ベクトルのｚ成分である。ＫUは磁気異方性定数である。ｋは磁気異方性ベクトルである。Ａは交換結合定数である。Ｍsは飽和磁化である。Ｈapplは外部磁界である。φは静磁界ポテンシャルである。Ｈstaticは静磁界ベクトルである。静磁界ポテンシャルφは、以下の関係式から求められる。
【００２７】
【数７】
2019200615.tif 000009
【００２８】
磁化シミュレーション装置１０は、式（１）〜式（７）で表される磁性体エネルギーを最小にするマイクロ磁化の状態を、マイクロマグネティックスシミュレーションによって求める。マイクロマグネティックスシミュレーションを実行する際に、ユーザが実行条件として入力するデータは、体積が不均一な複数の要素を含む不均一メッシュモデル１、不均一メッシュモデル１内の各要素における磁化ベクトルの初期状態、および外部磁界データ１１ｂである。式（２）〜式（７）に含まれる磁気異方性ベクトルｋ、磁気異方性定数ＫU、交換結合定数Ａ、飽和磁化Ｍsは、解析対象の磁性体の物性値として、予め磁性体データ１１ａに設定しておくことができる。外部磁界データ１１ｂには、外部磁界Ｈapplの値が含まれる。そして磁化シミュレーション装置１０が、例えばＮＣＧ法によるマイクロマグネティックスシミュレーションを実行することで、磁気的エネルギーを最小化するような、各メッシュにおける磁化ベクトルの状態を示すデータを出力する。
【００２９】
磁化シミュレーション装置１０は、処理の反復回数を削減するために、各メッシュの体積の逆数を用いて不均一メッシュモデル１を用いたマイクロマグネティックスシミュレーションを実行する。例えば磁化シミュレーション装置１０の記憶部１１は、体積が不均一な複数の要素を含む不均一メッシュモデル１で構造が表された磁性体を示す磁性体データ１１ａと、磁性体が置かれた空間の磁界を示す外部磁界データ１１ｂとを記憶する。
【００３０】
処理部１２は、不均一メッシュモデル１内の各要素における磁化ベクトルの初期状態を含む磁性体データ１１ａと外部磁界データ１１ｂとに基づいて、ＮＣＧ法によるマイクロマグネティックスシミュレーションを実行する。
【００３１】
処理部１２は、まず磁性体データ１１ａと外部磁界データ１１ｂとに基づいて、複数の要素それぞれにおける磁気的エネルギーの勾配を示す勾配ベクトルを算出する。磁気的エネルギーは、前述の式（１）〜式（７）で表される。
【００３２】
次に処理部１２は、複数の要素それぞれについて、要素の体積の逆数と勾配ベクトルとに基づいて、磁気的エネルギーを最小化する状態の探索方向を示す方向ベクトルを算出する。例えば処理部１２は、まず磁性体データ１１ａに示される不均一メッシュモデル１の構造に基づいて、各要素の体積を計算する。そして処理部１２は、勾配ベクトルに、要素の体積の逆数のγ乗（γは正の実数）を乗算した結果に基づいて、方向ベクトルを算出する。
【００３３】
なお処理部１２は、勾配ベクトルの成分に乗算する値を含む前処理行列を予め生成しておいてもよい。例えば処理部１２は、複数の要素それぞれの体積の逆数を対角要素とする対角行列を前処理行列として生成する。処理部１２は、生成した前処理行列を、例えばメモリに格納する。そして処理部１２は、前処理行列を用いて、複数の要素それぞれの方向ベクトルを算出する。
【００３４】
要素ごとの方向ベクトルの算出が完了すると、処理部１２は、複数の要素それぞれの磁化状態を示す磁化ベクトルを方向ベクトルが示す方向に変化させることで、磁気的エネルギーを最小化する複数の要素それぞれの磁化ベクトルを算出する。なお、１回の磁化ベクトルの算出では、方向ベクトルにより磁化ベクトルの変化の方向が制限されている。そのため、他の方向に磁化ベクトルを変化させれば、磁気的エネルギーをさらに小さくさせる磁化状態（複数の要素それぞれの磁化ベクトル）が存在する可能性がある。
【００３５】
そこで処理部１２は、収束条件を満たすまで、勾配ベクトルの算出と、方向ベクトルの算出と、磁化ベクトルの算出とを繰り返し実行する。収束条件は、例えば最後に算出した磁化ベクトルと、その前に算出した磁化ベクトルとの差（残差）が所定値以内になっているという条件である。すなわち処理部１２は、磁化ベクトルがある一定値に収束した場合、ループ処理から抜ける。
【００３６】
処理部１２は、収束条件が満たされると、磁性体の磁化状態を示す情報を出力する。例えば処理部１２は、最後に計算した各要素の磁化ベクトルを、外部磁界データ１１ｂに応じた磁性体の磁化状態として出力する。
【００３７】
このように、各メッシュの体積の逆数を用いてマイクロマグネティックスシミュレーションを実行することで、勾配ベクトル、方向ベクトル、磁化ベクトルといった物理量の計算処理の反復回数を削減することができ、処理の効率化が図れる。
【００３８】
すなわち、各メッシュの体積の逆数を用いずに、不均一メッシュモデル１を用いてＮＣＧ法によるイクロマグネティックスシミュレーションを計算すると、物理量の計算処理の反復回数が均一メッシュを使用した場合に比べて倍以上増大する。この原因は、以下のように考えられる。
【００３９】
磁性体を不均一メッシュモデルで表現すると、各メッシュの体積が不均一になる。また、ＮＣＧ法で計算する勾配ベクトルの各成分は、有効磁界とメッシュの体積の積に比例する形で表される。そのため、不均一なメッシュサイズは勾配ベクトルの成分の大きさのバラつきを引き起こす。例えばある勾配ベクトルのうち、２つの成分において有効磁界が等しく、かつメッシュサイズ比が１００００である場合、２つの成分の比は１００００となる。このように不均一メッシュモデルでは均一メッシュモデルに比べて勾配ベクトル成分の大きさのバラつきが非常に大きくなりやすい。勾配ベクトルの各成分のバラつきが大きいと最適化の途中で誤差の影響を受けやすく、磁気的エネルギーの最小値の探索方向を示す方向ベクトルの向きが、最小値が存在する方向からずれてしまう。その結果、磁気的エネルギーの最小値の探索経路がジグザグとなり、エネルギー最小化が遅くなる。このような事情によりＮＣＧ法の収束が悪化し、物理量計算処理の反復回数が増大し、計算時間が長くなってしまうと考えることができる。
【００４０】
このように、メッシュが不均一になったことに起因して勾配ベクトルの各成分のバラつきが大きくなることが、収束性悪化の原因である。すると、勾配ベクトルの各成分のバラつきを抑止することができれば、収束性が改善するものと考えられる。勾配ベクトルの各成分のバラつきの抑止は、次のような前処理を実行することで実現できる。つまり磁化シミュレーション装置１０が、ＮＣＧ法を用いて磁性体のエネルギー最小状態を求める際、メッシュの体積の逆数を用いた前処理行列を予め用意し、方向ベクトルを計算する際にこの前処理行列を使う。前処理行列として勾配ベクトルの各成分の大きさのバラつきを抑制するものを使用することで、均一メッシュと同程度の反復回数で収束することが期待できる。例えば前処理行列を対角行列として対角スケーリングすることが考えられる。そのような対角行列の各成分は各メッシュ体積の逆０．３〜１．０乗程度の値を持つようにする。
【００４１】
このように、方向ベクトルを計算する際に、メッシュの体積の逆数を用いて、メッシュサイズが不均一であることに起因する勾配ベクトルのバラつきを抑制することで、方向ベクトルの向きが適性化される。方向ベクトルの向きが適性化されることで、磁気的エネルギーの最小値に、少ない反復回数で到達することが可能となる。その結果、処理の効率化が図れる。
【００４２】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、コンピュータを用いたマイクロマグネティックスシミュレーションを具体化したものである。
【００４３】
図２は、マイクロマグネティックスシミュレーションに用いるコンピュータのハードウェアの一例を示す図である。コンピュータ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４４】
メモリ１０２は、コンピュータ１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４５】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４６】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４７】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００４８】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４９】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５０】
機器接続インタフェース１０７は、コンピュータ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００５１】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５２】
コンピュータ１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した磁化シミュレーション装置１０も、図２に示したコンピュータ１００と同様のハードウェアにより実現することができる。
【００５３】
コンピュータ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またコンピュータ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５４】
このようなコンピュータ１００により、不均一メッシュを用いた、ＮＣＧ法によるマイクロマグネティックスシミュレーションが行われる。
図３は、マイクロマグネティックスシミュレーションのための機能を示すブロック図である。コンピュータ１００は、マイクロマグネティックスシミュレーションのために、記憶部１１０、前処理行列作成部１２０、およびシミュレーション部１３０を有する。
【００５５】
記憶部１１０は、磁性体データ１１１と外部磁界データ１１２とを記憶する。磁性体データ１１１には、メッシュ構造データ１１１ａと特性データ１１１ｂとが含まれる。メッシュ構造データ１１１ａは、不均一なサイズの複数のメッシュに磁性体を分割したときの、各メッシュの位置と形状を示すデータである。特性データ１１１ｂは、磁性体の性質に関するデータである。例えば特性データ１１１ｂには、単位磁化ベクトルｍ、磁気異方性ベクトルｋ、磁気異方性定数ＫU、交換結合定数Ａ、飽和磁化Ｍsなどが含まれる。外部磁界データ１１２は、磁性体が置かれる空間内の磁界（外部磁界Ｈappl）を表すデータである。
【００５６】
前処理行列作成部１２０は、ＮＣＧ法の前処理演算を行い、ＮＣＧ法による収束性を高めるための行列（前処理行列）を作成する。例えば前処理行列作成部１２０は、メッシュモデルの各メッシュの体積に応じた値を、前処理行列の要素として設定する。
【００５７】
シミュレーション部１３０は、前処理行列を用いて、ＮＣＧ法によるマイクロマグネティックスシミュレーションを実行し、メッシュモデルのメッシュごとの磁化ベクトルを算出する。ＮＣＧ法を用いるため、シミュレーション部１３０は、所定の収束条件が満たされるまで、メッシュごとの磁化ベクトルの算出を繰り返し実行する。そしてシミュレーション部１３０は、収束条件が満たされたとき、最後に算出されたメッシュごとの磁化ベクトルを出力する。
【００５８】
図４は、メッシュ構造データの一例を示す図である。記憶部１１０には、磁性体の不均一メッシュモデル３１を表すメッシュ構造データ１１１ａが格納される。不均一メッシュモデル３１は、サイズが均一の均一メッシュモデル３０と比較して、メッシュ数が削減されている。メッシュ構造データ１１１ａには、例えばメッシュデータ１１１ｄと節点データ１１１ｅとが含まれる。メッシュデータ１１１ｄには、不均一メッシュモデル３１に含まれるメッシュそれぞれの識別子（メッシュ番号）に対応付けて、そのメッシュの節点の識別子（節点番号）が設定されている。メッシュが４面体であれば、そのメッシュの節点は４個である。またメッシュが６面体であれば、そのメッシュの節点は８個である。節点データ１１１ｅには、不均一メッシュモデル３１に含まれる節点それぞれの節点番号に対応付けて、その節点の３次元空間での座標値が設定されている。
【００５９】
メッシュ構造データ１１１ａに示される不均一メッシュモデル３１により、複数のメッシュに分割した磁性体が表現される。特性データ１１１ｂに含まれる単位磁化ベクトルは、メッシュごとの磁化（マイクロ磁化）の初期状態を表している。
【００６０】
図５は、メッシュごとの磁化が定義された磁性体を示す模式図である。図５に示すように、磁性体４０を複数のメッシュ４１に分割したときに、各メッシュ内の磁化の強さと向きが、磁化ベクトルで定義される。そしてコンピュータ１００は、ＮＣＧ法によるマイクロマグネティックスシミュレーションにより、外部磁界データ１１２に示される外部磁界が存在する空間に磁性体４０が置かれたときにおける、マイクロ磁化の振る舞いを計算する。具体的には、コンピュータ１００は、式（１）〜式（７）で表される磁気的エネルギーを最小とするマイクロ磁化の状態を計算する。この際、コンピュータ１００は、各メッシュの体積の逆数に応じた前処理行列を用いることで、物理量計算処理の反復回数が少ない、効率的なシミュレーション処理を実行する。
【００６１】
なおコンピュータ１００は、マイクロマグネティックスシミュレーションの処理過程で生じる中間データを、配列を用いてメモリ１０２上で管理する。
図６は、マイクロマグネティックスシミュレーションに用いる配列の一例を示す図である。例えば前処理行列作成部１２０は、磁性体データ１１１に基づいて前処理行列Ｑを作成すると、その前処理行列Ｑの要素を行列要素配列Ｑ’に格納する。シミュレーション部１３０は、行列要素配列Ｑ’から要素の値を取り出し、物理量を計算する。例えばシミュレーション部１３０は、１回目の物理量計算では、磁性体データ１１１、外部磁界データ１１２、および行列要素配列Ｑ’に基づいて、勾配ベクトル、方向ベクトル、および磁化ベクトルを、それぞれメッシュごとに計算する。シミュレーション部１３０は、算出したメッシュごとの物理量を出力データ用配列群５１内の配列に格納する。出力データ用配列群５１には、勾配ベクトル配列ｇ1、方向ベクトル配列ｄ1、および磁化ベクトル配列ｍ1が含まれる。
【００６２】
１回目の物理量計算が終了すると、シミュレーション部１３０は、出力データ用配列群５１内の各配列の値を、入力データ用配列群５２として設けられた配列にコピーする。入力データ用配列群５２には、勾配ベクトル配列ｇ2、方向ベクトル配列ｄ2、および磁化ベクトル配列ｍ2が含まれる。
【００６３】
シミュレーション部１３０は、行列要素配列Ｑ’と入力データ用配列群５２内の各配列からデータを読み出し、２回目以降の物理量計算を行う。そしてシミュレーション部１３０は、２回目以降の物理量計算において算出したメッシュごとの物理量を、出力データ用配列群５１内の配列に格納する。
【００６４】
このように、配列を用いて中間データを管理することで、マイクロマグネティックスシミュレーションを効率的に実行することができる。なお、シミュレーション部１３０は、ベクトル値を配列に格納する際、ベクトル値のｘ軸，ｙ軸，ｚ軸の各軸方向の成分それぞれを、配列の１つの要素として格納する。そのためメッシュ数がＮのとき、各配列の要素数は３Ｎとなる。
【００６５】
図７は、配列へのベクトルデータの格納方法の一例を示す図である。不均一メッシュモデル３１の各メッシュについて計算される物理量としては、磁化ベクトル、勾配ベクトル、および方向ベクトルがある。各メッシュの構造データとしては、メッシュを構成する節点の座標がある。
【００６６】
配列には、ベクトルの成分ごとの値それぞれが、配列の要素として格納される。例えば配列内の要素番号が「１」番から昇順の番号となっているとき、配列の１番目の要素には、１番目のメッシュのｘ値が格納される。配列の２番目の要素には、１番目のメッシュのｙ値が格納される。配列の３番目の要素には、１番目のメッシュのｚ値が格納される。そして配列の４番目の要素には、２番目のメッシュのｘ値が格納される。
【００６７】
このように各ベクトルの成分ごとの値を配列に格納したとき、ｉ番目のメッシュに関連するベクトルデータは、各配列の３（ｉ−１）＋１番目の要素から３（ｉ−１）＋３番目までの３要素に格納される。例えばｉ番目のメッシュの磁化ベクトルは、磁化ベクトル配列ｍ1，ｍ2それぞれの３（ｉ−１）＋１番目から３（ｉ−１）＋３番目までの３要素に設定される。ｉ番目のメッシュの勾配ベクトルは、勾配ベクトル配列ｇ1，ｇ2それぞれの３（ｉ−１）＋１番目から３（ｉ−１）＋３番目までの３要素に設定される。ｉ番目のメッシュの方向ベクトルは、方向ベクトル配列ｄ1，ｄ2それぞれの３（ｉ−１）＋１番目から３（ｉ−１）＋３番目までの３要素に設定される。
【００６８】
以下、ＮＣＧ法によるマイクロマグネティックスシミュレーションの処理手順について詳細に説明する。
図８は、マイクロマグネティックスシミュレーションの処理手順の一例を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００６９】
［ステップＳ１０１］前処理行列作成部１２０は、メッシュごとの磁化ベクトルを示す磁化ベクトルデータの初期値の入力を受け付け、メッシュごとの磁化ベクトルの各軸方向の成分を、磁化ベクトル配列ｍ2に格納する。
【００７０】
［ステップＳ１０２］前処理行列作成部１２０は、パラメータγとメッシュ構造データ１１１ａとに基づいて、前処理行列Ｑの対角成分を示す行列要素配列Ｑ’を作成する。前処理行列は、例えば以下のような対角行列である。
【００７１】
【数８】
2019200615.tif 000010
【００７２】
ここでγはユーザが予め指定するパラメータであり、シミュレーション中において一定である。γの値は正の実数であり、例えばγの値として０．３〜１．０の範囲内の値が設定される。Ｎはメッシュ数である。
【００７３】
前処理行列Ｑのｉ，ｊ成分をＱijと書くと、前処理行列Ｑの各成分の値を以下のように表すことができる。
【００７４】
【数９】
2019200615.tif 000011
【００７５】
ｉ、ｊは、それぞれ１からＮをとる整数である。ｓ、ｔは、それぞれ０から２をとる整数である。δijおよびδstはクロネッカーのデルタである。Ｖiは要素番号ｉの要素の体積である。前処理行列作成部１２０は、メッシュ構造データ１１１ａに示されている各メッシュの節点の座標値から、そのメッシュの体積を計算する。そして前処理行列作成部１２０は、計算した各メッシュの体積に基づいて、式（９）により、前処理行列Ｑの成分の値を計算し、メモリ１０２に格納する。例えば前処理行列作成部１２０は、Ｑの各成分を配列として格納する。その場合、前処理行列作成部１２０は、次のような要素数３Ｎの行列要素配列Ｑ’を定義し、その配列に、前処理行列作成部１２０の対角成分それぞれを３個ずつ格納する。
【００７６】
【数１０】
2019200615.tif 000012
【００７７】
このような行列要素配列Ｑ’に値を格納する前処理行列作成処理の詳細は後述する（図９参照）。
前処理行列Ｑが作成されると、シミュレーション部１３０により、ＮＣＧ法によるマイクロマグネティックスシミュレーションが実行される。マイクロマグネティックスシミュレーションにおいて、シミュレーション部１３０は、ステップＳ１０３〜Ｓ１０５の処理で物理量を計算する。
【００７８】
［ステップＳ１０３］シミュレーション部１３０は、磁化ベクトル配列ｍ2に基づいて、メッシュごとの勾配ベクトルを計算し、勾配ベクトルの成分を勾配ベクトル配列ｇ1に格納する。例えば磁化ベクトル配列ｍ2に示されるｉ番目のメッシュの磁化ベクトルをｍiとしたとき、そのメッシュの勾配ベクトルｇiは「ｇi＝−∂Ｅtotal／∂ｍi」となる。
【００７９】
［ステップＳ１０４］シミュレーション部１３０は、勾配ベクトル配列ｇ1，ｇ2と方向ベクトル配列ｄ2とに基づいて、前処理行列Ｑを用いたメッシュごとの方向ベクトルを計算し、方向ベクトルの成分を方向ベクトル配列ｄ1に格納する。勾配ベクトル配列ｇ2と方向ベクトル配列ｄ2とは、前回の物理量計算処理で計算された値が格納されている。なお、１回目の物理量計算処理の場合、勾配ベクトル配列ｇ2と方向ベクトル配列ｄ2とは未計算である。そのため、シミュレーション部１３０は、１回目の物理量計算処理では、勾配ベクトル配列ｇ1と行列要素配列Ｑ’とにより、メッシュごとの方向ベクトルを計算する。
【００８０】
例えば１回目の物理量計算の場合、シミュレーション部１３０は、複数のメッシュそれぞれの勾配ベクトルの要素の値（ｘ値、ｙ値、ｚ値）を１列に並べた列ベクトル（勾配ベクトル配列ｇ1）に、「−Ｑ」を左から乗算する。乗算結果として得られる列ベクトルの要素は、複数のメッシュそれぞれの方向ベクトルの要素を表している。勾配ベクトル配列ｇ1を勾配ベクトルの列ベクトルとみなした場合、方向ベクトルの列ベクトルは「−Ｑｇ1」となる。
【００８１】
また２回目以降の物理量の計算の場合、シミュレーション部１３０は、以下の式（１１）により、修正係数βを算出する。なお式（１１）では、各配列を、その配列の要素を有するベクトルとみなしている。
【００８２】
【数１１】
2019200615.tif 000013
【００８３】
ここでｖ＝ｇ1−ｇ2である。式（１１）の（配列ａ，配列ｂ）は、配列ａで示されるベクトルと配列ｂで示されるベクトルとの内積演算である。
そしてシミュレーション部１３０は、ステップＳ１０３で算出された勾配ベクトル（勾配ベクトル配列ｇ1）に「−Ｑ」を左から乗算する。またシミュレーション部１３０は、前回の物理量計算において算出された方向ベクトル（方向ベクトル配列ｄ2）を列ベクトルとし、その列ベクトルに「β」を左から乗算する。そしてシミュレーション部１３０は、「−Ｑ」の勾配ベクトルへの乗算結果と「β」の方向ベクトルへの乗算結果との合計「−Ｑｇ1＋βｄ2」を、方向ベクトルとする。
【００８４】
シミュレーション部１３０は、計算したメッシュごとの方向ベクトルを、方向ベクトル配列ｄ1に格納する。方向ベクトル計算処理の詳細は後述する（図１０参照）。
［ステップＳ１０５］シミュレーション部１３０は、方向ベクトル配列ｄ1と磁化ベクトル配列ｍ2とに基づいて、ラインサーチ（直接探索）処理により、メッシュごとの磁化ベクトルを計算する。例えばシミュレーション部１３０は、前回の物理量計算で得られた各メッシュの磁化ベクトル（磁化ベクトル配列ｍ2）を、各メッシュの方向ベクトル（方向ベクトル配列ｄ1）の方向へ変化させ、磁気的エネルギーＥtotalを最小化させる磁化状態を探索する。シミュレーション部１３０は、方向ベクトルに示される方向への探索で、磁気的エネルギーＥtotalが最小となる各メッシュの磁化ベクトルを、磁化ベクトルの算出結果とする。そしてシミュレーション部１３０は、メッシュごとに新たに算出した磁化ベクトルで、磁化ベクトル配列ｍ1の各要素の値を更新する。
【００８５】
［ステップＳ１０６］シミュレーション部１３０は、収束条件が満たされたか否かを判定する。例えばシミュレーション部１３０は、磁化ベクトルの残差｜ｍ1−ｍ2｜が規定値以下か否かを判断する。またシミュレーション部１３０は、メッシュごとの回転前の磁化ベクトルと回転後の磁化ベクトルとの差分ベクトルの大きさの平均値又は最大値を残差とすることもできる。シミュレーション部１３０は、残差が規定値以下であれば、収束条件が満たされたと判断する。シミュレーション部１３０は、収束条件が満たされた場合、処理をステップＳ１０８に進める。またシミュレーション部１３０は、収束条件が満たされていなければ、処理をステップＳ１０７に進める。
【００８６】
［ステップＳ１０７］シミュレーション部１３０は、ステップＳ１０３〜Ｓ１０５で計算した勾配ベクトル、方向ベクトル、および磁化ベクトルを、次のループ処理用のデータとしてコピーする。具体的には、シミュレーション部１３０は、磁化ベクトル配列ｍ1内の各要素の値を、磁化ベクトル配列ｍ2内の各要素にコピーする。また、シミュレーション部１３０は、勾配ベクトル配列ｇ1内の各要素の値を、勾配ベクトル配列ｇ2内の各要素にコピーする。さらにシミュレーション部１３０は、方向ベクトル配列ｄ1内の各要素の値を、方向ベクトル配列ｄ2内の各要素にコピーする。その後、シミュレーション部１３０は、処理をステップＳ１０３に進め、次の物理量計算処理を開始する。
【００８７】
［ステップＳ１０８］シミュレーション部１３０は、収束条件が満たされた場合、最後に計算したメッシュごとの磁化ベクトルをファイルに書き出す。例えばシミュレーション部１３０は、磁化ベクトル配列ｍ1の各要素の値を、該当要素に対応するメッシュのメッシュ番号に対応付けて、メモリ１０２上でファイルに書き込む。そしてシミュレーション部１３０は、そのファイルを例えばストレージ装置１０３に格納する。
【００８８】
このような手順で、ＮＣＧ法によるマイクロマグネティックスシミュレーションが実行される。
次に、前処理行列作成処理について詳細に説明する。
【００８９】
図９は、前処理行列作成処理の手順の一例を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］前処理行列作成部１２０は、変数ｉが１からＮになるまで、ステップＳ１１２〜Ｓ１１５の処理を繰り返す。
【００９０】
［ステップＳ１１２］前処理行列作成部１２０は、ｉ番目のメッシュの体積を計算する。例えば前処理行列作成部１２０は、磁性体データ１１１内のメッシュ構造データ１１１ａに示されているｉ番目のメッシュの節点の座標値に基づいて、そのメッシュの体積を計算する。
【００９１】
［ステップＳ１１３］前処理行列作成部１２０は、行列要素配列Ｑ’の３（ｉ−１）＋１番目の要素に、ｉ番目のメッシュの体積の−γ乗を格納する。
［ステップＳ１１４］前処理行列作成部１２０は、行列要素配列Ｑ’の３（ｉ−１）＋２番目の要素に、ｉ番目のメッシュの体積の−γ乗を格納する。
【００９２】
［ステップＳ１１５］前処理行列作成部１２０は、行列要素配列Ｑ’の３（ｉ−１）＋３番目の要素に、ｉ番目のメッシュの体積の−γ乗を格納する。
［ステップＳ１１６］前処理行列作成部１２０は、変数ｉの値がＮであれば前処理行列作成処理を終了し、変数ｉの値がＮ未満であれば変数ｉの値に１を加算し、ステップＳ１１２〜Ｓ１１５の処理を行う。
【００９３】
このような前処理行列作成処理の結果、前処理行列Ｑの対角成分を格納した行列要素配列Ｑ’が出力される。例えば前処理行列作成部１２０は、行列要素配列Ｑ’を、処理結果としてメモリ１０２に格納する。
【００９４】
次に、行列要素配列Ｑ’を用いた方向ベクトルの計算処理について詳細に説明する。
図１０は、方向ベクトル計算処理の手順の一例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
【００９５】
［ステップＳ１２１］シミュレーション部１３０は、１回目の物理量計算処理か否かを判断する。シミュレーション部１３０は、１回目の物理量計算処理であれば、処理をステップＳ１２２に進める。またシミュレーション部１３０は、２回目以降の物理量計算処理であれば、処理をステップＳ１２５に進める。
【００９６】
［ステップＳ１２２］シミュレーション部１３０は、変数ｉが１から３Ｎになるまで、ステップＳ１２３の処理を繰り返す。
［ステップＳ１２３］シミュレーション部１３０は、勾配ベクトル配列ｇ1のｉ番目の要素の値とＱのｉ番目の要素の値と「−１」とを乗算し、方向ベクトル配列ｄ1のｉ番目の要素に格納する。
【００９７】
［ステップＳ１２４］シミュレーション部１３０は、変数ｉの値が３Ｎであれば、方向ベクトル計算処理を終了し、変数ｉの値が３Ｎ未満であれば、変数ｉの値に１を加算し、ステップＳ１２３の処理を行う。
【００９８】
［ステップＳ１２５］シミュレーション部１３０は、修正係数βを計算し、計算結果をメモリ１０２に格納する。
［ステップＳ１２６］シミュレーション部１３０は、変数ｉが１から３Ｎになるまで、ステップＳ１２７の処理を繰り返す。
【００９９】
［ステップＳ１２７］シミュレーション部１３０は、方向ベクトル配列ｄ2のｉ番目の要素と修正係数βとの積から、勾配ベクトル配列ｇ1のｉ番目の要素と行列要素配列Ｑ’のｉ番目の要素との積を減算する。そしてシミュレーション部１３０は、減算結果を、方向ベクトル配列ｄ1のｉ番目の要素に格納する。
【０１００】
［ステップＳ１２８］シミュレーション部１３０は、変数ｉの値が３Ｎであれば、方向ベクトル計算処理を終了し、変数ｉの値が３Ｎ未満であれば、変数ｉの値に１を加算し、ステップＳ１２７の処理を行う。
【０１０１】
このようにして、方向ベクトルの計算が行われ、処理結果として、方向ベクトル配列ｄ1がメモリ１０２に格納される。方向ベクトルの計算では、各メッシュの体積の逆数を含む前処理行列Ｑを利用することで、メッシュ間の体積の違いの影響が抑制されている。その結果、不均一メッシュモデルを採用したことによる物理量計算の反復回数の増加が抑止される。
【０１０２】
ここで、前処理行列Ｑを利用した場合と、前処理行列Ｑを利用しなかった場合とにおける、物理量計算処理の反復回数の違いの検証結果について説明する。
図１１は、マイクロマグネティックスシミュレーションの検証例を示す図である。図１１は、一様に磁化された磁性体が安定な状態まで緩和する計算を行い、収束に必要な反復回数と計算時間について、体積の逆数に基づく前処理行列Ｑを使用する場合と使用しない場合それぞれでの測定結果を示す。なお前処理行列Ｑを用いたマイクロマグネティックスシミュレーションでは、γ＝１．０としている。
【０１０３】
検証に使用した不均一メッシュモデル３１は、メッシュ数が約１１００万個である。この不均一メッシュモデル３１で示される磁性体の飽和磁化は１．６１Ｔである。また交換結合定数は１．０×１０-11Ｊ／ｍである。異方性定数は４．５０×１０6Ｊ／ｍ3である。
【０１０４】
このような条件で、前処理行列Ｑを使用せずにマイクロマグネティックスシミュレーションを実行したところ、反復回数が２１９回、計算時間が１１７２秒で収束条件が満たされた。それに対して、体積の逆数に基づく前処理行列Ｑを使用してマイクロマグネティックスシミュレーションを実行したところ、反復回数が６７回、計算時間が３８８秒で収束条件が満たされた。
【０１０５】
この例では、前処理行列Ｑを使用したことで、反復回数が約０．３倍に削減され、計算時間が約０．３３倍になっている。このように、前処理行列Ｑを使用することでより高速なマイクロマグネティックスシミュレーションが可能になる。
【０１０６】
このようなマイクロマグネティックスシミュレーションにより、例えば磁気メモリなどに用いる磁性体の磁気的な性質を、コンピュータシミュレーションによって解析することができる。例えば外部磁界の強度を変化させながら、マイクロマグネティックスシミュレーションを繰り返し実行することで、磁性体の磁化曲線を得ることができる。
【０１０７】
図１２は、磁化曲線の一例を示す図である。図１２において、縦軸は磁化［Ｔ］を表し、横軸は外部磁界［Ａ／ｍ］を表す。図１２には、外部磁界を徐々に強くして、各外部磁界における磁性体の磁化を求めることで得られた磁化曲線６０が示されている。磁化曲線６０には、ある外部磁界において磁性体の磁化が反転する様子が表されている。例えばコンピュータ１００がモニタ２１に磁化曲線６０を表示することで、ユーザは、磁性体の磁化を所定の方向に安定させるための外部磁界や、安定状態での磁化の強度などの磁性体の特性を把握することができる。
【０１０８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１０９】
１  不均一メッシュモデル
１０  磁化シミュレーション装置
１１  記憶部
１１ａ  磁性体データ
１１ｂ  外部磁界データ
１２  処理部
【図１】
2019200615.tif 000014
【図２】
2019200615.tif 000015
【図３】
2019200615.tif 000016
【図４】
2019200615.tif 000017
【図５】
2019200615.tif 000018
【図６】
2019200615.tif 000019
【図７】
2019200615.tif 000020
【図８】
2019200615.tif 000021
【図９】
2019200615.tif 000022
【図１０】
2019200615.tif 000023
【図１１】
2019200615.tif 000024
【図１２】
2019200615.tif 000025