问题标签 [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.
python - python fluidsim(面向对象的CDF求解器)究竟解决了什么方程
我对流体模拟 python 包有疑问。我想使用流体模拟程序进行研究。阅读文档后,并不清楚fluidsim.solvers.ns2d.solver算法究竟解决了什么方程(我会对微分方程的具体形式感兴趣),这也是一个如何添加新方程的问题现有的。如果你们中的任何人确切知道什么方程可以解决流体sim.solvers.ns2d.solver 或如何在现有方程中添加新方程,请写信给我。提前感谢您的帮助!
python - 用射击法求解自然对流方程(热量和流动)
TL;DR 我一直在实现一个 python 程序,以使用 runge-kutta 4 和拍摄方法基于特定的相似性变量来求解自然对流的数值方程。但是,当我绘制它时,我没有得到正确的解决方案。我在某个地方犯了错误吗?
你好 !
从自然对流的一个特例开始,我们得到了这些相似方程。
第一个描述流体流动,第二个描述热流。
“Pr”代表普朗特,它基本上是流体动力学(普朗特)中使用的无量纲数:
这些方程服从以下边界值,使得板附近的温度大于边界层外的温度,并且远离边界层的流体速度为 0。
我一直在尝试使用 Runge-Kutta 4 和拍摄方法以数值方式解决这些问题,以将边界值问题转换为初始值问题。射击方法的实现方式是用牛顿法。
但是,我没有得到正确的解决方案。正如您在下面看到的,随着我们远离盘子,温度(红色)正在增加,而它应该呈指数下降。流体速度(蓝色)更加一致,但是我认为它应该上升得更快然后下降得更快。这里的曲线更平滑。
现在,事实是我们有一个 2 耦合 ODE 系统。但是,现在,我只是试图找到两个初始值之一(例如 f''(0) = a,试图找到 a),这样我们就可以解决边界值问题(拍摄方法) . 一旦找到,我想我们就有了解决整个问题的办法。
我想我也许应该管理这两个 (f''(0) = a ; theta'(0) = b) 但我不知道如何同时管理这两个。最后想提一下,如果我试图获得 theta' 的初始值(所以 theta'(0)),我没有得到正确的热量分布。
这是代码:
modelica - 考虑动态动量平衡时 Modelica.Fluid.Pipes.DynamicPipe 中的压降
当使用可压缩气体作为介质并考虑动态动量平衡时,我在理解离散化 Modelica.Fluid.Pipes.DynamicPipe 的模拟结果时遇到了问题。为了说明,我建立了一个非常简单的模型:压力源+管道+压力接收器。压力源中的压力随时间线性增加。管道的参数化主要对应默认值,但参数“momentumDynamics”设置为“Modelica.Fluid.Types.Dynamics.FixedInitial”。
对于较低的气体速度(=较小的入口压力),压降在某种程度上几乎是线性分布在管道的离散元件上(当然,由于介质特性的变化,每个元件的压降都不相同)。然而,随着气体速度变高,最后一个流动模型(= 电阻元件)中的压降占主导地位。下图显示了沿管道的不同流动模型中的压力。最后一个流动模型(绿色虚线)中的压力对应于压力槽中的恒定压力。
实际上,当查看沿管道的压力分布时,它看起来好像管道阻塞了。然而,这是不可能的,因为速度仍然远低于声速。最后一个流动模型中的速度比管道的其余部分高很多,因为压力要低很多,因为它对应于大气压力。下图显示了管道中流动模型中的速度以及声速。声速几乎恒定在~330 m/s。
我不明白的是:模拟结果是否正确地代表了物理学?如果不是,方程式中的“错误”在哪里?如果是,模型在这里代表的物理行为是什么?
我试过的:
- 改变管道的离散化不会改变现象。
- 它似乎与介质模型无关,我也尝试过使用完全不同的可压缩气体介质模型。(此示例使用 Modelica.Media.Air.ReferenceAir.Air_ph)
- 它仅在选择动态动量平衡时发生(因为尽管有此标志的名称,但使用此标志不仅“激活”了动量平衡中的动态项,而且还增加了由于加速引起的压力损失)。
我期待任何提示来解释这个问题!
physics - 求微载体粒子的斯托克斯数
我试图在 CFD 应用程序中模拟微载体(用作细胞附着和生长表面的颗粒)的流动和悬浮。我知道粒子的一些基本特征(它们被称为“Cytodex”,大约 180 µm 大,密度为 1.03g/cm^2)但我想找到斯托克斯数以确定它们受湍流影响的强度和流体的运动。有人可以指出我如何解决这个问题(或者至少是近似的?)。对于像我这样没有很强的流体力学背景的人来说,很难找到任何信息。
unity3d - 从我的工作着色器转换为统一计算着色器时流体模拟中的奇怪行为
我正在尝试在 Unity 的计算着色器中复制我正在工作的 2d 流体着色器玩具,希望很快将其移动到 3D。当我以同样的方式复制算法时,我得到了一些非常奇怪的行为(在我拍摄的这个视频中看到)。我试图调试所有我能想到的东西,但我不知道为什么它们不一样。我正在可视化此捕获中的矢量矩阵(与查看我的着色玩具时按空格键相同)。
我使用用于执行驱动速度矩阵的 Navier-Stokes 方程的代码创建了一个pastebin。模拟的内容归结为:
它应该很简单,我尽我所能过多地评论着色玩具以使其易于理解(它们是相同的代码,为不同的环境设置)。这是驱动模拟的 C# 代码。
我知道要求某人深入研究我的代码是一个不方便的请求,但我完全不确定我做错了什么,这让我发疯。我在 shadertoy 上使用了完全相同的算法,但它在 Unity 计算着色器中的行为非常奇怪,我不知道为什么。每次我“跨步”时,我都会确保切换读/写纹理,以便在模拟中干净利落地向前移动而不干扰。
任何解决我的问题的想法/提示将不胜感激。
python - Python 中的流体计算 - 可用选项
我有一个项目来模拟多个连接体积与阀门之间的压力交换。
在上图中,您可以看到每个罐都有压力、体积和温度。每个体积之间都有可以打开或关闭的阀门。一些体积处于真空状态,因此在分析过程中会出现阻塞和未阻塞的流动。此外,我有一个硬性限制,即我需要根据其他体积的压力来打开和关闭这些阀门,并且这种分析需要随着时间的推移清晰地输出压力。这些体积相当大,所以我想我也可以为这个问题假设恒温。速度对于此分析至关重要,我不需要任何复杂的东西。(您可以将每个卷假设为连接到其他节点的一维节点)
多年来我一直试图解决这个问题,但我的模型似乎总是不稳定。造成这种情况的原因可能是因为我总是从头开始编写这个问题。我想我需要开始考虑使用分析库。对于这个问题,我非常喜欢 python。
然而,我看到的每个流体 python 库都让我对技术术语感到困惑。我希望在这个领域有更多经验的人能指出我正确的方向。
问题:
- 是否有 Python 库可以解决我的问题?(一维节点相互交换空气的时间模拟)
- 这些python库有哪些?
- 您能否指出任何示例或提供与我的问题类似的任何简单示例?
谢谢您的帮助!
python-3.x - 使用 Fipy 表示动量方程的项时遇到问题
我将如何在以下等式中表示二元组(张量积)?我似乎无法弄清楚我应该在一般情况下使用 Fipy 中的哪些术语。
更具体地说,得到的方程:
我最熟悉瞬态和源术语,但我不知道如何表示
谢谢,
python - 如何将 openfoam 数据保存为 csv 文件?
我正在使用 openfoam,我想为每个 U 和 p 保存的每次迭代创建 csv 数据集。例如,我的案例在 320 次迭代时收敛,我每 10 次迭代写入一个文件。所以,我想保存 30 个文件(10.csv、20.csv、30.csv .... 320.csv);对于每个变量 U 和 p,csv 包含该迭代中每个单元格的所有值。我不知道如何开始。我用 python 的 paraview 尝试了一些脚本,但它们并没有给我我所期望的。这是我当前的代码:
在研究如何为每个文件迭代地执行此操作之前,我首先想获得一个我想要的 csv 格式的文件。我想知道如何解决这个问题。