OpenFOAM后处理,paraview创建动画视频的三种方式
首先在 paraView中保存图片序列。点击file>save Animation,可以保存为tif, png, jpg等格式的图片序列。可以规定保存的帧数,默认是每个timestep一帧。注:图片很多的话最好建立一个新的文件夹。
其次把图片序列转换为视频或者GIF,有两种方式
第一种方式:利用OpenFOAM带的第三方后处理工具
算例文件夹下终端键入
foamCreateVedio
具体用法可以用 foamCreateVedio -help 查看
参考OpenFOAM_user_guide
第二种方式:利用ubantu系统里的的convert
/usr/bin/convert -quality 90% frames*.png movie.gif
显然-quality 90%表示视频质量
其中frames是图片序列名,*表示后面任意名称,如frames.000.png
movie是生成的gif名字
参考自chalmers大学OpenFOAM课程ppt
https://pingpong.chalmers.se/public/pp/public_courses/course09769/published/1552579467657/resourceId/5227641/content/UploadedResources/paraFoamTutorial-3.pdf
=========补充,20.1.23=
第三种方式(推荐)
用matlab转换
(这部分代码是转载的,忘记原作者是谁了)
MATLAB脚本如下
framesPath = 'E:\Works\MFix_results\fbtry\biomass_pyrolysis_2020_1_7\animeTrack70\animeTrack500\';%图像序列所在路径,同时要保证图像大小相同
videoName = 'Track500.avi';%表示将要创建的视频文件的名字
fps = 10; %帧率
startFrame = 1; %从哪一帧开始
endFrame = 500; %哪一帧结束
if(exist('videoName','file'))
delete videoName.avi
end
%生成视频的参数设定
aviobj=VideoWriter(videoName); %创建一个avi视频文件对象,开始时其为空
aviobj.FrameRate=fps;
open(aviobj);%Open file for writing video data
%读入图片
for i=startFrame:endFrame
fileName=sprintf('anime.%04d',i); %根据文件名而定 我这里文件名是0001.jpg 0002.jpg ....
frames=imread([framesPath,fileName,'.png']);
writeVideo(aviobj,frames);
end
close(aviobj);% 关闭创建视频