petsc 结构化数据使用


       前文讲到petsc两类基本数据对象(mat, vec)。而petsc的这两类数据对象默认都是按一维存储和创建的。实际pde问题,往往是2维或者3维的。故petsc内建一些映射函数,将默认的一维数据映射成逻辑上的多维数组。本文主要介绍向规则的2D数组映射的函数。


        petsc中逻辑上的多维数组称为 "DA"  ( distributed array), 创建一个2D DA:

 DACreate2d(MPI_Comm comm, DAPeriodicType wrap, DAStencilType stencil_type, PetscInt M, PetscInt N, PetscINt m, PetscInt n, PetscInt dof, PetscInt s, PetscInt *lx,  PetscInt *ly, DA *da)

 /*      comm MPI通信容器

         wrap  周期边界

         stencil_type  差分模式(box, star)

         M , N  x, y方向整体空间节点数

         m, n , x, y方向cpu节点数

         dof      空间节点自由度数
         s       差分模式的厚度(即,how many 层数 空间节点)

         *lx, *ly   cpu节点所管辖的部分节点数组

         *da,  所创建DA对象  *

       获取该DA对象的全局及局部信息(即分配到cpu节点上的单元信息)采用一 DAGetLocalInfo (DA da, DALocalInfo *info) ,其中

typedef
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值