算例运行
在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
版本自带的浪高仪,获取的波面数据是浪高仪各点处相分数值。最后还需脚本处理才能获得波面时历。
到这,这个波浪算例就运行结束了。
可以在这个波浪算例的基础上添加物体进行波浪结构相互作用分析。
或者在其他算例的基础上添加一些文件以及边界条件来向算例中添加波/流。