以下に添付図面を参照して、本発明にかかる解析方法、解析プログラム、および解析装置の実施の形態を詳細に説明する。
図1は、本発明に係る解析装置による動作例を示す説明図である。解析装置100は、解析領域101を分割した複数のセルの各々について物理量を算出し、物理量に基づき解析領域101の解析結果を取得するコンピュータである。また、解析装置100は、解析を行う前に、解析の計算に要する計算時間を推定するコンピュータである。
例えば、電磁界解析の一種であるFDTD(Finite−Difference Time−Domain method)法によるシミュレーションでは、解析領域101を格子状に分割したセルの各々について電界と磁界とが算出されることによって、解析領域101内の電磁界分布が解析される。
具体的には、セルは、シミュレーション空間上に格子状に配置された格子点によって解析領域101を分割した領域である。シミュレーション空間とは、解析対象の物理的な要素102の内部とその要素102の外部の空間とを含む解析領域101をコンピュータ上に表すために設定された空間である。例えば、シミュレーション空間には、例えば、X軸とY軸とZ軸とを含む3次元直交座標系が定義される。本実施の形態では、X軸とY軸に着目し、Z軸については説明を省略する。セルcは、矩形状であり、例えば四角形や立方体である。セルcには、例えば、要素102を含むか否かを示す情報が設定可能である。また、解析のために、セルcには、媒体の媒質と、媒質に応じた電気定数と、が設定可能である。電気定数としては、例えば、誘電率、透磁率、および、導電率などが挙げられる。要素102としては、例えば、配線、パッド、基板などの物体を形成する部品などが挙げられる。
従来、配線やパッドなどの要素102の形状に応じてセル分割を行うため、凹部や凸部が存在する。凹部や凸部が発生する例については、図2に示す。凹部や凸部において細かいセル分割が行われるためにセルの数が増加するという問題点がある。
本実施の形態では、解析領域を分割した複数のセルのうち、該解析領域に配置される要素を含む複数のセルにより形成される形状から微少な凸部または凹部が削除された形状に基づき解析領域を複数のセルに分割する。また、微少な凹部や凸部は、CAD(Computer Aided Design)の設計段階では生じるが、実際の基板では生じない場合が多く、また解析精度に与える影響も少ない場合がある。微少な凹部や凸部とは、利用者によって設定された閾値よりも小さい凹部や凸部である。閾値については、例えば、要素102の種類や要素102に含まれるホールなどによって設定される。例えば、要素102が基板であれば、閾値は、基板に含まれるホールの幅に基づく値である。より具体的に、閾値は、基板に含まれるホールの幅よりも小さい値に設定される。
これにより、セルの数の低減を図ることができる。電磁界解析のようにセルcごとに物理量を算出する解析の場合、セルcの数が多いほど解析にかかる時間が長くなるため、セルの数を低減させることにより解析にかかる時間の低減を図ることができる。
まず、解析装置100は、シミュレーション空間における解析領域101に配置される要素102の形状に基づいて解析領域101を複数に分割した複数のセルを示す第1セル情報103を生成する。解析装置100は、例えば、解析領域101を所定の格子点の間隔によって複数のセルcに分割する。所定の格子点の間隔は、例えば、要素102のサイズなどによって決定されてもよい。例えば、要素102が配線を含む場合に、所定の格子点の間隔は、配線の最小幅であってもよい。
つぎに、解析装置100は、第1セル情報103が示す複数のセルのうち、要素102を含む複数のセルにより形成される形状を特定する。要素102を含むセルとは、例えば、要素102を所定の割合以上含むセルである。所定の割合は、例えば、利用者によって設定されてもよいし、固定値であってもよい。所定の割合は、例えば、50[%]などであってもよい。ここでは、第1セル情報103において、複数のセルの各々に要素102を含むか否かを設定可能とする。例えば、セルc1については、要素102を含むことを示す情報が設定される。例えば、セルc6については、要素102を含まないことを示す情報が設定される。例えば、セルc17については、要素102を含むことを示す情報が設定される。
そして、解析装置100は、特定した形状に含まれる所定の形状の部分を特定する。所定の形状の部分は、例えば、所定の凸部または凹部である。所定の凸部や所定の凹部とは、所定のサイズ以下の凸部や所定のサイズ以下の凹部である。例えば、要素102が基板である場合、所定の凸部や所定の凹部は、基板に含まれるホールよりも小さい幅の凸部や凹部である。基板に含まれるホールより大きい凸部や凹部は、実際の基板でも生じるものであるため、無視できない。一方、基板に含まれるホールよりも小さい凸部や凹部は、実際の基板では生じない場合が多く、また解析精度に与える影響も少ない場合がある。
解析装置100は、例えば、要素102を含む複数のセルにより形成される形状における輪郭を形成する格子点を探索して所定の凸部または凹部を特定する。例えば、セルc17が所定の凸部または凹部として特定される。
つぎに、解析装置100は、要素102を含む複数のセルによって形成される形状から、特定した凸部または凹部が削除された形状に基づいて解析領域101を複数に分割した複数のセルを示す第2セル情報104を生成する。解析装置100は、特定した凸部または凹部であるセルについて、要素102を含むか否かを示す情報の設定を変更する。
解析装置100は、例えば、第1セル情報103において、特定した凸部であるセルについて、要素102を含むことを示す情報が設定されているため、要素102を含まないことを示す情報に変更する。また、解析装置100は、例えば、第1セル情報103において、特定した凹部であるセルについて、要素102を含まないことを示す情報が設定されているため、要素102を含むことを示す情報に変更する。これにより、要素102を含む複数のセルによって形成される形状から、特定した凸部または凹部が削除された形状が特定される。図1の例では、解析装置100は、セルc17について要素を含むことを示す情報から要素を含まないことを示す情報に設定を変更する。
そして、解析装置100は、例えば、削除された形状に基づいて解析領域101における格子点を調整することによって第2セル情報104を生成する。X軸方向の格子を一つ抜いてもよいため、第2セル情報104では、例えば、セルc5とセルc6とは1つのセルc5となる。
これにより、セルの数の低減を図ることができ、解析にかかる時間の低減を図ることができる。
図2は、微細な格子が発生する例を示す説明図である。簡単に電磁界解析における格子の生成方法について説明する。解析装置100は、基準となる格子幅を決定する。そして、解析装置100は、格子幅をもとに等間隔に格子を生成して、要素102をセルごとに分割する。例えば、セルには、要素102の有無や要素102の媒質などが設定される。図2の例では、「格子に沿って分割した場合」において、要素102があるセルは黒丸で示す。そして、解析装置100は、格子を抜いてもセルによって表される要素102の形状に影響がない箇所の格子を抜く。これにより、セルの数を減らすことができる。
しかし、例えば、上側の基板の形状において、四角で囲った箇所は、基板の形状において要素102なしとなっているために、微細な格子が発生してしまう。例えば、下側の基板の形状においては、四角で囲った箇所は、基板の形状において要素102ありとなっているために、格子が発生してしまう。このように、微細な凹凸部によって格子が発生してしまい、セル数が増加してしまう。
そこで、本実施の形態では、図1で説明したように、解析領域を分割した複数のセルのうち、該解析領域に配置される要素を含む複数のセルにより形成される形状から微少な凸部または凹部が削除された形状に基づき解析領域を複数のセルに分割する。これにより、微少な凹部や凸部が削除されるため、格子を抜くことが可能となる。したがって、セル数の低減を図ることができ減らし、計算時間の短縮を図ることができる。
(解析装置100のハードウェア構成例)
図3は、解析装置のハードウェア構成例を示すブロック図である。図3において、解析装置100は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、ディスクドライブ304と、ディスク305と、を有している。解析装置100は、I/F(Inter/Face)306と、キーボード307と、マウス308と、ディスプレイ309と、を有している。また、各部はバス300によってそれぞれ接続されている。
ここで、CPU301は、解析装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。ディスクドライブ304は、CPU301の制御にしたがってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、磁気ディスク、光ディスクなどが挙げられる。
I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク310に接続され、このネットワーク310を介して他の装置に接続される。そして、I/F306は、ネットワーク310と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F306には、例えばモデムやLANアダプタなどを採用することができる。
キーボード307やマウス308は、例えば、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ309は、例えば、CPU301の指示により、データを出力するインターフェースである。
また、図示を省略するが、解析装置100には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、解析装置100には、プリンタなどの出力装置が設けられていてもよい。また、図示を省略するが、解析装置100には、例えば、SSDやフラッシュROMなどが設けられていてもよい。
(解析装置100の機能的構成例)
図4は、解析装置の機能的構成例を示すブロック図である。解析装置100は、第1生成部401と、第1特定部402と、第2特定部403と、第2生成部404と、記憶部411と、を有する。記憶部411は、例えば、ROM302、RAM303、ディスク305などの記憶装置によって実現される。第1生成部401から第2生成部404までの制御部の処理は、例えば、図3に示すCPU301がアクセス可能な記憶部411に記憶されたプログラムにコーディングされている。そして、CPU301が記憶部411から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、記憶部411に記憶される。
第1生成部401は、シミュレーション空間における解析領域101に配置される要素102の形状に基づいて解析領域101を複数のセルに分割した第1セル情報103を生成する。解析領域101に配置される要素102は、例えば、CADデータが示す解析対象の物体である。CADデータは、解析対象の物体に含まれる部品などの要素102の各々を示すデータである。CADデータについては、図示省略するが、例えば、要素102、層番号、要素102が配置される始点、要素102が配置される終点、線長、線幅などが含まれる。
解析領域101が格子点の間隔によって複数のセルcに分割される。各セルcには、セルcを識別可能な識別情報が付される。また、各セルcの位置を表すためにX軸方向の格子点とY軸方向の格子点との各々に、格子点を識別可能な識別情報として番号が付される。
図5は、セル情報例を示す説明図である。図5に示すセル情報500は、第1セル情報103や第2セル情報104などの情報の一例である。セル情報500は、複数のセルcの各々について位置と媒質とを示す情報である。例えば、セル情報500は、セル、左上(X)格子点番号、左上(Y)格子点番号、右下(X)格子点番号、右下(Y)格子点番号、要素の有無(媒質)のフィールドを有する。各フィールドに情報が設定されることによって、レコード(例えば、501−1〜501−4、など)として記憶される。ここでは、Z軸方向についての格子点番号などは、省略する。
セルのフィールドには、セルcを一意に特定可能な識別情報が設定される。左上(X)格子点番号のフィールドには、セルcが有する4つの頂点の格子点番号のうち、左上のX軸方向の格子点番号が設定される。左上(Y)格子点番号のフィールドには、セルcが有する4点の頂点の格子点番号のうち、左上のY軸方向の格子点番号が設定される。右下(X)格子点番号のフィールドには、セルcが有する4点の頂点の格子点番号のうち、右下のX軸方向の格子点番号が設定される。右下(Y)格子点番号のフィールドには、セルcが有する4点の頂点の格子点番号のうち、右下のY軸方向の格子点番号が設定される。
ここでは、左上(X)格子点番号と、左上(Y)格子点番号と、右下(X)格子点番号と、右下(Y)格子点番号と、によってセルcの位置が表される。また、左上(X)格子点番号と、左上(Y)格子点番号と、右下(X)格子点番号と、右下(Y)格子点番号と、によってセルcについての左下(X)格子点番号と、左下(Y)格子点番号と、右上(X)格子点番号と、右上(Y)格子点番号と、が特定可能である。
要素102の有無のフィールドには、解析対象の要素102を含むか否かを示す情報が設定される。また、要素102の有無のフィールドには、解析対象の要素102が所定の割合以上セルに含まれる場合、「有」とし、解析対象の要素102が所定の割合以上セルに含まれない場合、「無」とする。「有」が設定されるセルについては、例えば、前景のセルとも称し、「無」が設定されるセルについては、例えば、背景のセルとも称する。また、要素102の有無のフィールドには、要素102を含む解析領域101をモデリングした場合の媒質が設定されてもよい。例えば、媒質としては、空気や金属などが挙げられる。
レコード501−2を例に挙げると、セルc2の左上(X)格子点番号は1であり、セルc2の左上(Y)格子点番号は0であり、セルc2の右下(X)格子点番号は2であり、セルc2の右下(Y)格子点番号は1であり、要素102の有無は「有」である。要素102の有無のフィールドには、後述する第1特定部402の特定結果が設定される。
図6は、格子点番号と座標との対応テーブル例を示す説明図である。対応テーブル600−Xは、X軸方向について、格子点番号(X)と座標との対応関係を示す。例えば、格子点番号(X)が1の場合、X軸の座標は0.1である。対応テーブル600−Yは、Y軸方向について、格子点番号(Y)と座標との対応関係を示す。例えば、格子点番号(Y)が1の場合、Y軸の座標は0.1である。格子点番号(Y)とY軸の座標とは、初期の格子点の間隔dによって定まる。
第1特定部402は、生成した第1セル情報103が示す複数のセルのうち、要素102に対応する複数のセルにより形成される形状を特定する。具体的に、第1特定部402は、例えば、複数のセルのうち、シミュレーション空間において解析領域101に配置された要素102を含むセルを前景のセルとして特定する。前景のセルは、例えば、要素102を少なくとも一部含むセルであってもよいし、要素102を所定割合以上含むセルであってもよい。所定割合は、利用者などによって設定されればよく、特に限定しない。具体的に、第1特定部402は、例えば、複数のセルのうち、シミュレーション空間に配置された要素102を含むセルを背景のセルに特定する。第1特定部402は、複数のセルのうち前景のセルと異なるセルを背景のセルとする。特定結果は、セルごとに上述したセルデータに含まれる要素102の有無に設定される。
つぎに、第2特定部403は、特定した形状に含まれる所定の形状の部分を特定する。
所定の形状の部分は、例えば、所定の凸部または凹部である。ここでは、特定された要素102の形状の向きが水平な凸部の例と、特定された要素102の形状の向きが垂直な凹部の例と、を示す。要素102の形状の向きについては、例えば、利用者によって指定されてもよいし、水平または垂直のいずれかの向きに揃えておくこととして予め定められていてもよい。所定の凸部または凹部とは、例えば、閾値よりも小さい凸部または凹部である。
図7は、向きが水平な凸部の削除例(その1)を示す説明図である。水平な凸部を含む要素102例を示す。格子数は、Xが7であり、Yが6である。セル数は30である。探索開始点をセルc1の左下の格子点とする。ここでは、閾値を2とする。閾値については、例えば、部品や基板のホールなどのサイズに応じて利用者が決定する。
図7(1)に示すように、第1特定部402は、探索開始点を決定し、探索開始点を最初の起点にする。つぎに、第1特定部402は、探索方向を決定する。第1特定部402は、起点から探索方向に輪郭を形成する格子点を探索する。輪郭を形成するセルは、前景のセルであって、かつ背景に接するセルである。そのため、輪郭を形成する格子点とは、前景のセルの4つの頂点を形成する格子点であり、かつ背景のセルの4つの頂点を形成する格子点である。
探索中に、第1特定部402は、折れ曲がり点を検出する。折れ曲がり点とは、輪郭を形成する格子点であり、その格子点から探索方向にあるつぎの格子点によって形成されるセルがすべて背景のセルである格子点である。そして、第1特定部402は、折れ曲がり点を対象点として、起点から対象点までのX軸とY軸との少なくともいずれかの移動量が閾値以上である場合に、対象点を新たな起点にする。
そして、図7(2)に示すように、第1特定部402は、対象点をあらたな起点として、つぎの探索方向を決定する。起点は1の格子点である。
図8は、つぎの探索方向の決定方法例を示す説明図である。まず、探索するセルの移動方向と移動量の関係を表に示す。例えば、Y軸のマイナス方向は方向0であり、X軸のプラス方向は方向1であり、Y軸のプラス方向は方向2であり、X軸のマイナス方向は方向3である。
方向0に移動した場合、X軸方向の移動量は0であり、Y軸方向の移動量は−1である。方向1に移動した場合、X軸方向の移動量は1であり、Y軸方向の移動量は0である。方向2に移動した場合、X軸方向の移動量は0であり、Y軸方向の移動量は1である。方向3に移動した場合、X軸方向の移動量は−1であり、Y軸方向の移動量は0である。
直前の探索方向に対して、つぎの探索するセルの方向に関する優先順位を表に示す。表には、現在の起点からの探索回数と、直前の探索方向と、に対応する優先順位を示す。表によれば、逆行の探索方向が最後になるように、順につぎの探索方向となる。また、第2特定部403は、つぎの探索方向を例えば、以下の式(1)を用いて決定する。
つぎの探索方向=((探索回数+直前の探索方向−1)+4)%4・・・(1)
図7(2)の説明に戻って、第2特定部403は、例えば、直前の探索方向と、探索回数と、に基づきつぎの探索方向を決定する。例えば、探索回数は0であり、直前の探索方向が方向1であるため、第2特定部403は、つぎの探索方向を方向0に決定する。
第2特定部403は、方向0にはセルがないため、探索回数をカウントアップしてつぎの探索方向を決定する。例えば、探索回数は1であり、直前の探索方向が方向1であるため、第2特定部403は、つぎの探索方向を方向1にする。起点1から方向1にある格子点は、背景のセルを形成する格子点であるため、要素102を含むセルの形状における輪郭を形成する格子点でないため、第2特定部403は、探索回数をカウントアップしてつぎの探索方向を決定する。
例えば、探索回数は2であり、直前の探索方向が方向1であるため、第2特定部403は、つぎの探索方向を方向2にする。起点1から方向2にある格子点は、輪郭を形成する格子点である。そして、第2特定部403は、起点1から決定した探索方向に輪郭を形成する格子点を探索して折れ曲がり点を検出する。起点1から方向2にあるセルc3の右上の格子点は折れ曲がり点である。そして、第2特定部403は、折れ曲がり点を対象点2として起点からの移動量を特定する。対象点2の移動量は、「X方向:0、Y方向:1」である。そのため、第2特定部403は、対象点2の移動量が閾値以上でないと判断する。そして、第2特定部403は、新たに対象点2から探索方向を決定して、要素102を含むセルの形状における輪郭を形成する格子点を探索する。
そして、第2特定部403は、探索中に、折れ曲がり点があれば、折れ曲がり点を対象点とする。このようにして、図7(2)に示すように、対象点3と対象点4とが探索される。起点1から対象点3までの移動量は、「X:1、Y:1」であり、対象点4の移動量は、「X:1、Y:2」である。
図9は、向きが水平な凸部の削除例(その2)を示す説明図である。図9(1)に示すように、第2特定部403は、対象点4において、X軸方向またはY軸方向の少なくともいずれかの移動量の絶対値が閾値である2以上であるため、対象点4を新たな起点1とする。
そして、図9(2)に示すように、第2特定部403は、起点1から探索方向を決定して要素102を含む複数のセルの形状における輪郭を形成する格子点を探索する。第2特定部403は、折れ曲がり点を対象点として検出する。そして、第2特定部403は、起点1から対象点までの移動量を特定し、移動量がX軸方向またはY軸方向の少なくともいずれかの移動量の絶対値が閾値以上であるか否かを判断する。ここでは、対象点2の移動量が「X:1、Y:0」であり、対象点3の移動量が「X:1、Y:1」であり、対象点4の移動量が「X:0、Y:1」である。
また、第2特定部403は、移動量の絶対値が閾値以上でないと判断された場合に、凹凸の向きについての移動量が0に戻ったか否かを判断する。ここでは、凹凸の向きがX軸方向であるため、X軸方向においての移動量が起点から対象点4までの間に0に戻る。0に戻った場合、第2特定部403は、起点から対象点までの間を凹凸部として検出する。ここでは、1〜4までの格子点を頂点として含むセルはセルc17であるため、第2特定部403は、セルc17を凹凸部として特定する。
第2生成部404は、第1生成部401によって生成された第1セル情報103が示す要素102の形状から第2特定部403によって特定された凸部または凹部を削除した形状に基づいて解析領域101を複数に分割した複数のセルを示す第2セル情報104を生成する。具体的に、第2生成部404は、例えば、第1セル情報103において、特定された凸部または凹部についてのセルが前景であれば背景に変更し、背景であれば前景に変更する。具体的に、第2生成部404は、例えば、特定された凸部または凹部についてのセルが前景であれば背景に変更し、背景であれば前景に変更する。図9(3)に示すように、第2生成部404は、セルc17を前景から背景に変更する。
そして、具体的に、第2生成部404は、解析対象の要素102の形状が変化しないように格子点を抜いた後の複数のセルを示す第2セル情報104を生成する。格子点を抜くとは、例えば、セルの有無が同一の連続する複数のセルを1つのセルにマージすることである。例えば、第2生成部404は、第1セル情報103に基づいて、要素102の外形を表すセルcのX軸およびY軸の延長上にあるセルcを境目として、セルの有無が同一の連続するセルcを1つのセルにマージした第2セル情報104を生成する。
図10は、凸部の削除例についてセルの減少例を示す説明図である。例えば、セルc17が前景から背景になると、X軸方向の格子が1つ減る。これにより、例えば、セルc5とセルc6とがセルc5になり、セルc11とセルc12とがセルc11になり、セルc17とセルc18とがセルc17になり、セルc23とセルc24とがセルc23になり、セルc29とセルc30とがセルc29になる。
つぎに、凹凸の向きが垂直な凹部の削除例について説明する。凹凸の向きが垂直であるとは、ここではY軸方向であることを示す。各部の処理については、凸部の削除例と同じであるため、ここでは簡単に説明する。
第1生成部401は、上述したように、シミュレーション空間における解析領域101に配置される要素102の形状に基づいて解析領域101を複数に分割した複数のセルを示す第1セル情報103を生成する。そして、第1特定部402は、上述したように、生成された第1セル情報103が示す複数のセルのうち、要素102に対応する複数のセルにより形成される形状を特定する。
図11は、向きが垂直な凹部の削除例を示す説明図である。ここでは、閾値が2である場合を例に挙げる。図11(1)に示すように、第2特定部403は、探索開始点を起点にして起点から決定した探索方向に順に輪郭を形成する格子点を探索する。ここでは、第2特定部403は、起点からセルc6の右下の格子点までを探索する。
セルc6の右下の格子点が折れ曲がり点であるため、第2特定部403は、セルc6の右下の格子点を対象点とする。起点から対象点までのX軸方向の移動量の絶対値が閾値以上であるため、第2特定部403は、対象点を新たな起点として探索方向を決定する。探索方向の決定方法は、図8に示した例と同じであるため、詳細な説明を省略する。
図11(1)に示すように、第2特定部403は、セルc6の右下の格子点である起点から、探索方向に順に輪郭を形成する格子点を探索する。第2特定部403は、起点から折れ曲がり点であるセルc24の右上の格子点を対象点として検出する。つぎに、第2特定部403は、起点から対象点までのY軸方向の移動量の絶対値が閾値以上であると判断する。
そして、第2特定部403は、セルc24の右上の格子点を新たな起点として探索方向を決定する。第2特定部403は、セルc24の右上の格子点である起点から探索方向に順に輪郭を形成する格子点を探索する。第2特定部403は、起点から折れ曲がり点であるセルc22の右上の格子点を対象点として検出する。第2特定部403は、起点から対象点までのX軸方向の移動量の絶対値が閾値以上であるため、対象点であるセルc22の右上の格子点を新たに起点とする。
ここでは、セルc22の右上の格子点である起点を起点1とする。そして、第2特定部403は、セルc22の右上の格子点である起点1から探索方向に順に輪郭を形成する格子点を探索する。第2特定部403は、起点1から折れ曲がり点であるセルc22の右下の格子点を対象点2として検出する。そして、第2特定部403は、起点1から対象点2までのX軸方向およびY軸方向の移動量の絶対値がいずれも閾値以上でないため、対象点2からあらたに探索方向を決定して輪郭を形成する格子点を探索する。そして、第2特定部403は、あらたな折れ曲がり点であるセルc22の左下の格子点を対象点3として検出する。第2特定部403は、起点1から対象点3までのX軸方向およびY軸方向の移動量の絶対値がいずれも閾値以上でないため、対象点3からあらたに探索方向を決定して輪郭を形成する格子点を探索する。
第2特定部403は、あらたな折れ曲がり点であるセルc22の左上の格子点を対象点4として検出する。第2特定部403は、起点1から対象点4までのX軸方向およびY軸方向の移動量の絶対値がいずれも閾値以上でないと判断する。そして、第2特定部403は、起点1から対象点4までの間に凹凸の向きであるY軸方向において、対象点2からあらたに探索方向を決定し、決定した探索方向に輪郭を形成する格子点を探索する。
第2特定部403は、起点1から対象点4までの間に、凹凸の向きであるY軸方向において移動量が0に戻ったため、起点1から対象点4までを凹凸部として検出する。
第2生成部404は、第1生成部401によって生成された第1セル情報103が示す要素102の形状から、第2特定部403によって特定された凹凸部を削除した形状に基づいて解析領域101を複数に分割した複数のセルを示す第2セル情報104を生成する。具体的に、第2生成部404は、例えば、第1セル情報103において、特定された凸部または凹部についてのセルが前景であれば背景に変更し、背景であれば前景に変更する。図11(2)に示すように、第2生成部404は、セルc22を背景から前景に変更する。これにより、第1生成部401によって生成された第1セル情報103が示す要素102の形状から第2特定部403によって特定された凹凸部を削除した形状が特定される。
図12は、凹部の削除例についてセルの減少例を示す説明図である。第2生成部404は、例えば、解析対象の要素102の形状が変化しないように格子点を抜いた後の複数のセルを示す第2セル情報104を生成する。
図12の例では、セルc7からセルc12と、セルc13からセルc18と、の間にあった格子が無くなる。そのため、セルc7とセルc13とが一つのセルc7になり、セルc8とセルc14とが一つのセルc8になり、セルc9とセルc15とが一つのセルc9になる。そして、セルc10とセルc16とが一つのセルc10になり、セルc11とセルc17とが一つのセルc11になり、セルc12とセルc18とが一つのセルc12になる。
(解析装置100による解析処理手順例)
図13は、解析装置による解析処理手順例を示すフローチャートである。解析装置100は、解析領域101を複数のセルに分割して第1セル情報103を生成する(ステップS1301)。つぎに、解析装置100は、複数のセルの各々について、要素102の有無に基づき前景と背景とを特定する(ステップS1302)。そして、解析装置100は、処理対象の要素102を決定する(ステップS1303)。
つぎに、解析装置100は、凹凸削除処理を行う(ステップS1304)。そして、解析装置100は、未処理の要素102があるか否かを判断する(ステップS1305)。未処理の要素102があると判断された場合(ステップS1305:Yes)、解析装置100は、ステップS1303へ戻る。
未処理の要素102がないと判断された場合(ステップS1305:No)、解析装置100は、変更後の第1セル情報103に基づいて、格子を調整して第2セル情報104を生成し(ステップS1306)、一連の処理を終了する。
図14は、図13で示した凹凸削除処理(ステップS1304)の詳細な説明を示すフローチャートである。まず、解析装置100は、処理対象の要素102についての凹凸の向きの入力を受け付ける(ステップS1401)。つぎに、解析装置100は、要素102の輪郭を形成する前景のセルに含まれる格子点から探索開始点を決定する(ステップS1402)。要素102の輪郭とは、要素102を含む複数のセルの形状における輪郭である。そして、解析装置100は、探索方向を決定する(ステップS1403)。
つぎに、解析装置100は、起点または直前の折れ曲がり点から探索方向に輪郭を形成する格子点を追跡してつぎの折れ曲がり点を対象点に検出する(ステップS1404)。そして、解析装置100は、起点から対象点までの移動量の絶対値が閾値以上であるか否かを判断する(ステップS1405)。ステップS1405では、具体的に、解析装置100は、起点から対象点までのX軸方向の移動量の絶対値と起点から対象点までのX軸方向の移動量の絶対値とのうちの少なくともいずれかの値が閾値以上であるか否かを判断する。
閾値以上であると判断された場合(ステップS1405:Yes)、解析装置100は、対象点を起点に決定する(ステップS1407)。そして、解析装置100は、つぎの探索方向を決定し(ステップS1408)、ステップS1404へ戻る。
一方、閾値以上でないと判断された場合(ステップS1405:No)、解析装置100は、入力を受け付けた凹凸の向きについての移動量が0に戻ったか否かを判断する(ステップS1406)。移動量が0に戻っていないと判断された場合(ステップS1406:No)、解析装置100は、ステップS1408へ移行する。
移動量が0に戻ったと判断された場合(ステップS1406:Yes)、解析装置100は、起点から対象点までを含むセルについての前景と背景を変更する(ステップS1409)。ステップS1409において起点から対象点までが、凹部または凸部である。解析装置100は、探索開始点まで探索したか否かを判断する(ステップS1410)。
探索開始点まで探索していないと判断された場合(ステップS1410:No)、解析装置100は、ステップS1407へ戻る。探索開始点まで探索したと判断された場合(ステップS1410:Yes)、解析装置100は、一連の処理を終了する。
以上説明したように、解析装置は、解析領域を分割した複数のセルのうち、該領域に配置される要素を含む複数のセルにより形成される形状から凸部または凹部が削除された形状に基づき該領域を複数のセルに分割する。これにより、セルの数の低減を図ることができる。電磁界解析のようにセルごとに物理量を算出する解析の場合、セルの数が多いほど解析にかかる時間が長くなるため、セルの数を低減させることにより解析にかかる時間の低減を図ることができる。
また、所定の凸部または凹部は、閾値よりも小さいサイズである。これにより、微少な凸部または凹部を削除することができる。
また、要素が基板を有する場合に、所定の凸部または凹部は基板に含まれるホールの幅よりも小さい。基板に含まれるホールより大きい凸部や凹部は、実際の基板でも生じるものであるため、無視できない。一方、基板に含まれるホールよりも小さい凸部や凹部は、実際の基板では生じない場合が多く、また解析精度に与える影響も少ない場合がある。そのため、基板における微少な凸部または凹部を削除することができ、セルの数の減少を図ることができる。
また、要素を含む複数のセルは、要素を所定の割合以上含む複数のセルである。これにより、複数のセルによって要素の形状をより精度よく再現することができる。
なお、本実施の形態で説明した解析方法は、予め用意された解析プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本解析プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、解析プログラムは、インターネット等のネットワーク310を介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが、
シミュレーション空間における解析領域に配置される要素の形状に基づいて前記解析領域を複数に分割した複数のセルを示す第1セル情報を生成し、
生成した前記第1セル情報が示す前記複数のセルのうち、前記要素を含む複数のセルにより形成される形状を特定し、
特定した前記形状に含まれる所定の形状の部分を特定し、
特定した前記形状から、特定した前記部分が削除された形状に基づいて前記解析領域を複数に分割した複数のセルを示す第2セル情報を生成する、
処理を実行することを特徴とする解析方法。
(付記2)前記所定の形状の部分は、所定の凸部または凹部であることを特徴とする付記1に記載の解析方法。
(付記3)前記所定の凸部または凹部は、閾値よりも小さいことを特徴とする付記2に記載の解析方法。
(付記4)前記要素が基板を有する場合に、前記閾値は、前記基板に含まれるホールの幅に基づく値であることを特徴とする付記3に記載の解析方法。
(付記5)前記要素を含む前記複数のセルは、生成した前記第1セル情報が示す前記複数のセルのうち、前記要素を所定割合以上含むセルであることを特徴とする付記1〜4のいずれか一つに記載の解析方法。
(付記6)コンピュータが、
シミュレーション空間における解析領域に配置される要素の形状に基づいて前記解析領域を複数に分割した複数のセルを示す第1セル情報を生成し、
生成した前記第1セル情報が示す前記複数のセルのうち、前記要素を含む複数のセルにより形成される形状を特定し、
特定した前記形状に含まれる所定の形状の部分を特定し、
特定した前記形状から、特定した前記部分が削除された形状に基づいて前記解析領域を複数に分割した複数のセルを示す第2セル情報を生成する、
処理を実行することを特徴とする解析プログラム。
(付記7)シミュレーション空間における解析領域に配置される要素の形状に基づいて前記解析領域を複数に分割した複数のセルを示す第1セル情報を生成し、生成した前記第1セル情報が示す前記複数のセルのうち、前記要素を含む複数のセルにより形成される形状を特定し、特定した前記形状に含まれる所定の形状の部分を特定し、特定した前記形状から、特定した前記部分が削除された形状に基づいて前記解析領域を複数に分割した複数のセルを示す第2セル情報を生成する、
制御部を有することを特徴とする解析装置。