Title: Creating geomodels with Generalized Maps
1Creating geomodels with Generalized Maps
Marcus Apel, 2004based on works of the Gocad
Research Group, Nancyreference J-L Mallet
 Geomodeling , Oxford University Press 2002
2Reminders How are objects defined?
- cellular partition sub-division into cells in
N-dimensions - connectivity with other objects
- embedding
- geometry in 3d space
- numerical properties
3cellular partition and connectivity - incidence
graph
- describes all possible paths to go from a n-cell
to a 0-cell, with only connecting k-cells to
(k-1)-cells, ngtkgt0
4incidence graph
- nodes ? Cells, edges ? CellViews
- incidence cell C is an element of CellView w.
53 relationship classes in a GMap
- a cell Ci is i-adjacent to another cell Ck, iff
- ki
- a (i-1)-cell incident to both can be found, or
(i, k) are incident to at least one common
(i1)-cell - example 2 triangles (i,k2) sharing an edge
- a cell Ci is a sub-cell of Ck, iff
- iltk
- Ci can be reached by descending the incidence
graph - example polygon (k2) with sub-cells edges (i1)
and vertices (i0) - the k-adjacency of a i-cell Ci contains all
k-cells Ck such that Ci is a subcell of Ck. - example all polyhedra (k3) connected to a
vertex (i0)
6adjacency
7adjacency
8adjacency
9adjacency classes
10darts, involution, GMap
- a dart corresponds to a path (CellView) in the
incidence graph - adjacency relations are translated in relations
between pairs of darts - a dart has N1 ai functions (maps), defined from
Ai adjacency relations - for example a0 connects each pair of darts
(d1,d2) a0(d1)d2 a0(d2)d1 ? involution - a N-GMap D, (a0, ..., aN) is a set D of darts
with a set of N1 ai involution functions
11incidence graph
12Simplified data structure of a GMap
- struct GMap SetltDartgt d
- struct Dart Dart alphaN1 Embedding
embN1
13GMap - Example
- GMapd1a0,d2a0,..., d3a1 // darts for 63
involutions - Dart d1a0d2 emb1,
- Dart d2a0d1 emb2, ...
- Embedding emb1coordxyz, p, ...
F1
E1
E2
E3
d2
d1
V1
V2
V3
14Functions acting on a GMap
- the basic function traversing the orbit of a
dart d - iterating the set of darts that can be reached by
a given set of ai involutions
15Basic operations on GMaps
- recursive subdivision an GMap of dimension N may
be thought of a set of GMaps of dimension N-1
sewn along cells of dimension N-2
(N-2)-cells are sewn (N-3)-cells etc. until
vertices are reached - example a volume can be represented by polyhedra
sewn along their faces a polyhedron is
represented by its boundary polygons sewn along
their edges.
16Basic operations on GMaps
- create new GMap
- delete GMap
- create isolated dart and add it to a GMap,
involutions are initialized as ai(d)d - delete a dart from a GMap
- create an ai involution between 2 darts
- delete an ai involution between 2 darts
17Sew algorithm - create a N-GMap from (N-1)-cells
- 2 orbit traversals of the (N-1)-cells along which
the N-cell will be sewn, and setting the
involution - sew(d1,d2,N) for (d'1 in lt gt(d1),
d'2 in lt gt(d2) ) - dispatchCellEmbedding(d'1,d'2)
- d'1-gtaNd'2
- d'2-gtaNd'1
-
-
- how does unsew work?
18Representing Objects with G-Maps hierarchical
GMaps with Frame
1) Represents the objects boundaries
(Macro-topology)
19Representing Objects with G-Maps hierarchical
GMaps with Frame
2) Can be used to subdivide space in regions
20Representing Objects with G-Maps
21Representing 3d-Objects with G-Maps
- 3 glued surfaces along a radial line
- free edges a3(d) ? a2(d)
- glued edges a3(d) a2(d)
22Construction of a model
- create empty (N1) dimensional model M
- create a cellular GMap-partition L(W) of the
N-dimensional dividing wall W - create Frame F(W) such that L(W) is the Lattice
of F(W) and add W to model M - repeat (2) and (3) for a set of N-dividing walls
? MM(W1,..., Wi) - if necessary, use the glue ("sew") operator to
weld frames of the model M
23Building a Model with G-Maps (I)
24Building a Model with G-Maps (II)
25Building a Model with G-Maps (III)
26Building a Model with G-Maps (IV)
Horizon
Fault
Region
27Strong points of G-Maps
- Strong mathematical basis
- - data structure
- - operators
- only 2 concepts to understand darts and
involution - uncoupling of topology and geometry
- generically defined in N dimensions
- generic functions work for for N-cells
28more GMap model examples