边界条件学习视频笔记

边界条件:典型的边界条件的设置
针对于有限体积法,离散完了偏微分方程后,每一个网格都会生成代数方程。这个时候,代数方程所需要的系数实际上是从网格中心所差分过来的网格边界上的值所决定的。(有限体积法FVM的元义)
如果所在的控制体网格面不是内部面,而恰巧是边界面,而这时面上的值,需要我们自己指定边界条件,因此,边界条件直接决定代数方程中的某些值。 边界面是整个控制体边界面的集合。
边界的类型直接决定将来可以使用边界的条件。边界类型:
patch 最广泛 任何的边界条件都可以加载
wall 壁面函数 能够使用特殊的边界条件 并不代表就是一个真正的壁面 只是为了使用wallfunction 若想让其成为真正的避免条件,还需要对其进行相应的设置 单纯的壁面类型是不行的 还是要确定值
symmetryPlane 对称性质 只搞一般 剩下一半对称过去 使用对称边界条件
empty 降维使用 边界条件也只能empty
cyclic 周期性边界 边界条件也是周期性 要指定与其相连的也是周期性边界条件
wedge 楔形边界条件
边界条件:
第一类 Dirichlet 固定值 fixedValue
第二类 Neumann 梯度 fixedGradient zeroGradient
第三类 前二者结合 绝大多数的derived 就是二者的结合
还有一种叫 calculated 由其他物理场推导(derived value)出来的 例如通量phi
OF 中一系类的derived 边界条件:
对于一个无滑移的壁面 V=0 有滑移 垂向壁面 v=0 允许平行壁面方向V存在(滑移边界条件的物理意义)slip
介于滑移和不滑移之间 particalSlip
myPatch
{
type particalSlip; //这些也是边界条件的类型
valueFraction uniform 0.1; //1 无滑移 0 滑移 在这之间就要看自己的物理现象是个啥了
}
介于切向方向上的速度滑移有多大
//////////////////////////////////////////////////////////////
inletOutlet 当有反向流动时出口边界条件不适用,改用inletValue 所以这个为出口边界条件
inletOutlet 为出口边界条件,若 外流phi>0 边界条件就是 零梯度zeroGradient 若反向流动,则 回流值大小为 inletValue值的大小
myPatch
{
type inletOutlet ;
phi phi;
inletValue uniform 0; //回流式的流动参数 与初始流动方向相反即是回流
Value uniform 0; //边界上的初始值
}
//////////////////////////////////////////////////////////////
outletInlet 进口边界条件 刚好和inletOutlet 相反
myPatch
{
type outletInlet ;
phi phi;
outValue nuiform 0; //入口值 若
Value uniform 0; //无物理意义 使paraview识别
}
若往场内流 phi>0 则边界条件就是 zeroGradient ;若往场外流 就是入口回流(往场外流),就是outValue 的值
//////////////////////////////////////////////////////////////
movingWallVelocity 针对运动的壁面边界条件的设置 例如 cavity 顶部
当网格没有移动或者滑移,只是壁面有移动,使用 movingWallVelocity 和 fixedValue 是完全等效的 ,但是当网格有移动的时候就能体现出来他们的区别。当使用动网格的条件,movingWallVelocity根据网格的移动会自动修正通量值,这样保障了网格移动以后通过壁面的总通量为0。
myPatch
{
type movingWallVelocity;
U U;
Value nuiform 0; //
}
movingWall
{
type fixedValue;
value uniform 0;
}
//////////////////////////////////////////////////////////////
pressureinletOutletVelocity 是 pressurelinletVelocity 和 inletOutlet 两个边界条件的结合
速度场的边界条件,适用于边界面上压力已知的情况。
对于出口而言,刚好就是 inletOutlet 对应的意思,对于入口处的回流。对于入口边界而言,速度法向上的分量的大小就是通过phi求得的。我们也可以认为的加一个切线方向上的分量,若不加,默认在切线方向上速度为0 也就是无滑移。
movingWall
{
type pressureinletOutletVelocity;
phi phi; //速度场经phi值确定
value uniform 0;
}
pressurelinletVelocity(压力在边界面上已知) 和 inletOutlet(根据通量场大小及正负值来确定)
//////////////////////////////////////////////////////////////
totalPressure 压力场已知 意味着整个总压力p0是已知的 指定出p0(总压力值)
myPatch
{
type totalPressure;
U U;
phi phi;
rho none;
psi none;
gamma 1.4;
p0 uniform 1e5; //
}
//////////////////////////////////////////////////////////////
fixedFluxPressure 与zoerGradient 有同样作用 方程中同时包含重力、表面张力等体积力,这个时候不用zeroGradient,而是使用fixedFluxPressure,能够调节压力场梯度,从而保证有体积力的情况,能够和速度场的边界条件相匹配 想要给定压力的零法向梯度边界条件,但是同时求解的方程还存在体积力,则给在压力边界上给定fixedFluxPressure。
myPatch
{
type fixFluxPressure;
}
//////////////////////////////////////////////////////////////
oscillatingFixedValue 和动网格相关 震荡边界条件 边界场的值和时间相关,设定震荡的振幅和频率,初始的偏离值 先设置方程,然后根据方程写出下面的关键字数值。
例如:
x_p = (1+ asin(2* pai* f * t)) * X_ref +X_offset
myPatch
{
type oscillatingFixedValue;
refValue uniform 5.0;
offset 0.0; 初值
amplitude constant 0.5; 振幅
frequency constant 10; 频率
}
OF中还存在很多边界条件,可以针对其源程序进行一个解读(有些需要使的去看,不需要使用的不去看)