音響解析について

967 views
Skip to first unread message

初心者

unread,
May 31, 2013, 11:25:25 PM5/31/13
to open...@googlegroups.com

始めまして。初心者の者です。

以下の音響解析ケースファイルを実施したいとケースファイルを
ダウンロードしました。

https://www.openacoustics.org/svn-repo/openacoustics/trunk/survey/OpenFOAM/potentialWaveFoam/

その後、OpenFOAMのrun下にpotentialWaveFoamのフォルダーを作成し、
端末からREADMEのとおり./Allrunを実施してみたのですが、

「bash: ./Allrun: 許可がありません」

と表示され計算ができませんでした。

端末のOpenFOAMから ./Allrunで計算する方法はどうすれば良いのでしょうか?
DEXCS2012の端末を使用しています。

ケースファイルのREADMEの「Installation」を見ると、

「OpenFOAM 1.4, 1.4.1, 1.5, 1.5.x.」のバージョンで確認済み、
とあります。
DEXCS2012はOpenFOAM-2.1.xバージョンですので動作しないという
ことでしょうか。

また、

「Python」と「funkySetFields」
の環境が必要ともあります。

http://openfoamwiki.net/index.php/Contrib_funkySetFields

「Python」と「funkySetFields」はダウンロードしたのですが、
Linuxの知識が乏しいため、DEXCS2012のデスクトップ上に展開して
置いたままです。


OpenFOAM初心者のため計算実行出来ませんでした。
「tutorial」を./Allrunで計算させ、結果の可視化を見れる程度の
初心者です。ソースを改変してmakeさせる方法も知りません。

ご教授頂けると大変勉強になります。

 

nozaki

unread,
Jun 1, 2013, 12:18:10 AM6/1/13
to open...@googlegroups.com

「bash: ./Allrun: 許可がありません」

こちらのエラーに関しては、ダウンロードされた Allrun スクリプトに実行権限がついて
いないことが原因だと考えられます。コマンド(chmod +x Allrun)を実行して、このスク
リプトファイルに実行権限を与えて、再度 ./Allrun を実行してみてください。

野崎

2013年6月1日土曜日 12時25分25秒 UTC+9 初心者:

初心者

unread,
Jun 1, 2013, 2:37:28 AM6/1/13
to open...@googlegroups.com
野崎 様
 
 
早速のご回答有難うございます。
 
ご指示のとおり実行しましたら計算が始まりました。
ところが、下記の最後の行で計算がストップしてしまいました。
 
解決方法が分かるようでしたらご教授頂けると有難いです。
 
               記

wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file convectiveOutletFvPatchFields.C
SOURCE=convectiveOutletFvPatchFields.C ;  g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/finiteVolume/lnInclude -DWM_PROJECT_VERSION_MAJOR=`echo 2.1.x | awk 'BEGIN{FS="."}{print $1;}'` -DWM_PROJECT_VERSION_MINOR=`echo 2.1.x | awk 'BEGIN{FS="."}{print $2;}'` -DWM_PROJECT_VERSION_PATCH=`echo 2.1.x | awk 'BEGIN{FS="."}{if (length($3) > 0) print $3; else print "0";}'` -IlnInclude -I. -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OpenFOAM/lnInclude -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linuxGccDPOpt/convectiveOutletFvPatchFields.o
'/home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/platforms/linuxGccDPOpt/lib/libconvectiveOutlet.so' is up to date.
Compiling potentialWaveFoam application
Making dependency list for source file potentialWaveFoam.C
SOURCE=potentialWaveFoam.C ;  g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/finiteVolume/lnInclude -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/sampling/lnInclude -IlnInclude -I. -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OpenFOAM/lnInclude -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linuxGccDPOpt/potentialWaveFoam.o
g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/finiteVolume/lnInclude -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/sampling/lnInclude -IlnInclude -I. -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OpenFOAM/lnInclude -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OSspecific/POSIX/lnInclude   -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linuxGccDPOpt/potentialWaveFoam.o -L/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/platforms/linuxGccDPOpt/lib \
      -lfiniteVolume -lOpenFOAM -ldl   -lm -o /home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/platforms/linuxGccDPOpt/bin/potentialWaveFoam
Compiling probeToAudio application
Making dependency list for source file probeToAudio.C
could not open file Time.hh for source file probeToAudio.C
SOURCE=probeToAudio.C ;  g++ -m32 -Dlinux -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -O3  -DNoRepository -ftemplate-depth-100 -DWM_PROJECT_VERSION_MAJOR=`echo 2.1.x | awk 'BEGIN{FS="."}{print $1;}'` -DWM_PROJECT_VERSION_MINOR=`echo 2.1.x | awk 'BEGIN{FS="."}{print $2;}'` -DWM_PROJECT_VERSION_PATCH=`echo 2.1.x | awk 'BEGIN{FS="."}{if (length($3) > 0) print $3; else print "0";}'` -IlnInclude -I. -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OpenFOAM/lnInclude -I/home/DEXCS2012/OpenFOAM/OpenFOAM-2.1.x/src/OSspecific/POSIX/lnInclude   -fPIC -c $SOURCE -o Make/linuxGccDPOpt/probeToAudio.o
probeToAudio.C: 関数 ‘bool readSeries(Foam::DynamicList<double>&, const Foam::fileName&, Foam::label, Foam::scalar)’ 内:
probeToAudio.C:92:5: 警告: 符号付きと符号無しの整数式の間での比較です [-Wsign-compare]
probeToAudio.C:104:9: 警告: 符号付きと符号無しの整数式の間での比較です [-Wsign-compare]
probeToAudio.C: 大域スコープ:
probeToAudio.C:215:11: エラー: ‘uint32_t’ does not name a type
probeToAudio.C:215:20: エラー: ISO C++ では型の無い ‘samplingRate’ の宣言を禁止しています [-fpermissive]
probeToAudio.C: 関数 ‘bool pcmDataToWav(const Foam::fileName&, const Foam::List<short int>&, int)’ 内:
probeToAudio.C:225:11: エラー: ‘uint32_t’ does not name a type
probeToAudio.C:226:11: エラー: ‘uint16_t’ does not name a type
probeToAudio.C:227:11: エラー: ‘uint16_t’ does not name a type
probeToAudio.C:228:11: エラー: ‘uint16_t’ does not name a type
probeToAudio.C:229:11: エラー: ‘uint32_t’ does not name a type
probeToAudio.C:230:11: エラー: ‘uint16_t’ does not name a type
probeToAudio.C:231:11: エラー: ‘uint32_t’ does not name a type
probeToAudio.C:232:11: エラー: ‘uint32_t’ does not name a type
probeToAudio.C:236:47: エラー: ‘fileSizeMinus8’ was not declared in this scope
probeToAudio.C:239:47: エラー: ‘fmtChunkSize’ was not declared in this scope
probeToAudio.C:240:47: エラー: ‘formatId’ was not declared in this scope
probeToAudio.C:241:47: エラー: ‘nChannels’ was not declared in this scope
probeToAudio.C:243:47: エラー: ‘dataRate’ was not declared in this scope
probeToAudio.C:244:47: エラー: ‘blockSize’ was not declared in this scope
probeToAudio.C:245:47: エラー: ‘bitsPerSample’ was not declared in this scope
probeToAudio.C:247:47: エラー: ‘dataSize’ was not declared in this scope
probeToAudio.C: 大域スコープ:
probeToAudio.C:257:49: エラー: ‘uint32_t’ has not been declared
probeToAudio.C: 関数 ‘int main(int, char**)’ 内:
probeToAudio.C:438:11: エラー: ‘uint32_t’ does not name a type
probeToAudio.C:442:56: エラー: ‘samplingRate’ was not declared in this scope
probeToAudio.C: 関数 ‘bool pcmDataToDevice(const Foam::List<short int>&, int)’ 内:
probeToAudio.C:365:55: 警告: warn_unused_result 属性付きで宣言されている ‘ssize_t write(int, const void*, size_t)’ の戻り値を無視しています [-Wunused-result]
make: *** [Make/linuxGccDPOpt/probeToAudio.o] エラー 1
reverberationRoom
Running blockMesh on /home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/run/potentialWaveFoam/reverberationRoom
Running removeCellBoxes.py
end
Mesh was not properly created
Running funkySetFields on /home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/run/potentialWaveFoam/reverberationRoom
Running potentialWaveFoam on /home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/run/potentialWaveFoam/reverberationRoom
Running potentialWaveFoam on /home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/run/potentialWaveFoam/reverberationRoom
Running probeToAudio on /home/DEXCS2012/OpenFOAM/DEXCS2012-2.1.x/run/potentialWaveFoam/reverberationRoom
mv: `reverberationRoom/probes/0/p_1.wav' を stat できません: そのようなファイルやディレクトリはありません
 

ohbuchi

unread,
Jun 1, 2013, 5:17:53 AM6/1/13
to open...@googlegroups.com
横から失礼します。
probeToAudio.Cというプログラムのコンパイルで、uint32_tなどの標準C整数型が
未定義になっているというエラーがでてコンパイルできず、計算まで進んでいません。
このソースコードの冒頭に下記のコードを追加して再度試して見て下さい。

#include <stdint.h>

また、funkeySetFieldについてはDEXCS2012に標準で含まれていると思います。

以上、ご参考まで。


2013年6月1日土曜日 15時37分28秒 UTC+9 初心者:

初心者

unread,
Jun 1, 2013, 6:55:44 AM6/1/13
to open...@googlegroups.com
野崎 様
 
「reverberationRoom」フォルダーに時系列解析結果が計算されていました。
可視化してみましたが、例題のように波動方程式の時間発展の様子が
確認できました。ケースファイルを演習してみるという当初の目的は
達成できました。
 
save→animationでjpegファイルの連続画像ファイルを保存しましたが、
これらを動画のように編集してwindows上で動画ファイルとして編集できる
フリーソフト等があれば教えて頂けると参考になります。
 
 
ohbuchi  様
 
ご教授有難うございます。
 
早速トライしてみます。
 
 
 

初心者

unread,
Jun 1, 2013, 7:46:22 AM6/1/13
to open...@googlegroups.com
ohbuchi  様
 
 
別添のとおり追加して再計算してみましたが結果は同じでした。
 
「reverberationRoom」フォルダーのケースファイルを演習してみるという
当初の目的は達成できました。
ご教授有難うございました。今後、ソースファイルを見ながら勉強します。
 
音響解析のtutorialがありませんでしたので大変勉強になりました。
電磁波解析もこのケースファイルのように波動方程式そのものなのでしょうか。
それとも波動方程式ではなくマクスエル方程式なのでしょうか。
携帯電波等の電磁波解析も興味があります。
 
probeToAudio.C

nozaki

unread,
Jun 1, 2013, 7:53:41 AM6/1/13
to open...@googlegroups.com

連続画像から動画を作成するフリーソフトに関しては、以下のスレッドの

https://groups.google.com/forum/?fromgroups#!topic/openfoam/enczp_jgkF8

satoshi 様の投稿にもあるように、ムービーメーカーが使用できます。他にも、

Giam など色々とフリーのソフトがありますので、お好みのものをご使用に

なられたらと思います。

野崎


2013年6月1日土曜日 20時46分22秒 UTC+9 初心者:

初心者

unread,
Jun 1, 2013, 8:09:28 AM6/1/13
to open...@googlegroups.com
野崎 様
 
 
情報有難うございます。
試してみます。
 
./Allrunが実行出来て勉強になりました。
有難うございました。
Linuxコマンドが全く分からないため、
やはりプロの方のアドバイスが的確でした。
 
ケースファイルの実行が出来ましたので
これからじっくり復習します。
 
取り急ぎお礼のお返事でした。

ohbuchi

unread,
Jun 1, 2013, 8:36:03 AM6/1/13
to open...@googlegroups.com
解決された様なので、どうでもよいのでしょうが、
標準ヘッダの指定は””でな<>です。

#include "stdint.h"
  ↓
#include <stdint.h>



2013年6月1日土曜日 20時46分22秒 UTC+9 初心者:

初心者

unread,
Jun 1, 2013, 6:08:33 PM6/1/13
to open...@googlegroups.com
ohbuchi  様
 
ソースファイルを開くと” ”ばかりでしたので<>を
勝手に書き換えてしまいました。
 
#include "stdint.h"
  ↓
#include <stdint.h>
 
として./Allcleanを実施して再度./Allrunしてみたのですが、
結果は同様でした。
色々とご教授有難うございました。
 
 
 
 
Reply all
Reply to author
Forward
0 new messages