问题:
如何获取速度在任意方向的速度分量?
解决思路:
此问题的本质为计算向量在某个方向的投影。
1 在特定方向的投影
根据向量投影的定义,速度向量 v 在任意向量 n 上的投影 vn 计算公式为:
上式运算:
向量 vn 和 向量 n 平行
数值结果其绝对值表示向量 vn 的模
数值结果为负号表示 vn 和 n 反向
在 Fluent 中,计算 vn 可根据投影的定义,使用表达式计算。其表达式如图所示:
文字版:(Velocity.x*ne_x+Velocity.y*ne_y+Velocity.z*ne_z)/(1 [m])
上式中,ne_x、ne_y、ne_z 分别为基于表达式定义的向量 ne 的坐标,包含长度单位 m,表达式计算结果的单位为速度单位 m/s。
同理,可使用表达式计算 vn 的向量坐标,其结果的单位为速度单位 m/s。
文字版:(vn_scalar*ne_x)/1[m]
2 在平面的投影
对于以向量 n 为法向的平面 p,速度向量 v 在平面 p 的投影 vp 和 vn 垂直。
计算 vp 的操作称为 rejection,目前无公认的中文称呼。
vp和vn之间满足:
可类似使用表达式计算 vp 的向量坐标,其结果的单位为速度单位 m/s。
文字版:Velocity.x-vn_vector_x
备注:向量点乘结果为数值,其计算公式: