The present invention concerns computer generated models representing physical or geometric properties, and in particular a method for local refinement of a computer generated l-dimensional (l>0) model in a computing environment.
In Computer Aided Design (CAD) elementary shapes such as circle, ellipse, cylinder, and cone are represented with specific formats, while free form curves and sculptured surfaces are represented by NonUniform Rational B-splines (NURBS). The NURBS representation can also be used for exact representation of elementary shapes, however, when converting the elementary shapes to NURBS much design intent is lost.
Within Finite Element Analysis (FEA) the shape of the geometry is represented by structures of Finite Elements. The shape of Finite Elements is described by one multi-variate polynomial, or by a number of multi-variate polynomials in case of composite elements. The total shape of the object is described by structures of Finite Elements joined with low order continuity. Frequently within Finite Element Analysis the order of continuity between elements is as low as C0. However, C1 continuity between elements is not uncommon.
While the CAD offers accurate shape description, the shape representation in FEA is a simplification of the real object shape.
Within CAD refinement of NURBS represented surfaces is necessary to offer better shape modeling tools to the designer, and for stitching adjacent NURBS-surfaces together to larger surfaces. The Oslo Algorithm from 1980 introduced refinement of univariate B-spline functions. However, as NURBS surfaces are described by tensor products of univariate B-spline spaces, the refinement has global effects. E.g., when refining a B-spline surface with 100×100 coefficients the minimal increase in the number of coefficients is 100. Such a refinement follows the tensor product structure of the surface, and thus crosses the surface from one side to the other giving a global effect of the refinement.
Within FEA refinement is necessary to adapt the degrees of freedom to the problem at hand, e.g., based on error estimators of a prior analysis result.
In 1988 Forsey (D. R. Forsey and R. H. Barrels, Hierarchical B-Spline Refinement, Computer Graphics, Volume 22, Number 4, August 1988) introduced hierarchal B-splines where a function was represented by a sum of progressively refined tensor product B-spline spaces. The impact of the innovation was less than expected probably due to the multi-level coding of the representation, and the lack of a linear independent bases. The challenges of linear independence were solved in 1998 in the PhD thesis of Kraft (R. Kraft, Adaptive und linear unabhängige multilevel B-splines und ihre Anwendungen. PhD thesis, Math Inst A, University of Stuttgatt, 1998). Also this work had little impact as the thesis was written in German. The coding of the hierarchal B-splines of Forsey and Kraft is by hierarchical structures of rectangular regions in the domain of the spline function. Kraft removes linearly dependent basis functions at the coarser levels of the hierarchy to maintain linear independence of the basis, the coding through rectangular regions give the refinement a much wider footprint than is necessary When Sederberg introduced the C2 bicubic T-splines in 2003 (T. W. Sederberg, J. Zheng, A. Bakenov., and A. Nasri, T-splines and T-NURCCS. ACM Transactions on Graphics 22, (2003), pp-477-484) the impact was significantly higher due to its direct geometric interpretation, and the focus on surface stitching and shape design. The innovation of T-splines is the one level coding of the refinement in the grid of control points (vertices). T-splines allow local refinements through introducing T-junctions in the spline surface control grid. The T-splines control grid can be regarded a generalization of the B-spline control grid, as T-splines provide local refinement of the spline control grid by introducing T-junctions. For T-splines the coding is done directly in the control grid. However, as the B-spline basis functions are deducted from the control grid, a set of rules are introduced to provide consistency. The consequence of these rules are that additional vertices frequently have to be inserting giving the T-spline refinement an nonsymmetrical behavior and a larger spatial footprint than needed.
Vertex insertion according to the T-spline method is shown in
NURBS based isogeometric analysis introduced in 2005 by Prof. Tom Hughes has been shown to be very advantageous compared to traditional finite elements representation with respect to convergence of the analysis and accuracy of results for many example cases. The superiority of the NURBS representation stems from the ability to represent desired continuity between polynomial segments (elements) explicitly in the basis function, the flexibility of polynomial degrees, stable numerical algorithms, and the partition of unity property of the basis functions. However, in isogeometric analysis local refinement of the solution space is frequently necessary to add additional degrees of freedom in regions of the analysis model where error estimates indicates that the solution is not sufficiently accurate. Refinement of a NURBS model by knot insertion has, as already mentioned, a global effect making the bulk of the model grow drastically, and making B-spline refinement too resource consuming for isogeometric analysis. However, as T-splines provide local refinements, they are superior to B-splines with respect to isogeometric analysis. This method is presented in US 20090024370, Method and System for Performing T-Spline Based Isogeometric Analysis, and is hereby incorporated by reference.
The prior art of T-splines provides coding of the local refinement in the control grid coefficients. The spline spaces are derived from the T-grid. Consequently the control of the spline space is indirect. Isogeometric analysis requires good control of the structure of the spline space combined with stable and efficient algorithms. The algorithms for T-splines is currently provided for the cubic case, and extensions to all odd polynomial degrees seem straight forward, however for T-splines there is little mathematical theory developed. The extensions of T-splines to even polynomial degrees are still an open question. It has also been shown that the basis for the accompanying spline space in some cases has linearly is dependent basis functions, and that the growth of coefficients in certain cases is near global. It should also be noted that T-splines refinement is not symmetric as for T-splines the sequence of insertions influence the topology of the resulting splines space as illustrated in
The above short comings have a direct influence on the representation of large spline based models as the representation of local features requires refinement of the spline space with a considerably larger footprint, than expected and necessary. The consequence is that the bulk of the spline representation is considerably larger than what is feasible and the models grow too bulky for many uses. The data processing of prior art models will for some large models not be possible due to the global effects of knot insertion or the large footprint of the local spline space refinement. In cases when it can be performed by a computer, the cost of the analysis will in many cases be too high to be feasible or the problem will be practically unsolvable as the models grow too big, and the demand for memory for model representation and demand for computational performance grow too large and is too expensive.
The invention provides a solution to the problems presented above.
In a first aspect the invention provides a method for spatially refining a computer generated l-dimensional (l>0) model in a computing environment, the l-dimensional model representing physical or geometrical properties, and where the l-dimensional model is represented by tensor product B-splines basis functions and l-dimensional coefficients, where the l-dimensional coefficients are in real or projective space, and the tensor product B-splines basis functions are spanning an r-variate spline space (r>0) having a parameter domain, the method comprising:
a) inserting at least one axis parallel hyper rectangle degenerate in one dimension in said parameter domain, providing a splitting of a support of at least one of said tensor product B-spline basis functions;
b) computing refined tensor product B-spline basis functions by subdivision on said at least one tensor product B-splines basis functions whose support is split, using at least one knot value of the at least one axis parallel hyper rectangle; and
c) computing the resulting refined l-dimensional representation based on said refined tensor product B-spline basis functions.
Further refining of said refined l-dimensional r-variate representation may be performed by computing further refined tensor product B-spline basis functions by performing the steps a), b) and c) on the resulting refined l-dimensional representation.
In an embodiment, the method may further comprise computing an accumulated refinement specification based on the refined tensor product B-spline basis functions. Further subdivision of the refined tensor product B-spline basis functions may be performed by using the accumulated refinement specification for the refined basis functions which domain can be further refined by the accumulated refinement specification.
The axis parallel hyper rectangle with one dimension degenerate may be defined by two r-tuples of real values defining external corners of the axis parallel hyper rectangle, (r>0). The two r-tuples of real values may be specified by predefined knot vectors in all r-parameter directions of said domain.
Further, degree elevation may be performed on selected tensor product B-spline basis function.
The subdivided tensor product B-spline basis functions may be scaled by accumulated weights providing a partition of unity basis. Rationally scaling the subdivided tensor product B-spline basis functions may be performed by dividing by a sum of all tensor product B spline basis functions to provide a partition of unity basis.
The insertion of an axis parallel hyper rectangle according to the invention, results in the splitting of the support of at least one tensor product B-splines basis functions. The splitting of the support provides the dimensions in which to subdivide as the degenerate dimension. The knot value to be used in the subdivision is provided by the coincident coordinate values in the degenerate dimension of the two corners specifying the hyper rectangle.
The present innovation provides an approach in which the refinement of the rational spline represented model is performed by directly refining the spline space used in the representation by specifying regions in the spline space to be refined, the refinement type to be performed and the refinement parameters. The resulting spline space can be further refined.
The present innovation provides local spatial refinement (in FEA frequently denoted h-refinement) for spline represented shape and isogeometric analysis models. It also opens up the possibility for local degree elevation (in FEA frequently denoted p-refinement), and the combination of h- and p-refinement into what in isogeometric analysis is denoted k-refinement.
For all refinements types it is essential that the refined spline space has the spline space that existed before the refinement as a subspace. This means all models that could be represented before the refinement took place can be exactly represented after the refinement.
Consequently, the present invention provides an approach where the desired properties of the spline space are directly modeled, and the vertex grid is derived from the spline space itself. This is opposed to T-splines where the spline space is derived from the vertex grid.
The method according to the present invention directly addresses the structure of the spline space and focuses on approaches giving the refinement a minimal footprint in the parameter domain. The method is general in the sense that it is applicable to r-variate spline spaces (r>0), it is symmetric in the sense that the sequence of the refinement does not influence the result if the sequence of two refinement steps can be swapped, and it is valid for any polynomial degree.
The invention may, e.g., be used in:
The local nature of the refinement is also well suited for parallelization on homogeneous and heterogeneous parallel computational resources, such a multi core CPUs and parallel computers. The invention may be realized e.g. as software running in a computer having a graphics system. E.g. a computer system for CAD or visual modeling of physical structures/data.
We present an approach that we denote, Locally Refined Splines (LR-Splines), that directly models the locally refined spline space using tensor product B-spline basis functions. So rather than having a tensor product B-spline space generated by a tensor product of univariate B-spline spaces, we have a spline space spanned by a sum of tensor product B-spline basis functions. Each tensor product basis function is explicitly represented by its own local knot vectors. The knot vectors of the different basis functions are related through (repeated) basis function specific knot insertion starting from a traditional tensor product B-spline spaced. As the complete spline space can include many levels of refinement, partition of unity is ensured by assigning positive weights to the refined B-spline basis functions. The weights are generated by repeated use of known knot insertion algorithms (e.g. the Oslo Algorithm). The coding of the structure of tensor product B-spline basis functions will consequently be a hierarchical structure of tensor product B-spline basis functions. This scaling by weights is advantageous compared to the rational scaling used in T-splines to ensure the partition of unity property of the refined basis. Rational basis functions resulting from rational scaling are computationally more expensive when calculating values and derivatives, as a denominator is added. LR-spline can also be formulated using rational scaling and thus a variant of LR-splines can be made that include T-splines as a special case.
The present invention LR-Splines, are better suited for isogeometric analysis than tensor product B-splines and T-splines since the spline space can be tailored to the specific needs of an actual analysis. The present invention further provides an alternative to T-splines for solving the surface stitching problem. Modeling of surfaces by local insertion of vertices according to the T-spline idea is also supported. LR-Splines has also applications within 3D animation and within modeling of objects from measurements, both for 3D objects, objects in the real world, and models built from measured physical properties; e.g. hydrocarbon reservoir models built from seismic data.
In traditional hierarchical B-spline representation, the manifold (object) is composed of a sum of B-spline represented manifolds (objects) each spanned by more and more refined tensor product B-spline bases, thus providing a multi-level coding of the object. T-splines represent an alternative one level coding for hierarchical B-spline surfaces through the use of a T-grid. T-splines are not readily extendable to higher dimensional manifolds, and the spline space of T-splines is implicitly defined by the T-grid and a set of rules. The present invention is distinguished from T-splines by explicitly representing the spline space, and by refining selected tensor product B-spline basis functions. It has no restriction to the tensor product B-spline basis functions being 2-variate, and LR-Splines tensor product basis functions can be r-variate, r>0. The coefficients to be multiplied by the more or less refined tensor product basis functions are all on the same level, thus using a one level coding of coefficients similar to the approach of T-splines.
To handle the different level of refinement of the tensor product basis functions of LR-Splines, the basis functions are represented or coded in a hierarchical structure. Weights are introduced for scaling basis functions to ensure that the basis maintains the partition of unity property. The resulting basis is thus composed of scaled tensor product B-spline basis functions. The basis is globally linearly independent. However, within knot intervals the basis functions may be linearly dependent. This is due to the fact that the approach allows basis functions to ignore knots partially within its support. Traditional approaches for using B-splines do not allow this, and will demand refinement of such B-spline basis functions, a refinement that for LR-splines is not necessary.
Example embodiments of the invention will now be described with reference to the followings drawings, where:
a-2c (embodiment of the invention). In LR-spline refinement for 2-manifolds (surfaces) the refinement is performed with knot line segments and then the vertex grid of the spline surface is deducted from the resulting spline space. This example starts from the same configuration as in
a-3b illustrates refinement of a tensor product B-spline spline space by inserting a minimal knot line segment in a bi-cubic B-spline surface according to an embodiment of the invention. In
a-4b illustrates a a refinement in the second parameter direction according to an embodiment of the invention. In
Mathematical background B-spline basis
A B-spline curve is a piecewise polynomial represented using a B-spline basis. A B-spline basis is composed of B-spline basis functions Bi,t,d(x), i=1, . . . , n, where:
The knot sequence t={ti}i=1n+d+1 describe the piecewise polynomial structure and the continuity between adjacent polynomial segments. If the value in the knot vector is repeated m times, then the piecewise polynomial at that value has continuity d−m. The elements of the knot sequence are real numbers that satisfies ti≦ti+1 with ti<ti+d+1. The last condition ensures that at most d+1 can be equal and allows that for a given knot value the continuity can vary from C−1, . . . , Cd−1. (Here C−1 means discontinuity in the function, C0 means contituity iof value, C−1 means contuity of value and tangent, and Cd−1 means continiuti of all derivative of order less than d.) The values and any order derivative of B-spline basis functions can be calculated using algorithms such as the Cox de Boor algorithm. It should be noted that the B-spline basis function Bi,t,d(x)=0 for x<ti and ti+d+1<x, and Bi,t,d(x)≧0 for ti≦x≦ti+d+1. The part of the domain where the B-spline basis function is different from zero is denoted the support of the B-spline basis function.
The B-spline basis is also partition of unity Σi=1nciBi,t,d(x)=1, for td+1≦x≦tn+1.
A B-spline curve is defined by assigning a coefficient, often referred to as a vertex, to each B-spline basis function ƒ(x)=Σi=1nciBi,t,d(x). The partition of unity properties ensures that the curve is a convex combination of the coefficients/vertices ci. This gives the coefficients a geometric interpretation. The coefficients define a polyline referred to as the vertices of the B-spline curve.
A B-spline surface is defined by using two B-spline basis functions one in the x direction and one in the y-direction ƒ(x,y)=Σi=1n
A tensor product B-spline is an organization of 2-variate polynomial patches in a grid as shown in
Our innovation combines the best from the approaches of B-splines, hierarical B-splines while providing a one-level coding, symmetric behavior and guarantee of linear independency. The idea is to build the refinement from compositions of minimal footprint refinement operations, i.e. the insertion of a knot value in one parameter direction in one tensor product B-spline basis function. This may be performed for one parameter direction in one tensor product B-spline basis function at a time, or simultaneously by performing the computation for each parameter direction and tensor product B-spline basis function in parallel in a computer system.
However, the insertion of a knot value in one parameter direction in one tensor product B-spline basis function does not only affect the one basis function. It affects all basis functions that have a width matching the four cells spanned by the knot line segment as illustrated in
As all tensor product B-spline basis functions describing the LR-spline can have individual sequences of knots from the knot vectors the traditional description of B-spline basis functions is not sufficient. The traditional description for a B-spline basis function
For LR-splines we select knot values from a predefined knot vector t with increasing values ti≦ti+1, and thus the knots selected are explicitly listed by their position in the knot vector t. This is done by introducing an index vector i to selecting knots from t.
B
i,d,t(x)=B(x|t(i(0)), . . . , t(i(d+1))).
We assume that the components of i are ordered such that i(0)< . . . <i(d+1). Bi,d,t(x) of degree d is defined by an increasing sequence of knot values {t(i(i): 0≦i≦d+t(i(0))<t(i(d+1))}. The difference from the traditional notation for B-splines is that we express the indices i of the knots selected from t for each B-spline basis explicitly.
This change of notation allows a more flexible selection of knot values from the knot vector t than the traditional notation.
In the following denotes the l-dimensional real space, while l denotes the l-dimensional projective space. The coordinate systems used are the global coordinate systems. However, implementation on computers can possibly employ local coordinate systems when feasible. The coefficients of the functions represented are either in l or in l, l>0. The use of projective spaces l opens up for rational LR-splines thus including NURBS, (NonUniform Rational B-splines) used in CAD and isogeometric analysis as a specialization.
A univariate LR-spline basis function ƒ: →l, or alternatively is ƒ: →l, l≧1 is described by
Here d is the polynomial degree, is an index set, Bi(x)=Bi,t,d(x), and γi are weights used for scaling the basis to be a partition of unity. In the case the LR-spline basis is a tensor product B-spline basis the weights all has value 1. The provision that ciεl, i ε, or ciεl, i ε for l≧1 ensures that both rational and nonrational spline curves are included, and that we include the NURBS curve from Computer Aided Design.
When ƒ(x) is a B-spline represented function following the normal conventions for selection of knots then ={(i, . . . , i+d+1):1≦i≦N}, with n the number of basis functions.
A bivariate LR-spline basis function ƒ: 2→l, or alternatively ƒ:2→l, l≧1 is described by
Here d1 and d2 are polynomial degrees, Bi
A trivariate LR-spline basis function ƒ: 3→l, or alternatively ƒ:3→l, l≧1 is described by
A r-variate LR-spline basis function ƒ:r→l, or alternatively ƒ:r→l, l≧1 is described by
i=(i1, . . . ,ir).
This allows us to make a very compact description of the LR-spline as
with ciεl, iεl, or ciεl, iε, l≧1. This description looks similar to the univariate LR-spline functions and B-spline functions, but here i is a vector of vectors with indices selecting knot values. Thus we have a very compact notation for presenting the innovation.
We note that for each index vector iε we have a 3-tupple of coefficients; the coefficient ci, weight γ and the index i identifying the basis function by identifying knots in the knot vectors t1 . . . , tr. As the vectors t1, . . . , tr are used at all levels of refinement the LR-spline can be represented by the set
Λ={(ci,γi,i)|iε}.
To make the structure of the spline space of the LR-spline as easy to comprehend as possible, the basis of the spline space of the LR-spline is represented by tensor product B-spline basis functions with minimal support. We will do this by performing all subdivision immediately when a spatial refinement is specified. (By immediately is meant before the next computation is made, and not necessarily immediately after in time.) In principle some subdivision can be postponed, but then it is not simple to decide when the basis is linearly independent if the basis is not made to have minimal support basis functions.
For curves LR-splines is the same as B-splines and gives little advantages. However, for spline surfaces and higher dimensional tensor product splines manifolds LR-splines allow to selectively specify a local refinement. The main advantage of this approach is a very compact coding of local refinements of spline spaces, and adaptive model refinement with a minimal footprint. This provides a method requiring significantly less computational performance. The specification of the spatial refinement for the univariate, bivariate, trivariate and r-variate cases are described by:
l
j,min
=l
j,max
(li,min<li,max,i≠j).
This is novel compared to the specification of the refinement of a r-variate tensor product B-spline functions where a refinement is an infinit axis parallel hyperplane in the parameter domain.
We will later on use what we call a refinement specification. This is a set of axis parallel degenerate hyper rectangles of the type above. The variable in which we have the degenerate dimension can be different in the same refinement specification .
In the above refinement specification the refinement is specified in index space. When using actual knot values multiplicity of knot values might render a refinement invalid. E.g., if tj(ij(0))= . . . =tj(ij(dj+1)), and we insert a knot value with index k, where ij(0)<k<ij(dj), then the multiplicity of the knot value tj(ij(0)) will be d1+2 and the resulting subdivision will create degenerate B-spline basis functions. Such degenerate basis functions will have to be discarded, although the refinement is legal as seen from index space. This situation will arise if the multiplicity of knots in the knot sequence is higher than the degree plus two. This can happen if we combine spatial refinement (h-refinement) and local degree elevation (p-refinement) when we adapt the knot sequence to the higher degree. Local degree elevation will be described later.
In the following we will illustrate by an example on a spline spaces spanned by bi-variate tensor product B-spline basis functions. A typical example of the use of such a spline space is the representation of NURBS surfaces in CAD by a tensor product B-splines space. However, the innovation is applicable for spline spaces spanned by higher dimensional tensor product B-spline basis functions, as well as all spline space that can be spanned by basis functions satisfying the partition of unity property.
In the following we assume that all knot lines and knot lines segments have multiplicity one to simplify the description.
In
In
The refinement of LR-splines can be addressed at three levels:
n={γinBi|γin>0,iεn}.
The index set n specifies how the knot vectors t1 . . . , tr is used to describe the piecewise polynomial structure of the spline space and the continuity between the different pieces. Note that we have introduced the refinement level n as a superscript on the weight, and below on the coefficients to cater for the possibility that the weight and coefficient of a specific basis function is modified when neighbouring basis functions are refined. The requirement γin>0, iεn ensures that all weights are positive, thus enforcing removal of basis functions with weight 0, and ensuring that the scaled tensor product B-spline basis functions are non-negative.
While the approach of tensor product B-spline bases automatically provides minimal support basis function, LR-splines subdivision will not always generate minimal support basis functions. A prior spatial refinement specification can be valid for the basis functions resulting from a refinement, while not being valid for the basis function being refined. Consequently, each new basis functions resulting from the refinement is checked to detect if some prior refinement specifications remains to be performed on the basis function. By doing this the LR-spline will be represented with basis functions having a minimal support as is the tradition for a tensor product B-spline bases. So if the refinements happen to create a tensor product B-spline space by refinement of a LR-spline space the basis will become the proper tensor product B-spline basis.
The refinement starts from a source tensor product B-spline space 0. Assuming that we have already performed n-levels of refinement, we have a spline space n. The refinement has made a sequence of spline spaces 0⊂1⊂ . . . ⊂n, with a sequence of refinement specifications 1, . . . n. Each refinement specification i is a list of axes parallel degenarate hyperplanes in the domain of the spline spaces that distinguish i from i−1$. n can also be refined directly from 0 by employing the accumulated refinement specification n=1⊂ . . . ⊂n. As already discussed each of the degenerate hyper planes specified in a refinement specification ((l1,min, . . . , lr,min), (l1,max, . . . , lr,max)) relays three important messages.
The refinement process is depicted as a flowchart in
As already mentioned a spatial refinement specification can result in tensor product basis functions that do not have a minimal support. The minimal support property is important with respect to detecting interference between spatial refinement operations, for the geometric interpretation of the coefficients as a control grid, and for ensuring that the basis is linearly independent. While the first step in the refinement process is to perform a spatial refinement based on the new refinement specification n+1 (
We will focus on the insertion of one single knot in one parameter direction inside the support of one tensor product B-spline basis function at a time. This is not computationally efficient, but makes the discussion simpler. Much efficiency may however be gained computationally by the insertion of multiple knot values simultaneously in multiple tensor product B-spline basis functions when feasible. Simultaneous computation in multiple tensor product B-spline basis functions may be achieved through parallelization on homogeneous and heterogeneous parallel computational resources, such a multi core CPUs and parallel computers.
Assuming that the basis function to be refined is denoted nk, and the refinement to be performed is by the insertion of one knot value in one parameter direction in the support of Bi
B
i
=αi
where αi
We now introduce an additional superscript/subscript k denoting the k insertion of a single knot value in the domain of a tensor product B-spline basis function in the process bringing us from n to n+1. In the following we will use this additional superscript/subscript extensively, and introduce the following spline spaces (
n=n0⊂n1⊂ . . . ⊂nk⊂ . . . =n+1.
Similarly we introduce a sequence of index sets n0, n1 . . . , nk corresponding to spline spaces above n0, . . . , nk. where n0=n . . . . Each of these index sets nj, j=0, . . . , k identifies the set of scaled tensor product basis functions
n
j={γin,jBi|γin,j>0,iεnj},
with n0=n, and γin,0=γin,iεnj=n.
Assuming that the basis function to be refined is denoted Bi
B
i
=αi
where αi
The knot refinement removes the basis function Bi
n
k+1=(nk{ink})∪{j1,j2}.
Most of the basis functions copied from nk are unaffected by the knot insertion. However, the basis functions Bj
The functions ƒnj=cin,jγin,jBi(x) (
When we have made ƒnk+1=cin,k+1γin,k+1Bi(x), (
The basis n+1 is partition of unity. Provided that the polynomial degrees in n+1 remains the same as in 0 and all degenerate basis functions are to removed (no basis function in n+1 have a degenerate support) then the basis functions in n+1 are linearly independent. Consequently we have made a new refined spline space suitable for modeling in a computer system.
In the above we have mentioned that the polynomial degrees in n+1 and 0 are the same, thus addressing spatial refinement (h-refinement). However, the LR-spline concept also opens up the possibility to locally increase the polynomial degree (h-refinement) of selections of basis functions, thus making the concept even more flexible for modeling. However, when doing this care has to be taken to ensure a linearly independent basis. A further h-refinement after degree elevation can result in linear dependency between basis functions of different degrees. For some uses, such as local refinement for CAD-type design or styling, this will not matter, for other uses such as interpolation linear independence is important.
The degree elevation can be done in one parameter direction in one basis function at the time. More intricate degree elevation can be broken into a sequence of such single basis functions, single parameter direction elevation steps.
The identification of which basis function to degree raise can be passed on spatial selection, or directly by identification by the indices set of the basis function. Let the basis function Bi
Where βi
So if n is the index set of the spline space n existing before the degree elevation then the index set after the elevation is n+1=(n\in)∪{j1, . . . , jd
The coefficients also updated along the same lines
The LR-spline after degree elevation of a selected basis function is thus
We have added a superscript e to indicate that there can be linear dependencies between basis functions of different degrees. The process of sorting out these linear dependencies will involve degree elevations of lower degree basis functions that can be linearly dependent on the higher degree basis functions, and will be fairly complicated if there are frequent variation of degrees between adjacent basis function. After this process the LR-spline function ƒn+1 described in a linearly independent basis can be made.
The use of locally refined spline functions will be advantageous compared to tensor product B-splines for all sort of representation problems hampered by the regular grid structure of tensor product B-splines. As the locally refined spline functions model the spline space directly, the control of the spline space is much better than for T-splines. The T-spline theory is currently only developed for surfaces, although extensions to higher dimensions are discussed. The locally refined spline functions also avoid the challenge of large growth in coefficients encountered for some case when using T-splines.
LR-Splines are Aimed at Applications within the Following Areas:
Computer Aided Design for local modification of surfaces and stitching of adjacent surfaces. The present invention provides a more general approach than T-splines due to the direct modelling of the spline space thus introducing the required degrees of freedom where needed, Within CAD LR-splines opens up new approaches for surface modeling by exploiting local refinements. E.g., when lofting curves we no longer have to represent all curves lofted in the spline basis, we just need to insert enough knots to properly represent sequences of consecutive curves. For the approximation of offset surfaces much more compact surfaces can be found. When modeling surface into a network of patches then the local refinements of LR-splines will allow the surfaces to have opposite boundary curves with different knot vectors. LR-spline may also be extended to triangular patches.
Representation of models built from sampled and measured data. This can be models both from industrial production and models of the environment, e.g., terrain models, contour lines from maps, coverage maps for cellular phone base stations or measurement of physical properties and processes. The LR-Splines provide a more compact and flexible description method than current approaches within such modeling. The approach offers a compact one level coding of the coefficient of locally refined splines spaces where earlier approaches had to rely on hierarchical (multi resolution) representation structures. Approximation of measured points still has many open problems. Using tensor product B-spline representation, e.g., for approximation of measured surface points, is not straight forward as in many cases the distribution of points does not match the spatial distribution of degrees of freedom in the tensor product B-spline surface. The LR-Splines open the possibility to adapt the local refinement of basis functions to the actual point distribution and thus perform a better approximation. It also opens the possibility to try “knot interval” removal techniques for surfaces, where we locally try coarsening of the B-spline basis similar to what is done in the knot-removal techniques. The approach of locally refined spline functions B-spline functions is not only limited to surfaces in 3D, but can be used for locally refining tensor product refinement of manifold of higher order than two.
Having described preferred embodiments of the invention it will be apparent to those skilled in the art that other embodiments incorporating the concepts may be used. These and other examples of the invention illustrated above are intended by way of example only and the actual scope of the invention is to be determined from the following claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/NO10/00317 | 8/26/2010 | WO | 00 | 4/9/2012 |
Number | Date | Country | |
---|---|---|---|
61237024 | Aug 2009 | US |