Hi all,

I'm starting to migrate my code to DMDAs to use DMPlex but I have troubles that 
neither the documentation nor google can answer.

1) I want to to traverse the DAG associated to the DMPlex in the following way: 
assuming I have a DMPlex of dimension 2, I have a point representing a cell (2 
dimensional) and I want to find all neighbouring 2-dim cells. A way to do this 
may be to 
GetCone and then follow the arrows in reverse in the DAG from height 2 to 
height 1. Any 
routine to do that? I looked at the DM documentation page but cannot find the 
proper 
one. I tried all the GetAdjacency routines but none of them seems to give the 
right 
implementation. I am thinking of something like GetCone or GetSupport, but from 
2-
dim cell to adjacent 2-dim cell.

2) I've noticed that the numbering concerning the Height in the BFS search of 
the 
DMPlex section is a bit inconsistent. What I mean is that if want all the 2-dim 
cells of my 
DMPlex I should do:
DMPlexGetHeightStratum(dm, d, &pStart, &pEnd);
with d = 0, but if I'd like to call
DMPlexCreateSection
and create DOFs on the 2-dim cell, I have to do:
numDof[f*(dim+1)+d]     = 2;
with d = 2.
Is there any reason behind that? I was trying with some mock example and fell 
into this 
trap a couple of times.

3) This brings me to the following: I've noticed that the documentation is a 
bit "sparse", 
and I'd really like to contribute, especially improving the APIs documentation. 
I am not 
native speaker and new to all the DMPlex business but if you devs think this 
may be 
useful, I'll be glad to help.
Would this be of any use to you?

4) I had problems loading meshes from Gmsh and, as far as I understood, it 
seems that is 
not PETSc preferred mesher (got problems with boundaries IS). PETSc seems to 
like this 
ExodusII format, any suggestion of a tool similar to Gmsh that creates ExodusII 
meshes?

Sorry for the length and thanks in advance.

Best,
Filippo

Reply via email to