初期条件internalfieldについて

1,220 views
Skip to first unread message

hanihani

unread,
Oct 31, 2013, 4:30:14 AM10/31/13
to open...@googlegroups.com
この間チャネル流れの投稿をしてた者です.
 
領域メッシュの作成が終わり,とりあえずはチュートリアルと同じLESで計算を流そうとしましたが,研究室内に同じくLESをやっている方がおり,その方の初期条件,メッシュと同様の条件で計算して比較しようと考えています.
 
ところが初期データがファイル形式(binary)でこれをどうやって読み込めばいいのかでとまってしまいました.
方法としては
1、asciiに変換してから結果をコピー&ペーストで"nonuniform"に置く
2、binaryで読み込む
3、asciiに変換して読み込む
ぐらいかなと思いましたが,如何せん方法が分かりません・・・
 
今後のことを考えると3が一番よいと思いますが一番難しそうです・・
 
C++の勉強も併せてしたいと思っているので,簡単な手順だけでいいのでお教えいただけませんか?
注文が多くて申し訳ありません・・・

ohbuchi

unread,
Oct 31, 2013, 7:31:39 AM10/31/13
to open...@googlegroups.com
 こんにちは。
結局、0ディレクトリ下の各変数ファイルの初期条件の記述を以下の
様にすれば良いわけです

initialField uniform List<scalar or vector>
cell 数
(
 ・・・  ←この部分にセル番号順にデータを並べる
);
エディタでコピー&ペーストしても良いし、#include ”ファイル名”で
インクルードすることも出来ます。



2013年10月31日木曜日 17時30分14秒 UTC+9 hanihani:

hanihani

unread,
Oct 31, 2013, 10:59:44 PM10/31/13
to open...@googlegroups.com
Ohbuchi 様

ありがとうございます
普通にプログラミングすればいいのですね
この場合,foamfileのformatはbinaryにすべきなのでしょうか?

hanihani

unread,
Oct 31, 2013, 11:46:36 PM10/31/13
to open...@googlegroups.com
すみません
試したところ以下のエラーが出てしまいました・・・

--> FOAM FATAL IO ERROR
Expected a "(" while reading VectorSpace<Foam,Cmpt,nCmpt>,found on line 20 the word 'List<scalar'

file: /***/***/*****/***/U.internalField at line 20

 From function Istream::readingBegin(const char*)
 in file db/IOstreams/IOstreams/Istream.C at line 94.

FOAM exiting

()がどっかにいるようで・・・
VectorSpaceってことはu=(u v w)のこの括弧のことでしょうか?

ちなみにOhbuchi様に習いプログラムは次のようにしてあります.

internalField unifoam List<scalar or bector>

204800
(
#include "****.bin"
);


チュートリアルでnonuniformにした際
internalField nonunifoam List<bector>
(
(a0 b0 c0)
(a1 b1 c1)
・・・
);
としていたと思いますが,ファイルでの読取の際ファイル内もそのように記述されてないといけないとかでしょうか?

ohbuchi

unread,
Nov 1, 2013, 12:23:57 AM11/1/13
to open...@googlegroups.com
Uはベクトルフィールドなので、(X,Y,Z)と記述するため()が必要です。
boxTurb16チュートリアルの0/Uファイルを参考にして下さい。

internalField   nonuniform List<vector>
4096
(
(-0.0376011 0.020584 -0.0051027)
(-0.0262359 0.0149309 -0.0048244)
(-0.0141003 0.00810973 -0.00427023)
(-0.00304323 0.00116024 -0.00352459)
(0.00525225 -0.00486054 -0.00270092)
・・・
);



2013年11月1日金曜日 12時46分36秒 UTC+9 hanihani:

hanihani

unread,
Nov 3, 2013, 12:53:46 AM11/3/13
to open...@googlegroups.com
Ohbuchi 様

すみません,勉強して試したのですがうまくいきません・・・
"(X,Y,Z)と記述するため()が必要"の()をプログラム中に記述することはできないのでしょうか?

C言語でbinファイルをtxtに変換しようとしたところデータ要素が多すぎるからか止まってしまいます・・・

Reply all
Reply to author
Forward
0 new messages