On Thu, Jan 30, 2014 at 12:19 PM, Cedric Doucet <cedric.dou...@inria.fr>wrote:
> Hello, > I tried to use DMPlexCreateFromDAG function to create a DM structure from > a hybrid mesh. > To understand how it works, I look at ex5.c file. > Unfortunately, there are some things that I do not understand. > 1. Why does coneSize lists faces of cells first, then faces of vertices > and finally faces of edges (in 2D)? Listing faces of vertices, then faces > of edges and finally faces of cells is not simpler? > This is really about what order you number points. I wanted to support meshes with just cells and vertices, as well as those with face and edges. I also wanted to be able to convert between them. Thus it made sense to leave the cell and vertex numbers invariant under this change. I still think this is the best pragmatic alternative. > 2 What does coneOrientations contain? For two counterclockwise oriented > triangles sharing an edge e={v0,v1}, I understand that {v0,v1} is the right > oriented edge for the second triangle (and e for the first one) but what > is the meaning of value -2? I read that it is -(o+1) with o=1 but why does > o equal 1 in this case? > Right now, orientation o = <sign><start> means: <sign>: + means traverse in cone order - means traverse in the reverse of cone order <start>: cone point to start iteration on if <sign> is -, then start on point -(<start>+1) Thus -2 means start on point 1 and go in reverse order, so for an edge that would be {1, 0} which is what you want. What we should really have is <start> identify a group element from the symmetry group of the point, and <sign> indicate inversion. However, that will be a big rewrite and needs to be motivated by applications. Matt Thank you very much for your help! > Best regards, > Cédric Doucet > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener