问题标签 [fluid-dynamics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - iPhone流体模拟
有人知道 iPhone 的流体引擎吗?我需要水和气体模拟。
javascript - 流体动力学模拟,有障碍物
我正在尝试在 HTML5 画布上编写流体动力学模拟器。我在互联网上发现了一些非常酷的东西,它们看起来总是很有希望的起点,但它们都是基于细胞的,并且使用了一些疯狂的数学。
我希望能够添加任意障碍物(任何方向的线、圆圈等)以使事情变得更有趣,但我不知道从哪里开始。
有谁知道一些相当简单的流体模拟方程,包括任何方向的障碍物?或者,有人可以指出我采取上述示例之一并添加障碍所需的数学吗?
我知道这个问题与我应该问 mathoverflow 的问题有关,但它们似乎更多地涉及理论内容。抱歉,如果我在错误的区域。我真的不知道从哪里开始——如果有人以前用任意障碍进行流体模拟,我可以使用一些指针。
在这里,准确性让位于简单性。
谢谢!
math - 拥有 CFD 代码的初学者指南?二维欧拉方程
您是否知道为 2D Euler 方程编写自己的计算流体动力学求解器的好且特别简单的指南?我只是想了解像 Fluent 这样的商业软件在做什么。当它足够简单时,我想向一些朋友展示如何做和编码。
不幸的是,我找不到如何将这个http://en.wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29翻译成数字应用程序。
有没有人这样做过?任何帮助表示赞赏,
安德烈亚斯
python - 如何将速度图转换为流体流量图
这可能是一个非常简单的问题,如果你有答案,请分享。
通过应用格子玻尔兹曼方法(LBM)在二维流体流动的模拟中提供了一系列(比如)速度和方向t0..tn
的矩阵(2D
阵列) ,问题是如何制作流体流动的动画。 X
Y
(UX,UY)
我们应该能够通过应用:来使用速度来找到(??)Position = Velocity x Time
的位置。关于可能是什么的任何想法(??)。
我们认为我们可以在时间上有一个相同大小的粒子速度矩阵,t0
并找到上面提到的下一个位置矩阵,从而相应地移动粒子。
- 请分享你的知识!
- 选择的方法是否正确?
- 任何其他方法等。
- 对于这个问题,Python 中的提示非常受欢迎!
- 伪代码可能会更有帮助!
为了简化问题,以下是 time 的速度图tn
,试图在此基础上制作流体流动图,如何?
physics - 元胞自动机的流体动力学(FHP 等)
我正在寻找基于 CA 的流体动力学软件,例如在 Nvidia CUDA 技术中实现 FHP 模型,但仍然没有运气。
我想自己“玩”这些模拟,至少阅读一些相关论文。如果软件是开源的,那就更好了。
c++ - 存储多维可变长度数据的最有效(但足够灵活)的方法是什么?
我想知道有效存储(并随后访问)具有可变长度的多维数据数组集的最佳实践。重点是性能,但我还需要能够在运行时处理更改单个数据集的长度,而不会产生太多开销。
注意:我知道这是一个有点冗长的问题,但我已经环顾四周,找不到足够准确地描述手头问题的解决方案或示例。
背景
上下文是基于不连续 Galerkin 谱元法 (DGSEM) 的计算流体动力学 (CFD) 代码(参见 Kopriva (2009),实现偏微分方程的谱方法)。为简单起见,让我们假设一个 2D 数据布局(实际上是三个维度,但从 2D 到 3D 的扩展应该很简单)。
我有一个网格,它由可以具有不同(物理)大小的K
方形元素k
( ) 组成。k = 0,...,K-1
在每个网格元素(或“单元格”)k
中,我都有N_k^2
数据点。N_k
是每个维度中数据点的数量,并且可以在不同的网格单元之间变化。
在每个数据点n_k,i
(其中i = 0,...,N_k^2-1
),我必须存储一个解决方案值数组,该数组nVars
在整个域(即各处)中具有相同的长度,并且在运行时不会改变。
尺寸和变化
网格单元的数量K
可以O(10^5)
在运行时更改O(10^6)
。每个网格单元中
的数据点数量介于两者之间,并且可以在运行时更改(并且对于不同的单元格可能不同)。存储在每个网格点
的变量数量大约是并且在运行期间不能改变(每个网格单元也是相同的)。N_k
2
8
nVars
5
10
要求
性能是这里的关键问题。我需要能够以一种有效的方式以有序的方式定期迭代所有单元格的所有网格点(即没有太多的缓存未命中)。通常,K
并且N_k
在模拟过程中不会经常更改,因此例如可以选择用于所有单元和数据点的大型连续内存块。
但是,我确实需要能够在运行时细化或粗化网格(即删除单元格并创建新单元格,新单元格可能会附加到末尾)。我还需要能够更改近似顺序N_k
,因此我为每个单元存储的数据点数量也可以在运行时更改。
结论
任何输入表示赞赏。如果您有自己的经验,或者只是知道一些我可以查看的好资源,请告诉我。然而,虽然解决方案对最终程序的性能至关重要,但这只是众多问题之一,因此解决方案需要具有应用性,而不是纯粹的学术性。
如果这是问这个问题的错误地点,请告诉我更合适的地点。
html - 从移动设备查看网站时文本不合时宜
我最近为我的第一批客户之一打造了这个网站。目前,我似乎无法找到从移动设备浏览时每个标题下的文本稍微偏左的原因。(使用银河关系)
http://www.digitalgenesis.com.au/2012-websites/qsoils/example3.html
页面上的所有其他内容都完美显示,我一直在尝试找出问题,但没有成功
我希望栗色标题下的文本以其全宽显示,即总包装容器的 60%,文本也应该相对于栗色线居中,就像它在正常屏幕尺寸上一样,因为每个 .info 标签都有被赋予了保证金:0自动;财产
任何帮助都将不胜感激,即使它不是设计的致命错误,干杯
algorithm - 高度图的离散流体“填充”算法
我正在寻找一种算法来描述流体在高度图表面上传播时的瞬态行为。我在 t=0 的起始条件是:
- 大小为 [x, y] 的高度值 (H) 的二维矩阵
- 大小为 [x, y] 的流体高度值 (F) 的二维矩阵
- 矩阵(a)中每个点的面积的度量,即每个位置是1 cm^2
- 流体的粘度值 (u)
我想要的是一种算法,可以在 t'=t+1 处计算流体高度矩阵 F 的新值。在任何时候,我都可以通过 v = a * (F(x,y) - H(x, y)) 计算给定点的流体体积。该算法的理想特性是:
- 它不需要考虑每个点的流体柱顶部或底部的“斜率”或“形状”。即它可以将hieghtmap中的每个值视为描述一个具有一定高度的平坦正方形,而将流体高度图的每个值视为具有平顶的矩形水柱
- 如果遇到“排水管”(即高度图中的一个非常低的点),来自地图所有部分的流体在被拉向它时可能会受到影响。
我正在寻找的一个简单示例是:
- 一个 5x5 高度图矩阵,其中所有值为 0
- 一个 5x5 流体高度图矩阵,其中除 [2, 2] 为 10 外,所有值均为 0。
- 每点面积 1 m^2
- 粘度为 u
该算法将描述在多个时间步长上在 5x5 矩阵上散布的流体“柱”。最终,算法将在所有位置稳定在 10/25 的统一高度,但我真的对两者之间发生的事情很感兴趣。
我试图搜索这种算法,但我能找到的只是描述流体内部粒子行为的方程,这对于我的目的来说太细化了。有谁知道我可以参考这个问题的任何好的资源,或者可能满足我需求的现有算法。
cuda - CUDA 上的 C2R FFT (CUFFT) 产生与 FFTW 不同的结果
我正在将一些代码从使用 FFTW 库转换为 CUFFT(CPU 计算到 GPU 计算)。我需要转换一个力矩阵,对其进行一些数学运算并将其转换回来。FFTW 中的操作如下所示:
最后:
搬到 CUFFT 后:
在里面:
最后:
在数学部分之后,两个程序都保存完全相同的数据(矩阵)。可悲的是,在矩阵中的逆傅立叶变换数据不同之后。我注意到损坏的数据位于奖励列( (DIM * 2*(DIM/2+1)) )中,这是就地转换所需的。
有谁知道,为什么?CUFFT 有什么我不知道的吗?
matlab - matlab如何给曲面赋值?
我正在尝试使用 MATLAB 构建 3D CFD 管流模型,并且希望在管壁上分配值(边界条件)。我尝试使用以下cylinder
功能构建管道:
但这在表面上产生了几个点,这还不够。
另外,有没有更好的方法来使用 MATLAB构建 3D CFD管道流模型?