簡単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

境界条件貼付けモジュールの利用(2001/01/28-5/8)


1. 思ったこと

  • (1) Makefileの編集でOpenGL(またはMesa)のヘッダーファイルのディレクトリをセットしろと書いているが、しろうとはそれがどこにはいっているか探すのが大変だ。
    (2) Motif(lesstif)でも同じことを要求されたが、これも大変。
    (3) ヘッダーファイルのディレクトリと言われてもいくつも有りそうだ。全部指定するのかなぁ。
    (4) Xm/XmAll.hがないのだから、ディレクトリの指定は一つ上の階層で止めなくてはいけない。
    (5) 誰かがAdvIOをインストールしてからでないとAdvソフトは使えないと言ってたのを思い出した。
    (6) (ここから1/31)https://www.mesa3d.org/の最新版はMesa3.4だったが、こちらではだめなのだろうか。3.2を使えとマニュアルのどこかに書いてあったかな。
    (7) make linuxでエラーが出たけど取りあえず先に進んで見よう。
    (8) AdvSysのディレクトリとはどのディレクトリのことだろう。各モジュールをどのようなディレクトリ構成にするのかどこにも指示はないが。とりあえず$(HOME)/adventure/libraryとしておこう。
    (9) src/makefem/でmakeをしたがうまく行かないのはADVSYSDIRの指定がまずいんだろうな。
    (10) 実行方法はPDFのマニュアルの方かな。
    (11) なぜPDFマニュアルに表示されない文字がこんなにたくさんあるのだろう。
    (12) sample/に*.pch *.pcgがないのか。
    (13) (ここから2/1)環境変数LD_LIBRARY_PATHとはどの程度一般的なものなのだろう。
    (14) Solarisセットアップのページ
    http://www.elc.ees.saitama-u.ac.jp/ITO/saru/node20.html
    で環境変数LD_LIBRARY_PATHの説明を見つけたのでunix一般の常識かなぁ。
    (15) ネットワーク経由なので表示がやはり早くない。ウィンドーを縮小したら少し良くなった。
    (16) 立方体でなく曲がった形状のサンプルが欲しい。解いても変形が出ないので。
    (17) 変位拘束条件を与えたが、拘束のマークが表示されないぞ。そうかグループの場合は面が塗られるだけなんだな。
    (18) (ここから5/8)各モジュールのサンプルデータの形状をマニュアルの中に表示して欲しい。

  • 2. うまくいったこと/やったことADVSYSDIR

    (1) AdvBCtool-0.8b/のINSTALL.jpをemacsで開いた。
    (2) google.comでKondara, Motifのキーワードで検索して配布パッケージにどんな名前のファイルが入っているかを探した。
    (3) AE社のご担当に質問した。
    (4) implicit declaration of function `int sprintf(.のエラーは解決した。
    (5) システムアドミニストレータにmesaかopenGLのインストールを依頼した。
    (6) (ここから1/31)Mesa3.2アーカイブをダウンロードした。
    (7) 同解凍し、Mesa-3.2/を~miyoshi/に移動。
    (8) widgets-mesa/で./configure実行。
    (9) widgets-mesa/src/Makefileを指示どおりに修正した。
    (10) widgets-mesa/src/でmakeを実行。
    (11) $HOME/にMesa/を作って各種コピー、削除、シンボリックリンク作成を実行。
    (12) bcGUI/のMakefileを指示どおり変更した。
    (13) bcGUI/でmakeを実行した。
    (14) src/makefem/Makefileを編集した。ADVSYSDIRの使われ方を見た。
    (15) src/faceOfMesh/でmakeを実行した。
    (16) src/makepcg/でmakeを実行した。
    (17) もう一度src/makefem/MakefileでADVSYSDIRの使われ方をよく見た。
    (18) find -nameコマンドでadvsys-configを探した。
    (19) src/makefem/Makefileを編集して、ADVSYSDIRにAdvIO-0.8b/の場所を指定した。
    (20) AE社のご担当に質問した。
    (21) src/makefem/のmakeに成功した。
    (22) PDFのマニュアルを開いた。
    (23) 拡大表示をしたらPDFマニュアルの全ての文字が表示されるようになった。
    (24) PATHに/usr/X11R6/lib/を追加した。
    (25) もう一度PDFマニュアルの使用方法を読み始めた。
    (26) msh2pcg mesh_tet1.msh 4を実行した。
    (27) bcGUI mesh_tet1_4.pch mesh_tet1_4.pcgを実行した。GUIが立ち上がった。モデルも表示された。
    (28) モデルをワイヤーフレームで表示して、平行移動、拡大/縮小、回転を試して見た。
    (29) 面に変位境界条件を指定した。(固定条件=面上の全ての変位はゼロ)
    (30) 同じく変位境界条件を表示した。
    (31) 境界条件の保存に成功した。
    (32) makefemを実行して一体型解析モデルファイルを作成するのに成功した。
    (33) AdvTetMeshモジュールのサンプルメッシュの実行結果をサンプルデータ置き場にコピーした。

  • 3. 分かったこと

    (1) /usr/X11R6の下にLessTif/を見つけた。
    (2) /usr/X11R6/Include/XmにXmAll.hを見つけた。但し、/usr/X11R6/LessTif/Motif2.0/Include/Xmのシンボリックリンク。
    (3) /usr/Includeにsprintfを含むインクルードファイルを見つけた。
    (4) AE社ご担当の回答。

    .

    csetbcdlg.cxxの先頭に
    #Include <stdio.h>
    を追加。
    また、csetgravdlg.cxxの先頭にも
    #Include <stdio.h>
    を追加。

    (5) (ここから1/31)AE社ご担当よりmesaを自分でコンパイルする方法を教えてもらった。
    a) Mesa3.2のダウンロード

    http://www.mesa3d.org/から次のファイルをダウンロードします。
    MesaLib-3.2.tar.gz
    MesaDemos-3.2.tar.gz

    b) Mesa3.2のアーカイブの展開

    適当なディレクトリで、アーカイブを展開します。
    % tar zxvf MesaLib-3.2.tar.gz
    % tar zxvf MesaDemos-3.2.tar.gz
    すると、Mesa-3.2/というディレクトリができます。

    c) Mesa3.2のコンパイル

    ディレクトリを移動します。
    % cd Mesa-3.2
    makeを実行します。
    % make linux

    d) 他の必要なライブラリのコンパイル

    ディレクトリを移動します。
    % cd widgets-mesa
    confugureスクリプトの実行
    % ./configure
    ディレクトリを移動します。
    % cd src

    ここでMakefileの53行目を以下のように修正します。
    (修正前) SYS_CFLAGS = -pipe -Wall
    (修正後) SYS_CFLAGS = -Wall

    makeを実行します。
    % make

    e) ライブラリとヘッダーをインストール

    自分のホームディレクトリにMesa/というディレクトリをTOPとした次のようなディレクトリ
    構成を作成します。
    $HOME
      |
      ------Mesa/
            |
            -----Include
            |      |
            |      -----GL
            |
            -----lib

    以下の作業を行います。

    Mesa-3.2/lib/*.a を $HOME/Mesa/lib/ へコピー
    Mesa-3.2/Include/GL/*.h を $HOME/Mesa/Include/GL/ へコピー

    Mesa-3.2/widgets-mesa/src/libMesaGLw.a を $HOME/Mesa/lib/ へコピー
    Mesa-3.2/widgets-mesa/Include/GL/*.h を $HOME/Mesa/Include/GL/ へコピー

    $HOME/Mesa/lib/libGLw.a を削除
    $HOHE/Mesa/lib/libMesaGLw.a のシンボリックリンクをlibGLw.aという名前で作成。

    f) bcGUIのMakefileの編集

    Makefileを以下のように編集する

    # OpenGL or Mesa
    GLHDR_DIR = -I$(HOME)/Mesa/Include
    GLLIB_DIR = -L$(HOME)/Mesa/lib

    # Motif or LessTif
    MOTIFHDR_DIR = -I/usr/X11R6/Include
    MOTIFLIB_DIR = -L/usr/X11R6/lib

    CC = g++
    CFLAGS = -Wall -DnoMotifGLwidget -DGLW_HDR_ANOTHER_LOCATION

    g) bcGUIでmakeの実行

    makeを実行します。
    % make

    (6) src/makefem/Makefileの中で使われているADVSYSDIRはAdvIO-0.8b/の場所を指定するようだ。
    (7) bcGUI, facdOfMesh, makepcgでは実行ファイルが作成された。
    (8) AE社のご担当よりTARGET = makefemを消したのではないかとご指摘があった。
    (9) src/makefem/Makefileを調べたらTARGETがTargetに変わっていた。どうも一度消して再度タイプしたときのタイプミスのようだ。
    (10) libXm.so.2は/usr/X11R6/lib/に確かに存在する。
    (11) (ここから2/1)AE社ご担当より環境変数LD_LIBRARY_PATHに /usr/X11R6/libすれば良いのではないかというアドバイス。
    (12) *.pchや*.pcgはmesh2pcgというツールを使って*.mshから用意しなくてはいけない。
    (13) mesh_tet1.mshは立方体である。
    (14) mesh_tet2.mshも立方体である。
    (15) mesh_hex1.mshも立方体である。
    (16) 境界条件保存時にhoge.cndではなくhogeとタイプすること。
    (17) ユーザの操作としては3つのステップが必要。この辺りはmanual-jp.pdfにとても分りやすく書いてある。
    a) メッシュ表面の抽出
    入力:*.msh
    出力:
    *.fgr
    *.pch
    *.pcg
    *.trn
    b) GUI による境界条件の設定
    入力:
    *.pch
    *.pcg
    出力:
    *.cnd
    設定という操作とファイルへの出力という操作が必要。
    (c) 一体型解析モデルファイルの作成
    入力:
    *.msh
    *.fgr
    *.cnd
    *.trn
    *.dat
    出力:
    *.adv
    *.fem(こちらはasciiデータバージョン)


  • 4. うまくいかないこと

    (1) AdvBCtool-0.8b/src/bcGUI/で取りあえずmakeしたがXm/XmAll.hが足りない。またはパスが見つからない。
    (2) MakeファイルのMOTIFHDR_DIRに/usr/X11R6/Include/Xmをセットして再度makeしたがコンパイルのオプションが変だと言ってくる。
    (3) MakeファイルのMOTIFHDR_DIRに
    /usr/X11R6/Include/Xmではなく
    -I/usr/X11R6/Include/Xmを
    セットして再度makeしたがXm/XmAll.hがないと言ってくる。
    (4) cshを起動して再度makeをしたがエラーメッセージは変わらない。
    (5) MakeファイルのMOTIFHDR_DIRに
    -I/usr/X11R6/Include/Xmではなく
    -I/usr/X11R6/Include/
    をセットして再度makeしたが、implicit declaration of function `int sprintf(...)'というエラー発生。
    (6) 苦し紛れに、MakeファイルのMOTIFHDR_DIRに
    -I/usr/X11R6/Include/だけでなく
    -I/usr/Include
    をセットして再度makeした。やはり同じエラー。以下詳細。
    %make
    g++ -I/usr/X11R6/Include -I/usr/Include -I. -I../Common/AGK -I../Common/TFC -I.
    ./Common/GUI -Wall ../Common/GUI/csetbcdlg.cxx -c -o ../Common/GUI/csetbcdlg.o
    ../Common/GUI/csetbcdlg.cxx: In method `void CSETBCDLG::DoModal()':
    ../Common/GUI/csetbcdlg.cxx:265: implicit declaration of function `int sprintf(.
    ..)'
    make: *** [../Common/GUI/csetbcdlg.o] Error 1
    ..)
    (7) 再度makeしたらX11/GLw/GLwMDrawA.hがないと言ってきた。mesaかOpenGL関係のインクルードファイルを一所懸命探したが、どうにも見つからない。GL: /usr/Include/GLだけは見つかったがこれでは足りない。
    (8) (ここから1/31)make linuxを実行した。
    mv: *.a: No such file or directory
    make[2]: [../lib/libGLw.a] Error 1 (ignored)
    上のエラー発生。他に空のファイルをコンパイルできないというwarning発生。
    (9) うっかりsrc/faceOfMesh/でmakeをする前に、src/makefem/でmakeをしてしまった。
    (10) src/faceOfMesh/でmakeを実行した後でsrc/makefem/でmakeをし直したが、ファイルを削除しかしない。
    (11) src/makefem/でmakeを実行したが、やはりファイルの削除しかしない。
    (12) PDFマニュアルの一部の文字が表示されない。
    (13) サンプルデータがないのでbcGUIを引数なしで立ち上げたらエラー。
    bcGUI: error in loading shared libraries: libXm.so.2: cannot open shared object
    file: No such file or directory
    (14) (ここから2/1)LD_LIBRARY_PATHをセットしたらlibXm.so.2のエラーは出なくなった。しかしインプットデータ無しでは立ち上がらない。
    (15) View>Surfaceを選ぶとSegmentation faultで落ちる。
    (16) 境界条件の保存に失敗した。
    (17) 選択された面グループのパッチ表示のメニューを選んでも表示が変わらない。

  • 5. Tips

    (1)

.


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