次へ 上へ 前へ 目次へ
次へ:Determining the matrix structure 上へ:Program structure. 前へ:Applying concentrated forces to 目次へ

接触

図141: 3角形分割プロパティーの保存データ
\begin{figure}\epsfig{file=contact_edges.eps,width=10cm}\end{figure}

接触はキーワード・カード *CONTACT PAIR によって有効化され、節点面、または要素面のスレーブ面と要素面のマスター面の間の相互作用を定義します。マスター面は、様々な種類の面(3節点、4節点、6節点、8節点)に対する標準的な3角形分割方法を使用して3角形に分割されます。この処理はサブルーチン allocont.f、triangucont.f、trianeighbor.f で行なわれます。この3角形分割はトポロジーに対するもので、具体的な座標には依存しません。これは nonlingeo.c の冒頭で行なわれます。結果の3角形集合はフィールド koncont(図141)に保存されます。三角形 i では koncont(1..3,i) に3角形に属する節点が、koncont(4,i) に3角形の属する要素面が入れられます。要素面は 10 * (要素番号) + (面番号) で構成される番号で特徴づけられます。要素33の面4は要素面334といった具合です。3角形集合はそれらは属する接触結合拘束の順に保存されます。連結結合 i ではフィールド koncont での最初の3角形の位置は itietri(1,i) で、最後の3角形の位置は itietri(2,i) はで与えられます。

マスター面の3角形分割は、与えられたスレーブ節点に対応するマスター面を決定する高速なアルゴリズムが使用できるように行なわれます。この検索作業を補助するためにフィールド imastop が作成されるのです。imastop(i,j) は節点 koncont(i,j) と対応する3角形 j に関するもので、節点 koncont(i,j) が属さない辺を持つ隣接3角形です。この隣接情報は [24] のセクション1.7で説明されている検索アルゴリズムを使うために必要なものです。imastop の作成を補助するために2つの補助的なフィールド ipe(*) と ime(4,*) を使って3角形の辺の一覧が作成されます。辺は2つの節点 i、j で特徴づけられます。ただし i<j とします。もし他に辺が見つからなければ i が最低節点となり、現在の辺が ime(1..4,ipe(i)) に保存されます。ここで ime(1,ipe(i)) には j が、ime(2,ipe(i)) には辺の属する3角形のひとつ、例えば t1 が入ります。ime(3,ipe(i)) には t1 に属し、なおかつ辺 i-j 上にない koncont(1..3,t1) 内の節点のローカル位置が入ります。ime(4,ipe(i)) は ime(1..4,ime(4,ipe(i))) へのポインターで、ime(1..4,ime(4,ipe(i))) には i が最低節点番号となる他の辺が入ります。それ以外の場合はゼロです。節点対面ペナルティー接触の場合には補助フィールドは trianeighbor.f を抜ける時に削除されますが、面対面ペナルティー接触の場合にはさらに slavintmortar.f で使用されます。

図142: 外部面決定のための全面の保存データ
\begin{figure}\epsfig{file=contact_n2f_ipoface.eps,width=12cm}\end{figure}

さらに計算を進めるにはスレーブ節点とスレーブ面の両方の一覧を作成する必要があります。スレーブ面が節点によって定義されている場合には、それと対応する面を見つけなければなりません。この目的のために構造体の全ての外部面の一覧をフィールド ipoface と nodface を使ってサブルーチン findsurface.f(図142)で作成します。面 f1 が端節点 i<j<k<l を持っているとすると、f1 は nodface(1..5,ipoface(i)) に保存されていることになります。エントリー 1..5 には節点 j、節点 k、節点 l、10*(要素番号)+(ローカル面番号) の形式の面ラベル、i が最低節点であるような他の面へのポインターが入ります。

図143:スレーブ節点の保存データ
\begin{figure}\epsfig{file=contact_islavnode.eps,width=12cm}\end{figure}

スレーブ節点はフィールド islavnode(*)(図143)に連結ごとに、各連結が昇順になるように保存されます。nslavnode(i) には islavnode 内にある連結 i の最初のスレーブ節点の直前の位置が入ります。ntie を連結の数とすると、nslavnode は ntie+1 個のエントリーを持ちます。これにはフィールド islavnode の終了位置の目印という意味もあります。スレーブ節点の総数は nslavs になります。面体面接触の場合には、ユーザーがキーワード・カード *CLEARANCE で指定した感覚と実際の座標に基づいて計算された間隔の差がフィールド clearslavnode に入ります。*CLEARANCE カードがなければフィールドはゼロになります。フィールド clearini には対象となるスレーブ面に属する各節点での間隔が入ります。この情報はフィールド clearslavnode からコピーされたものです。

図144: スレーブ面(節点対面ペナルティー)の保存データ
\begin{figure}\begin{center}\epsfig{file=contact_n2f_islavsurf.eps,width=10cm}\end{center}\end{figure}

図145: スレーブ面(面体面ペナルティー)の保存データ
\begin{figure}\epsfig{file=contact_f2f_islavsurf.eps,width=12cm}\end{figure}

スレーブ面は islavsurf(1..2,*)(図144と図145)に保存されます。islavsurf(1,*) にはスレーブ面が連結ごとに入り(並べ替えは行なわれません)ます。一方、islavsurf(2,*) は補助フィールドで節点対面接触では必要のないものです。itiefac(1,i) はフィールド islavsurf 内の連結 i の最初の面、itiefac(2,i) は最後の面を指すポインターです。スレーブ面の総数は ifacecount です。スレーブ面の面積は対応するフィールド areaslav に保存されます。面対面接触では islavsurf の2列目はフィールド pslavsurf 内の位置へのポインターのために使われ、面の積分点の直前を指します(ローカル座標と荷重)。スレーブ面の積分点が与えられると反対側のマスター面が見つかります。ローカル座標、マスター面のラベル、マスター面を指すローカル法線はフィールド pmastsurf に保存されます。

図146: 与えられたスレーブ節点に属するスレーブ面の保存データ
\begin{figure}\epsfig{file=iponoels.eps,width=12cm}\end{figure}

与えられたスレーブ節点に対応する面積の計算を行なうためにフィールド iponoels と inoels が使用されます(図146)。スレーブ節点 i の場合、iponoels(i) は、節点 i が属する面のフィールド islavsurf(1,*) 内の位置を格納したエントリー inoels(1..3,iponoels(i)) と節点 i が属する任意の他の面を指すエントリー inoels(2,iponoels(i)) を指します。フィールド xnoels には面内の節点の荷重が入ります。この情報はサブルーチン inicont.c で収集されます。

図147:マスター節点の保存データ
\begin{figure}\epsfig{file=contact_imastnode.eps,width=10cm}\end{figure}

マスター節点はフィールド imastnode に列挙され、その方式はスレーブ節点の islavnode への保存と同様です(図147)。マスター節点は連結ごとに、昇順に保存されます。連結 i の場合、nmastnode(i) は imastnode     内にある連結 i で最小番号を持つマスター節点の直前を指し、nmastnode(i) は連結 i で最大番号を持つマスター節点を指します。ntie を連結数とすると imastnode のサイズは nmastnode(ntie+1) となります。各イテレーションおよび/またはインクリメントでは、各マスター3角形のトポロジー情報が(フィールド cg にある)重心、3角形平面方程式、3角形に準垂直な平面、3角形が含む辺からなる幾何情報によって補完されます。3角形 i の場合、重心座標は cg(1..3,i) に保存されます。3角形に垂直な平面の式の係数と、含まれる辺の1つ目は straight(1..4,i) に保存されます。1つ目の辺は節点 koncont(1,i) と koncont(2,i) を通過する辺として定義されます。2つ目の辺(straight(5..8,i))と3つ目の辺(straight(9..12,i))も同様です。3角形平面の係数は straight(13..16,i) に保存されます。幾何情報はルーチン updatecontpen.f で計算されます。3角形に隣接する平面は3角形に対して準垂直となります。これはそれら平面が、完全な垂直平面、3角形辺を通過し隣接する3角形に垂直な平面の中間にあることを意味します。この幾何情報を計算するために平均法線がフィールド xmastnor(3,*) に保存されます(図147)。

さらに幾何情報として各スレーブ面 i の面積が areaslav(i) に、対応するスレーブ節点 i の面積が springarea(1,i) に、各ステップ開始時のスレーブ節点 i での侵入度(侵入している場合には常に < 0 で、そうでない場合は0)が springarea(2,i) に保存されます。この計算は gencontelem_n2f.f または gencontelem_f2f.f が呼び出されるごとに行なわれます。

続いて接触ばね要素が生成されます(ルーチン gencontelem.f)。この時、従属接触スレーブ表面に属する各節点は別々に扱われます。節点が相互作用するマスター表面を決定するために、対応するマスター表面の3角形分割の中で重心が従属節点に最も近い3角形が特定されます。次にスレーブ節点の正射影が含まれるような近接3角形が特定されます。そうした3角形が見つかると 従属節点とその3角形が属する独立表面から接触ばね要素が生成され、この要素が構造体への侵入節点や与えられた限度を超えない間隔を提供します。ユーザーが ADJUST パラメーターを有効化している場合には侵入や間隔をチェックする前に形状の調整が行なわれます。これらの条件がどれも満たされていない場合にはこの従属節点に対しては接触ばね要素は生成されず、次の節点に処理が移ります。マスター表面の3角形分割は従属節点が相互作用する独立面を高速に特定するためだけに行なわれるのです。

接触ばね要素の剛性行列は mafillsm.f から呼ばれる springstiff.f で計算されます。剛性行列を得るためには従属節点を独立面に射影した時のローカル座標が必要です。これを得るための処理は attach.f で行なわれます。従属節点に最も近い独立面内の位置を決定するためには直列の規則的な格子が使用されます。形状関数とその微分を得るにはローカル座標が必要です。接触力は results.f から呼ばれる springforc.f で決定されます。ここでもまたルーチン attach.f が呼ばれます。

幾何情報は各イテレーションごとに再計算されるので、ユーザーが SMALL SLIDING を指定しない限りは大規模変形を考慮することができます。指定されている場合には形状は新しいインクリメントごとに開始時に1度だけ更新されます。

*SURFACE INTERACTION カード、*SURFACE BEHAVIOR カード、*FRICTION カードによって定義される接触ばねの材料プロパティーは *MATERIAL カードと *ELASTIC,TYPE=ISOTROPIC と同じフィールドに保存されます。

非線形形状計算の接触アルゴリズムの一般的な構造は以下の通りです。接触トポロジーは inicont.c で決定されます。このルーチンは新しいステップの開始時に1度だけ呼び出され、以下のルーチンを呼びます。

面対面接触ではルーチン precontact.c が新しいインクリメントの開始ごとに呼ばれます。このルーチンは以下を行ないます。

図148: 節点対面の接触要素のトポロジー
\begin{figure}\epsfig{file=contact_n2f_kon.eps,width=12cm}\end{figure}

図149: 面対面の接触要素のトポロジー
\begin{figure}\epsfig{file=contact_f2f_kon.eps,width=12cm}\end{figure}

さらに面対面接触ではルーチン interpolatestate が新しいインクリメントの開始ごとに呼ばれます。このルーチンは前インクリメントの終了時の積分点から状態変数(累積すべり距離などの内部変数)を補間します。新しい積分点が存在する場合には slavintpoints.f でそれが決められます。また新しいインクリメントの開始時にスレーブ、マスター面の照合が新たに行なわれ、通常はそこで積分点の位置が変更されます。

contact.c ルーチンはイテレーションごとに1回だけ呼び出されます。これは面対面接触だけでなく節点対節点でも同じことです。節点対面接触では contact.c は以下を行ないます。

ばね要素が生成された場合、そのトポロジーはフィールド kon に、図148の様に保存されます。パラメーター iloc は面積と重複を求める際に必要になります。

面対面接触では contact.c はルーチン gencontelem_f2f だけを呼び出します。新しいインクリメントの開始時にフィールド pmastsurf がスレーブ積分点用に用意されます。これは反対側のマスター面を見つけるためです。このフィールドにはマスター面のローカル座標、ラベル(10*要素+ローカル面番号)、ローカル法線が入れられます。さらにフィールド springarea が用意され、最初のステップの各インクリメント開始時にそこに対応するスレーブ面積と重複が入れられます。pmastsurf と springarea はインクリメント開始時に計算され、インクリメント全体ではどのイテレーションでも一定であることに注意してください。一方で接触ばね要素は各イテレーションごとに、間隔の正負に基づいて新しく生成されます。接触要素は間隔が負の場合(つまり侵入が起きている場合)にのみ生成されます。ばね要素のトポロジーはフィールド kon に保存されます。また節点の総数(スレーブ + マスター)、マスター節点、スレーブ節点、pslavsurf にある積分点のアドレス、islavsurf にあるスレーブ面のアドレスもここに保存されます。

*SURFACE INTERACTION カードに続く接触プロパティー(*SURFACE BEHAVIOR、*FRICTION、*CONTACT DAMPING、*GAP HEAT GENERATION)は内部的には材料プロパティーとして扱われます。つまり *SURFACE INTERACTION カードは *MATERIAL カードと同じ様に扱われるのです。データは圧力と距離重複度の表データを除いて全て弾性フィールド elcon に保存されます。表形式の圧力-距離重複度データは等方性硬化フィールド plicon に、またギャップ伝導率データは移動硬化フィールド plkcon に保存されます。elcon 内の接触プロパティーは表20の順に保存されます。この表は指数、線形、表形式、連結の圧力-距離重複度挙動をまとめたものです。

表 20:elcon 内の接触データの保存データ
エントリー 種類 指数 線形 表形式 連結
1 *SURFACE BEHAVIOR β σ - -
2 *SURFACE BEHAVIOR p0 K - K
3 *SURFACE BEHAVIOR 1 2 3 4
4 *SURFACE BEHAVIOR - c0coef c0coef=10-3 不使用
5 *CONTACT DAMPING cd cd cd 不使用
6 *FRICTION μ μ μ -
7 *FRICTION λ λ λ λ
8 *CONTACT DAMPING ct ct ct -
9 *GAP HEAT GENERATION η η η -
10 *GAP HEAT GENERATION f f f -
11 *GAP HEAT GENERATION $ \Vert\boldsymbol{v}_{rel} \Vert$ $ \Vert\boldsymbol{v}_{rel} \Vert$ $ \Vert\boldsymbol{v}_{rel} \Vert$ -

以下に注意してください。


次へ 上へ 前へ 目次へ
次へ:Determining the matrix structure 上へ:Program structure. 前へ:Applying concentrated forces to 目次へ
guido dhondt 2016-03-08