如何在有限元中应用非零狄利克雷边界条件?

计算科学 有限元 边界条件
2021-12-09 11:52:54

我正在为矩形域上的稳态热传递编写代码。我在边缘指定温度 - 非零狄利克雷边界条件。方程可以写成

KT=Q
K为传导率矩阵,为未知节点温度向量,为由内部发热组成的热负荷向量。例如,系统可能看起来像TQ

[K11K12K13K1NK21K22K23K2NKN1KN2KN3KNN][100200TN]=[Q1Q2QN]

非零温度应用于矩形域的边缘(非齐次狄利克雷边界条件)。如何处理计算上的非零狄利克雷边界条件来求解未知温度向量?

1个回答

考虑这样一个事实,即您的线性系统可以分为两部分:对应于已知 Dirichlet 自由度的方程和对应于未知自由度的方程。为了方便起见,假设您的未知向量被分解,因此个值是已知的,其余的是未知的。让“ ”下标表示的未知索引,让“中的已知 (Dirichlet) 索引然后,线性系统可以写成以下方式:kTuTdT

[KddKduKudKuu][TdTu]=[QdQu]

由于的值是已知的,我们可以立即丢弃这些行中的方程,从而得到这个系统:Td

[KudKuu][TdTu]=[Qu]

然后将已知值移到线性系统的右侧:

KuuTu=QuKudTd

求解这组简化的线性方程组,你就有了未知数。另一种避免过多归零,将设置为单位矩阵,并设置您仍然需要以与上述相同的方式修改的条目,但这消除了实际重新创建稀疏矩阵以仅包含块的需要,同时仍保持线性系统的对称性。KKduKudKddQd=TdQuKuu

值得一提的是,即使索引集“ ”和“ ”不连续,这些技术仍然适用。您的簿记负担略高,但在概念上是相同的。du