On 11/10/2012 06:33 PM, Matthew Knepley wrote: > On Sat, Nov 10, 2012 at 7:14 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote: >> On Sat, Nov 10, 2012 at 5:31 PM, Matthew Knepley <knepley at gmail.com> >> wrote: >>> >>> I was being too pessimistic. You can assign an intermediate node to any >>> set >>> of shared vertices, but I am not sure whether you start from the top or >>> bottom, >>> and the hard part is preallocation. >> >> >> Hmm, I'm not sure how to do hanging nodes, but for a conforming mesh >> starting with cell-to-vertex c2v[...] >> >> # build inverse map >> v2c = defaultdict(lambda v:[]) >> for c in cells: >> for v in c2v[c]: >> v2c[v].append(c) >> >> # find common subsets >> edges = set() >> c2e = defaultdict(lambda c:set()) >> for v in vertices: >> for (v1,c1,v2,c2) in sorted_vertices_appearing_in_exactly_2_cells(v2c[v]); >> edges.add((v1,v2)) >> c2e[c1].add((v1,v2)) >> c2e[c2].add((v1,v2)) >> >> # repeat using edges to bound cell-to-face >> ... >> >> >> >> The problem with this is that you don't automatically get consistent >> orientation. If you need to work with basis functions, you need to orient, >> in which case the ordering produced by the procedure above needs to be >> fixed. >> >> In my opinion, that orientation is critical, such that connectivity without >> topology is of limited value. The topological dimension and number of >> vertices is just not sufficient to identify the topology of an element. For >> example, a hex can be collapsed to 7 vertices via an edge or across the >> middle of a face. > > Definitely, that is much harder than the topology, and where I need specific > stuff for non-simplices, but it might be possible to use the initial > orientation > of vertices. > > Matt >
This is a classic compute vs. store problem. I solve that with the CN (Canonical Numbering) class in MOAB, http://trac.mcs.anl.gov/projects/ITAPS/browser/MOAB/trunk/src/moab/CN.hpp. - tim > -- > 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 > -- ================================================================ "You will keep in perfect peace him whose mind is steadfast, because he trusts in you." Isaiah 26:3 Tim Tautges Adjunct Professor, Engr. Physics (tautges at engr.wisc.edu) University of Wisconsin-Madison phone: (608) 263-8485 1500 Engineering Dr. fax: (608) 263-4499 Madison, WI 53706 -- ================================================================ "You will keep in perfect peace him whose mind is steadfast, because he trusts in you." Isaiah 26:3 Tim Tautges Argonne National Laboratory (tautges at mcs.anl.gov) (telecommuting from UW-Madison) phone (gvoice): (608) 354-1459 1500 Engineering Dr. fax: (608) 263-4499 Madison, WI 53706
