@李东岳 现在社会语境下的“道友”几乎约等于“同志”
Global Moderators
版主
帖子
-
openfoam火灾燃烧模拟 -
openfoam火灾燃烧模拟不对称应该也不算错误吧。比如说蜡烛的火焰,有的可以稳定燃烧,而有的是跳跃燃烧。这是一种空气湍流?
-
如何在把下面这个东西画成图@李东岳
,效果很好。还能把点调大点,调成正方形,然后就可以没有空隙了。pointtype, pointsize这些
-
求助,在使用interdymfoam得到结果以后如何计算得到船舶的纵倾与横摇呢@CFDngu 这个运算符重载真是。。。放右边结果是左乘。。。
无论是左乘还是右乘,都没有交换律。所以,应该都不是一个角度分两次旋转、旋转顺序的问题。然后
6DoF定义的orientation叫做“rotation tensor”
这个,是因为,应该是这样的:所有船体与外界的交互,都是基于世界坐标系的。所以要把世界坐标系的力应用到船体上,就要把力之类的各种矢量张量旋转到船体坐标系去和船体交互。
还有另外一个猜测。两个坐标系之间的转换,可以通过三个旋转矩阵达到。也可以通过一个旋转轴和一个旋转矩阵达到。
我猜测,可能这个
0.5Rx-0.5Ry-Rz-0.5Ry-0.5Rx
是在组那一个旋转矩阵,或者找那一个旋转轴。如果有了这个特殊的旋转轴,那么船体的"orientation"就确实是“rotation tensor”了
以上都是我猜的
_(:3」∠)_
哦,对了,这句"所以要把世界坐标系的力应用到船体上,就要把力之类的各种矢量张量旋转到船体坐标系去和船体交互。"不是猜的。是代码注释:
Angular momentum stored in body fixed reference frame. Reference orientation of the body (where Q = I) must align with the cartesian axes such that the Inertia tensor is in principle component form. Can add restraints (e.g. a spring) and constraints (e.g. motion may only be on a plane).
The time-integrator for the motion is run-time selectable with options for symplectic (explicit), Crank-Nicolson and Newmark schemes.
我应该理解对注释了吧
-
求助,在使用interdymfoam得到结果以后如何计算得到船舶的纵倾与横摇呢@CFDngu 我看了搜了一大堆也没搞懂。但是可以明确一点。这个操作不是“把旋转分两次完成”。因为矩阵没有交换律,所以先转后转不一样,这是matlab测试代码
Rx = rotx(36); Ry = roty(20); Rz = rotz(80); ori = Rx * Ry * Rz Rx2 = rotx(18); Ry2 = roty(10); Rz2 = rotz(40); split1 = Rx2 * Ry2 * Rz2 * Rz2 * Ry2 * Rx2 split2 = Rx2 * Rx2 * Ry2 * Ry2 * Rz OUTPUT: ori = 0.1632 -0.9254 0.3420 0.8316 -0.0575 -0.5523 0.5308 0.3746 0.7602 split1 = 0.1383 -0.8604 0.4906 0.9844 0.0650 -0.1635 0.1088 0.5055 0.8559 split2 = 0.1632 -0.9254 0.3420 0.8316 -0.0575 -0.5523 0.5308 0.3746 0.7602
split1就是OF里的操作,和ori完全不一样。
split2和ori结果一样,因为只是旋转分成两次,而不是还交换顺序
旋转的内容好像也不是角度?
pi
是力矩相当于“旋转”中的力。惯性矩相当于“旋转”中的质量。力除以质量是加速度。加速度乘以时间是速度增量。当然这里的"速度"是“旋转”中的速度,即角速度。1/2 * t * a
是啥,参考匀变速运动公式,还是能找到挺多意义的。但是把这些东西乘起来。。。猜不出来。得结合更多的代码上下文看了。不过我没用过这个求解器,不太了解。 -
如何在把下面这个东西画成图# x y z 0.1 0.1 4 0.1 0.124 5 0.2 0.4 2 0.3 0.5 4.5
set terminal pdfcairo enhanced color size 15cm,10cm font 'Verdana, 10' #set terminal pngcairo size 800,600 enhanced font 'Verdana,10' # Set output file set output 'pointValue.pdf' # Set title and labels set title 'Plot with Point Coordinates and Values' set xlabel 'X-axis' set ylabel 'Y-axis' set zlabel 'Z-axis' # Set grid set grid # Set data style set style data points # Load the data file and plot it plot 'pointValue.txt' using 1:2:3 with points pointtype 7 pointsize 1.5 palette
-
求助,在使用interdymfoam得到结果以后如何计算得到船舶的纵倾与横摇呢哦哦,这个是旋转矩阵。位姿控制(位置、姿态)里的内容。按说还要考虑位移。如果考虑位移就是4x4的矩阵了。在机器人控制里,多关节的机械臂末端位姿计算里会用到4x4的矩阵,如果考虑位移可以搜搜看。
如果你可以翻墙的话:图片来源
如果从矩阵得到角度也有挺多人写了代码了。可以搜搜。
-
OpenFOAM与libtorch的数据对应@李东岳 在 OpenFOAM与libtorch的数据对应 中说:
我刚试了一下,如果是140140的网格,总共19600个单元。pixel - 1 - i + jpixel最大编号干到140-1 - 139 + 139*140是19460?
由李老师的第一贴里的图片可知OpenFOAM方格里,最大索引数字是24,在右上角。
右上角在libtorch里的坐标是(0, pixel)
所以应该是
pixel - 1 - i + j*pixel = 140-1-0+139*140=19599
这个公式不只是二维数组切换成一维数组(二维数组写成一维很简单,乘以行长加一起就行了)
这个公式还完成了一个“旋转”。旋转的是“递增索引”的方向。OpenFOAM是竖着从下往上。libtorch是横着从左往右。所以有点绕。
pixel = 5就是我写的公式了,我和大佬想一起了,真是英雄所见略同
(。・`ω´・)
-
Negative initial temperature -
OpenFOAM与libtorch的数据对应OpenFOAM的网格就是这么存的。每个网格都有一个id,然后分别有文件记录:对于每一个id的网格,该网格的相邻网格的id、属于该网格的面id,等等。
不过这个复杂度高些,是为非结构网格准备的。如果是结构化的,应该更简洁些。