在进行 CFD 或 FEM 分析等准备工作时,通常需要指定矢量参数。矢量常数易于处理:
DIR="1 0 0" myMesh --direction "$DIR""
然而,如果必须对向量进行运算,例如进行标量乘法或旋转,情况会迅速变得复杂。.
一个强大的解决方案是使用 Matlab 的 Octave 克隆来进行操作。Octave 的两个特性在这种情况下很有用:
- 命令行选项“–eval”用于指定要处理的表达式
- 函数`disp`以单行纯文本格式输出结果
一个例子:
DIR="1 0 0" VELOCITY=$(octave --eval "disp( 11.*[$DIR] )") myMesh --direction "$DIR" mySolver --velocity "$VELOCITY""
更复杂的操作也是可能的。虽然需要注意产生线矢量作为结果。例如旋转:
DIR="1 0 0" ANG=45 DIR_ROT=$(octave --eval "pkg load linear-algebra; disp( (rotv([0 0 1], $ANG*pi/180)*[$DIR]')' )") myMesh --direction "$DIR_ROT""

