METHODS OF HIGHDEFINITION CELLULAR LEVEL SET IN BSPLINES FOR MODELING AND TOPOLOGY OPTIMIZATION OF THREEDIMENSIONAL CELLULAR STRUCTURES

0Associated
Cases 
0Associated
Defendants 
0Accused
Products 
0Forward
Citations 
0
Petitions 
1
Assignment
First Claim
1. A system comprising,a processor;
 anda memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising;
receiving volumetric data defining a structure; and
generating a threedimensional model of the structure based on the volumetric data, comprising;
partitioning a global design domain for the structure into subdomain cells in threedimensions;
defining cellular level set functions for respective subdomain cells of the subdomain cells; and
defining parameters of the cellular level set functions using Bspline basis functions for the respective subdomain cells.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for designing and optimization of solid/cellular structures are described using a modeling process referred to as highdefinition cellular level set in Bsplines (HDCUBS). With this process, the entire design domain for the solid/cellular structure in question is subdivided into a set of connected volumetric cells in three dimensions. An implicit trivariate Bspline function is defined on each subdomain cell. With this parameterization scheme, constraints can be imposed on the relevant Bspline coefficients to naturally maintain geometric continuities at the connection faces between neighboring cells. The method offers several useful properties and powerful functionalities to build and modify a solid/cellular structure in the modeling process and to conduct topology optimization by directly adjusting the Bspline coefficients. The model construction can be carried out using a fast Bspline interpolation, and the topology optimization can involve a sequence of discrete Bspline convolutions.
0 Citations
No References
No References
20 Claims
 1. A system comprising,
a processor;  and
a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising; receiving volumetric data defining a structure; and generating a threedimensional model of the structure based on the volumetric data, comprising; partitioning a global design domain for the structure into subdomain cells in threedimensions; defining cellular level set functions for respective subdomain cells of the subdomain cells; and defining parameters of the cellular level set functions using Bspline basis functions for the respective subdomain cells.  View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
 and
 15. A method, comprising:
obtaining, by a system operatively coupled to at least one processor, volumetric data defining a structure; and generating, by the system, a threedimensional model of the structure based on the volumetric data, comprising; partitioning, by the system, a global design domain for the structure into subdomain cells in threedimensions; defining, by the system, cellular level set functions for respective subdomain cells of the subdomain cells; and defining, by the system, parameters of the cellular level set functions using Bspline basis functions for the respective subdomain cells.  View Dependent Claims (16, 17, 18)
 19. A machinereadable storage medium, comprising executable instructions that, when executed by one or more processors, facilitate performance of operations, comprising:
defining a threedimensional model for a structure, comprising; partitioning a global design domain for the structure subdomain cells in threedimensions; defining cellular level set functions for respective subdomain cells of the subdomain cells; and defining parameters of the cellular level set functions using Bspline basis functions for the respective subdomain cells; and generating the threedimensional model based on volumetric data corresponding to the structure.  View Dependent Claims (20)
1 Specification
This application claims priority to U.S. Provisional Patent Application No. 62/766,683 filed on Oct. 31, 2018 and entitled “METHODS OF HIGHDEFINITION CELLULAR LEVEL SET IN BSPLINES FOR MODELING AND OPTIMIZATION OF THREE DIMENSIONAL CELLULAR STRUCTURES.” The entirety of the aforementioned application is incorporated by reference herein.
This application relates to computerimplemented techniques for modeling and topology optimization of threedimensional cellular structures using the highdefinition cellular level stet in BSplines (HDCLIBS) method.
Cellular materials and structures, also referred to as architecture materials or metamaterials, are defined as structures composed of downscale microstructures with geometric features that can span several dimensional orders from tens of nanometers to submillimeters. Cellular materials have great application potential in a variety of industries including aerospace, automobile, and medical industries, used as for instance, lightweight design structures, energy absorption structures, and implant scaffolds. For instance, the gradual variation in the composition of cellular materials can reduce the stress concentration effects near the interface between different phases and thus can be used to relieve the “stress shielding” phenomenon for orthopedic implants. A decreased density distribution of honeycomb cellular structures in the crushing direction can also be used to enhance the energy absorption at early crushing stages. Other applications can also be found in thermal insulation and acoustical wave attenuation.
By utilizing microstructures as the building blocks, cellular structural materials can be designed with extraordinary physical properties that were previously inaccessible, such as ultrastrong mechanical performance properties with relatively low densities. These microstructures can have complex internal configurations which can be designed to exhibit a much broader property range than their constituent materials. In addition, by tailoring the configurations in the microscale, remarkable multifunctional responses can also be achieved. With advancements in modern fabrication techniques, such as additive manufacturing and threedimensional printing, fabrication of such cellular structures with complex and multiscale geometric features becomes possible and affordable, which also stimulates the research and development of the cellular structures.
However, cellular structures with highly tailored or extreme physical properties cannot be easily modeled and designed with existing computeraided design (CAD) methods because the feature sizes of the cellular structures can span over several length scales. The most convenient approach in the computational design of cellular materials is to define the microstructures in the material with a periodic array of identical unit cells. The design problem thus is transformed into a topology optimization problem to optimize the material distribution within the design space of a single unit cell to achieve better structural performance In the socalled inverse homogenization approach, the homogenization theory is applied to approximate the effective properties of the material.
While the topology optimization of periodic microstructures has been studied in depth and for a variety of physical properties, the greater potential is in optimized cellular materials and structures with spatiallyvarying microstructures and associated physical properties. When cellular structures are designed with spatiallyvarying microstructures, local requirements on material or structural properties can be best achieved and satisfied. Therefore, they are expected to have a better mechanical performance or multifunctionalities compared with the periodically repeated cellular structures. However, it is even harder to create cellular structures with variable microstructures since each microstructure may have its own configuration. In this regard, a key issue in topology optimization of cellular structures is the representation scheme for modeling variable microstructures while each microstructure could have its own configuration. A widely used method for realizing this purpose is to first characterize the microstructures via explicit parameters and then adjust the cellular structure by changing the microstructure parameters. For this method, the microstructural cells are defined prior to the structural design. In this regard, their topologies are fixed during the design, and no postdesign operations can be applied to the cellular structure for customizing or optimizing the microstructures, which greatly limits the design flexibility. In addition, the parametric representation method cannot adequately model microstructures involving general types of internal features as well as their geometric variations. Therefore, the resulting cellular structures can have only limited gains in structural performance or in multifunctionalities.
Additionally, when designing cellular structures with spatiallyvariable microstructures, it is difficult while crucial to guarantee the geometric connectivity between adjacent cells. When simply using topology optimization to optimize each individual cell, the neighboring cells do not necessarily form an integral part, causing deterioration in physical properties. Any unconnected cells cannot bear external load and will cause fabrication difficulties in manufacturing. Existing works addressing this critical issue typically focus on pursuing geometric connectivity conditions on the adjacent microstructural cells, such as imposing geometric constraints, applying predetermined connectors, or employing sequential filtering. However, these piecemeal approaches essentially impose a severe design space restriction with a large set of geometric constraints, thus compromising the performance of the optimized design. Consequently, they substantially reduce the capability of the design optimization, if still considered as topology optimization, and they cannot be readily extended to threedimensional cellular structures. Therefore, many newly designed artificial materials cannot be adopted as cellular structures, which limits gains in structural performance and functionality.
The following presents a summary to provide a basic understanding of one or more embodiments of the invention. This summary is not intended to identify key or critical elements or delineate any scope of the different embodiments or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that is presented later.
In one or more embodiments described herein, systems, computerimplemented methods, apparatus and/or computer program products are described that provide a general geometric model for topology optimization of general solid and/or cellular structures with spatiallyvarying microstructures as well as optimized shape and topology in threedimensions. This model naturally guarantees geometric connectivity with a defined level of smoothness at the boundaries between any neighboring microstructural cells. Using this model, the topology optimization process simultaneously optimizes the solid domain of the structure as well as the physical properties of all structural cells that comprise the cellular structure. This design model is referred to as a “highdefinition cellular level set in BSplines Splines,” model, hereinafter “HDCLIBS”, (or simply CLIBS in short). This design model employs the basic concept of level set method, while its application is generalized onto a set of subdomain cells that partition the entire design domain for the structure under optimization, potentially leading to highdefinition cellular/solid structures.
According to an embodiment, a system is provided that comprises at least one processor, and at least one memory that stores executable instructions that, when executed by the at least one processor, facilitate performance of operations, comprising receiving volumetric data defining a structure, and generating a threedimensional model of the structure based on the volumetric data. In this regard, the generating comprises partitioning a global design domain for the structure into subdomain cells in threedimensions, defining cellular level set functions for respective subdomain cells of the subdomain cells, and defining parameters of the cellular level set functions using Bspline basis functions for the respective subdomain cells.
In implementations, the generating further comprises initializing the cellular level set functions using a fast Bspline interpolation method or a fast discrete Bspline convolution method to determine Bspline coefficients for the Bspline basis functions based on the volumetric data, resulting in initialized cellular level set functions. With these implementations, the generating further comprises assembling the initialized cellular level set functions into a global level set function for the structure, and reconstructing the volumetric data based on the global level set function, resulting in a transformation of the volumetric data into the threedimensional model. In another implementation, the generating comprises determining Bspline coefficients for the Bspline basis functions based on the volumetric data using a fast Bspline interpolation method or a fast discrete Bspline convolution method, resulting in defining internal geometric properties of the subdomain cells, determining values of the cellular level set functions using the Bspline coefficients, resulting in defining level set representations of the subdomain cells, and assembling the level set representations in accordance with a global level set function for the structures, resulting in a transformation of the volumetric data into the threedimensional model.
In some embodiments, the generating further comprises, for the respective subdomain cells, defining a rectilinear grid with regular spacing in respective directions of the threedimensions, locating knot vectors of the Bspline basis functions on the rectilinear grid, and setting first and last knots in the respective directions to be fully repeated with highest multiplicity.
In some implementations, the threedimensional model comprises a first highdefinition cellular level set in Bsplines (HDCLIBS) model, and the operations further comprise connecting the first HDCLIBS model with a second HDCLIBS model, constraining boundary Bspline coefficients associated with boundary faces between neighboring subdomain cells of the first HDCLIBS model and the second HDCLIBS model to achieve a defined order differentiable of continuity between the first HDCLIBS model and the second HDCLIBS model. The operations can further comprise dividing a subdomain cell of the subdomain cells into two or more cells by inserting a repeating knot into a knot sequence of a Bspline basis function of the Bspline basis functions defined for the subdomain cell.
In one or more embodiments, the operations further comprise controlling properties of the threedimensional model by adjusting Bspline coefficients and/or knot vectors of the Bspline basis functions. In this regard, the operations can further comprise adjusting geometric properties of the threedimensional model by adjusting Bspline coefficients of the Bspline basis functions. For example, the adjusting can comprise independently adjusting geometric properties of the subdomain cells by independently adjusting subsets of Bspline coefficients respectively associated with the subdomain cells. The adjusting can also comprise performing adjustment operations comprising dilation, erosion, grading, and blending operations.
In various embodiments, the operations further comprise optimizing a topology of the threedimensional model in accordance with a defined optimization function by independently adjusting the Bspline coefficients for the respective subdomain cells using as a sequence of discrete convolution operations. With these embodiments, the optimizing comprises determining a solution to the optimization function without applying the HamiltonJacobi equation or a linear system with an interpolation matrix. In some implementations, the optimizing comprises applying a renormalization scheme to bound a gradient norm of the cellular level set functions by a defined value.
In some embodiments, elements described in the disclosed systems can be embodied in different forms such as a computerimplemented method, a computer program product, or another form.
The following detailed description is merely illustrative and is not intended to limit embodiments and/or application or uses of embodiments. Furthermore, there is no intention to be bound by any expressed or implied information presented in the preceding Summary section or in the Detailed Description section.
The disclosed subject matter is directed to systems, computerimplemented methods, apparatus and/or computer program products are described for modeling and optimizing high definition structures, including cellular and solid structures, using a type of level set modeling technique referred to as cellular level set in Bsplines (CLIBS), or high definition cellular level set in Bsplines (HDCLIBS). This modeling technique results in a general geometric model for topology optimization of solid and/or cellular structures with spatiallyvarying microstructures and provides for efficiently and effectively optimizing the shape and topology of solid and/or cellular structures in three dimensions.
With the subject HDCLIBS modeling technique, the entire design domain for the solid/cellular structure in question is first subdivided into a set of connected volumetric cells in three dimensions. The resolution of the volumetric cells can be determined adaptively or in relation to the scale and size in the anticipated structural features, potentially leading to high definition with large scale data and computation. On each subdomain cell, a level set function is defined respectively, such that the entire set of the level set functions comprise the global level set function over the entire global domain. These level set functions defined for the respective subdomain cells are thus referred to herein as “cellular level set functions.”. This contrasts with the conventional level set method, where a single, global level set function captures the interior and the boundary of the whole structure.
In addition, on each subdomain cell, an implicit Bspline function is employed to define the cellular level set function for representing the structural material domain of the cell. Benefiting from the intrinsic properties of the implicit Bsplines, this parametric representation offers several useful properties and powerful functionalities to build and modify a solid/cellular structure in the modeling process and to conduct topology optimization. These processes are directly dealt with in terms of the Bspline coefficients with great numerical efficiency. For example, in one or more embodiments, a fast interpolation technology is used to initialize the implicit BSpline based level set functions to generate an initial geometric model of a structure with negligible computational cost. Connection and division operations can then be used to adjust the discretization layout and hierarchy of the initial structure. A series of additional adjustment operations, including erosion, dilation, grading and blending functions are further provided to modify the modeled structure in an easy and intuitive way.
More importantly, by employing a parameterization scheme that defines implicit Bspline basis functions for each subdomain cell, constraints on the relevant Bspline coefficients can be imposed to naturally maintain geometric continuities at the connection faces between neighboring cells during adjustment operations (e.g., when dividing the structure, combining structures, eroding the structure, dilating the structure, blending the structure, and other structural manipulations). In this regard, by defining compatibility constraints on the parametric coefficients of the Bspline basis functions of the neighboring cells, their geometric connectivity up to a specified order of smoothness can be controlled, for example, with a defined differentiable C orerd (e.g., a zeroorder differentiable C^{0}, a firstorder differentiable C^{1 }a secondorder differentiable C^{2}, etc.).
The disclosed subject matter further provides enhanced topology optimization techniques for cellular structures modeled using the HDCLIBS method based on optimization of the Bspline coefficients. In this regard, while the model construction can be carried out with the fast Bspline interpolation, the topology optimization involves a sequence of discrete Bspline convolutions. In one or more embodiments, the optimization process involves conducting adjoint sensitivity analysis, deriving the shape derivative, and employing the steepest descent algorithm to update the coefficients. In particular, based on the shape derivatives, the steepest descent scheme is readily devised for updating the Bspline coefficients and for evolving the level set functions of all cells and optimizing the physical properties of all cells as well as the global structure according to the design objective and specified constraints. During the optimization, several manipulations on the coefficients can be applied to generate different types of structures, including single scale structures, periodic cellular structures, and layered cellular structures. By virtue of implicit Bsplines, the updating of the optimization variables in terms of the Bspline coefficients can be carried out recursively, without involving solution for a linear algebraic system. Thus, the resulting optimization process is substantially efficient, scalable, and readily implemented on largescale parallel computing platforms.
One or more embodiments are now described with reference to the drawings, wherein like referenced numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a more thorough understanding of the one or more embodiments. It is evident, however, in various cases, that the one or more embodiments can be practiced without these specific details. The proposed modeling and optimization techniques are highly scalable and provide for high definition modeling and optimization applications on largescale computing platforms.
Turning now to the drawings,
For example, system 100 includes a structure modeling and topology optimization module 104 that can be and include one or more computer/machine executable components. In the embodiment shown, the structure modeling and topology optimization module 104 includes several computer/machine executable components, including a HDCLIBS modeling component 106, an optimization component 116 and a rendering component 118. These computer/machine executable components (and other described herein) can be stored in memory (not shown) associated with the one or more machines (not shown). The memory can further be operatively coupled to at least one processor (not shown), such that the components (e.g., the structure modeling and topology optimization module 104 itself, the HDCLIBS modeling component 106, the optimization component 116, the rendering component 118, and other components described herein), can be executed by the at least one processor to perform the operations described. Examples of said and memory and processor as well as other suitable computer or computingbased elements, can be found with reference to
In various embodiments, based on initial structure data 102 for a structure (e.g., volumetric data, solid representation data, surface representation data, or the like), the HDCLIBS modeling component 106 can generate a geometric model (e.g., a HDCLIBS model 120) of the structure in accordance with the disclosed HDCLIBS (or CLIBS) method or modeling scheme. For example, the geometric model can include a graphical geometric model of an object or structure that can be visually rendered with via a display (e.g., using the techniques described herein), stored in memory, manufactured, printed (e.g., using threedimensional printing technology), or the like. The HDCLIBS modeling component 106 (and the optimization component 116) can also provide various interactive computer graphics tools for designing, modifying and optimizing geometric structures generated based on the HDCLIBS modeling scheme. The HDCLIBs modeling technique can be used to generate both twodimensional and threedimensional models of solid structures and cellular structures. In various embodiments, the disclosed HDCLIBS modeling technique is particularly applied to generate highdefinition threedimensional representations of cellular structures with spatially varying microstructures. A geometric model or representation generated, designed or otherwise designed in accordance with the HDCLIBS (or CLIBS) method/scheme described herein is referred to hereafter as an HDCLIBS model (or simply a CLIBS model).
In this regard, the subject HDCLIBS method for representing/modeling the geometric properties of a structure is based on the concept of the level set method for shape and topology optimization. In the level set method, the structural interfaces are implicitly expressed by the zero level of a higherdimensional level set function, which naturally accommodates topology changes in the material domains by dynamic changes in the level set function.
where x={x, y, z}∈R^{3 }represents the coordinates of a point within the design domain D; t denotes the pseudotime for evolution of the level set function; ∂ω represents the boundary of the structure; ω denotes the structure'"'"'s material domain, respectively.
By using the global level set function of Equation 1, the evolution of the structural boundary is transformed into an updating of the zero curve (for a twodimensional structure) or surface (for threedimensional structure) of the level set function implicitly. In the conventional level set method, the evolution of the level set function is achieved by solving the following HamiltonJacobi partial differential equation (Equation 2 below) as follows:
where V=dx/dt and V^{n }is the normal velocity representing the level set dynamic evolution. The signed distance function is the most commonly used function for the level set function ϕ, which is differentiable almost everywhere and its gradient satisfies the eikonal equation. Efficient algorithms for calculating the signed distance function include the fastmarching method and the narrow band method, constructing the single function over the entire design domain D.
The subject HDCLIBS modeling technique introduces a new adaptation of the classical level set method referred to herein as the cellular level set representation method. In contrast to the conventional level set mode using a single global level set function ϕ shown in
In this regard, in one or more embodiments, in association with generating an HDCLIBS model in accordance with the HDCLIBS method, the HDCLIBS modeling component 106 can apply the cellular level set representation method by initially partitioning the global design domain D and the global structural domain ω into M subdomain cells D_{s }and microstructures ω_{s }(s=1, . . . , M), respectively, in accordance with Equation 3 as follows:
where ∂ω_{s }are the boundaries of the microstructures. On each of the open and bounded subdomain cell D_{s}, as illustrated in
According to the level set concept, the subdomain level set function ϕ_{s }could be dynamically evolved on its subdomain cell D_{s }with the governing HamiltonJacobi (HJ) Equation 5 below:
where V_{s}^{n }is the outwardnormal velocity field of the subdomain level set function ϕ_{s}. Therefore, the total set of the subdomain level set functions comprise the global level set function over the entire global domain D. These level set functions ϕ_{s }on subdomain cells are referred to hereinafter as cellular level set functions. With this design domain discretization, the feature size of the subdomain cell can be refined to an ultrafine scale, thus producing designs with high definition and extraordinary details.
With the classical level set method with a single global function ϕ, encounter many issues associated solving the HamiltonJacobi equation with a discrete scheme, including issues with reinitialization, velocity extension, and satisfying the CourantFriedrichsLewy (CFL) condition for numerical stability. In addition, existing parametrization schemes for the global level set function ϕ require contracting dense or modestsparse global interpolation matrices on the entire design domain. Therefore, techniques that involve parameterization of a single global level set function ϕ result in high computation costs when calculating the dynamic changes in shape and topology optimization. Benefiting from the intrinsic properties of the implicit BSplines, by defining implicit Bspline function for each of the cellular level set functions ϕ_{s}, this parametric representation shows much greater flexibility in modeling solid and/or cellular structures and in providing functionalities for designing and optimization of the solid and/or cellular structures with low computational costs.
To further improve upon the deficiencies of the classic level set modeling technique, in addition to partitioning the entire design domain D of the global structure under optimization is into a set of subdomain cells D_{s }in three dimensions and defining a cellular level set function ϕ_{s }for each subdomain cell (e.g., such that the entire set of the level set functions comprise the global level set function over the entire global domain), the subject HDCLIBS modeling technique further uses an implicit Bspline function for the cellular level set function ϕ_{s }for each subdomain cell for representing the structural material domain of the subdomain cells.
In various embodiments, the implicit Bspline function used for each cellular level set function ϕ_{s}, is expressed as the linear combination of Bspline basis functions for the respective model dimensions. In this regard, for the general threedimensional model, the tensorproduct Bspline function, of degree p in x direction, degree q in y direction, and degree r in z direction, is a trivariate piecewise polynomial function of the form of Equation 6 as follows:
wherein c_{i,j,k}^{s}(t) form an array of (n+1)×(m+1)×(l+1) Bspline coefficients for the level set function, and wherein N_{i,j,k}^{s}(x) is the trivariate Bspline function in the form of tensorproduct of Equation 7,
N_{i,j,k}^{s}(x)=B_{i,p}^{s}(x)B_{j,q}^{2}(y)B_{k,r}(z) Equation 7,
while B_{i,p}^{s}(x), B_{j,q}^{s}(y) and B_{k,r}^{s}(z) are the Bspline basis functions defined on the knot vectors in x, y, and z directions, respectively.
The knot vectors of the Bsplines are located on a grid spanning the fixed subdomain cell D_{s}, with a regular spacing h in each of the three directions respectively. Thus, the cellular level set function ϕ_{s }is parameterized with the coefficients c_{i,j,k}^{s }as the parameters, while its boundary is delineated by the level set equation on the subdomain cell in accordance with Equation 8 below:
The implicit trivariate Bspline model is general, as the coefficients c_{i,j,k}^{s }define the variables for parametric modelling and design on the subdomain cells. In various embodiments, although these coefficients are not customarily associated with any spatial coordinates of the grid, they can be reviewed as control parameters for ϕ_{s }at the socalled Greville abscissae control points.
The implicit Bspline basis functions have been noted for several attractive properties, including compact local support and a tight bound on its gradient norm. In the field of image processing, implicit Bspline basis functions have been used as image models for segmentation and registration due to their intrinsic properties. For instance, a fast Bspline interpolation formulation has been developed for efficient surface reconstructions from volumetric data. Furthermore, the Bspline basis functions are locally supported, and the support domain can be adjusted by knot manipulations. Therefore, user interactions are easily accommodated for controlling properties of the reconstructed surfaces such as local smoothness.
For example, without loss of generality, a univariate Bspline function of degree p in x direction within a onedimension unit cell is expressed as follows,
wherein c_{i }is the Bspline coefficient and the basis function B_{i,p}(x) can be formed recursively as follows:
and
wherein x_{i }is the ith value of a knot sequence X={x_{0}, x_{1}, x_{2}, . . . , x_{N}}.
If a knot value is unique, it is a simple knot. When only simple knots are used, all the basis functions will share the same shape. When a knot value is repeated by S times, it is a repeated knot with multiplicity S. For example, a knot sequence for S=3 is x_{0}=x_{1}=x_{2}=0. Further, the multiplicity cannot be higher than p+1 and N=n+p+1. All these properties are generalized to the trivariate Bspline basis function N_{i,j,k}(x), owing to the tensor product in the threedimensional case of Equation 7.
With reference again to
In one or more embodiments, the model initialization component 108 can generate an initial HDCLIBS model of a structure based on initial structure data 102 for the structure (e.g., volumetric data, solid representation data, surface representation data, or the like) in accordance with the HDCLIBS modeling method described above. At a high level, the initial construction of a threedimensional HDCLIBS model based on the initial structure data 102 involves partitioning the global design domain D for the threedimensional structure to be generated based on the initial structure data 102 into subdomain cells D_{s }and subdividing the global level set function ϕ for the threedimensional structure into cellular level set functions for each of the subdomain cells ϕ_{s}, and determining the BSpline coefficients for the respective Bspline basis functions used for the cellular level set functions. In this regard, the model initialization component 108 can define the subdomain cells and initialize the level set function ϕ for the model by determining the trivariate Bspline coefficients for each subdomain cell.
In various embodiments, the model initialization component 108 can apply predefined and/or default boundary conditions for the cellular structure design and the discretization of the design space to facilitate determining/defining of the subdomain cells (e.g., that controls the number and dimensions of the cells). In one or more embodiments, the modeling/design constraints for the HDCLIBS model can be based on a rectangular grid. For example, as shown in
The mechanism applied by the model initialization component 108 for generating the initial HDCLIBS model can vary based on the type of the initial structure data 102. In one or more embodiments, if the initial structure data 102 comprises volumetric data, such as computed tomography (CT) scan data, point cloud data, or other image data that has been defined using a volumetric representation, the modelinitialization component 108 can compute the HDCLIBS model of the structure by partitioning the volumetric data into subdomain cells in accordance with the defined/default boundary/discretization constraints, determining the Bspline coefficients in each subdomain cell, determining the values/shapes of the subdomain level set functions ϕ_{s }for each subdomain cell, and building the model by assembling the values/shapes of subdomain level set functions ϕ_{s}. Into the global level set function ϕ. This is essentially a problem of model reconstruction. In this regard, if initial structure data 102 comprises volume data, the model initialization component 108 can generate the initial construction of the HDCLIBS model using the input volume data essentially by transforming the volumetric data in its input format (e.g., a point cloud or the like), into the format defined for the subject HDCLIBS model.
In other implementations, in which the initial structure data 102 comprises a solid or surface representation (e.g., a CAD model) of the structure to be modeled, the model initialization component 108 can first build the signed distance function for the model, as in the case of traditional level set representation shown in
In various embodiments, the model initialization component 108 can employ a fastinterpolation method to determine the BSpline coefficients for each subdomain cell. For example, in some embodiments, for trivariate Bsplines up to a threshold cubic degree, (e.g., p=3), the model initialization component 108 can employ a fast Bspline interpolation function to determine the Bspline coefficients. The fast Bspline interpolation function can also be extended to cases including repeated knots. For Bsplines of higher orders (e.g., relative to a defined threshold order), the model initialization component 108 can determine the Bspline coefficients using a fastdiscrete Bspline convolution function. Moreover, since the trivariate Bspline basis functions are tensor products for the three dimensions, this convolution can be performed as a sequence of simple onedimension convolutions. Therefore, this construction process is computationally efficient, particularly in comparison to any L^{2}projection or collocation methods.
At 802, a system operatively coupled to at least one processor (e.g., system 100), defines a threedimensional model for a structure, comprising: partitioning a global design domain for the structure subdomain cells in threedimensions; defining cellular level set functions for respective subdomain cells of the subdomain cells; and defining parameters of the cellular level set functions using Bspline basis functions for the respective subdomain cells. At 804, the system initializes the cellular level set functions using a fast Bspline interpolation method or a fastdiscrete Bspline convolution method to determine Bspline coefficients for the Bspline basis functions based on the volumetric data, resulting in initialized cellular level set functions. At 806, the system assembles the initialized cellular level set functions into a global level set function for the structure, and at 808, the system reconstructs the volumetric data based on the global level set function, resulting in a transformation of the volumetric data into the threedimensional model (e.g.an HDCLIBS model 120).
In accordance with modeling process 800, the boundaries of the design domain and the discretization scheme for the subdomain cells can be predefined. For example, in various implementations, the global design domain for the structure can be based on a rectilinear design domain of a defined length (L), width (W) and height (H), (e.g., L=4, H=2, and W=2), and divided in to rectilinear cells in accordance with a defined discretization scheme (e.g., 4×2×2 unit cells). The discretization scheme can further define a rectilinear grid spanning the subdomain cells with regular spacing h in each of the dimensional directions (e.g., each cell can have a 16×16 ×16 grid of equal spacing). For the purpose of maintaining connectivity between the cellular level set functions of the two neighboring cells at their common face, knot vectors of the cubic Bsplines are located on the rectilinear grid and set to be fully repeated at the first and last knots in each direction with the highest multiplicity, such as for example, p+1 in x direction.
With reference again to
In various embodiments, the cellular connection component 110 can facilitate connecting two or more HDCLIBS model units together to generate a connected model in manner that maintains geometric connectivity between adjacent units. In particular, for any cellular model, an essential requirement is the capability to specify and maintain geometric connectivity of the represented structure between any neighboring cells at their adjacent faces. The mature of the subject HDCLIBS model with a volumetric representation being represented by implicit Bspline basis functions allows for geometric connectivity with specified smoothness across any neighboring cells by adjusting the Bspline coefficients related to the repeated boundary knots. This is achieved by constraining the trivariate coefficients c_{i,j,k}^{s }in the cellular level set functions ϕ_{s}(x) associated with the boundary faces connecting two neighboring cells.
For example, without loss of generality, consider a univariate Bspline function of degree p in x direction within a onedimension unit cell with a knot sequence X={x_{0}, x_{1}, x_{2}, . . . , x_{N}} and a degree of the univariate is set to p=3. The two adjacent cells are simply denoted by symbols of + and −, respectively. At the starting boundary node of one cell, x_{0}^{4}, it is a repeated knot. Similarly, for the neighboring cell to be connected at the same position, its ending boundary knot x_{n}^{−} is also repeated. With the use of cubic Bspline basis functions, it can be proved that the geometric connectivity of the two adjacent onedimensional cells at their joint position is achieved up to second order differentiable when the following relations are, respectively, satisfied among the Bspline coefficients:
c_{0}^{+}=c_{n}^{−}, for C^{0 }continuity; Equation 12,
c_{1}^{+}c_{0}^{+}=−c_{n−1}^{−}+c_{n}^{−}, for C^{1 }continuity; Equation 13,
c_{2}^{+}−3c_{1}^{+}+2c_{0}^{+}=c_{n−2}^{−}−3c_{n−1}^{−}+2c_{n}^{−}, for C^{2 }continuity; and Equation 14.
In accordance with this example in which p=3, C^{0 }continuity can be guaranteed when Equation 12 is satisfied, C^{1 }continuity can be guaranteed when equation 13 is satisfied, and C^{2 }continuity can be guaranteed when equation 14 is satisfied. These conditions for geometric connectivity across adjacent cells could be easily generalized for any other order of Bsplines as well.
The geometric discontinuity of the geometric mismatch, as shown in this example can be eliminated by enforcing the geometric connectivity conditions defined in Equations 12, 13 and 14 on the Bspline coefficients. For example, the cellular connection component 110 can change the bivariate coefficients of the cellular level set functions (e.g., the Bspline coefficients) as the average of, denoted as (c_{0}^{+})* and (c_{n}^{−})*, such that Equation 15 below is satisfied to guarantee the C^{0 }continuity at the connection face.
(c_{0}^{+})*=(c_{n}^{−})*=(c_{0}^{+}+c_{n}^{−})/2 Equation 15.
Moreover, the cellular connection component 110 can select the new coefficients (c_{0}^{+})*, (c_{1}^{+})*, (c_{2}^{+})*, (c_{n}^{−})*, (c_{n−1})* and (c_{n−2}^{−})* to satisfy the same as well in accordance with Equation 16 below, thus satisfying all the continuity conditions of Equations 12, 13 and 14 and yielding a C^{2 }continuity.
(c_{0}^{+})*=(c_{1}^{+})*=(c_{2}^{+})*=(c_{n}^{−})*=(c_{n−2}^{−})*=(c_{0}^{+}+c_{n}^{−})/2 Equation 16.
The cellular connection component 110 can further apply the continuity constraints of Equations 12, 13, 14 or 16 to generate periodic cellular structures with a defined level of continuity (e.g., C^{0}, C^{1}, C^{2}) across the adjoined faces. In this regard, a periodic structure can consist of a single unit cell that is periodically distributed within the structure as a plurality of connected repeating units. The cellular connection component 110 can generate a periodic structure by generating a plurality of the same cellular units (e.g., as HDCLIBS models) and applying the geometric continuity conditions of Equations 12, 13 and/or 14 (e.g., collectively Equation 16) to the opposite faces of the cells in the direction of periodic repetition. It is worth noting that not only the periodicity is provided, but also a higher order continuity (e.g., C^{2 }for example) in the periodic connections is readily accommodated by virtue of the HDCLIBS model.
(1) Equation 17
Transforming the initial cell into adjusted cell 1201. After repeating and adjoining the adjusted cell 1201 cell into a 2×2×2 array of the cells, a new periodic cellular structure 1202 is constructed which has C^{2 }continuity at the boundaries of connected cells. The top view 1203 of a new periodic cellular structure 1202 delineates smooth connections on the common boundaries of the periodic structure.
With reference again to
In particular,
c_{n}^{−}=c_{i+1}^{0}, c_{n−1}^{−}=c_{i}^{0}, c_{n−2}^{−=c}_{i−1}^{0}, c_{n−3}^{−}=c_{i−2}^{0} Equation 18.
c_{n}^{+}=c_{i+2}^{0}, c_{n−1}^{+}=c_{i+3}^{0}, c_{2}^{+=c}_{i+4}^{0}, c_{3}^{+}=c_{i+5}^{0} Equation 19.
In a similar fashion and by virtue of the tensor product of the trivariate Bspline basis function in the HDCLIBS model, the cellular division component can easily extend and apply the cell division process 1300 twodimensional and threedimensional structures with similar assignments for the coefficients for c_{i,j }for twodimensional structures, and c_{i,j,k }for threedimensional structures, respectively.
In this regard,
In this regard,
In addition to physically dividing and connecting cells, the division and connection functionalities also offer users effective and flexible tools to logically change the cell layout and hierarchy inside the cellular structure, as illustrated in
In particular,
Further, the sizes of the subdomain cells could be chosen or refined at a small scale, thus producing designs in high definition with fine structural features and details that could be 200 times more than current stateoftheart techniques. Such designs are the solution to optimization problems that may have millions or billions of design variables in terms of the parametric coefficients of the cellular level set in BSplines. Therefore, the highdefinition cellular level set in BSplines technique (HDCLIBS) would extend structuraltopology optimization to a supercomputer environment.
With reference again to
In this regard,
First, based on the initialized Bspline function, the model manipulation component 114 can change the global feature thickness by adding or subtracting a positive constant on the coefficients simultaneously. As shown in
In this regard,
For example,
These erosion/dilation and grading operations can also be applied to individual subdomain cells of an HDCLIBS model by changing the trivariate coefficients, since each basis function is locally supported. For example,
The model manipulation component 114 can also blend different cells together by manipulating the trivariate coefficients, as exemplified in
In this regard,
First, the model manipulation component 114 can generate the inside part 2300 for the new cell 2206 by applying a min operation on the two sets of coefficients in accordance with Equation 20 as follows:
C_{inside}=min(C_{1}, C_{2}) Equation 20.
Then, the model manipulation component 114 can generate the boundary skin part 2204 by another min operation of 21, where r is the parameter to control the thickness of the skin.
C_{bound}=min(C_{1}, −(C_{1}−r)) Equation 21.
Finally, the model manipulation component 114 can generate the new cell 2205 combining these two parts with a max operation in accordance with Equation 22.
C_{final}=max(C_{inside}, C_{bound}) Equation 22.
In this regard, using the coefficients of Cfinal, the model manipulation component 114 can generate a blended cell (e.g., new cell 2205) that preserves the shape of cell 2201 and is filled with the details of cell 2202, and is covered by the skin with thickness controlled by r. This blending operation can be easily extended to threedimensional cases, a shown in
In this regard,
With reference again to
In particular, the HDCLIBS model described herein operates on a set of cellular subdomains partitioning the global design domain D, while the material domain of the structure within each cell is captured by its own level set function ϕ_{s}. In contrast to the use of a single global level set function in the classical level set method, the optimization component 116 can carry out the dynamic evolution of the level set function on each subdomain cell separately and in parallel. Moreover, the optimization component 116 can exploit the parameterization of the HDCLIBS model with the trivariate Bspline basis functions in the structural topology optimization process. Thus, using the HDCLIBS modeling techniques discussed herein, the optimization component 116 can perform a topology optimization process that provides substantial technological improvements for optimizing the structural properties of solid and cellular structure CAD models.
For example, in various embodiments, based on the HDCLIBS parametric model, the optimization component 116 can formulate the topology optimization problem as a restriction of the variation problem onto the space spanned by the Bsplines (e.g., as a projection onto the Bspline space). Consequently, the optimization component 116 can determine the optimization solution directly in terms of an iteration of the Bspline coefficients independently, without any need to solve the HamiltonJacobi Equation or any linear system with an interpolation matrix, as is required in the classical level set method. The fast Bspline construction scheme is also readily deployable for the calculations of the sensitivities of the Bspline coefficients. This technique transforms the sensitivity integrals, as always processed in the conventional level set approaches, into a discrete convolution operation. Further, since the Bspline basis functions are separable in the threedimensions, as a tensor product, the optimization component 116 can perform this convolution for threedimensional structures as a sequence of simple three onedimensional convolutions.
In addition, the combination of the cellular discretization scheme (e.g., portioning the design space into cellular subdomains) and the levelset representation with implicit trivariate Bspline basis functions opens a horizon for efficient computation in parallel processing, especially on a highperformance computing platform with CPU or GPU multiple cores. It should be noted that the HDCLIBS model maintains geometric continuity among the microstructural cells perfectly and easily. This means that the HDCLIBS model has great potential in design and optimization of cellular, lattice, and functionally graded materials and structures. In that context, the sizes of the subdomain cells could be chosen or refined at a small scale, thus producing designs in high definition with fine structural features and details that could be hundreds of times more than current stateoftheart techniques. Such designs are the solution to optimization problems that may have millions or billions of design variables in terms of the parametric coefficients. Therefore, a highdefinition cellular level set in Bsplines implementation would extend the structural topology optimization to a supercomputer environment.
In accordance with optimization process 2500, the boundaries of the design domain and the discretization scheme for the subcellular domains can be predefined. For example, in various implementations, the global design domain for the structure can be based on a rectilinear design domain of a defined length (L), width (W) and height (H), (e.g., L=4, H=2, and W=2), and divided in to rectilinear cells in accordance with a defined discretization scheme (e.g., 4×2×2 unit cells). The discretization scheme can further define a rectilinear grid spanning the subdomain cells with regular spacing h in each of the dimensional directions (e.g., each cell can have a 16×16 ×16 grid of equal spacing). For the purpose of maintaining connectivity between the cellular level set functions of the two neighboring cells at their common face, knot vectors of the cubic Bsplines are located on the rectilinear grid and set to be fully repeated at the first and last knots in each direction with the highest multiplicity, such as for example, p+1 in x direction. Depending on the optimization function/objective used (which can vary), other predefined design constraints for the structure can include (but are not limited to) the Young'"'"'s modulus of the material, the Poisson'"'"'s ratio, the maximum volume ratio, the knot span, and the loading conditions. Using this model, the topology optimization process simultaneously optimizes the solid domain of the structure as well as the physical properties of all structural cells that comprise the cellular structure.
In this regard, the optimization process 2500 can begin with the initial model initialization and construction process described with reference to the model initialization component 108 and
At 2505 and 2506, the optimization component 116 can then evaluate the topology of the volumetric model to determine whether the current structure shape and/or material properties of the model satisfy a defined optimization objective function for the optimal shape and/or material properties of the model under the design constraints of the HDCLIBS model (e.g., with respect to the design domain/discretization scheme, the connectivity/continuity order required, loading constraints, etc.). The defined optimization objective function can vary. For example, in some implementations, the defined optimization objective function can comprise a structural meancompliance problem. A detailed description of this implementation of optimization process using the structural meancompliance problem is discussed below.
In this regard, in various embodiments, regardless of the optimization objective function employed, at 2505, the optimization component 116 can solve the static equilibrium of the global structure and compute the objective function of the optimization problem at 2506. At 2507, the optimization component 116 can determine whether convergence has been achieved. In other words, the optimization component 116 can determine whether the objective function of the optimization problem has been achieved and/or that additional manipulations of the Bspline coefficients does no not result in additional improvement to the solution of the objective function. If so, then the optimization process can end, and the volumetric model can be saved at 2508 (e.g., in suitable memory). The saved model can further be rendered (e.g., via the rendering component 118), constructed, printed (e.g., using 3D printing), combined with other models (e.g., using the cellular connection operations described herein), divided (e.g., using the cellular division techniques described herein), and/or further manipulated using the various manipulation operations described with reference to the cellular connection component 110, the cellular division component 112 and/or the model manipulation component 114.
If at 2507 the optimization component 116 determines that convergence has not been achieved, then the optimization component can adapt the shape and/or topology of the model better conform with the topology optimization objectives by independently adjusting the Bspline coefficients of one or more of the subdomain cells, recalculating the subdomain level set functions and reconstructing the global level set function for the model based on the adjusted Bspline coefficients, and reevaluating the compliance of the updated model with respect to the optimization objective function. In this regard, the optimization process involves iteratively performing these steps until convergence is achieved.
In this regard at 2509, the optimization component 116 can update the implicit Bspline coefficients in each subdomain cell separately and independently. In various embodiments, this can involve a series of discrete Bspline convolution calculations, as discussed in greater detail infra. After the update, at 2503, the subdomain level set functions ϕ_{s}, can be recalculated, and at 2504, the global domain level set function ϕ can be obtained by piecing together all the updated subdomain level set functions ϕ_{s}. The optimization component 116 can resolve the static equilibrium of the updated global structure at 2505 and compute the objective function of the optimization problem at 2506. At 2507, the optimization component 116 can again determine whether convergence has been achieved and continue or end the optimization process accordingly.
As noted above, in one or more embodiments, the optimization component 116 can apply a structural compliance minimization problem to illustrate the benefits of the disclosed HDCLIBS model for topology optimization. Based on the level set description, the mathematical formulation of the structural compliance optimization problem could be given by Equation 23:
wherein J(u, ϕ)) is the objective function, u the displacement field, ϵ_{ij }the strain field represented by a secondorder strain tensor, C_{ijkl }the fourthorder elastic tensor of the solid material, H is the Heaviside function, and G is the volume constraint equation with V_{max }representing the maximum allowable volume of the solid material. The static equilibrium equation is given in its weak variational form in terms of the energy bilinear form a(u, v, ϕ) and the load linear form l(v, ϕ), where v denotes the virtual displacement field in the kinematically admissible displacement field space U.
As is well known in the classical level set based topology optimization method, the Lagrange function is readily constructed and its derivative is simply expressed as follows:
L=∫_{∂ω}g(x)V^{n}dx Equation 24,
with g representing the gradient density function defined by,
g(x)=−ϵ_{ij}(u(x,t))C_{ijkl}ϵ_{kl}(u(x,t))+λ Equation 25, and
wherein in which λ is the Lagrangian multiplier to deal with the volume constraint in the formulation of Equation 23.
With the HDCLIBS model, the optimization component 116 can carry out the topology optimization at the level of the subdomain cell D_{s}. According to the HamiltonJacobi Equation (e.g., Equation 5), the normal velocity field V_{s}^{n }can be expressed as follows:
In this regard, from Equation 8, we have:
Thus, substituting Equation 27 into Equation 26 yields Equation 28.
Finally, substituting the normal velocity in Equation 28 into Equation 24, the Lagrange derivative becomes Equation 29 below:
As in the general case of shape sensitivity analysis, this derivative is defined as a boundary integral on the boundary of the structure. It is customary to reformulate the derivative as a domain integral over the fixed design domain D by using the Heaviside function H(ϕ) and its derivative Dirac delta function δ(ϕ). Then, the Lagrange derivative is transformed into Equation 30 below:
For a minimization process, this Lagrange derivative should be kept negative. Thus, the steepest descent method can be used, yielding the required derivative of the coefficient ċ_{i,j,k}^{s}(t) as Equation 31 below, wherein W(x)=−g(x)δ(ϕ(x)).
cċ_{i,j,k}^{s}(t)=∫_{D}_{s}W(x)B_{i,p}^{s}(x)B_{j,q}^{s}(y)B_{k,r}^{s}(z)dx, for s=1, . . . M Equation 31.
In accordance with the disclosed HDCLIBS modeling process, the global structural domain D is partitioned into M subdomain cells D_{s}(s=1, . . . , M), such that D=U_{s=1}^{M}D_{s }and ∂ω=U_{s=1}^{M}∂ω_{s}. Strictly speaking, the shape derivative in Equation 29 is defined on the boundary an of the structure, meaning that only the velocity field V_{s}^{n }on each subdomain cell D_{s }that contains a portion of the boundary is meaningful. Therefore, Equation 31 defines changes in the coefficients of the Bspline basis functions for those subdomain cells where H(ϕ)≠0. For other cells, no changes would occur in their Bspline basis functions and their cellular level set functions are not necessary to change or evolve.
Thus, the gradientdescent method yields changes in the Bspline coefficients in accordance with Equation 32, wherein where Δt is the iteration pseudotime step:
c_{i,j,k}^{s}(t+1)=c_{i,j,k}^{2}(t)+Δt ċ_{i,j,k}^{s}(t), for s=1, . . . , M Equation 32.
During the iteration process, the optimization component 116 can independently update the Bspline coefficients on each subdomain cell. After the updating, the optimization component can obtain the global domain level set function ϕ by piecing together all the subdomain level set functions ϕ_{s}. In view of the above, it can be observed that computational complexity of the topology optimization with the HDCLIBS model is substantially low. Therefore, topology optimization using the HDCLIBS model can be directly applied to largescale problems for threedimensional cellular structures, overcoming many difficulties in conventional level set methods that are based on the global level set formulation.
The HDCLIBS method results in numerical features that facilitate many efficient optimization computations, including discrete separable convolutions for gradient calculation, renormalization, and other computational features as discussed below.
In the follwing discussions, we assume that the subdomain cells are made of rectilinear cells that partition the global design domain. For each subdomain cell, the degrees of the Bspine basis functions for all three directions are set to be p=q=r=3, meaning that the cubic Bsplines are deployed. Moreover, the knots on the boundary faces of each cell are fully repeated, by four times. In this regard, the basis functions supported by the boundary knots are different with those fully supported by the interior knots. On a discrete rectilinear grid on the cell with equal spacing distance h, the practical computation of the HDCLIBS based optimization relies on discretization of the gradient density function (x) or W(x) and the Bspline basis.
For the basis functions that are fully supported by simple knots, they share the same shape profile and can be regarded as an amplification and translation of the original basis function β^{3}(x) supported by simple knots with unit space. Hence, we may denote these functions as
wnere x_{i }is me ith knot position and h_{x }is the knot span or amplification ratio, and i∈[3, 4, . . . , n−4, n−3] for the cubic spline. Therefore, the derivatives of the Bspline coefficients of Equation 31 related to these basis functions become, in general threedimensional as follows:
Further, the feature function W(x) can be discretized along the same sequences, often with a regularization process added, yielding its discrete version W_{h}(x). This discretization scheme eventually gives rise to the convolution of the gradient density and the Bspline basis, in the form of Equation 34 as follows, where β_{h}^{3 }is the discrete version of β^{3 }and D_{i,j,k}^{s }is the support domain of the basis function N_{i,j,k}^{s}:
Since the Bspline kernel is separable, the derivative can indeed be computed as a single series of three convolutions of the gradient density with a onedimensional Bspline kernel. This convolution provides an efficient implementation of calculating the derivatives of the coefficients, thus, the evolution of the cellular level set through Equation 32.
In addition, with the Bspline kernel, each step of iteration in updating the Bspline coefficients can be viewed as a filtering operation. The Bspline kernel is known to behave as a lowpass filter, and it induces an intrinsic smoothing in the level set evolution and structural optimization. The effect of this smoothing process can be controlled explicitly through the degree and the knot spacing of the chosen Bspline basis functions. These properties are a highly useful utility for building a powerful design and optimization system for cellular structures for practical applications.
An additional feature of the trivariate Bspline representation comes from the bounding properties of the level set function. It is proven that the l_{∞} norm of the Bspline coefficients provides the following bound:
ϕ_{s}(x)<∥c_{i,j,k}^{s}∥_{∞} Equation 35.
The optimization component 116 can apply this bounding property to prevent steep gradients and to avoid reinitialization, which is often required in the classical level set implementation and is known to be problematic. Thus, in various embodiments, in each iteration step of the optimization process, the optimization component 116 can apply the following renormalization scheme on the obtained coefficients:
In effect, this operation imposes a bound on the level set function to the range [−1, 1]. It also makes the gradient norm of the level set function bounded by a certain value, thus, preventing inaccuracies in the numerical approximation. However, this normalization operation does not prevent the creation of new zero level formations in the optimization process, thus maintaining the topological flexibility of the level set representation.
In various example implementations of the topology optimization process, the Lagrangian multiplier λ can be calculated and updated according to the augmented Lagrangian multiplier scheme as follows:
where η is a parameter set for the first N_{R }iterations, while y_{i }is updated by:
γ_{i+1}=min(γ_{i}+Δγ, γ_{max}) Equation 38, and
in the further iterations during the optimization process, in which Δγ and γ_{max }are the increment and the upper limit of the parameter γ.
In other embodiments, the optimization component 116 can follow the classical framework to incorporate a regularized approximation for the Heaviside function and, particularly, the Dirac delta function defined in accordance with Equation 39, where α is a small positive number and Δ describes the width of numerical approximation.
In accordance with optimization process 2500, the boundaries of the design domain and the discretization scheme for the subcellular domains can be predefined. For example, in various implementations, the global design domain for the structure can be based on a rectilinear design domain of a defined length (L), width (W) and height (H), (e.g., L=4, H=2, and W=2), and divided in to rectilinear cells in accordance with a defined discretization scheme (e.g., 4×2×2 unit cells). The discretization scheme can further define a rectilinear grid spanning the subdomain cells with regular spacing h in each of the dimensional directions (e.g., each cell can have a 16×16×16 grid of equal spacing). For each subdomain cell, the degrees of the Bspine basis functions for all three directions are set to be p=q=r=3, meaning that the cubic Bsplines are deployed. Moreover, the knots on the boundary faces of each cell are fully repeated (e.g., by four times). On a discrete rectilinear grid on the cell with equal spacing distance h, the practical computation of the HDCLIBS based optimization relies on discretization of the gradient density function g(x) or W(x) and the Bspline basis. Depending on the optimization function/objective used (which can vary), other predefined design constraints for the structure can include (but are not limited to) the Young'"'"'s modulus of the material, the Poisson'"'"'s ratio, the maximum volume ratio, the knot span, and the loading conditions. Using this model, the topology optimization process simultaneously optimizes the solid domain of the structure as well as the physical properties of all structural cells that comprise the cellular structure.
In this regard, the optimization process 2600 can begin with the initial model initialization and construction process described with reference to the model initialization component 108 and
At 2605, the optimization component 116 can solve the static equilibrium of the global structure and compute the objective function of the optimization problem at 2606. At 2607, the optimization component 116 can determine whether convergence has been achieved. If so, then the optimization process can end, and the volumetric model can be saved at 2608 (e.g., in suitable memory). The saved model can further be rendered (e.g., via the rendering component 118), constructed, printed (e.g., using 3D printing), combined with other models (e.g., using the cellular connection operations described herein), divided (e.g., using the cellular division techniques described herein), and/or further manipulated using the various manipulation operations described with reference to the cellular connection component 110, the cellular division component 112 and/or the model manipulation component 114.
If at 2607 the optimization component 116 determines that convergence has not been achieved, then the optimization component can adapt the shape and/or topology of the model better conform with the topology optimization objectives by independently adjusting the Bspline coefficients of one or more of the subdomain cells, recalculating the subdomain level set functions and reconstructing the global level set function for the model based on the adjusted Bspline coefficients, and reevaluating the compliance of the updated model with respect to the optimization objective function. In this regard, the optimization process involves iteratively performing these steps until convergence is achieved.
In various embodiments, the Bspline coefficients can be updated by calculating the discretized feature function at 2609. Then at 2610, the optimization component 1116 can calculate the derivatives of the implicit Bspline coefficients by convolution in each subdomain cell at 2509. At 2611, the optimization component 116 can update the implicit Bspline coefficients in each subdomain cell separately and independently. For example, Bspline coefficients can be updated using the steepest descent scheme, and other gradient based optimization methods, such optimization control (OC) methods, the method of moving asymptotes (MMA), or the like. In the embodiment shown, the updating can include applying equality constraints on the subdomain boundaries at 2612 and applying the renormalization scheme to the coefficients at 2613.
After the update, at 2603, the subdomain level set functions ϕ_{scan }be recalculated, and at 2604, the global domain level set function ϕ can be obtained by piecing together all the updated subdomain level set functions ϕ_{s}. The optimization component 116 can resolve the static equilibrium of the updated global structure at 2605 and compute the objective function of the optimization problem at 2606. At 2607, the optimization component 116 can again determine whether convergence has been achieved and continue or end the optimization process accordingly.
As is well known, solving of the structural state equation, especially for threedimensional largescale or cellular structures, is extremely timeconsuming in each optimization iteration when using the standard finite element method (FEM). Thus, in various embodiments, the optimization component 116 can employ the finite cell method (FCM) for linear elastic analysis of the structures. In this regard, with the subject cellular level set scheme, the global design domain is partitioned into a set of subdomain cells, usually in rectilinear elements. Therefore, it is highly natural to implement the finite cell method, as the underlining element hierarchy of the HDCLIBS model is compatible with the requirements of the FCM technique.
In the typical FCM approach, the ersatz material distribution model is used, where the effective elasticity tensor for a void element is scaled down to a very small value, for example, 10^{−6 }within the assembly of the entire cells. This strategy permits a more accurate scheme to use a multilevel scheme for evaluation of integrals over trimmed cells by recursive tessellation and simplexbased quadrature schemes. While the focus of this disclosure is not on the finite element modeling for structural analysis, the basic process of the finite cell method can be incorporated into the numerical examples presented in
In this regard, with reference initially to
In the first example, a solid cantilever beam is to be optimized with a first rectilinear design domain of L=4, H=2 and W=2, as shown in
In this second example, a relatively complex case of a bridge design is considered in a design domain 2801 with L=16, H=4 and W=4, as shown in
The unit cell structure 2902 shown in
With reference again to
In this regard, although the HDCLIBS modeling component 106 (and the components thereof), the optimization component 116 and the rendering component 118 are shown as integrated within a same module or computing “unit,” it should be appreciated that the deployment architecture of system 100 is not limited to this configuration and can vary. For example, various features and functionalities of system 100 can be deployed using a distributed computing environment, wherein the one or more devices, modules and/or components of system 100 (and other systems described herein) can be provided in a distributed manner across various interconnected (via one or more networks) systems and devices (e.g., internal systems, the cloud, two or more dedicated servers, etc.). For example, system 100 can be deployed in a cloud architecture, a virtualized enterprise architecture, or an enterprise architecture wherein one the frontend components and the backend components are distributed in a client/server relationship. With these embodiments, one or more features and functionalities of the system 100 can be deployed as a webapplication, a cloudapplication, a thin client application, a thick client application, a native client application, a hybrid client application, or the like. In addition, the combination of the cellular modeling (e.g., portioning the design space into cellular subdomains) and the levelset representation with implicit trivariate Bspline basis functions opens a horizon for efficient computation in parallel processing, especially on a highperformance computing platform with central processing units (CPU) and/or graphical processing units (GPU) with multiple cores. Thus, in some embodiments, one or more features and functionalities of the HDCLIBS modeling component 106, the optimization component 116 and/or the rendering component 118 can be executed using a parallel processing environment (e.g., using two or more processing cores running in parallel).
As herein, the HDCLIBS model 120 is a general volumetric representation method for 3D objects, which shows major advantages as a single geometric model for modeling, analysis and optimization, throughout the whole design cycle. Particularly, it is developed for the topology optimization of general solid or cellular structures with spatiallyvarying microstructures as well as optimized shape and topology in three dimensions. Using this model, the topology optimization process simultaneously optimizes the solid domain of the structure as well as the physical properties of all structural cells that comprise the cellular structure.
The HDCLIBS model 120 employs the basic concept of level set method, while its application is generalized onto a set of subdomain cells that partition the entire design domain for the structure under optimization. On each subdomain cell, a level set function is defined respectively, such that the entire set of the level set functions comprise the global level set function over the entire global domain. The sizes of the subdomain cells could be chosen or refined at a small scale, thus producing designs in high definition with fine structural features and details. In addition, this cellular representation naturally leads to a parallelized scheme and extraordinary efficiency on multiple CPU or GPU cores. Such designs are the solutions to optimization problems that may have millions or billions of design variables in terms of the parametric coefficients. Therefore, a highdefinition cellular level set in Bsplines implementation would extend the structural topology optimization to a supercomputer environment.
Particularly, an implicit Bspline function is employed independently to define the cellular level set function for representing the structural material domain of the cell. The Bspline parameterization offers great flexibility for model initialization and manipulation, including,
 The Bspline basis functions are locally supported, and the support domain can be adjusted by knot manipulations. Therefore, user interactions are easily accommodated for controlling properties of the reconstructed surfaces such as local smoothness.
 A fast Bspline interpolation on repeated end knots is developed to reconstruct and initialize the implicit Bspline based level set function with negligible computational cost.
 Cell division can be easily achieved by inserting and repeating the knots, which can be applied for splitting the cellular structure into small portions. With this functionality, one can easily extract the structure in a specific region for future usage or local modification.
 Based on the Bspline parameterization, simple compatibility constraints on the parametric coefficients of the Bspline functions of the neighboring independent cells can be readily defined. Independent cells can thus be connected with guaranteed geometric connectivity up to a specified order of smoothness, for example, firstorder differentiable C^{1}. Periodic cells can be obtained with these compatibility constraints as well.
 Using the division and connection, one can change the logical layout and hierarchy of the domain discretization, which offers great flexibility for hierarchical structure design.
 By manipulating the coefficients, dilate, erode and gradient distribution within one single cell or the global cellular structure can be achieved in an intuitive way.
 The bool operations can be achieved by a series of min/max operations on the coefficients, which offers a simple way to consider the nondesign domain in the topology optimization.
 A blending function is developed based on the bool operation to transfer a single scale structure into a cellular structure composed of downscale microstructures, with a cover skin of controlled thickness attached onto the surface of the structure.
The HDCLIBS model 120 can be naturally incorporated into the topology optimization scheme. By virtue of the implicit Bspline parametrization, several benefits can be obtained,
 The level set function evolution is simplified to updating the Bspline coefficients directly and recursively, without solving the tedious HamiltonJacobi partial differential equation.
 The derivative of the coefficients with respect to the pseudo time is essentially a discretized convolution between the feature function and the Bspline kernel, which is substantially efficient without solving a linear algebraic system with an interpolation matrix.
 In addition to the steepest descent scheme, other gradient based optimization methods, e.g. OC or MMA, can also be employed for updating the Bspline coefficients.
 During the optimization, a renormalization scheme instead of typical reinitialization are applied to bound the gradient norm of the level set function by a certain value.
 Various compatibility constraints can be applied directly to the coefficients for controlling the form of final solutions, e.g. a single scale design, a periodic cellular structure or a layered cellular structure, which assigns the HDCLIBS model great potential in design and optimization of cellular, lattice, and functionally graded materials and structures.
This HDCLIBS modeling and optimization method could be naturally implemented within the current CAD infrastructure using the prevailing parametricmodeling based capabilities.
One or more embodiments can be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A nonexhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a readonly memory (ROM), an erasable programmable readonly memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc readonly memory (CDROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punchcards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiberoptic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention can be assembler instructions, instructionsetarchitecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, statesetting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions can execute entirely on the user'"'"'s computer, partly on the user'"'"'s computer, as a standalone software package, partly on the user'"'"'s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user'"'"'s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, fieldprogrammable gate arrays (FPGA), or programmable logic arrays (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It can be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams can represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks can occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks can sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardwarebased systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
In connection with
With reference to
The system bus 3308 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), MicroChannel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI).
The system memory 3306 includes volatile memory 3310 and nonvolatile memory 3312, which can employ one or more of the disclosed memory architectures, in various embodiments. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 3302, such as during startup, is stored in nonvolatile memory 3312. In addition, according to present innovations, codec 3335 can include at least one of an encoder or decoder, wherein the at least one of an encoder or decoder can consist of hardware, software, or a combination of hardware and software. Although, codec 3335 is depicted as a separate component, codec 3335 can be contained within nonvolatile memory 3312. By way of illustration, and not limitation, nonvolatile memory 3312 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), Flash memory, 3D Flash memory, or resistive memory such as resistive random access memory (RRAM). Nonvolatile memory 3312 can employ one or more of the disclosed memory devices, in at least some embodiments. Moreover, nonvolatile memory 3312 can be computer memory (e.g., physically integrated with computer 3302 or a mainboard thereof), or removable memory. Examples of suitable removable memory with which disclosed embodiments can be implemented can include a secure digital (SD) card, a compact Flash (CF) card, a universal serial bus (USB) memory stick, or the like. Volatile memory 3310 includes random access memory (RAM), which acts as external cache memory, and can also employ one or more disclosed memory devices in various embodiments. By way of illustration and not limitation, RAM is available in many forms such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), and enhanced SDRAM (ESDRAM) and so forth.
Computer 3302 can also include removable/nonremovable, volatile/nonvolatile computer storage medium.
It is to be appreciated that
A user enters commands or information into the computer 3302 through input device(s) 3328. Input devices 3328 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 3304 through the system bus 3308 via interface port(s) 3330. Interface port(s) 3330 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 3336 use some of the same type of ports as input device(s) 3328. Thus, for example, a USB port can be used to provide input to computer 3302 and to output information from computer 3302 to an output device 3336. Output adapter 3334 is provided to illustrate that there are some output devices 3336 like monitors, speakers, and printers, among other output devices 3336, which require special adapters. The output adapters 3334 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 3336 and the system bus 3308. It should be noted that other devices or systems of devices provide both input and output capabilities such as remote computer(s) 3338.
Computer 3302 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 3338. The remote computer(s) 3338 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device, a smart phone, a tablet, or other network node, and typically includes many of the elements described relative to computer 3302. For purposes of brevity, only a memory storage device 3340 is illustrated with remote computer(s) 3338. Remote computer(s) 3338 is logically connected to computer 3302 through a network interface 3342 and then connected via communication connection(s) 3344. Network interface 3342 encompasses wire or wireless communication networks such as localarea networks (LAN) and widearea networks (WAN) and cellular networks. LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, pointtopoint links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s) 3344 refers to the hardware/software employed to connect the network interface 3342 to the bus 3308. While communication connection 3344 is shown for illustrative clarity inside computer 3302, it can also be external to computer 3302. The hardware/software necessary for connection to the network interface 3342 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and wired and wireless Ethernet cards, hubs, and routers.
While the subject matter has been described above in the general context of computerexecutable instructions of a computer program product that runs on a computer and/or computers, those skilled in the art will recognize that this disclosure also can or can be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and/or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the inventive computerimplemented methods can be practiced with other computer system configurations, including singleprocessor or multiprocessor computer systems, minicomputing devices, mainframe computers, as well as computers, handheld computing devices (e.g., PDA, phone), microprocessorbased or programmable consumer or industrial electronics, and the like. The illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all aspects of this disclosure can be practiced on standalone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
As used in this application, the terms “component,” “system,” “platform,” “interface,” and the like, can refer to and/or can include a computerrelated entity or an entity related to an operational machine with one or more specific functionalities. The entities disclosed herein can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers. In another example, respective components can execute from various computer readable media having various data structures stored thereon. The components can communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which is operated by a software or firmware application executed by a processor. In such a case, the processor can be internal or external to the apparatus and can execute at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, wherein the electronic components can include a processor or other means to execute software or firmware that confers at least in part the functionality of the electronic components. In an aspect, a component can emulate an electronic component via a virtual machine, e.g., within a cloud computing system.
In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. Moreover, articles “a” and “an” as used in the subject specification and annexed drawings should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. As used herein, the terms “example” and/or “exemplary” are utilized to mean serving as an example, instance, or illustration and are intended to be nonlimiting. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as an “example” and/or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art.
As it is employed in the subject specification, the term “processor” can refer to substantially any computing processing unit or device comprising, but not limited to, singlecore processors; singleprocessors with software multithread execution capability; multicore processors; multicore processors with software multithread execution capability; multicore processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory. Additionally, a processor can refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Further, processors can exploit nanoscale architectures such as, but not limited to, molecular and quantumdot based transistors, switches and gates, in order to optimize space usage or enhance performance of user equipment. A processor can also be implemented as a combination of computing processing units. In this disclosure, terms such as “store,” “storage,” “data store,” data storage,” “database,” and substantially any other information storage component relevant to operation and functionality of a component are utilized to refer to “memory components,” entities embodied in a “memory,” or components comprising a memory. It is to be appreciated that memory and/or memory components described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. By way of illustration, and not limitation, nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or nonvolatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM). Volatile memory can include RAM, which can act as external cache memory, for example. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). Additionally, the disclosed memory components of systems or computerimplemented methods herein are intended to include, without being limited to including, these and any other suitable types of memory.
What has been described above include mere examples of systems and computerimplemented methods. It is, of course, not possible to describe every conceivable combination of components or computerimplemented methods for purposes of describing this disclosure, but one of ordinary skill in the art can recognize that many further combinations and permutations of this disclosure are possible. Furthermore, to the extent that the terms “includes,” “has,” “possesses,” and the like are used in the detailed description, claims, appendices and drawings such terms are intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim. The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations can be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.