问题标签 [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 投票
1 回答
90 浏览

python - python fluidsim(面向对象的CDF求解器)究竟解决了什么方程

我对流体模拟 python 包有疑问。我想使用流体模拟程序进行研究。阅读文档后,并不清楚fluidsim.solvers.ns2d.solver算法究竟解决了什么方程(我会对微分方程的具体形式感兴趣),这也是一个如何添加新方程的问题现有的。如果你们中的任何人确切知道什么方程可以解决流体sim.solvers.ns2d.solver 或如何在现有方程中添加新方程,请写信给我。提前感谢您的帮助!

0 投票
2 回答
574 浏览

python - 用射击法求解自然对流方程(热量和流动)

TL;DR 我一直在实现一个 python 程序,以使用 runge-kutta 4 和拍摄方法基于特定的相似性变量来求解自然对流的数值方程。但是,当我绘制它时,我没有得到正确的解决方案。我在某个地方犯了错误吗?

你好 !

从自然对流的一个特例开始,我们得到了这些相似方程。
第一个描述流体流动,第二个描述热流。
“Pr”代表普朗特,它基本上是流体动力学(普朗特)中使用的无量纲数:

自然对流的 blasius 问题

这些方程服从以下边界值,使得板附近的温度大于边界层外的温度,并且远离边界层的流体速度为 0。

边界值

我一直在尝试使用 Runge-Kutta 4 和拍摄方法以数值方式解决这些问题,以将边界值问题转换为初始值问题。射击方法的实现方式是用牛顿法。

但是,我没有得到正确的解决方案。正如您在下面看到的,随着我们远离盘子,温度(红色)正在增加,而它应该呈指数下降。流体速度(蓝色)更加一致,但是我认为它应该上升得更快然后下降得更快。这里的曲线更平滑。

阴谋

现在,事实是我们有一个 2 耦合 ODE 系统。但是,现在,我只是试图找到两个初始值之一(例如 f''(0) = a,试图找到 a),这样我们就可以解决边界值问题(拍摄方法) . 一旦找到,我想我们就有了解决整个问题的办法。

我想我也许应该管理这两个 (f''(0) = a ; theta'(0) = b) 但我不知道如何同时管理这两个。最后想提一下,如果我试图获得 theta' 的初始值(所以 theta'(0)),我没有得到正确的热量分布。

这是代码:

0 投票
0 回答
212 浏览

modelica - 考虑动态动量平衡时 Modelica.Fluid.Pipes.DynamicPipe 中的压降

当使用可压缩气体作为介质并考虑动态动量平衡时,我在理解离散化 Modelica.Fluid.Pipes.DynamicPipe 的模拟结果时遇到了问题。为了说明,我建立了一个非常简单的模型:压力源+管道+压力接收器。压力源中的压力随时间线性增加。管道的参数化主要对应默认值,但参数“momentumDynamics”设置为“Modelica.Fluid.Types.Dynamics.FixedInitial”。

在此处输入图像描述

对于较低的气体速度(=较小的入口压力),压降在某种程度上几乎是线性分布在管道的离散元件上(当然,由于介质特性的变化,每个元件的压降都不相同)。然而,随着气体速度变高,最后一个流动模型(= 电阻元件)中的压降占主导地位。下图显示了沿管道的不同流动模型中的压力。最后一个流动模型(绿色虚线)中的压力对应于压力槽中的恒定压力。

沿管道的不同流动模型中的压力。 最后一个流动模型(绿色虚线)中的压力对应于压力槽中的恒定压力。

实际上,当查看沿管道的压力分布时,它看起来好像管道阻塞了。然而,这是不可能的,因为速度仍然远低于声速。最后一个流动模型中的速度比管道的其余部分高很多,因为压力要低很多,因为它对应于大气压力。下图显示了管道中流动模型中的速度以及声速。声速几乎恒定在~330 m/s。 这张图片显示了管道中流动模型中的速度以及声速。 声速几乎恒定在~330 m/s。

我不明白的是:模拟结果是否正确地代表了物理学?如果不是,方程式中的“错误”在哪里?如果是,模型在这里代表的物理行为是什么?

我试过的:

  • 改变管道的离散化不会改变现象。
  • 它似乎与介质模型无关,我也尝试过使用完全不同的可压缩气体介质模型。(此示例使用 Modelica.Media.Air.ReferenceAir.Air_ph)
  • 它仅在选择动态动量平衡时发生(因为尽管有此标志的名称,但使用此标志不仅“激活”了动量平衡中的动态项,而且还增加了由于加速引起的压力损失)。

我期待任何提示来解释这个问题!

0 投票
0 回答
58 浏览

modelica - 如何在 Modelica 组件中定义流模型和体积模型?

我正在学习如何使用 Modelica 构建热流体模型,我注意到为了减少非线性,建议使用两种不同的模型:流动模型和体积模型,这是我在商业图书馆找到的解释,但我不确定如何安排组件中的方程式来实现这个想法。所以我正在寻找一些关于如何在 Modelica 编码中使用这个想法的论文和例子。

指示流动模型的流动端口在组件内部直接耦合到它,即来自该端口的压力被进一步处理以计算例如质量流量。建议将此端口与对应的 VolumePort 连接,以获得交变流模型-体积系统模型结构。如果两个模型的端口都属于此类,则可能会创建端口中代数压力的非线性方程组,并且需要初始猜测值。

埃尔

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

0 投票
0 回答
87 浏览

physics - 加压罐的排气时间

我正在尝试计算充满 800 PSIG 饱和水的加压罐的排气时间。

油箱的排气口是一条 12 英尺长的 2 英寸管道,它进入 10 英尺长的 6 英寸管道,然后进入 150 英尺长的 8 英寸管道。这些管线排入闪蒸罐(在 50 PSIG 下运行),然后将其释放到大气中。

我的问题是:

  1. 水进水箱的速度?
  2. 水压进入闪蒸罐?

我附上了关于我如何解决这个问题的示例计算。任何指导将不胜感激。

我正在使用伯努利方程、达西魏斯巴赫方程来平衡压力

我正在执行的计算: 图片

0 投票
1 回答
46 浏览

physics - 求微载体粒子的斯托克斯数

我试图在 CFD 应用程序中模拟微载体(用作细胞附着和生长表面的颗粒)的流动和悬浮。我知道粒子的一些基本特征(它们被称为“Cytodex”,大约 180 µm 大,密度为 1.03g/cm^2)但我想找到斯托克斯数以确定它们受湍流影响的强度和流体的运动。有人可以指出我如何解决这个问题(或者至少是近似的?)。对于像我这样没有很强的流体力学背景的人来说,很难找到任何信息。

0 投票
1 回答
551 浏览

unity3d - 从我的工作着色器转换为统一计算着色器时流体模拟中的奇怪行为

我正在尝试在 Unity 的计算着色器中复制我正在工作的 2d 流体着色器玩具,希望很快将其移动到 3D。当我以同样的方式复制算法时,我得到了一些非常奇怪的行为(在我拍摄的这个视频中看到)。我试图调试所有我能想到的东西,但我不知道为什么它们不一样。我正在可视化此捕获中的矢量矩阵(与查看我的着色玩具时按空格键相同)。

我使用用于执行驱动速度矩阵的 Navier-Stokes 方程的代码创建了一个pastebin。模拟的内容归结为:

它应该很简单,我尽我所能过多地评论着色玩具以使其易于理解(它们是相同的代码,为不同的环境设置)。这是驱动模拟的 C# 代码。

我知道要求某人深入研究我的代码是一个不方便的请求,但我完全不确定我做错了什么,这让我发疯。我在 shadertoy 上使用了完全相同的算法,但它在 Unity 计算着色器中的行为非常奇怪,我不知道为什么。每次我“跨步”时,我都会确保切换读/写纹理,以便在模拟中干净利落地向前移动而不干扰。

任何解决我的问题的想法/提示将不胜感激。

0 投票
0 回答
83 浏览

python - Python 中的流体计算 - 可用选项

我有一个项目来模拟多个连接体积与阀门之间的压力交换。

我的问题示例

在上图中,您可以看到每个罐都有压力、体积和温度。每个体积之间都有可以打开或关闭的阀门。一些体积处于真空状态,因此在分析过程中会出现阻塞和未阻塞的流动。此外,我有一个硬性限制,即我需要根据其他体积的压力来打开和关闭这些阀门,并且这种分析需要随着时间的推移清晰地输出压力。这些体积相当大,所以我想我也可以为这个问题假设恒温。速度对于此分析至关重要,我不需要任何复杂的东西。(您可以将每个卷假设为连接到其他节点的一维节点)

多年来我一直试图解决这个问题,但我的模型似乎总是不稳定。造成这种情况的原因可能是因为我总是从头开始编写这个问题。我想我需要开始考虑使用分析库。对于这个问题,我非常喜欢 python。

然而,我看到的每个流体 python 库都让我对技术术语感到困惑。我希望在这个领域有更多经验的人能指出我正确的方向。

问题:

  1. 是否有 Python 库可以解决我的问题?(一维节点相互交换空气的时间模拟)
  2. 这些python库有哪些?
  3. 您能否指出任何示例或提供与我的问题类似的任何简单示例?

谢谢您的帮助!

0 投票
1 回答
48 浏览

python-3.x - 使用 Fipy 表示动量方程的项时遇到问题

我将如何在以下等式中表示二元组(张量积)?我似乎无法弄清楚我应该在一般情况下使用 Fipy 中的哪些术语。

柯西

更具体地说,得到的方程:

柯西

我最熟悉瞬态和源术语,但我不知道如何表示学期

谢谢,

0 投票
0 回答
393 浏览

python - 如何将 openfoam 数据保存为 csv 文件?

我正在使用 openfoam,我想为每个 U 和 p 保存的每次迭代创建 csv 数据集。例如,我的案例在 320 次迭代时收敛,我每 10 次迭代写入一个文件。所以,我想保存 30 个文件(10.csv、20.csv、30.csv .... 320.csv);对于每个变量 U 和 p,csv 包含该迭代中每个单元格的所有值。我不知道如何开始。我用 python 的 paraview 尝试了一些脚本,但它们并没有给我我所期望的。这是我当前的代码:

在研究如何为每个文件迭代地执行此操作之前,我首先想获得一个我想要的 csv 格式的文件。我想知道如何解决这个问题。