Parametric Design and Gridding Through Relational GeometryJohn S. Letcher, Jr. and D. Michael Shook
SummaryRelational Geometric Synthesis (RGS) is a new logical framework for building up precise definitions of complex geometric models from points, curves, surfaces and solids. RGS achieves unprecedented design flexibility by supporting a rich variety of useful curve and surface entities. During the design process, many qualitative and quantitative relationships between elementary objects may be captured and retained in a data structure equivalent to a directed graph, such that they can be utilized for automatically updating the complete model geometry following changes in the shape or location of an underlying object. Capture of relationships enables many new possibilities for parametric variations and optimization. Examples are given of panelization applications for submarines, sailing yachts, offshore structures, and propellers. IntroductionRelational Geometric Synthesis (RGS) [1, 2] is a novel approach to 3-D geometric design, with many advantages over previous technology:
RGS clearly has some features in common with Armit's TAG [3] and Boeing's AGPS [4, 5, 6]. The extent of similarities to these systems is difficult to judge from the available references, but we believe RGS provides much more pervasive use of dependency relationships than AGPS, and a much richer entity set than either TAG or AGPS. Automatic update of geometry following changes is also characteristic of "constraint-based" modeling systems [7]. In our opinion, RGS is qualitatively different from constraint-based modeling and in particular is much more adept at supporting 3-D design with free-form curves and surfaces. Compared with NURBS-based curve and surface modeling, RGS's explicit support of many entities not precisely representable by NURBS has large advantages in modeling convenience and accuracy. RGS is the basis of AeroHydro's MultiSurf (R) surface modeler for IBM-PC compatibles (DOS and Windows) [8]. UNIX workstation versions are under development. All the mathematical and logical functions of MultiSurf are available in an ANSI C library RGKERNEL, for incorporation into third party applications. Patent applications are pending which claim many of the novel features of RGS. RGS lends itself to a highly interactive, highly visual 3-D design environment for creation, viewing, revision and analysis of models. Largely motivated by marine design needs, RGS provides new solutions to many panelization and gridding problems for CFD and FEM applications. RGS FundamentalsDefinitions:
In conventional computer-aided geometric design (CAGD), the nouns entity and object are applied more or less interchangeably to either of these concepts. In RGS, the two concepts are semantically distinguished by the above defined usage. An entity is like a blank form with spaces to be filled in with data such as object name, color, visibility, coordinates, names of other objects. An object is like a filled-in copy of that form. RGS entities and objects correspond to the "classes" and "objects" of object-oriented programming terminology. In RGS, every object -- point, curve, snake, surface, etc. -- has a unique object name. The object name may be used to reference the object whenever it is used in construction of other objects. This is the essential means by which many qualitative relationships are captured. The object name can also be used to select, edit and interrogate the object while constructing and editing a model interactively. Entities can be broadly classified first according to their dimensionality, and secondarily according to their embedding in other objects. Table 1 is a hierarchical listing of currently implemented RGS entities. Under Points (0-dimensional entities) there are 4 classes:
Under Curves (1-dimensional entities) there are 3 classes:
Under Surfaces (2-dimensional entities) there are 2 classes:
Table 1 lists many specific entities in each class, with an explanation of the essential data required for each. Generally, curves are formed from points, in a variety of ways as indicated in Table 1. For example, the data for a Line is simply the names of two points. The data for a B-spline curve is a list of points specified by their object names. Any type of point object (point, bead, magnet, ring, etc.) will serve as a point, and different point types can be freely mixed. Surfaces are formed in some cases (e.g. B-spline surface, NURBS surface) from a net of points; usually (e.g. Coons patch, lofted surfaces) from a set of curves; or sometimes (e.g. SubSurface, Fillet) from a set of snakes on one or more underlying surfaces. In each case the supporting point, curve, and snake objects are all specified by using their object names; any kind of point, curve or snake can be used, and these can be freely mixed. Most of the basic curve and surface entities supported under RGS are well known. The difference lies in how the data is organized and obtained to evaluate the curve and surface objects. Some novel entities have arisen by recognizing gaps in the logical structure of RGS; for example, the Blofted and BlendCenter surfaces, which are useful generalizations of the B-spline surface and Coons patch. Six RGS surface entities (Ruled, Arc-Loft, FoilLoft, B-Loft, C-Loft, X-Loft Surfaces) are classed as "lofted surfaces", and share a common structure. Each lofted surface is supported by 2 or more master curves, depending on the surface type. Evaluation of a single point at parameters u,v on a lofted surface is a 3-stage process:
Surface No. of MC's Lofting Curve Entity Ruled 2 line Arc-lofted 3 circular arc Foil-lofted 3 or 5 NACA foil B-lofted >1 B-spline C-lofted >1 interpolating spline X-lofted >1 explicit spline Figure 1 is an example of an RGS model for a 30-ft sailboat hull. 'hull' is a C-Lofted surface, supported by 3 master curves 'MC1', 'MC2', 'MC3'. Each of the master curves is a B-spline curve, supported by 4 absolute points. The surface is displayed by showing some of the longitudinal "lofting" C-splines. Another way to view RGS is as a programming or representation language. The data base ("Model File") for the model of Figure 1 is given in Table 2 as an example. Each line in the Model File creates an object. The entity names 'AbsPoint', 'BCurve', etc. may be viewed as commands or functions, which are followed by required parameters in prescribed order. The language has a prescribed syntax. Models can be created and modified by editing text files adhering to this syntax. Dependencies are represented by the occurrence of object names as parameters for other objects. Since the model file contains only concise instructions for building the absolute model, it is extremely compact compared with conventional CAD representations. Model files average about 35 bytes per object, whether the object is a point, curve or surface. Snakes are generally formed from magnets, in a variety of ways as indicated in Table 1. (Rings also qualify as "magnets" for this purpose, since a ring is logically constrained to the surface to which its snake belongs.) The snakes are highly parallel to the curve entities, so they work in a consistent fashion. Snakes can also serve as curves in the construction of surfaces. "Relative" entities are specified by coordinate or parameter offsets from another object of the same class. For example, a relative bead is specified by a parameter offset dt from a basis bead. It lies on the same curve as its basis bead, at a fixed offset in parameter space. If the basis bead is moved along the supporting curve, the relative bead automatically moves also, to maintain its (parametric) distance away. Use of these relative entities is an important mechanism for capturing and enforcing quantitative relationships between objects. All curves and snakes are parameterized from 0 to 1 in a parameter t. All parametric surface patches are parameterized from 0 to 1 in each of two parameters u,v, in most cases inheriting the parameterization of their supporting curves. Beads, rings and magnets are located using these parameters. Thus, objects located on a curve or surface will automatically shift to "similar" positions following a change in their supporting curve or surface. Uniformity of the ranges of parameterization is an important key to the interchangeability of various curve, snake and surface types in construction of other objects. Dependencies of objects on other objects are always represented by references using object names. These take several forms; for example:
Dependency can extend to an arbitrary number of levels. The dependency structure of a model is representable by a directed graph (digraph), which is sometimes a useful way to contemplate the topological structure of a model. (Figure 2 is the dependency digraph for the model given in Figure 1/ Table 2). The digraph structure can also be used advantageously by the program to selectively update only the objects affected by a given change, i.e., the set of objects that depend directly or indirectly on the particular object that was changed. It is the capture and maintenance of these dependencies that enables the automatic update feature of RGS, providing a dramatically new paradigm for geometric design. We envisage conventional design, computer-aided or otherwise, as a linear process, a sequence of forward stages, each depending on completion of the prior stage. In sequence, each basic component is designed and frozen, so that other components that depend on it can be designed on a firm foundation. At some point, the whole design is evaluated, and usually found deficient in some respects. At this point, it is very costly to go back to an early stage, altering early components, because all the intermediate design stages have to be repeated. With RGS, the intermediate design steps are captured in the model, and the entire model can be cheaply updated at any time. This is a whole new dimension of freedom in design. Instead of segmenting design into a series of stages, and freezing components in non-optimal states, RGS allows the entire geometric design process to be fluid and integrated end-to-end. Qualitative model properties which result from the capture and enforcement of these relationships, and are thus conserved under changes in underlying objects, are referred to as "durable" properties. Avoidance of surface-surface intersection problems is accomplished in several ways:
Although the above methods eliminate the need for intersection and trimming in the great majority of situations, there still arise some modeling situations in which projection or intersection entities are required. These are met by a set of "projection" and "intersection" entities; for example, a ProjSnake is the projection of a curve onto a surface; an IntBead is at the intersection of a curve with a plane or surface. The projection and intersection entities involve iterative solutions, and are therefore subject to all the ills which intersections are heir to: possible nonexistence; possible multiple solutions; possible failures to converge; computational expense, etc. However, under RGS these evils are substantially alleviated by the possibility of providing good starting values for the iteration. For example, the data for an IntBead can be a bead (which identifies the intersecting curve, and provides a starting value for t) and a magnet (which identifies the intersecting surface, and provides starting values for u and v). Parametric Design"Parametric design" is a capability to specify a family of related designs having N numeric parameters xi, i=1...N, so that the specification of suitable values for all N parameters produces a valid instance of the family. The parameters xi span an n-dimensional "design space" within which, for example, an optimal design can be sought [9]. In RGS, a high degree of separation between topological and metrical components of geometry provides a strong capability for generating parametrically varied models having durable topology and other durable shape characteristics. Essentially, each real number occurring in the model file is a potential parameter; for the most part, these are the X,Y,Z coordinates or offsets of points, or the parameter values of beads, magnets and rings. The non-numeric content of the model file, especially the specification of interobject relationships through use of object names, conveys the topology. A stronger parametric capability currently under development arises from permitting use of numeric variables and expressions in the model file. This is currently being simulated by use of model file preprocessors. Panelization Using Patches and SubSurfsSince all parametric surface objects in RGS are topologically rectangular patches, it is quite simple and direct to use the mesh of isoparametric lines on any fully wetted patch to generate quadrilateral or triangular panels. The subdivision of any surface into a mesh is part of its specification, and can easily be changed to control panel counts. Panel size variations, e.g. cosine spacing on foil elements, is handled through a general facility for reparameterization ("relabeling") of curves and lofted surfaces. The surface mesh division responds to the relabeling of its supporting curves. Figure 3 shows some panel distributions available through relabeling of a wing surface. Often, there are portions of a base surface object which are not wetted (e.g., the portion of a fuselage covered by the wing root or wing root fillet), and which should therefore not be panelized. The embedded SubSurf provides a general solution for this situation: the wetted portion is covered by quadrilateral SubSurf patches. It is generally possible, in fact easy, to durably coordinate the subdivisions of adjacent patches, e.g. wing and fuselage, so that neighboring panels on the two surfaces have identical corner points, since the two patches share snakes as common boundaries. Figure 4 shows a filleted wing-body example with this property. Examples of Parametric Design and PanelizationTension-leg Platform ExampleFigure 5 shows several members of a 4-parameter family of tension-leg platforms (TLP's). TLP's are buoyant structures, moored to the seafloor by taut cables, commonly used for offshore drilling platforms in relatively deep water. The vertical cylinders are called "legs" and the horizontal members are "pontoons". Panel methods are used to analyze the response of TLP's and their mooring systems to gravity waves in the ocean environment. In this model family, both legs and pontoons are circular cylinders; the 4 parameters are:
Each parameter is associated with a single real number in the model file. Figure 5 shows the base model and 4 variants, with one parameter varied at a time. The essential structure of the model is as follows:
Note the durable neat join between neighboring panels across the pontoon-leg and bottom-leg junctions, detailed in Fig. 6. Sailing Yacht ExampleFigure 7 shows a panelization of the underwater portions of a sailing yacht hull, keel and rudder. The yacht hull provides buoyant support for the vessel; the keel provides horizontal lift to resist side forces from the sails; the rudder provides directional control and stability. The lift and induced drag performance of the combination are crucial to sailing performance. These characteristics are typically analyzed by panel-based potential flow solutions. In this example, the keel, keel tip, rudder, and rudder tip surfaces are fully wetted patches. A problem typical of panel methods in hydrodynamics is that only a portion of the hull surface is wetted, i.e., the portion below the water level and outside the keel and rudder root areas. This is handled with a single SubSurf covering this area. The edge of the SubSurf along the waterline is an intersection snake; the edge along the centerplane is a PolySnake which follows the centerplane where possible, but is indented around the keel and rudder. The SubSurf has one degenerate edge (a magnet) at the aft ending of the waterline, producing one row of triangular panels at this corner. The neat join between neighbor panels at the keel-hull and rudder-hull junctions arises from use of snakes on the hull surface to define both the root junctions and the centerline PolySnake. These properties are durable with respect to many possible variations in the hull, keel, and rudder geometries. Submarine ExampleFig. 8 shows the base model and several variants on a parametric submarine design. The hull is a body of revolution; the conning tower or sail is a B-lofted surface attached to a snake on the hull. Available parameters include:
The lower hull is a fully wetted patch; the wetted portion of the upper hull is a SubSurf built around the snake at the sail-hull junction. The panelization is topologically invariant with respect to all shape parameters, except the longitudinal position of the sail; if this changes too much, there needs to be some reparametrization of the dorsal PolySnake to avoid skewed panels. Propeller ExampleFig. 9 shows a member of a parametrically generated propeller series. The data for this example is a standard propeller sheet (Table 3) giving chord, thickness, camber, rake and skew at selected radii. An auxiliary program performed curve fitting and smoothing on the radial variations of these shape parameters, generating a MultiSurf model file which reproduces the specified blade geometry. The modeled blade is a B-lofted surface using FoilSnakes on concentric cylinders as master curves. Volume Gridding Using RG SolidsA straightforward extension of RGS to 3-D parametric solids has been made at a pilot level. This appears to have important potential for 3-D gridding. A parametric solid is a vector function of three parameters: x = x(u,v,w). It is easy to formulate RG solids constructed in several ways analogous to various surface entities; for example: RuledSolid -- linear interpolation between two surfaces BSolid -- trivariate tensor product using a 3-D array of control points CLoftSolid -- spline interpolation through 2 or more surfaces BlendSolid -- trivariate linear blending of 6 boundary surfaces TranSolid, SweepSolid -- a surface patch swept along an axis curve A parametric solid can easily be subdivided along isoparametric surfaces to create a structured mesh. It appears that the same techniques that produce neat, durable joins between neighboring patches in 2-D will extend naturally to solids, allowing continuity of elements between adjacent blocks. Configuration OptimizationAs diagrammed in Fig. 10, MultiSurf can serve as a geometry and panelization engine in a closed-loop optimization system including an optimizer and one or more analysis programs. The optimizer treats the model as a point in design space, and feeds design-space parameters to a model file generator. The resulting model file is read into MultiSurf , which generates a standard output file of surface meshes. A preprocessor casts this mesh data into the particular format required for input to the analysis program. The analysis program is run, and its output file is inspected by a postprocessor which extracts the required performance measures and returns the value of the objective function to the optimizer. Concluding RemarksWe have outlined the principles of Relational Geometric Synthesis and given several examples of application to panelization and gridding problems. The capability of RGS to define parametric families of topologically invariate designs and to generate geometric representations of them, including high quality panelizations for analysis, promises large reductions in the skilled labor currently required for application of CFD and FEM in practical engineering design. AcknowledgmentThis work was supported in part by the U. S. Navy, Carderock Naval Surface Warfare Center, under contract N00167-95-C-0003. References1. Letcher, J. S. Jr. and Shook, D. M.: "Applications of Relational Geometric Synthesis in Sailing Yacht Design", Proceedings 11th Chesapeake Sailing Yacht Symposium, S.N.A.M.E. (1993) 2. Letcher, J. S. Jr., Shook, D. M. and Shepherd, S. G.: "Relational Geometric Synthesis -- Part 1: Framework", Computer Aided Design (accepted for publication) 3. Armit. A.: "TAG -- A High Performance Interactive 3D Graphics System", Computers in Industry, vol. 3, pp. 117-123 (1982) 4. Snepp, D. K. and Pomeroy, R. C.: "A Geometry System for Aerodynamic Design", AIAA-87-2902 (1987) 5. Capron, W. K. and Smit, K. L.: "Advanced Aerodynamic Applications of an Interactive Geometry and Visualization System", AIAA-91-0800 (1991) 6. Gentry, A. E.: "Requirements for a Geometry Programming Language for CFD Applications", NASA CP-3143 (1992) 7. MacKrell, J.: "Making Sense of a Revolution", Computer Graphics World, v. 16, no. 11 (Nov. 1993) 8. AeroHydro, Inc.: MultiSurf User's Manual (1994) 9. Haug, E. J. and Arora, J. S.: Applied Optimal Design, Wiley, New York (1979) Table 1. MultiSurf entitiesPoints (0-dimensional), including:3-DOF points:Absolute Point -- X,Y,Z coordinates 2-DOF points: Magnets -- points constrained to lie on a surfaceAbsolute Magnet -- u,v parameters 1-DOF points: Beads -- points constrained to lie on a curveAbsolute Bead -- t parameter Rings -- points constrained to lie on a snakeAbsolute Ring -- t parameter 0-DOF points: Projected Point -- point projected onto a planeMirror Point -- point reflected in a plane Curves (1-dimensional), including:Line -- 2 points Snakes (1-dimensional) -- curves constrained to lie on a surface:Line Snake -- 2 magnets NURBS Snake -- type, knotlist, N x ( magnet, weight ) Surfaces (2-dimensional), including:Revolution Surface -- curve, axis line, 2 angles Miscellaneous:Planes -- nonparametric planes, specified several ways (e.g., 3 points) Table 2. Model file for the example of Figure 1.MultiSurf 0.35 /y Rem demo of C-lofted surface with 3 B-spline MCs AbsPoint P11 14 1 0.000 0.000 3.600; AbsPoint P12 14 1 1.367 0.000 0.602; AbsPoint P13 14 1 2.324 0.000 -0.800; AbsPoint P14 14 1 3.000 0.000 -0.900; BCurve MC1 11 1 10 * 2 { P11 P12 P13 P14 }; AbsPoint P21 14 1 15.000 4.815 2.560; AbsPoint P22 14 1 15.000 5.046 0.628; AbsPoint P23 14 1 15.000 3.603 -0.870; AbsPoint P24 14 1 15.000 0.000 -1.175; BCurve MC2 11 1 10 * 2 { P21 P22 P23 P24 }; AbsPoint P31 14 1 30.000 3.500 2.760; AbsPoint P32 14 1 30.000 3.500 1.320; AbsPoint P33 14 1 30.000 2.500 0.120; AbsPoint P34 14 1 30.000 0.000 0.120; BCurve MC3 11 1 10 * 2 { P31 P32 P33 P34 }; CLoftSurf hull 10 1 10 1 20 1 0 3 { MC1 MC2 MC3 }; XContours stations 12 1 0 10 1.8 2.735; ZContours waterlines 13 1 0 0 0. 1.; EndModel Table 3. Data sheet for parametric propeller design.DESIGN DATA PROPELLER 0000 -R.H. DIAMETER = 12.00 INCHES SHIP ( 304.8 MILLIMETRES SHIP ) PROJECTED AFT. AFT. RAKE SKEW R/R P/D CHORD/D T/D CAM/D RAKE/D (DEGREES) (DEGREES) R/R .200 1.5358 .1735 .0434 .00583 0.00000 0.00 0.00 .200 .300 1.5125 .2283 .0357 .00933 0.00000 0.00 9.29 .300 .400 1.4592 .2750 .0294 .01058 0.00000 0.00 18.79 .400 .500 1.3858 .3125 .0240 .01067 0.00000 0.00 28.01 .500 .600 1.2958 .3375 .0191 .00950 0.00000 0.00 36.75 .600 .700 1.1975 .3475 .0146 .00800 0.00000 0.00 45.43 .700 .800 1.0958 .3342 .0105 .00633 0.00000 0.00 54.23 .800 .900 .9958 .2808 .0067 .00442 0.00000 0.00 63.11 .900 .950 .9483 .2192 .0058 .00317 0.00000 0.00 67.76 .950 .960 .9383 .2021 .0054 .00292 0.00000 0.00 68.72 .960 .970 .9292 .1800 .0053 .00250 0.00000 0.00 69.68 .970 .980 .9196 .1521 .0051 .00208 0.00000 0.00 70.65 .980 .990 .9108 .1146 .0050 .00183 0.00000 0.00 71.61 .990 1.000 .9013 0.0000 0.0000 0.00000 0.00000 0.00 72.59 1.000 SECTION CAMBER DISTRIBUTION NACA A=0.8 MEANLINE SECTION THICKNESS DISTRIBUTION NACA 66 (TMB MODIFIED) EXPANDED AREA RATIO .7253 PROJECTED AREA RATIO .5701 MEAN WIDTH RATIO .2848 BLADE THICKNESS FRACTION .0488 RAKE ANGLE AT BLADE TIP 0.0000 (DEGREES) PROJECTED SKEW ANGLE AT BLADE TIP 72.5880 (DEGREES) LINEAR RATIO 1.0000 Fig. 1. A C-lofted hull surface with 3 B-spline master curves, each supported by 4 points. Fig. 2. Digraph of object dependencies for the hull example in Fig. 1/Table 1. Fig. 3. Typical variations in spanwise and chordwise panel distributions available by relabeling the supporting curves of a wing surface. Fig. 4. Panelization of a filleted wing-body junction using SubSurfs on the wing and body. Fig. 5. Parametric variations in tension-leg platform geometry and panelization. Topologically similar panelizations are produced automatically as geometry is parametrically varied over wide ranges. Fig. 6. Detail of a tension-leg platform panelization showing neat joins between pontoon, leg, and bottom panels. Fig. 7. Panelization of sailing yacht hull, keel, and rudder combination. The hull panels are a SubSurf between an intersection snake along the waterline and a PolySnake along the ventral edge. Fig. 8. Parametric submarine example, showing hull and sail variations, with instant repanelization by SubSurfs. Fig. 9. Propeller model generated automatically from propeller data sheet giving chord, thickness, camber, skew, and rake at various radii (Table 3.) Fig. 10. Closed-loop configuration optimization using MultiSurf as geometry engine and panelizer. Back to Relational Geometry |