簡単CAEソフト

セミナー・通信講座
技術情報
SPH粒子法のご紹介 ダウンロード・購入
はじめに
2001/1〜2001/05/14
トライパッチの利用
2001/2/01-4/27
メッシュジェネレータの利用
2001/1/28-4/28
境界条件貼付けモジュールの利用 2001/1/28-5/8
IOモジュールの利用
2001/1/28-5/9
Metisモジュールの利用
2001/1/28-6/18
Solidモジュールの利用
2001/1/29-1/30
Visualモジュールの利用
2001/1/30-5/12

Metisモジュールの利用(2001/01/28-6/18)


  • 1. 思ったこと

    (1) Adv-IOは既にmakeできてるっぽいから取りあえずAdv-Metisのmakeには入れそうだ。
    (2) めんどうだからMakefile.iniを変更せずにまずmakeしてみよう。
    (3) どのモジュールもPDFのマニュアルにはREADMEやINSTALL.jp以外のことが書いてあるのだろうか。
    (4) サンプルデータはないの?MeshGenやBC-Toolが動かないので自力ではサンプルデータを準備できないし。
    (5) 実行モジュールはちゃんとできたのかな。
    (6) 入力モデルファイルはどこから探せば良いのだろう。PDFマニュアルの実行コマンド例にはengine model.advという入力ファイル名が書いてあったが、この*.advという拡張子はどの操作の結果として作られるのだろう。同じマニュアルに一体型解析モデルファイルという説明が見つかったがそれ以上のことが書いてない。
    (7) 前にAdvBCtoolを使ったときに一体どのファイルまで作成したのだろう。
    (8) machine ファイルは具体的にはどのように作れば良いのだろう。
    (9) Metisを並列で走らせるマシン数とSolidを走らせるマシン数の関係が良く分からない。やはり一致させる必要があるのだろうか。
    (10)(6/15)マニュアルに変更履歴がないので、どこが変更になったか全部読まないと分らない。結構疲れる。
    (11)mpirunをどこのディレクトリで実行したか忘れてしまった。とりあえず入力データのディレクトリで実行することにしよう。
  • 2. うまくいったこと/やったこと

    (1) AdvMetis-0.6を解凍した。
    (2) AdvMetis-0.6を~miyoshi/adventure/library/に移動した。
    (3) README.euc_jpが文字化けで読めない。eucと言う名前なのに新JISで書いてあった。
    (4) Makefile.inを編集してADVSYSDに実際にAdvIO-0.8が置かれたディレクトリをセットした。
    (5) AdvMetisのmakeはうまくできたようだ。 ADVENTURE_METIS ディレクトリ中に実行モジュール adventure_metisが作成された。
    (6) PDFのマニュアルを読んだ。
    (7) adventure_metisの置き場について指定がないので他のモジュールを見習ってbin/を作成してそこに置いた。
    (8) (ここから5/8)mpirunを引数なしで実行して)mpirunがインストールされていることを確認した。
    (9) PDFのマニュアルの4.1 実行の概要を読んだ。
    (10) Quick StartのAdvMetisのところを読んでみた。
    (11) AdvSolidのPDFマニュアルのAppendix C.1を読んだ。
    (12) AE社ご担当の指示に基づきADVENTURE_METIS ディレクトリの Makefile 中の
    ALIBS = `$(ADVCFG) --libs docio` -lparmetis -lmetis -lm $(LIBS)
    という行を、
    ALIBS = -lparmetis -lmetis $(LIBS) `$(ADVCFG) --libs docio` -lm
    に変更した。そしてAdvMetisのトップディレクトリでmakeをしなおした。エラーなし。
    (13) (5/11)Makifile.iniを編集してOPTFLAGS = -O3をO2に変更してmakeをしなおした。file is updateのようなメッセージが出たので、一旦make cleanで古い実行モジュールを削除して再度makeした。エラーなし。
    (14)(6/15)AE社ご担当の指示に基づき新しいバージョンAdvMetis-0.61.tar.gzをダウンロードした。なぜ名前からbが抜けたのだろう。
    (15)AdvMetis-0.61を~miyoshi/adventure/library/に移動した。
    (16)AdvMetis-0.61を解凍した。
    (17)AdvMetis-0.6と同様、Makefile.inを編集してADVSYSDに実際にAdvIO-0.8が置かれたディレクトリをセットした。
    (18)AdvMetisのmakeはうまくできた。ADVENTURE_METIS ディレクトリ中に実行モジュール adventure_metisが作成された。
    (19)adventure_metisの置き場について指定がないので他のモジュールを見習ってbin/を作成してそこに置いた。
    (20)使用する入力データはAdvMetis-0.6のときのものをそのまま利用することにした。miyo_dataのディレクトリの下にまずdata01をコピーした。
    (21)miyo_data/data01/modelの下に古い領域分割後データがそのままコピーして持ってきてあったのでmodelというディレクトリごと削除した。
    (22)(6/18)部分数5、領域数50で成功した。成功したデータはdata01c.adv及びcube.adv。
  • 3. 分かったこと

    (1) Makefile.iniを変更せずにまずmakeしたらエラー発生。ADVSYSDの変更が必要。
    (2) 実行モジュールはちゃんとできた。
    (3) PDFのマニュアルを読んでADVENTURE IO を、事前にコンパイルしておく必要があることが分った。
    (4) Quick Startを読んだ。6例題の(4)境界条件貼り付け(ADVENTURE_BCtool)に一体型解析モデルファイル作成機能を使うと*.advの拡張 子を持つファイルが作成されることが書いてあった。ひょっとしてと思ってAdvBCtoolのPDFのマニュアルを読んだところ
    5. 使用方法
    (3 )ステップ3 一体型解析モデルファイルの作成

    の中及び

    6. 各種ファイルフォーマット
    (8) 一体型解析モデルファイル(拡張子 adv)

    の見出しにadvが見つかった。
    (5) PDFのマニュアルの4.1節によると起動方法は
    % mpirun [mpioptions] adventure metis [options] model filename directry name div num
    とのこと。mpioptionsについてはADVENTURE Solid の使用マニュアルの付録を参照せよとのこと。
    (6) Quick Start 6(5)領域分割より起動方法の例を見つけた。
    % mpirun -np 3 -machinefile machine adventure_metis -ls metis.log adventure_manual_data01c.adv . 200
    (7) /etc/hosts.equivがホストに定義されていることを確認した。その中身の各行はクラスタマシン名であった。従って各ユーザは.rhostsをホームディレクトリに用意しておく必要がない。(AdvSolid PDFマニュアルAppendix C.1による)
    (8) machineファイルは/etc/hosts.equivの中身のままで良ければ設定不要のようだ。(AdvSolid PDFマニュアルAppendix C.2による)
    (9) AE社ご担当に領域数が2以上で終わらない件について問い合わせたところ、次の調べ物をするようにとのことだったので実行した。

    METIS の中の関数 log2 というものが mathlibrary 中の同名の関数とコンフリクトを起こすと METIS を呼ぶところで止まってしまう場合がある。AdvIO の advsys-config スクリプトを下記のように実行し、

    % advsys-config --libs docio

    この結果中に、-lm が含まれている場合、上記のバグが発現することが分かっている。

    得られた結果には確かに-lmが含まれていた。

    -L/home/miyoshi/adventure/library/AdvIO-0.8b/lib -lAdvDocIO -lAdvIDL -L/usr/lib -lORBit -lIIOP -lORBitutil -lglib -lm -lAdvFileIO -lAdvBase
    (10)(6/15)READMEを読んだらADVENTURE_Metis (Ver. 0.61 Beta)と書いてあった。bがないのは単なる漏れのようだ。
    (11)(6/18)mpirun -np 2 ../../bin/adventure_metis metis.log data01c.adv 2は単なるコマンドのタイプミスであった。
    mpirun -np 5 ../../bin/adventure_metis -ls metis.log data01c.adv . 50 に変更したら成功した。メッセージは、
    rank 0 Process ID: 12207
    rank 1 Process ID: 32747
    rank 2 Process ID: 27935
    rank 3 Process ID: 25235
    rank 4 Process ID: 25251
  • 4. うまくいかないこと

    (1) makeは出来たが試しのrunが出来ない。
    (2) 要素数23441、節点数4831のモデルの領域分割がnp=5、領域数10で40分かかっても終わらない。
    (3) 要素数27、節点数64のモデルの領域分割がnp= 2、領域数2で20分ぐらいかかっても終わらない。
    (4) ALIBSの記述順序を変えて、makeしなおして、再実行したが、以前と同じく終了しない。
    (5) (5/11)コンパイルの最適化オプションO3をO2に下げてmakeしなおして、再実行したが、以前と同じくMETIS開始後反応がなくなる。
    (6)(6/15)mpirun -np 2 -machinefile machine adventure_metis metis.log data01c.adv 2を実行したら
    Warning: Command line arguments for program should be given
    after the program name. Assuming that metis.log is a
    command line argument for the program.
    (7)mpirun -np 2 ../../bin/adventure_metis metis.log data01c.adv 2
    を実行したら
    [r00000]: Cannot make directory, file exists: data01c.adv
    と文句を言ってきた。

  • 5. Tips

    (1)emacsでも最近のバージョンは日本語を表示できる。x-windowのemacsならmule > set language environment > Japaneseで漢字コードを自動判別してくれる。しかしそれだけではだめだ。language environmentをセットした後でcntl-x cntl-fで読みたいファイルを開くこと。最初に開いたファイルはキャッシュに覚えているせいか、language environmentをセットしても表示が変わらない。

このページの内容に関するご質問はこちらまで。
作成者: 株式会社インサイト 三好昭生
Insight
info(at)meshman.jp 050-8885-4787
スカイプでのお問合せ
akio_miyoshi
株式会社 インサイト
Copyright (c) Insight Inc, 2000-2008 All Right Reserved.