A block progressive GPU resident visualization rendering method and system for finite element simulation
Patent Information
- Application Number
- CN202611013708.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-08
- Publication Date
- 2026-10-23
AI Technical Summary
对于单元型结果,若直接按单元中心值着色,容易出现单元块状效应;在采用分块加载或分块渲染时,若相邻分块边界节点或边界面片缺少属性一致性校正,还会在分块边界处形成颜色突变,影响有限元结果场的连续表达
1、本发明根据节点空间位置、单元连接关系以及结果场变化程度对有限元模型进行空间分块,形成多个拓扑连续的渲染分块,使大规模有限元模型不再以整体模型作为单一加载对象,而是能够按分块进行数据组织、加载和渲染,减少不可见区域或低关注区域数据对显示过程的资源占用。
Smart Images

Figure CN122965196A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the fields of computer graphics, engineering numerical simulation and high-performance visualization technology, and specifically relates to a block-based progressive GPU-resident visualization rendering method and system for finite element simulation. Background Technology
[0002] Current visualization of finite element simulation results typically employs a processing method of "CPU parsing of finite element files—mesh and result data organization in memory—overall transfer to GPU—GPU rendering and display." For multi-condition finite element results, the system generally first reads the node coordinates, element connection relationships, element types, and result data such as stress, strain, temperature, and displacement under each condition. Then, based on the user-selected condition, it transfers the corresponding geometric data and attribute data to the GPU for contour rendering and displacement deformation display. Although some existing solutions store geometric data and result attribute data separately, they usually still use the entire model or a large area as the data management unit, requiring the re-reading or uploading of a large amount of attribute data when switching conditions.
[0003] In the existing methods described above, the geometric data, condition attribute data, and result statistics of the finite element model lack a suitable block-based organization for rendering scheduling. For large-scale models with tens of millions of nodes and multiple analysis conditions, if the result attribute data is fully loaded for each condition switch, it will cause redundancy in disk reads, memory usage, and CPU-to-GPU data transfer, resulting in slow first frame display and significant delays in condition switching. Especially when users only view a local field of view or key areas, fully loading data from invisible and low-interest areas will reduce the utilization of rendering resources.
[0004] Existing GPU rendering methods still suffer from the problem of repeated transmission of geometric data. Finite element models typically have the same mesh topology and node coordinates under different working conditions, with only the resulting attributes changing. However, existing processes often repeatedly bind or upload geometric data when switching working conditions or re-rendering. They do not treat node coordinates, element indices, normal vectors, and topology information as resident data in GPU memory, and they also lack a mechanism to quickly switch attribute read addresses through a working condition attribute index table.
[0005] In terms of scalar field display, existing cloud map rendering typically does not distinguish between node-type and element-type results. For element-type results, if coloring is done directly based on the element center value, element blockiness can easily occur. When using block loading or block rendering, if adjacent block boundary nodes or boundary patches lack attribute consistency correction, color abrupt changes will also occur at the block boundaries, affecting the continuous representation of the finite element result field.
[0006] In vector field deformation display, existing methods typically employ a uniform magnification or adjust the deformation display based on only a single index, without comprehensively considering stress values, stress gradients, displacement gradients, and the deformation continuity between adjacent nodes. In high-gradient regions, localized overstretching, abrupt deformation changes, or visual breaks can easily occur, affecting engineers' judgment of structural deformation trends and hazardous areas.
[0007] In addition, existing finite element post-processing systems typically use a serial approach where the entire load is completed before displaying the data. This approach lacks loading priority scheduling based on the view frustum, bounding box, result field gradient, and user-focused region. Furthermore, pre-fetching of work conditions often relies on a simple sequence of adjacent work conditions without considering the importance of blocks or historical operation records, resulting in insufficient response speed when browsing and switching between multiple work conditions.
[0008] Therefore, the main technical problems to be solved in this application are: how to divide the rendering into blocks according to the spatial location, element topology, and degree of change of the result field of the finite element model; how to construct a geometric resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer to keep static geometric data resident in the GPU memory and switch different working condition attribute data through indexing; how to prioritize the loading of rendering blocks according to the view frustum, the gradient of the result field, and the user's area of interest; how to process node-type and element-type scalar results separately and reduce color banding at block boundaries; how to introduce gradient and continuity constraints in the display of vector field deformation; and how to improve the interactive rendering efficiency of multi-working-condition finite element results through working condition prefetching and caching mechanisms. Summary of the Invention
[0009] The technical problem to be solved by this invention is to provide a block-based progressive GPU-resident visualization rendering method and system for finite element simulation. This invention divides the finite element model into spatial blocks according to the spatial location of nodes, the connection relationship of elements, and the degree of change of the result field, forming multiple topologically continuous rendering blocks. This enables large-scale finite element models to no longer use the whole model as a single loading object, but to organize, load and render data according to blocks, reducing the resource occupation of invisible or low-interest areas in the display process.
[0010] To solve the above-mentioned technical problems, the technical solution adopted by the present invention is as follows: A block-based progressive GPU-resident visualization rendering method and system for finite element simulation, comprising the following steps: S1. Read the mesh data and multi-condition result data of the finite element simulation model. The mesh data includes node coordinates, element connection relationships and element types. The multi-condition result data includes scalar result data and vector result data under each condition. S2. Based on the spatial location of nodes, the connection relationship of elements, and the degree of change of the result field, the finite element model is spatially divided into blocks to obtain multiple topologically continuous rendering blocks. S3. Construct a block-based multi-layer data structure, which includes at least a geometry resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer, and write the geometry resident layer into the GPU memory to keep it resident. S4. After receiving the target working condition, calculate the loading priority of each rendering block based on the view frustum, block bounding box, result field gradient and user attention area. S5. Load the attribute data corresponding to the target working condition in batches according to the loading priority, and generate a working condition attribute index table, so that the GPU rendering pipeline can read the attribute data of the corresponding block based on the working condition attribute index table. S6. Perform continuous rendering of scalar fields and adaptive deformation display of vector fields in the GPU shader, and update relevant attribute indexes, color level parameters and deformation parameters during interactive operations or working condition switching to achieve progressive visualization rendering of finite element simulation results.
[0011] Preferably, in step S1, the scalar result data includes at least one of stress, strain, temperature, plastic strain or damage variables, and the vector result data includes at least one of displacement, velocity or acceleration; the multi-condition result data is organized according to the condition number, result type and the node or unit to which the data belongs.
[0012] Preferably, in step S2, each rendering block includes geometric sub-data, attribute sub-data, topological adjacency data, and block statistics data; wherein, the geometric sub-data includes vertex coordinate arrays, cell index arrays, and normal vector data within the block, the attribute sub-data includes scalar values and displacement vectors of nodes or cells within the block corresponding to each working condition, the topological adjacency data includes the adjacent block numbers and shared node index mapping relationships corresponding to the block boundary nodes, and the block statistics data includes at least one of the following for each working condition: minimum scalar value, maximum scalar value, average scalar gradient, displacement magnitude, average displacement gradient, and spatial bounding box range.
[0013] Preferably, in step S3, the geometric resident layer is used to store the node coordinates, index arrays, normal vectors, and unit topology information of all rendering blocks, and is written to the GPU memory once when the model is first loaded; the working condition attribute layer stores the scalar result data and displacement result data of all rendering blocks under each working condition according to a three-level index method of working condition number, rendering block number, and attribute offset address; the statistical index layer is used to store the result field statistics, spatial bounding box information, and block importance pre-evaluation information of each rendering block; the cache mapping layer is used to record the cache status, address mapping relationship, and data precision level of the attribute data corresponding to the current working condition, the predicted working condition, and the user's attention area in memory and GPU memory.
[0014] Preferably, in step S4, the loading priority of each rendering block is determined based on the block importance, which is calculated according to the following formula: ; In the formula, For the first The importance of each rendering block To render the block numbering, For the first The visibility coefficient of each rendering block. For the first The normalized stress gradient value of each rendering block. For the first Normalized values of displacement gradients for each rendering block For the first The user-focused region coefficient for each rendering block. , , and These are the weighting coefficients for visibility, stress gradient, displacement gradient, and the user's area of interest, respectively, and they satisfy the following relationship: ; Preferably, the visibility coefficient The value is determined based on the positional relationship between the rendering block and the view frustum: 1 for a block within the view frustum, 0.5 for partially visible blocks, and 0 for invisible blocks; the user attention region coefficient is... The value is determined based on the positional relationship between the rendering block and the user's area of interest: 1 when it is within the area of interest, 0.5 when it is at the edge of the area of interest, and 0 when it is in the non-area of interest.
[0015] Preferably, in step S5, the attribute data corresponding to the target condition is written to the GPU memory in batches in the form of attribute textures, structured buffers, or shader storage buffers; when the condition is switched, the GPU rendering pipeline only updates the attribute data reading address according to the condition attribute index table, and directly reads the scalar value and displacement vector corresponding to the target condition, and the geometric resident layer remains unchanged and does not need to be uploaded repeatedly.
[0016] Preferably, in step S6, when performing continuous rendering of scalar fields in the GPU fragment shader, for node-type scalar results, the scalar values of each vertex of the triangular facet are read and the fragment scalar values are calculated by GPU hardware interpolation, and then mapped to pseudo-color; for cell-type scalar results, the equivalent scalar values of the surface vertices are first reconstructed by area weighting based on the center scalar values of adjacent cells, and then fragment-level color mapping is performed to reduce cell blockiness.
[0017] Preferably, for adjacent triangular faces that cross block boundaries, the scalar values of the boundary nodes of adjacent rendering blocks are read according to the topological adjacency data, and the scalar values on both sides of the boundary are weighted and smoothed to reduce color abrupt changes at the block boundaries.
[0018] Preferably, in step S6, when performing vector field adaptive deformation display in the GPU vertex shader, the final display coordinates of the node are calculated according to the following formula: ; In the formula, For the first Display coordinates of each node, Number the nodes. For the first The original coordinates of each node, For the first The displacement vector of each node, For the first The adaptive deformation amplification factor of each node; wherein, the adaptive deformation amplification factor Calculate using the following formula: ; In the formula, Basic magnification factor, For the first Stress values at each node, For the first Normalized results of stress values at each node For the first The stress gradient magnitude at each node, For the first Normalized results of stress gradient magnitude at each node For the first The magnitude of the displacement gradient at each node. For the first Normalized results of the displacement gradient magnitudes at each node For the first Deformation smoothing constraint term for each node, , , and These are the adjustment weights corresponding to stress value, stress gradient, displacement gradient, and deformation smoothing constraint term, respectively. This is the minimum magnification factor. This is the maximum magnification factor. To constrain the calculation results to Amplitude limiting function within the interval.
[0019] Preferably, the deformation smoothing constraint term According to the The average value of the difference between the adaptive deformation amplification factor of each node and its adjacent nodes is determined to suppress abrupt changes in the deformation amplification factor between adjacent nodes, so as to maintain the continuity of deformation on the model surface.
[0020] Preferably, when the user rotates, zooms, sections, switches working conditions, adjusts color levels, or adjusts deformation parameters, only the attribute index, color level parameters, and deformation parameters of the relevant rendering blocks within the view are updated. The geometric resident layer remains in a resident state, and parameter updates are directly written to the corresponding buffer of the GPU without rebuilding the rendering pipeline.
[0021] Preferably, the process also includes a background condition prefetching step: In a background thread, based on the user's current browsing condition, the order of adjacent conditions, and historical switching records, and combined with the importance ranking of rendering blocks, the condition attribute data that is highly likely to be accessed is prefetched into the memory cache; when the user switches to the prefetched condition, the cached data is written to the GPU and the condition attribute index table is updated to complete the condition display switch.
[0022] A block-based progressive GPU-resident visualization rendering system for finite element simulation employs the aforementioned block-based progressive GPU-resident visualization rendering method for finite element simulation. It includes a sequentially interactive data parsing module, a block construction module, a multi-layer storage module, a block importance evaluation module, a GPU-resident rendering module, a scalar field continuous rendering module, a vector field adaptive deformation module, a condition prefetching and caching module, and an interactive control module. Wherein: The data parsing module is used to read finite element mesh data files and multi-condition simulation result files, and to parse and extract node coordinates, element connection relationships, element types and boundary partition information, as well as scalar result data and vector result data for each condition. The block construction module is used to divide the finite element model into multiple rendering blocks based on the spatial bounding box division, element topological continuity and the degree of change of the result field, and generate geometric sub-data, attribute sub-data, topological adjacency data and block statistics for each rendering block. The multi-layer storage module is used to build and maintain a block-based multi-layer data structure consisting of a geometry resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer, and to manage the storage and mapping relationships of data in disk, memory, and GPU memory. The block importance evaluation module is used to calculate the loading priority of each rendering block by combining the current view frustum, block bounding box, stress gradient, displacement gradient and user interest area. The GPU-resident rendering module is used to write geometry resident layer data into GPU memory and keep it resident, and to bind and switch addresses of different working condition attribute data through the working condition attribute index table. The Scalar Field Continuous Rendering module is used to perform differential color mapping for node-type and cell-type scalar results in the GPU shader, and to complete scalar value consistency correction of block boundaries based on topological adjacency data. The vector field adaptive deformation module is used to calculate the adaptive deformation amplification factor of each node in the GPU vertex shader based on the stress value, stress gradient, displacement gradient and deformation smoothing constraint term, so as to complete the deformation display with continuity constraint. The working condition prefetching and caching module is used to perform background prefetching based on the current working condition, adjacent working condition sequences and user historical operation records, and maintain memory and video memory caches; The interactive control module is used to receive user commands for switching operating conditions, changing viewing angles, adjusting color levels, setting cutting surfaces, and adjusting deformation parameters, and to drive the corresponding modules to update parameters and data.
[0023] Preferably, the multi-layer storage module includes a geometric resident unit, a working condition attribute index unit, a statistical index unit, and a cache mapping unit; wherein, the geometric resident unit is used to write node coordinates, index arrays, normal vectors, and unit topology information into the GPU memory at once; the working condition attribute index unit is used to organize attribute data according to working condition number, rendering block number, and attribute offset address; the statistical index unit is used to store block statistical information and pre-evaluation information; and the cache mapping unit is used to record the cache status and address mapping relationship of attribute data in memory and GPU memory.
[0024] Preferably, the block importance evaluation module includes a frustum filtering unit, a gradient evaluation unit, a user attention region identification unit, and a priority ranking unit; wherein, the frustum filtering unit is used to calculate the visibility of the rendering blocks, the gradient evaluation unit is used to calculate the stress gradient normalized value and displacement gradient normalized value of the rendering blocks, the user attention region identification unit is used to determine the positional relationship between the rendering blocks and the user attention region, and the priority ranking unit is used to load and sort the rendering blocks according to their importance.
[0025] Preferably, the scalar field continuous rendering module includes a node-type scalar rendering unit, a unit-type scalar reconstruction unit, and a boundary consistency correction unit; wherein, the node-type scalar rendering unit is used to perform fragment interpolation color mapping on the node-type results, the unit-type scalar reconstruction unit is used to perform vertex equivalent scalar reconstruction on the unit-type results, and the boundary consistency correction unit is used to perform weighted smoothing correction on the cross-block boundary scalar values according to the topological adjacency data.
[0026] Preferably, the working condition prefetching and caching module includes a historical operation analysis unit, an adjacent working condition prefetching unit, a high-importance block prefetching unit, and a two-level cache maintenance unit; wherein, the historical operation analysis unit is used to identify the user's working condition switching habits, the adjacent working condition prefetching unit is used to prefetch the attribute data of the adjacent sequential working conditions of the current working condition, the high-importance block prefetching unit is used to prioritize the prefetching of the attribute data of the rendering blocks with high importance, and the two-level cache maintenance unit is used to maintain the memory cache and the GPU video memory cache.
[0027] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the block-based progressive GPU-resident visualization rendering method for finite element simulation as described above.
[0028] The present invention can achieve the following beneficial effects: 1. This invention divides the finite element model into spatial blocks based on the spatial location of nodes, the connection relationship of elements, and the degree of change of the result field, forming multiple topologically continuous rendering blocks. This enables large-scale finite element models to no longer use the overall model as a single loading object, but to organize, load, and render data according to blocks, reducing the resource consumption of invisible or low-interest areas in the display process.
[0029] 2. This invention establishes geometric sub-data, attribute sub-data, topological adjacency data, and block statistics for each rendering block, so that the rendering block not only contains local geometry and result attributes, but also retains the adjacency relationship of the block boundary and the statistical information of the result field, providing a data foundation for subsequent block priority calculation, continuous boundary rendering, and cache management.
[0030] 3. This invention constructs a block-based multi-layer data structure including a geometric resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer. It separates and manages static geometric data and dynamic working condition attribute data, so that the finite element model does not need to repeatedly organize all data when switching between different working conditions, thus reducing the data management complexity in the process of displaying multi-working-condition results.
[0031] 4. This invention writes the geometry resident layer into the GPU memory once and keeps it resident. The geometry resident layer includes node coordinates, index array, normal vector and cell topology information. When switching working conditions, only the attribute data reading address and related rendering parameters corresponding to the target working condition are updated, thereby reducing the repeated transmission of geometric data between the CPU, memory and GPU and improving the reuse rate of static geometric data in the GPU memory.
[0032] 5. This invention constructs a working condition attribute index table according to the working condition number, rendering block number and attribute offset address, so that the GPU rendering pipeline can read the scalar value and displacement vector of the corresponding block under the current working condition based on the index table. When switching working conditions, the attribute data binding is completed by updating the attribute index, reducing the need to rebuild the rendering pipeline or rebind a large amount of data during the working condition switching process.
[0033] 6. This invention calculates the rendering block loading priority based on the view frustum, block bounding box, result field gradient, and user attention area, so that the currently visible area, the area with large result changes, and the user attention area can be loaded and displayed first, realizing progressive visualization of finite element results and reducing the waiting time of large-scale models when displaying the first frame and switching working conditions.
[0034] 7. This invention distinguishes between node-type scalar results and cell-type scalar results during continuous rendering of scalar fields. For node-type results, fragment scalar values are obtained through GPU hardware interpolation and mapped to pseudo-color; for cell-type results, the equivalent scalar values of surface vertices are reconstructed based on the scalar values of adjacent cell centers before color mapping, thereby reducing the blocky effect generated when cell-type results are directly displayed.
[0035] 8. This invention utilizes topological adjacency data to perform weighted smoothing correction on the scalar values of boundary nodes across block boundaries, making the cloud map color transition between adjacent rendering blocks more continuous and reducing color abruptness or visual discontinuity at the boundaries during block loading and block rendering.
[0036] 9. This invention performs vector field adaptive deformation display in the GPU vertex shader. It calculates the adaptive deformation amplification factor of each node based on the stress value, stress gradient, displacement gradient and deformation smoothing constraint term, so that the deformation display can enhance the key stress area. At the same time, it suppresses abrupt changes in local deformation through the continuity constraint of adjacent nodes, reducing excessive stretching and visual breakage in high gradient areas.
[0037] 10. When the viewpoint is rotated, scaled, sectioned, the working condition is switched, the color level is adjusted, or the deformation parameter is adjusted, the present invention only updates the attribute index, color level parameter and deformation parameter of the relevant rendering block within the view field. The geometric resident layer remains in a resident state, and the parameter update is directly written to the corresponding buffer of the GPU, avoiding re-parsing the finite element file or rebuilding the entire rendering process.
[0038] 11. This invention sets up a background condition prefetching and caching mechanism. Based on the current browsing condition, the order of adjacent conditions, the user's historical switching records, and the importance of rendering blocks, it prefetches the condition attribute data that is likely to be accessed into the memory cache or GPU video memory cache. This allows the condition attribute index table to be updated directly and the corresponding results to be displayed when the user switches to the prefetched condition, thereby improving the response speed of continuous browsing and comparative analysis of multiple conditions.
[0039] 12. This invention combines block construction, multi-layer storage, GPU geometry residency, block priority loading, scalar field continuous rendering, vector field adaptive deformation, and condition prefetching cache to enable the visualization of large-scale finite element simulation results to simultaneously take into account loading efficiency, condition switching efficiency, cloud map continuity, and deformation display stability. It is suitable for multi-condition, large-scale finite element post-processing analysis scenarios. Attached Figure Description
[0040] The present invention will be further described below with reference to the accompanying drawings and embodiments: Figure 1 This is a schematic diagram of the overall system architecture; Figure 2 This is a flowchart of the overall rendering method. Figure 3 This is a schematic diagram illustrating the block structure and multi-layered data organization for rendering. Figure 4 This is a schematic diagram of a block-based progressive loading priority scheduling method. Figure 5 A comparative illustration of scalar field rendering effects; Figure 6 This is a diagram illustrating the comparison of adaptive deformation display effects; Figure 7 This is a timing diagram of the CPU-GPU data interaction and residency mechanism.
[0041] In the diagram: 10-Data parsing module, 20-Block construction module, 30-Multi-layer storage module, 31-Geometric resident layer, 32-Working condition attribute layer, 33-Statistical index layer, 34-Cache mapping layer, 40-Block importance evaluation module, 50-GPU resident rendering module, 60-Scalar field continuous rendering module, 70-Vector field adaptive deformation module, 80-Working condition prefetching and caching module, 90-Interactive control module; S101 - Read mesh and result data; S102 - Model space block processing; S103 - Construct block-based multi-layer data structure; S104 - Calculate block loading priority; S105 - Load attributes in batches and generate working condition index table; S106 - GPU scalar field continuous rendering and boundary correction; S107 - GPU multi-constraint adaptive deformation display; S108 - Real-time interaction and incremental update; S109 - Background intelligent pre-fetching of working conditions. 301-Rendering chunks, 302-Chunk boundaries, 303-Topological adjacency relationships, 31-Geometric resident layer, 32-Working condition attribute layer, 33-Statistical index layer, 34-Cache mapping layer, 321-Three-level index structure; 401 - View frustum range, 402 - High priority block, 403 - Medium priority block, 404 - Low priority block, 405 - User attention area; 501 - Monolithic effect, 502 - Block boundary fault, 503 - Continuous smooth contour map, 504 - Boundary correction area; 601 - Distortion region of traditional scheme, 602 - Smooth enhancement region of this scheme, 603 - Stress concentration region; Detailed Implementation like Figures 1 to 7 As shown, a block-based progressive GPU-resident visualization rendering method and system for finite element simulation is presented. This method is suitable for post-processing display, contour plot analysis, displacement and deformation display, condition comparison, and interactive engineering interpretation of large-scale finite element models under multi-condition result data. The finite element models include structural finite element models, thermo-structural coupled finite element models, dynamic response finite element models, or other engineering numerical simulation models. The scale of the finite element models can be millions of nodes, tens of millions of elements, or even larger-scale engineering models. The multi-condition result data can include static conditions, construction stage conditions, temperature load conditions, water pressure conditions, seismic dynamic conditions, time history analysis conditions, or parametric scan conditions.
[0042] This invention does not employ a one-time full loading of all geometric data and all working condition result data for rendering. Instead, it decomposes the finite element model into multiple topologically continuous rendering blocks and stores static geometric information and dynamic working condition attribute information separately. Specifically, geometric data such as node coordinates, element indices, normal vectors, and element topology are written to GPU memory and retained after the model is initially loaded. Scalar and vector result data for each working condition are organized according to the working condition number, rendering block number, and attribute offset address, and are written to GPU memory in batches as needed during working condition switching or interactive operations. The GPU rendering pipeline reads the attribute data corresponding to the current working condition based on the working condition attribute index table, thereby avoiding repeated uploading of geometric data and enabling progressive display of finite element simulation results and rapid working condition switching.
[0043] The method includes the following steps.
[0044] S1. Read the mesh data and multi-condition result data of the finite element simulation model. The data parsing module 10 reads the mesh data and multi-condition result data of the finite element simulation model. The mesh data includes node coordinates, element connection relationships, and element types. Node coordinates are used to describe the geometric position of the finite element model in three-dimensional space; element connection relationships are used to describe the topological relationships of line elements, surface elements, solid elements, or shell elements formed between nodes; element types are used to distinguish tetrahedral elements, hexahedral elements, prism elements, shell elements, beam elements, or other finite element element types.
[0045] The multi-condition result data includes scalar result data and vector result data for each condition. Scalar result data includes at least one of stress, strain, temperature, plastic strain, damage variable, safety factor, or other single-value finite element results; vector result data includes at least one of displacement, velocity, acceleration, reaction force, or other finite element results with directional components. For nodal results, the system reads the corresponding result value according to the node number; for element results, the system reads the corresponding center value or integration point result value according to the element number and establishes an attribute mapping relationship from the element to the surface vertex.
[0046] During data parsing, multi-condition result data is organized uniformly according to condition number, result type, node number, or element number. For data from different solvers or different result file formats, the system performs consistency checks on node number, element number, element type, and condition number, and generates an internal rendering index while keeping the original simulation data unmodified. For multiple conditions under the same finite element model, only one set of geometric indexes is generated for geometric data, and condition result data is managed separately according to the condition dimension.
[0047] S2. Rendering is divided into blocks based on spatial location, topological relationships, and the degree of change in the result field. The block construction module 20 performs spatial block processing on the finite element model based on the spatial location of nodes, the connection relationship of elements, and the degree of change in the result field, obtaining multiple topologically continuous rendering blocks. Block processing can adopt spatial octree, bounding box recursive partitioning, KD tree partitioning, mesh region label partitioning, or graph partitioning based on element adjacency graph. During the block process, the system uses spatial continuity as the basic constraint, element topological continuity as the boundary constraint, and controls the block granularity in combination with the degree of change in the result field.
[0048] Each rendering block includes geometric sub-data, attribute sub-data, topological adjacency data, and block statistics. The geometric sub-data includes vertex coordinate arrays, cell index arrays, normal vector data, and local vertex number mapping relationships within the block. The attribute sub-data includes scalar values and displacement vectors of nodes or cells within the block corresponding to each load case. The topological adjacency data includes adjacent block numbers corresponding to block boundary nodes, shared node index mapping relationships, boundary triangular facet adjacency relationships, and cross-block cell association relationships. The block statistics include at least one of the following for each load case: minimum scalar value, maximum scalar value, average scalar gradient, displacement magnitude, average displacement gradient, and spatial bounding box range.
[0049] At tile boundaries, when the same geometric node belongs to two adjacent rendering tiles, the system preserves the shared node mapping relationship, allowing adjacent tiles to read the attribute values of the opposite boundary during subsequent scalar field continuous rendering and deformation display. For high-gradient regions, the system reduces the tile size or increases the tile statistical accuracy, prioritizing the loading of regions with larger result field changes during subsequent progressive loading; for low-gradient regions located outside the view frustum, the system allows for a larger tile granularity to reduce the number of tile scheduling and cache management overhead.
[0050] S3. Construct a block-based multi-layer data structure and make the geometry resident layer reside in GPU memory. The multi-layer storage module 30 constructs a block-based multi-layer data structure. The block-based multi-layer data structure includes at least a geometric resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer.
[0051] The geometry resident layer stores the node coordinates, index arrays, normal vectors, and cell topology information for all rendered blocks. Upon initial model loading, the system writes the geometry resident layer to the vertex buffer, index buffer, normal vector buffer, or structured buffer in GPU memory, and maintains its resident state during subsequent scenario switching, color level adjustments, deformation adjustments, and viewpoint interactions. The geometry resident layer is only rebuilt when the model is reloaded, the mesh topology changes, or the user switches to another finite element model.
[0052] The job condition attribute layer stores scalar and displacement result data for all rendering blocks under each job condition. The job condition attribute layer is organized using a three-level index: job condition number, rendering block number, and attribute offset address. When a target job condition is selected, the system does not rebuild the geometry buffer; instead, it writes the attribute data corresponding to the target job condition into the attribute texture, structured buffer, or shader storage buffer based on the job condition attribute index table.
[0053] The statistical index layer stores the result field statistics, spatial bounding box information, and pre-evaluation information of the importance of each rendering block. This layer is generated after block construction and is used to quickly calculate block loading priorities when switching rendering modes. The cache mapping layer records the cache status, address mapping relationships, and data precision levels of the current rendering mode, predicted rendering mode, and attribute data corresponding to the user's area of interest in disk, memory, and GPU memory. Through the cache mapping layer, the system can determine whether the target rendering mode attribute data for a given rendering block is already in the memory cache or GPU memory cache, thereby reducing redundant reads and uploads.
[0054] S4. Calculate the block loading priority based on the view frustum, result field gradient, and user attention area. Upon receiving the target condition, the block importance evaluation module 40 calculates the loading priority of each rendering block based on the view frustum, block bounding box, result field gradient, and user-focused region. The loading priority controls the order in which attribute data is written to the GPU memory in batches, prioritizing the display of the currently visible region, regions of drastic change in the result field, and user-focused regions.
[0055] As one implementation method, the loading priority of each rendering block is determined based on the block importance, which is calculated according to the following formula: ; In the formula, For the first The importance of each rendering block To render the block numbering, For the first The visibility coefficient of each rendering block. For the first The normalized stress gradient value of each rendering block. For the first Normalized values of displacement gradients for each rendering block For the first The user-focused region coefficient for each rendering block. , , and These are the weighting coefficients for visibility, stress gradient, displacement gradient, and the user's area of interest, respectively, and they satisfy the following relationship: ; The visibility coefficient is determined based on the positional relationship between the rendering block and the view frustum. It is 1 when the block is within the view frustum, 0.5 when partially visible, and 0 when invisible. The user attention region coefficient is determined based on the positional relationship between the rendering block and the user attention region. It is 1 when the block is within the attention region, 0.5 when the block is at the edge of the attention region, and 0 when the block is outside the attention region.
[0056] For stress gradients and displacement gradients, the system normalizes them based on the average scalar gradient, maximum scalar gradient, average displacement gradient, or maximum displacement gradient recorded in the block statistics. For blocks that have not yet loaded with high-precision attribute data for the target working condition, the system can first use the pre-evaluation information in the statistical index layer to calculate the loading priority; after the high-precision attribute data is loaded, the importance of the block is updated.
[0057] S5. Load target operating condition attribute data in batches and generate an operating condition attribute index table. The GPU-resident rendering module loads the attribute data corresponding to the target condition in batches according to the block loading priority. High-priority rendering blocks load full-precision scalar result data and displacement result data first; medium-priority rendering blocks can load reduced-precision attribute data first and replace it with full-precision attribute data in the background; low-priority rendering blocks can be loaded later, or only their bounding box, low-precision representative value or simplified attribute data can be loaded.
[0058] The attribute data corresponding to the target condition is written to the GPU memory in batches in the form of attribute textures, structured buffers, or shader storage buffers. The system simultaneously generates a condition attribute index table, which includes at least the condition number, rendering block number, scalar attribute offset address, displacement attribute offset address, attribute data length, data precision level, and memory buffer identifier. The GPU rendering pipeline queries the condition attribute index table based on the current rendering block number and reads the scalar value and displacement vector corresponding to the target condition.
[0059] During the switching of rendering modes, the geometry resident layer remains unchanged. The system only updates the current mode number, attribute buffer address, attribute offset address, and color level parameters, so that the rendering pipeline reads data from the new attribute buffer. For adjacent modes that are already in the GPU memory cache, the system can complete the display switch by updating the mode attribute index table; for modes that have not yet been written to memory, the system progressively writes attribute data according to the importance of the blocks and immediately refreshes the display on the blocks that have been written.
[0060] S6. Perform scalar field sequential rendering and vector field adaptive deformation display in the GPU shader. The scalar field continuous rendering module 60 performs scalar field continuous rendering in the GPU fragment shader. For node-type scalar results, the system reads the scalar values of each vertex of the triangle facet, calculates the fragment scalar values through GPU hardware interpolation, and maps the fragment scalar values to pseudo-color. The color mapping can use a linear color table, a piecewise color table, or a user-specified color level table, and is normalized according to the global extremum of the current operating condition or a user-defined interval.
[0061] For cell-type scalar results, the system does not directly render the cell center values to the cell surface in a blocky manner. Instead, it first reconstructs the equivalent scalar values of the surface vertices based on the center scalar values of adjacent cells using area weighting, distance weighting, or topological adjacency weighting, and then performs fragment-level color mapping. In this way, cell-type results can form a continuous transition when displayed, reducing the cell blocky effect.
[0062] For adjacent triangular faces spanning block boundaries, the system reads the scalar values of the boundary nodes of adjacent rendering blocks based on topological adjacency data and performs weighted smoothing correction on the scalar values on both sides of the boundary. As one implementation method, the corrected scalar values of the boundary nodes are calculated according to the following formula:
[0063] In the formula, the left side represents the scalar value after boundary node correction, η is the smoothing weight coefficient, the boundary node scalar value in the first term on the right side of the formula is the boundary node scalar value on one side of the current rendering block, and the boundary node scalar value in the second term on the right side of the formula is the boundary node scalar value on one side of the adjacent rendering block. Through this boundary correction, color abrupt changes at the block boundaries are suppressed, and the scalar cloud map remains visually continuous.
[0064] The vector field adaptive deformation module 70 performs vector field adaptive deformation display in the GPU vertex shader. For the i-th node, the final display coordinates of the node are calculated according to the following formula: ; In the formula, For the first Display coordinates of each node, Number the nodes. For the first The original coordinates of each node, For the first The displacement vector of each node, For the first The adaptive deformation amplification factor of each node; wherein, the adaptive deformation amplification factor Calculate using the following formula: ; In the formula, Based on the magnification factor, For the first Stress values at each node, For the first Normalized results of stress values at each node For the first The stress gradient magnitude at each node, For the first Normalized results of stress gradient magnitude at each node For the first The magnitude of the displacement gradient at each node. For the first Normalized results of the displacement gradient magnitudes at each node For the first Deformation smoothing constraint term for each node, , , and These are the adjustment weights corresponding to stress value, stress gradient, displacement gradient, and deformation smoothing constraint term, respectively. This is the minimum magnification factor. This is the maximum magnification factor. To constrain the calculation results to Amplitude limiting function within the interval.
[0065] The deformation smoothing constraint term is determined based on the average difference between the adaptive deformation amplification factor of the i-th node and its adjacent nodes. It is used to suppress abrupt changes in the deformation amplification factor between adjacent nodes to maintain the continuity of deformation on the model surface. This deformation display process only changes the display coordinates during the GPU rendering stage and does not modify the original node coordinates and simulation result data of the finite element model.
[0066] When the user rotates, zooms, sections, switches working conditions, adjusts color levels, or adjusts deformation parameters, the interactive control module 90 only updates the attribute indexes, color level parameters, and deformation parameters of the relevant rendering blocks within the viewport. The geometry resident layer remains in a resident state, and parameter updates are directly written to the corresponding buffer in the GPU, without needing to re-parse the finite element file or rebuild the rendering pipeline.
[0067] Background status prefetching and cache maintenance Following or in parallel with the above steps, the work condition prefetching and caching module 80 performs work condition prefetching in a background thread. Based on the user's current browsing work condition, the order of adjacent work conditions, and historical switching records, combined with the importance ranking of rendering blocks, the system predicts the work condition attribute data that is highly likely to be accessed, and prefetches this attribute data into the memory cache.
[0068] When a user browses work conditions in a time-series manner, the system prioritizes prefetching high-priority block attribute data from adjacent work conditions before and after the current work condition. When a user frequently compares several specified work conditions, the system records the switching pattern and increases the cache priority of the relevant work conditions. For predicted work conditions in the memory cache, when the user switches to that work condition, the system directly writes the cached data to the GPU memory and updates the work condition attribute index table, thereby reducing disk read latency. In cases where GPU memory capacity is limited, the system replaces the GPU memory cache according to the most recently used records, block importance, and data precision level.
[0069] A block-based progressive GPU-resident visualization rendering system for finite element simulation, employing the aforementioned method, includes a data parsing module 10, a block construction module 20, a multi-layer storage module 30, a block importance evaluation module 40, a GPU-resident rendering module 50, a scalar field continuous rendering module 60, a vector field adaptive deformation module 70, a condition prefetching and caching module 80, and an interactive control module 90.
[0070] The data parsing module 10 is used to read finite element mesh data files and multi-condition simulation result files, and to parse and extract node coordinates, element connection relationships, element types and boundary partition information, as well as scalar result data and vector result data for each condition.
[0071] The block construction module 20 is used to divide the finite element model into multiple rendering blocks based on the spatial bounding box division, element topological continuity and the degree of change of the result field, and to generate geometric sub-data, attribute sub-data, topological adjacency data and block statistics for each rendering block.
[0072] The multi-layer storage module 30 is used to construct and maintain a block-based multi-layer data structure comprising a geometry resident layer, a condition attribute layer, a statistical index layer, and a cache mapping layer, managing the storage and mapping relationships of data in disk, memory, and GPU memory. The multi-layer storage module includes a geometry resident unit, a condition attribute index unit, a statistical index unit, and a cache mapping unit. The geometry resident unit is used to write node coordinates, index arrays, normal vectors, and unit topology information into GPU memory at once; the condition attribute index unit is used to organize attribute data according to condition number, rendering block number, and attribute offset address; the statistical index unit is used to store block statistical information and pre-evaluation information; and the cache mapping unit is used to record the cache status and address mapping relationships of attribute data in memory and GPU memory.
[0073] The block importance evaluation module 40 is used to calculate the loading priority of each rendering block by combining the current view frustum, block bounding box, stress gradient, displacement gradient, and user interest region. The block importance evaluation module includes a view frustum filtering unit, a gradient evaluation unit, a user interest region identification unit, and a priority ranking unit. The view frustum filtering unit is used to calculate the visibility of the rendering block; the gradient evaluation unit is used to calculate the normalized stress gradient and displacement gradient values of the rendering block; the user interest region identification unit is used to determine the positional relationship between the rendering block and the user interest region; and the priority ranking unit is used to sort the rendering blocks by loading importance.
[0074] The GPU-resident rendering module 50 writes the geometric resident layer data into the GPU memory and keeps it resident, and uses the working condition attribute index table to bind and switch addresses of different working condition attribute data. The scalar field continuous rendering module 60 performs differentiated color mapping for node-type and cell-type scalar results in the GPU shader, and completes scalar value consistency correction of block boundaries based on topological adjacency data. The vector field adaptive deformation module 70 calculates the adaptive deformation amplification factor of each node in the GPU vertex shader based on stress value, stress gradient, displacement gradient and deformation smoothing constraint term, and completes deformation display with continuous constraints.
[0075] The working condition prefetching and caching module 80 is used to perform background prefetching based on the current working condition, adjacent working condition sequences, and user historical operation records, and to maintain memory and video memory caches. The working condition prefetching and caching module includes a historical operation analysis unit, an adjacent working condition prefetching unit, a high-importance block prefetching unit, and a two-level cache maintenance unit. The interactive control module 90 is used to receive user interactive commands for working condition switching, viewpoint transformation, color level adjustment, section plane setting, and deformation parameter adjustment, and to drive the corresponding modules to update parameters and data.
[0076] A computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the aforementioned block-based progressive GPU-resident visualization rendering method for finite element simulation. The computer-readable storage medium can be a hard disk, solid-state drive, read-only memory, random access memory, mobile storage, server storage medium, or distributed storage medium. The computer program can be deployed on a finite element post-processing workstation, an engineering simulation cloud platform, a digital twin visualization platform, or other high-performance visualization computing platforms.
[0077] Example 1: Block-based progressive GPU-resident rendering of a dam finite element model This embodiment uses a finite element model of a high arch dam as the object. The model includes the dam body, dam foundation, dam abutment and contact area. The model includes multiple hydrostatic pressure, temperature load and structural response conditions. The result types include nodal stress, element equivalent plastic strain and nodal displacement.
[0078] The system first reads the node coordinates, element connection relationships, element types, and multi-condition result data of the finite element model. For nodal stress and nodal displacement, the system establishes an attribute index according to the node number; for element equivalent plastic strain, the system establishes an element type attribute index according to the element number, and simultaneously generates the reconstruction relationship from the element center to the surface vertex.
[0079] Subsequently, the system divides the model space into blocks based on the bounding box, element adjacency relationships, and stress field variation. Smaller block granularity is used for the dam heel, dam toe, dam abutment contact area, and high gradient region of the dam foundation; larger block granularity is used for regions far from the visible area and where the result field changes slowly. Each block generates geometric sub-data, attribute sub-data, topological adjacency data, and block statistics.
[0080] Upon initial model loading, the system writes node coordinates, index arrays, normal vectors, and topological information into the geometric resident layer of the GPU memory. After the user selects a target load case, the system calculates the importance of each block based on the view frustum extent, stress gradient, displacement gradient, and the user's region of interest. It prioritizes loading attribute data from the main dam body region and the stress gradient region at the dam heel height within the view frustum and generates a load case attribute index table. During rendering, node stresses are interpolated using fragments to form a continuous cloud map; the equivalent plastic strain of elements is reconstructed using vertex equivalent scalars and then color-mapped; and weighted smoothing correction is performed at block boundaries based on topological adjacency data. Node displacements are displayed in the GPU vertex shader using an adaptive deformation amplification factor.
[0081] Through this embodiment, large-scale finite element models do not need to repeatedly upload geometric data when switching working conditions; the first frame display prioritizes the current field of view and key engineering areas; subsequent blocks are gradually completed, enabling engineers to make preliminary interpretations without waiting for the full loading to be completed.
[0082] Example 2: Loading Priority Scheduling for a Large-Scale Underground Powerhouse Model This embodiment uses a finite element model of an underground powerhouse complex. The model includes the main powerhouse, installation room, tailrace tunnel, water diversion tunnel, sidewalls, surrounding rock, and support structure. Due to the large size of the model and the complexity of its local structures, using the traditional full-load method would result in a long initial display wait time.
[0083] The system calculates the importance of each rendering block based on the current camera view frustum, the user-defined main plant area of interest, and the surrounding rock stress and displacement gradients. For main plant caverns, sidewall corners, and high-stress areas located within the view frustum, the system immediately loads complete precision attribute data. For surrounding rock areas located at the edge of the view frustum, the system first loads low-precision attribute data to form a rough cloud map, and then replaces it with complete precision attribute data in the background. For areas outside the view frustum where the result field changes little, the system loads the data later.
[0084] When the user rotates the viewing angle or moves the section plane, the system recalculates the visibility coefficient and the user's area of interest coefficient, and adjusts the loading queue. Low-importance blocks that have been removed from the view frustum can release the video memory cache; newly added high-importance blocks are added to the priority loading queue. In this way, the system prioritizes the display quality of areas of engineering interest under limited video memory and limited transmission bandwidth.
[0085] Example 3: Continuous rendering of node-type and cell-type scalar results This embodiment illustrates the implementation of continuous rendering of scalar fields. The finite element results include both nodal temperature results and element damage variable results. For nodal temperature results, the system directly reads the temperature values of each vertex of the triangular facet, obtains the fragment temperature values using hardware interpolation in the GPU fragment shader, and maps them to temperature color levels.
[0086] For element-type damage variable results, the system first reads the damage values of multiple element centers adjacent to the surface vertex, and then weights them according to the surface area or spatial distance of adjacent elements to generate the equivalent damage value of the surface vertex. Color mapping is then performed at the fragment level. For shared nodes on block boundaries, the system reads the equivalent damage values of corresponding nodes in adjacent blocks through topological adjacency data and performs boundary-weighted smoothing correction. Therefore, element-type results avoid obvious blocky color bands when displayed, and the transition of the cloud map across block boundaries remains continuous.
[0087] Example 4: Multi-factor adaptive deformation display This embodiment focuses on structural conditions with abrupt local displacement changes and stress concentrations. Traditional deformation displays typically use a uniform magnification factor, which can easily lead to localized overstretching in high-gradient regions. When using the method of this invention, the system calculates an adaptive deformation magnification factor for each node in the GPU vertex shader.
[0088] For nodes with high stress values, large stress gradients, and large displacement gradients, the deformation amplification factor is increased accordingly, visually enhancing the critical stress-bearing areas. For areas where the deformation amplification factor differs significantly between adjacent nodes, the deformation smoothing constraint term reduces local abrupt changes, ensuring a continuous deformation transition. Users can adjust the stress value weight, stress gradient weight, displacement gradient weight, and deformation smoothing constraint weight according to engineering interpretation needs to achieve a balance between enhancing critical areas and overall smoothness.
[0089] This process only changes the display coordinates during the GPU rendering stage, without altering the original geometric data and simulation result files of the finite element model. Therefore, the rendering output can highlight the response areas of key structures without affecting data traceability and subsequent engineering verification.
[0090] Example 5: Background prefetching and fast switching of multi-condition results This embodiment focuses on finite element dynamic analysis results that include multiple time-history conditions. Users typically browse the conditions in chronological order during post-processing, or perform repeated comparisons between several representative moments.
[0091] The system records the user's current browsing status and historical switching behavior. When the user views the nth status, the background thread prioritizes prefetching the attribute data of high-importance blocks from the (n-1)th and (n+1)th statuses into the memory cache. When the system detects that the user frequently switches between two non-adjacent statuses, it increases the cache priority of the attribute data of high-importance blocks from those two statuses. If the user switches to a status that has already been prefetched, the system directly writes the cached data to the GPU memory and updates the status attribute index table; the geometry resident layer remains unchanged.
[0092] This embodiment eliminates the need to repeatedly read complete result files from disk or repeatedly upload geometric data during multi-condition comparative analysis. The system can pre-fetch attributes of high-probability conditions before user operation, making condition switching closer to real-time response.
[0093] The above embodiments are merely preferred technical solutions of the present invention and should not be considered as limitations on the present invention. The scope of protection of the present invention should be limited to the technical solutions described in the claims, including equivalent substitutions of the technical features described in the claims. That is, equivalent substitutions and improvements within this scope are also within the scope of protection of the present invention.
Claims
1. A block-based progressive GPU-resident visualization rendering method for finite element simulation, characterized in that, Includes the following steps: S1. Read the mesh data and multi-condition result data of the finite element simulation model. The mesh data includes node coordinates, element connection relationships and element types. The multi-condition result data includes scalar result data and vector result data under each condition. S2. Based on the spatial location of nodes, the connection relationship of elements, and the degree of change of the result field, the finite element model is spatially divided into blocks to obtain multiple topologically continuous rendering blocks. S3. Construct a block-based multi-layer data structure, which includes at least a geometry resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer, and write the geometry resident layer into the GPU memory to keep it resident. S4. After receiving the target working condition, calculate the loading priority of each rendering block based on the view frustum, block bounding box, result field gradient and user attention area. S5. Load the attribute data corresponding to the target working condition in batches according to the loading priority, and generate a working condition attribute index table, so that the GPU rendering pipeline can read the attribute data of the corresponding block based on the working condition attribute index table. S6. Perform continuous rendering of scalar fields and adaptive deformation display of vector fields in the GPU shader, and update relevant attribute indexes, color level parameters and deformation parameters during interactive operations or working condition switching to achieve progressive visualization rendering of finite element simulation results.
2. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S1, the scalar result data includes at least one of stress, strain, temperature, plastic strain or damage variables, and the vector result data includes at least one of displacement, velocity or acceleration; the multi-condition result data is organized according to the condition number, result type and the node or unit to which the data belongs.
3. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S2, each rendering block includes geometric sub-data, attribute sub-data, topological adjacency data, and block statistics. The geometric sub-data includes the vertex coordinate array, cell index array, and normal vector data within the block. The attribute sub-data includes the scalar values and displacement vectors of nodes or cells within the block corresponding to each working condition. The topological adjacency data includes the adjacent block numbers and shared node index mapping relationships corresponding to the block boundary nodes. The block statistics include at least one of the following for each working condition: minimum scalar value, maximum scalar value, average scalar gradient, displacement magnitude, average displacement gradient, and spatial bounding box range.
4. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S3, the geometric resident layer is used to store the node coordinates, index arrays, normal vectors, and cell topology information of all rendering blocks, and writes them to the GPU memory all at once when the model is first loaded; the working condition attribute layer stores the scalar result data and displacement result data of all rendering blocks under each working condition according to a three-level index method of working condition number, rendering block number, and attribute offset address; the statistical index layer is used to store the result field statistics, spatial bounding box information, and block importance pre-evaluation information of each rendering block; the cache mapping layer is used to record the cache status, address mapping relationship, and data precision level of the attribute data corresponding to the current working condition, the predicted working condition, and the user's attention area in memory and GPU memory.
5. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S4, the loading priority of each rendering block is determined based on the block importance, which is calculated according to the following formula: ; In the formula, For the first The importance of each rendering block To render the block numbering, For the first The visibility coefficient of each rendering block. For the first The normalized stress gradient value of each rendering block. For the first Normalized values of displacement gradients for each rendering block For the first The user-focused region coefficient for each rendering block. , , and These are the weighting coefficients for visibility, stress gradient, displacement gradient, and the user's area of interest, respectively, and they satisfy the following relationship: 。 6. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 5, characterized in that, The visibility coefficient The value is determined based on the positional relationship between the rendering block and the view frustum: 1 for a block within the view frustum, 0.5 for partially visible blocks, and 0 for invisible blocks; the user attention region coefficient is... The value is determined based on the positional relationship between the rendering block and the user's area of interest: 1 when it is within the area of interest, 0.5 when it is at the edge of the area of interest, and 0 when it is in the non-area of interest.
7. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S5, the attribute data corresponding to the target condition is written to the GPU memory in batches in the form of attribute textures, structured buffers, or shader storage buffers. When the condition is switched, the GPU rendering pipeline only updates the attribute data reading address according to the condition attribute index table, and directly reads the scalar value and displacement vector corresponding to the target condition. The geometry resident layer remains unchanged and does not need to be uploaded repeatedly.
8. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S6, when performing continuous rendering of scalar fields in the GPU fragment shader, for node-type scalar results, the scalar values of each vertex of the triangular facet are read and the fragment scalar values are calculated by GPU hardware interpolation, and then mapped to pseudo-color; for cell-type scalar results, the equivalent scalar values of the surface vertices are first reconstructed by area weighting based on the center scalar values of adjacent cells, and then fragment-level color mapping is performed to reduce cell blockiness.
9. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 8, characterized in that, For adjacent triangular faces that cross block boundaries, the scalar values of the boundary nodes of adjacent rendering blocks are read according to the topological adjacency data, and the scalar values on both sides of the boundary are weighted and smoothed to reduce color abrupt changes at the block boundaries.
10. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, In step S6, when performing vector field adaptive deformation display in the GPU vertex shader, the final display coordinates of the nodes are calculated according to the following formula: ; In the formula, For the first Display coordinates of each node, Number the nodes. For the first The original coordinates of each node, For the first The displacement vector of each node, For the first The adaptive deformation amplification factor of each node; wherein, the adaptive deformation amplification factor Calculate using the following formula: ; In the formula, Based on the magnification factor, For the first Stress values at each node, For the first Normalized results of stress values at each node For the first The stress gradient magnitude at each node, For the first Normalized results of stress gradient magnitude at each node For the first The magnitude of the displacement gradient at each node. For the first Normalized results of the displacement gradient magnitudes at each node For the first Deformation smoothing constraint term for each node, , , and These are the adjustment weights corresponding to stress value, stress gradient, displacement gradient, and deformation smoothing constraint term, respectively. This is the minimum magnification factor. This is the maximum magnification factor. To constrain the calculation results to Amplitude limiting function within the interval.
11. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 10, characterized in that, The deformation smoothing constraint term According to the The average value of the difference between the adaptive deformation amplification factor of each node and its adjacent nodes is determined to suppress abrupt changes in the deformation amplification factor between adjacent nodes, so as to maintain the continuity of deformation on the model surface.
12. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, When the user rotates, zooms, sections, switches working conditions, adjusts color levels, or adjusts deformation parameters, only the attribute indexes, color level parameters, and deformation parameters of the relevant rendering blocks within the viewport are updated. The geometry resident layer remains in a resident state, and parameter updates are directly written to the corresponding buffer of the GPU without rebuilding the rendering pipeline.
13. The block-based progressive GPU-resident visualization rendering method for finite element simulation according to claim 1, characterized in that, It also includes a background condition prefetching step: In a background thread, based on the user's current browsing condition, the order of adjacent conditions, and historical switching records, combined with the importance ranking of rendering blocks, the condition attribute data that is likely to be accessed is prefetched into the memory cache; when the user switches to the prefetched condition, the cached data is written to the GPU and the condition attribute index table is updated to complete the condition display switch.
14. A block-based progressive GPU-resident visualization rendering system for finite element simulation, characterized in that, The block-based progressive GPU-resident visualization rendering method for finite element simulation, as described in any one of claims 1-13, includes a sequentially interactive data parsing module, a block construction module, a multi-layer storage module, a block importance evaluation module, a GPU-resident rendering module, a scalar field continuous rendering module, a vector field adaptive deformation module, a condition prefetching and caching module, and an interactive control module: wherein: The data parsing module is used to read finite element mesh data files and multi-condition simulation result files, and to parse and extract node coordinates, element connection relationships, element types and boundary partition information, as well as scalar result data and vector result data for each condition. The block construction module is used to divide the finite element model into multiple rendering blocks based on the spatial bounding box division, element topological continuity and the degree of change of the result field, and generate geometric sub-data, attribute sub-data, topological adjacency data and block statistics for each rendering block. The multi-layer storage module is used to build and maintain a block-based multi-layer data structure consisting of a geometry resident layer, a working condition attribute layer, a statistical index layer, and a cache mapping layer, and to manage the storage and mapping relationships of data in disk, memory, and GPU memory. The block importance evaluation module is used to calculate the loading priority of each rendering block by combining the current view frustum, block bounding box, stress gradient, displacement gradient and user interest area. The GPU-resident rendering module is used to write geometry resident layer data into GPU memory and keep it resident, and to bind and switch addresses of different working condition attribute data through the working condition attribute index table. The Scalar Field Continuous Rendering module is used to perform differential color mapping for node-type and cell-type scalar results in the GPU shader, and to complete scalar value consistency correction of block boundaries based on topological adjacency data. The vector field adaptive deformation module is used to calculate the adaptive deformation amplification factor of each node in the GPU vertex shader based on the stress value, stress gradient, displacement gradient and deformation smoothing constraint term, so as to complete the deformation display with continuity constraint. The working condition prefetching and caching module is used to perform background prefetching based on the current working condition, adjacent working condition sequences and user historical operation records, and to maintain memory and video memory caches; The interactive control module is used to receive user commands for switching operating conditions, changing viewing angles, adjusting color levels, setting cutting surfaces, and adjusting deformation parameters, and to drive the corresponding modules to update parameters and data.
15. The block-based progressive GPU-resident visualization rendering system for finite element simulation according to claim 14, characterized in that, The multi-layer storage module includes a geometric resident unit, a working condition attribute index unit, a statistical index unit, and a cache mapping unit. The geometric resident unit is used to write node coordinates, index arrays, normal vectors, and unit topology information into the GPU memory at once. The working condition attribute index unit is used to organize attribute data according to the working condition number, rendering block number, and attribute offset address. The statistical index unit is used to store block statistical information and pre-evaluation information. The cache mapping unit is used to record the cache status and address mapping relationship of attribute data in memory and GPU memory.
16. The block-based progressive GPU-resident visualization rendering system for finite element simulation according to claim 14, characterized in that, The block importance evaluation module includes a frustum filtering unit, a gradient evaluation unit, a user interest region identification unit, and a priority ranking unit. The frustum filtering unit is used to calculate the visibility of the rendering blocks, the gradient evaluation unit is used to calculate the stress gradient normalization value and displacement gradient normalization value of the rendering blocks, the user interest region identification unit is used to determine the positional relationship between the rendering blocks and the user interest region, and the priority ranking unit is used to load and sort the rendering blocks according to their importance.
17. The block-based progressive GPU-resident visualization rendering system for finite element simulation according to claim 14, characterized in that, The scalar field continuous rendering module includes a node-type scalar rendering unit, a unit-type scalar reconstruction unit, and a boundary consistency correction unit. The node-type scalar rendering unit is used to perform fragment interpolation color mapping on the node-type results, the unit-type scalar reconstruction unit is used to perform vertex equivalent scalar reconstruction on the unit-type results, and the boundary consistency correction unit is used to perform weighted smoothing correction on the cross-block boundary scalar values based on the topological adjacency data.
18. The block-based progressive GPU-resident visualization rendering system for finite element simulation according to claim 14, characterized in that, The working condition prefetching and caching module includes a historical operation analysis unit, an adjacent working condition prefetching unit, a high-importance block prefetching unit, and a two-level cache maintenance unit. The historical operation analysis unit is used to identify the user's working condition switching habits, the adjacent working condition prefetching unit is used to prefetch the attribute data of the adjacent sequential working conditions of the current working condition, the high-importance block prefetching unit is used to prioritize the prefetching of the attribute data of the rendering blocks with high importance, and the two-level cache maintenance unit is used to maintain the memory cache and the GPU video memory cache.
19. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the block-based progressive GPU-resident visualization rendering method for finite element simulation as described in any one of claims 1 to 13.