【问题标题】:How to solve 1D Poisson equation with Dirichlet and Neumann boundary conditions on the same side using FiPy如何使用 FiPy 在同一侧求解具有 Dirichlet 和 Neumann 边界条件的 1D Poisson 方程
【发布时间】:2022-01-10 08:01:17
【问题描述】:

很明显,即使 Dirichlet 和 Newmann 边界条件在同一侧,具有恒定源的一维泊松方程也有唯一解。但是我想不出在 FiPy 中解决这个问题的方法。请指教。我试过了:

from fipy import CellVariable, Grid1D, DiffusionTerm
import matplotlib.pyplot as plt


L = 1.
nx = 20
dx = L/nx
mesh = Grid1D(nx=nx, dx=dx)


D = 1.
valueLeft = 1.
gradValue = 0.
source = 1.


var = CellVariable(mesh=mesh)
var.constrain(valueLeft, where=mesh.facesLeft)
var.faceGrad.constrain(gradValue, where=mesh.facesLeft)


eq = 0.0 == DiffusionTerm(coeff=D) + source
eq.solve(var=var)


plt.plot(var.value);

这不是将gradValue 设置为facesLeft。但是,它可以在facesRight处设置所需的gradValue

【问题讨论】:

标签: differential-equations poisson fipy


【解决方案1】:

在 FV 中,在同一面上同时存在 Dirichlet 和 Neumann 会将问题的性质从边值问题转变为初始值问题。从这个意义上说,问题变得过度指定,因为仍然需要右手边的边界条件。可能有一些方法可以通过 FD/FV 来处理它。但是,FiPy 肯定无法处理此类问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2019-09-11
    • 1970-01-01
    • 2017-01-30
    • 2020-08-21
    相关资源
    最近更新 更多