算例运行
在setWave命令之后就是算例运行,Allrun中在运行求解器之前进行了域分解命令decomposePar来并行计算。
decomposePar读取system/decomposeParDict文件,内容如下:
FoamFile
{
format ascii;
class dictionary;
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 6; //域分解的个数
method simple; //域分解的方法
simpleCoeffs
{
n (3 2 1); //三个方向的域个数
}
// ************************************************************************* //
运行结果,会在算例目录下生成6个processor*文件夹,每个文件夹内有初始场0以及constant/ployMesh网格文件
下一步运行求解器interFoam
Allrun中的语句为runParallel $(getApplication)
其中getApplication工具获取system/controlDict文件中application interFoam;语句
运行该命令,计算速度非常快。
运行结果输出为视频。
openfoam v8 波浪算例
运行后,浪高仪输出数据在postProcessing/interfaceHeight1,文件夹内容如下:
$ tree postProcessing/interfaceHeight1
postProcessing/interfaceHeight1
└── 0
├── height.dat
└── position.dat
里面有两个文件,height.dat和position.dat,截取部分内容如下:
$ cat height.dat
# Location 0 : (3.000000e+02 0.000000e+00 0.000000e+00) //浪高仪位置
# Location 1 : (4.500000e+02 0.000000e+00 0.000000e+00)
# Location 2 : (6.000000e+02 0.000000e+00 0.000000e+00)
# hB : Interface height above the boundary
# hL : Interface height above the location
# Location 0 1 2
# Time hB hL hB hL hB hL
0 3.024954e+02 2.495391e+00 2.975046e+02 -2.495392e+00 3.024954e+02 2.495391e+00
0.05 3.024953e+02 2.495332e+00 2.975048e+02 -2.495229e+00 3.024953e+02 2.495301e+00
0.1 3.024937e+02 2.493693e+00 2.975063e+02 -2.493706e+00 3.024936e+02 2.493640e+00
0.15 3.024906e+02 2.490601e+00 2.975092e+02 -2.490842e+00 3.024905e+02 2.490533e+00
0.2 3.024860e+02 2.485958e+00 2.975135e+02 -2.486501e+00 3.024859e+02 2.485882e+00
0.25 3.024797e+02 2.479736e+00 2.975193e+02 -2.480672e+00 3.024797e+02 2.479653e+00
0.3 3.024719e+02 2.471878e+00 2.975266e+02 -2.473363e+00 3.024718e+02 2.471791e+00
0.35 3.024624e+02 2.462351e+00 2.975354e+02 -2.464601e+00 3.024623e+02 2.462263e+00
0.4 3.024512e+02 2.451199e+00 2.975456e+02 -2.454392e+00 3.024511e+02 2.451112e+00
0.45 3.024385e+02 2.438450e+00 2.975573e+02 -2.442729e+00 3.024384e+02 2.438366e+00
...
可以得出其将每个时间步下自由水面高程,将该时间序列画图:

此外,position.dat内文件与此类似,均为浪高仪的时间序列。
这个版本的波浪模型里的浪高仪已经完全能够正常使用了,不像plus版本自带的浪高仪,获取的波面数据是浪高仪各点处相分数值。最后还需脚本处理才能获得波面时历。
到这,这个波浪算例就运行结束了。
可以在这个波浪算例的基础上添加物体进行波浪结构相互作用分析。
或者在其他算例的基础上添加一些文件以及边界条件来向算例中添加波/流。
本文详细介绍了如何使用OpenFOAM v8进行波浪模拟,包括域分解、并行求解器interFoam的运行,以及浪高仪输出数据的处理和可视化。重点展示了如何从system/decomposeParDict配置文件开始,到最后生成的interfaceHeight1数据解读和应用。

5565

被折叠的 条评论
为什么被折叠?



