
已知条件:
ϵr=1V0=1VV5=0Vd=8cml=2cmNe=4ρ=10−8C/m3
计算参数
由于是均匀材质,且等距的分割,所以矩阵K 前面的系数是定值:
Ke=lϵrϵ0[+1−1−1+1]≈x×10−28.85×10−12[+1−1−1+1]=4.425×10−10[+1−1−1+1](1.1)
同样可以求得向量b 或者叫fe:
fe=−2lρ[11]=−10−10[11](1.2)
边界条件
在已知两端均为Dirichlet
条件时,可以忽略矩阵de。于是可以构造下面的矩阵:
4.425×10−10⎣⎢⎢⎢⎢⎢⎡1−1000−11+1−1000−11+1−1000−11+1−1000−11⎦⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎡V1V2V3V4V5⎦⎥⎥⎥⎥⎥⎤=−10−10⎣⎢⎢⎢⎢⎢⎡12221⎦⎥⎥⎥⎥⎥⎤(1.3)
化简后得:
⎣⎢⎢⎢⎢⎢⎡1−1000−12−1000−12−1000−12−1000−11⎦⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎡V1V2V3V4V5⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡−0.2259887−0.4519774−0.4519774−0.4519774−0.2259887⎦⎥⎥⎥⎥⎥⎤(1.4)
在已知V0=1V 的情况下,可以将(4) 左边的矩阵的首行首列取消掉,并且将V1 的值替换到方程(4) 的左右两边:
⎣⎢⎢⎢⎡2−100−12−100−12−100−11⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡V2V3V4V5⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡−0.4519774+1−0.4519774−0.4519774−0.2259887⎦⎥⎥⎥⎤(1.5)
同理,可以应用第二条边界条件V5=0V:
⎣⎢⎡2−10−12−10−12⎦⎥⎤⎣⎢⎡V2V3V4⎦⎥⎤=⎣⎢⎡−0.5480226−0.4519774−0.4519774+0⎦⎥⎤(1.6)
则根据方程(6),则可以求解:
⎣⎢⎡V2V3V4⎦⎥⎤=⎣⎢⎡0.0720339−0.4039548−0.4279661⎦⎥⎤(1.7)
后处理阶段
在已知每条线段的电压V1e,V2e 的情况下,则可以通过插值函数(形函数)获取每一点的电压:
V(ξ)=V1eN1(ξ)+V2eN2(ξ)(1.8)
又因为ξ=x2e−x1e2(x−x1e)−1,所以:
V(ξ)=V1ex2e−x1ex2e−x+V2ex2e−x1ex−x1e(1.9)
二阶有限元

二阶有限元中,每个元素应包含三个节点。那么在重置坐标系时,应取:
ξ=x2e−x1e2(x−x3e)(2.1)
其中x3e=2x2e+x1e。
对应的,新坐标系下的插值函数应有如下形式:
V(ξ)=V1eN1(ξ)+V2eN2(ξ)+V3eN3(ξ)(2.2)
以插值函数N1(ξ) 为例,要求:
N1(−1)=1N1(0)=0N1(1)=0
假设N1(ξ)=cξ(ξ−1),则根据上面的条件可以确定系数c=21。同理可得:
⎩⎪⎪⎨⎪⎪⎧N1(ξ)=2ξ(ξ−1)N2(ξ)=2ξ(ξ+1)N3(ξ)=(1+ξ)(1−ξ)(2.3)
确定系数
Kije=ϵe∫x1ex2e(dxdNi)(dxdNj)dx=ϵe∫−1+1(dξdNidxdξ)(dξdNjdxdξ)2ledξ=le2ϵe∫−1+1dξdNidξdNjdξ(2.4)
根据上式,可以计算:
Ke=3leϵe⎣⎢⎡71−817−8−8−816⎦⎥⎤(2.5)
同样可以知道,这是一个对称矩阵。
fie=−2leρve∫−1+1Niξdξ=−6leρ0⎣⎢⎡114⎦⎥⎤(2.6)
而Dxe(x)=−ϵedxdV(x) 保持不变。
二阶有限元中中组装元素
组装元素与上面例题中的步骤一样。刚开始最好还是使用循环去完成而不是直接用矩阵,否则容易出错。
二阶有限元中的后处理
同上面的例题。
三阶有限元

于是在更高阶的有限元处理中,我们需要做的也就是更新Ke,fe。其余的处理步骤一样:
Ke=40leϵe⎣⎢⎢⎢⎡148−13−18954−1314854−189−18954432−29754−189−297432⎦⎥⎥⎥⎤(3.1)
fe=−8leρ0⎣⎢⎢⎢⎡1133⎦⎥⎥⎥⎤(3.2)
d 矩阵不变。
d=⎣⎢⎢⎢⎢⎢⎢⎢⎡−ϵ(1)dxdV∣x=x1(1)0⋮0−ϵ(Ne)dxdV∣x=x2(Ne)⎦⎥⎥⎥⎥⎥⎥⎥⎤
看完一维有限元基础之后,还是有一种囫囵吞枣的感觉,估计再用Python 写一遍就好了吧。多看两遍总是能理解的!