はじめまして

237 views
Skip to first unread message

so1.du...@gmail.com

unread,
Jun 21, 2013, 5:12:17 AM6/21/13
to openac...@googlegroups.com


今回、「はじめての音響数値シミュレーション プログラミングガイド」を読み進め勉強させて頂いております。

Python を扱うことが初めてです。

Ubuntu [12.04] の32ビット環境でプログラムコードを打ちこみ一つひとつ進めております。

そこで、「Gmsh と PolyCollection クラスを使用したFEMコード(3-30) [p.50~52]」を実行したところ以下のようなエラーが出ました。


Info    : Running 'gmsh square.geo -2 -clscale 0.5 -order 1 -o tmp.msh' [1 node(s), max. 4 thread(s)]
Info    : Started on Fri Jun 21 17:45:27 2013
Info    : Meshing 1D...
Info    : Done meshing 1D (0 s)
Info    : Meshing 2D...
Info    : Done meshing 2D (0 s)
Info    : 0 vertices 0 elements
Info    : Writing 'tmp.msh'...
Info    : Done writing 'tmp.msh'
Info    : Stopped on Fri Jun 21 17:45:27 2013
Traceback (most recent call last):
  File "3-30.py", line 49, in <module>
    nodes = gmsh.getNodes()
  File "/usr/local/lib/python2.7/dist-packages/openacoustics/gmsh.py", line 83, in getNodes
    nodes = self.read('Nodes', 'EndNodes')
  File "/usr/local/lib/python2.7/dist-packages/openacoustics/gmsh.py", line 211, in read
    return self.readbetween(idxs[0], idxs[1])
  File "/usr/local/lib/python2.7/dist-packages/openacoustics/gmsh.py", line 206, in readbetween
    return self.readfromlines(lines)
  File "/usr/local/lib/python2.7/dist-packages/openacoustics/gmsh.py", line 193, in readfromlines
    tmp = self.msh[lines[0]].split()
IndexError: list index out of range


試行錯誤を繰り返しましたが、同じエラーが出るばかりです。

改善策がございましたらお教えいただけないでしょうか。


Hoshi Kazuma

unread,
Jun 25, 2013, 5:06:31 AM6/25/13
to openac...@googlegroups.com
はじめまして,当プロジェクトに関わっております星と申します。

考えられる原因は
・動作環境の問題,
・OpenAcousticsパッケージに問題,
・入力したコードもしくは形状データファイルに問題,
の何れかだと考えられますので,お手数ですがまずは,


をダウンロード頂き,ダウンロードしたsquare.geoとsampleFem2.pyを用いて,
sampleFem2.pyが実行できるかご確認くださいますでしょうか。

ご検討のほどよろしくお願い申し上げます。

so1.du...@gmail.com

unread,
Jun 28, 2013, 6:20:12 AM6/28/13
to openac...@googlegroups.com

星様へ

ご返答ありがとうございました。

教えて頂いたとおり、 square.geo を同じディレクトリにおいたところ無事に動作させることができました。
本当にありがとうございました。

また、プログラム[3-30]で描画された図がすぐに消えてしまう現象が発生しました。
そこで、最終行の fig.show() を show() に変えてみましたところ描画されたままになることを確認致しました。

このあとのサンプルプログラムを参考に進めていこうと思っていますので、
よろしくお願い致します。


坂田


Hoshi Kazuma

unread,
Jun 30, 2013, 11:44:16 PM6/30/13
to openac...@googlegroups.com
坂田様

星です。
無事に動作したとのこと,よかったです。
samples20121106.zipのFemフォルダにsquare.geoが入っていないことから,混乱を招いたようですね。
square.geoを用意したいと思います。

またmatplotlibのshow()について報告ありがとうございました。
matplotlibの画面描画に関する関数は環境によって動作が若干異なるため苦慮しています。
今後の参考にさせて頂きます。

sakata

unread,
Nov 14, 2013, 5:24:15 AM11/14/13
to openac...@googlegroups.com

星様

以前にFEMコードについてご質問させていただいた坂田です。
お世話になっております。

今回、7章の音線法を勉強させていただいております。
そこで、 プログラム [7-20] の sampleRay1.py を進めていく中でサンプルコードの通り
図7.21は出力させる事が出来ました。
ですが、 drawing results の fig1 と fig2 のコメント部分を入れ換え、 control4sample1.csv を
プログラム [7-18] とし実行しましたが、以下の結果の様に図7.20が出力されませんでした。

#1 Read Room Data
number of point:  8
#2 Read Absorption Coefficient Data
#3 Read Condition for Calculation
#4 Calculate coefficients of Plane Equation
[  0.  -1.   0.  10.]
[  0.   1.   0.  10.]
[ -1.   0.   0.  10.]
[  1.  -0.   0.  10.]
[  0.  -0.   1.  10.]
[  0.   0.  -1.  10.]
#5 Create Sound Souce
Actual number of Sound Rays:  99
#6 Shoot off Sound Rays!!!!!!
error!!

改善できる部分がございましたらお教えいただけないでしょうか。
よろしくお願い致します。

Hoshi Kazuma

unread,
Nov 14, 2013, 7:46:19 PM11/14/13
to openac...@googlegroups.com
坂田様

星です。
質問承りました。
少々お時間をください。よろしくお願い致します。
Message has been deleted

Hoshi Kazuma

unread,
Nov 18, 2013, 9:06:50 PM11/18/13
to openac...@googlegroups.com
坂田様

星です。
Windowsで実行するとご報告頂いた現象がおきることを確認しました。

原因は99本の音線のうち,0から数えて58番の音線の方向ベクトルが
[-10.         -10.           1.11468966] と,ちょうど斜め45度になっています。
そのためこの音線は,立方体の角に当たるため,エラーになります。

この問題の安易な対処方法としては,音線の方向を少しずらすことが考えられます。
プログラム中の 2.6 create sound source の方向ベクトルを代入する部分を,

rayVector[n][0] = cos(2*pi*m/numberOfRaysOn_H_plane)*cos(theta)+1.0e-3
rayVector[n][1] = sin(2*pi*m/numberOfRaysOn_H_plane)*cos(theta)
rayVector[n][2] = sin(theta)

と,方向ベクトルのx成分に微小な値を足すことで,エラーを回避できることを確認しました。

このような問題を根本的に解決するためには,当たる壁が2面以上選ばれた場合,
選ばれた壁の法線ベクトルから合成ベクトルを求めて,反射させる方法がよいと思います。
いずれプログラムを改訂します。

ご指摘ありがとうございました。

sakata

unread,
Nov 28, 2013, 4:17:16 AM11/28/13
to openac...@googlegroups.com

星様

ご返答ならびにお時間いただきまして、ありがとうございました。

ご指摘していただきましたとおり、x成分に値を足し実行したところ、
[図7.20] を出力させることができました。

突然のご質問ばかりでしたが、快く対応して下さいまして
本当にありがとうございました。

今後とも、ぜひよろしくお願い致します。
Reply all
Reply to author
Forward
0 new messages