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

其中q是流动(常数),h是深度(常数),C是浓度(瞬态),Lx和dx是经度(常数)。
首先,定义了计算速度场的方程(二维Navier方程).特别是,我在表面施加压力=零,在抽吸/排放区(与泵的公称流量有关)施加垂直速度,在底部施加速度=零。

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

我有一些问题:
这是我的密码:
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
)但这会产生(显然!)顶部的质量浓度,底部的萃取物。直观地说,如果所有网格中的浓度是相同的,那么底部就不需要改变(因为体积被提取,然后质量发生移位),顶部应该降低其浓度(因为引入了浓度较低的水,并将其与顶部浓度混合)。
发布于 2021-03-31 14:57:32
问:当定义固定通量边界条件时,系数(q/Lx)是否大于1?我认为FiPy从边界附近的细胞中获取“质量”,因此,如果大于1,它会导致负浓度(在我的例子中,这是不可能的)。
您需要调整您的时间步骤,以确保CFL条件保持在小于1(更好,保持CFL < 0.1)。
问:是否有可能移动细胞,以取代水量?
我想你是在问你是否可以使用拉格朗日(移动网格)方法?不,不容易。FiPy是欧拉码。
问:是否可以考虑细胞的“体积”,在顶部边界处应用幻象?
你不应该在放电时得到质量浓度,这就是通量所表示的。我不太确定如何处理纯净水的流入。这似乎相当于那个边界上溶质的零通量。看起来你需要一个关于水浓度的模型,即使你最终没有明确地解决它。它可以很简单

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

从底部出来。
https://stackoverflow.com/questions/66873980
复制相似问题