FBC 文件

概述

FBC 文件的主要内容是书写偏微分方程弱形式中的边界积分项的表达式。基于 FBC 文件,生成器会自动生成与边界积分相关的单元子程序,并进行相应的局部坐标变换。因此,当待求解的微分方程存在第二类或第三类边界条件时,由于必然存在边界积分项,此时编写 FBC 文件是必需的。对于第一类边界条件,如果是定值或仅随空间坐标作简单变化,通常可在前处理时通过 GiD 操作界面来施加;如果是随时间变化的较为复杂的动态边界,则需要结合 FBC 文件和点单元通过 "置大数法" 来实现。

下面各小节分别阐述使用常规边界单元和点单元时的注意事项,在每小节的最后均附有具体示例与说明。

常规边界单元

对于常规的边界单元,FBC 文件的编写方法与 PDE 文件的编写方法基本相同。最大的区别在于,因为 FBC 文件描述的是偏微分方程弱形式所包含的边界积分项,所以它使用的单元在几何上要比相应 PDE 文件使用的单元低一维。

注意事项

编写 FBC 文件时,主要需要注意以下几点:

举例说明

范例 1

defi
disp u  
coor x  
shap %1 %2  
gaus %3
mass %1 0.0
mate ea eb 1.4e-2;8.0e1;

stif  
dist=+[u;u]*ea

load=+[u]*eb*ea

end

本例选取自二维瞬态热传导问题的 FBC 文件。因为体积分是二维的(对应 PDE 文件里的 coor x y),所以相关联的边界积分是一维的(对应此处的 coor x)。 由于 PDE 文件中的 DEFI 信息段使用了 mass 语句,为了与其保持一致,这里的 FBC 文件也在 DEFI 信息段对 mass 项进行了声明,并将其定义为零矩阵。更方便地,也可以选择不使用 mass 行,直接将其留空。

范例 2

disp u
coor x
shap %1 %2
gaus %3
coef gx gy
mate ex ey 0 0
 
stif
null

load=+[u]*(ex*gx+ey*gy)
 
end

本例展示了边界荷载随整体空间坐标变化的情况。当前坐标系为 2dxy,coef 语句有 2 个变量 gx 和 gy,分别代表了 x 方向和 y 方向的整体坐标分量。

如果存在其他系数函数,例如多场耦合或非线性迭代的情况,只要将这些系数函数按顺序排放在 gx 和 gy 之前即可。这与 PDE 文件的语法规定是完全一样的。

点单元

点单元也叫弹簧单元,单元标识符为 s1,是一类特殊的边界单元。使用时通过前处理操作将其施加到指定的节点上,可以用于定点地修改单元矩阵和荷载向量,非常适合用来实现随时间和空间变化的动态边界条件。它保留了 PDE 和 FBC 文件的大部分语法规则,仅对部分内容进行了删减。

注意事项

使用点单元时,除了上述常规的边界单元的注意事项,还需要注意以下几点:

举例说明

范例 1

defi
disp u
coor x y
mate big ek 1e20 1e1

stif
$c6 ef=ek*(10+time*2+y*5)
dist=+[u;u]*big

load=+[u]*big*ef

end

本例选取自二维瞬态热传导问题的 FBC 文件。这里通过 "置大数法" 实现了第一类边界条件,即强制边界条件。不但如此,这个边界条件还是随时间和空间坐标动态变化的。通过利用 $c6 在 STIF 信息段插入 Fortran 语句,轻松地建立起了边界约束值与时间(time)和 空间纵坐标(y)之间的关系。

范例 2

defi
disp u,v
coor x,y
func ss
mate tx ty ek ef 1.0 1.0 1e8 0.0

func
ss = +[u]*tx+[v]*ty

stif
dist=+[ss;ss]*ek

load=+[ss]*ef

end

本例选取自弹性力学问题,包含 2 个位移自由度。这里通过 FUNC 段的 ss 自定义函数,在 [tx, ty] 方向设置了一个刚度为 ek 的弹簧,并施加了大小为 ef 的荷载。不难发现,通过改变 ek 和 ef 的参数值,就能够轻松实现全部的三类边界条件。用户可通过自行设计数值实验,来体会点单元的奥妙。




打赏一个
取消

感谢您的支持,我们会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝或微信扫一扫,即可进行扫码打赏哦