计算流经一段岩石的温度/热量时的不收敛性

计算科学 收敛
2021-12-16 08:34:07

我试图计算地球中岩石部分的温度,作为岩石中垂直位置和时间的函数。连同它,我正在计算通过岩石的热流作为岩石中垂直位置和时间的函数。请注意,这是对问题的一维检查——假设岩石在每个方向上都是均匀的,但上下是一致的。

请耐心等待:我目前没有词汇量或背景来谈论我在本网站其他问题中看到的 FEM 和微分方程的熟悉程度。我是一名具有一定物理背景的软件开发人员,这让我能够走到这一步。

方法描述:我目前正在将岩石部分分成水平切片(深度步长),然后在特定时间步长计算每个深度步长的温度和热流。我假设热量只从岩石部分下方向上流动。

据我了解,深度步长的顶部和底部之间的温差将表示为:

ΔT=QΔZλ
在哪里Q是深度步长中间的热流mW/m2,ΔZ是此时深度台阶的厚度,并且λ是岩石的热导率(常数)。

此外,深度阶梯底部和顶部之间的热流变化可以表示为:

ΔQ=CpρΔZΔTΔt

在哪里Cp是岩石的热容(常数),ρ是密度(常数),和ΔTΔt将是该时间步长过程中深度步长的温度变化。

作为计算的起点,我知道整个岩层顶部的温度(但知道岩层底部的温度)。我也知道岩石层下方的热流值(但知道顶部的热流值)。

复杂性的关键部分是岩石层的厚度随着时间的推移而增加(也称为沉积),所以我要添加到ΔZ最顶部的深度步长,然后随着时间的推移向岩石部分的顶部添加更多的深度步长。结果,各个深度阶梯被越来越多地掩埋,因此随着时间的推移变得越来越热,从而导致热流随着您在岩层中向上移动而减少(根据上面的等式 2)。

我计算每个时间步的温度和热流的方法如下:

  1. 增加岩层的厚度,必要时在顶部增加深度台阶。
  2. 使用上一个时间步长的热流值计算沿层向下的每个深度步长的顶部和底部的温度(因为我知道表面温度,因此知道起点)。
  3. 使用在步骤#2中计算的每个深度步骤的温度,计算沿层向上的每个深度步骤的底部和顶部的热流值(因为我只知道岩石层最底部的热流)与前一个时间步的温度。
  4. 重复步骤 2-3,直到解收敛。请注意,在步骤 #2 中,我现在可以使用在步骤 #3 中计算的热流。

问题: 这个解决方案并不总是收敛的。随着岩石层随着时间的推移变得越来越厚,每个时间步长收敛的时间越来越长,直到它达到一个临界点并开始发散。 我能做些什么来迫使它收敛?

我怀疑分歧的原因是因为我被迫在深度台阶下计算温度并且热量沿着深度台阶向上流动。这意味着根据上面的第一个等式,最底部深度台阶的温度对其上方的所有温度变化都很敏感。但这会导致底部的热流与之前的迭代相比发生了相当大的变化,然后通过上面的第二个方程一直传播到岩石层的顶部,从而强烈影响顶部的温度,等等。

警告:上述问题实际上是我试图解决的一个更大问题的主要简化 - 上面等式中的常数实际上以复杂、非连续的方式依赖于温度和深度。但是,我面临的问题仍然存在于上述简化中。

0个回答
没有发现任何回复~