- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图理解一段来自 paper concerning fluid simulations for games 的代码。我正在研究边界条件的解决方法。由于我不了解 C++,所以我遇到了额外的困难。
据我了解:
IX(i, j)
表示位于 x 方向上的 i
处的二维网格单元,位于 x 方向上的 j
处的二维网格单元。 y 方向
u[IX(i, j)]
则为 (i
, j
) 单元中的速度
以下宏用于 IX(i, j)
:
#define IX(i, j) ((i) + (N + 2) * (j))
最佳答案
我不会试图费力地读完整篇论文,但我可以解释一下语法并对正在发生的事情做出一些有根据的猜测。
#define IX(i,j) ((i)+(N+2)*(j))
在我看来,它们正在转换二维坐标i,j
转换为一维数组索引。 j
是行号,i
是列号,与您的描述相符,总计列数为N+2
。
0 1 2 ... (N+2)-1
(N+2)+0 (N+2)+1 (N+2)+2 ... 2(N+2)-1
...
然后我们有这个:
x[IX(0,i)] = b==1 ? -x[IX(1,i)] : x[IX(1,i)]
在 C 语言中,a ? b : c
表示如果 a、b,则 c。这是一个表达式,其值是 b
或 c
,具体取决于 a
是否为真。它称为三元运算符,了解更多 here .
Python 有自己的三元运算符,操作数不同订单:
b if a else c
所以x[IX(0,i)] = b==1 ? -x[IX(1,i)] : x[IX(1,i)]
相当于说:
if (b == 1)
x[IX(0,i)] = -x[IX(1,i)]
else
x[IX(0,i)] = x[IX(1,i)]
因此,在第 i 行中,第 0 列的新值是第 1 列的值,可能被否定。看第10页,好像和这个有关系与边界。这是在左边缘,所以我们将其设置为向内一个单元格的值或该值的负值,具体取决于 b
。
希望这能让事情有所澄清。
关于python - CFD 边界条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51725926/
谁能帮我解决以下方程的边界条件?我找不到图中显示的图形。它们用于不同的 u_0 ,一个有 4 个根,第二个有 2 个根。 import matplotlib.pyplot as plt import
我试图理解一段来自 paper concerning fluid simulations for games 的代码。我正在研究边界条件的解决方法。由于我不了解 C++,所以我遇到了额外的困难。 据我
我正在迭代一个 3 维数组(每个像素有 3 个值的图像),以将 3x3 过滤器应用于每个像素,如下所示: //For each value on the image for (i=0;i1) &
我的系统最好用对角稀疏矩阵 (Poisson) 来描述。我有我的对角线稀疏矩阵,但是,我想将边界条件(即矩阵的“边缘”)更改为零。建模者想要在具有不同边界条件的稀疏对角矩阵中描述系统一定是一种常见的情
如何在不限制面内通量分量的情况下,将 fipy 网格中边界面的法向通量明确设置为特定值? Neumann 边界条件可以指定为:(1) 固定的垂直于边界面的通量分量,或 (2) 作为面处通量的完整规范。
我是一名优秀的程序员,十分优秀!