有限要素法のフリーのソフトウエア を試す

CAEで使われるフリーの有限要素法(FEM)ソフトウエアであるCalculixやOpenfoamを使ってみようとチャレンジしてたその足跡を残す。。。ついでに他のフリーソフトや商用ソフトの無償版にも手を出してみる。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Salomeで6面体(HEXA)メッシュを作成したい


前回まででSalomeの形状作成機能は大体わかりました。

次はメッシュ作成機能を見てみたいと思います。

テトラ要素(4面体要素)を作成するのであれば、Netgen1D-2D-3Dを選択すればよいです。

テトラ要素は一次要素は精度が悪いのですが、2次要素を使って適切な大きさでメッシュを作成すれば、精度は出ます。

しかし、たとえばいくつかの形状の設計案の中から一番応力の低いものを選ぶ、といった解析を行う際には、

自動テトラ要素作成機能を使うと、形状変更により評価する位置の要素形状、大きさが多少なりとも変わり、結果のメッシュ依存性が現れてしまう可能性があるため、

比較評価に不安があります。

よって、ヘキサ要素を使用することは、特に高度な解析に対しては多いのではないかと思います。

しかし、ヘキサ要素は特定の条件を満たした形状しかメッシュを自動的に生成するプログラムが開発されていないので、メッシュを切るのには時間とテクニックが必要です。

もちろん、ソフトの機能に依存してくる部分も多いので、Salomeの場合どうかそのあたりを見ていきたいと思います。



にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

スポンサーサイト

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/03(日) 18:41:32|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

Salomeのメッシュの作成メニューを見てみる

6面体でメッシュを作成するために、Salomeのメッシュメニューを見てみます。

Salomeのメッシュのメニューは、メニューバーから

Mesh→Create Mesh

を選択するか

salome-mesh-menu01

のアイコンを押せばメニューのウインドウが開きます。

以下のようなメニューが現れます。

salome-mesh-menu02
クリックすると大きくなります

このメニューがなかなか曲者。。。

Nameはメッシュの名前でとりあえずでフォルトにしておきます。

Geometryはメッシュを切る構造を選択します。

問題はその下をどのように選択するかです。

実はまだすべては理解していませんが、大体は以下のとおりのようです。

3D-2D-1D-0D:立体、面もしくは線のどれに対してメッシュを切るかを指定する。
ただし、基本的に下の次元のメッシュの切り方を指定していなければならない。
例えば3Dのメッシュを切るためには、2Dおよび1Dのメッシュの切り方を指定しておかなければなりません。

Algorithm:アルゴリズムの指定。メッシュの切り方を指定します。簡単に言うと3次元であれば6面体できるのか4面体できるのかをここで指定します。

Hypothesis:分割数の指定。
salome-mesh-menu03
で分割方法(等分割かメッシュの大きさが変化していく分割か)を選択して、

salome-mesh-menu04
で実際に必要なパラメータを(分割数、長さなど)を

入力します

しかし、
salome-mesh-menu03
のボタンからも分割に必要なパラメータを入力できたり、

その横の▼ボタンからアルゴリズムが選択できたりもするので、実際やろうと思っている方は色々入力して試してみてください。。。

Add.Hypothesisはまだつかっていないのでよく分かりません。。。

ということで、色々設定しなければならないので、最初はややこしいのですが、

3次元でTETRAかHEXAでもっと単純にメッシュを切りたい!!

と言う方には、

Assign a set of hypothesis

のボタンを押してください。

多分メッシュ分割比率(小さいほど細かいメッシュ分割になる)の入力のみで、メッシュを切る設定がされるはずです。。。

にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/04(月) 19:42:56|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

フリーCAEプリポスト Salomeで6面体に6面体メッシュを切る。。。

前回メッシュ作成時のメニューを見てみましたが、1D,2D,3Dとそれぞれ指定しなければならないので、結構大変そうに見えました。

でも、実際いろいろ操作してみると、有効な組み合わせはそれほど多くないようです。

中実体(ソリッド)に6面体(HEXA)メッシュに作成する事に限ってメニューを見ていきます。

hexa-mesh-01
クリックすると大きくなります

押し出しによる6面体要素作成もできるのですが、それは後で見ていきたいと思います。

まず、3Dメニューですが、ソリッドに6面体を切る場合はHexahedronを選択します。

hexa-mesh-02
クリックすると大きくなります。

次に2Dメニューでは、面に対しては四角形のメッシュを切り必要があるので、Mappingを選択します。

hexa-mesh-03
クリックすると大きくなります。

ここまではHypothesisは何も選択しなくてもよいです。

次に1Dメニューですが、AlgorithmはWire discretisationを選択します。

次にHypothesisで分割数もしくはメッシュ幅を指定します。

例えば、Nb.Segmentsを選択すると、1辺あたりの分割数を入力できます。

5を入力した場合下図のように各辺5分割づつにすることができます。

hexa-mesh-04
クリックすると大きくなります

なお、メッシュ分割はメニューで設定した後Computeをしないと作成してくれません。

(メニューバーの歯車の絵のボタンをおすか、Object Broweser上のMeshの表示を右クリックしてComputeを選択)

hexa-mesh-05
クリックすると大きくなります。

メッシュ作成に成功すると、以下のようなレポート画面が表示されます。
hexa-mesh-06
クリックすると大きくなります。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。




テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/05(火) 21:14:18|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

フリープリポストSalomeでいろいろな形状に6面体メッシュを試してみる


今回はいろいろな3次元形状にメッシュを6面体試してみます。

まずは、以前作ったボルトに6面体メッシュを作成してみます。

設定は

3D-Hexahedron
2D-Quadrangle(Mapping)
1D-Wire Discritisation Automatic length 値はてきとう(0.5ぐらい)

にしています。
メッシュを切ると、

hexa--mesh-07
クリックすると大きくなります。

明らかに失敗しています。

では以下のような三角柱ではどうでしょう。
hexa-mesh-09
クリックすると大きくなります。

メッシュを切ってみます。
hexa-mesh-08
クリックすると大きくなります。

うーーん。四角面はメッシュを切っていますが、3角面にメッシュが切れず、ソリッドにもメッシュが切れないようです。。。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。




テーマ:自然科学 - ジャンル:学問・文化・芸術

  1. 2009/05/06(水) 17:28:34|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

フリーメッシュ作成ソフトSalomeで六面体メッシュが切れる形状とは?

ではどのような形状であれば6面体メッシュが切れるのでしょう?

今までの結果を見てみると、元の形状が6面体のみにしか切れないようです。。。

試しで2次元で3角形の面にMAPメッシュが切れるか試してみると、以下のようなエラーが出ます。

hexa-mesh-10
クリックすると大きくなります。

Faceにはメッシュが切れていないのが分かります。

エラーメッセージを見ると、

Face must have 4 sides but not 3

とあるので、4辺ないと2次元のメッシュを切るところでひかかってしまうということみたいです。。。

では、6面の形状で少し複雑なものにメッシュを切ってみます。

以下のような形状にメッシュを切ってみます。

hexa-mesh-11

面は6つある構造です。

メッシュを切ってみると、

hexa-mesh-12

見事にメッシュが切れました。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/07(木) 21:59:20|
  2. Salome
  3. | トラックバック:0
  4. | コメント:6

フリーソフトのCAEプリポストSalomeのメッシュの押し出し機能

今日はメッシュの押し出し機能を見てみます。。。

面に以下のように2Dメッシュを切っておいて、

mesh-extrude01
クリックすると大きくなります。

面外方向に引き伸ばすことによって、以下のような3Dのメッシュを作成してしまう機能です。

mesh-extrude02
クリックすると大きくなります。

軸と平行方向に押し出すのであれば、
mesh-extrude03
のボタンを押せば、簡単にできます。

以下のようなメニューが出てくるので、
mesh-extrude04
クリックすると大きくなります。

Extrusionを三角形の絵の方を選択します。

ちなみに三角形は2次元を表しているだけで、四角形でも押し出しできます。

Id Elementsに押し出す要素を選択します。マウスをドラッグして選択するとまとめて選択できます。

次にVectorで伸ばす方向と大きさを指定します。大きさは1要素分の大きさです。

最後に何個分押し出すかをNumber of stepsで指定します。

できる形状の押し出す長さは(Vectorで指定した長さ)×(Number of steps)になります。

ほかにも、曲線に沿った押し出しや、回転押し出しもできるようです。

ただ、押し出しでヘキサ要素を作成したいとき、押し出される面が4辺形でないと、四角形要素を作成してくれないようなので、円から円柱などのいかなる図形にも自由自在とはいかないです。。。

(でもフリーソフトだからぜいたく言ってはいけないか。。。)


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。


テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/10(日) 18:11:23|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

フリーソフトのプリポストSalomeのグループ機能


前回までSalomeの形状作成機能やメッシュ作成機能を見てみました。

まだまだ機能はたくさんありそうですが、全部丁寧に見ていくとそれだけで1年くらいかかりそうなので、これくらいにしておいて、後は必要があれば見ていきたいと思います。

メッシュが作成できれば、あとはデータを変換して、cgxによみこませてそこで境界条件や材料定義のためのSETを定義できます。

でも、せっかくなので、Salome上でSETを作成してしまえば、cgxを使用しなくて住む可能性があります。

都合のよいことに、SalomeにもグループというSetと同じ役割をする機能がありますので、それを見ていきたいと思います。

Salomeのグループ機能については、

http://giropenfoam.web.fc2.com/salome/sample4/sample4.html

で、詳しく紹介されています。。。

で、同じ事を書くのもなんなので、わたしは節点と、要素のグループを作ってみようと思います。



にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/11(月) 21:38:38|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

SalomeでVolumeで要素グループをつくろうとしたのだが

それでは、まず要素のGroupを作成してみます。

とりあえず簡単な図形にメッシュを作成します。

Group-element-01


次にMesh→Crete Groupでグループ作成ウインドウを出して、

Mesh:作成したメッシュ
Element Type:Volume
Name:てきとうな名前

を入力します。

Group-element-02
クリックすると大きくなります

あとはモデル上をクリックもしくはドラッグして要素を選択すればグループは作成できます。

Group-element-03
クリックすると大きくなります

あれ、選択できないぞ。。。。

試しに、Faceを選択してみます。
Group-element-04
クリックすると大きくなります。

Faceはできるようです。

なぜ、Volumeはできないのでしょう。。。

これを解くのに30分かかりました。。。

つづく


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。



テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/12(火) 21:59:26|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

SalomeでVolumeで要素グループをつくる


前回からの続き。。。

Volume要素の選択ですが、画面上で右クリックしてでてくるメニューで

Display Entity → Volume

Group-element-05
クリックすると大きくなります

を選択してから、グループの要素選択を行うと選択できます。

Group-element-06
クリックすると大きくなります

ただし、以下のように表面にある要素しか選択できません。。。
Group-element-07
クリックすると大きくなります

ここで、10分考えましたが、Wireframe表示にして選択するとなぜか奥の要素まで選択できるようです。。。

Group-element-08
クリックすると大きくなります


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/13(水) 23:07:54|
  2. Salome
  3. | トラックバック:0
  4. | コメント:2

フリープリポストSalome Nodeのグループ作成


続いて今回は、節点に対してグループを作成してみます。

以下のモデルのy軸上の節点をグループ化してみます。

node-group01
クリックすると大きくなります

Mesh→Groupで、ウインドウが出てきたら、グループに加えたい節点を画面上でクリックしてAddボタンを押すと、リストに加わります。

node-group02
クリックすると大きくなります

画面上でドラックした範囲まとめてリストに加えることもできます。

入力が終わったらOKボタンを押します。

本当にグループ化されたか確認するために、Object Browserの中にGroup nodesがあるので(見えない場合は+を押して展開してみてください)、そこで右クリック、Display Onlyを選択してみてください。

グループ化した節点のみ表示されます。

node-group03
クリックすると大きくなります


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/14(木) 20:12:00|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

SalomeのデータをCalculiXへ変換するプログラムを考えてみる


これまでSalomeのモデル作成方法をみてきました。

最終的な目的はCalculiXのモデルを作成することです。

小規模なモデルであれば、以前行ったように表計算ソフトでデータを書き換えてもよいですが、やはり変換プログラムがあれば便利です。

できればSalomeで作ったグループを使って材料設定や拘束条件に設定できれば便利そうです。。。


ということで、まずは簡単なモデルでデータを見てみます。

以下のようないつものはりモデルを作りました。

salome-calculix-tra01
クリックすると大きくなります

片端を固定点にしたいので、節点のグループを作成します。

要素は節点、エッジ(辺)、フェイス(面)、ボリューム(ソリッド、立体)に対してすべて作られています。

応力解析で要素として必要なのはボリューム(ソリッド)の要素だけなので、要素はボリュームだけのグループを作成しておきます。

salome-calculix-02
クリックすると大きくなります。



にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/17(日) 22:13:03|
  2. Calculix 紹介 インストール
  3. | トラックバック:0
  4. | コメント:0

SalomeモデルデータをIDEASユニバーサルファイル形式(.unv)で出力して見る

以前、Salomeデータを表計算ソフトを使ってCalculiXに変換した際は、.datファイルでSalomeモデルデータを出力しました。

今回は節点、要素データに加えて、Group機能も同時にファイルに出力したいのですが、datファイルで出力してもグループは出力されません。。。

しょうがないので、他の出力できるファイルを見てみると、

salome-calculix-tran03
クリックすると大きくなります。

datファイルの他に3つあります。

MEDファイルーバイナリのファイルなので変換は難しそうです

UNVファイルー有限要素モデル情報がはいったテキストファイルです。

STLファイルー形状データのみのファイルです

ということで、可能性があるのはUNVファイルのみです。

SalomeのUNVファイル(ユニバーサル)はCAEソフトで有名なIDEAS(現在はNXに統合されてなくなりましたが)のファイル形式です。

とりあえずファイルを開けてみると、定義したグループの名前がありましたので、グループデータも書き込まれるようです。

ただし、手元にUNVデータフォーマットの説明資料はないので、独自に解読してみます。

ちなみにCAELinuxにSalome-Calculixのデータコンバータプログラムが入っているようなのですが、インストールしてためしてとなるとやはり手間がかかるので、ここではコンバータを作ることを目標にしてみたいと思います。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/18(月) 23:03:29|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

unvファイルの中を見てみる

さて、変換するためにunvファイルの中を見て、フォーマットを確認してみます。

なお、unvファイルのフォーマット説明は多分どこかにあると思うのですが、それは残念ながら手元にないので、データを追ってフォーマットを予測します。

よってフォーマットの説明については私の予測で正式なものではないことをあらかじめお断りしておきます。。。

早速前々回示した梁のモデルのデータをunvファイルのExportして、中をテキストエディタで開けてみます。

-1
2411
1 0 0 0
0.0000000000000000E+00 0.0000000000000000E+00 1.0000000000000000E+00
2 0 0 0
0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00
3 0 0 0
0.0000000000000000E+00 1.0000000000000000E+00 1.0000000000000000E+00
4 0 0 0
0.0000000000000000E+00 1.0000000000000000E+00 0.0000000000000000E+00



最初の2行はヘッダのようです。
3行目からどうやら節点のデータが書き出されています。




261 0 0 0
1.7500000000000000E+01 5.0000000000000000E-01 7.5000000000000000E-01
-1
-1
2412
1 22 2 1 7 3
0 0 0
2 83 9
2 22 2 1 7 3
0 0 0
9 82 1
3 22 2 1 7 3
0 0 0
1 85 10
4 22 2 1 7 3
0 0 0
10 84 3




261個節点があって、そのデータが終わると3行ほどフッダとヘッダがあって、今度は要素らしきデータが始まります。

2行おきに最初のデータが1、2、3と増えていくので3行一まとめのデータだと思われます。




48 22 2 1 7 3
0 0 0
44 129 7
49 45 2 1 7 8
2 83 9 130 45 131 12 88
50 45 2 1 7 8
12 131 45 132 11 86 4 89
51 45 2 1 7 8
9 82 1 85 10 133 45 130



途中(No49から)からデータの数が増えます。多分エッジ(線)からフェイス(面)のデータに移ったようです。このあとNo121からさらにデータが増えてボリュームのデータが現れます。




152 116 2 1 7 20
81 261 74 218 14 135 46 254
253 217 93 136 54 162 44 129
7 95 15 161
-1
-1
2467
0 0 0 0 0 0 0 21
Node_fix
7 89 0 0 7 82 0 0
7 88 0 0 7 1 0 0
7 2 0 0 7 3 0 0




要素のデータがNo152で終わるとまたフッダ、ヘッダが3行出てきて、グループのデータが書き込まれています。最初にNode_fix、次にElem_Allが書き出されています。




8 150 0 0 8 151 0 0
8 152 0 0
-1



グループが終わると、最後フッダの-1で終わります。

どうやら-1~-1までで、データが種類別になったデータブロックを表していて、データの種類は-1の次の番号

2411であれば節点
2412であれば要素
2467であればグループ

を表していると予想されます(あくまでも私のよそうです。。。)

にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。





テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/19(火) 21:22:41|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

Salomeから出力されたユニバーサルファイルを読んでみる その2


今回からは、もう少し細かくユニバーサルファイルの中身を見ていきます。

まずは、節点情報。。。

1 0 0 0
0.0000000000000000E+00 0.0000000000000000E+00 2.0000000000000000E+02
2 0 0 0
0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00

1節点2行の情報からなっているようです。

1行目は節点番号と、あとは0が並んでいます。

座標系を変えるとのこの0は値が変わりそうな気もします。。。

2行目ははx,y,zの座標が順番には行っているようです。

後はその繰り返し。

全体座標系だけでモデル化するの出れば簡単に変換できそうです。

次は要素。。。

1 22 2 1 7 3
0 0 0
2 83 9
2 22 2 1 7 3
0 0 0
9 82 1

最初の番号は要素番号のようです。

1行に6つデータが書き込まれている行が2行おきに現れるので、3行一まとめのデータと考えると、要素番号が1づつ増えていくので、説明がつきます。

1行目の2つめ以降のデータと2行目は、ここのデータではまったく同じになっています。

となると3行目が、要素に属する節点を表していると考えられます。

データは3つあるので、3つの節点からなる要素、つまり中間節点を含む梁要素であることが分かります。

この梁要素、構造モデルではは使わないので、コンバータープログラムでは無視することにします。

要素番号49からは1行おきに1つ目を除いて同じデータが出てきます。

49 45 2 1 7 8
2 83 9 130 45 131 12 88
50 45 2 1 7 8
12 131 45 132 11 86 4 89
これは2行一組のデータを表しているようです。

2行目のデータは8つなので、節点8つからなる要素、中間節点ありのフェース(面要素)を表しているようです。

これも、構造モデルでは使わないのでデータ変換するときは無視します。

最後に、要素番号122以降がソリッド要素になるようです。

122 116 2 1 7 20
12 131 45 227 75 226 61 182
89 132 229 199 4 86 11 181
60 178 31 114
123 116 2 1 7 20
17 153 47 147 48 152 18 99
183 228 232 188 61 226 75 231
76 230 62 187

これは4行一組のようです。

今回はソリッドモデルなので、これは変換する必要があります。

変換する際、節点番号の並び順が問題になるのですが、このはりモデルでは要素数節点数が多く少し分かりにくいです。

よって次回1要素のモデルを作って検証してみたいと思います。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/20(水) 21:18:34|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

UNVファイルのヘキサ要素の節点の並びを見てみる


今回は1要素のヘキサ要素のモデルを作って、ユニバーサルファイルへ書き出したときの節点の順番を見てみます。

まずはモデルを以下のように作りました。
salome-calculix-tran04
クリックすると大きくなります。

文字が小さいですが節点番号を表示しています。

次にこのモデルをユニバーサルファイルに書き出します。

はり要素、面要素モカ木田されてしまいますが、ソリッド要素だけを見てみると、

19 116 2 1 7 20
2 9 1 18 5 13 6 17
12 10 14 16 4 11 3 20
7 15 8 19

これを要素の図と比較してみると、

y=0上のxz平面にある節点を1周:
2 9 1 18 5 13 6 17

xz平面に平行な平面上にある中間節点を1周
12 10 14 16

最後に、最初にカウントした面の対面を1周
4 11 3 20 7 15 8 19

といった具合になっているようです。

これはCalculiXの要素を定義する節点順と異なるので、それを注意してコンバータをつくらなければなりません。

にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/21(木) 21:22:38|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

FORTRANでSALOMEからCalculiXのデータ変換プログラムを作ってみる

さて、データの調べはだいたいついたので、プログラムを書いてみます。

と言っても私の本業は解析屋サンなので、プログラムを書くのはあまり得意としていません。。。

ネット上に公開されているソフトは素晴らしいものが多いのですが、それを作るレベルではとてもありません。。。

ということで、あくまでも勉強用ということにします。

つまり、例えば、使いやすさを考えるとファイル名の入力などのインターフェイスを考えなければならないのですが、それを始めるとても完成しそうにないので、その辺は省略し、変換するファイル名もあらかじめプログラム中にかいてしまおうと思っています。。。

また、何の言語で書くかなのですが、今回はFORTRANにしました。

なぜかというと、学生時代にプログラミング経験があるからです。。。

LINUX(DEBIAN LENNY)にはgfortranと言うコンパイラが準備されています。
(これがインストールされてないとccxが動かないはず)

ただし私の経験はFORTRAN77、gfortranはFORTRAN95に近いもののようです。

FORTRAN95はFORTRAN77などと下位互換性が結構あり、さらに使いやすい機能をが追加されています。

で、結局FORTRAN77の固定フォーマットを使いつつ、FORTRAN77では使えないコマンド(DO WHILEとか)も使いつつ、というどのバージョンか分からないプログラムを書いてしまいました。

次回、節点と要素の変換を行うソースコードをしめします。

にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/24(日) 21:15:36|
  2. Salome
  3. | トラックバック:0
  4. | コメント:8

SALOMEからCalculiXのデータ変換プログラム

今日はソースコード(coonv.f)を公開します。

言語はFORTRAN。

私のDEBIANでは

gfortran conv.f -o conv

でコンパイルできます。

プログラムの解説するコメント行は書くと長くなるので、書いていませんが、次回簡単に解説(するまでのものでもないのですが。。。)します。

あまり上手ではないので、おかしいところあったら、指摘してください。。。

convf
クリックすると大きくなります

上記は画像ですが、ソースコードをダウンロードしたい方は
http://caefreesoft.hiroimon.com/tools/conv.zip
を保存して、解凍してください
(コンパイルしないと実行できません)


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/25(月) 21:25:01|
  2. 解析講座
  3. | トラックバック:0
  4. | コメント:0

変換プログラムを解説。。。


一応変換プログラムを解説しておきます。

6行目から10行目までは変数やファイルの初期設定です。
ファイル名はtest02.unv固定になってしまっているので、適時変えてコンパイルしなおし必要があります。。。

11行目のDOループは、UNVファイルのデータブロック(要素、節点、グループなど)を読み込むループで、今のところ節点と要素しか読まないので繰り返し回数は2にしてあります。

14行目はデータブロックの番号(変数content)が2411であったときは節点データとしての処理をしなさいというif文で、そのif文のブロックの中で、unvファイルから読み込んでmshファイルに書き込む処理をしています。

26行目でデータがブロックの番号が2412であったら要素の処理をしなさいと指示してます。

さらに31行目で要素の種類を読み込んで、20節点ヘキサ要素の番号(ELEM_TYPE.EQ.116)であれば節点番号を読み込んで、順番を変更してmshファイルに書き込む処理をしています。

他の要素の番号、つまり面要素(ELEM_TYPE.EQ.45)や線要素(ELEM_TYPE.EQ.22)の場合は、読み飛ばす処理をさせております。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。

  1. 2009/05/26(火) 23:48:04|
  2. 未分類
  3. | トラックバック:0
  4. | コメント:0

実際にデータ変換してみる


それでは、早速プログラムを使って変換します。

変換したいデータのファイル名はプログラムの中に書き込まれています。

入力するユニバーサルファイルはtest02.unvになっています。

コンパイルしたファイルを実行するとtest02.mshファイルが作成されています。

このファイルをcgxに読み込ませます。

cgx -c test02.msh

salome-calculix-tran05
クリックすると大きくなります。

無事読み込めたようです。

境界条件、荷重条件を与えて、ccxで計算もできました。

salome-calculix-tran05
クリックすると大きくなります。

にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。
  1. 2009/05/27(水) 20:45:32|
  2. 未分類
  3. | トラックバック:0
  4. | コメント:0

SalomeのGroupも変換プログラムを作ろうと考えたが

節点と20節点ヘキサ要素が変換できるようになったので、Salomeで作成したメッシュをCalculiXで読み込ませることが可能になりました。

しかし、境界条件や複数の材料物性の定義は必要なので、一度cgxに読み込ませて、節点や要素のセットを作成して、境界条件や材料定義をする必要があります。

Salomeでそれらの定義までしてしまいたい、という場合はグループを作成し、そのグループをCalculiXのセットに変換してしまえばよいわけです。

節点のグループや要素のグループの変換は節点番号や要素番号をそのまま引き継がせればよいので簡単にできそうです。

さらに、面荷重を入力したいという場合は、Salomeで面(Face)のグループを作ってそれをCalculiXの面荷重定義にしてあげればよいのですが、不都合なことにSalomeの面の定義方法とCalculiXの面の定義方法が異なっています。

Salomeの面定義-面を囲っている節点番号で指定する
CalculiXの面定義-要素番号と面番号で指定する。

となっているので、変換はできないことはないのですが、ちょっとしたアルゴリズムが必要です。。。

プログラムのプロにとっては簡単だと思うのですが、私は何せ素人なので少し時間がかかってしまいそうなので、とりあえず後回しにして、不便が生じるまで境界条件はcgxでつけたいと思っています。。。。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。


テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/28(木) 23:34:43|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

TETRA要素も変換できるようにしてみる

さて、HEXA要素についてはSALOMEのデータをCalculiX cgxに読ませる事が出来るようになりました。

しかし、HEXA要素はcgxでもメッシュ作成機能があります。

そこで、cgxではメッシュ作成機能がないTETRA要素の変換機能を追加したいと思います。

まずはフォーマット確認。

以下のような簡単なモデルを作成して、ユニバーサルファイルを書き出します。

salome-calculix-tran07
クリックすると大きくなります

正面の要素は属するすべての節点番号が表示されています。

ユニバーサルファイルにはTETRA要素の部分は以下のように出力されます。
4要素分あります。

26 118 2 1 7 10
3 26 5 22 8 24 20 14
15 7
27 118 2 1 7 10
3 26 5 23 2 21 24 22
25 8
28 118 2 1 7 10
3 24 8 25 2 21 11 19
12 4
29 118 2 1 7 10
5 26 3 21 2 23 18 10
9 1

最後の要素が正面に見える要素に該当するので(節点番号1が属しているから)、節点の並び順を確認し、CalcliXと比較すると、以下のように対応しています。

CalculiXの並び順位   UNIVの並び順位
1 - 2
2 - 1
3 - 10
4 - 5
5 - 2
6 - 7
7 - 8
8 - 4
9 - 6
10 - 9

この法則さえ分かれば、後はプログラムするだけです。


にほんブログ村 科学ブログ 技術・工学へ

技術・工学ブログランキング
↑もしよかったらクリックしてください。ランキングがあがります。。。


テーマ:宇宙・科学・技術 - ジャンル:学問・文化・芸術

  1. 2009/05/31(日) 20:01:09|
  2. Salome
  3. | トラックバック:0
  4. | コメント:0

プロフィール

tsunodako

Author:tsunodako
tsunodakoのプロフィール
無料でCAE環境を構築に挑戦中。
が、現在少し休止中。そのうち復活します。
ご意見ご感想をブログコメント大歓迎です!!!
メールの場合は下のほうにあるフォームに入力していただくか

tsunodako[at]yahoo.co.jpまで([at]=@に変換してください)。
このブログにあるソフトやデータを使用して生じた結果は責任負いませんのであしからず。
静解析CAE技術者のための動解析講座は http://vibrationcae.blog.fc2.com/ に移動いたしましたのでよろしく。

ブログ内検索

カレンダー(月別)

04 ≪│2009/05│≫ 06
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -

最近の記事

カテゴリー

tsunodakoへのメールはここからでもOK

名前:
メール:
件名:
本文:

最近のコメント

最近のトラックバック

フリーエリア

にほんブログ村 科学ブログ 技術・工学へ
にほんブログ村

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。