The present invention generally relates to computer-aided engineering analysis, more particularly to methods and systems for joining imperfectly-matching Non-Uniform Rational Basis Splines (NURBS) patches to form a computerized model suitable for Finite Element Analysis (FEA).
With advance of computer technology, computer aided engineering (CAE) and computer aided design (CAD) have been used for helping engineers/scientists to design products in various industries (e.g., automotive, aerospace, etc.). One of the first developed CAE technologies is finite element analysis (FEA), which is a computerized method widely used in industry to model and solve engineering problems relating to complex systems such as three-dimensional non-linear structural design and analysis. FEA derives its name from the manner in which the geometry of the object under consideration is specified.
The FEA software is provided with a model of the geometric description and the associated material properties at each point within the model (sometimes referred to as a FEA mesh model). In this model, the geometry of the system under analysis is represented by solids, shells and beams of various sizes, which are called elements. The vertices of the elements are referred to as nodes. The model is comprised of a finite number of elements, which are assigned a material name to associate the elements with the material properties. The model thus represents the physical space occupied by the object under analysis along with its immediate surroundings. The FEA software then refers to a table in which the properties (e.g., stress-strain constitutive equation, Young's modulus, Poisson's ratio, thermo-conductivity) of each material type are tabulated. Additionally, the conditions at the boundary of the object (i.e., loadings, physical constraints, etc.) are specified. In this fashion a model of the object and its environment is created.
Furthermore, an industry referred to as computer-aided design (CAD) was developed for representing geometry of a product such as surface modeling. In CAD, mainly NURBS based curves and surfaces are used. In general, a product's design is encapsulated in a CAD system and the FEA mesh model is generated from the CAD data. As a result, the FEA mesh model is represented by approximated geometry of the product. Generation of such FEA mesh model is generally performed with semi-automatic manners. To overcome these shortcomings, a NURBS-based FEA was developed.
Owing to different requirements in CAD and FEA, there are drawbacks associated with NURBS-based FEA. One of which is related to trimmed NURBS surface description. In particular, a trimmed NURBS surface comprises an underlying regular NURBS surface with additional trimming lines that define the portions of the underlying surface patch to be displayed or not. While the trimmed NURBS works fine in CAD, its use in FEA is a current topic in research and not state of the art yet. Instead of using the original trimmed NURBS representation directly, it will be cut down into a set of smaller regular NURBS patches first. Then a new set of NURBS parameters must be created for the smaller regular NURBS patches to be suitable for FEA (e.g., maintaining continuity at the patch boundaries). However, to create a new set of NURBS parameters is a tedious and difficult task.
Therefore, it would be desirable to have improved methods and systems for joining imperfectly-matching Non-Uniform Rational Basis Splines (NURBS) patches to form a computerized model suitable for Finite Element Analysis (FEA).
This section is for the purpose of summarizing some aspects of the present invention and to briefly introduce some preferred embodiments. Simplifications or omissions in this section as well as in the abstract and the title herein may be made to avoid obscuring the purpose of the section. Such simplifications or omissions are not intended to limit the scope of the present invention.
Systems and methods of joining imperfectly-matching Non-Uniform Rational Basis Splines (NURBS) patches to form a computerized model suitable for Finite Element Analysis (FEA) are disclosed. According to one aspect, definitions of first and second NURBS patches are received in a computer system. First and second NURBS patches are to be joined together along a physical boundary, which is defined in a first curve in the first patch with a first set of control points with associated weights and a corresponding first knot-vector and, is defined in a second curve in the second patch with a second set of control points with associated weights and a corresponding second knot-vector. The first curve and the second curve are defined with different control points, weights and knot-vectors. Both curves' knot-vectors are normalized such that the parametric length equals the physical length, respectively.
A common curve representing the physical boundary is determined. The common curve can be an overlapped section between the first curve and the second curve. Then the first and second curves knot-vector values are adjusted (e.g. scaled and shifted) in such a way that: setting u=0 would yield projection point {circumflex over (P)}a1 and setting u=Lc would yield projection point {circumflex over (P)}b2 (See
A set of linear constraint equations for numerically connecting the first and second NURBS patches along the physical boundary by computing dependencies of the slave curve's control points to the master curve's control points. The patches together with the set of constraint equations along the physical boundary enable a computerized model created therefrom suitable for FEA.
According to another aspect, the dependencies are determined using virtual insertion and virtual removal techniques between the master and the slave curves or alternatively using the pseudo-inverse of S shown in
Objects, features, and advantages of the present invention will become apparent upon examining the following detailed description of an embodiment thereof, taken in conjunction with the attached drawings.
These and other features, aspects, and advantages of the present invention will be better understood with regard to the following description, appended claims, and accompanying drawings as follows:
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will become obvious to those skilled in the art that the present invention may be practiced without these specific details. The descriptions and representations herein are the common means used by those experienced or skilled in the art to most effectively convey the substance of their work to others skilled in the art. In other instances, well-known methods, procedures, and components have not been described in detail to avoid unnecessarily obscuring aspects of the present invention.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Further, the order of blocks in process flowcharts or diagrams representing one or more embodiments of the invention do not inherently indicate any particular order nor imply any limitations in the invention.
Embodiments of the present invention are discussed herein with reference to
Referring first to
Process 100 starts at step 102 by receiving definitions of first and second NURBS patches in a computer system (e.g., computer system 800 of
Next, at step 104, the knot-vector values of the first curve are normalized such that the parametric length equals its physical length. Similarly, at step 106, the knot-vector values of the second curve are normalized. One exemplary procedure of normalizing a curve is to evaluate the physical length of the curve (e.g., by numerical integration) first, then the knot-vector representing the curve is scaled in such a way that the difference between the first and the last knot-vector value matches the physical length.
At step 111, a common curve (or commonly shared curve) representing the physical boundary is determined. The common curve can be an overlapped section between the first and the second curves. Two exemplary partially-overlapped NURBS patches are shown in
Then, at step 112, the first and second curves knot-vector values are adjusted (e.g., scaled and shifted) in such a way that: setting u=0 would yield projection point {circumflex over (P)}a1 and setting u=Lc would yield projection point {circumflex over (P)}b2 (See
Next step 113, one of the first and second curves having less number of control points along the overlapped section is designated as a master curve, the other as a slave curve.
Finally, at step 114, a set of linear constraint equations for numerically connecting the first and second NURBS patches along the physical boundary is determined. The constraint equations are based on dependencies between the control points of the master curve (independent control points) and the control points of the slave curve (dependent control points). Using the set of constraint equations to restrict the displacement of the slave curve to the master curve, the first and the second NURBS patches can deform in unison along the common physical boundary. The dependency can be computed as follows: determining a first dependency relationship by performing a first set of one or more knot-vector insertion operations from the common curve to the slave curve at step 114a; determining a second dependency relationship by performing a second set of one or more knot-vector insertion operations from the common curve to the master curve at step 114b; and computing the linear constraint equations from the first and the second dependency relationships at step 114c.
The first and second NURBS patches together with the constraint equations for the control points along the physical boundary enable the computerized model created there from suitable for finite element analysis.
To demonstrate how the dependencies are computed, a series of figures are shown in
In a virtual knot-vector insertion procedure, any of the slave curve's knot-vector values that is not already included in the master curve's knot-vector is virtually inserted into the master curve's knot-vector. Dependencies of virtually inserted knot-vector values are computed.
After the virtual knot-vector insertion has been performed, a knot-vector removal is performed for removing any of the master curve's knot-vector values that is not in the slave curve. Dependencies of virtually removed knot-vector values are computed thereafter. Shown in
First, a regular NURBS patch 602 without hole 610 is defined. Then a set of “elements” 604 where the hole 610 is located are removed. Finally, a set of patches 612 around the hole 610 are defined and tied to the patch with the set of elements removed along the boundary. The “X”s along the boundary represent the control points 622. Tying up two patches can be done with the process 100 shown in
Referring now to
All of the curves are NURBS curves defined by control points, knot-vector, polynomial order and weights at control points. A typical pth-degree NURBS curve is defined in Equation (1) as follows:
where:
(n+1) is number of control points,
(m+1) is the number of knots (m=n+p+1),
Pi is control point,
wi is weight at control point Pi,
p is polynomial order (degree) of the curve,
U (u0, u1, . . . , um) is knot-vector, which contains non-decreasing sequence of real numbers,
Ni,p(u) is pth-degree B-spline basis function (defined recursively),
The curves are then normalized such that the parametric length equals the physical length. To compute the length L 720 of a NURBS curve 710 shown in
L=∫
u
u
|C′(u)|du=∫u
L=L
p
+ . . . +L
m−1−p (3)
L
i=∫u
Once respective arc lengths of the two curves (i.e., “Curve-1” 711 and “Curve-2” 712) are computed, the two knot-vectors are scaled and shifted. For example, an initial knot-vector of a curve is listed as U=(a, . . . , a, up+1, . . . , um−p−1, b, . . . , b). There are (p+1) terms of “a” and “b”. The arc length is calculated using Equation (5).
L=∫
a
b
|C′(u)|du (5)
Normalized knot-vector of U is Ũ=(0, . . . , 0, ũp+1, . . . , ũm−p−1, L, . . . , L) with
Referring now to
Û
(1)=(−a1, . . . ,−a1,ũp+1(1), . . . ,ũm
Û
(2)
=Ũ
(2)=(0, . . . ,0,ũp+1(2), . . . ,ũm
Next, the curve having fewer control points along the overlapped section (common curve 715) is designated as master curve. The other curve is designated as slave curve. In the example shown in
Knot-vector of “Curve-1” 711 is Û(1)=(â(1), . . . ,â(1),ûp+1(1), . . . ,ûm
Knot-vector of “Curve-2” 712 is Û(2)=(â(2), . . . ,â(2),ûp+1(2), . . . ,ûm
In determining the dependencies between the control points of “Curve-1” 711 and “Curve-2” 712, knot insertion operations are performed in the slave curve and in the master curve. As a result, the master and the slave curves share the same knot-vector along the overlapped section (or common curve 715) shown in
In other words, for “Curve-1” 711, missing knots are inserted and P(c) are computed depending upon P(1). For “Curve-2” 712, missing knots are inserted also, and P(c) are computed depending upon P(2). And control points in the overlapped section are P(c)=(P0c, P1c, P2c, P3c, P4c, P5c, P6c, P8c, P9c). The dependencies between control points of “Curve-1” 711 and “Curve-2” 712 are computed using pseudo-inverse of S shown in
Further, the method for a knot insertion operation is shown in the following example:
Knot ūϵ[uk,uk±1] is inserted in a knot-vector u=[u1, u2, . . . , um].
A ratio is then calculated as follows:
for k−p+1≤i≤k.
Then the weighted control point Qiw=(1−αi)Pi−1w+αiPiw is inserted as follows:
Q
1
w
=P
1
w
. . .
Q
k−p
w
=P
k−p
w
Q
i
w=(1−αi)Pi−1w+αiPiw
Q
k
w
=P
k
w
. . .
Q
m+1
w
=P
m
w
For this the definition of the four-dimensional weighted control points has been used. Given a set of control points Pi and weights wi the weighted control points are defined with: Piw=(wixi, wiyi, wizi, wi).
According to one aspect, the present invention is directed towards one or more computer systems capable of carrying out the functionality described herein. An example of a computer system 800 is shown in
Computer system 800 also includes a main memory 808, preferably random access memory (RAM), and may also include a secondary memory 810. The secondary memory 810 may include, for example, one or more hard disk drives 812 and/or one or more removable storage drives 814, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive 814 reads from and/or writes to a removable storage unit 818 in a well-known manner. Removable storage unit 818, represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 814. As will be appreciated, the removable storage unit 818 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative embodiments, secondary memory 810 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 800. Such means may include, for example, a removable storage unit 822 and an interface 820. Examples of such may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an Erasable Programmable Read-Only Memory (EPROM), Universal Serial Bus (USB) flash memory, or PROM) and associated socket, and other removable storage units 822 and interfaces 820 which allow software and data to be transferred from the removable storage unit 822 to computer system 800. In general, Computer system 800 is controlled and coordinated by operating system (OS) software, which performs tasks such as process scheduling, memory management, networking and I/O services.
There may also be a communications interface 824 connecting to the bus 802. Communications interface 824 allows software and data to be transferred between computer system 800 and external devices. Examples of communications interface 824 may include a modem, a network interface (such as an Ethernet card), a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. Software and data transferred via communications interface 824. The computer 800 communicates with other computing devices over a data network based on a special set of rules (i.e., a protocol). One of the common protocols is TCP/IP (Transmission Control Protocol/Internet Protocol) commonly used in the Internet. In general, the communication interface 824 manages the assembling of a data file into smaller packets that are transmitted over the data network or reassembles received packets into the original data file. In addition, the communication interface 824 handles the address part of each packet so that it gets to the right destination or intercepts packets destined for the computer 800. In this document, the terms “computer program medium”, “computer readable storage medium”, “computer recordable medium” and “computer usable medium” are used to generally refer to media such as removable storage drive 814 (e.g., flash storage drive), and/or a hard disk installed in hard disk drive 812. These computer program products are means for providing software to computer system 800. The invention is directed to such computer program products.
The computer system 800 may also include an input/output (I/O) interface 830, which provides the computer system 800 to access monitor, keyboard, mouse, printer, scanner, plotter, and the likes.
Computer programs (also called computer control logic) are stored as application modules 806 in main memory 808 and/or secondary memory 810. Computer programs may also be received via communications interface 824. Such computer programs, when executed, enable the computer system 800 to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 804 to perform features of the present invention. Accordingly, such computer programs represent controllers of the computer system 800.
In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 800 using removable storage drive 814, hard drive 812, or communications interface 824. The application module 806, when executed by the processor 804, causes the processor 804 to perform the functions of the invention as described herein.
The main memory 808 may be loaded with one or more application modules 806 that can be executed by one or more processors 804 with or without a user input through the I/O interface 830 to achieve desired tasks. In operation, when at least one processor 804 executes one of the application modules 806, the results are computed and stored in the secondary memory 810 (i.e., hard disk drive 812). Results of the computation (e.g., dependencies of the master and the slave curves) are reported to the user via the I/O interface 830 either in a text or in a graphical representation upon user's instructions.
Although the present invention has been described with reference to specific embodiments thereof, these embodiments are merely illustrative, and not restrictive of, the present invention. Various modifications or changes to the specifically disclosed exemplary embodiments will be suggested to persons skilled in the art. For example, whereas first and second NURBS patches have been shown with rectangular plan view, other shapes may be used in the present invention to achieve the same. Further, whereas
This application is a continued application of pending U.S. patent application entitled: “Joining Imperfectly-Matching NURBS Patches To Form A Computerized Model Suitable For FEA”, Ser. No. 14/051,559, filed on Oct. 11, 2013.
Number | Date | Country | |
---|---|---|---|
Parent | 14051559 | Oct 2013 | US |
Child | 15847919 | US |