Nonlinear Elastic Body Simulation Using Hybrid Macroblock Solvers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for simulating nonlinear elastic bodies' deformations, such as direct and iterative solvers, face challenges like memory access limitations, superlinear complexity increases, and inefficiencies in capturing global effects, which hinder real-time interactive simulations.
Innovation Solution
The approach involves partitioning a nonlinear elastic solid model into macroblocks, calculating stiffness matrices, and using a hybrid technique that combines direct and iterative methods by converting stiffness matrices into block form, inverting submatrices in parallel, and employing Conjugate Gradient-based solvers to efficiently determine node displacements and update model positions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If direct solving techniques are used to solve the linearized system from Newton method, then the solution accuracy is improved, but the computational complexity increases superlinearly and memory access time becomes the limiting factor
Solution Approach 1:
The patent divides the global linearized system into multiple local linearized systems, one for each macroblock. Each local system involves only the degrees of freedom within that macroblock, making them smaller and more efficient to solve. The global system is reconstructed by assembling these local solutions, maintaining accuracy while improving computational efficiency.
Solution Approach 2:
The patent transforms the problem from solving a single large global system to solving multiple smaller local systems in parallel. This dimensional transformation from one large problem to many small problems allows for better utilization of computational resources and reduces memory access bottlenecks.
2Productivity
If iterative solving techniques are used to solve the linearized system, then the computational complexity per iteration is reduced and memory footprint is minimized, but the convergence speed may be insufficient for real-time simulations
Solution Approach 1:
The patent segments the computational domain into macroblocks and solves local linearized systems independently. This segmentation allows each local system to converge quickly since it involves fewer degrees of freedom, and the overall solution is assembled from these rapid local convergences.
Solution Approach 2:
The patent performs preliminary factorization of the local stiffness matrices before the Newton iterations begin. This preliminary action allows the subsequent Newton iterations to proceed efficiently without repeated factorization overhead, achieving fast convergence for real-time simulations.
3Volume of stationary object
If the model size increases beyond cache memory capacity, then the simulation can handle larger elastic bodies, but the memory access time increases and computational performance degrades
Solution Approach 1:
The patent partitions the large model into multiple smaller macroblocks that can fit in cache memory. Each macroblock is solved independently with its local stiffness matrix, ensuring that the critical computational paths remain cache-resident and avoid slow main memory access.
Solution Approach 2:
The patent applies different solution strategies to different parts of the model based on their local characteristics. Each macroblock is solved using its own local linearized system with degrees of freedom specific to that region, allowing optimized local computation that maintains high performance even for large overall models.
Data Source
AI summary
In accordance with some embodiments, systems, methods and media for simulating deformation of an elastic body are provided. In some embodiments, a method comprises: determining for each macroblock, a stiffness matrix Ki of a portion of a model of a non-linear elastic solid partitioned into cells; converting Ki into block form to include a submatrix KI<sub2>i</sub2>I<sub2>i </sub2>for nodes between internal cells of a first macroblock; determining at least a portion of KI<sub2>i</sub2>I<sub2>i</sub2>−1; receiving input corresponding to force applied to cells of the model; determining displacements of exterior nodes of the first macroblock using the input and the portion of KI<sub2>i</sub2>I<sub2>i</sub2>−1; determining displacements of interior nodes of the first macroblock using the input and the displacements of exterior nodes; determining updated positions of the cells based on the displacements of the exterior nodes; and, causing the model to be presented using the updated positions.


