I have some problems using DMPlex on unstructured grids in 3D. After I have created the DMPlex and assigned dofs (3 dofs on each node), I run into some problems when assembling the global stiffness matrix. I have created a small example in the attached cc file. My problems are:
* It seems like the matrix (created using DMCreateMatrix) contains no non-zero elements. I was under the impression that the sparsity pattern of the matrix would be created automatically when the dofs has been assigned to the default section. * (Probably as a consequence of this) when assigning values to the matrix I get an: "Argument of of range. New nonzero at (0,0) caused a malloc. Use MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE) to turn off this check" * Finally, I'm reading the nodes of each element using the get-transitive-clojure (where I test if each point is inside the node range), but I have a hard time understanding if the returned values are sorted. And if not, how to sort the values (e.g. using orientation which the get-transitive-clojure function also returns). I hope someone can guide me in the right direction :) Kind regards, Morten
dmplex_mat_problem.cc
Description: dmplex_mat_problem.cc