记录 JuAFEM 3 -- close!()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mifangdebaise/article/details/82934576

DofHandler.jlclose!()

以下说明,针对四边形网格上的 Q1


为了方便检验程序,我们生成一个 [-1,1]x[-1,1]2dim 四边形网格,以及生成 dh

grid = generate_grid(Quadrilateral, (2, 2));
dh = DofHandler(grid)
push!(dh, :u, 1)
close!(dh);

网格如图中
在这里插入图片描述
其中

  • 1, 2, 3, 为 node 的编号
  • Circle 1, Circle 2, Circle 2, 为 cell 的编号
  • (1), (2), (3), 为 cell dofs 的编号 (Q1元)

分别可以通过输出 grid.cells, grid.nodes, dh.cell_dofs 来检验.


那么,整个 close!() 函数其实就是用来分布 dofs 的,这个 dofs 并不依赖 node 的编号,如果我自己写的话,还是会通过 node face 等的编号来分布 dofs.
另外 dh.cell_dofs_offset 表示记录每个 celldofs 的偏移量(offset),并且为了方便用 dh.cell_dofs_offset 多记录了一个单元,即

  • Circle 1 个单元,dh.cell_dofs_offset[1] == 1
  • Circle 2 个单元,dh.cell_dofs_offset[2] == 5 # (1 + 4), for Q1-element, there are 4-dofs in one cell
  • Circle 3 个单元,dh.cell_dofs_offset[3] == 9 # (1 + 2*4)
  • Circle 4 个单元,dh.cell_dofs_offset[4] == 13 # (1 + 3*4)
  • dh.cell_dofs_offset[5] == 17 # (1 + 4*4)

猜你喜欢

转载自blog.csdn.net/mifangdebaise/article/details/82934576