问题标签 [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.
c++ - 使用 VIC 方法对流中的圆柱体进行编程
我还是编程界的新手。我有一个小型学校项目,我必须使用 VIC(Vortex in Cell)方法对流过圆柱体进行编程。我已经有了 VIC 方法的程序,但我不知道如何将它应用到圆柱体上。该程序是用 C++ 编写的,我在 Visual Studio Express 2013 上执行了它。我得到了 1 个单元格的结果。
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 接收器。为什么?我应该开发自己的求解器来解决它吗?如果是怎么办?
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
。
c++ - 屏幕空间流体渲染的法线模糊
我正在尝试实现屏幕空间流体渲染,但我遇到了一些模糊问题。据我了解,我应该使用双边过滤器模糊法线贴图,这样灯光就不会像从我开始的球体粒子反弹一样。我会展示一些图片来解释我的意思
第 1 阶段:深度图/法线图
我创建深度贴图和法线贴图。深度图只是到相机的 z 距离。法线贴图只是保存为颜色的法线。
下一步是问题 - 模糊。我正在尝试实现双边过滤器以实现模糊。深度图完美模糊。但是,无论我对法线贴图施加多大压力,它都不会给我想要的模糊类型:
这一步是不是走错了一步?为了确保不仅仅是我的代码搞砸了,我删除了我的着色器并尝试使用 OpenCV 的双边过滤器功能。显然它破坏了帧速率,但我只是想确保模糊不是我的错。
我应该用法线做其他事情吗?我想摆脱球体的明显外观,但是没有多少模糊对我有用 - 所以当我使用法线贴图应用漫反射着色时,它看起来仍然像一堆球体
任何帮助将不胜感激,我真的被困在这一点上!谢谢
c++ - c ++中的二维线性对流(分段错误)
我遵循 Lorena Barbara 博士对 Navier stokes 方程的 12 个步骤(http://lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/)结构,但我不确定如何进行 2d线性对流。我想知道这里是否有人熟悉如何做到这一点。下面是我的示例代码:
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:
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。
java - 线性求解器实现
我遇到了以下线性求解器的实现,它用于实现 Jos Stam 的稳定流体方法:
(来自http://www.multires.caltech.edu/teaching/demos/java/FluidSolver.java的实现)
我已经能够收集x
和x0
是矩阵,其中I
只是一个简单的数组索引函数,并且b
只是一个要设置边界条件的标志。
但我不确定这段代码到底在做什么。我认为线性求解器通常会尝试x
计算Ax = b
. 但是这段代码中似乎没有任何向量,只有矩阵。
有谁知道这段代码是如何工作的?我试图通过预处理共轭梯度的方法使其更有效。但我不明白这里的参考实现。
matlab - Matlab中圆柱周围的流场
我对 Matlab 中的不同绘图很陌生,我正在尝试编写一个代码来显示 Matlab 中圆柱体周围的流场。我刚开始,首先我只想在一个矩形域中画一个圆圈(圆柱体不应该正好在场地的中间)。
到目前为止,我已经完成了这个设置,但我想知道是否可以让圆柱体看起来更像圆形而不像椭圆形,特别是因为域是矩形而不是正方形。圆圈上的点是正确的,但我希望它看起来更好。对此有什么建议吗?我现在的代码是: