算例路径: olaFlow\tutorials\irreg45degTank
算例描述: 不规则波浪模拟
学习目标: 不规则波浪模拟:olaFlow中单向不规则波采用线性波浪叠加法生成,基本原理如图2所受,需要提供对应波谱的周期、波高和相位的离散序列。
生成方法可参考《随机波浪及其工程应用》(俞聿修)7.2 不规则波浪的数值模拟——模拟频谱。
多向不规则波的模拟可参考 7.6 多向不规则波的模拟。
waves2Foam求解器生成不规则波也采用了线性波浪叠加法,该求解器可自动生成波谱的离散序列。
算例快照:
文件结构:
.
├── 0.org
│ ├── U
│ ├── alpha.water
│ ├── alpha.water.org
│ └── p_rgh
├── cleanCase
├── constant
│ ├── dynamicMeshDict
│ ├── g
│ ├── polyMesh
│ ├── transportProperties
│ ├── turbulenceProperties
│ └── waveDict
├── runParallelCase
└── system
├── blockMeshDict
├── controlDict
├── decomposeParDict
├── fvSchemes
├── fvSolution
└── setFieldsDict
算例文件解析:
【0.org\U】
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet // 造波边界
{
type waveVelocity;
waveDictName waveDict;
value uniform (0 0 0);
}
outlet // 消波边界 1
{
type waveAbsorption3DVelocity; // 3D消波
nPaddles 25; // 独立消波单元的总个数,一般大约沿横向方向的每5个网格可设为一个消波单元
nEdgeMin 1; // nEdgeMin和nEdgeMax是最小/最大极限的造波板数量
nEdgeMax 1; //
value uniform (0 0 0);
}
bottom
{
type fixedValue;
value uniform (0 0 0);
}
atmosphere
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
front // 消波边界 2
{
type waveAbsorption3DVelocity;
nPaddles 25;
nEdgeMin 0;
nEdgeMax 1;
value uniform (0 0 0);
}
back // 消波边界 3
{
type waveAbsorption3DVelocity;
nPaddles 25;
nEdgeMin 0;
nEdgeMax 1;
value uniform (0 0 0);
}
}
【0.org\p_rgh】
【0.org\alpha.water】
参考 【OpenFOAM】-olaFlow-算例1- baseWaveFlume
【constant\dynamicMeshDict】
【constant\g】
【constant\transportProperties】
【constant\turbulenceProperties】
以上均与一般水槽设置相同,参考 【OpenFOAM】-olaFlow-算例1- baseWaveFlume
【constant\waveDict】
// 不规则波的 waveDict 设置
waveType irregular; // 不规则波
genAbs 1; // 消波的使用由一个布尔变量控制:genAbs。如果设置为true,造波和主动消波同时起作用,否则是不关联的。默认设置为false,但是建议将它连接起来,以防止由于波峰和波谷之间的水流入流出不平衡而导致平均水位的增加。
absDir 0.0; // 消波方向
nPaddles 25;
tSmooth 3; // 有时初始条件必须tapered,以便在边界上得到更平滑的响应。这特别适用于不规则海况,或斜向波,在造波patch上模拟的起始点会有许多波峰和波谷。为了解决这个问题,tSmooth(平滑时间,秒)作为一个时间的fade被引入,自由表面高度和速度都乘以一个因子,该因子在t = 0s到t = tSmooth时从0到1线性变化。tSmooth的默认值为-1,即不使用。
wavePeriods // 不规则波波谱离散序列--波周期
842
(
1.231250
1.231250
1.231250
1.231250
1.231250
1.231250
1.110664
...
);
waveHeights // 不规则波波谱离散序列--波高
842
(
0.004247
0.004603
0.004974
0.005360
0.005760
0.006172
0.004247
...
);
wavePhases // 不规则波波谱离散序列--相位
842
(
1.977467
2.549666
-2.343711
2.597317
0.831638
-2.528728
...
);
waveDirs // 不规则波波谱离散序列--波向
842
(
-27.150838
-25.139665
-23.128492
-21.117318
-19.106145
-17.094972
-15.083799
...
);
【system\blockMeshDict】
【system\controlDict】
【system\decomposeParDict】
【system\fvSchemes】
【system\fvSolution】
【system\setFieldsDict】
参考 【OpenFOAM】-olaFlow-算例1- baseWaveFlume