首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于FiPy的FiPy模拟抽水

基于FiPy的FiPy模拟抽水
EN

Stack Overflow用户
提问于 2021-03-30 15:32:52
回答 1查看 135关注 0票数 0

我试着在一个领域里用Fipy模拟抽水,在这里我想模拟扩散和平流。水是从一个点抽取出来的,然后在另一个点排出。不过,对于边界条件的定义,我有一些问题。

其中q是流动(常数),h是深度(常数),C是浓度(瞬态),Lx和dx是经度(常数)。

首先,定义了计算速度场的方程(二维Navier方程).特别是,我在表面施加压力=零,在抽吸/排放区(与泵的公称流量有关)施加垂直速度,在底部施加速度=零。

关于领域中的“质量”传输,我引入质量通量作为边界条件(然而,我有一个问题是,我不能引入水通量,因此我不能考虑这个问题)。

我有一些问题:

  • 当定义固定通量边界条件时,系数(q/Lx)是否大于1?我认为FiPy从边界附近的细胞中获取“质量”,因此,如果大于1,它会导致负浓度(在我的例子中,这是不可能的)。
  • 是否有可能移动细胞,以取代水量?
  • 是否可以考虑单元格的“体积”,以便在顶部边界处应用幻象?

这是我的密码:

代码语言:javascript
复制
coeff_in = (q / Lx_in)
coeff_out = (q / Lx_out)

eqC = (TransientTerm(var = C) == # Transient term
        DiffusionTerm(coeff = D, var = C) # Diffusion term
        - ConvectionTerm(coeff = Vf, var = C) # Convection term
        + (coeff_out * face_out * (C.faceValue)).divergence # Bottom Boundary Condition (fixed-flux); flow
        + (coeff_in * face_in * Cinput).divergence # Top Boundary Condition (fixed-flux); flow
        )

但这会产生(显然!)顶部的质量浓度,底部的萃取物。直观地说,如果所有网格中的浓度是相同的,那么底部就不需要改变(因为体积被提取,然后质量发生移位),顶部应该降低其浓度(因为引入了浓度较低的水,并将其与顶部浓度混合)。

EN

回答 1

Stack Overflow用户

发布于 2021-03-31 14:57:32

问:当定义固定通量边界条件时,系数(q/Lx)是否大于1?我认为FiPy从边界附近的细胞中获取“质量”,因此,如果大于1,它会导致负浓度(在我的例子中,这是不可能的)。

您需要调整您的时间步骤,以确保CFL条件保持在小于1(更好,保持CFL < 0.1)。

问:是否有可能移动细胞,以取代水量?

我想你是在问你是否可以使用拉格朗日(移动网格)方法?不,不容易。FiPy是欧拉码。

问:是否可以考虑细胞的“体积”,在顶部边界处应用幻象?

你不应该在放电时得到质量浓度,这就是通量所表示的。我不太确定如何处理纯净水的流入。这似乎相当于那个边界上溶质的零通量。看起来你需要一个关于水浓度的模型,即使你最终没有明确地解决它。它可以很简单

。在这种情况下,底部的纯水流量应相当于

从底部出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66873980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档