用绝缘材料模拟热方程

计算科学 椭圆pde 传播热量
2021-11-27 22:56:05

我的计划是求解域右半部分的热方程,同时使左半部分与恒温完全隔离。为此,我使用非常低的电导率对左半部分进行建模。然后我在右半部分的顶部应用热通量,在底部应用 Dirichlet BC。对于左侧部分,我只是将 Dirichlet BC 应用于左侧。我认为左边的部分不会受到影响,并且温度恒定,因为它的电导率很低。

ρT=0 in Ω=[0,1]×[0,1]
ρ={1 if x>0.5108 else

右半边的边界条件

Tn=5 in ΓN={(x,y)  x>0.5 and y=1}
T=0 in ΓD1={(x,y)  x>0.5 and y=0}

左半边的边界条件

T=0 in ΓD2={(x,y)  x=0}

我正在用一阶拉格朗日元素解决这个问题。我期待在右半部分看到我的解决方案,然后让左半部分大部分恒定,值为 0,并在靠近界面的位置快速变化以保持连续性。考虑到左半部分主要是绝缘材料,这是有道理的。相反,我看到的是从界面到边界的平滑过渡。我的数学实现有问题吗?如果有帮助,请附上 FEniCS 代码

from dolfin import *

mesh = UnitSquareMesh(100, 100)

V = FunctionSpace(mesh, 'CG', 1)
t, w = TrialFunction(V), TestFunction(V)

Rho = FunctionSpace(mesh, 'DG', 0)
rho = Function(Rho)
rho.interpolate(Expression("(x[0] > 0.5) + 1e-8", domain=mesh, degree=1))
File("test_rho.pvd") << rho

a = inner(rho*grad(t), grad(w))*dx

top = CompiledSubDomain("x[1] > 1 - 0.01 && x[0] >= 0.5")
bottom_right = CompiledSubDomain("x[0] >= 0.5 && x[1] < 0.01")
left = CompiledSubDomain("x[0] <= 0.001")
meshfunc_ds = MeshFunction("size_t", mesh, mesh.topology().dim() - 1)

TOP, LEFT, BOTTOMRIGHT = 1, 2, 3
top.mark(meshfunc_ds, TOP)
left.mark(meshfunc_ds, LEFT)
bottom_right.mark(meshfunc_ds, BOTTOMRIGHT)

File("test_measures.pvd") << meshfunc_ds

ds = Measure("ds")(subdomain_data=meshfunc_ds)
L = Constant(5.0)*w*ds(TOP)

bc1 = DirichletBC(V, Constant(0.0), meshfunc_ds, BOTTOMRIGHT)
bc2 = DirichletBC(V, Constant(0.0), meshfunc_ds, LEFT)

t_sol = Function(V)
solve(a==L, t_sol, bcs=[bc1, bc2])
File("test_temperature.pvd") << t_sol
```
2个回答

为什么还要费心去模拟左半边?为什么不只模拟右半部分,左 BC 为常数值?对于您想要实际建模的内容似乎更简单,更准确,因为目前由于低电导率,您将在左半边有一个非常低的斜率,但它不会是恒定的。

我期待在右半部分看到我的解决方案,然后让左半部分大部分恒定,值为 0,并在靠近界面的位置快速变化以保持连续性。考虑到左半部分主要是绝缘材料,这是有道理的。

这个假设是错误的。小电导率仅意味着您的热通量小,但这绝不意味着温度梯度应该很小。想想炉子的绝缘层:通常,从热端到冷端的温度梯度是平滑的(几乎是线性的),而不是整个厚度的温度恒定。

相反,我看到的是从界面到边界的平滑过渡。

这是我所期望的。可以这样想:如果有穿过边界的热通量D1(进行)和D2(非常小的电导率),这种连续性的热通量必须通过跨边界的相等热通量来补偿D2:这会导致整个整体的平滑渐变D2.

假设计算一系列具有恒定电导率的解ρ1D1但降低电导率ρ2D2; 一次ρ2ρ1温度场在D2应该不会再有太大的变化,只是界面上的热通量会越来越小。

在电导率为零的极限处,问题在D1D2变得只是弱耦合。解决方案在D1在界面处服从绝热条件(零通量)。D2取而代之的是,您将在界面上获得具有狄利克雷边界条件的解,温度由域中问题的解给出D1. 通过维度分析,您可以看到该解决方案与实际电导率值无关,因此得出的结论是ρ2ρ1中的解决方案D2变化不大ρ2. (仅基于物理直觉的推理,但应该不难证明,或者通过数值实验来验证。)

相反,OP的推理是消失ρ2在温度梯度D2局部化在界面处,在零电导率处收敛到温度不连续性。但在我看来,这种类型的解决方案对于热方程来说是不可能的。