まぐまぐぶろぐ -2ページ目

まぐまぐぶろぐ

おや・・・?まぐまっぐの様子が・・・

おはようございます、こんにちは、こんばんは。

 

どうも、おひさしぶりです。まぐまっぐです。

 

 

 

Twitterでも言いましたがパソコン買い換えました。

 

スペックは以下の通り

CPU:AMD Ryzen5 2600

RAM:16GB

GPU:NVIDIA GeForece RTX2060SUPER

SSD:250GB

HDD:1TB

 

てな感じです。

 

買い換えた理由としては、いままで使っていたノーパソがCPUのグラフィックスしかない奴だったので、

今やってるゲーム(World of Tanks)とかの要求スペックが、上がってきて少々不自由してきたのと、ほかのゲームがカクついて話にならなくなってきたから。

で、適当なパソコン探していたんですけど、増税云々の話があり駆け込みで、なんばのドスパラ行ってパソコン探してきました。

僕のやってるWoTはそんなに要求スペックは高くないので1060Tiとかでも十分かなと思ってたのですが、ニューラルネットとかいろいろ手出そうと思うとちょっとスペックいいのが欲しくなってこうなりました。

ニューラルネットとか機械学習分野だとCUDAコア数が多いほうが有利らしいので、お金と相談しつつ探したら結局2060SUPERになりました。

これより上のスペック目指すともてあます感あるし、まぁ、2060SUPERならHD画質で動かないゲームなさそうだったしね。

 

というわけで、ぼちぼちゲームライフ、機械学習ライフ楽しんでいきます。

いまだに機械学習、深層学習、ニューラルネット、ディープラーニングの違いあんまりわからん

 

では、またノシ

おはようございます、こんにちは、こんばんは。

 

おひさ。まぐまっぐです。

 

今回は完全に忘備録。

おんなじことしたい人がいたら何かの助けになればいいなというのと、

自分も忘れて困ることあるかもしれないので書く。

 

自分はOpenFOAM使ってCFD解析している人。

いつもならCartesianMeshでメッシングするところなんだけど、

残念ながら少々解析モデルの形状が複雑でtetraMeshで作成したかった。

 

というわけで、Netgenに目を付けましたが、うまくいかなかったのでそのメモ。

前置きの失敗談はどうでもいいという人は下のほうに簡潔に書いておくのでそっちを参照のこと。

 

Netgenを使う上でこんなサイト(http://penguinitis.g1.xrea.com/study/OpenFOAM/Netgen/Netgen.html)

を見つけたのでそれに従って頑張ろうとした。

 

はじめはOpenFOAMの環境整えてあるLinux環境(ubuntu系)でインストールした。

バージョンは6.2あたり(パッケージマネージャで一番新しいのを適当にインスコした)

インストールは問題なく終了。

気を付けることがあるとすればnetgenとnetgen-headersの両方をちゃんとインストールしましょうということくらい。

 

でいざメッシング。

ファイル(僕の場合はSTLを利用)を読み込んでGenerateMeshを押すだけ。

が、なんかよく失敗される。

で、デバック画面を見てみると、

Surface meshing not successful. Meshing aborted!

の文字。

どうやら表面のメッシュ作成の段階で躓いているらしい。

GenerateMeshはMesh>MeshingOptions内で設定しているものが自動的に動くだけなので

普通に

Analyze Geometry

Mesh Edges

Mesh Surface

Optimize Surface

Mesh Volume 

Optimize Volume

をMesh>から順番におして行くことに。

するとMeshEdgesで詰まってることが分かった。

僕は残念なことにメッシングに関する知識はミジンコ以下なので、解決策が思い浮かばない。

 

ただこれモデルのせいかを確かめるために、

ほかにも簡素なモデルとかいろいろ用意。

行けるやつ行けないやつ行けたこともあればいけない時もあるモデルとかもあった。

ふざけんなマジ意味わからん

で偶然にもメッシングに成功したものをOpenFOAM用に出力しようと思う。

ちなみに成功したかどうか確認しかたはGUI画面下のstatsラベルのPoints,Elements,SurfElementsに0以外の数字が入ってる時はたいてい成功してる。

不安なときはMesh>Check Surface MeshかMesh>check Volume Meshで確認すればよい。

 

境界の設定のため

Mesh>Edit Boundary Conditionsでモデルの境界面に対して任意の番号を振る。

同じ番号を振ると同じ境界と認識される。

 

メッシュの出力を行う。

File>ExportFiletypeからOpenFOAM 1.5+ Formatを選択し

File>ExportMeshで任意の場所にOpenFOAM用のconstantディレクトリが作成される。

...はずなのだが作成されず。

どうしたものかと調べてると

こんなの(https://sourceforge.net)を見つける。

どうやらバグらしい。

じゃあ、成功してる人は何なんだと思うと、

どうやら成功してる人はみんなバージョン4.9を使っていた。おいおいおい。

 

ということでバージョン4.9をインストールしなおすことに、

パッケージマネージャで入れようと思ったが、配布元のファイルが破損しているらしく、

ソースコードから再コンパイルするのがめんどくさかったのと、

解析用のつおいPCが使えるようになったので、

constantディレクトリ吐き出すだけならWindows環境でいいやということで

Windows版のNetgen4.9.13を入れることに。

ダウンロードはここから(64bitWinPC用)→https://ja.osdn.net/projects/sfnet_netgen-mesher/downloads/netgen-mesher

zip版あるじゃんと思ったが中身makeFileでじぶんでMakeしなければならなかったのでおとなしくこっちのインストール版で入れたほうがPC弱い僕みたいな人はよい。

Windows版のインストールの仕方は

1.インストーラーを起動する

2.Next.

3.I Agree

4.chooseComponentsで必要に応じてチェック入れる。僕はNetgenWithOCCにチェック入れた。

でよければNext

5.ここでインストール場所を聞かれるがC:\直下に置いたほうが良い。

僕の場合違うところに置くと.dlファイルのと関連付けがうまくいかず、起動すると延々と○○.dllがありませんと言われる羽目になる。

人によってはうまくいくかもしれんがうまくいかなかったらおとなしくC:\直下においてください。

場所を決めたらNext.

6.settingのファイルをどこに置くか聞かれるがこれはどこでもいい。Next

7.スタートメニュー度するか聞かれるが好みでどうぞ。

8.インストール

インストールが終わった後起動するか聞かれて起動するにしてもなぜか落ちることがあるが、2回目以降はちゃんと起動する。

 

で、先の方法でメッシュを切り境界名を設定する。

File>SaveMeshで一度保存しておく。

時々openFOAM用の出力に失敗するのと、

一度保存しておいたほうがなんかOpenFOAM用の出力の成功する可能性が高くなる。気がする。

File>ExportFiletypeでOpenFOAM 1.5+を選択

File>ExportMeshで任意の場所にconstantディレクトリが生成できる。

なお、boundaryのpatchの種類設定はたぶんNetgen上ではできないので、

自分で必要に応じてテキストエディタなどで書き換える必要がある。

ちなみにデフォルトではすべてpatchになっている。

 

また、元データをミリ単位でCADで作っていた人はたぶんサイズが想像の1000倍のサイズで出ていると思うので、OpenFOAMユーティリティのscaleMeshとか使うとよい。

 

いろいろ設定いじるとそれなりに実用できるメッシュかな?くらいのレベルのメッシュができるけどなんかうまくいかない部分が多いソフトな感じがする。使ったことない機能とかまだあるので勉強していきたい。暇があれば。

 

忙しい人向け

  1. Netgenのバージョン4.9をインストールします。
  2. generateMeshなどをつかってメッシュを切ります。
  3. Mesh>EditBoundaryConditionsで協会の設定をします
  4. 一度File>SaveMeshで保存します。
  5. File>ExportFiletypeでOpenFOAM 1.5+を選択します。
  6. File>ExportMeshで任意の場所にconstantディレクトリが生成できる

  7. 必要に応じてconstant/boundaryを書き換えます。

 
 
もうちょっと使い方のこと書きたいね。やる気と暇があれば。
あとPrismaticBoundaryLayerうまくいかないので誰か助けてください。
 
ではまたノシ