我在结构化网格中有一个有限差分问题PETSc
,DM
上下文帮助我非常容易地创建矩阵,DM
给我一个矩形域的整个矩阵,这对我很好,因为我正在使用这个参考系统,但我有一个不规则的形状在我的问题中,这意味着我没有在这个矩阵中使用很多条目。如何在矩阵组装中不分配此空间并告诉KSP
上下文不要使用此条目来解决问题?
我的代码是这样的:
DMDACreate2d()
DMCreateMatrix()
DMDAGetCorners()
! loop along the local matrix
DO i,1,width_y
DO i,1,width_y
IF (IsInsideProblemDomian) THEN
SetMatStencil()
MatSetValuesStencil()
END IF
END DO
END DO
MatAssemblyBegin()
MatAssemblyBegin()