FEMメッシュをD'sNAP形式のメッシュに変換
概要
FEMメッシュをD'sNAP形式のメッシュに変換するプログラムの説明です。D'sNAP発売以前から問い合わせがよくある内容でしたが、ソフトは配布しておりませんでした。
D'sNAPのメッシュジェネレーターは、少ないデータから直線構造の多い綺麗なメッシュを作成するような思想になっております。 この思想に合わないFEMメッシュをD'sNAP形式のメッシュに変換すると、非常に無駄なデータが多くなってしまします。 D'sNAPは、メッシュ以外の入力についても出来る限り少ない入力データにより解析を行えるような仕様になっております。 メッシュデータがD'sNAPの思想に合わない場合、以降の入力が非常に煩雑になり、無駄に入力データが多くなりますので、あえてソフトの配布は行っておりませんでした。
利用について
会員ページからダウンロードできます。今のところは、期間限定の利用となります。 使い方を間違えると入力データが非常に煩雑になり、後の作業が大変になりますので、使用には十分注意して下さい。 D'sNAPの思想に合わない使用が多くなりそうな場合は、継続した利用は終了させて頂きます。
使用方法
使用方法は、以下の通りです。
- DScoMeshMaker.exeを実行すると、[画面例]のアプリが表示されます。
- FEMメッシュファイルをリストビューにドラッグします。(拡張子がmshのファイルは配置できません。)
- <変換>ボタンをクリックすると、FEMメッシュは、D'sNAP形式のメッシュに変換されます。(拡張子がmshのファイルが生成されます。)
- 変換後は、リストにある「ファイル名」を選択すると、変換後の状態を確認できます。
※D'sNAPの思想に合わないメッシュの場合は、「細分割線を作成する」チェックを外して変換を行って下さい。 この場合は、細分割線データを除いた指定節点データと領域データが作成されます。
※メッシュジェネレーターの制限値を超えるデータが生成された場合は、そのメッシュデータは使用できません。
FEMメッシュファイル形式
FEMメッシュファイル形式は、フリーカラム形式と固定カラム形式を扱うことができます。
固定カラム形式は、入力位置のカラムをユーザーが指定できます。 FEMメッシュファイルがあるフォルダ内に「_MeshFormat.def」があれば、固定カラム形式と見なします。 「_MeshFormat.def」に読み込みカラム位置を指定します。以下にフリーカラム形式のファイル例と「_MeshFormat.def」の例を示します。 「_MeshFormat.def」は、フリーカラムです。サンプルデータに幾つか例題がありますので、サンプルデータをご参照下さい。
フリーカラム形式のファイル例
# ------------------------------------------------
# FEMメッシュデータ フリーフォーマット
# ------------------------------------------------
# ・データ区切りは、スペースです。
# ・「#」シャープ以降は、コメント行になります。
# ・節点データは、NODE~ENDに記述します。
# ・要素データは、ELEMMAT~ENDに記述します。
#
NODE # [節点データ]
# NodeNo X Y
1 0.000 0.000
2 0.000 -1.000
3 1.000 -1.000
4 1.000 0.000
END
#
ELEMMAT # [要素データ]
# ElemNo MatNo Node1 Node2 Node3 Node4
1 1 1 2 3 4
END
_MeshFormat.defのファイル例
# ------------------------------------------------
# FEMメッシュデータ読み取りフォーマット定義ファイル
# ------------------------------------------------
# 節点データフォーマット
NodeReadInfo
# DataCount "[0,6]" # 節点数読み取り位置(ReadPotisionNumberの指定があれば不要)
StartLabel "NODE" # 節点データ開始ラベル(DataCountがあれば、不要)
# EndLabel "END" # 節点データ終了ラベル(データがなくなっても終了)
# ReadJump 1 # 節点データ読み飛ばし行数
ReadPotisionNumber "[0,6]" # 節点番号の読み取り位置
ReadPotisionX "[6,12]" # X座標の読み取り位置
ReadPotisionY "[18,12]" # Y座標の読み取り位置
End
#
# 要素データフォーマット
ElemReadInfo
# DataCount "[6,6]" # 要素数読み取り位置(ReadPotisionNumberの指定があれば不要)
StartLabel "ELEMMAT" # 要素データ開始ラベル(DataCountがあれば、不要)
# EndLabel "END" # 要素データ終了ラベル(データがなくなっても終了)
# ReadJump 1 # 要素データ読み飛ばし行数
ReadPotisionNumber "[0,6]" # 要素番号の読み取り位置
ReadPotisionElem1 "[12,6]" # 要素構成節点1の読み取り位置
ReadPotisionElem2 "[18,6]" # 要素構成節点2の読み取り位置
ReadPotisionElem3 "[24,6]" # 要素構成節点3の読み取り位置
ReadPotisionElem4 "[30,6]" # 要素構成節点4の読み取り位置
ReadPotisionMat "[6,6]" # 物性番号の読み取り位置
End
#
※FEMソルバーは、Fortranにより開発されている場合が多く、固定形式のファイルフォーマットを用意しておりますが、フリーカラム形式を使用することをお勧めします。
変換に関する注意点
変換に関する注意点を以下に示します。
変換すべきでないメッシュの例
D'sNAP形式のメッシュの思想に合わないメッシュの例を以下に示します。このようなメッシュの場合には、細分割線を除いたデータを作成し、 D'sNAPのメッシュジェネレーターを使用して細分割線データを作成して下さい。
- 三角形要素を多用しているメッシュ(メッシュ節点を少なくするための昔ながらのメッシュ作成方法)
- 歪んだ要素が多数あるメッシュ(オートメッシュで自動的にメッシュを作成)
- 全て三角形要素であるメッシュ(デローニ分割法により作成)
全体領域が凹となるメッシュ
全体領域は凸なメッシュでない場合、凹部分のメッシュを修正しなければならない場合があります。 細分割線データを調整するか、ダミーの領域を作成して全体領域を凸にするなどしなければなりません。 D'sNAPのメッシュジェネレーターを使用して調整して下さい。
微妙な節点間のズレ
基本的には相対座標を定義するようになっていますが、微妙な節点間のズレが生じる場合があります。 この場合、絶対座標になっている場合は相対座標にします。相対座標の場合は、相対座標の形式を変更するか、 微妙なズレを調整するかなどする必要があります。D'sNAPのメッシュジェネレーターを使用して調整して下さい。