算例路径: olaFlow\tutorials\currentWaveFlume
算例描述: 波流耦合模拟,该算例提供了四种工况:(1) Waves and forward current,(2) Waves and backward current,(3) Forward current only,(4) Backward current only
学习目标: 造流、波流耦合模拟;与一般波浪水槽设置不同的文件包括三项:0/U、constant/waveDict 和 system/setFieldsDict
算例快照:
文件结构:
.
├── 0.org
│ ├── U_back
│ ├── U_forw
│ ├── alpha.water
│ ├── alpha.water.org
│ └── p_rgh
├── cleanCase
├── constant
│ ├── dynamicMeshDict
│ ├── g
│ ├── transportProperties
│ ├── turbulenceProperties
│ ├── waveDict_curr_back
│ ├── waveDict_curr_forw
│ ├── waveDict_wave_back
│ └── waveDict_wave_forw
├── runCase
└── system
├── blockMeshDict
├── controlDict
├── decomposeParDict
├── fvSchemes
├── fvSolution
├── setFieldsDict_back
└── setFieldsDict_forw
算例文件解析:
【0.org\U_back】
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 //消波边界
{
type waveAbsorption2DVelocity; // 二维主动消波
uCurrent (-0.75 0. 0.); // 在消波边界设置流速 -0.75,全局坐标系?
// uCurrent (0.75 0. 0.); // U_forw 中的流速设置为 0.75
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 regular;
waveTheory cnoidal;
genAbs 1;
absDir 0.0;
nPaddles 1;
waveHeight 0.10;
wavePeriod 3;
waveDir 0.0;
wavePhase 1.57079633;
uCurrent (0.75 0. 0.); // 相比波浪水槽,多了uCurrent 设置
// 波流同向,均为正方向
// uCurrent (-0.75 0. 0.); // 波流同向
【constant\waveDict】
// 当仅造流时的 waveDict 设置
waveType current; //波浪类型设为 current
genAbs 1;
absDir 0.0;
nPaddles 1;
uCurrent (0.75 0. 0.); //工况 (3) Forward current only
// uCurrent (-0.75 0. 0.); //工况 (4) Backward current only
【system\blockMeshDict】
【system\controlDict】
【system\decomposeParDict】
【system\fvSchemes】
【system\fvSolution】
参考 【OpenFOAM】-olaFlow-算例1- baseWaveFlume
【system\setFieldsDict】
defaultFieldValues
(
volScalarFieldValue alpha.water 0 // 流体体积分数设置
volVectorFieldValue U (0. 0. 0.) // 流场速度设置
);
regions
(
boxToCell
{
box (-10 -1 -1) (30 1 0.4); // 选择设置范围,即水相流体,也是水深
fieldValues
(
volScalarFieldValue alpha.water 1
volVectorFieldValue U (0.75 0. 0.) // 向量场 U 设为 (0.75 0. 0.)
// volVectorFieldValue U (-0.75 0. 0.)
);
}
);