Schwarz–Christoffel 导数
每个原像顶点都在实轴上,指数等于流体一侧的内角除以圆周率再减一。把导数积分,就得到一段段直壁。归一化时,在上半平面取一个锚点,把映射固定在那里。
复分析 · 流体几何
保角映射保住了角度,为什么还会改变角点附近的流速? 保角映射在每个小区域上,各个方向都按同一比例伸缩、旋转,局部角度就保住了。长度乘上这个比例,流速则要除以它:哪里被压缩,哪里就流得快。绕过凸出的尖角时,理想流速在角尖趋于无穷;在凹进去的角里,流速降到零。
两个平面并排显示:直壁上方的简单流动,经映射变成台阶、斜坡或多边形凸起上方的流动。移动两边联动的探针,检查角度是否保持不变,再把角点处的加速和壁面误差、数值积分误差放在一起比较。
物理教程
背景先看一面直壁上方的稳态流动,流体沿壁面滑移。保角映射把实轴折成多边形壁面的一段段直边,所有流线和等势线都跟着同一个映射走,实际速度由链式法则算出。
为什么值得理解弯曲的网格只是表面。壁面形状能预言理想流体在哪里加速、在哪里停住、在哪里趋向奇点;两边联动的探针让你把这些预言量出来。
先抓重点
每个原像顶点都在实轴上,指数等于流体一侧的内角除以圆周率再减一。把导数积分,就得到一段段直壁。归一化时,在上半平面取一个锚点,把映射固定在那里。
改变间距和指数,就得到一族台阶和斜坡;指数为零时,映射就是恒等映射。这里输入的是原像顶点。想把实际顶点放到任意位置,还得另解一个非线性参数问题。
反号镜像涡让实轴成为一条流线。实际速度要除以映射的导数,不能把原像速度直接画到弯网格上。点涡由外部固定在原处;它周围空出的小圆盘只是不显示,并不是有限大小的涡核。
这些指数用的是原像平面里的距离,并假定复势导数在那里有限且不为零。换成实际平面中到角点的距离,指数就不一样。示踪方程里必须带上度量因子的平方,示踪粒子才会按实际速度走出实际轨迹。
转角比例为二分之一时,这个初等原函数可以独立检验数值积分。两个主值平方根相乘,选出的正是上半平面那一支。比较之前,先减去它在锚点处的值。
容易误解角点变成暖色,说明模型已经算出了分离或湍流尾迹。
正确理解这是沿壁面滑移的理想流动。壁面凸向流体的角点上,速度可能趋于无穷。真实的黏性、圆角、分离和边界层要用别的方程描述。颜色到顶不再变,数学上的奇点却还在。
容易误解只要有一个误差很小,就说明哪里都准,角点也不例外。
正确理解壁面检查在离壁面不远、避开角点的位置取样;角度检查用局部中心差分;路径残差看积分是否与路径无关。只有直角台阶有闭式解可以对照。等值线分辨率只改变画图时的插值,不改变积分容差。
选择直角台阶,把转角比例调到零,用方向键移动探针。
你会看到: 除了取景不同,两个平面完全一样。局部尺度回到一,实际速度等于背景来流,壁面法向比例仍然很小。回到直角台阶,把探针依次移到两个珊瑚色角点的正上方,比较局部尺度、速度和形变曲线。
你会看到: 一个角点把长度压短,流动加快;另一个把长度拉长,流动变慢。探针的两臂仍然互相垂直。选择“壁面附近点涡”,翻转环流,改变涡的高度。暂停示踪或单步推进,再和“多边形凸起”比较。
你会看到: 流线的方向和形状都变了,反号镜像仍让流体穿不过壁面。点涡固定不动;示踪粒子离开显示窗口后会重新放入。模型依据:Driscoll,Algorithm 756: A MATLAB Toolbox for Schwarz–Christoffel Mapping,ACM TOMS 22(1996),DOI 10.1145/229473.229475;Driscoll 与 Trefethen,Schwarz–Christoffel Mapping(Cambridge,2002)。
你会看到: 灵感来自 bugman123.com/FluidMotion/ 的 Schwarz–Christoffel Flow 条目。实现与图形均为原创,没有复制旧媒体或代码。概念灵感:FluidMotion。模拟和图形都是原创,模型的适用范围见上文。