如何用fluent的scheme脚本,输出多data中的多个面上的静压值?

浏览:151869 回答:14

我算的是三维非常的流动,多个面在计算前已设定好了。现在想取出不同时刻下,在这些面上的静压值做平均。我在网上搜了一下,说可以用scheme脚本进行批处理,现有两个问题:

1)我在计算时只保存了data文件,没有相应的case文件,即,只保存了jisuan0010.datjisuan0020.datjisuan0030.dat.....,而与之相应的jisuan0010.cas.....没保存。只有一个case文件。

网上的资料有同时读取case及相应的data(ti-menu-load-string (string-append "file read-case-data " fname))。我把上面的语句中的case-去了,读入时说没有file read-data命令。如果只读其中的data要用什么命令?

2)我的面是等值面,要输入其上的静压值,并保存成ascii文件要用什么命令?

据网上资料,我写了下面两个命令:

a (ti-menu-load-string (string-append "file export ascii "


(string-append fname "-cy02.dat")


" (zcy02) no
static pressure q no"))
;; (zcy02)
是我的文件的等值面名

b(ti-menu-load-string "export/surface/iso-surface/static pressure (zcy02) yes pressure.ascii yes")

不知道那个命令接近正确,该怎样修改?

请高手指点一下,不胜感谢

邀请回答 我来回答

全部回答

(14)
默认 最新
guohf
谢谢smart222,我已知道原因了,语句没错,是我给的面有问题,是条线,可能fluent输出时认为其上无压力值
2013年5月4日
评论 点赞
guohf

smart222好,data文件我已能读进去了,但输出压力又有问题,fluent提示:
no pressure q nofile export ascii xicylinder-5-00350-cy05.dat (zcy05)
Error: GENERAL-CAR-CDR: invalid argument [1]: improper list
Error Object: #f
请帮我看下,谢谢。
以下是我修改的文件:
(define prefix "xicylinder-5-00")
(define tstart 100)
(define timestep 50)
(define steps 2)
(ti-menu-load-string
(format #f "/file/rc xicylinder-5 "))
;; make postfix part of filename
(define postfix
(lambda (n)
(let ((flonum-unparser-cutoff '(absolute 6 scientific)))
(number->string (+ tstart (* timestep n))))))
;; loop over all cas/dat to output pressure at boundary "wall-top" and "wall-bottom"
(define loop
(lambda (x y)
(if (<= x y)
(begin
(define fname (string-append prefix (postfix x)))

(ti-menu-load-string
(format #f "file read-data ~a" fname))
(ti-menu-load-string (string-append "file export ascii "
(string-append fname "-cy02.dat")
" (zcy02) no pressure q no"));;
问题出在这

(set! x (+ x 1))
(loop x y)))))
(loop 0 steps)
2013年5月3日
评论 点赞
guohf
沉下去了,请smart222帮下忙,谢了
2013年5月3日
评论 点赞
guohf
不是非要用scheme,日志文件也行。问题是日志文件我也不会,没用过。
象我这种情况:算的是三维非常流动,只有一个只用case文件,要读取多个data文件(按时间步保存的)中某一面上的静压值,要怎样写日志文件啊?请帮忙,谢了
2013年4月28日
评论 点赞
潜溪

干嘛非用脚本呢?日志文件不行吗?脚本我也不是太熟。
2013年4月27日
评论 点赞
guohf

不好意思,是我前面没说清楚,你给的两个命令是对的。
不过放到我的脚本里,因我的data命令方式问题,fluent报错:
/file/rd fname
Error: File "fname" not found!
Error Object: #f
file export ascii xicylinder-5-00100-cy02.dat (zcy02)
Error: GENERAL-CAR-CDR: invalid argument [1]: improper list
错误出在8楼我用红色标出的部分,请smart222帮我看一下8楼的scheme脚本,应怎样改?谢了
顺便说一下,我用的是ANSYS FLUENT 14版本。
2013年4月27日
评论 点赞
潜溪

亲测,能用。
2013年4月27日
评论 点赞
guohf

smart222 好,我试过了,用你给的命令case能读,但data读不出。应该是我的scheme脚本的文件命令方式的问题。我是据网上的资料修改的,文件命令方式是用前、后缀形式写的,把我的sheme文件贴上,帮我看一下吧,谢谢。
(define prefix "xicylinder-5-00")
(define tstart 100)
(define timestep 50)
(define steps 10)
(ti-menu-load-string
(format #f "/file/rc xicylinder-5 ")) ;;xicylinder-5是case文件名
;; make postfix part of filename
(define postfix
(lambda (n)
(let ((flonum-unparser-cutoff '(absolute 6 scientific)))
(number->string (+ tstart (* timestep n))))))
;; loop over all cas/dat to output pressure at boundary "wall-top" and "wall-bottom"
(define loop
(lambda (x y)
(if (<= x y)
(begin
(define fname (string-append prefix (postfix x))) ;;利用前、后缀命名data文件名为fname
(ti-menu-load-string
(format #f "/file/rd fname ")) ;; 读进fluent后,显示说无fname这个文件
(ti-menu-load-string (string-append "file export ascii "
(string-append fname "-cy02.dat")
" (zcy02) no pressure q no"))

(set! x (+ x 1))
(loop x y)))))
(loop 0 steps)
2013年4月26日
评论 点赞
guohf

谢谢了,我先试一下,有问题再请教。
2013年4月26日
评论 点赞
潜溪

(ti-menu-load-string
(format #f "/file/rc wer "))
(ti-menu-load-string
(format #f "/file/rd wer2 "))
wer wer2是文件名。
2013年4月26日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP