问题标签 [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.

0 投票
0 回答
150 浏览

c++ - 使用 VIC 方法对流中的圆柱体进行编程

我还是编程界的新手。我有一个小型学校项目,我必须使用 VIC(Vortex in Cell)方法对流过圆柱体进行编程。我已经有了 VIC 方法的程序,但我不知道如何将它应用到圆柱体上。该程序是用 C++ 编写的,我在 Visual Studio Express 2013 上执行了它。我得到了 1 个单元格的结果。

0 投票
3 回答
310 浏览

loops - Modelica:对静态求解器进行编程,以在仿真过程中收敛到一个解。差价合约示例

一般问题:

我使用 OpenModelica 在 Modelica 上工作。我想在 Modelica 中编写自己的求解器以收敛到一个解决方案,因为我认为 OpenModelica 无法解决我的问题。可能吗?


具体案例:

我开发了一个流体动力学组件中的空气分离模型。我的模型基于一个数据表,该数据表根据组件中的速度和参数“截面”提供每个分支的压力损失系数。我的模型在我使用 MassFlow 源时效果很好,但在我只使用压力源时效果不佳。请参阅下面的图片以了解与我的组件的连接:

http://www.casimages.com/img.php?i=140620024048704083.png

http://www.casimages.com/img.php?i=140620024137384886.png

我的模型“分离”的代码是这样的:

当我将此模型连接到 3 个压力组件(源设置为 Patm +10000Pa,接收器设置为 Patm)时,这是一个“非线性系统”错误。该模型适用于 MassFlow 接收器。为什么?我应该开发自己的求解器来解决它吗?如果是怎么办?

0 投票
1 回答
758 浏览

c# - 在我的浅水实现中奇怪的振荡涟漪

我一直在尝试在 Unity 中实现浅水方程,但我遇到了一个奇怪的错误。我的水中出现了这些奇怪的振荡涟漪。我做了一些截图:

在此处输入图像描述 在此处输入图像描述

您可以在这里找到一个视频:https ://www.youtube.com/watch?v=crXLrvETdjA

我的代码基于 Xing Mei 的论文Fast Hydraulic Erosion Simulation and Visualization on GPU。您可以在此处找到完整的求解器代码:http: //pastebin.com/JktpizHW(或见下文。)每次我使用论文中的公式时,我都会添加其编号作为注释。

我尝试了不同的时间步长,对于我使用 0.02 的视频,降低它只会使其振荡更慢。我还尝试了一个更大的网格(视频使用 100,我尝试了 200,但后来涟漪变小了。)我检查了所有公式几次,找不到任何错误。

这里有谁能弄清楚出了什么问题?

额外信息:

正如您从 pastebin 中看到的那样,我用 c# 对其进行了编程。我使用 Unity 作为我的可视化引擎,我只是使用网格来可视化水。我改变网格的顶点 y 分量以匹配我计算的高度。

DoUpdate 方法获取一个float[][] lowerLayersHeight参数,它基本上是水下地形的高度。在视频中,这就是全部0

0 投票
0 回答
573 浏览

matlab - Matlab中的流体模拟

我在 Matlab 中有一个(垂直)圆柱体,使用 patch 命令构建。对于圆柱体的每个“级别”,我都有不同的半径,因此 3D 绘图显示如下:

废话

此外,我使用了一系列图像来模拟结构的运动(每一层的半径都会随着时间的推移而变化)。

我现在想做的是模拟一定质量的流体通过气缸。比如说,第一张图像将在顶部显示流体(球体?),随后的图像将显示流体遵循圆柱体的形状。

我试图通过简单地为圆柱体的侧面着色来解决这个问题,但我需要一些更“类似液压”的东西。

我该如何解决这个问题?如何在 Matlab 环境中处理/建模流体?

任何建议/提示将不胜感激。

0 投票
0 回答
703 浏览

c++ - 屏幕空间流体渲染的法线模糊

我正在尝试实现屏幕空间流体渲染,但我遇到了一些模糊问题。据我了解,我应该使用双边过滤器模糊法线贴图,这样灯光就不会像从我开始的球体粒子反弹一样。我会展示一些图片来解释我的意思

第 1 阶段:深度图/法线图

在此处输入图像描述

我创建深度贴图和法线贴图。深度图只是到相机的 z 距离。法线贴图只是保存为颜色的法线。

下一步是问题 - 模糊。我正在尝试实现双边过滤器以实现模糊。深度图完美模糊。但是,无论我对法线贴图施加多大压力,它都不会给我想要的模糊类型:

在此处输入图像描述

这一步是不是走错了一步?为了确保不仅仅是我的代码搞砸了,我删除了我的着色器并尝试使用 OpenCV 的双边过滤器功能。显然它破坏了帧速率,但我只是想确保模糊不是我的错。

我应该用法线做其他事情吗?我想摆脱球体的明显外观,但是没有多少模糊对我有用 - 所以当我使用法线贴图应用漫反射着色时,它看起来仍然像一堆球体

任何帮助将不胜感激,我真的被困在这一点上!谢谢

0 投票
1 回答
185 浏览

c++ - c ++中的二维线性对流(分段错误)

我遵循 Lorena Barbara 博士对 Navier stokes 方程的 12 个步骤(http://lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/)结构,但我不确定如何进行 2d线性对流。我想知道这里是否有人熟悉如何做到这一点。下面是我的示例代码:

0 投票
1 回答
156 浏览

javascript - Particle Based Viscoelastic Fluid Surface Tension Problems

I've been recently working on a JS program that models this scholarly article. The problem I've been recently having is this:

"Surface tension is usually caused by attraction between particles. Inside the fluid, this attraction, cancels out, but for the molecules near the surface, asymmetry in neighbor distribution results in a non-zero net force towards the fluid."

I'm assuming that this happens naturally in the double density relaxation method, but my program seems to show no sign of it.

Here's an excerpt from the double density relaxation method:

0 投票
1 回答
443 浏览

matlab - 定义为积分的函数:trapz?

我想计算 x,y: p(x,y) 的函数 p,它由 x 和 y 的另一个函数的积分定义:

p(x,y) = v(x,y) dx 的积分(不定)

现在,如果我有一个p在统一网格上x表示的矩阵y,我该如何构造函数p(应该是一个矩阵)。

显然,如果我使用 集成trapz,我将获得一个向量:

给出1 10而不是 10 10。

0 投票
0 回答
164 浏览

java - 线性求解器实现

我遇到了以下线性求解器的实现,它用于实现 Jos Stam 的稳定流体方法:

(来自http://www.multires.caltech.edu/teaching/demos/java/FluidSolver.java的实现)

我已经能够收集xx0是矩阵,其中I只是一个简单的数组索引函数,并且b只是一个要设置边界条件的标志。

但我不确定这段代码到底在做什么。我认为线性求解器通常会尝试x计算Ax = b. 但是这段代码中似乎没有任何向量,只有矩阵。

有谁知道这段代码是如何工作的?我试图通过预处理共轭梯度的方法使其更有效。但我不明白这里的参考实现。

0 投票
0 回答
6298 浏览

matlab - Matlab中圆柱周围的流场

我对 Matlab 中的不同绘图很陌生,我正在尝试编写一个代码来显示 Matlab 中圆柱体周围的流场。我刚开始,首先我只想在一个矩形域中画一个圆圈(圆柱体不应该正好在场地的中间)。

到目前为止,我已经完成了这个设置,但我想知道是否可以让圆柱体看起来更像圆形而不像椭圆形,特别是因为域是矩形而不是正方形。圆圈上的点是正确的,但我希望它看起来更好。对此有什么建议吗?我现在的代码是: