A method for designing a computing analysis module, a method and device for constructing simulation software
By constructing the computing task data structure and functional architecture, seamless conversion of interactive model data and multi-algorithm access are achieved, which solves the problems of domestic CAE software in model conversion and module docking, and improves simulation efficiency and user experience.
Patent Information
- Application Number
- CN202510103344.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-22
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2045-01-22
AI Technical Summary
Existing domestic CAE software has data structure defects in the architectural design of the calculation and analysis module, which leads to non-seamless model conversion, low efficiency of multidisciplinary collaborative work, and complex docking with other modules, increasing user operation complexity and maintenance costs.
Build computing task data structure and functional architecture, including model node class, computing task information class, geometric grid and analysis grid conversion mechanism, multi-unit universal assembler and computing step data structure, to achieve seamless conversion of interactive model data and multi-algorithm access, reducing user operation complexity.
It improves the scalability and maintainability of the computing and analysis modules, enhances the efficiency of modeling and simulation and user experience, and reduces development complexity and long-term maintenance costs.
Smart Images

Figure CN119885770B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of finite element simulation, in particular to a calculation analysis module design method and a simulation software construction method and device. BACKGROUND
[0002] In the current environment of rapid progress in science and engineering, as a key tool for design and analysis, the role of finite element simulation (CAE) software has become increasingly indispensable. The process of interactive finite element modeling and simulation mainly revolves around two core steps: model construction and simulation analysis. Model construction aims to provide accurate data for subsequent simulation calculations, while the accuracy and efficiency of simulation are highly dependent on the effective operation of the solution analysis module and solver. However, in the development process of domestic CAE software, especially in the architectural design of the calculation analysis module, there are still some important challenges that need to be addressed:
[0003] Model data conversion and compatibility: Due to defects in data structure design, existing CAE software cannot achieve seamless conversion from interactive modeling to finite element calculation models, which not only hinders smooth transition between different stages, but also limits the efficiency of multidisciplinary collaboration and affects user experience.
[0004] Calculation analysis module architecture design: The existing solution analysis module lacks comprehensive and flexible architectural design, making it difficult for the system to quickly adapt and integrate emerging advanced algorithms, limiting technological innovation and the expansion of application scope.
[0005] Interface with other modules: Due to inadequate consideration of data structure and architectural design, it is difficult to achieve interfacing with other modules in the system, often requiring complex file systems for data communication between modules. For example, in the post-processing module, additional processing by third-party software is often required, increasing user complexity and workload.
[0006] In view of the above problems, there is an urgent need for a calculation analysis module design method and device to address the shortcomings of existing data structure and functional architecture design, enhance the stability of the system in data conversion and analysis model construction, standardize the interface between calculation results and post-processing modules, reduce development complexity and long-term maintenance costs, and significantly improve modeling and simulation efficiency and user experience, promoting the technological progress and development of domestic CAE software. SUMMARY
[0007] Therefore, it is necessary to provide a calculation analysis module design method, simulation software construction method and device to solve the technical problems of poor extensibility and maintainability in software development and ineffective implantation of external algorithms caused by data structure limitations and rigid functional architecture.
[0008] In one aspect, in order to solve the above technical problems, the present application provides a method for designing a computing analysis module, comprising:
[0009] constructing a computing task data structure and a computing task creation management function architecture; the computing task data structure comprises a model node class for accessing interactive model data of the interactive model to be analyzed and a computing task information class for obtaining computing task information; the computing task creation management function architecture comprises a dialog window for describing a computing task;
[0010] constructing a conversion mechanism of a geometric grid and an analysis grid and a multi-unit universal assembler; the conversion mechanism is used for converting the interactive model data into analysis model data, and the multi-unit universal assembler is used for determining a total stiffness identifier of a degree of freedom of each node in the analysis model data;
[0011] constructing a computing step data structure; the computing step data structure comprises a computing step information class for representing computing step information, a load condition container class for representing a load condition, and a boundary condition container class for representing a boundary condition;
[0012] determining a specific implementation method in the computing step information class based on a finite element analysis theory.
[0013] In one possible implementation, a computing task data structure is constructed, comprising:
[0014] designing a computing task container class inherited from an abstract container class and a computing task node class inherited from an abstract model node class based on a combination mode; the computing task container class and the computing task node class are in an aggregation relationship; the computing task container class is used for managing the computing task node class, and the computing task node class is used for creating a computing task;
[0015] constructing the model node class and the computing task information class; the model node class and the computing task node class are in an association relationship, and the computing task information class and the computing task node class are in a composition relationship; the computing task information class is used for obtaining computing task information.
[0016] In one possible implementation, the computing task data structure is constructed, and further comprising:
[0017] constructing a computing task thread class, an analysis model class, and a computing result class; the computing task thread class and the computing result class are in an aggregation relationship with the computing task node class, and the analysis model class is in an association relationship with the computing task node class;
[0018] The computing task thread class is used for providing an asynchronous computing function, the analysis model class is used for accessing analysis model data, and the computing result class is used for storing the analysis model data and the interaction model data and establishing a connection with a visual post-processing module.
[0019] In a possible implementation manner, a computing task creation management function architecture is constructed, including:
[0020] A computing task creation dialog window, a computing task editing dialog window, a computing task generator and a computing task management dialog window are constructed, a relationship between the computing task creation dialog window and the computing task editing dialog window, the computing task editing dialog window and the computing task generator is a combination relationship, a relationship between the computing task creation dialog window and the computing task management dialog window, the computing task editing dialog window and the computing task management dialog window is a combination relationship, and a relationship between the computing task management dialog window and the computing task thread class is an aggregation relationship.
[0021] The computing task management dialog window includes a reserved creation button and an editing button, the creation button is used for calling the computing task creation dialog window, and the editing button is used for calling the computing task editing dialog window.
[0022] In a possible implementation manner, the conversion mechanism includes a node conversion mechanism and a unit conversion mechanism, and a conversion mechanism of the geometric grid and the analysis grid is constructed, including:
[0023] Geometric node information in the geometric grid and analysis model node information in the analysis grid are traversed, and the node conversion mechanism is constructed based on the geometric node information and the analysis model node information.
[0024] Geometric unit information in the geometric grid and analysis model unit information in the analysis grid are traversed, and the unit conversion mechanism is constructed based on the geometric unit information and the analysis model unit information.
[0025] In a possible implementation manner, a multi-unit universal assembler is constructed, including:
[0026] Data attributes of the multi-unit universal assembler are determined, and an assembling step is constructed based on the data attributes to obtain the multi-unit universal assembler.
[0027] The data attribute comprises an analysis model node list, an analysis model unit list, a node degree of freedom quota table and a node degree of freedom mapping number table, the analysis model node list comprises a node degree of freedom identifier and a node degree of freedom mapping number in an assembly process, the analysis model unit list comprises a unit degree of freedom number and a unit degree of freedom identifier in the assembly process, the node degree of freedom quota table is a string list composed of the degree of freedom identifier of each node, and the node degree of freedom mapping number table is a list of node degree of freedom mapping numbers;
[0028] The assembly step is:
[0029] Each element in the unit degree of freedom number table of each unit is compared with the corresponding node degree of freedom identifier, the node degree of freedom is updated based on the comparison result, and the node degree of freedom of all nodes after the update constitutes a degree of freedom identifier quota table;
[0030] Each element in the node degree of freedom quota table is traversed, the total number of node degrees of freedom is determined, the initial value of the node degree of freedom mapping number is obtained, and the value of each element in the node degree of freedom mapping number is determined based on the total number of node degrees of freedom and the initial value;
[0031] Each unit is traversed, the unit degree of freedom number table of each unit is determined based on the degree of freedom identifier quota table and the node degree of freedom mapping number, and the degree of freedom distribution total stiffness identifier is determined based on the unit degree of freedom number table of each unit.
[0032] In a possible implementation manner, the calculation step data structure is constructed, comprising:
[0033] The calculation step container class and the calculation step node class are designed based on the combination mode design and inherit the abstract container class and the abstract model node class; the calculation step container class and the calculation step node class are in an aggregation relationship; the calculation step container class is used for managing the calculation step node class, and the calculation step node class is used for creating a calculation step;
[0034] The load condition container class and the boundary condition container class in an aggregation relationship with the calculation step node class, the calculation step information class in a combination relationship with the calculation step node class and the calculation step type class in an association relationship with the calculation step node class are constructed;
[0035] The calculation step information class is used for managing the calculation step attribute and parameter of the calculation step node class, and provides an abstract method interface.
[0036] In another aspect, the application also provides a simulation software construction method, comprising:
[0037] The calculation analysis module is constructed based on the calculation analysis module design method;
[0038] The computing analysis module design method is the computing analysis module design method in any one of the possible implementation manners.
[0039] In another aspect, the present application also provides a computing analysis module design device, comprising:
[0040] A data structure and function architecture construction unit is configured to construct a computing task data structure and a computing task creation management function architecture; the computing task data structure comprises a model node class for accessing interactive model data of the interactive model to be analyzed and a computing task information class for obtaining computing task information; and the computing task creation management function architecture comprises a dialogue window for describing a computing task.
[0041] A conversion mechanism and assembler construction unit is configured to construct a conversion mechanism of a geometric grid and an analysis grid and a multi-unit general assembler; the conversion mechanism is configured to convert the interactive model data into analysis model data, and the multi-unit general assembler is configured to determine a degree of freedom distribution total stiffness identifier of each node in the analysis model data.
[0042] A computing step data structure construction unit is configured to construct a computing step data structure; the computing step data structure comprises a computing step information class representing computing step information, a load condition container class representing a load condition, and a boundary condition container class representing a boundary condition.
[0043] A specific implementation method determination unit is configured to determine a specific implementation method in the computing step information class based on finite element analysis theory.
[0044] In another aspect, the present application also provides a simulation software construction device, comprising:
[0045] A computing analysis module construction unit is configured to construct a computing analysis module based on a computing analysis module design method.
[0046] The computing analysis module design method is the computing analysis module design method in any one of the possible implementation manners.
[0047] The beneficial effects of the present application are: the calculation analysis module design method provided by the present application firstly, through the construction of the calculation task data structure and the calculation task creation management function architecture, the model node class in the calculation task data structure can be accessed based on the analysis interaction model, the calculation task information can be obtained based on the calculation task information class, and the calculation task parameters and other information describing the calculation task can be determined based on the dialogue window in the calculation task creation management function architecture, and then the specific calculation task of the analysis interaction model is determined, and the interaction model data is accessed based on the model node class when the analysis interaction model calculation task is determined, the interaction model data is obtained, which provides data support for subsequent grid conversion and priority cloud analysis. Secondly, by constructing the conversion mechanism of geometric grid and analysis grid and the multi-unit general assembler, the seamless conversion of geometric grid and analysis grid is realized, without importing the geometric grid into the third-party software for additional processing, reducing the complexity of user operation and work burden. Further, the present application constructs the calculation step data structure, and sets the calculation step information class representing the calculation step information in the calculation step data structure, and the specific implementation method in the calculation step information class is determined based on the finite element analysis theory. That is: the abstract method interface in the calculation step information class can access different algorithms, which improves the scalability of the calculation analysis module.
[0048] In summary, the embodiments of the present application construct a design framework for the calculation analysis module, provide clear development guidance for the calculation analysis module, provide clear data and function architecture support for the development, access and verification of advanced algorithms, effectively guarantee the scalability and maintainability of the module, improve the development efficiency of the module, and provide a good interactive experience for users. BRIEF DESCRIPTION OF DRAWINGS
[0049] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.
[0050] Figure 1 An embodiment flow diagram of the calculation analysis module design method provided by the present application;
[0051] Figure 2 An embodiment diagram of the calculation task data structure provided by the present application;
[0052] Figure 3 An embodiment diagram of the calculation task creation management function architecture provided by the present application;
[0053] Figure 4 An embodiment diagram of the calculation step data structure provided by the present application;
[0054] Figure 5 A schematic diagram of the calculation steps of an algorithm example based on the finite element theory provided by the present application is shown in the figure.
[0055] Figure 6 A schematic diagram of an embodiment structure of the calculation analysis module design device provided by the present application is shown in the figure. DETAILED DESCRIPTION
[0056] The technical solutions in the embodiments of the present application will be clearly and completely described in the present application with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present application.
[0057] It should be understood that the schematic drawings are not drawn according to the actual proportion. The flow chart used in the present application shows the operations implemented according to some embodiments of the present application. It should be understood that the operations of the flow chart can not be implemented in sequence, and the steps without logical context relationship can be reversed in sequence or implemented simultaneously. In addition, one or more other operations can be added to the flow chart or removed from the flow chart by those skilled in the art under the guidance of the content of the present application. Some block diagrams shown in the drawings are functional entities, which do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different network and / or processor systems and / or microcontroller systems.
[0058] In this paper, the phrase "embodiment" means that the specific features, structures or characteristics described in connection with the embodiment can be included in at least one embodiment of the present application. The phrase appears in various places in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment to other embodiments. Those skilled in the art explicitly and implicitly understand that the embodiments described herein can be combined with other embodiments.
[0059] The present application provides a calculation analysis module design method, a simulation software construction method and device, which are applied to finite element simulation software, which are described below respectively.
[0060] Before introducing the embodiments, it needs to be explained that: the calculation analysis module design method in the embodiments of the application can be implemented in electronic devices such as desktop computers, notebooks, tablets, laptops, etc. The program prepared by the calculation analysis module design method is stored in any of the above electronic devices, and when any of the above electronic devices is started, the program is called, and then the calculation analysis module design method is implemented.
[0061] In specific embodiments of the application, the electronic device is a finite element simulation software construction device for constructing finite element simulation software.
[0062] Figure 1 An embodiment flowchart of the calculation analysis module design method provided by the application is shown in Figure 1 As shown in the figure, the calculation analysis module design method includes:
[0063] S101, constructing a calculation task data structure and a calculation task creation management function architecture; the calculation task data structure includes a model node class for accessing interactive model data of an interactive model to be analyzed and a calculation task information class for obtaining calculation task information; the calculation task creation management function architecture includes a dialog window for describing the calculation task;
[0064] S102, constructing a conversion mechanism of geometric grid and analysis grid and a multi-unit general assembler; the conversion mechanism is used to convert the interactive model data into analysis model data, and the multi-unit general assembler is used to determine the degree of freedom distribution total stiffness identifier of each node in the analysis model data.
[0065] S103, constructing a calculation step data structure; the calculation step data structure includes a calculation step information class representing calculation step information, a load condition container class representing load conditions, and a boundary condition container class representing boundary conditions.
[0066] S104, determining the specific implementation method in the calculation step information class based on the finite element analysis theory.
[0067] The interactive model data includes the geometric model generated during modeling and related setting parameters, such as material parameters, boundary conditions, etc., and also includes the geometric grid data obtained when the geometric model is meshed. The geometric grid refers to the grid without physical properties (such as stress, temperature) assigned to the grid, and the analysis grid is the grid including physical properties.
[0068] It should be noted that: the purpose of creating the computing task data structure and the computing task creation management function architecture is to support the determination of the computing task development, the conversion mechanism of the geometric grid and the analysis grid, and the construction of the multi-unit general assembler, the purpose of creating the computing step data structure and the specific implementation method is to realize the simulation analysis solving calculation of the analysis model.
[0069] Compared with the prior art, the computing analysis module design method provided by the embodiment of the application first, by constructing the computing task data structure and the computing task creation management function architecture, the model node class in the computing task data structure can be used to access the interactive model to be analyzed, the computing task information can be obtained based on the computing task information class, and the computing task parameters and other information describing the computing task can be determined based on the dialog window in the computing task creation management function architecture, and then the specific computing task of the interactive model to be analyzed is determined, and when the computing task of the interactive model to be analyzed is determined, the interactive model data is accessed based on the model node class, the interactive model data is obtained, and data support is provided for subsequent grid conversion and priority cloud analysis. Secondly, by constructing the conversion mechanism of the geometric grid and the analysis grid and the multi-unit general assembler, the seamless conversion of the geometric grid and the analysis grid is realized, and the geometric grid does not need to be imported into a third-party software for additional processing, thereby reducing the complexity of user operation and the work burden. Further, the computing step data structure is constructed, and the computing step information class representing the computing step information is arranged in the computing step data structure, and the specific implementation method in the computing step information class is determined based on the finite element analysis theory. That is, the abstract method interface in the computing step information class can access different algorithms, thereby improving the scalability of the computing analysis module.
[0070] To sum up, the embodiment of the application constructs a design framework for the computing analysis module, provides clear development guidance for the computing analysis module, and provides clear data and function architecture support for the development, access and verification of advanced algorithms. While effectively guaranteeing the scalability and maintainability of the module, the development efficiency of the module is improved, and a good interactive experience is provided for the user.
[0071] Since the process of determining the computing task not only includes accessing the interactive model data and obtaining the computing task information, but also includes other information or operations, in order to ensure the rationality and hierarchy of the computing task data structure, in some embodiments of the application, as shown in Figure 2 The computing task data structure is constructed in step S101, including:
[0072] The computing task container class Jobs inherits from the abstract container class BaseContainerObject, and the computing task node class Job inherits from the abstract model node class BaseObject; the computing task container class Jobs and the computing task node class Job are in an aggregation relationship; the computing task container class Jobs is used for managing the computing task node class Job, and the computing task node class Job is used for creating a computing task;
[0073] The model node class Model and the computing task information class JobInfo are constructed, the relationship between the model node class Model and the computing task node class Job is an association relationship, and the relationship between the computing task information class JobInfo and the computing task node class Job is a composition relationship; the computing task information class JobInfo is used for obtaining computing task information.
[0074] The composition relationship and the aggregation relationship both have management significance, that is, the composition relationship and the aggregation relationship are both a managed and a managing relationship, and the association relationship has no management significance, and it is only used for indicating that there is a connection between the two.
[0075] The computing task information class includes not only basic information of a computing task, such as computing task description and computing task type, but also functional settings of the computing task, such as whether to perform parallel computing and how to allocate computing resources.
[0076] In some embodiments of the present application, the task data structure can also support other functions, specifically, as shown in the figure, Figure 2 As shown in the figure, the step S101 of constructing the computing task data structure also includes:
[0077] The computing task thread class JobThread, the analysis model class FEMModel and the computing result class Result are constructed, the relationship between the computing task thread class JobThread and the computing result class Result and the computing task node class Job is an aggregation relationship, and the relationship between the analysis model class FEMModel and the computing task node class Job is an association relationship;
[0078] The computing task thread class JobThread is used for providing an asynchronous computing function, the analysis model class is used for accessing analysis model data, and the computing result class Result is used for storing analysis model data and interactive model data and establishing a connection with a visual post-processing module.
[0079] The embodiment of the application considers that the finite element calculation is time-consuming and long, in order to not affect the use of the finite element simulation system after the calculation task is submitted for calculation and allow the user to perform other modeling calculation operations, the asynchronous calculation function is realized by setting the calculation task thread class, the software is avoided from being occupied when the calculation task is executed, and the simulation efficiency of the finite element simulation system is improved.
[0080] In addition, the embodiment of the application provides data support for the conversion of subsequent geometric meshes and analysis meshes by setting the analysis model class. Further, the embodiment of the application stores analysis model data and interactive model data by setting the calculation result class, and establishes a connection with the visualization post-processing module, so that data management can be constructed with other modules, data is directly provided for other modules, and the introduction of third-party software is avoided.
[0081] From a macro perspective, the functions related to the calculation task include creation, editing and management. To realize these functions, in some embodiments of the application, as shown in FIG. 1, the management function architecture of the calculation task is constructed in step S101, which includes: Figure 3
[0082] The calculation task creation dialog window QmyGenerateJobDialog, the calculation task editing dialog window QmyEditJobDialog, the calculation task generator JobGenerator and the calculation task management dialog window QmyManageJobDialog, the relationship between the calculation task creation dialog window QmyGenerateJobDialog and the calculation task editing dialog window QmyEditJobDialog, the relationship between the calculation task editing dialog window QmyEditJobDialog and the calculation task generator JobGenerator is a combination relationship, the relationship between the calculation task creation dialog window QmyGenerateJobDialog and the calculation task management dialog window QmyManageJobDialog, the relationship between the calculation task editing dialog window QmyEditJobDialog and the calculation task management dialog window QmyManageJobDialog is a combination relationship, and the relationship between the calculation task management dialog window QmyManageJobDialog and the calculation task thread class JobThread is an aggregation relationship.
[0083] In the calculation task management dialog window QmyManageJobDialog, a reserved creation button and an editing button are included, the creation button is used to call the calculation task creation dialog window QmyGenerateJobDialog, and the editing button is used to call the calculation task editing dialog window QmyEditJobDialog.
[0084] From the above management function architecture, it can be seen that two modes are designed by the embodiment of the application to realize the creation, editing and management of related operations, specifically:
[0085] Firstly, after clicking the calculation task creation dialog window QmyGenerateJobDialog and setting the name of the Job and the interactive model to be analyzed, a temporary calculation task object Job is created for the user, and the calculation task editing dialog window QmyEditJobDialog is entered to provide the user with more detailed property and parameter settings of the calculation task. When the user completes each setting, the calculation task generator JobGenerator reads all the user inputs and generates the calculation task information object JobInfo, thereby completing the creation and editing of the Job.
[0086] Secondly, the user can directly create and edit the calculation task through the creation and editing buttons reserved in the calculation task management dialog window QmyManageJobDialog, thereby simplifying the management of the calculation task.
[0087] In addition, in the QmyManageJobDialog, the QTableWidget is designed, which is associated with the data model construction, can reflect the calculation task data in the current model in real time and provide interactive functions. The created Job object is associated with the QmyManageJobDialog through the corresponding JobThread. Therefore, the user can select the calculation task to be modified in the QTableWidget and click the edit button, thereby editing the JobInfo of the created Job object.
[0088] In addition to providing basic operations such as renaming (Rename) and deleting (Delete) in the QmyManageJobDialog, the Submit function is also provided, that is, after selecting the calculation task to be analyzed, clicking the Submit button will access the Job corresponding JobThread and call its execute method, thereby starting to execute the simulation calculation task.
[0089] It should be understood that the main steps of the construction of the analysis model include:
[0090] Step 1, generating the analysis model node FEMNode based on the geometric grid data MeshData;
[0091] Step 2, generating the analysis model element FEMElement based on the geometric grid data MeshData, the analysis model node FEMNode and the element type setting ElementType;
[0092] Step 3: Use the Assembler to assemble the units and nodes, and assign an overall mapping number to each valid degree of freedom on each node;
[0093] Step 4: Obtain boundary conditions and load conditions from the interactive model;
[0094] Step 5: Obtain the cross-sectional information corresponding to the geometric shape from the interactive model.
[0095] From the above, it can be seen that in order to realize the construction of the analysis model, the conversion mechanism between the geometric mesh and the analysis mesh must include a node conversion mechanism and a cell conversion mechanism. That is, the conversion mechanism for constructing the geometric mesh and the analysis mesh in step S102 includes:
[0096] Traversing the geometric node information in the geometric grid and the analytical model node information in the analytical grid, and building a node conversion mechanism based on the geometric node information and the analytical model node information;
[0097] The geometric unit information in the geometric grid and the analytical model unit information in the analytical grid are traversed, and a unit conversion mechanism is constructed based on the geometric unit information and the analytical model unit information.
[0098] In a specific embodiment of the present invention, the specific implementation process of converting the geometric grid into the analysis grid is as follows:
[0099] Generate analysis model node FEMNode: traverse the node data in MeshData and read its node coordinates and node numbers as instantiation parameters to generate FEMNode.
[0100] Generate analysis model unit FEMElement: First, traverse the geometric unit data in MeshData and extract the basic information of the geometric unit, including the unit number, unit type and the corresponding node number. Then read the analysis unit type settings set in the meshing module, including the selected unit family type, unit order, etc., and then match them in the unit library. This matching process not only involves matching the unit geometry, such as matching the three-node triangular unit with the first-order triangular unit and the eight-node quadrilateral unit with the second-order quadrilateral unit, but also matches the calculation properties of the unit based on the user's settings, such as matching the preset calculation unit with a special number of node degrees of freedom and interpolation function in the unit family with the same geometric characteristics to generate FEMElement.
[0101] In some embodiments of the present invention, building a multi-unit universal assembler in step S102 includes:
[0102] The data attributes of the multi-unit universal assembler are determined, and assembly steps are constructed based on the data attributes to obtain the multi-unit universal assembler.
[0103] Specifically, the data attributes include an analysis model node list nodes, an analysis model element list elements, a node freedom degree quota table nfat, and a node freedom degree mapping number table nfmt;
[0104] The analysis model node list nodes is a list of FEMNode, including a node freedom degree identifier nfs and a node freedom degree mapping number nfm in the assembly process, the node freedom degree identifier nfs is represented by a string composed of 0 and 1, wherein 0 represents an invalid freedom degree and 1 represents a valid freedom degree. The node freedom degree mapping number nfm is used to describe the starting number of the freedom degree of the node.
[0105] The analysis model element list elements is a list of FEMElement, including an element freedom degree number eft and an element freedom degree identifier efs in the assembly process. The element freedom degree number eft is an integer list, corresponding to the total rigid assembly number of each valid freedom degree in the element. The element freedom degree identifier efs is a string list, which is a list composed of the node freedom degree identifier nfs of the node, representing the valid freedom degree on the node corresponding to the element.
[0106] The node freedom degree quota table nfat is a string list composed of the freedom degree identifier of each node. When the elements are different, the same node shared by different elements may have different freedom degree identifiers in different elements. For example, node 1 is shared by elements 1 and 2, the freedom degree identifier nfs of the node in element 1 is “110000”, and the freedom degree identifier of the node in element 2 is “110001”. At this time, the freedom degree identifier of the node in nfat is the union of the two, that is, “110001”.
[0107] The node freedom degree mapping number table nfmt is a list of node freedom degree mapping numbers, which is a list of integers. The starting freedom degree number corresponding to each node in the table can be obtained from nfat. For example, if an nfat is ["110000","110000","110001",...], the corresponding nfmt is [0,2,4,7,...].
[0108] In a specific embodiment of the present application, the assembly step is:
[0109] Step 1, calculating the node freedom degree quota table nfat: traversing each element in the element freedom degree number efs table of each element, comparing each element with the corresponding node freedom degree identifier, if the freedom degree in efs is “1” and the node freedom degree identifier is “0”, updating the node freedom degree, and changing the freedom degree identifier to “1”. After the traversal is completed, the freedom degree identifier quota nfat table of all nodes can be obtained;
[0110] Step 2, calculating the node freedom degree mapping number nfmt table: traversing each element in the node freedom degree quota nfat table, calculating the format of "1" in each element as the total number of node freedom degrees, the element in the node freedom degree mapping number nfmt starts from 0, and the effective freedom degree number of the i-th element in nfat plus the value of the i-1-th element in nfmt is the value of the i-th element in nfmt;
[0111] Step 3, calculating the unit freedom degree number eft of each unit: traversing each unit, based on the freedom degree identification quota table nfat and the node freedom degree mapping number nfmt, the total stiffness number corresponding to each freedom degree on each node is calculated. Taking the nfmt element corresponding to the node as the starting number, taking the freedom degree identification in nfat as the calculation object, whenever "1" appears, an element is recorded in eft, and its value is the corresponding element of nfmt and the number of "1" appearing in the node up to the current freedom degree. For example, nfat=["110001","110000","110001",...], nfmt=[0,3,5,8,...], then for the unit composed of nodes 1 and 3, eft=[1,2,3,6,7,8].
[0112] At this point, the eft of each unit is calculated, that is, the total stiffness identification of the degree of freedom allocation can be confirmed, which meets the total stiffness assembly requirements in subsequent simulation calculation.
[0113] In some embodiments of the present application, as Figure 4 , the step S103 of constructing the calculation step data structure comprises:
[0114] The calculation step container class Steps inherits the abstract container class BaseContainerObject based on the combination mode design, and the calculation step node class Step inherits the abstract model node class BaseObject; the calculation step container class Steps and the calculation step node class Step are in an aggregation relationship; the calculation step container class Steps is used for managing the calculation step node class Step, and the calculation step node class Step is used for creating a calculation step;
[0115] The load condition container class Loads and the boundary condition container class BoundaryConditions are in an aggregation relationship with the calculation step node class Step, the calculation step information class StepInfo is in a combination relationship with the calculation step node class Step, and the calculation step type class StepType is in an association relationship with the calculation step node class Step;
[0116] The calculation step information class StepInfo is used for managing the calculation step attributes and parameters of the calculation step node class Step, and provides an abstract method interface.
[0117] The construction principle of the above calculation step data structure is:
[0118] Step as a calculation step, its main role is to clarify the analysis type. In finite element simulation calculation, different simulation problems correspond to different calculation steps and algorithm to achieve simulation calculation target. For example, in static structure simulation, when calculating small deformation problem, geometric nonlinearity is not considered, while when calculating large deformation, it needs to be considered, and there are significant differences in calculation process and calculation resource consumption.
[0119] Therefore, in the calculation process, Step needs two aspects of information:
[0120] One is the boundary related information, which is obtained by constructing in the boundary setting module. Each Step has corresponding boundary conditions and loads, so it needs to be clear which calculation step belongs to when setting boundary conditions. Therefore, Loads and BoundaryConditions are designed to form an aggregate relationship with Step, respectively representing the loads and boundary conditions in this calculation step.
[0121] The other is the setting attribute information of Step itself. In the process of calculation and analysis, it is necessary to set the calculation related parameters, such as whether to consider geometric nonlinearity, select the solving storage strategy, the maximum and minimum step length parameters of iterative calculation and other contents.
[0122] For different types of calculation steps, the optional strategy and related setting parameters are obviously different, therefore, the calculation step information class StepInfo is designed to form a combination relationship with Step. StepInfo manages the calculation step attributes and parameters required by the corresponding type of Step on the one hand, and provides abstract method interfaces such as compute() on the other hand.
[0123] Then the specific calculation of the calculation step is realized by the compute() method of StepInfo. Because different analysis type problems exist significant differences, there is no explicit common method. The algorithm principle can be based on the finite element theory framework, and the data required for calculation is the analysis model data FEMModel converted by the calculation analysis module. Taking static structure simulation analysis as an example, the calculation process of the compute() method in the calculation step when considering large deformation in the general calculation step information class GeneralStepInfo is described, which is based on the updated Lagrange format and uses Newton method for solving, as shown in Figure 5 .
[0124] First, the initialization operation of each item of data is needed, including node coordinates coords, Cauchy stress vector taus, displacement increment vector du, and displacement vector u. Then enter the formal calculation step:
[0125] Step 1, enter the calculation step cycle;
[0126] Step 2, call the generate_k_mat() method of the FEMModel object, based on the node coordinates coords and the Cauchy stress taus, to calculate the total stiffness matrix k_mat and the internal force related term tf_vec;
[0127] Step 3, call the generate_f_vec() method of the FEMModel object, based on the node coordinates coords, to calculate the load vector f_vec of the current calculation step;
[0128] Step 4, subtract f_vec from tf_vec to obtain the processed load vector f_vec_0;
[0129] Step 5, call the process_k_f_via_bc() method of the FEMModel object to process f_vec_0 and k_mat with boundary conditions;
[0130] Step 6, based on the processed f_vec_0 and k_mat, perform solving calculation to obtain the displacement increment vector du;
[0131] Step 7, update the coordinates coords according to du;
[0132] Step 8, calculate the stress increment relative to the current model, and update the stress vector to obtain the Cauchy stress taus of the current configuration;
[0133] Step 9, enter the iterative calculation step cycle;
[0134] Step 10, call the generate_k_mat() method of the FEMModel object, based on the node coordinates coords and the Cauchy stress taus, to calculate the total stiffness matrix k_mat_1 and the internal force related term tf_vec_1;
[0135] Step 11, based on f_vec and tf_vec_1, calculate the residual rsd, and determine whether it meets the accuracy requirement. If not, continue with the next step; if it does, end the iterative calculation step cycle, increment the calculation step number by 1, and return to Step 2. If the calculation step reaches the maximum value at this time, end the calculation process;
[0136] Step 12, perform boundary condition processing on the stiffness matrix k_mat_1 and the residual rsd, and calculate the new displacement increment du1;
[0137] Step 13, based on the displacement increment du1, update the node coordinates coords and the Cauchy stress.
[0138] Step 14, iteratively calculate step plus 1, return to step 9.
[0139] The above solving method is only a specific implementation method considering large deformation, and in actual application, different specific implementation methods can be constructed based on the algorithm in the finite element analysis principle, which is not described herein.
[0140] On the other hand, the embodiment of the present application also provides a simulation software construction method for constructing a finite element simulation software, the method comprising:
[0141] constructing a calculation analysis module based on the calculation analysis module design method;
[0142] The calculation analysis module design method based on the calculation analysis module design method in any one of the above embodiments.
[0143] It should be understood that: the simulation software construction method can also include constructing a mesh division module in addition to constructing the calculation analysis module through the above steps, which is not described herein.
[0144] On the other hand, the embodiment of the present application also provides a calculation analysis module design device, as shown in Figure 6 The calculation analysis module design device 600 comprises:
[0145] The data structure and function architecture construction unit 601 is used to construct the calculation task data structure and the calculation task creation management function architecture; the calculation task data structure comprises a model node class used to access the interactive model data of the interactive model to be analyzed and a calculation task information class used to obtain the calculation task information; the calculation task creation management function architecture comprises a dialogue window used to describe the calculation task;
[0146] The conversion mechanism and assembler construction unit 602 is used to construct the conversion mechanism of the geometric grid and the analysis grid and the multi-unit general assembler; the conversion mechanism is used to convert the interactive model data into analysis model data, and the multi-unit general assembler is used to determine the degree of freedom distribution total stiffness identifier of each node in the analysis model data.
[0147] The calculation step data structure construction unit 603 is used to construct the calculation step data structure; the calculation step data structure comprises a calculation step information class representing the calculation step information, a load condition container class representing the load condition, and a boundary condition container class representing the boundary condition.
[0148] The specific implementation method determination unit 604 is used to determine the specific implementation method in the calculation step information class based on the finite element analysis theory.
[0149] The computing analysis module design device 600 provided by the above embodiments can implement the technical solutions described in the computing analysis module design method embodiments, and the principles of the specific implementation of the above modules or units can be referred to the corresponding content in the computing analysis module design method embodiments, which will not be described here again.
[0150] In another aspect, the embodiments of the present application also provide a simulation software construction device for constructing finite element simulation software, the device comprises:
[0151] The computing analysis module construction unit is configured to construct the computing analysis module based on the computing analysis module design method.
[0152] The computing analysis module design method is any one of the above embodiments.
[0153] Those skilled in the art can understand that all or part of the processes of the above-mentioned embodiments can be completed by a computer program instructing related hardware (such as a processor, a controller, etc.) to complete, and the computer program can be stored in a computer readable storage medium. The computer readable storage medium includes a magnetic disk, an optical disk, a read-only memory, a random access memory, etc.
[0154] The above describes in detail the computing analysis module design method, the simulation software construction method and the device provided by the present application. The principles and implementation manners of the present application are described by applying specific examples. The above embodiment is only used to help understand the method of the present application and its core idea. Meanwhile, for those skilled in the art, according to the idea of the present application, the specific implementation manner and application range will be changed. In conclusion, the content of the specification should not be understood as a limitation of the present application.
Claims
1. A method for designing a computing and analysis module, characterized in that: include: Construct computing task data structure and computing task creation management function architecture; The computing task data structure includes a model node class for accessing the interaction model data of the interaction model to be analyzed and a computing task information class for obtaining computing task information; the computing task creation management function architecture includes a dialog window for describing computing tasks; Conversion mechanisms and a multi-element general assembler for constructing geometric and analytical meshes; The conversion mechanism is used to convert the interactive model data into analytical model data, and the multi-element universal assembler is used to determine the degree of freedom allocation total stiffness identifier of each node in the analytical model data; Constructing a calculation step data structure; the calculation step data structure includes a calculation step information class representing calculation step information, a load condition container class representing load conditions, and a boundary condition container class representing boundary conditions; The specific implementation method in the calculation step information class is determined based on finite element analysis theory.
2. The calculation and analysis module design method according to claim 1, characterized in that: Construct the computing task data structure, including: Based on the combination pattern, a computing task container class inherited from the abstract container class and a computing task node class inherited from the abstract model node class are designed; the computing task container class and the computing task node class are in an aggregation relationship; the computing task container class is used to manage the computing task node class, and the computing task node class is used to create computing tasks; The model node class and the computing task information class are constructed. The relationship between the model node class and the computing task node class is an association relationship, and the relationship between the computing task information class and the computing task node class is a combination relationship; the computing task information class is used to obtain computing task information.
3. The calculation and analysis module design method according to claim 2, characterized in that: Constructing the computing task data structure also includes: Constructing a computing task thread class, an analysis model class, and a computing result class, wherein the computing task thread class and the computing result class have an aggregation relationship with the computing task node class, and the analysis model class has an association relationship with the computing task node class; Among them, the computing task thread class is used to provide asynchronous computing functions, the analysis model class is used to access analysis model data, and the calculation result class is used to store the analysis model data and the interaction model data, and establish a connection with the visualization post-processing module.
4. The calculation and analysis module design method according to claim 3, characterized in that: Build a computing task creation and management functional architecture, including: Constructing a computing task creation dialog window, a computing task editing dialog window, a computing task generator, and a computing task management dialog window, wherein the relationship between the computing task creation dialog window and the computing task editing dialog window, and the relationship between the computing task editing dialog window and the computing task generator is a combination relationship, the relationship between the computing task creation dialog window and the computing task management dialog window, and the relationship between the computing task editing dialog window and the computing task management dialog window is a combination relationship, and the computing task management dialog window and the computing task thread class are in an aggregation relationship; The computing task management dialog window includes a reserved create button and an edit button. The create button is used to call the computing task creation dialog window, and the edit button is used to call the computing task editing dialog window.
5. The calculation and analysis module design method according to claim 1, characterized in that: The conversion mechanism includes a node conversion mechanism and a unit conversion mechanism, and the conversion mechanism between the geometric mesh and the analysis mesh is constructed, including: Traversing the geometric node information in the geometric grid and the analytical model node information in the analytical grid, and constructing the node conversion mechanism based on the geometric node information and the analytical model node information; The geometric unit information in the geometric grid and the analysis model unit information in the analysis grid are traversed, and the unit conversion mechanism is constructed based on the geometric unit information and the analysis model unit information.
6. The calculation and analysis module design method according to claim 1, characterized in that: Build a multi-unit general assembler, including: Determining data attributes of the multi-unit universal assembler, and constructing assembly steps based on the data attributes to obtain the multi-unit universal assembler; The data attributes include an analysis model node list, an analysis model unit list, a node degree of freedom quota table, and a node degree of freedom mapping number table. The analysis model node list includes node degree of freedom identifiers and node degree of freedom mapping numbers during the assembly process. The analysis model unit list includes unit degree of freedom numbers and unit degree of freedom identifiers during the assembly process. The node degree of freedom quota table is a list of character strings consisting of the degree of freedom identifiers of each node. The node degree of freedom mapping number table is a list of node degree of freedom mapping numbers. The assembly steps are: Traverse each element in the unit degree of freedom number table of each unit, compare each element with the corresponding node degree of freedom identifier, update the node degree of freedom based on the comparison result, and the updated node degrees of freedom of all nodes constitute the degree of freedom identifier quota table; Traversing each element in the node degree of freedom quota table, determining the total number of node degrees of freedom, obtaining an initial value of the node degree of freedom mapping number, and determining a value of each element in the node degree of freedom mapping number based on the total number of node degrees of freedom and the initial value; Each unit is traversed, and a unit degree of freedom number table of each unit is determined based on the unit degree of freedom identification quota table and the node degree of freedom mapping number; and the degree of freedom allocation total stiffness identification is determined based on the unit degree of freedom number table of each unit.
7. The calculation and analysis module design method according to claim 1, characterized in that: The step of constructing the calculation step data structure includes: Based on the combination pattern, a calculation step container class inherited from the abstract container class and a calculation step node class inherited from the abstract model node class are designed; the calculation step container class and the calculation step node class are in an aggregation relationship; the calculation step container class is used to manage the calculation step node class, and the calculation step node class is used to create calculation steps; Constructing the load condition container class and the boundary condition container class in an aggregation relationship with the calculation step node class, the calculation step information class in a combination relationship with the calculation step node class, and the calculation step type class in an association relationship with the calculation step node class; The calculation step information class is used to manage the calculation step attributes and parameters of the calculation step node class and provide an abstract method interface.
8. A method for constructing simulation software, characterized in that: include: Construct a computational analysis module based on the computational analysis module design method; The calculation and analysis module-based design method is the calculation and analysis module-based design method described in any one of claims 1-7.
9. A computing and analysis module design device, characterized in that: include: Data structure and functional architecture building unit, used to build computing task data structure and computing task creation management functional architecture; The computing task data structure includes a model node class for accessing the interaction model data of the interaction model to be analyzed and a computing task information class for obtaining computing task information; the computing task creation management function architecture includes a dialog window for describing computing tasks; A conversion mechanism and assembler construction unit is used to construct a conversion mechanism for a geometric mesh and an analysis mesh and a multi-element universal assembler; the conversion mechanism is used to convert the interactive model data into analysis model data, and the multi-element universal assembler is used to determine the degree of freedom allocation total stiffness identifier of each node in the analysis model data; A calculation step data structure construction unit, configured to construct a calculation step data structure; the calculation step data structure includes a calculation step information class representing calculation step information, a load condition container class representing load conditions, and a boundary condition container class representing boundary conditions; The specific implementation method determining unit is used to determine the specific implementation method in the calculation step information class based on finite element analysis theory.
10. A simulation software construction device, characterized in that: include: A calculation and analysis module construction unit, used to construct a calculation and analysis module based on a calculation and analysis module design method; The calculation and analysis module-based design method is the calculation and analysis module-based design method described in any one of claims 1-7.
Citation Information
Patent Citations
Computer cluster parallel computing system and method
CN113626367A
Creep deformation method and device for limited-length cladding pipe and computer equipment
CN114676523A