An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The...

43
ICES Report 03-20 An Interface Between Geometrical Modeling Package(GMP) and Mesh-Based Geometry (MBG) Dong Xue, Leszek Demkowicz Texas Institute for Computational and Engineering Science The University of Texas at Austin Austin, TX 78712 Adam Zdunek Swedish Aeronautical Institute Abstract This document presents the implementation details of an interface between Geometrical Modeling Package(GMP) and Mesh-Based Geometry (MBG). The interface uses connectivi- ties, i.e., the topology information stored in MBG, and partitions a 3D geometrical object into a FE-like mesh of curvilinear hexahedra. Using the interface, the GMP then automatically constructs a parameterization for each hexahedron in the GMP mesh, which later can be used to generate the actual FE meshes and support geometry updates during mesh refinements. Key words: GMP, MBG, topology, geometric primitives,connectivities. 1

Transcript of An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The...

Page 1: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

ICES Report 03-20

An Interface Between GeometricalModeling Package(GMP) and Mesh-Based

Geometry (MBG)

Dong Xue, Leszek Demkowicz

Texas Institute for Computational and Engineering ScienceThe University of Texas at Austin

Austin, TX 78712

Adam Zdunek

Swedish Aeronautical Institute

Abstract

This document presents the implementation details of an interface between GeometricalModeling Package(GMP) and Mesh-Based Geometry (MBG). The interface uses connectivi-ties, i.e., the topology information stored in MBG, and partitions a 3D geometrical object intoa FE-like mesh of curvilinear hexahedra. Using the interface, the GMP then automaticallyconstructs a parameterization for each hexahedron in the GMP mesh, which later can be usedto generate the actual FE meshes and support geometry updates during mesh refinements.

Key words: GMP, MBG, topology, geometric primitives,connectivities.

1

Page 2: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Acknowledgment

The work has been done in collaboration with Dr. Timothy Tautges from Sandia National Lab,Jessica Zhang and Dr. Chandrajit Bajaj from TICES.

Contents

1 Introduction 4

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Mesh Based Geometry (MBG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Geometrical Modeling Package (GMP) . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 The report structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Geometry and Topology Information 5

2.1 Geometry and Topology in MBG . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Geometry and Topology in GMP . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Data Structure 8

3.1 Data Structure in MBG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 Data Structure in GMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 The approach 11

4.1 Geometry construction and mesh generation process . . . . . . . . . . . . . . . . 13

4.2 Element Blocks creation and exporting process . . . . . . . . . . . . . . . . . . . 18

4.3 Linear hexahedra model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.4 Curvilinear hexahedra model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.5 Exporting standard GMP input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5 Modeling of Tools with tilted loop antennas 29

5.1 Geometric model construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2 Mesh generation process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.3 Geometric Model of the Tool in GMP . . . . . . . . . . . . . . . . . . . . . . . . 32

2

Page 3: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

6 Surface Reconstruction Models 34

6.1 Surface Reconstruction and 3D geometric modeling . . . . . . . . . . . . . . . . . 34

6.2 Geometric Model of the head in GMP . . . . . . . . . . . . . . . . . . . . . . . . 34

7 Other Examples 38

7.1 Example 1: A solid sphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.2 Example 2: T-type antenna model . . . . . . . . . . . . . . . . . . . . . . . . . . 39

8 Current Work 41

9 Appendix 42

3

Page 4: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

1 Introduction

1.1 Motivation

The success of Finite Element (FE) or Boundary Element (BE) simulations depends much on aprecise representation of the geometry and appropriate mesh generation method. The modelingand mesh generation issues become especially sensitive for adaptive methods where we strive forhigh accuracy of simulations.

The discipline of geometric modeling is an interrelated, although somewhat loosely integrated,collection of mathematical methods that we use to describe the shape of an object [1]. In the Ge-ometrical Modeling Package(GMP), developed at TICAM [2, 3], a 3D object is represented witha FE-like mesh of curvilinear hexahedron or prismatic blocks. The geometry of the object is pre-scribed then by constructing parameterizations for each of the blocks. The topology(connectivities)information for the partition is generated by hand.

For practical engineering problems, this method is slow and expensive. The main goal of thepreceded work is to reduce the time, i.e., the user time, it takes to generate the connectivities for hexmeshes of complicated, interlocking assemblies. In this report, we present two pursued researchdirections to make the preparation of such data fully automatic.

The first approach is based on an interface with CUBIT, a mesh generation tool suite developedat Sandia National Labs. We use the Exodus II international standard to import Mesh Based Geom-etry, which has the necessary connectivities generated by CUBIT, into our Geometrical Modelingpackage. Then we run GMP to construct the actual parameterizations.The technique is used togenerate geometric models and corresponding

���meshes for Induction Logging Instrument, see

details in Section 5.

In the second approach, we interface GMP with coarse meshes generated from MRI scans usinggeometry reconstruction techniques, developed at Center for Computational Visualization(CCV)at TICAM. The work is heading toward modeling of EM waves in the human head, see details inSection 6.

1.2 Mesh Based Geometry (MBG)

The most popular geometry interface standards are: ACIS Geometry and Mesh-Based Geome-try(MBG). ACIS Geometry, a proprietary format developed by Spatial Technologies, can be ex-ported directly from several commercial CAD packages, including Solid Works, AutoCAD, andHP PE/Solid Designer. ACIS Geometry includes ACIS Models, FASTQ Models, STEP Files andIGES Files.

4

Page 5: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

In contrast to the ACIS geometry, Mesh Based Geometry(MBG) uses a faceted representations,and can be generated in either an Exodus II format file or a facet file. In many cases, the finiteelement model will use MBG as coarse-meshed object or directly as underlying geometry. In ourcase, the GMP utilizes connectivities (topology information) generated from CUBIT to constructthe actual parameterizations. Thus, we use the Mesh Based Geometry, exported into Exodus IIformat, as input data for our interface with GMP.

1.3 Geometrical Modeling Package (GMP)

The recently rewritten and upgraded Geometrical Modeling Package[2] supports the constructionof exact parameterizations for a general class of 2D (BEM) [4] and 3D (FEM) [5] manifolds in �

���.

The package uses two techniques. The first one is the standard transfinite interpolation withlinear blending functions. The second one is a unique technique of implicit parameterizationsdeveloped at TICAM. Once the topology information (connectivities) for a 3D manifold is known,i.e. the object can be partitioned into a FE-like mesh of curvilinear hexahedra, the GMP constructsa parameterization for each hexahedron in the GMP mesh which later can be used to generate theactual FE meshes of arbitrary high order, and make geometry updates during mesh refinements.

1.4 The report structure

This report is structured as follows: Section 1 provides the motivation for developing the interface,and introduces MBG and GMP. Section 2 discusses the fundamental issues of geometry and topol-ogy. Section 3 presents data structure in MBG and GMP respectively. Section 4 lists the main stepsof the algorithm used in the two discussed interfaces, i.e., input sandia.f and input head.f. Section5 and Section 6 present the processes of constructing parameters for the Tool Model and the HeadModel respectively. Section 7 discusses several nontrivial examples. In Section 8 we discuss ourcurrent work . Appendix 9 lists the interface routines.

2 Geometry and Topology Information

We use geometry to define where a topological entity lies in space [1]. For example, a curve maybe represented by a straight line, a quadratic curve, or a b-spline. Thus, an element of topology(vertex, curve, etc.) can have one of several different geometric representations. Topology isthe manner in which geometric entities are connected within a solid model. Complex modelsrequire considerable attention to their topology. The MBG and GMP have similar but different

5

Page 6: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 1: Primitives of MBG supported in CUBIT

representations and definitions of Geometry and Topology.

2.1 Geometry and Topology in MBG

We discuss first the MBG standard supported in CUBIT. The geometric primitives are pre-definedtemplates of three-dimensional geometric shapes. Primitives include the Brick, Cylinder, Torus,Prism, Frustum, Pyramid, and Sphere, see Fig. 1.

Boolean operations are used to modify the geometry and/or the topology of existing solids.Boolean operators supported in CUBIT include imprint, intersect, separate, section, subtract, andunion. The geometry model serves then as the basis for mesh generation in CUBIT.

The topological entities of MBG in Cubit consist of Vertexes, Curves, Surfaces, Volumes, andBodies. Each topological entity has a corresponding dimension. Each topological entity is alsobounded by one or more topological entities of lower dimension. For example, a surface is boundedby one or more curves, each of which is bounded by one or two vertexes.

A Body within CUBIT is defined as a collection of other pieces of topology, including Curves,Surfaces and Volumes. Although a Body may contain groups of surfaces or volumes, for mostpractical purposes within the CUBIT environment, a single Volume or Surface will belong to asingle body. For this reason, in many instances the term Volume and Body are used interchangeably.An important distinction, however, is that Bodies are typically used for geometry operations such

6

Page 7: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

x T

x Rx 1

x 2

η2

η2

η1

η1

I II

III

IV

V

01

1

1

10

Figure 2: A 2D example of an object and its corresponding parameterizations

as webcut or transformations, while Volumes are used for mesh generation operations.

2.2 Geometry and Topology in GMP

Geometrical objects in GMP are classified into global entities and local entities. The global entitiesare Surfaces, Points, Curves, Triangles, Rectangles, Prisms, and Hexahedra. All global entities areprescribed in a global Cartesian system of physical coordinates ��� , �����

, ��� , , with = 2 fortwo dimensional problems, and = 3 for three dimension problems. Each of the entities has acorresponding catalog of objects. The local entities are Vertexes, Edges, Faces.

Each of the geometrical objects is identified with its corresponding parameterization. For ex-ample a potato-like object shown in Fig. 2, can be represented as the union of three rectanglesand two triangles. Mathematically, each triangle or rectangle is identified with its correspondingparametrization. More specifically, rectangle II is a transformation � � from reference coordinatesinto physical coordinates. In the same way, triangle I can also be represented by a transformation��� . In this case, five mappings are used to parameterize the geometric object and we should treatthem as describing separate objects.

Conceptually, the parameterizations are classified into two classes: explicit parameterizations,and implicit parameterizations. In the first case, a mapping is defined explicitly by a specificformula. The simplest examples include objects which are characterized uniquely by entities of

7

Page 8: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

lower dimension, and a specific interpolation rule, for example, a segment of straight line is definedby its endpoints, a plane triangle is defined by its edges. In the second case the mappings aredefined implicitly by specifying systems of nonlinear equations to be solved for coordinates x, y,and z.

3 Data Structure

A data structure is a specialized format for organizing and storing data. General data structuretypes include the array, the file, the record, the table, the tree, and so on [6]. Any data struc-ture is designed to organize data to suit a specific purpose so that it can be accessed and workedwith in appropriate ways. The data structure in MBG and GMP are different because of differentalgorithms working on it.

3.1 Data Structure in MBG

The MBG database, such as ExodusII in CUBIT, contains mechanisms for grouping elements intoElement Blocks, which are used to define different types of elements. ExodusII also allows for thedefinition of groups of nodes and element sides in Nodesets and Sidesets, respectively. Elementblocks are the method CUBIT uses to group related sets of elements into a single entity. Accordingto the corresponding data structure in GMP, see Section 3.2, the interface with MBG uses ElementBlocks to store different connectivity information.

Element Blocks (also referred to as simply, Blocks) are a logical grouping of elements, allhaving the same basic geometry and number of nodes. All elements within an Element Block arerequired to have the same element type. Access to an Element Block is accomplished through auser-specified integer Block ID, see details in Section 4.2. The specific element types vary bythe number of nodes used to define the element, and result in different orders of accuracy of theelement. The element types avarable for each basic element type defined in CUBIT are summarizedas following,

VOLUME 8-node hexahedral elements (HEX8) will be generated.for 3 dimensional problems

SURFACES 4-node shell elements (SHELL4) will be generated.for 2 or 3 dimensional problems

CURVES 2-node bar elements (BAR2) will be generated.

8

Page 9: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

for 2 or 3 dimensional problems

NODES 1-node elements (SPHERE) will be generated.for 1, 2 or 3 dimensional problems

Element types can be set for individual Element Blocks, either before or after meshing hasbeen performed. The preferred method for defining blocks is to use geometric entities such asvolumes, surfaces or curves. Blocks can also be defined using mesh entities. If a block is definedas a geometric entity, each of the elements owned by the geometry is automatically assigned tothe block. Deleting or remeshing the geometry automatically changes the set of elements groupedinto the block. If mesh entities are used to specify a block, deleting the mesh will also delete theelements from the block.

3.2 Data Structure in GMP

The new edition of GMP has a new data structure which is based on user defined objects and sup-ported by FORTRAN90. With descriptive names allowed in FORTRAN90 and naturally definedgeometrical objects, the logic of the code is easier to follow.

We define seven different geometrical objects listed in Table 1. Each of the definitions in-cludes a complete connectivity information, independent of a particular Type of the entity, and twodynamically allocated arrays (pointers) for storing a number of integer and real attributes of theobject. The geometrical objects are placed then in seven separate global arrays with the same name1.

Entity Character Integer Integer Pointer Real Pointer

Surface Type Idata RdataPoint Type NrCurv CurvNo , Idata RdataCurve Type EndPoNo(2) , NrFig FigNo , Idata RdataTriangle Type EndgeNo(3) , BlockNo(2) IdataRectangle Type EdgeNo(4) ,BlockNo(2) IdataPrism Type FigNo(5) IdataHexahedron Type FigNo(6) Idata

Table 1: The data in module for different entities

1We add ’s’ to the names, e.g., SURFACES for storing surface objects

9

Page 10: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 3: Local face orientations in reference hexahedron

Additionally, a number of global parameters are introduced:NDIM - dimension of the problem

= 2 for plane problems= 3 for space problems

MANDIM - dimension of the manifold (2 or 3)NRPOINT - number of pointsNRCURVE - number of curvesNRTRIAN - number of trianglesNRRECTA - number of rectanglesNRPRISM - number of prismsNRHEXAS - number of hexahedraNRSURFS - number of surfaces

The structure of our code is open. New definitions can be easily added to the catalogs to enhancethe existing capabilities of the code.

The only hexahedron supported by the package now is Transfinite interpolation hexahedronwith linear blending functions, see Fig. 3. The parametrization for the hexahedron is obtained byadding its vertex, edge and face contributions. The local ordering of vertexes, edges and faces andthe orientations for each of the twelve edges and six faces is shown in Fig. 3. The topological

10

Page 11: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

information will be used in Section 4.3 to construct the simplest trilinear hexahedra parameteriza-tion.

One matter must be very strongly emphasized -the compatibility of parameterizations. Webriefly explain the issue. Parameterizations for adjacent hexahedra must be compatible with eachother. Roughly speaking, when we use either of the two parameterizations, we must obtain thesame FE mesh. The compatibility condition is handled in a hierarchical manner. We begin firstby setting coordinates of points. The curve parameterizations are constructed next in such a waythat they conform to the existing vertex coordinates. Next, the parameterizations for rectanglesmust conform to the parameterization of the curves. And finally, in the most complicated case, theparameterizations for hexahedra must conform to the parameterizations of the rectangles

The local orientation of a face of the hexahedron can be illustrated with a local face system ofcoordinates. The local orientations for each of the six faces of the reference hexahedron correspondto the lexicographic coordinates,

bottom ����� ��� ����� ��� �� � � ���top ����� ��� ����� ��� �� � � � �front ����� ��� ������ ��� � � � ��� right � ��� � � � �� ��� ���� � ��� rear ����� ��� ������ � � � � � ��� left � ��� ��� � �� ��� ���� � ���

(3.1)

There are now eight possible transformations that relate local and global reference coordinatesfor a face 2.They are depicted in Fig. 4.

Let � � be the parameterization for one of the hexahedron faces � . We request that

��������������� �"!#!$! � � �%���&! (3.2)

where �'� �"! reflects the orientation of the face, and corresponds to one of the eight cases depictedabove, �����(�"! is the local coordinates of the face, and �)�*�(��! is the parameterization of the hexahe-dron.

4 The approach

We present here only the main steps of the algorithm, coded in routines input sandia and in-put surface. In order to describe the functionality of the interface, we will use the example of acylindrical shell shown in Fig. 5.

2In FE computations we talk about the orientation of the face.

11

Page 12: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

2

= 1 −= 1 −

ζ 2

ξ

2

ζ 1

ζ

1

1{

ξ 2

ξ

ζ

ξξ 2

== 1 −1

ζ 1

ζ 2

ζ

2

ζ 1

ξ 2

ζ2

ζ 1

ζ 1

ζ

1

ξ{{ =

=1

ξ 2 ζ 2

ξ

2

= 1 −= 1 − ζ 2ξ

1

ζ 2

1ξ ζ{

ξ 2

1

ξ 2

ξ 1

ξ 2

1ξ =

2

ζ 1

ζ

= 1 −

2

ξ 1

ξ

ζ 2

ζ 1{

== 1 −

1ξξ

2

ζ 1

ζ

2

ξ 1

{

2

ζ 2

ζ 1

ξ

11ξξ 2

ζ

ζ 2

ζ 1

=

ξ 1

2

= 1 −ζ 2

{

ξ

==

ζ 21

1

ζ 2

ζ

ξ

ξ 1

2

ζ 1ξ 2{

ξ

Figure 4: Transformations between local and global reference coordinates for a rectangular face

Figure 5: Cylindrical Shell

12

Page 13: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

The relatively simple GMP code was written at the expense of a labor intensive preparationof input data. The cylindrical shell has to be first partitioned by hand into geometrical entities,i.e., points, curves, rectangles and hexahedra, then denumerated so that a complete topologicalinformation on the object can be specified manually by the user. The topological informationincludes coordinates of all points, and connectivity information for each entity in the object. Usingthe new interface, we can now obtain the topology information efficiently and automatically.

The first two Sections 4.1 and 4.2 describe operations within CUBIT. Section 4.1 presentsthe solid geometric model construction and mesh generation process. Section 4.2 discusses theelement blocks creation and topological information exporting process. The last three sections4.3, 4.4 and 4.5 describe operations within the interface. Section 4.3 presents parameterizationconstruction only for linear hexahedra. Section 4.4 describes an automatic construction of param-eterizations for all curvilinear hexahedra. Finally, Section 4.5 discusses standard GMP input fileexporting. Using the exported input file, we can generate then the actual FE meshes of arbitraryorder directly instead of running the interface each time.

4.1 Geometry construction and mesh generation process

There are three primary ways of creating geometry within CUBIT. First of all, CUBIT providesmany geometry primitives for creating common shapes (Spheres, Bricks...), which can then bemodified and combined to build complex models using boolean operations. Secondly, geometrycan be directly imported into CUBIT. Finally, geometry can also be defined by building it from the”bottom up”, e.g., creating vertexes, then curves from those vertexes, etc.

In our approach, we use the first method to construct the geometric model by running journalfiles. The journal files are sequences of commands that can be used as a means to control CUBITfrom ASCII text files. Commands or journal files can be created within CUBIT, or can be createdand edited directly by the user outside CUBIT. In our approach, we import an object using Cubitcommand ’Cubit � Play *.jou’. The geometric model of the object shares a surface informationwith GMP and it can be generated from the GMP files, see Appendix GMPsurf.

Taking a Cylindrical Shell as an example, see Fig. 6, the information of surface entities inGMP is stored as follows,

2 - number of surfaces

4 - type of the first surface (see table 2 for details)0 0 0 - the center coordinates of the first cylinder0 0 1 - vector parallel to the first cylinder axis

13

Page 14: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 6: Surfaces’ numbers of Cylindrical Shell in CUBIT

10 - radius of the first cylinder axis

4 - type of the second surface (see table 2 for details)0 0 0 - the center coordinates of the second cylinder0 0 1 - vector parallel to the second cylinder axis5 - radius of the first cylinder axis

The types of surfaces are described using numbers in old GMP [3]. The new GMP [2] usesnaturally defined geometrical objects with descriptive names, so that the logic of the code is easierto follow, see Table 2.

Old GMP New GMP Type of surface

1 ’VetPt’ Plane normal to a given vector and passing through a point2 ’ThrPt’ Plane passing through three points3 ’Sphere’ Sphere4 ’Cylinder’ Infinite cylinder

Table 2: Types of surfaces in old and new GMP

14

Page 15: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 7: Geometric model of cylindrical shell in CUBIT

We note that the surface Cylinder is defined with infinite height in GMP. In order to build thegeometrical model of the cylindrical shell in Fig. 5, we need to specify additionally the heightof the cylinder for CUBIT. After running the cylinder.jou, CUBIT generates the geometric modelshown in Fig.7. There are a total of four surfaces in the CUBIT model which include two curvilin-ear surfaces also specified by GMP.

Now we can use boolean operations to modify the geometry. The first cylinder should besubtracted from the second cylinder. Issue the following command: ’Cubit � Subtract 2 From 1’Note that both original bodies are deleted in the boolean operation and replaced with a new bodywhich is the result of the boolean operation Subtract. The result of this operation is a single body,as shown in Fig. 7. We can also use command ’Cubit � List Geometry’ to check the geometricentities in the model,

Geometric Entities:Number Entity1 groups1 bodies1 volumes4 surfaces4 curves

15

Page 16: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

4 vertexes.

The mesh for any given geometry is generated in CUBIT hierarchically. For example, if themesh command is issued on a volume, its vertexes are first meshed with nodes, then curves aremeshed with edges, then surfaces are meshed with faces, and finally the volume is meshed withhexes. Vertex meshing is trivial and thus the user is given little control over this process. However,curve, surface, and volume meshing can be directly controlled by the user.

Starting with a geometric model, the mesh generation process in CUBIT consists of four pri-mary steps:

Step1: Set interval size and count for individual entities or groups. The size or interval is alwaysapplied to a specific geometric entity. For example: ’Cubit � volume 1 size 2.0’.

Step2: Set mesh schemes. CUBIT supports numerous meshing schemes for meshing solid modelentities. For example: ’Cubit � Volume 1 Scheme Sweep’.

Step3: Generate the mesh for the model. Use the mesh command to generate the mesh on aspecified geometric entity. For example: ’Cubit � Mesh volume 1’.

Step4: Inspect mesh for quality and suitability for targeted analysis.

Applying the above four steps to the cylindrical model, we get the mesh in Fig.8. There are alsomechanisms for improving mesh quality locally using smoothing and local mesh topology changesand refinement in CUBIT. Now we can check the mesh entities by command ’Cubit � List Mesh’

Mesh Entities:Number Entity8 hexes0 pyramids0 tets24 faces0 tris48 edges24 nodes

There are 8 linear hexahedra generated within the cylindrical shell, see Fig.9. As we know fromSection 3.1, each hexahedron consists of eight nodes. Once we know the topological informationabout the nodes, we can reconstruct the necessary connectivity information for GMP. The next stepis to export the nodal topological information into a readable text file.

16

Page 17: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 8: Hexahedron meshes of the cylindrical shell generated in CUBIT

Figure 9: Generated hexahedra in the cylindrical shell

17

Page 18: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

4.2 Element Blocks creation and exporting process

Element blocks refer to the method CUBIT uses to group related sets of elements into a singleentity. Each element in an element block must have the same basic and specific element type, seeSection 2.1.

The command to create element blocks is ’Cubit � Block 100 Vol All’ The first command’Block 100’ defines the block based on a list of geometric entities, while the second command ’VolAll’ uses specific lists of mesh entities. Note a block can only contain a single element type.

The ’Block’ command can be used to generate the vertex node connectivities not only forhexahedra but also for entities of lower dimension as well. For example, by issuing commands”Cubit � Block 200 Surface 1’ and ’Cubit � Block 300 Surface 2’, we can list all quadrilateralsthat have been created to mesh the two cylindrical surfaces, along with their nodal connectivities.By using the Remove argument to the block command, the specified geometry or mesh entity canbe removed from the block definition. We check the element blocks by command ’Cubit � ListSpecial Entity’ as follows,

Special Entities:Number Entity3 element blocks

This sequence of commands defines three element blocks. Element Block 100 is composed of8-node hexahedral elements, and Element Block 200 and 300 are composed of 4-node rectangleson the two surfaces, respectively.

After having the cylindrical shell meshed, see Fig. 10, the model can be written to the ExodusII file by command ’Cubit � Export Genesis ‘Cylinder.g’.

Note that the Exodus II file format is binary. It is frequently necessary to view the contents ofthe Exodus II file as plain text. A publically available tool known as ncdump can be used to viewthe contents of an Exodus II file. by using the command ’Ncdump Cylinder.g � Cylinder.txt’. Thencdump utility will take the Exodus II file, i.e., Cylinder.g, and convert the contents to an asciifile, i.e., Cylinder.txt. Another option for converting binary into ascii format of Exodus II files is autility known as exotxt which is part of the SEACAS tool suite.

We can then access the meshed Cylindrical Shell data in a typical plain text file as follows,

24 3 8 8 8 - First line indicates the number of all entities24 - Number of nodes3 - Number of Blocks8 - Number of hexahedra in the first block

18

Page 19: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 10: Geometric model and the corresponding meshes of Cylindrical Shell

8 - Number of rectangles in the second block8 - Number of rectangles in the third block

21, 24, 14, 13, 5, 6, 4, 1, - Nodes’ numbers in the first hexahedron........................ - Nodes’ numbers in the second hexahedron

17, 21, 22, 18, - Nodes’ numbers in the first rectangle on surface 1................. - Nodes’ numbers in the second rectangle on surface 1

14, 13, 9, 10, - Nodes’ numbers in the first rectangle on surface 2................ - Nodes’ numbers in the second rectangle on surface 2

5, 3.06151588455594e-16, -5,......, - X coordinates of sequent nodes....................................5, 3.06151588455594e-16, -5,....., - Y coordinates of sequent nodes......................................................5, 3.06151588455594e-16, -5, ......, - Z coordinates of sequent nodes......................................................

19

Page 20: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 11: Eight nodes’ number in the MBG hexahedron

With the information in the txt file, we can generate now the necessary topological information forour Geometrical Modeling Package, see Section 4.3.

4.3 Linear hexahedra model

Before generating a full nonlinear model, it is convenient to check the topology of the GMP modelby reproducing the CUBIT mesh within GMP. This is done by using the simplest trilinear param-eterization for the GMP hexahedra. Note that all twelve edges of each hexahedron are segments ofstraight line and they connect two adjacent nodes.

we start by constructing the first linear hexahedron contained in the MBG file cylinder.txt, andstore the topological information hierarchically i.e., first its eight vertexes, then its twelve edgesand finally its six faces. The four primary steps are as follows:

Step 1: We transform the order of eight nodes of a MBG hexahedron into the corresponding orderof vertexes in a GMP hexahedron. The order of eight nodes in a MBG hexahedron is 21,24, 14, 13, 5, 6, 4 and 1, see Fig.11. The order of eight vertexes in a GMP hexahedron isshown in Fig.3. The transformation of the two sequences is listed in Table 3. The three edgesmeeting at each vertex in GMP can also be obtained by referring to Table 3 and stored asPOINTS(np)%CurvNo(1:3).

Step 2: We store the topological information for the twelve edges of the first hexahedron. Eachedge, i.e., a curve, in the first GMP hexahedron has two endpoints. Each edge also has

20

Page 21: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Nodes’ number in Vertex’ number in Three edges meetinga BMG hexahedron a GMP hexahedron at each vertex

1 4 1, 4, 92 1 1, 2, 103 3 2, 3, 114 6 3, 4, 125 8 5, 8, 96 5 5, 6, 107 6 6, 7, 118 7 7, 8, 12

Table 3: Topological information of eight vertexes in GMP

just two adjacent rectangles but may have many in the final global dataset. Connectivityinformation can be saved as CURVES(n)%FigNo(i) and CURVES(n)% EndPoNo(i), with n= 1,...12 and i = 1,2, See Table 4.

Step 3: Next we store topological information for the six faces, i.e., rectangles, of the first hex-ahedron. Each edge has only two adjacent faces,and, at this point, each rectangle has oneadjacent hexahedron. In the first hexahedron , we store the hexahedra’ number to its sixfaces as RECTANGLES(i)%BlockNo(1) = 10*2+1, with i = 1, ...,6. For each rectangle, thefour edges’ numbers can be found in Table 5 and save as RECTANGLES(i)%EdgeNo(1:4),where i is the rectangle number. We also need to store the four vertexes numbers for eachface, see Table 5.

Curve number Two corresponding faces Two corresponding endpoints

1 1 , 3 1, 22 1 , 4 2 , 33 1 , 5 4 , 34 1 , 6 1 , 45 2 , 3 5 , 66 2 , 4 6 , 77 2 , 5 8 , 78 2 , 6 5 , 89 3 , 6 1 , 5

10 3 , 4 2 , 611 4 , 3 3 , 712 5 , 6 4 , 8

Table 4: Topological information for twelve edges in GMP

21

Page 22: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Step 4: Finally we store the six faces’ numbers as HEXAS(1)%FigNo(i) = i*10+2, with i= 1,...,6

Once we have generated the connectivity information for the first hexahedron and the cor-responding points(vertexes), curves(edges) and faces(rectangles), we loop through the remaininglinear hexahedra stored in MBG, i.e., Block 100. Within the loop, we store and update the topo-logical information for each hexahedron hierarchically. The main strategy is to connect first thelocal entities to the corresponding global entities, i.e., vertexes to points, edges to curves and facesto rectangles , and then update the overall global entities. The seven primary steps are as follows:

Step 1: We loop through the eight vertexes in each local hexahedron, checking whether the pointalready exists in GMP POINTS data. If it is an existing point, the flag for this vertex is setto 1 and we store the existing global point number of the vertex. Otherwise it is a new point,the flag for this vertex is set to 0, and we update the number of GMP POINTS by 1, i.e.,NRPOINT = NRPOINT+1, storing NRPOINT for the corresponding local vertex number.In the end, for each of eight local vertexes we know the corresponding global point numbersand also the flags indicating whether it is a new global point or not .

Step 2: We check the two endpoints’ flags for each of the twelve edges. If either flag for the twoendpoints is 0, the edge is a new curve with flag 0. If the flags of both endpoints are 1, theedge may still not correspond to an existing curve. We need to loop through all global curvesmeeting at any one of the two endpoints, and check if the other endpoint of each global curveis identical to the other endpoint of the edge. If it is, the edge is an existing curve, and it ismarked with a flag equal to 1. Otherwise, the edge is marked as a new curve with flag 0. Foreach of the new curves, we update the total number of CURVES by one, i.e., NRCURVE =NRCURVE + 1, and store NRCURVE for the corresponding local edge. For existing curves,we store the global curve’s number for the local edge. In the end, each of the twelve edges inthe local hexahedron has its own corresponding global curve’s number and a flag to indicatewhether it is a new curve or not.

Faces’ number Four corresponding edges Four corresponding vertexes

1 1, 2, 3, 4 1, 2, 3, 42 5, 6, 7, 8 5, 6, 7, 83 1, 10, 5, 9 1, 2, 6, 54 2, 11, 6, 10 2, 3, 7, 65 3, 11, 7, 12 4, 3, 7, 86 4, 12, 8, 9 1, 4, 8, 5

Table 5: Topological information for six faces in GMP

22

Page 23: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Step 3: We check the vertex flags for each of the six faces, see Table 5. If any vertex flag is 0,the face is a new rectangle, with flag 0. Still, if the flags for all four vertexes are 1, i.e., thevertexes coincide with existing points, the face may not correspond to an existing rectangle.We still need to check the flags of the four edges constituting the face. If the flag for anyof the four edges is 0, i.e., the edge is a new curve, the face is a new rectangle with flag0. If flags for all the four edges are 1, i.e., all edges are existing curves, the face may stillcorrespond to a new rectangle. We again loop through all global rectangles adjacent to anyof the four local edges and check whether one of those global rectangles has the same fourvertexes as the four vertexes of the local face. If we find such a global rectangle, the face isan existing rectangle with flag 0. Otherwise it is a new rectangle with flag 1. If the face isa new rectangle, we update the total number of RECTANGLES by one, i.e., NRRECTA =NRRECTA + 1, and store NRRECTA as the corresponding local face number. Otherwise theface is an existing rectangle with the corresponding global rectangle number. At this point,each of the six faces of the hexahedron has its own corresponding global rectangle numberand a flag to indicate whether it is a new rectangle or not.

Step 4: After having connected the local entities to the corresponding global entities, i.e., vertexesto points, edges to curves and faces to rectangles, we can now change the global GMP dataaccording to each corresponding local entities. The first is the GMP POINTS. By loopingthrough eight vertexes of a local hexahedron, we can determine if the vertex is a new pointby its flag. If it is an existing point with flag 1, we check the flag of the three local edgesmeeting at the vertex. For any edge with flag 1, i.e., a new curve, we add the correspond-ing global curve number of the local edge to the corresponding global point of the localvertex as POINTS(np)%NrCurv = POINTS(np)%NrCurv + 1 and POINTS(np)%CurvNo,with np is the existing point number. Otherwise it is a new point with flag 0, we simplystore the three corresponding global curves’ number to local edges meeting at the vertexas POINTS(np)%NrCurv = 3 and POINTS(np)%CurvNo(1:3), where np is the new pointnumber.

Step 5: The next global GMP data to be modified is CURVES. Looping through eight edgesof the local hexahedron, we can tell if the edge is a new curve by its flag. If it is anexisting curve with flag 1, we check the flag of the faces meeting at the edge. If theface is a new rectangle with flag 0, we add the corresponding new rectangle number tothe curve as CURVES(nc)%NrFig + 1 = CURVES(nc)%NrFig and CURVES(nc)%FigNowhere nc is the global curve number. Otherwise the edge is a new curve with flag 0, wesimply store the topological information of the new curve as CURVES(nc)%NrFig = 2,CURVES(nc)%FigNo(1:2) and CURVES(nc)%EndPoNo(1:2).

23

Page 24: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 12: The hexahedra in the cylindrical shell

Step 6: We change the global GMP RECTANGLES data. Likewise, we add the hexahedron’snumber to the existing rectangles as RECTANGLES(nrr)%BlockNo(2). For the new rect-angles, we store the connectivity information as RECTANGLES(nrr)%EdgeNo(1:4) andRECTANGLES(nrr)%BlockNo(1).

Step 7: Finally we add the local hexahedron connectivity information to global data HEXAS. Foreach of the six faces, we store its corresponding rectangles’numbers to the global HEXASas HEXAS%FigNo(1: 6).

By taking the seven steps above, we obtain the overall connectivity information for each hex-ahedron in MBG. The last step is to read in coordinates of each node. From the data structure inCylindrical.txt, see Section 4.2, we know the X coordinates of all the nodes are listed first, nextthe Y coordinates, and finally the Z coordinates. We store the XYZ coordinates for each nodes inPOINTS(ip)%Rdata(1:3). This completes generating the GMP connectivity information that arenecessary for supporting trilinear hexahedron parameterizations, see Fig.12.

4.4 Curvilinear hexahedra model

Now we begin constructing the necessary information to support the curvilinear transfinite interpo-lation hexahedra. We begin by noting that the four nodes constituting a face of a MBG hexahedron

24

Page 25: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

1

z

x y

ξ0

ϕ 2(x,y,z)=0

ϕ 1(x,y,z)=0

x c

3

4ϕ (x,y,z)=0

(x,y,z)=0ϕ

( )ξ

������������������������������������������������������������������������������������������������������������������������

��������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������

Figure 13: Implicit curve

are not necessarily co-planar.

We use the two GMP techniques introduced in Section 1.3, i.e., transfinite interpolation rect-angles and hexahedra and implicit parameterizations for rectangles and curves. For a transfiniteinterpolation rectangle, we need to know the parameterizations for the four curves that constitutethe quadrilateral. The edge parameterizations are then extended to the whole reference rectangleusing the classical transfinite interpolation and linear blending functions technique [7, 8]. For animplicit curve, we need to know the four intersecting surfaces that constitute the curve as shown inFig.13. The implicit rectangle lies on a given surface with its four edges cut off by four additionalsurfaces, see Fig. 14. We need to know the five surfaces constituting the implicit rectangle.

To construct a transfinite interpolation hexahedron with curvilinear faces and edges, we will usethe connectivity information for linear hexahedra discussed in last Section 4.3 and an additionaltopological information for the curvilinear surfaces available in MBG file, i.e., cylinder.txt.

The topological information for higher-order surfaces is stored in MBG in terms of SURFACEBLOCKS, storing four vertex numbers for each rectangle that are on the originally specified sur-faces, e.g., Block 200 and Block 300 for the cylindrical shell model. We know that a hexahedronwith any face, i.e., rectangle, on a surface, must be a curvilinear hexahedron. However if none ofthe six faces of a hexahedron is on surface, we still can not say the hexahedron is a linear hexahe-dron. An example of such a situation is shown in Fig.15. To determine whether a hexahedron iscurvilinear, we must check whether any of its twelve edges are on a curvilinear surface. For thehexahedron marked in yellow, see Fig.15, only one edge, i.e., a curve, is on the curvilinear surfaceand the remaining eleven edges are all linear segments. However, the hexahedron is still a curvilin-

25

Page 26: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

ϕϕ (x,y,z)=0

(x,y,z)=0

ϕ

ξξ

1

(x,y,z)=0

1

5

2

(x,y,z)=0ϕ

(x,y,z)=0

4

1

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Figure 14: Implicit rectangle

ear hexahedron. The faces containing the curvilinear edge are defined as Transfinite InterpolationRectangle (’TraQua’). The parametrization of the ’TraQua’ can be obtained by using the classicaltransfinite interpolation and linear blending functions for its four edges. But the curvilinear edgeitself is defined as Implicit Curve (’ImpCir’). The four primary steps of constructing curvilinearhexahedra are then as follows:

Step 1: Looping through all hexahedra, we determine the types for each of the six faces andtwelve edges of a local hexahedron. The edges on surfaces are defined as Implicit Curves(’ImpCir’), and the remaining edges are segments of line (’SegLin’). If any of the four edgesof a face is ’ImpCir’, the face is defined as Transfinite Rectangle (’TraQua’). If all of thefour edges of a face are ’ImpCir’, the face is defined as Implicit Rectangle (’ImpRec’).

Face number Four local faces’ numbers

1 3 , 4 , 5 , 62 3 , 4 , 5 , 63 1 , 4 , 2 , 64 1 , 5 , 2 , 35 1 , 4 , 2 , 66 1 , 5 , 2 , 3

Table 6: Local face’s number and the corresponding four local faces’ number

Step 2: We now update the topological information for global SURFACES. Each ’TraQua’ gen-erates a new SURFACE. The new surface (’ThrPt’) is a plane passing through any three ver-

26

Page 27: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 15: The curvilinear hexahedron is shown in yellow

texes of the ’TraQua’, while the three vertexes are fixed, i.e., each ’TraQua’ can only defineone unique ’ThrPt’. We store the topological information of each new defined SURFACE toits corresponding ’TraQua’, i.e., ’RECTANGLES(ir)%Idata(1) = NRSURFS’ where ir theglobal rectangle number of the ’TraQua’.

Step 3: The last step is to obtain the topological information for all ’ImpRec’ and ’ImpCir’. Theimplicit rectangle lies on a given surface with its four edges cut off by four additional sur-faces, see Fig. 14. We note that the four additional surfaces are given in a specific order,i.e., the orientation of the rectangle. Each of the four surfaces is generated by a ’TraQua’,hence we need to find the corresponding global rectangle numbers of the four ’TraQua’. Foreach ’ImpRec’ in a hexahedron, the corresponding four local face numbers are given in or-der shown in Table 6. Having the four local face numbers, we can obtain the corresponding’TraQua’, and then the find the corresponding ’ThrPt’. For example, if an implicit rectangleis the second face of a hexahedron, the four ’ThrPt’ cutting its four edges can be obtainedby the corresponding RECTANGLES(ir)%Idata(1), where ir is the global rectangle numberthat correspond to local face number 3,4,5 and 6, respectively. In the same way, we obtainthe four corresponding ’ThrPt’ that constitute an implicit curve shown in Table 7.

After finishing the three steps above for a linear hexahedron shown in Fig.11, we now have adesired curvilinear hexahedron, shown in Fig.16. Looping through all the remaining linear hex-ahedra shown in Fig. 9, we obtain the final geometrical model of Cylindrical shell in GMP, seeFig.17.

27

Page 28: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 16: First curvilinear hexahedron in the cylindrical shell

Figure 17: The geometric model for cylindrical shell in GMP

28

Page 29: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Local edge number Three local faces’ number Three local faces’ numberfor positive oriented edge for negative oriented edge

1 2 , 5 , 3 2, 3 , 52 3 , 2 , 4 3, 4 , 23 4 , 5 , 3 4 , 3 , 54 5 , 2 , 4 5 , 4 , 2

Table 7: Local edge’s number and the corresponding three faces’ number

4.5 Exporting standard GMP input

We check the numbers of all GMP global entities, i.e., SURFACES, CUVRES, RECTANGLES,HEXAHEDRA, shown in Table 8. Note that there is no TRIANGLES. We finally write out astandard GMP input file, see Appendix cylinder.input.

NRSURFS NRPOINT NRCURVE NRTRIAN NRRECTA NRPRISM NRHEXAS

22 24 52 0 36 0 8

Table 8: Numbers of global entities in GMP for the cylindrical shell model

Now we have obtained topological information for all the global geometrical entities in GMP,i.e., SURFACES, CUVRES, RECTANGLES, HEXAHEDRA. Note that there is no TRIANGLES.We can dump out the data into a standard GMP input text file, see Appendix SandiaGMP.

5 Modeling of Tools with tilted loop antennas

We present now a more complicated example related to simulating of EM fields for InductionLogging Instrument.

The discussed GMP model of a tool with two tilted loop antennas wrapped around the tool, allembedded in a 3D volume, will later be used for 3D hp FE simulations.

5.1 Geometric model construction

The dimensions of the tool are shown in Figures18, 19 and 20. The tool is symmetric so that weneed to model half of the tool only. The whole model will be assumed using the concatenationcapabilities of GMP [2]. The upper half of the model consists of the axial drill, two titled coils andtwo corresponding shields.

29

Page 30: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

L1 L2 L3

L4 L5

Figure 18: The axial drill

θ

ID

OD

L6 L7 L8

L9

Figure 19: The first coil

30

Page 31: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

ID

OD

L2L1

L4

θ

L3

Figure 20: The second coil

The dimensions of the drill are shown in Fig.18. The center of the first tilted coil is oriented�������

at � �� � in Z direction of a global Cartesian system of physical coordinates. The center of thesecond tilted coil is oriented ���� at � � � on the Z axis. The coils are very thin with diameter from� � � � � � to � � � �� � . The insulator between the coil is very important to discretize the area between thecoil and the metal, however in our approach, we neglect the insulator and only model the two coilsshown in Fig. 19. and Fig. 20.

Outside the two tilted coils are two corresponding shields with tilted slots. The shields aretwo cylindrical shells with inside diameter � � ��� � � �� � �

and outside diameter ��� ��� ��� � � � . Thegeometry of the slots can be described by certain equations. Due to the inherent complexities ofthe equations, we have not, at this point, attempted to tackle this problem. However, we believethe new interface with GMP can also be used to model the desired tilted slots on the shields. Thewhole tool is placed in a bore hole with diameter � ��� � �

. The bore hole is filled with either anoil-based mud or a conductive material, and it is embedded in a large cylinder representing therock formation.

5.2 Mesh generation process

Given the data, we can construct the overall geometric model in CUBIT, see Fig.21. The commandsin CUBIT can be stored as a Journal file, see Appendix drill.jou. We can then simply use command’Cubit � play drill.jou’ to display the geometric model. The four curvilinear surfaces presented inthe CUBIT Tool model will be used later as GMP surfaces.

The first step is to generate the mesh in CUBIT. We follow the four steps of mesh generationlisted in Section 4.1. We start with setting interval size for each individual surface, and volumes bycommand: ’Cubit � surf 12 15 10 16 8 1 2 3 periodic interval 1’ ,’Cubit � volume all size 1’ and

31

Page 32: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 21: Tool model in CUBIT

’Cubit � volume 1 size 0.7’. Then we specify the mesh schemes by command ’Cubit � volume1 to 4 scheme sweep’. Finally, we generate the mesh for the model by command: ’Cubit � meshvolume 1 to 4’. Having the hexahedron meshes for volumes 1 to 4, we now mesh the remainingvolumes, i.e., vol 5 and 6. In the same way, we specify the interval by command ’Cubit � surf17 21 periodic interval 1’ and ’Cubit � surf 19 24 interval 1’, and then scheme the volumes bycommand ’Cubit � vol 5 6 scheme auto’, finally mesh the two bodies by Command ’Cubit � meshvol 5 6’. The corresponding MBG can be saved as a genesis file, see Appendix shaft.g. we checkthe geometric entities, mesh entities and special entities by command ’Cubit � list model’

Geometric Entities: Mesh Entities: Special Entities:Number Entity Number Entity Number Entity1 groups 106 hexes 5 element blocks6 bodies 0 pyramids6 volumes 0 tets24 surfaces 202 faces20 curves 0 tris20 vertexes 380 edges

216 nodes

Finally, we create the element blocks by issuing the command: ’Cubit � block 1 vol all’, ’Cubit �block 2 surf 1 2 3’, ’Cubit � block 3 surf 15 16’, ’Cubit � block 4 surf 17 21’and ’Cubit � block5 surf 18 22’. All the commands can be saved as a journal file, see Appendix shaft.jou.

5.3 Geometric Model of the Tool in GMP

Once the topology information for the 3D geometric model of the tool is obtained, i.e. the objectcan be partitioned into a FE-like mesh of linear hexahedra, the GMP can construct parameteri-zations for each linear hexahedron according to the implementation steps listed in Section 4.3.

32

Page 33: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 22: MBG of the Tool Model with all generated hexahedra

Figure 23: Geometric Model in GMP

Using the connectivity information for the four curvilinear surfaces in MBG, see Section 4.4, wecan finally get all parameterizations for both linear and curvilinear hexahedra. Fig. 23 shows thegenerated geometric model of the tool in GMP by using the interface input sandia.f. Then we savethe global geometric data to a standard GMP input file, see Appendix shaft.input. The GMP globaldata are shown in Table 9.

NRSURFS NRPOINT NRCURVE NRTRIAN NRRECTA NRPRISM NRHEXAS

1021 5109 14568 0 13860 0 4400

Table 9: Numbers of global entities in GMP for the tool model

The obtained GMP mesh with curvilinear and linear hexahedra can be used later to generatethe actual FE meshes of arbitrary high order, and make geometry updates during mesh refinements.

33

Page 34: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

6 Surface Reconstruction Models

In this section, we present an algorithm for obtaining the connectivity information extracted di-rectly from volumetric imaging data, i.e., primarily Computed Tomography (CT) and MagneticResonance Imaging (MRI).

6.1 Surface Reconstruction and 3D geometric modeling

In our approach, we interface GMP with coarse meshes generated from MRI scans using geometryreconstruction techniques, developed at Center for Computational Visualization (CCV) at ICES.The geometry reconstruction techniques combine bilateral and anisotropic (feature specific) diffu-sion filtering, with contour spectrum based, relevant isosurface and interval volume selection [9].Fig.24 shows a generated 3D geometric model of a human head. The head model was reconstructedin forms of a (tri) linear hexahedra mesh.

The work is heading towards simulating EM waves in the human head. This includes enclosingthe head within a truncating sphere and meshing the entire volume within the sphere, and thehead. Special absorbing boundary conditions are imposed on the truncating sphere to model theinteraction with the rest of the space. A cross section through the sphere with the enclosed head isshown in Fig. 25.

6.2 Geometric Model of the head in GMP

We use the algorithm from Section 4.3 to construct linear hexahedra. The connectivity informationfor the human head can be transformed into the standard geometric data in Geometrical ModelingPackage by using the interface, see Appendix input head.f. We construct the parameterizationsfor each hexahedron in the human head model by using GMP, see Fig.26. The numbers of all theGMP entities are shown in Table 10. The model is exported a standard GMP input, see AppendixheadGMP

NRSURFS NRPOINT NRCURVE NRTRIAN NRRECTA NRPRISM NRHEXAS

0 25744 8448 0 4424 0 704

Table 10: Numbers of global entities in GMP for the human head model

34

Page 35: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 24: Human head generated by geometry reconstruction techniques

35

Page 36: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 25: 3D human head model in a sphere

36

Page 37: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 26: 3D geometric model of a human head in GMP

37

Page 38: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 27: MBG of a sphere in CUBIT

7 Other Examples

We conclude our presentation with a few more examples illustrating the presented interface.

7.1 Example 1: A solid sphere

Fig. 27 presents a solid sphere with only one curvilinear surface, i.e., spherical surface. Thegeometric model construction and mesh generation process in CUBIT is stored as a journal file,see Appendix sphere.jou. The information about the geometric entities, mesh entities and specialentities is as follows,

Geometric Entities: Mesh Entities: Special Entities:Number Entity Number Entity Number Entity1 groups 32 hexes 1 element blocks1 bodies 0 pyramids1 volumes 0 tets1 surfaces 24 faces0 curves 0 tris0 vertexes 96 edges

53 nodes

38

Page 39: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 28: Geometric model of the sphere model in GMP

The connectivity information for the sphere model generated in CUBIT is saved in text file sphere.txt.After running the interface, we get the geometric model of the sphere model in GMP, see Fig.28.Finally we check the numbers of all GMP entities shown in Table 11

NRSURFS NRPOINT NRCURVE NRTRIAN NRRECTA NRPRISM NRHEXAS

73 53 128 0 108 0 32

Table 11: Numbers of global entities in GMP for the sphere model

7.2 Example 2: T-type antenna model

This model was provided by Dr. Adam Zdunek from the Swedish Aeronautical Institute. Fig.29presents a meshed T-type antenna generated by CUBIT. The geometric model construction andmesh generation process in CUBIT is stored as a journal file, see Appendix t.jou.

The information about the geometric entities, mesh entities and special entities is as follows,

39

Page 40: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 29: MBG of T-type antenna in CUBIT

Geometric Entities: Mesh Entities: Special Entities:Number Entity Number Entity Number Entity1 groups 20 hexes 1 element blocks1 bodies 0 pyramids1 volumes 0 tets14 surfaces 32 faces36 curves 0 tris25 vertexes 64 edges

44 nodes

The connectivity information of the T-type antenna model generated in CUBIT is saved in thetext file t.txt.

After running the interface, we get the geometric model of the antenna model in GMP, seeFig.30. Numbers of all GMP entities are listed in Table 12.

NRSURFS NRPOINT NRCURVE NRTRIAN NRRECTA NRPRISM NRHEXAS

41 44 99 0 76 0 20

Table 12: Numbers of global entities in GMP for the antenna model

40

Page 41: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

Figure 30: Geometric model of T-type antenna in GMP

8 Current Work

Our current work focuses on the GMP human head model. High accuracy simulations of wavesrequire at least a � � continuous geometry reconstruction. Otherwise, the

� �FE code picks non-

physical scattering of waves on edges, resulting from poor ( � � only) geometry representation. Thetechnique pursued at CCV, involves construction of A-patches - implicit algebraic surface patchesdefined by a manifold triangulation in �� � [10]. Each A-patch is a real iso-contour of a trivariaterational function defined within a tetrahedron or hexahedron with quadratic surface patches [11].

In a parallel effort, we are studying the possibility of accessing the binary Genesis files pro-duced by CUBIT using a net CDF interface. The Network Common Data Form, or netCDF, is aninterface to a library of data access functions for storing and retrieving data in the form of arrays.An array is an n-dimensional rectangular structure containing items which all have the same datatype [12]. Unidata supports the netCDF interfaces for FORTRAN and for various UNIX operatingsystems.

41

Page 42: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

9 Appendix

input sandia.f the interface with Cubit which is written in Fortran90.GMPsurf The surface connectivity information in GMP which is shared by

MBG in CUBIT.cylinder.jou The readable journal file in CUBIT which construct geometry and

generated mesh for the cylindrical shellncdump A publically available tool can be used to view the contents of an

Exodus II file.cylinder.g The binary Exodus II file format for MBG of Cylindrical Shell model.cylinder.txt The readable text format for MBG of Cylindrical Shell model.SandiaGMP The standard GMP input file generated by interface using BMG filecylinder.input The standard GMP input file for cylindrical shell model.shaft.jou The readable journal file in CUBIT which construct geometry and

generated mesh for the Tool Modelshaft.g The binary Exodus II file format for MBG of Tool model.shaft.input The standard GMP input file for Tool model.input head.f the interface with surface reconstruction models which is written

in Fortran90.headGMP The standard GMP input file generated by interface using surface

reconstruction modelssphere.jou The readable journal file in CUBIT which construct geometry and

generated mesh for the Sphere Modelsphere.g The binary Exodus II file format for MBG of Sphere model.sphere.input The standard GMP input file for Sphere model.t.jou The readable journal file in CUBIT which construct geometry and

generated mesh for the T-tpye antenna Modelt.g The binary Exodus II file format for MBG of T-type antenna model.t.input The standard GMP input file for T-type antenna model.

42

Page 43: An Interface Between Geometrical Modeling Package(GMP) and … · 2011-11-30 · element. The element typesavarable for each basic element typedefined inCUBIT are summarized as following,

References

[1] Mortenson M.E. Geometric Modeling. Wiley Computer Publishing, 1997

[2] Xue D., Demkowicz L. “Geometrical Modeling Package Version 2.0.” TICAM Report, vol.02-30, 2002

[3] Demkowicz L., Bajer A., Banas K. “Geometrical Modeling Package.” TICAM Report, vol.02-06, 1992

[4] Demkowicz L. “2D hp-Adaptive Finite Element Package(2Dhp90) Version 2.0.” TICAMReport, vol. 02-06, 2002

[5] Demkowicz L., Pardo D., Rachowicz W. “3D hp-Adaptive Finite Element Pack-age(2Dhp90).” TICAM Report, vol. 02-24, 2002

[6] Noltemeier H., Ottmann T. Data Structure. Wadem, Germany, 1994

[7] Gordon W.J., Hall C.A. “Transfinite Element Methods: Blending Function Interpolation overArbitary Curved Element Domains.” Numer. Math., vol. 21, 109–129, 1973

[8] Gordon W.J. “Blending Function Methods of Bivariate and Multivariate Interpolation andApproximation.” SIAM J. Numer. Anal, vol. 8, 158–177, 1971

[9] Zhang Y., Bajaj C., Sohn B.S. “Adaptive Multiresolution and Quality 3D Meshing fromImaging Data.” TICAM Report, vol. 02-42, 2002

[10] Bajaj C., Chen J., Xu G. “Modeling with Cubic A-patches ACM Transactions on Graphic.”14, vol. 2, 103–133, April,(1995)

[11] Xu G., Bajaj C., Huang H. “C1 Modeling with A-patches from Rational Trivariate FunctionsComputer Aided Geometric Design.” 18, vol. 3, 221–243, 2001

[12] Rewamd R., Davis G., Emmerson S. “NETCDF User’s Guide for FORTRAN.” vol. Version3, 1997

43