(57)【特許請求の範囲】
【請求項１】
複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、
構造体の配置に関するデータを記憶する配置データ記憶手段と、
隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、
各構造体の平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、
隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する制御手段とを備えたシステムであって、
前記制御手段が、
各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段と、
この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解手段と、
時間ステップループ内において、
初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、
接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、
接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、
前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、
生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、
算出した挙動解析値が収束するまで前記接触判定処理、前記第１算出処理及び前記第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段と、
前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段とを備えたことを特徴とする挙動解析システム。
【請求項２】
前記配置データ記憶手段には、各構造体の種類に関する情報が更に記憶されており、
前記物性値データ記憶手段には、種類毎に、構造体の物性値に関するデータが記憶されており、
前記対角行列分解手段は、構造体の種類毎に、ブロック対角行列をＬＵ分解した上三角行列及び下三角行列を前記分解行列データ記憶手段に記録し、
前記制御手段は、前記第１算出処理及び前記第２算出処理において、前記配置データ記憶手段から、各構造体の種類を特定し、特定した種類のブロック対角行列に対応する上三角行列及び下三角行列を前記分解行列データ記憶手段から抽出し、前記構造体の配置に応じて並べることにより、縁部分がないブロック対角行列の上三角行列及び下三角行列を生成することを特徴とする請求項１に記載の挙動解析システム。
【請求項３】
節点が接触した場合の条件を示した各平衡方程式に対応付けて、上三角行列の行要素及び下三角行列の列要素を記憶する縁部分分解要素データ記憶手段を更に備え、
前記制御手段は、
時間ステップループの外側において、構造体において接触する可能性があるすべての節点が接触した場合の条件を示した平衡方程式を縁付きブロック対角行列の縁部分として生成し、この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて前記縁部分分解要素データ記憶手段に記憶し、
前記時間ステップループ内において、接触があると判定した場合には、接触があると判定した節点が接触した場合の条件を示した平衡方程式に対応する下三角行列の行要素及び上三角行列の列要素を、前記縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、この行列をＬＵ分解した縁部分上三角行列及び縁部分下三角行列を生成し、前記抽出した下三角行列の行要素及び上三角行列の列要素と、前記縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、前記合成上三角行列及び前記合成下三角行列を生成することを特徴とする請求項１又は２に記載の挙動解析システム。
【請求項４】
前記分解行列データ記憶手段には、時間刻み幅及びブロック対角行列に関連付けて、このブロック対角行列をＬＵ分解した上三角行列及び下三角行列が記憶されており、
前記制御手段は、時間刻み幅変更判定値を用いた接触条件に対応する時間刻み幅を記憶した時間刻み幅定義データ記憶手段に接続されており、
前記対角行列分解手段は、
変更可能な各時間刻み幅に応じたブロック対角行列を、時間ステップループの外側においてＬＵ分解し、このＬＵ分解した上三角行列及び下三角行列を、時間刻み幅及びブロック対角行列に関連付けて記録し、
前記制御手段は、
時間ステップループ内において、接触があると判定した場合には、隣接する構造体の時間刻み幅変更判定値を算出し、この時間刻み幅変更判定値を用いた接触条件に対応した時間刻み幅を、これ以降に用いる時間刻み幅として特定する手段を更に備え、
前記第１算出処理において、特定した時間刻み幅及び前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、
前記第２算出処理において、特定した時間刻み幅に関連付けた上三角行列及び下三角行列を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列として特定し、これら上三角行列及び下三角行列に、前記縁部分の行列をＬＵ分解したＬＵ分解要素を合成して合成上三角行列及び合成下三角行列を生成することを特徴とする請求項１〜３のいずれか１項に記載の挙動解析システム。
【請求項５】
複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、
構造体の配置に関するデータを記憶する配置データ記憶手段と、
隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、
各構造体の平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、
制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する方法であって、
前記制御手段が、
各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する段階と、
この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解段階と、
時間ステップループ内において、
初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、
接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、
接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、
前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、
生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、
算出した挙動解析値が収束するまで前記接触判定処理、前記第１算出処理及び前記第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する段階と、
前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する段階とを実行することを特徴とする挙動解析方法。
【請求項６】
複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、
構造体の配置に関するデータを記憶する配置データ記憶手段と、
隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、
各構造体の平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、
制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析するためのプログラムであって、
前記制御手段を、
各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段、
この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解手段、
時間ステップループ内において、
初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、
接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、
接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、
前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、
生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、
算出した挙動解析値が収束するまで前記接触判定処理、前記第１算出処理及び前記第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段、及び
前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段として機能させることを特徴とする挙動解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造体の挙動を解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムに関する。
【背景技術】
【０００２】
制御回路や梁等の構造体の挙動についての解析シミュレーションを行なう場合、縁付きマトリクスで表示された方程式の解を求めることがある。この場合、公知のＬＵ分解法を用いて計算を行なうための技術が開示されている（例えば、特許文献１参照）。この文献には、下の階層のインタフェースノードを階層の浅いほうから順番に上位ブロックに移動して縁付きブロック対角構造行列を生成し、ＬＵ分解時の回路全体の演算数と最上位ブロックの演算数とのいずれかが前の数より増加したところで、インタフェースノードの所属ブロックを決定し、回路を分割することが開示されている。これにより、回路の階層構造を保ったまま下位ブロックのノードを上位ブロックに移動することによって、潜伏性を利用して、行列計算にかかる計算時間を低減することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−９７５５５号公報（第１頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、多数の構造体が集合した状態で他の構造体と接触することがある各構造体の挙動を解析する場合、ブロック対角行列を構成する行列数が多くなる。このため、ＬＵ分解法を用いる場合であっても、演算量が多くなるため、更なる工夫が必要となる。
本発明は、上記問題点を解決するためになされたものであり、構造体の挙動を効率的に解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記問題点を解決するために、請求項１に記載の発明は、複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、構造体の配置に関するデータを記憶する配置データ記憶手段と、隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、各構造体の平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する制御手段とを備えたシステムであって、前記制御手段が、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段と、この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解手段と、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、算出した挙動解析値が収束するまで前記接触判定処理、前記第１算出処理及び前記第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段と、前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段とを備えたことを要旨とする。
【０００６】
請求項２に記載の発明は、請求項１に記載の挙動解析システムにおいて、前記配置データ記憶手段には、各構造体の種類に関する情報が更に記憶されており、前記物性値データ記憶手段には、種類毎に、構造体の物性値に関するデータが記憶されており、前記対角行列分解手段は、構造体の種類毎に、ブロック対角行列をＬＵ分解した上三角行列及び下三角行列を前記分解行列データ記憶手段に記録し、前記制御手段は、前記第１算出処理及び前記第２算出処理において、前記配置データ記憶手段から、各構造体の種類を特定し、特定した種類のブロック対角行列に対応する上三角行列及び下三角行列を前記分解行列データ記憶手段から抽出し、前記構造体の配置に応じて並べることにより、縁部分がないブロック対角行列の上三角行列及び下三角行列を生成することを要旨とする。
【０００７】
請求項３に記載の発明は、請求項１又は２に記載の挙動解析システムにおいて、節点が接触した場合の条件を示した各平衡方程式に対応付けて、上三角行列の行要素及び下三角行列の列要素を記憶する縁部分分解要素データ記憶手段を更に備え、前記制御手段は、時間ステップループの外側において、構造体において接触する可能性があるすべての節点が接触した場合の条件を示した平衡方程式を縁付きブロック対角行列の縁部分として生成し、この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて前記縁部分分解要素データ記憶手段に記憶し、前記時間ステップループ内において、接触があると判定した場合には、接触があると判定した節点が接触した場合の条件を示した平衡方程式に対応する下三角行列の行要素及び上三角行列の列要素を、前記縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、この行列をＬＵ分解した縁部分上三角行列及び縁部分下三角行列を生成し、前記抽出した下三角行列の行要素及び上三角行列の列要素と、前記縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、前記合成上三角行列及び前記合成下三角行列を生成することを要旨とする。
【０００８】
請求項４に記載の発明は、請求項１〜３のいずれか１項に記載の挙動解析システムにおいて、前記分解行列データ記憶手段には、時間刻み幅及びブロック対角行列に関連付けて、このブロック対角行列をＬＵ分解した上三角行列及び下三角行列が記憶されており、前記制御手段は、時間刻み幅変更判定値を用いた接触条件に対応する時間刻み幅を記憶した時間刻み幅定義データ記憶手段に接続されており、前記対角行列分解手段は、変更可能な各時間刻み幅に応じたブロック対角行列を、時間ステップループの外側においてＬＵ分解し、このＬＵ分解した上三角行列及び下三角行列を、時間刻み幅及びブロック対角行列に関連付けて記録し、前記制御手段は、時間ステップループ内において、接触があると判定した場合には、隣接する構造体の時間刻み幅変更判定値を算出し、この時間刻み幅変更判定値を用いた接触条件に対応した時間刻み幅を、これ以降に用いる時間刻み幅として特定する手段を更に備え、前記第１算出処理において、特定した時間刻み幅及び前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、前記第２算出処理において、特定した時間刻み幅に関連付けた上三角行列及び下三角行列を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列として特定し、これら上三角行列及び下三角行列に、前記縁部分の行列をＬＵ分解したＬＵ分解要素を合成して合成上三角行列及び合成下三角行列を生成することを要旨とする。
【０００９】
請求項５に記載の発明は、複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、構造体の配置に関するデータを記憶する配置データ記憶手段と、隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、各構造体の平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析する方法であって、前記制御手段が、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する段階と、この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解段階と、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、算出した挙動解析値が収束するまで前記接触判定処理、前記第１算出処理及び前記第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する段階と、前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する段階とを実行することを要旨とする。
【００１０】
請求項６に記載の発明は、複数配置される構造体の物性値に関するデータを記憶する物性値データ記憶手段と、構造体の配置に関するデータを記憶する配置データ記憶手段と、隣接する構造体との初期ギャップに関するデータを記憶するギャップデータ記憶手段と、各構造体の平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段と、制御手段とを備えた挙動解析システムを用いて、隣接する構造体の一部分と接触する場合がある構造体の挙動を解析するためのプログラムであって、前記制御手段を、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する手段、この縁付きブロック対角行列の縁部分以外の前記各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解手段、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、これらを前記構造体の配置に応じて並べることにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、算出した挙動解析値が収束するまで前記接触判定処理、前記第１算出処理及び前記第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する手段、及び前記時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する手段として機能させることを要旨とする。
【００１１】
（作用）
本発明によれば、制御手段は、各構造体の物性値データを用いて各構造体の平衡方程式を示すブロック行列を生成し、生成したブロック行列を構造体の配置データに応じた対角要素として配置するとともに、接触条件を縁部分として配置した縁付きブロック対角行列を生成する。制御手段は、この縁付きブロック対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてＬＵ分解して、分解行列データ記憶手段に記録する。制御手段は、時間ステップループ内において、初期ギャップ分移動したか否かによって接触の有無を判定する接触判定処理を実行し、接触がないと判定した場合には、各ブロック行列に対応する上三角行列及び下三角行列を、分解行列データ記憶手段から抽出し、これらを構造体の配置に応じて並べることにより生成した縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第１算出処理を実行し、接触があると判定した場合には、接触条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、縁部分の行列をＬＵ分解したＬＵ分解要素を、縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に合成して合成上三角行列及び合成下三角行列を生成し、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、構造体の挙動解析値として算出する第２算出処理を実行し、算出した挙動解析値が収束するまで接触判定処理、第１算出処理及び第２算出処理を繰り返して、この時間ステップにおける挙動解析値を算出する。制御手段は、時間ステップループ内の処理を終了時間まで繰り返して算出した挙動解析値を出力する。これにより、縁部分以外のブロック対角行列に対応する上三角行列及び下三角行列は、時間ステップループ内において毎回計算する必要がないため、演算量を少なくして、効率的に解析を行なうことができる。
【００１２】
本発明によれば、制御手段は、構造体の種類毎に、ブロック対角行列をＬＵ分解した上三角行列及び下三角行列を分解行列データ記憶手段に記録する。制御手段は、第１算出処理及び第２算出処理において、配置データ記憶手段から、各構造体の種類を特定し、特定した種類のブロック対角行列に対応する上三角行列及び下三角行列を分解行列データ記憶手段から抽出し、構造体の配置に応じて並べることにより、縁部分がないブロック対角行列の上三角行列及び下三角行列を生成する。これにより、同じ種類の構造体が複数ある場合には、同じ種類の構造体については１回のみＬＵ分解の計算をすればよいので、演算量を少なくして、効率的に解析を行なうことができる。
【００１３】
本発明によれば、制御手段は、時間ステップループの外側において、構造体において接触する可能性があるすべての節点が接触した場合の条件を示した平衡方程式を縁付きブロック対角行列の縁部分として生成し、この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて縁部分分解要素データ記憶手段に記憶し、時間ステップループ内において、接触があると判定した場合には、接触があると判定した節点が接触した場合の条件を示した平衡方程式に対応する下三角行列の行要素及び上三角行列の列要素を、縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、この行列をＬＵ分解した縁部分上三角行列及び縁部分下三角行列を生成し、抽出した下三角行列の行要素及び上三角行列の列要素と、縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、合成上三角行列及び合成下三角行列を生成する。これにより、時間ステップループ内において、縁部分のＬＵ分解要素を毎回、算出しなくてよいので、演算量を少なくして、効率的に解析を行なうことができる。
【００１４】
本発明によれば、制御手段は、時間ステップループ内において、接触があると判定した場合には、隣接する構造体の時間刻み幅変更判定値を算出し、この時間刻み幅変更判定値を用いた接触条件に対応した時間刻み幅を、これ以降に用いる時間刻み幅として特定する。制御手段は、第１算出処理において、特定した時間刻み幅及び各ブロック行列に対応する上三角行列及び下三角行列を、分解行列データ記憶手段から抽出する。制御手段は、第２算出処理において、特定した時間刻み幅に関連付けた上三角行列及び下三角行列を、縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列として特定し、これら上三角行列及び下三角行列に、縁部分の行列をＬＵ分解したＬＵ分解要素を合成して合成上三角行列及び合成下三角行列を生成する。これにより、時間刻み幅変更判定値に応じて時間刻み幅を変更させるとともに、時間ステップループの内側での演算量を抑制して、効率的に解析を行なうことができる。
【発明の効果】
【００１５】
本発明によれば、構造体の挙動を効率的に解析するための挙動解析システム、挙動解析方法及び挙動解析プログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施形態における挙動解析装置の構成を説明する説明図。
【図２】第１の実施形態における挙動解析対象の構造物を説明する説明図であって、（ａ）はモデル化した節点の平面配置図、（ｂ）はモデル化した節点の垂直配置図、（ｃ）は平面における節点素同士の関係方程式を示したモデル図。
【図３】実施形態の解析対称の構造物の挙動を表す方程式を説明する説明図。
【図４】ＬＵ分解を用いた方程式の算出方法を説明する説明図。
【図５】第１の実施形態における方程式についての説明図であり、（ａ）はＬＵ分解についての説明図、（ｂ）は接触を表す式がＬＵ分解可能を検証する式の説明図、（ｃ）は変位修正量及び加速度修正量の算出についての説明図。
【図６】第１の実施形態の挙動解析処理の処理手順の説明図。
【図７】第１の実施形態の挙動解析処理の結果を示す説明図であり、（ａ）、（ｂ）、（ｃ）は、それぞれ左側、中央、右側の構造体の挙動解析結果を示す。
【図８】第２の実施形態の挙動解析処理の処理手順の説明図。
【図９】変更例における非線形構造解析における定量化の説明図。
【発明を実施するための形態】
【００１７】
（第１の実施形態）
以下、本発明の挙動解析システム、挙動解析方法及び挙動解析プログラムを具体化した第１の実施形態を図１〜図７に基づいて説明する。本実施形態では、複数配置された構造体の挙動を解析するための挙動解析システムについて説明する。本実施形態では、挙動を解析する対象の構造体は、隣接する構造体と予め定めた部分を介して接触し、他と接触しない限り独立した構造体として挙動する。この構造体の詳細については、後述する。
【００１８】
本実施形態では、挙動解析システムとして、図１に示す挙動解析装置２０を用いる。この挙動解析装置２０は、構造体の挙動解析処理を行なうコンピュータである。この挙動解析装置２０は、入力部１１及び出力部１２に接続されている。入力部１１は、キーボードやマウス等であり、解析処理に用いる各種指示や各種データを入力するために用いられる。出力部１２はディスプレイ等であり、解析結果を出力するために用いられる。
【００１９】
挙動解析装置２０は、制御部２１、物性値データ記憶部２２、配置位置データ記憶部２３、時間定義データ記憶部２４、初期値データ記憶部２５を備える。更に、この挙動解析装置２０は、対角行列ＬＵ分解データ記憶部２６、縁部分ＬＵ分解データ記憶部２７、挙動解析値データ記憶部２８を備えている。
【００２０】
制御部２１は、構造体の挙動についての解析処理を実行する。この制御部２１は、図示しないＣＰＵ、ＲＡＭ及びＲＯＭ等からなる制御手段として機能し、後述する処理（計算管理段階、ＬＵ分解計算時間段階、ステップ計算段階及び接触部計算段階等を含む処理）を行なう。そして、このための挙動解析プログラムを実行することにより、制御部２１は、計算管理手段２１１、ＬＵ分解手段２１２、時間ステップ計算手段２１３及び接触部計算手段２１４等として機能する。
【００２１】
計算管理手段２１１は、構造体の挙動を解析する処理の全体処理を管理する処理を実行する。計算管理手段２１１は、構造体をモデル化した節点に対してナンバリングを行なうためのルールを記憶している。このナンバリングのルールについての詳細は後述する。
ＬＵ分解手段２１２は、対角行列分解手段として機能し、対角行列分解段階を実行する。このＬＵ分解手段２１２は、構造体の挙動を表す方程式についてＬＵ分解処理を実行する。この方程式についてのＬＵ分解処理及びＬＵ分解の行列の解の算出についての詳細は、後述する。
【００２２】
時間ステップ計算手段２１３は、各時間ステップ内における算出処理を管理しながら、ＬＵ分解した行列等を用いて、挙動解析値を算出する処理を実行する。このため、時間ステップ計算手段２１３は、現在の時間ステップを記憶するメモリを備える。更に、時間ステップ計算手段２１３は、この時間ステップにおける算出処理を終了させるか否かを判断する。本実施形態では、各時間ステップにおいて、後述する方程式の残差及び拘束条件の残差が、後述する収束判定値より小さくなった場合には、この時間ステップにおける算出処理を終了すると判定する。また、時間ステップ計算手段２１３は、これら残差が、収束判定値以上の場合には、反復回数を「１」増加させて、後述する処理を繰り返して実行する。
【００２３】
更に、時間ステップ計算手段２１３は、ＬＵ分解によって生成した下三角行列Ｌ及び上三角行列Ｕを用いて、後述するように、方程式の解として速度修正量｛ｄＶn+1,(i+1)｝を算出するための算出プログラムを記憶している。また、時間ステップ計算手段２１３は、算出した速度修正量｛ｄＶn+1,(i+1)｝を用いて、変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝を算出するための後述する算出式を記憶している。そして、時間ステップ計算手段２１３は、算出した変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝を挙動解析値データ記憶部２８に記録する。
【００２４】
接触部計算手段２１４は、この時間ステップにおける接触部に関する方程式の算出処理を実行する。この場合、接触部計算手段２１４は、この時間ステップにおける縁部分の行列Ｈ(i)を特定する。この縁部分の行列Ｈ(i)の詳細については、後述する。
【００２５】
物性値データ記憶部２２は、物性値データ記憶手段として機能する。物性値データ記憶部２２には、構造体の種類毎に、構造体の物性値に関するデータが記録されている。本実施形態では、物性値に関するデータとして、３次元形状の寸法、質量密度、ヤング率、ポアソン比、バネ剛性、減衰係数、断面積及び断面２次モーメント等に関するデータが含まれている。これら物性値は、解析する構造体の種類が特定された場合には、解析処理を実行する前に、入力部１１を用いて入力される。本実施形態の構造体は、断面が六角柱形状をした長尺物である。各構造体には、径方向に突出するフランジ部が数箇所形成されている。そして、各構造体は、このフランジ部のみを介して、他の構造体と接触する。本実施形態では、構造体を構成する材料の物性値から、種類毎に算出された構造体の物性値が記録される。
【００２６】
配置位置データ記憶部２３は、配置データ記憶手段として機能する。この配置位置データ記憶部２３には、容器に収容される構造体の配置位置に関するデータが記録されている。この配置位置データは、配置された構造体の位置データが、構造体の種類を特定する種類識別データと関連付けられている。本実施形態では、解析する構造体の配置位置は、解析処理を実行する前に、入力部１１を用いて入力される。本実施形態では、容器内に複数の構造体が収容されており、図２（ａ）に示すように、他の構造体と、初期ギャップｄ０の間隔で同心六角形上に配置される。
【００２７】
時間定義データ記憶部２４には、解析処理に用いる時間発展に関する定義データが記録される。この時間定義データには、時間刻み幅、終了時間ステップ及び収束判定値等に関するデータが含まれている。本実施形態では、時間刻み幅、終了時間ステップ及び収束判定値は、解析処理を実行する前に、入力部１１を用いて入力される。ここで、時間刻み幅としては、例えば１．０×１０-3が記録されている。終了時間ステップとしては、例えば、「１５０００」が記憶されている。収束判定値としては、例えば１．０×１０-6が記憶されている。
【００２８】
初期値データ記憶部２５は、ギャップデータ記憶手段として機能する。この初期値データ記憶部２５には、挙動解析に用いる各節点の初期ギャップｄ０、各節点の初期位置｛Ｘi｝、各節点の変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝の初期値が記憶されている。更に、方程式で用いるニューマークのβ法におけるパラメータβ，γの値が記憶されている。本実施形態では、これら初期値は、解析処理を実行する前に、入力部１１を用いて入力される。また、本実施形態では、各節点の初期変位Ｕ０、各節点の初期速度Ｖ０及び各節点の初期加速度Ａ０としては、すべて「０」を用いる。また、パラメータβ，γは、それぞれ１／４、１／２が記録されている。
【００２９】
対角行列ＬＵ分解データ記憶部２６は、分解行列データ記憶手段として機能する。対角行列ＬＵ分解データ記憶部２６には、ブロック行列Ａ(i)をＬＵ分解したことによって得られる下三角行列Ｌ(i)と、上三角行列Ｕ(i)とに関するデータが記憶される。本実施形態では、構造体の種類毎にブロック行列Ａ(i)が生成されるため、構造体の種類毎に下三角行列Ｌ(i)及び上三角行列Ｕ(i)が記憶される。
【００３０】
縁部分ＬＵ分解データ記憶部２７は、縁部分分解要素データ記憶手段として機能する。縁部分ＬＵ分解データ記憶部２７には、縁部分の行列Ｈ(i)をＬＵ分解したことによって得られる下三角行列の行要素ｌ(i)と、上三角行列の列要素ｕ(i)に関するデータが記憶されている。本実施形態では、接触する可能性がある構造体同士がすべて接触した場合の条件を表した行列Ｈ(i)をＬＵ分解した要素ｌ(i)，ｕ(i)が記憶されている。これら下三角行列の行要素ｌ(i)と、上三角行列の列要素ｕ(i)がＬＵ分解要素に相当する。
【００３１】
挙動解析値データ記憶部２８は、挙動解析によって算出される各節点の算出値に関するデータを記憶する。本実施形態では、算出値として、時間ステップ毎に算出した変位｛Ｕ｝、速度｛Ｖ｝、加速度｛Ａ｝を記憶する。この時間ステップ毎の算出値は、残差が収束するまで後述する処理を繰り返すことによって算出されるので、収束するまでは、時間ステップ毎の算出値は順次、更新されて記録される。
【００３２】
（構造体のモデル化）
次に、挙動を解析するための構造体のモデル化及びその方程式について詳述する。
本実施形態では、各構造体を節点で示す有限要素法によってモデル化する。図２に表示されたすべての黒丸が、モデル化した各節点を表している。ここで、図２（ａ）及び図２（ｃ）は平面図における節点の配置図であり、図２（ｂ）は垂直面における節点の配置図である。図２（ａ）に示す平面上では、各構造体を、六角柱の側面を表す６つの節点と、中心を表す１つの節点とでモデル化する。また、側面の節点と中心の節点とは、図２（ｃ）に示すように、バネ要素及びダッシュポット要素によって連結されているとしてモデル化する。
また、図２（ｂ）に示すように、各構造体を、垂直面上では、中心軸方向に一列に整列する節点としてモデル化する。
【００３３】
更に、構造体は、上述のように、フランジ部を介して、隣接する構造体及び容器の収容面に接触する可能性がある。そこで、フランジ部において、各構造体の表面の節点と、他の構造体の表面の節点とが、ギャップ要素によって連結されている構成でモデル化を行なう。なお、このギャップ要素には、図２（ｃ）で示すように、バネ要素が付加されている。
【００３４】
また、構造体は、容器の底面の支持板により支持されている構成でモデル化を行なう。
そして、このモデル化においては、構造体毎に、順次、各構造体に含まれる節点に対して、ナンバリングを行なう。具体的には、まず、１つの構造体における節点において、隣接する節点が連番となるようにナンバリングを行なう。この場合、各構造体について、同じルールを用いてナンバリングを行なう。ここでは、各構造体において隣接する節点が連番となるように、節点のナンバリングを行なう。例えば、上面から同一平面について連番が終了した後に、その下の節点についてナンバリングを行なう。そして、１つの構造体についてのナンバリングを完了した後で、その続き番号を用いて他の構造体のナンバリングを、同じルールを用いて行なう。
【００３５】
（構造体の挙動を示す方程式）
このようにモデル化した構造体の挙動を示す方程式について、図３及び図４を用いて説明する。
接触による拘束条件がある場合、ラグランジュの未定乗数｛Λ｝を用いて、この拘束条件を導入することにより、平衡方程式（空間方向に離散した半離散式）を算出できる。ここで、｛Λ｝はラグランジュの未定乗数を並べたベクトルを表している。具体的には、まず、歪みエネルギー密度を使用したポテンシャルエネルギーＶを示す方程式と、運動エネルギーＫを示す方程式を用いて、拘束条件を｛Ｇ（Ｕ）｝＝０とした場合のラグランジアンを算出する。
【００３６】
そして、このラグランジアンの時間の区間［ｔ1，ｔ2］における作用積分Ｉを用いて、この時間の区間［ｔ1，ｔ2］の端点における変位ベクトルの変分｛δＵ｝が境界条件δＵ（ｔ1）＝δＵ（ｔ2）＝０を満たし、かつ変位ベクトルの変分｛δＵ｝とラグランジュの未定乗数の変分｛δΛ｝の任意性を利用する。これにより、拘束条件がある場合の慣性項を含む平衡方程式は、図３の式（１−１）により表せる。
【００３７】
ここで、式（１−１）の左辺における［Ｂ］は、節点変位ベクトル｛Ｕ｝から歪みベクトル｛ε｝＝（ε11，ε22，ε33，２ε23，２ε31，２ε12）Ｔへの変換行列である。また、｛σ｝は応力ベクトルを意味する。［Ｍ］は、質量行列であり、式（１−２）で表せる。ここで、ρは質量密度である。式（１−１）における｛Ｆ｝は、荷重ベクトルであり、式（１−３）で表せる。ここで、［Ｎ］は、節点変位ベクトル｛Ｕ｝から変位ベクトルｕｉ＝ＮｑＵｉｑへの変換行列であり、ＳＮは、荷重が規定されている境界（ノイマン条件が規定されている境界）である。また、｛ｂ｝は物体力ベクトルである。また、式（１−１）〜式（１−３）におけるＶは、集合した構造体の全体領域を意味する。
【００３８】
そして、式（１−１）の平衡方程式をニュートン・ラブソン法（Newton-Raphson法）によって線形化すると、式（１−４）のようになる。ここで、右辺のＲ１は、平衡方程式の残差であり、式（１−５）で表せる。また、右辺のＲ２は、拘束条件の残差であり、式（１−６）で表せる。更に、式（１−４）の［Ｋ］は、構造体の剛性行列であり、式（１−７）で表せる。ここで、［Ｄ］は、弾性テンソルを６×６に並べた行列である。更に、［Ｈ］（＝［∂Ｇ／∂Ｕ］）は、拘束条件｛Ｇ（Ｕ）｝＝０のヤコビアンである。なお、式（１−５）及び式（１−７）のＶは、集合した構造体の全体領域を意味する。
【００３９】
そして、この式（１−４）に、陰解法であるニューマークのβ法（Newmark-β法）の仮定を導入して、加速度修正量、変位修正量、速度修正量を用いることにより、接触による拘束条件がある構造体の挙動の方程式は、式（１−８）で表せる。ここでは、速度｛Ｖ｝を主未知変数として定式化しており、式（１−８）のｄＶは速度修正量を意味している。また、式（１−８）においてβとγはニューマークのβ法におけるパラメータであり、β＝１／４かつγ＝１／２のときは無条件安定となる。
【００４０】
ここで、隣接する２つの構造体の接触をギャップ要素でモデル化し、一方の構造体ｉに含まれる第ｐ番節点と、他方の構造体ｊに含まれる第ｑ番節点によってギャップ要素が構成されると仮定する。この２つの節点の変位を｛Ｕｐ｝，｛Ｕｑ｝とした場合、相対変位｛Ｕｐｑ｝＝｛Ｕｑ｝−｛Ｕｐ｝となる。そこで、初期位置を｛Ｘｐ｝，｛Ｘｑ｝とした場合、位置（ベクトル）｛Ｘｐｑ｝＝（｛Ｘｑ｝−｛Ｘｐ｝）／│｛Ｘｑ｝−｛Ｘｐ｝│の方向に、相対変位｛Ｕｐｑ｝が初期ギャップｄ０だけ発生した場合に接触し、そうでなければ接触していないと判定する。従って、接触条件は式（１−９）で表せる。ここで、「・」は内積を表す。
【００４１】
節点は構造体の側面を表しているため、実際には２つの節点が接触面を貫通することはなく接触面に留まる。従って、式（１−９）における不等号を除いた式（｛Ｕｐｑ｝・｛Ｘｐｑ｝＋ｄ０＝０）を満たす必要がある。式（１−８）においては、時刻歴応答の節点における速度｛Ｖ｝を主未知変数としているので、式（１−９）における不等号を除いた式を、節点の速度｛Ｖｐｑ｝＝｛Ｖｑ｝−｛Ｖｐ｝で書き換えると、式（１−１０）になる。
【００４２】
そして、ギャップ要素による拘束条件の式（１−１０）をラグランジュの未定乗数λを導入して、式（１−８）に組み込むと、式（１−１１）になる。ここで、「λ」は、ラグランジュの未定乗数｛Λ｝のベクトルに含まれる１成分の値であり、式（１−１１）においては、１成分のみを表している。ここで、右下の括弧付きの添え字は、各構造体の番号を示し、［Ａ(n)］は、式（１−１２）で示される。また、［Ｍ(n)］、［Ｋ(n)］及び［Ｃ(n)］は、第ｎ番目の構造体の質量行列、剛性行列及び減衰行列をそれぞれ表している。従って、［Ａ(i)］はギャップ要素の片方の第ｐ番節点を含む構造体ｉに対応したブロック行列を示し、［Ａ(j)］は、もう片方の第ｑ番節点を含む構造体ｊに対応したブロック行列を表している。また、ベクトル｛ｈ(i)｝は、拘束条件の式（１−１０）におけるベクトル｛Ｖｑ｝に対応する係数を並べたものであり、式（１−１３）で表せる。ただし、ベクトル{ｈ(i)}の非ゼロ成分｛Ｘｐｑ｝の位置は、構造体ｉに含まれる節点全体における第ｐ番節点のナンバリングに依存する。
【００４３】
ここで、接触している節点同士が複数ある場合には、接触している箇所の数の分だけラグランジュの未定乗数があり、これらに対応するベクトル{ｈ(i)}を並べた方程式になる。この複数のベクトル{ｈ(i)}を並べた場合の方程式は、図４の式（１−１４）のように表せる。この式においては、第１ギャップ要素が第ｉ構造体の節点ｐと第ｊ構造体の節点ｑから構成され、第２ギャップ要素が第ｋ構造体の節点ｒと第ｌ構造体の節点ｓから構成される場合を表している。ここで、｛ｈ(i)｝や｛ｈ(ｋ)｝は、それぞれ式（１−１５）、式（１−１６）により表される。従って、本実施形態の構造体の挙動解析を行なう場合には、式（１−１４）の方程式を解くことになる。
【００４４】
（構造体の挙動を示す方程式の算出方法）
次に、接触による拘束条件がある構造体の挙動の方程式の算出方法について、図４、図５（ａ）及び図５（ｂ）を用いて説明する。ここでは、図４の式（１−１４）の左辺の行列は、行列を表す大括弧やベクトルを表す中括弧の記号を省略し、拘束条件の係数ベクトル｛ｈ(i)｝をまとめると、式（２−１）の左辺の全体行列Ａで表せる。
【００４５】
この全体行列Ａは、相互に独立の未定乗数が含まれる縁付ブロック対角行列である。ここで、構造体の総数をＮとし、隣接する構造体がフランジ部において接触している箇所の（すなわち閉じたギャップ要素の）総数をＭとする。また、第ｉ構造体の有限要素法モデルに含まれる総自由度数をｎｉ（ｉ＝１，…，Ｎ）とする。この場合、どこも接触しておらず、すべてのギャップ要素が開いている場合はＭ＝０であり、全体行列Ａは、単純なブロック対角行列Ａ’（＝Ａ(1)＋…＋Ａ(N)）となる。
【００４６】
次に、少なくともひとつのギャップ要素が閉じている場合（Ｍ≧１）について説明する。ここで、剛体運動を排除するような固定条件を付した剛体行列Ｋ(i)は正定値対称行列となる。また、質量行列Ｍ(i)も、その定義から半正定値対称行列となる。式（２−１）におけるブロック行列Ａ(i)は、式（１−１２）におけるｎをｉに変更した式であるため、以下の２つの性質が成り立つ。
【００４７】
［性質１］Ａ(i)は正定値対称行列
ただし、全体行列Ａは拘束条件に対応する縁が存在するため、正定値にならない。
［性質２］ｒａｎｋ（Ｈ(1)・・・Ｈ(N) ）＝Ｍｉ
【００４８】
この［性質２］は、行列Ｈ＝（Ｈ(1)・・・Ｈ(N) ）のＭ個の行ベクトルが線形独立であることが必要であり、ひとつの節点が高々ひとつのギャップ要素にしか含まれなければ満たされるが、ひとつの節点が多くのギャップ要素に含まれている場合には満たされない。しかし、ギャップ要素の前後にダッシュポット要素を含むバネ要素を挿入するので、ひとつの節点が複数のギャップ要素に共有されることは稀であり、この［性質２］は満たされると考えられる。
【００４９】
この［性質１］及び［性質２］を持つ全体行列Ａは、必ず式（２−１）のように、ＬＵ分解可能である。そして、この式（２−１）の右辺を計算して、左辺の全体行列Ａと比較すると、式（２−２）〜式（２−５）が成り立つ。ブロック行列Ａ(i)は正定値対称行列であるから、ＬＵ分解（コレスキー分解）可能である。この場合、ブロック行列Ａ(i)は、式（２−２）の右辺のようにＬＵ分解される。
【００５０】
ここで、式（２−１）のＬ(i)は下三角行列であるので、式（２−３）より、要素ｕ(i)は前進代入により求められる。同様に、Ｕ(i)は上三角行列であるので、式（２−４）より、要素ｌ(i)は前進代入により求められる。こうして求めた要素ｌ(i)と要素ｕ(i)とを式（２−５）に代入すれば、図５（ｂ）の式（２−６）となる。このとき、ブロック行列Ａ(i)は正定値対称行列であるので、行列Ａ(i)-1も正定値対称行列であり、上述した［性質２］の仮定よりＨの行ベクトルは線形独立だから、式（２−６）の右辺の行列も正定値対称行列となる。従って、式（２−６）の右辺の行列はＬＵ分解可能であり、この右辺の行列をＬＵ分解した下三角行列及び上三角行列をそれぞれＬ”、Ｕ”とした場合、Ｌ’＝Ｌ”、Ｕ’＝−Ｕ”と置くことができる。従って、［性質２］が満たされる場合には、全体行列Ａを式（２−１）の形に分解できる。
【００５１】
このとき、ブロック行列Ａ(i)は変化しない（接触状況や変形に依存しない）。このため、ブロック行列Ａ(i)のＬＵ分解は、図５（ａ）に示すように、時間ステップループの外側で最初に１回だけ実行する。そして、算出した下三角行列Ｌ(i)及び上三角行列Ｕ(i)を記憶しておく。また、時間ステップの進行やその中の反復処理の進行に伴って接触状況が変化するたびに行列Ｈ(i)が更新されるので、それに合わせて、前進代入によって要素ｌ(i)と要素ｕ(i)を更新する。また、その都度、要素ｌ(i)と要素ｕ(i)とを、式（２−５）に代入して行列［Ｌ’Ｕ’］を算出し、この行列をＬＵ分解して、行列Ｌ’、Ｕ’も更新する。本実施形態では、全てのギャップ要素が閉じた場合を想定して、全てのｉ＝１，…，Ｎに対して、式（２−３）及び式（２−４）の行列Ｈ(i)を設定しておき、前進代入によって、要素ｌ(i)と要素ｕ(i)を算出する。そして、実際の接触状況に応じて、式（２−６）の右辺の行列を作成する際の総和の範囲を選択的に制限する。これにより、時間ステップループの内側では、式（２−６）のＬＵ分解のみを行なうことにより、方程式の計算時間の短縮ができる。
【００５２】
そして、ＬＵ分解によって得られた下三角全体行列Ｌ'''の解は、公知のように、前進代入によって求めることができる。更に、ＬＵ分解によって得られた上三角全体行列Ｕ'''の解は、公知のように、後退代入を用いて求めることができる。
【００５３】
この方程式においては、時刻ｔn+1における反復回数「ｉ＋１」の速度修正量｛ｄＶn+1,(i+1)｝が解として算出される。そして、この速度修正量｛ｄＶn+1,(i+1)｝を用いて、変位修正量｛ｄＵn+1,(i+1)｝及び加速度修正量｛ｄＡn+1,(i+1)｝が、それぞれ図５（ｃ）の式（３−１）及び式（３−２）によって算出できる。更に、この時間ステップ（ｉ＋１）における変位｛Ｕ｝、速度｛Ｖ｝、加速度｛Ａ｝は、それぞれ、以下の式（３−３）、式（３−４）、式（３−５）で表せられる。
【００５４】
｛Ｕn+1,(i+1)｝＝｛Ｕn+1,(i)｝＋｛ｄＵn+1,(i+1)｝      …（３−３）
｛Ｖn+1,(i+1)｝＝｛Ｖn+1,(i)｝＋｛ｄＶn+1,(i+1)｝      …（３−４）
｛Ａn+1,(i+1)｝＝｛Ａn+1,(i)｝＋｛ｄＡn+1,(i+1)｝      …（３−５）
【００５５】
（挙動解析処理）
次に、この挙動解析装置２０を用いて、構造体の挙動を解析する処理について、図６を用いて説明する。
【００５６】
まず、挙動解析装置２０の制御部２１は、入力データの読込処理を実行する（ステップＳ１１）。具体的には、制御部２１の計算管理手段２１１は、物性値データ記憶部２２から物性値データを取得し、配置位置データ記憶部２３から配置位置に関するデータを取得する。
【００５７】
次に、挙動解析装置２０の制御部２１は、ナンバリング処理を実行する（ステップＳ１２）。具体的には、制御部２１の計算管理手段２１１は、配置位置データを用いて、配置された構造体に対して、節点のナンバリングを行なう。この場合、計算管理手段２１１は、記憶しているルールを用いて、かつ１つの構造体を表す節点が連番となるようにナンバリングを行なう。
【００５８】
次に、挙動解析装置２０の制御部２１は、種類毎の構造体マトリクスの生成処理を実行する（ステップＳ１３）。具体的には、制御部２１の計算管理手段２１１は、物性値データを式（１−２）及び式（１−７）に代入して、構造体の種類毎に、この構造体の質量マトリクス［Ｍ］及び剛性マトリクス［Ｋ］を算出する。計算管理手段２１１は、算出した質量マトリクス［Ｍ］及び剛性マトリクス［Ｋ］と、物性値データの減衰係数と、初期値データのパラメータβ，γとを用いて、種類毎のブロック行列Ａ(i)を算出する。
【００５９】
次に、挙動解析装置２０の制御部２１は、縁付きマトリクスの生成処理を実行する（ステップＳ１４）。具体的には、制御部２１の計算管理手段２１１は、配置位置データを用いて、各種類の構造体のブロック行列Ａ(i)を配置順番に並べて、ブロック対角行列Ａ’を生成する。そして、計算管理手段２１１は、すべてのギャップ要素が閉じた場合の行列Ｈ(i)を、このブロック対角行列Ａ’に加えて、全体行列Ａを生成する。この場合、全体行列Ａは、縁付きブロック対角行列となる。
【００６０】
次に、挙動解析装置２０の制御部２１は、ＬＵ分解処理を実行する（ステップＳ１５）。具体的には、図４で示す式（２−１）のように、制御部２１のＬＵ分解手段２１２は、ステップＳ１４で生成した全体行列Ａの各ブロック行列Ａ(i)をＬＵ分解することにより、各下三角行列Ｌ(i)と、各上三角行列Ｕ(i)とを算出して、対角行列ＬＵ分解データ記憶部２６に記憶する。この場合、構造体の種類が同じであれば、同様な順序で節点のナンバリングをしているため、同じブロック行列Ａ(i)であり、このブロック行列Ａ(i)を分解した下三角行列Ｌ(i)及び上三角行列Ｕ(i)も同じになる。従って、ＬＵ分解手段２１２は、縁付きブロック対角行列である全体行列Ａに用いられている構造体の種類毎に、ブロック行列Ａ(i)について下三角行列Ｌ(i)及び上三角行列Ｕ(i)を算出する。そして、同じ種類の他の構造体のブロック行列Ａ(i)については、ＬＵ分解の計算を行わずに、対応する種類の下三角行列Ｌ(i)及び上三角行列Ｕ(i)を、その構造体を示す識別子（番号）に関連付けて、対角行列ＬＵ分解データ記憶部２６に記憶する。
【００６１】
また、ＬＵ分解手段２１２は、全体行列Ａの縁部分となる行列Ｈ(i)について、前進代入及び後退代入によって要素ｕ(i)と要素ｌ(i)とを算出する。具体的には、図５（ａ）に示すように、ＬＵ分解手段２１２は、行列Ｈ(i)と、上三角行列Ｕ(i)と、式（２−４）とを用いて、公知の前進代入によって、要素ｌ(i)を算出する。また、ＬＵ分解手段２１２は、行列Ｈ(i)と、下三角行列Ｌ(i)と、式（２−３）とを用いて、公知の前進代入によって、要素ｕ(i)を算出する。そして、ＬＵ分解手段２１２は、各接触を表す識別子に関連付けて、算出した要素ｌ(i)と要素ｕ(i)とを、縁部分ＬＵ分解データ記憶部２７に記憶する。
そして、計算管理手段２１１は、現在の時間ステップとして「０」を、時間ステップ計算手段２１３のメモリに記憶する。
【００６２】
そして、挙動解析装置２０の制御部２１は、終了時間前か否かの判定処理を実行する（ステップＳ１６）。具体的には、制御部２１の計算管理手段２１１は、時間定義データ記憶部２４に記憶している終了時間ステップを取得し、現在の時間ステップｔと比較する。計算管理手段２１１は、現在の時間ステップｔが終了時間ステップより小さい場合には、終了時間前と判定する（ステップＳ１６において「ＹＥＳ」）。
【００６３】
この場合、挙動解析装置２０の制御部２１は、時間ステップの更新処理を実行する（ステップＳ１７）。具体的には、制御部２１の時間ステップ計算手段２１３は、現在の時間ステップｔに「１」を加算して、メモリに記憶する。そして、反復回数を「ｉ＝０」として、以下のステップＳ１８〜Ｓ２３の反復回数「ｉ＋１」の処理を実行する。
【００６４】
次に、挙動解析装置２０の制御部２１は、接触があるか否かの判定処理を実行する（ステップＳ１８）。ここで、制御部２１は、式（１−９）を満たすか否かを判定する。具体的には、制御部２１の時間ステップ計算手段２１３は、初期値データ記憶部２５から、初期ギャップｄ０及び各節点の初期位置｛Ｘi｝を取得する。そして、時間ステップ計算手段２１３は、配置位置データ記憶部２３の配置データから、接触する可能性がある節点同士（隣接する節点同士）を特定し、位置｛Ｘｐｑ｝を算出する。
【００６５】
次に、時間ステップ計算手段２１３は、現在の反復回数が「ｉ＝０」の場合には、初期値データ記憶部２５から各節点の初期変位｛Ｕ｝（＝０）を取得し、現在の反復回数が「１」以上の場合には、挙動解析値データ記憶部２８から、反復回数が１つ前の各節点の変位｛Ｕ｝を取得する。そして、時間ステップ計算手段２１３は、取得した各節点の位置｛Ｘｐｑ｝と変位｛Ｕ｝との内積を算出し、これに初期ギャップｄ０を加算した値が、０以下であるか否かを判定する。
【００６６】
ここで、式（１−９）を満たす節点同士が１つもないことにより、接触なしの場合（ステップＳ１８において「ＮＯ」の場合）、挙動解析装置２０の制御部２１は、縁部分ｅがないブロック対角行列Ａ’に対応する下三角全体行列Ｌ及び上三角全体行列Ｕを算出処理対象と特定する。具体的には、制御部２１の時間ステップ計算手段２１３は、対角行列ＬＵ分解データ記憶部２６から、各ブロック行列Ａ(i)に対応する各下三角行列Ｌ(i)と上三角行列Ｕ(i)を抽出する。そして、時間ステップ計算手段２１３は、抽出した各下三角行列Ｌ(i)を各構造体の配置データに応じた対角要素として配置して、下三角全体行列Ｌを生成する。また、時間ステップ計算手段２１３は、抽出した上三角行列Ｕ(i)を各構造体の配置データに応じた対角要素として配置して、上三角全体行列Ｕを生成する。
そして、制御部２１は、以下のステップＳ１９，Ｓ２０の処理をスキップする。
【００６７】
一方、式（１−９）を満たす節点同士が少なくとも１つあることにより、接触ありの場合（ステップＳ１８において「ＹＥＳ」の場合）、挙動解析装置２０の制御部２１は、接触条件を満足する縁部分の生成処理を実行する（ステップＳ１９）。具体的には、制御部２１の接触部計算手段２１４は、式（１−９）を満たすことにより接触したと判定された節点同士の行ベクトルを特定する。そして、図４の式（１−１４）に示すように、この行ベクトルを並べた縁部分ｅの行列Ｈ(i)（及びこの行列Ｈ(i)に対応する転置行列Ｈ(i)Ｔ）を生成する。
【００６８】
次に、挙動解析装置２０の制御部２１は、縁部分の行列Ｈ(i)のＬＵ分解処理を実行する（ステップＳ２０）。具体的には、制御部２１のＬＵ分解手段２１２は、ステップＳ１９で生成した縁部分の行列Ｈ(i)，Ｈ(i)Ｔに対応する要素ｌ(i)と要素ｕ(i)とを縁部分ＬＵ分解データ記憶部２７から抽出する。ＬＵ分解手段２１２は、抽出した要素ｕ(i)の行列を入れ替えて要素ｕ(i)Tを生成し、この要素ｕ(i)Tと、抽出した要素ｌ(i)とを、式（２−５）に代入して、行列［Ｌ’Ｕ’］を算出する。そして、ＬＵ分解手段２１２は、この行列［Ｌ’Ｕ’］をＬＵ分解することにより、行列Ｌ’及び行列Ｕ’を算出する。
【００６９】
そして、ＬＵ分解手段２１２は、図５（ａ）に示すように、縁部分ｅがない全体行列Ａを構成する各ブロック行列Ａ(i)に対応する各下三角行列Ｌ(i)と上三角行列Ｕ(i)を対角行列ＬＵ分解データ記憶部２６から抽出し、下三角全体行列Ｌと上三角全体行列Ｕとを生成する。
【００７０】
更に、ＬＵ分解手段２１２は、図５（ａ）に示すように、生成した下三角全体行列Ｌに対して、抽出した要素ｌ(i)と、算出した行列Ｌ’とを合成した下三角全体行列Ｌ'''を生成する。また、ＬＵ分解手段２１２は、生成した上三角全体行列Ｕに対して、抽出した要素ｕ(i)Tと、算出した行列Ｕ’とを合成した上三角全体行列Ｕ'''を生成する。そして、ＬＵ分解手段２１２は、生成した下三角全体行列Ｌ'''及び上三角全体行列Ｕ'''を算出処理対象と特定する。
【００７１】
次に、挙動解析装置２０の制御部２１は、前進代入、後退代入による置換処理を実行する（ステップＳ２１）。具体的には、制御部２１の時間ステップ計算手段２１３は、算出処理対象の下三角全体行列Ｌ（又は下三角全体行列Ｌ'''）の解を、公知の前進代入によって算出する。また、この下三角全体行列Ｌ（又は下三角全体行列Ｌ'''）の解を用いて、時間ステップ計算手段２１３は、算出処理対象の上三角全体行列Ｕ（又は上三角全体行列Ｕ'''）の解を、公知の後退代入によって算出する。これにより、時間ステップ計算手段２１３は、速度修正量｛ｄＶn+1,(i+1)｝を算出する。時間ステップ計算手段２１３は、式（３−１）及び式（３−２）に、算出した速度修正量｛ｄＶn+1,(i+1)｝を代入することにより、変位修正量｛ｄＵn+1,(i+1)｝及び加速度修正量｛ｄＡn+1,(i+1)｝を算出する。
【００７２】
そして、時間ステップ計算手段２１３は、挙動解析値データ記憶部２８に既に変位｛Ｕn+1,(i)｝、速度｛Ｖn+1,(i)｝及び加速度｛Ａn+1,(i)｝が記録されている場合には、これらを取得する。なお、記録されていない場合には、これらの値は「０」と設定する。時間ステップ計算手段２１３は、取得した変位｛Ｕn+1,(i)｝と変位修正量｛ｄＵn+1,(i+1)｝とを式（３−３）に代入して、この反復回数「ｉ＋１」における変位｛Ｕ｝を算出する。時間ステップ計算手段２１３は、取得した速度｛Ｖn+1,(i)｝と速度修正量｛ｄＶn+1,(i+1)｝とを式（３−４）に代入して、この反復回数「ｉ＋１」における速度｛Ｖ｝を算出する。時間ステップ計算手段２１３は、取得した加速度｛Ａn+1,(i)｝と加速度修正量｛ｄＡn+1,(i+1)｝とを式（３−５）に代入して、この反復回数「ｉ＋１」における加速度｛Ａ｝を算出する。
【００７３】
次に、挙動解析装置２０の制御部２１は、変位、速度、加速度の更新処理を実行する（ステップＳ２２）。具体的には、制御部２１の時間ステップ計算手段２１３は、算出した変位｛Ｕn+1,(i)｝、速度｛Ｖn+1,(i)｝及び加速度｛Ａn+1,(i)｝を、この時間ステップ（ｎ＋１）に関連付けて、挙動解析値データ記憶部２８に記録される。この場合、時間ステップ計算手段２１３は、挙動解析値データ記憶部２８に、この時間ステップに関連付けられた速度｛Ｖ｝、変位｛Ｕ｝及び加速度｛Ａ｝が既に記録されている場合には、この値に上書きする。
【００７４】
次に、挙動解析装置２０の制御部２１は、収束したか否かの判定処理を実行する（ステップＳ２３）。ここで、制御部２１は、方程式の残差Ｒ１と拘束条件の残差Ｒ２とが、収束判定値より小さくなったか否かを判定する。具体的には、制御部２１の時間ステップ計算手段２１３は、算出した各節点の変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝を式（１−５）及び式（１−６）に代入し、残差Ｒ１，Ｒ２を算出する。そして、算出した各残差Ｒ１，Ｒ２を収束判定値と比較する。
【００７５】
そして、残差Ｒ１，Ｒ２が収束判定値より大きいために、収束していないと判定した場合（ステップＳ２３において「ＮＯ」の場合）、挙動解析装置２０の制御部２１は、ステップＳ１８以降の処理を繰り返して実行する。この場合、制御部２１は、反復回数を「１」増加させるとともに、挙動解析値データ記憶部２８において更新された各節点の変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝を用いて処理を実行する。
【００７６】
一方、残差Ｒ１，Ｒ２が収束判定値以下となっており、収束したと判定した場合（ステップＳ２３において「ＹＥＳ」の場合）、挙動解析装置２０の制御部２１は、ステップＳ１６以降の処理を繰り返して実行する。
【００７７】
そして、ステップＳ１６において、現在の時間ステップが終了時間ステップに到達した場合には、挙動解析装置２０の制御部２１は、終了時間前でないと判定する（ステップＳ１６において「ＮＯ」）。
【００７８】
次に、挙動解析装置２０の制御部２１は、解析結果の出力処理を実行する（ステップＳ２４）。具体的には、制御部２１の計算管理手段２１１は、解析結果終了画面を出力部１２に表示する。この解析結果終了画面には、挙動を解析した構造体の配置図が、選択可能に表示されている。ここで、配置図上で、所望の構造体の節点と、出力する値（変位｛Ｕ｝、速度｛Ｖ｝、加速度｛Ａ｝）とが選択された場合、計算管理手段２１１は、選択された構造体の節点における値を、開始時間から終了時間まで実線で表示する。例えば、図７には、３本の構造体の上面側のフランジ部における変位の挙動解析結果を表示している。図７（ａ）は、図２（ｂ）において振動を加えた収容面側に位置する左側の構造体、図７（ｂ）は、図２において容器内の中央に位置した構造体、図７（ｂ）は、図２において、振動を加えた収容面側の反対側に位置する右側の構造体を示す。なお、図７（ａ）〜図７（ｃ）における白抜き点は、従来の方式によって算出した挙動解析結果である。
【００７９】
本実施形態によれば、以下に示す効果を得ることができる。
（１）本実施形態では、挙動解析装置２０の制御部２１は、全体行列Ａの縁部分を除いたブロック対角行列Ａ’を構成する各ブロック行列Ａ(i)について、時間ステップのループの外側で、ＬＵ分解処理を実行する（ステップＳ１５）。制御部２１は、時間ステップループ内において、接触がある場合には、接触条件を満足する縁部分の行列Ｈ(i)の生成処理を実行する（ステップＳ１９）。制御部２１は、縁部分の行列Ｈ(i)のＬＵ分解による要素ｌ(i)，ｕ(i)Tと行列Ｌ’、Ｕ’とを、ブロック対角行列Ａ’に対応する行列Ｌ，Ｕに加えて、処理対象の全体行列Ｌ'''、Ｕ'''を特定し、変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝を更新することを繰り返して、この時間ステップの変位｛Ｕ｝、速度｛Ｖ｝及び加速度｛Ａ｝を算出する。これにより、時間ステップ内においては、ブロック行列Ａ(i)に対応するＬＵ分解は行わず、縁部分に対応するＬＵ分解のみを行なうので、演算量を少なくして、効率的に解析を行なうことができる。
【００８０】
（２）本実施形態では、挙動解析装置２０の制御部２１は、縁付きブロック対角行列の縁部分を除いた各ブロック行列Ａ(i)について、時間ステップのループの外側で、ＬＵ分解処理を実行する（ステップＳ１５）。この場合、制御部２１は、縁付きブロック対角行列を生成する全体行列Ａに用いられている構造体の種類毎に、ブロック行列Ａ(i)について下三角行列Ｌ(i)及び上三角行列Ｕ(i)を算出する。これにより、同じ種類の構造体が複数ある場合には、同じ種類の構造体については１回のみＬＵ分解の計算をすれば、すべての構造体についてＬＵ分解する必要がないので、演算量を少なくすることができる。更に、構造体の種類に対応するブロック行列Ａ(i)を記憶すればよいので、必要なメモリサイズを小さくすることができる。
【００８１】
（３）本実施形態では、挙動解析装置２０の制御部２１は、全てのギャップ要素が閉じた場合の行列Ｈ(i)についての要素ｌ(i)，ｕ(i)を算出して、縁部分ＬＵ分解データ記憶部２７に記憶する。制御部２１は、接触条件を満足する縁部分の行列Ｈ(i)を生成し、これに対応する要素ｌ(i)，ｕ(i)を、縁部分ＬＵ分解データ記憶部２７から抽出し、これらｌ(i)，ｕ(i)を用いて、縁部分の行列Ｈ(i)のＬＵ分解処理を実行する（ステップＳ２０）。これにより、時間ステップループ内において、縁部分の行列Ｈ(i)の要素ｌ(i)，ｕ(i)Tを毎回、算出しなくてよいので、演算量を少なくすることができる。
【００８２】
（第２の実施形態）
次に、図８を用いて、本発明の第２実施形態について説明する。本実施形態においては、隣接する節点のめり込み量に応じて時間刻み幅を変更する構成であり、上記第１実施形態と同様な部分については、同一の符号を付し、その詳細な説明は省略する。
本実施形態の挙動解析装置２０では、時間刻み幅Δｔを変更可能とする。本実施形態では、以下の時間刻み幅Δｔに変更可能な場合を想定する。
・標準（＝ｄｔ）
・標準の１／１０（＝ｄｔ×０．１）
・標準の１／１００（＝ｄｔ×０．０１）
・標準の１／１０００（＝ｄｔ×０．００１）
・標準の１／１００００（＝ｄｔ×０．０００１）
【００８３】
具体的には、挙動解析装置２０の制御部２１のＬＵ分解手段２１２は、設定した時間刻み幅Δｔ毎に、構造体の挙動を示す方程式についてのＬＵ分解処理を実行する。
更に、本実施形態の制御部２１の時間ステップ計算手段２１３は、現在の時間ステップループにおいて用いる時間刻み幅を記憶するメモリ（時間刻み幅定義データ記憶手段）を備える。
【００８４】
また、本実施形態の初期値データ記憶部２５に、時間ステップの時間刻み幅Δｔを特定するための時間刻み幅変更閾値を記憶させておく。この時間刻み幅変更閾値は、隣接する節点におけるめり込み量に対応させて、複数の値が記録されている。本実施形態では、時間刻み幅変更閾値が大きくなるに従って、より小さい時間刻み幅Δｔと関連付けられている。本実施形態では、時間刻み幅変更閾値に対して、上述のように、標準、標準の１／１０、１／１００、１／１０００、１／１００００が記憶されている。
【００８５】
更に、本実施形態では、対角行列ＬＵ分解データ記憶部２６には、下三角行列Ｌ(i)及び上三角行列Ｕ(i)が、構造体の種類毎だけでなく、時間ステップの時間刻み幅Δｔにも関連付けて記憶される。
【００８６】
（挙動解析処理）
次に、図８を用いて構造体の挙動を解析する処理について説明する。
まず、挙動解析装置２０の制御部２１は、第１実施形態と同様に、入力データの読込処理、ナンバリング処理、種類毎の構造体マトリクスの生成処理及び縁付きマトリクスの生成処理を実行する（ステップＳ１１〜Ｓ１４）。この縁付きマトリクスの生成処理において、挙動解析装置２０の制御部２１は、設定した各時間刻み幅Δｔに応じた全体行列Ａを生成する。
【００８７】
次に、挙動解析装置２０の制御部２１は、ＬＵ分解処理を実行する（ステップＳ１５）。ここで、制御部２１のＬＵ分解手段２１２は、設定した各時間刻み幅Δｔに応じた全体行列Ａの各ブロック行列Ａ(i)をＬＵ分解することにより、各下三角行列Ｌ(i)と、各上三角行列Ｕ(i)とを算出して、対角行列ＬＵ分解データ記憶部２６に記憶する。従って、ＬＵ分解手段２１２は、縁付きブロック対角行列である全体行列Ａに用いられている構造体の種類毎に、かつ時間刻み幅Δｔ毎に、ブロック行列Ａ(i)について下三角行列Ｌ(i)及び上三角行列Ｕ(i)を算出する。そして、同じ種類の他の構造体のブロック行列Ａ(i)については、ＬＵ分解の計算を行わずに、対応する種類の下三角行列Ｌ(i)及び上三角行列Ｕ(i)を、その構造体を示す識別子（番号）及び各時間刻み幅Δｔに関連付けて、対角行列ＬＵ分解データ記憶部２６に記憶する。
【００８８】
また、ＬＵ分解手段２１２は、設定した各時間刻み幅Δｔに応じた全体行列Ａの縁部分となる行列Ｈ(i)について、前進代入及び後退代入によって要素ｕ(i)と要素ｌ(i)とを算出する。そして、ＬＵ分解手段２１２は、各接触を表す識別子及び各時間刻み幅Δｔに関連付けて、算出した要素ｌ(i)と要素ｕ(i)とを、縁部分ＬＵ分解データ記憶部２７に記憶する。
そして、計算管理手段２１１は、現在の時間ステップの「０」とともに、現在の時間刻み幅Δｔ（ここでは「標準」）を特定するデータを、時間ステップ計算手段２１３のメモリに記憶する。
【００８９】
次に、挙動解析装置２０の制御部２１は、ステップＳ１６と同様に、終了時間前か否かの判定処理を実行する（ステップＳ３０）。ここで、計算管理手段２１１は、現在の時間ステップｔが終了時間ステップより小さい場合には、終了時間前と判定する（ステップＳ３０において「ＹＥＳ」）。この場合、挙動解析装置２０の制御部２１は、ステップＳ１７，Ｓ１８と同様に、時間ステップの更新処理、接触があるか否かの判定処理を実行する（ステップＳ３１，Ｓ３２）。
ここで、接触なしの場合（ステップＳ３２において「ＮＯ」の場合）には、制御部２１は、後述するステップＳ３３〜Ｓ３６の処理をスキップする。
【００９０】
一方、接触ありの場合（ステップＳ３２において「ＹＥＳ」の場合）、挙動解析装置２０の制御部２１は、めり込み量を用いて時間刻み幅Δｔの特定処理を実行する（ステップＳ３３）。具体的には、制御部２１の時間ステップ計算手段２１３は、ステップＳ３２において算出しためり込み量（各節点の位置｛Ｘｐｑ｝と変位｛Ｕ｝との内積に初期ギャップｄ０を加算した値の絶対値）と、初期値データ記憶部２５に記憶された各時間刻み幅変更閾値とを比較する。そして、時間ステップ計算手段２１３は、めり込み量に対応する時間刻み幅変更閾値を特定し、この時間刻み幅変更閾値に関連付けられた時間刻み幅Δｔを特定する。ここでは、時間刻み幅変更閾値として、めり込み量より小さい閾値の中で最大のものを特定する。
【００９１】
次に、挙動解析装置２０の制御部２１は、特定した時間刻み幅Δｔへの設定処理を実行する（ステップＳ３４）。具体的には、時間ステップ計算手段２１３は、特定した時間刻み幅Δｔを、メモリに記憶する。
【００９２】
次に、挙動解析装置２０の制御部２１は、ステップＳ１９、Ｓ２０と同様に、接触条件を満足する縁部分の生成処理及び縁部分の行列Ｈ(i)のＬＵ分解処理を実行する（ステップＳ３５、Ｓ３６）。この縁部分の行列Ｈ(i)のＬＵ分解処理において、制御部２１のＬＵ分解手段２１２は、現在の時間刻み幅Δｔをメモリから取得し、ステップＳ３５で生成した縁部分の行列Ｈ(i)，Ｈ(i)Ｔに対応し、かつ現在の時間刻み幅Δｔの要素ｌ(i)と要素ｕ(i)とを縁部分ＬＵ分解データ記憶部２７から抽出する。そして、ＬＵ分解手段２１２は、上記第１の実施形態と同様に、抽出した要素ｕ(i)と要素ｌ(i)とを用いて行列［Ｌ’Ｕ’］を算出し、この行列［Ｌ’Ｕ’］をＬＵ分解することにより、行列Ｌ’及び行列Ｕ’を算出する。
【００９３】
次に、ＬＵ分解手段２１２は、縁部分ｅがない全体行列Ａを構成する各ブロック行列Ａ(i)で、現在の時間刻み幅Δｔに関連付けられた各下三角行列Ｌ(i)と上三角行列Ｕ(i)を対角行列ＬＵ分解データ記憶部２６から抽出し、下三角全体行列Ｌと上三角全体行列Ｕとを生成する。
更に、ＬＵ分解手段２１２は、下三角全体行列Ｌ'''と上三角全体行列Ｕ'''とを生成して、これらを算出処理対象と特定する。
【００９４】
次に、挙動解析装置２０の制御部２１は、ステップＳ２１〜Ｓ２３と同様に、前進代入、後退代入による置換処理、変位、速度、加速度の更新処理及び収束したか否かの判定処理を実行する（ステップＳ３７〜Ｓ３９）。そして、収束していないと判定した場合（ステップＳ３９において「ＮＯ」の場合）、挙動解析装置２０の制御部２１は、ステップＳ３２以降の処理を繰り返して実行する。一方、収束したと判定した場合（ステップＳ３９において「ＹＥＳ」の場合）、挙動解析装置２０の制御部２１は、ステップＳ３０以降の処理を繰り返して実行する。
【００９５】
そして、挙動解析装置２０の制御部２１は、終了時間を経過したと判定した場合（ステップＳ３０において「ＮＯ」の場合）、解析結果の出力処理を実行する（ステップＳ４０）。
【００９６】
本実施形態によれば、上記（１）〜（３）と同様の効果に加えて、以下に示す効果を得ることができる。
（４）本実施形態では、挙動解析装置２０の制御部２１は、ＬＵ分解処理（ステップＳ１５）において、算出した各下三角行列Ｌ(i)と各上三角行列Ｕ(i)とを各時間刻み幅Δｔに関連付けて対角行列ＬＵ分解データ記憶部２６に記憶する。更に、制御部２１は、各時間刻み幅Δｔに関連付けて、算出した要素ｌ(i)と要素ｕ(i)とを、縁部分ＬＵ分解データ記憶部２７に記憶する。そして、接触ありの場合（ステップＳ３２において「ＹＥＳ」の場合）、制御部２１は、めり込み量に応じた時間刻み幅Δｔを特定し、特定した時間刻み幅Δｔをメモリに記憶する（ステップＳ３３，Ｓ３４）。そして、制御部２１は、縁部分の行列Ｈ(i)のＬＵ分解処理（ステップＳ３６）において、メモリに記憶した時間刻み幅Δｔに関連付けられた各下三角行列Ｌ(i)と上三角行列Ｕ(i)を抽出し、下三角全体行列Ｌと上三角全体行列Ｕとを生成し、下三角全体行列Ｌ'''と上三角全体行列Ｕ'''とを生成して、これらを算出処理対象と特定する。これにより、めり込み量に応じて時間刻み幅Δｔを変更させるとともに、時間ステップループの内側での演算量を抑制して、効率的に解析を行なうことができる。
【００９７】
（５）本実施形態では、この時間刻み幅変更閾値は、隣接する節点におけるめり込み量であり、大きくなるに従って、より小さい時間刻み幅Δｔと関連付けられて記憶されている。これにより、接触によって大きいめり込み量が算出された場合には、その時間ステップにおける時間刻み幅を小さくすることにより、より正確なシミュレーション結果を得ることができる。
【００９８】
また、上記実施形態は、以下の態様に変更してもよい。
・  上記第２実施形態においては、挙動解析装置２０の制御部２１は、変更可能な時間刻み幅Δｔとして、標準、標準の１／１０，１／１００，１／１０００，１／１００００の５段階の等比数列の値を用いた。設定可能な時間刻み幅Δｔは、複数の値で設定することが可能であり、これに限定されるものではない。例えば、公比は、「１／１０」に限られるものではなく、標準、標準の１／２，１／４，１／８，１／１６等の５段階を用いることも可能である。また、段階数も５段階に限られるものではない。更に、ユーザが予め任意に設定した値を、制御部２１に保持させるようにしてもよい。
・  上記第２の実施形態においては、挙動解析装置２０の制御部２１は、時間刻み幅Δｔを特定する場合（ステップＳ３３）、めり込み量に対応する時間刻み幅変更閾値に関連付けられた時間刻み幅Δｔを特定した。時間刻み幅の特定方法は、これに限られない。例えば、めり込み量が閾値を超えた時間ステップの回数が予め定めた回数を超えたときに他の時間刻み幅Δｔに変更してもよい。具体的には、時間刻み幅変更閾値及び規定回数に対応させて時間刻み幅Δｔを記憶させておく。そして、制御部２１は、めり込み量が、時間刻み幅閾値を規定回数超えた場合に、これに対応する時間刻み幅Δｔに変更する。更に、時間刻み幅Δｔは、めり込み量に基づいて変更したが、時間刻み幅Δｔの変更を判定するための値（時間刻み幅変更判定値）は、めり込み量に限定されるものではない。例えば、接触時の反力を計算し、この大きさに基づいて変更するようにしてもよい。
【００９９】
・  上記各実施形態では、挙動解析装置２０の制御部２１は、時間ステップ毎の挙動解析値を、終了時間まで算出した後、解析結果の出力処理を実行した（ステップＳ２４）。この場合、制御部２１は、解析結果終了画面において選択された構造体の出力値を、ディスプレイ等の表示手段に出力した。制御部２１が、解析結果を出力する出力部１２は、これに限定されず、例えば、データを記憶するデータ記憶手段や紙に印刷する印刷手段であってもよい。
【０１００】
・  上記各実施形態においては、挙動解析装置２０の制御部２１は、時間積分のアルゴリズムとして、ニューマークのβ法を採用したが、ＨＨＴ（Hilber-Hughes-Taylor）―α法を用いてもよい。
【０１０１】
・  上記各実施形態においては、挙動解析装置２０の制御部２１は、ギャップを介して配置された構造体の挙動解析を行なった。挙動解析装置２０の制御部２１は、解析対象は、長尺物に限定されず、他の構造体との影響がない場合には独立に挙動し、他の構造体に対して予め決まった一部分を解してのみ影響を与える構造体（例えば、電気回路の構成等）であれば、挙動解析を行なうことができる。
【０１０２】
具体的には、本発明は、非線形性が時間的空間的に局所的である非線形構造解析の計算に適用することができる。この場合、本発明の構造解析は、次の２つの性質（ａ，ｂ）を有するものを計算対象とする。
［性質ａ］系全体の中で時々刻々と非線形的に変化する部分（第１部分）が限定されている。
［性質ｂ］系全体の中から上述の第１部分を取り除くと、残りは「変化しない部分（第２部分）」又は「第１部分よりも変化が少なく予め計算可能な部分（第２部分）」から構成される。
これらの性質を有する系では、全体の未知自由度を、以下の２つの自由度に分解することができる。
・時間経過に応じて非線形的に変化する自由度
・変化しない自由度（又は非線形的に変化する部分よりも変化が少なく予め計算可能な範囲で変化する自由度）
この場合、上記自由度の分解に応じて系全体の状態を記述する行列をブロックに分割できる。
【０１０３】
そこで、第２部分に対応するブロックの計算処理（ＬＵ分解など）は、繰り返し計算ループの外側で行なった結果を利用する。そして、第１部分に対応するブロックの計算処理を、繰り返し計算する時間ステップループの内側で行なう。これにより、計算処理量を削減し、計算精度を維持したまま、高速に計算することができる。上記各実施形態のような接触問題の挙動解析のように、解析対象によっては刻々と変化する自由度の選択自体が変化する場合があるが、この場合においても、繰り返し計算ループの中の処理が変化するだけで、本アルゴリズムは成立する。
【０１０４】
次に、これらの性質を有する系の定式化について説明する。
性質ａと性質ｂとを満たす系の全体は、図９の式（５−１）のように表現することができる。式（５−１）において、Ａ（ｔｐ）は現在時刻ｔｐにおける系の性質、ｘ（ｔｐ）は現在時刻ｔｐにおける系の状態、ｂ（ｔｐ）は現在時刻ｔｐにおける系の外部からの入力である。このとき、性質ａと性質ｂとに従って、系の状態ｘ（ｔｐ）を独立した小部分に相当する自由度ｘ'（ｔｐ）と、時々刻々と変化し得る部分に相当する自由度ｘ''（ｔｐ）に分割して、式（５−２）と表す。この分割に対応して系の性質を表現すると、Ａ（ｔｐ）は、式（５−３）のようになる。
【０１０５】
ここで、第２部分に対応する部分Ａｄが正定値とすると、時間に依存しない不変なＬＵ分解が可能であり、式（５−４）となる。定数行列Ｌｄ，Ｕｄを用いて、式（５−３）と式（５−４）から、式（５−５）及び式（５−６）を生成することができる。これらの式を用いると、式（５−７）がＬＵ分解可能となる。そして、式（５−８）となる下三角行列Ｌ''（ｔｐ）と上三角行列Ｕ''（ｔｐ）が存在するならば、Ａ（ｔｐ）を、式（５−９）と表すことができる。従って、Ａｄ＝ＬｄＵｄのＬＵ分解を、時間ステップループの外側で１回だけ実行しておき、時間ステップループの内側では、Ｌｄの前進代入処理及びＵｄの後退代入処理、式（５−８）のＬＵ分解のみを行なう。これにより、系全体の中で、時間経過に応じて変化する部分が相対的に小さければ、この一般化したアルゴリズムは計算時間の削減に有効である。
【０１０６】
更に、Ｂ（ｔｐ），Ｃ（ｔｐ）の代わりに、一旦、時間に依存しない行列（Ｂバー，Ｃバー）を用いて、式（６−１）及び式（６−２）とおくと、実際に非線形挙動をしている自由度に対応した簡単なバイナリ行列（Ｂ（ｔｐ）チルダ，Ｃ（ｔｐ）チルダ）を用いて、式（６−３）で表すことができる場合がある。このような場合には、Ｌｄ，Ｕｄの前進／後退代入処理も時間ステップループの外側で１回だけ実行しておき、時間ステップループの中では、式（５−８）のＬＵ分解のみを実行する。
例えば、上記実施形態のような接触問題において適用できる。具体的には、非線形挙動をする要素がすべて非線形状態にあると仮定した方程式から構成される行列を、時間に依存しない行列とおくことができる。そして、各時間において、実際に非線形挙動によって接触した部分の方程式から構成されるバイナリ行列を用いれば、行要素Ｌ'（ｔｐ）と列要素Ｕ'（ｔｐ）の積を予め算出することができる。そこで、時間ステップループの外側で、行要素Ｌ'（ｔｐ）及び列要素Ｕ'（ｔｐ）を算出して縁部分分解要素データ記憶手段に記録し、時間ステップループの内側では、縁部分分解要素データ記憶手段から行要素Ｌ'（ｔｐ）と列要素Ｕ'（ｔｐ）を取得することにより、時間ステップループ内の計算時間を更に削減することができる。
【０１０７】
次に、上述した性質ａ，ｂを有する非線形構造の解析を効率的に計算するための非線形構造解析計算装置の構成について説明する。非線形構造解析計算装置は、制御手段、物性値データ記憶部２２、対角行列ＬＵ分解データ記憶部２６、挙動解析値データ記憶部２８を備えている。非線形構造解析計算装置の制御手段は、非線形構造についての解析処理を実行し、後述する処理（計算管理段階、ＬＵ分解計算時間段階及びステップ計算段階等を含む処理）を行なう。そして、このための計算処理プログラムを実行することにより、制御手段は、計算管理手段２１１、ＬＵ分解手段２１２及び時間ステップ計算手段２１３等として機能する。
【０１０８】
計算管理手段２１１は、挙動を解析する処理の全体を管理する処理を実行する。ここで、計算管理手段は、解析対象における系を構成する構造体が複数ある場合には、１つの構造体において要素（解析対象要素）が連番となり、かつ隣接する要素が連番となるルールを用いて、系を構成する構造体の要素（解析対象要素）にナンバリングを行なう。
【０１０９】
ＬＵ分解手段２１２は、挙動を表す系の方程式についてＬＵ分解処理を実行する。
時間ステップ計算手段２１３は、各時間ステップ内における算出処理を管理しながら、ＬＵ分解した行列等を用いて、解析結果の計算値を算出する処理を実行する。
【０１１０】
物性値データ記憶部２２には、解析対象の系の平衡方程式に用いる物性値に関するデータが記憶されている。
対角行列ＬＵ分解データ記憶部２６には、上記実施形態と同様に、ブロック行列Ａ(i)をＬＵ分解したことによって得られる下三角行列Ｌ(i)と、上三角行列Ｕ(i)とに関するデータが記憶されている。
挙動解析値データ記憶部２８には、上記実施形態と同様に、挙動解析によって算出される各節点の算出値に関するデータを記憶する。
【０１１１】
次に、これらを適用した具体的な構造解析について、３つの例を参照して説明する。ここでは、一般的な接触問題、コネクタ要素による非線形な拘束問題、材料非線形問題を説明する。
＜一般的な接触問題＞
上記各実施形態において説明したように、接触する可能性がある節点群（接触部分）を予め限定することができる構造解析に適用可能である。また、一般的な接触問題のように、対象物において接触部分を予め正確に規定できない場合であっても、所定の範囲で接触を予想することができる場合が多い。例えば、立体物を対象とした場合、少なくとも対象物の表面でしか接触は起こり得ない。従って、解析対象の系を示す平衡方程式を、接触が予想される第１部分の方程式と、それ以外の第２部分の方程式とに分解する。そして、時間ステップループの内側においては、接触が予想される第１部分において実際に接触した場合の拘束条件を考慮した方程式のみを計算することによって、時間ステップループの内側で処理すべき行列処理を減らすことができる。
【０１１２】
＜コネクタ要素による非線形な拘束問題＞
コネクタ要素とは、例えばピン結合やヒンジ結合等、二つの対象物をジョイント（接続）するための特殊な要素であり、ジョイントされた二つの解析対象の構造物の相対的な運動を拘束する働きを持つものである。ジョイントされた各構造体の変形が小さい場合、各構造体は局所座標系において線形に振る舞う。一方、ジョイントによる拘束条件は、時間的及び空間的に非線形的に変化したり、相対的な運動（回転）に伴って荷重項が時間的及び空間的に非線形的に変化したりすることがある。従って、解析対象の系を示す平衡方程式を、時間的に依存する拘束条件を有するコネクタ要素（第１部分）についての方程式と、この部分以外の解析対象の構造物を構成する要素（時間的に依存しない第２部分）についての方程式とに分解する。この場合、第２部分の構成要素は、局所座標系で表す。
【０１１３】
そして、非線形構造解析計算装置の制御手段は、各対象物の局所座標系における方程式については、時間ステップループの外側で計算するとともに、ジョイントによる拘束条件における方程式を、時間ステップループの内側で計算する。
【０１１４】
具体的には、制御手段の計算管理手段２１１は、各対象物の局所座標系における方程式について、物性値データ記憶部２２のデータを用いて解析対象系のコネクタ要素以外の構成要素の平衡方程式を示すブロック行列を生成する。
次に、制御手段の計算管理手段２１１は、コネクタ要素以外の構成要素を局所座標系で表した第２部分のブロック行列を対角要素として配置するとともに、コネクタ要素の拘束条件のブロック行列を縁部分として配置した縁付き対角行列を生成する。
【０１１５】
そして、制御手段のＬＵ分解手段２１２は、この縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてＬＵ分解して、対角行列ＬＵ分解データ記憶部２６に記録する。
その後、制御手段の時間ステップ計算手段２１３は、各時間ステップループの内側において、この時間ステップにおける第２部分のブロック行列に対応する上三角行列及び下三角行列を、対角行列ＬＵ分解データ記憶部２６から抽出する。
【０１１６】
次に、制御手段の時間ステップ計算手段２１３は、抽出した上三角行列及び下三角行列を配置することにより、この縁付きブロックにおいて縁部分を除いた行列に対する上三角行列及び下三角行列を生成する。
そして、時間ステップ計算手段２１３は、この時間ステップにおける拘束条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解する。
【０１１７】
次に、制御手段の時間ステップ計算手段２１３は、縁部分の行列をＬＵ分解したＬＵ分解要素を、縁部分を除いた行列に対する生成した上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成する。
そして、制御手段の時間ステップ計算手段２１３は、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、解析対象の計算値として算出する。
【０１１８】
次に、制御手段の時間ステップ計算手段２１３は、算出した計算値が収束するまで時間ステップの内側の演算処理を繰り返す。そして、この時間ステップにおける計算値を算出して挙動解析値データ記憶部２８に記録した後、時間ステップループの処理を終了時間まで繰り返す。終了時間までの処理が完了すると、その後、制御手段は、終了時間まで、演算処理を繰り返すことにより、コネクタ要素の非線形構造解析結果を出力する。
【０１１９】
＜材料非線形問題＞
材料非線形問題は、弾塑性材料のように、応力と歪みの関係が線形的ではない材料の応力解析で現れる。例えば、弾性材料の場合、外力として加える荷重が大きくても対象物（解析対象の構造物）の変形は荷重に比例する。一方、弾塑性材料の場合には、荷重の大きさがある閾値を超えると、荷重の大きさと対象物の変形は比例せず、更に、荷重をゼロにしても元の状態には戻らない。しかし、実際にこのような塑性状態が起きるのは応力集中が起きる部分に限定される場合が多く、応力集中が起きる部分は亀裂部分の周辺等のようにある程度予想可能である場合が多い。従って、解析対象の系を示す平衡方程式を、応力集中が予想される「範囲」（時間的に依存する第１部分）についての方程式と、これ以外の構造体（時間的に依存しない第２部分）についての方程式とに分解する。
【０１２０】
このため、非線形構造解析計算装置の制御手段は、応力が集中する部分及びこの第１部分に接続する周辺部分（応力集中の影響を受けている第１部分）については、時間ステップループの内側で計算するとともに、その他の第２部分については、時間ステップループの外側で計算する。
【０１２１】
具体的には、制御手段の計算管理手段２１１は、応力集中の影響を受けていない第２部分の各要素の方程式について、物性値データ記憶部２２のデータを用いて解析対象系の各解析対象要素の平衡方程式を示すブロック行列を生成し、特定した第２部分の各要素のブロック行列を対角要素として配置する。
次に、制御手段の計算管理手段２１１は、応力集中の影響を受けている第１部分についてのブロック行列を、第２部分のブロック行列を対角要素として配置した行列に対して、縁部分として配置することにより、縁付き対角行列を生成する。
【０１２２】
そして、制御手段のＬＵ分解手段２１２は、この縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてＬＵ分解して、対角行列ＬＵ分解データ記憶部２６に記録する。
その後、制御手段の時間ステップ計算手段２１３は、各時間ステップループの内側において、各ブロック行列に対応する上三角行列及び下三角行列を、対角行列ＬＵ分解データ記憶部２６から抽出する。
【０１２３】
次に、制御手段の時間ステップ計算手段２１３は、抽出した上三角行列及び下三角行列を配置することにより、この縁付きブロックにおいて縁部分を除いた行列に対する上三角行列及び下三角行列を生成する。
そして、時間ステップ計算手段２１３は、拘束条件を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解する。
【０１２４】
次に、制御手段の時間ステップ計算手段２１３は、縁部分の行列をＬＵ分解したＬＵ分解要素を、縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成する。
そして、制御手段の時間ステップ計算手段２１３は、生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、解析対象の計算値として算出する。
【０１２５】
次に、制御手段の時間ステップ計算手段２１３は、算出した計算値が収束するまで時間ステップ内の処理を繰り返して、この時間ステップにおける計算値を算出して挙動解析値データ記憶部２８に記録した後、時間ステップループの内側の処理を終了時間まで繰り返す。終了時間までの処理が完了すると、その後、制御手段は、終了時間まで、演算処理を繰り返すことにより、応力集中が加わった弾塑性材料の解析結果を出力する。
【０１２６】
次に、上記実施形態及び別例から把握できる技術的思想について、それらの効果とともに以下に追記する。
（ア）  時間経過に応じて、非線形的に変化する第１部分と、変化しない第２部分とを有した解析対象系についての非線形構造解析を計算する制御手段と、
前記第１部分及び前記第２部分の平衡方程式に用いる前記解析対象系の物性値に関するデータを記憶する物性値データ記憶手段と、
前記平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段とを備えた非線形構造解析計算装置であって、
前記制御手段が、
前記物性値データを用いて、前記解析対象系の各解析対象要素の平衡方程式を示すブロック行列を生成し、
前記第２部分のブロック行列を対角要素として配置するとともに、前記第１部分のブロック行列を縁部分として配置した縁付き対角行列を生成する手段と、
前記縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記分解行列データ記憶手段に記録する対角行列分解手段と、
時間ステップループの内側において、
前記各ブロック行列に対応する上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、前記上三角行列及び下三角行列を配置して生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列を生成し、
前記第１部分に応じた平衡方程式を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、
前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成し、
前記生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、前記解析対象の計算値として算出する算出処理を実行し、
前記算出処理において算出した計算値が収束するまで前記算出処理を繰り返して、この時間ステップにおける計算値を算出する時間ステップ計算値算出手段と、
前記時間ステップループの内側の処理を終了時間まで繰り返して算出した前記計算値を出力する手段とを備えたことを特徴とする非線形構造解析計算装置。
【０１２７】
従って、（ア）に記載の発明によれば、非線形解析に必要な行列の変化に対し、変化しない第２部分のＬＵ分解については、時間ステップループの外側で予め算出できるので、時間ステップループの内側において毎回計算する必要がない。このため、演算量を少なくして、効率的に非線形構造解析について計算を行なうことができる。
【０１２８】
（イ）  時間経過に応じて、非線形的に変化する第１部分と、前記第１部分よりも変化が少なく予め計算可能に変化する第２部分とを有した解析対象系についての非線形構造解析を計算する制御手段と、
前記第１部分及び前記第２部分の平衡方程式に用いる前記解析対象系の物性値に関するデータを記憶する物性値データ記憶手段と、
前記平衡方程式を示すブロック対角行列をＬＵ分解した上三角行列及び下三角行列を記憶する分解行列データ記憶手段とを備えた非線形構造解析計算装置であって、
前記制御手段が、
前記物性値データを用いて、前記解析対象系の各解析対象要素の平衡方程式を示すブロック行列を生成し、
前記特定した第２部分のブロック行列を対角要素として配置するとともに、前記第１部分のブロック行列を縁部分として配置した縁付き対角行列を、前記第２部分の変化毎に生成する手段と、
前記縁付き対角行列の縁部分以外の各ブロック行列を、時間ステップループの外側においてＬＵ分解して、前記第２部分の各変化に対応付けて、前記分解行列データ記憶手段に記録する対角行列分解手段と、
時間ステップループの内側において、
この時間ステップにおける前記第２部分の変化に対応する前記各ブロック行列の上三角行列及び下三角行列を、前記分解行列データ記憶手段から抽出し、
これらを配置することにより生成した前記縁付きブロック対角行列において縁部分を除いた行列に対する上三角行列及び下三角行列を生成し、
前記第１部分に応じた平衡方程式を満足する縁部分の行列を生成し、この縁部分の行列をＬＵ分解し、
前記縁部分の行列をＬＵ分解したＬＵ分解要素を、前記縁付きブロック対角行列において縁部分を除いた行列であって、この時間ステップにおける前記第２部分の変化に対応する上三角行列及び下三角行列に、それぞれ合成して合成上三角行列及び合成下三角行列を生成し、
前記生成した合成上三角行列及び合成下三角行列の解を、前進代入及び後退代入を用いて、前記解析対象の計算値として算出する算出処理を実行し、
前記算出処理において算出した計算値が収束するまで前記算出処理を繰り返して、この時間ステップにおける計算値を算出する時間ステップ計算値算出手段と、
前記時間ステップループの内側の処理を終了時間まで繰り返して算出した前記計算値を出力する手段とを備えたことを特徴とする非線形構造解析計算装置。
【０１２９】
従って、（イ）に記載の発明によれば、非線形解析に必要な行列の変化に対し、予め計算可能な有限数だけ変化する第２部分のＬＵ分解については、時間ステップループの外側で予め算出できるので、時間ステップループの内側において毎回計算する必要がない。このため、演算量を少なくして、効率的に非線形構造解析について計算を行なうことができる。
【０１３０】
（ウ）第１部分の平衡方程式に対応付けて、上三角行列の行要素及び下三角行列の列要素を記憶する縁部分分解要素データ記憶手段を更に備え、
前記制御手段は、
時間ステップループの外側において、
前記第１部分の平衡方程式から、前記第１部分の時間に依存しない行列を縁付きブロック対角行列の縁部分として生成し、
この縁部分の行列と、ブロック対角行列に対応する上三角行列及び下三角行列とを用いて算出した下三角行列の行要素及び上三角行列の列要素を、対応する平衡方程式に対応付けて前記縁部分分解要素データ記憶手段に記憶し、
前記時間ステップループの内側において、
この時間ステップにおいて実際に非線形挙動をしている自由度に対応したバイナリ行列に対応する下三角行列の行要素及び上三角行列の列要素を、前記縁部分分解要素データ記憶手段から取得して、これらを合成することにより行列を生成し、
前記行列をＬＵ分解した縁部分上三角行列及び縁部分下三角行列を生成し、
前記生成した下三角行列の行要素及び上三角行列の列要素と、前記縁部分上三角行列及び縁部分下三角行列とを、縁部分がないブロック対角行列に対応する上三角行列及び下三角行列に合成して、前記合成上三角行列及び前記合成下三角行列を生成することを特徴とする（ア）又は（イ）に記載の非線形構造解析計算装置。
【０１３１】
従って、この（ウ）に記載の発明によれば、時間ステップループの内側において、縁部分のＬＵ分解要素の一部を毎回、算出しなくてよいので、演算量を少なくして、効率的に解析を行なうことができる。
【符号の説明】
【０１３２】
１１…入力部、１２…出力部、２０…挙動解析装置、２１…制御部、２２…物性値データ記憶部、２３…配置位置データ記憶部、２４…時間定義データ記憶部、２５…初期値データ記憶部、２６…対角行列ＬＵ分解データ記憶部、２７…縁部分ＬＵ分解データ記憶部、２８…挙動解析値データ記憶部、２１１…計算管理手段、２１２…ＬＵ分解手段、２１３…時間ステップ計算手段、２１４…接触部計算手段。
【図１】
0005405641.tif 000002
【図２】
0005405641.tif 000003
【図３】
0005405641.tif 000004
【図４】
0005405641.tif 000005
【図５】
0005405641.tif 000006
【図６】
0005405641.tif 000007
【図７】
0005405641.tif 000008
【図８】
0005405641.tif 000009
【図９】
0005405641.tif 000010