PROGRAM, INFERENCE METHOD AND INFORMATION PROCESSING APPARATUS

JP7633521B2Active Publication Date: 2025-02-20FUJITSU LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2021113566
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-07-08
Publication Date
2025-02-20
Estimated Expiration
2041-07-08

AI Technical Summary

Benefits of technology

【0012】 1つの側面では、構造解析シミュレーションを高速化できる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007633521000002
    Figure 0007633521000002
  • Figure 0007633521000003
    Figure 0007633521000003
  • Figure 0007633521000004
    Figure 0007633521000004
Patent Text Reader

Abstract

To accelerate a structural analysis simulation.SOLUTION: A storage unit stores mesh data 141 containing a plurality of node points and a plurality of edges, and boundary condition data 142 indicating a force given to an object indicated by the mesh data 141. A processing unit calculates a rigidity matrix 143 containing a plurality of rigidity values corresponding to the plurality of edges, and a force vector 144 containing a plurality of force values corresponding to the plurality of node points. The processing unit generates feature data 145 from the rigidity matrix 143 and the force vector 144. The processing unit deduces a plurality of displacement magnitudes by performing a convolution operation to the feature data 145 according to a connection relation of the plurality of node points.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a program, an inference method, and an information processing device. [Background technology]

[0002] One type of computer simulation is structural analysis simulation. Structural analysis simulations may calculate the deformation of an object from the shape of the object and the force applied to the object. Computer simulations may also use the finite element method (FEA) as a numerical analysis method.

[0003] For example, the finite element method places multiple nodes in the space in which an object exists, and divides the space into small regions by edges connecting the nodes. The finite element method assigns variables indicating physical quantities to each node, and calculates a coefficient matrix that discretely expresses the relationship between the nodes according to governing equations that indicate the laws of physics. The finite element method also calculates the right-hand side vector based on the boundary conditions. The finite element method solves the simultaneous equations defined by the coefficient matrix and the right-hand side vector using an iterative method such as the conjugate gradient method (CG).

[0004] A structural analysis simulation that calculates the deformation of an object using the finite element method assigns a variable indicating the amount of displacement to each node. The relationship between the amount of displacement and the force is expressed by a system of simultaneous equations in which the product of the stiffness matrix and the displacement vector is equal to the force vector. Therefore, the structural analysis simulation calculates the stiffness matrix and the force vector based on the governing equations and boundary conditions, and calculates the displacement vector by solving the system of simultaneous equations.

[0005] A system has been proposed that calculates a stiffness matrix and load vector from mesh data using the finite element method, generates a coefficient matrix A and right-hand side vector f from the stiffness matrix and load vector, and calculates a solution vector x that satisfies Ax = f.A surrogate model generation method has also been proposed that reduces the number of dimensions using Principal Component Analysis (PCA) and approximates higher-order derivatives using a neural network.

[0006] A finite element method simulation has been proposed in which an approximate solution is calculated from geometric data and boundary conditions using a multilayer neural network, and the approximate solution is substituted into variables to warm start a finite element method solver.A structural analysis simulation has also been proposed in which machine learning is performed using the results of simulations of different geometric data as training data, and the finite element method is executed while modifying material properties. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] U.S. Pat. No. 5,754,181 [Patent Document 2] JP 2016-146169 A [Patent Document 3] US Patent Application Publication No. 2017 / 0032068 [Patent Document 4] Patent Publication No. 2021-2342 Summary of the Invention [Problem to be solved by the invention]

[0008] A linear solver that solves a large-scale simultaneous equation by an iterative method may require a large amount of calculation and may take a long time to execute. Therefore, a structural analysis simulation that calculates the deformation of an object may be considered to simply infer the amount of displacement of each node without relying on a strict finite element method. The amount of displacement may be inferred by using a convolution operation of feature amounts between nodes. For example, an inference model such as a convolution neural network that performs a convolution operation may be used.

[0009] In this case, it is important to know what input data to use to infer the amount of displacement. Depending on the method of specifying the input data, it may be difficult to infer the amount of displacement with a practical level of accuracy. For example, when trying to directly infer the amount of displacement of each node from boundary condition data, which is input data for the finite element method, the inference accuracy may be low. Therefore, in one aspect, the present invention aims to speed up structural analysis simulation. [Means for solving the problem]

[0010] In one embodiment, a program is provided that causes a computer to execute the following processes: A stiffness matrix including stiffness values ​​corresponding to the edges and a force vector including force values ​​corresponding to the nodes are calculated based on mesh data including a plurality of nodes and a plurality of edges connecting the nodes, and boundary condition data indicating forces applied to an object represented by the mesh data; Feature data is generated from the stiffness matrix and the force vector; A convolution operation is performed on the feature data according to the connection relationship of the nodes represented by the mesh data, thereby inferring a plurality of displacement amounts corresponding to the nodes.

[0011] In one embodiment, a computer-implemented inference method is provided.In one embodiment, an information processing device is provided having a storage unit and a processing unit. Effect of the Invention

[0012] On the one hand, it can speed up structural analysis simulations. [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 is a diagram illustrating an information processing device according to a first embodiment. [Diagram 2] FIG. 11 illustrates an example of hardware of an information processing apparatus according to a second embodiment. [Diagram 3] FIG. 13 is a diagram showing an example of a simulation result of a wheel. [Figure 4] FIG. 1 is a diagram illustrating an example of a simulation space of a finite element method. [Diagram 5] FIG. 13 is a diagram illustrating an example of displacement prediction using a graph convolutional network. [Figure 6] FIG. 11 illustrates an example of a data flow for predicting a displacement amount according to the second embodiment; [Figure 7] 1A to 1C are diagrams illustrating examples of structures of mesh data, a stiffness matrix, and a force vector. [Figure 8] 11A and 11B are diagrams illustrating examples of the structures of a node feature vector and an edge feature vector. [Figure 9] FIG. 13 is a diagram illustrating an example of a connection between a stiffness matrix and a force matrix. [Figure 10] FIG. 1 illustrates an example of a graph convolution operation. [Figure 11] FIG. 13 illustrates an example of a graph convolution network according to a second embodiment; [Figure 12] 13 is a graph showing an example of the optimum number of layers and the optimum number of features according to the number of nodes. [Figure 13] 11 is a graph showing an example of an execution time of a structural analysis simulation. [Figure 14] FIG. 13 is a diagram showing an example of a simulation result of a cantilever. [Figure 15] FIG. 2 is a block diagram showing an example of functions of the information processing device; [Figure 16] 13 is a flowchart illustrating an example of a procedure for generating a model according to a second embodiment. [Figure 17] 13 is a flowchart illustrating an example of a procedure for predicting a displacement amount according to the second embodiment. [Figure 18]FIG. 13 illustrates an example of a data flow for predicting a displacement amount according to the third embodiment. [Figure 19] 13A and 13B are diagrams illustrating examples of normalization of a feature matrix and principal component analysis. [Figure 20] FIG. 13 illustrates an example of a graph convolution network according to a third embodiment; [Figure 21] FIG. 13 is a diagram illustrating an example of the number of features per node according to the number of nodes. [Figure 22] 13 is a flowchart illustrating an example of a procedure for generating a model according to a third embodiment. [Figure 23] 13 is a flowchart illustrating an example of a procedure for predicting a displacement amount according to the third embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.

[0015] FIG. 1 is a diagram illustrating an information processing apparatus according to a first embodiment. The information processing device 10 executes a structural analysis simulation to analyze deformation of an object in response to an applied force. Instead of directly solving a large-scale simultaneous equation generated according to the finite element method, the information processing device 10 infers a solution using a model such as a neural network. The information processing device 10 may be a client device or a server device. The information processing device 10 may be called a computer, an inference device, or a simulation device.

[0016] The information processing device 10 has a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or may be a non-volatile storage such as a hard disk drive (HDD) or a flash memory. The processing unit 12 is a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). However, the processing unit 12 may include an electronic circuit for a specific purpose such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes a program stored in a memory such as a RAM (which may be the storage unit 11). A set of processors may be called a multiprocessor or simply a "processor".

[0017] The storage unit 11 stores mesh data 13 and boundary condition data 14. The mesh data 13 represents the shape of an object, and includes a plurality of nodes and a plurality of edges connecting the nodes. The mesh data 13 divides a space in which the object exists into a plurality of small regions by the nodes and edges. The space in which the object exists may be a two-dimensional plane or a three-dimensional space. The small regions may have a shape such as a triangle, a rectangle, a tetrahedron, or a hexahedron. The mesh data 13 may be automatically generated by mesh generation software from CAD (Computer Aided Design) data representing the outer shape of the object.

[0018] The boundary condition data 14 indicates a force to be applied to the object represented by the mesh data 13. A force applied from outside the object may be called a load or an external force. The boundary condition data 14 may specify the range of the object surface to which the force is applied, the direction of the force, and the magnitude of the force. For example, the boundary condition data 14 specifies that a force fz is applied in a downward direction to the upper surface of the object.

[0019] The processing unit 12 calculates a stiffness matrix 15 (stiffness matrix A) and a force vector 16 (force vector b) based on the mesh data 13 and the boundary condition data 14. The stiffness matrix 15 and the force vector 16 are matrices and vectors that are also used in the finite element method. The finite element method calculates a displacement vector 17 (displacement vector x) that satisfies a simultaneous equation of Ax=b by an iterative method such as the conjugate gradient method. As will be described later, the processing unit 12 simply infers the displacement vector 17 instead of directly solving the simultaneous equations.

[0020] The stiffness matrix 15 includes a plurality of discretized stiffness values ​​corresponding to a plurality of edges indicated by the mesh data 13. For example, the rows of the stiffness matrix 15 correspond to nodes, the columns of the stiffness matrix 15 correspond to nodes, and the intersections of the rows and columns correspond to edges connecting two nodes. The processing unit 12 calculates the stiffness value between the two nodes connected by an edge, for example, from the coordinates of the two nodes, the material, and a governing equation regarding the deformation of an object according to a force. For example, the processing unit 12 uses parameters such as the length between the nodes, the cross-sectional area, and the elastic modulus. In addition, for example, the processing unit 12 uses, as governing equations, an equilibrium equation, a strain-displacement relation, and a stress-strain relation that indicate that all forces are combined to be zero.

[0021] The force vector 16 includes a plurality of discretized force values ​​corresponding to a plurality of nodes indicated by the mesh data 13. The force vector 16 may be called a stress vector, an external force vector, or a load vector. For example, the processing unit 12 calculates the force acting on each of the plurality of nodes based on the boundary condition data 14. The force value of a node outside the range specified by the boundary condition data 14 may be zero. Also, the force value of an internal node inside the object may be zero. The force value of a node on the object surface within the range specified by the boundary condition data 14 may represent the force specified by the boundary condition data 14.

[0022] The displacement vector 17 includes multiple discretized displacement amounts corresponding to multiple nodes indicated by the mesh data 13. The displacement amount is the amount by which a node moves when a force is applied to an object. The displacement amount is an unknown quantity, and corresponds to a variable assigned to the node. Thus, the displacement vector 17 is a vector that lists multiple variables assigned to multiple nodes.

[0023] The processing unit 12 generates feature data 18 from the stiffness matrix 15 and the force vector 16. The feature data 18 is input data used to infer the amount of displacement. The feature data 18 may include a plurality of feature vectors corresponding to a plurality of nodes. The feature data 18 may also be a feature matrix that connects the stiffness matrix 15 and the force vector 16. In this case, the processing unit 12 may rearrange the elements of the stiffness matrix 15 and the force vector 16, for example, arranging stiffness values ​​and force values ​​related to the same node in the same row.

[0024] Furthermore, the feature amounts included in the feature data 18 may be the stiffness values ​​included in the stiffness matrix 15 and the force values ​​included in the force vectors 16 themselves, or may be processed stiffness values ​​or force values. For example, the processing unit 12 may normalize the feature amounts included in multiple feature vectors corresponding to multiple nodes. Furthermore, the processing unit 12 may reduce the number of dimensions of the multiple feature vectors by principal component analysis.

[0025] The processing unit 12 performs a convolution operation on the feature data 18 according to the connection relationship between the nodes indicated by the mesh data 13 to infer the displacement amount of each node. The processing unit 12 may input the feature data 18 to a model 19 that performs the convolution operation. The model 19 may be generated in advance by machine learning. The model 19 may be a convolutional neural network (CNN) including one or more convolution layers. The model 19 may also be a graph convolutional network (GCN) including one or more graph convolution layers that perform a so-called graph convolution operation.

[0026] As a convolution operation, for example, the processing unit 12 updates a feature vector of a node using feature vectors of other nodes connected to the node. For example, the processing unit 12 multiplies the feature vector of the other node by a coefficient and adds the product to the feature vector of the node. The kernel including the coefficient is determined, for example, through machine learning. The processing unit 12 outputs the inferred displacement vector 17. The processing unit 12 may store the displacement vector 17 in a non-volatile storage, may display it on a display device, or may transmit it to another information processing device.

[0027] As described above, the information processing device 10 of the first embodiment executes a structural analysis simulation to calculate deformation of an object based on mesh data 13 indicating the shape of the object and boundary condition data 14 indicating forces acting on the object. This allows the information processing device 10 to provide information useful for designing the shape of an object, such as designing industrial parts.

[0028] Moreover, instead of solving the simultaneous equation Ax=b to calculate the displacement vector 17, the information processing device 10 infers the displacement vector 17 from the feature data 18. For example, the information processing device 10 inputs the feature data 18 into a model 19 to infer the amount of displacement of each node. This reduces the amount of calculation in the structural analysis simulation and shortens the execution time.

[0029] The information processing device 10 also calculates a stiffness matrix 15 and a force vector 16 that are also used in the simultaneous equation Ax=b, and generates feature data 18 from the stiffness matrix 15 and the force vector 16. The information processing device 10 then performs a convolution operation on the feature data 18 according to the connection relationships between the nodes, thereby inferring the displacement amount of each node. This improves the inference accuracy of the displacement vector 17, and makes it possible to practically use the inference result.

[0030] For example, a method of creating input data for the model 19 directly from the mesh data 13 and boundary condition data 14, which are input data for the finite element method, is also conceivable. For example, a method of including feature quantities such as the coordinates of the node, material parameters such as elastic coefficient, and the force indicated by the boundary condition data 14 in the feature vector of each node is also conceivable. However, these feature quantities themselves are weakly related to the displacement amount of each node, and it is difficult to infer the displacement amount from these feature quantities. In addition, useful feature quantities may not be assigned to nodes in a range where no force is applied or to internal nodes. In contrast, feature quantities based on the stiffness matrix 15 and force vector 16 are strongly related to the displacement amount of each node, making it easier to infer the displacement amount.

[0031] [Second embodiment] Next, a second embodiment will be described. The information processing device 100 of the second embodiment executes a structural analysis simulation and analyzes deformation of an object in response to an external force. The information processing device 100 also generates a model by machine learning and predicts a calculation result of the finite element method using the generated model. However, the machine learning and the use of the model may be performed by different information processing devices. The information processing device 100 is used, for example, for designing industrial parts. The information processing device 100 may be a client device or a server device. The information processing device 100 may be called a computer, an inference device, a simulation device, a design device, or a machine learning device.

[0032] FIG. 2 illustrates an example of hardware of an information processing apparatus according to the second embodiment. The information processing device 100 has a CPU 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a medium reader 106, and a communication interface 107, all connected via a bus. The CPU 101 corresponds to the processing unit 12 in the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 in the first embodiment.

[0033] The CPU 101 is a processor that executes instructions of a program. The CPU 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The information processing device 100 may have multiple processors. A collection of processors may be called a multiprocessor or simply a "processor."

[0034] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used in calculations by the CPU 101. The information processing device 100 may have a type of volatile memory other than a RAM.

[0035] The HDD 103 is a non-volatile storage that stores software programs such as an OS (Operating System), middleware, and application software, and data. The information processing device 100 may have other types of non-volatile storage, such as a flash memory or an SSD (Solid State Drive).

[0036] The GPU 104 performs image processing in cooperation with the CPU 101. The GPU 104 also outputs an image to a display device 111 connected to the information processing device 100. The display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector. Note that other types of output devices such as a printer may be connected to the information processing device 100.

[0037] The input interface 105 receives an input signal from an input device 112 connected to the information processing device 100. The input device 112 is, for example, a mouse, a touch panel, or a keyboard. A plurality of input devices may be connected to the information processing device 100.

[0038] The medium reader 106 is a reading device that reads the program and data recorded on the recording medium 113. The recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. The magnetic disk includes a flexible disk (FD) and a HDD. The optical disk includes a compact disc (CD) and a digital versatile disc (DVD). The medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read program may be executed by the CPU 101.

[0039] The recording medium 113 may be a portable recording medium. The recording medium 113 may be used for distributing programs and data. The recording medium 113 and the HDD 103 may be called computer-readable recording media.

[0040] The communication interface 107 is connected to a network 114 and communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.

[0041] Next, a structural analysis simulation for analyzing deformation of an object in response to an external force will be described. FIG. 3 is a diagram showing an example of a simulation result of a wheel. The mesh data 41 represents the shape of a wheel. The mesh data 41 is generated by mesh generation software from CAD data representing the shape of a wheel being designed. The mesh data 41 includes a plurality of nodes and a plurality of edges connecting the nodes. The mesh data 41 is obtained by subdividing the three-dimensional space in which the wheel exists into small regions. The faces of the subdivided small regions are triangles bounded by three nodes and three edges.

[0042] Here, the structural analysis simulation sets the following boundary conditions for the mesh data 41. A constant magnitude of external force is applied vertically downward to the upper part of the wheel. The lower part of the wheel is a fixed point that does not move. There is a possibility that the wheel will deform in response to the external force from above. The wheel is manufactured from a single material.

[0043] The structural analysis simulation calculates the displacement of each node based on the mesh data 41 and the above boundary conditions. The shape of the wheel after deformation is specified by the distribution of the displacement. The structural analysis simulation may output visualization data that visualizes the distribution of the displacement. Under these boundary conditions, the upper nodes usually have a larger displacement and the lower nodes usually have a smaller displacement. The structural analysis simulation may be repeated for a wheel of the same shape while changing the parameters of the boundary conditions. The parameters of the boundary conditions include, for example, the force strength, the material, the force application range, and the fixed range.

[0044] The force intensity is the magnitude of the vertically downward external force applied to the upper part of the wheel. Candidates for the force intensity are, for example, 1, 10, 100, and 10000. The material is the type of material of the wheel. Candidates for the material are, for example, steel, copper, aluminum, cobalt, iron, magnesium, manganese, nickel, and titanium. The force application range is the percentage of the height of the upper part of the wheel where the external force is applied. Candidates for the force application range are, for example, one-quarter, one-eighth, and one-tenth. The fixed range is the percentage of the height of the lower part of the wheel where the position does not change. Candidates for the fixed range are, for example, one-quarter, one-eighth, and one-tenth.

[0045] FIG. 4 is a diagram showing an example of a simulation space of the finite element method. A typical structural analysis simulation calculates the displacement of each node using the finite element method. The structural analysis simulation assigns a variable indicating the displacement to each of the multiple nodes. The displacement vector x is obtained by enumerating multiple displacements corresponding to the multiple nodes. The structural analysis simulation also calculates the stiffness matrix A and the force vector b based on the mesh data and boundary condition data.

[0046] Stiffness matrix A is a discrete representation of the stiffness of an object, broken down by position, and is a matrix that lists the stiffness between nodes. The stiffness between two nodes is calculated from the coordinates of the two nodes, the material of the object, and governing equations that describe the laws of physics. Stiffness depends on the length between the nodes, the cross-sectional area, and the elastic modulus. The governing equations include an equilibrium equation, a strain-displacement relation, and a stress-strain relation. The equilibrium equation shows that the sum of all forces becomes zero. The strain-displacement relation shows the relationship between strain and the amount of displacement. The stress-strain relation shows the relationship between stress and strain. Stiffness is calculated by solving these governing equations.

[0047] The force vector b is a vector that lists multiple forces corresponding to multiple nodes. The force vector b may also be called a stress vector, external force vector, or load vector. The forces acting on each node are calculated from the boundary conditions. The forces acting on nodes on the object surface within the force application range may be values ​​specified by the boundary conditions. The forces acting on nodes outside the force application range or nodes inside the object may be zero. The relationship Ax=b holds between the stiffness matrix A, the force vector b, and the displacement vector x.

[0048] Structural analysis simulation calculates the displacement vector x by solving the simultaneous linear equation Ax=b. A linear solver is used to solve the simultaneous linear equation. A linear solver finds the solution for x using an iterative method such as the conjugate gradient method. For example, a linear solver substitutes a temporary value for x to find the residual of b, and updates x so that the residual becomes smaller based on the gradient. The linear solver repeats the update of x until the residual converges.

[0049] For example, the mesh data includes nodes 171, 172, and 173 (nodes v1, v2, and v3). The nodes 171, 172, and 173 are connected to each other by edges. Therefore, the mesh data includes an edge between the nodes 171 and 172, an edge between the nodes 172 and 173, and an edge between the nodes 171 and 173. The edges are non-directional. Therefore, the feature amount of the edges is symmetric, and the stiffness matrix A is a symmetric matrix.

[0050] The nodes 171, 172, and 173 are arranged in a three-dimensional space of an orthogonal coordinate system including an X-axis, a Y-axis, and a Z-axis. The positions of the nodes 171, 172, and 173 are identified by three-dimensional coordinates. A force is applied to the nodes 171, 172, and 173 along the Z-axis. The force applied to the nodes 171, 172, and 173 is defined by a force vector b. In response to this force, the nodes 171, 172, and 173 move in the three-dimensional space. The magnitude of this movement is the displacement amount. The displacement amount of the nodes 171, 172, and 173 is expressed as a displacement vector x. Note that the displacement amounts of the nodes 171, 172, and 173 may differ from each other. Also, although the direction of the force is the Z-axis, the nodes 171, 172, and 173 may shift in the X-axis direction or the Y-axis direction.

[0051] In this way, a typical structural analysis simulation calculates a displacement vector x by solving Ax=b using a linear solver. However, solving a large-scale simultaneous equation using a linear solver can require a large amount of calculation and a long time. Therefore, instead of directly solving Ax=b, the information processing device 100 attempts to predict x using a machine learning model.

[0052] FIG. 5 is a diagram illustrating an example of displacement prediction using a graph convolutional network. In one method, a graph convolutional network (GCN) 31 is used to predict the displacement vector x. The graph convolutional network 31 is a multi-layer neural network that includes one or more graph convolutional layers that perform graph convolution operations.

[0053] A typical convolutional neural network (CNN) handles image data in which multiple pixels are arranged in a lattice pattern. The convolutional neural network performs a convolutional calculation of features between adjacent pixels. The adjacent relationship between multiple pixels is self-evident from the arrangement of the pixels. On the other hand, the graph convolutional network 31 handles graph data in which multiple nodes are connected by edges. The graph convolutional network 31 performs a convolutional calculation of features between adjacent nodes. The adjacent relationship between multiple nodes is not self-evident, but is explicitly defined by the graph data.

[0054] When the three-dimensional space in which the object is located is divided into pixels in a grid pattern, many blank pixels where no object exists are generated. Therefore, the graph convolutional network 31 is more efficient than a normal convolutional neural network in that the input data is more compact.

[0055] The graph convolution network 31 receives feature data 32. The feature data 32 is a feature matrix with n nodes and 9 dimensions. The feature vector for each node includes coordinates, force, material density, elasticity coefficient, and Poisson's ratio. The coordinates are three-dimensional coordinates indicating the position of the node in a Cartesian coordinate system. The force is a three-dimensional vector indicating the direction and magnitude of the external force acting on the node. In the case of the wheel example mentioned above, the X and Y components of the force are zero. In addition, the forces of nodes belonging to a fixed range and nodes inside the object are zero vectors.

[0056] The material density, elastic modulus, and Poisson's ratio are one-dimensional scalar values. The coordinates of each node are extracted from the mesh data. The force, material density, elastic modulus, and Poisson's ratio are extracted from the boundary condition data. The graph convolution network 31 calculates the displacement data 33 from the mesh data and the feature data 32. The displacement data 33 is a three-dimensional displacement matrix with the number of nodes n times the number of nodes. The displacement data 33 corresponds to the displacement vector x. The displacement amount is a three-dimensional vector that indicates the direction and magnitude of the movement of the node in the Cartesian coordinate system.

[0057] The feature data 32 includes feature quantities directly extracted from the mesh data and boundary condition data that are input to the finite element method. The graph convolution network 31 predicts the displacement of each node from such feature data 32. However, the prediction accuracy of the graph convolution network 31 may be low.

[0058] The above boundary conditions are primitive parameters and do not express the physical laws regarding force propagation, so they have low affinity with the amount of displacement. For this reason, it is difficult to perform machine learning of the graph convolutional network 31 so as to appropriately propagate force information between nodes and accurately predict the amount of displacement of each node. Therefore, the information processing device 100 of the second embodiment specifies the feature data to be input to the graph convolutional network as follows.

[0059] FIG. 6 illustrates an example of a data flow for predicting a displacement amount according to the second embodiment. Similar to a typical finite element method, the information processing device 100 calculates a stiffness matrix 143 (stiffness matrix A) and a force vector 144 (force vector b) from mesh data 141 and boundary condition data 142 by discretization 131. The typical finite element method uses a linear solver to calculate a displacement vector 146 (displacement vector x) that satisfies Ax=b.

[0060] In response to this, the information processing device 100 generates feature data 145 from a stiffness matrix 143 and a force vector 144 by feature extraction 132, instead of directly solving Ax=b using a linear solver. The feature data 145 includes feature amounts extracted from the stiffness matrix 143 and the force vector 144. For example, the feature data 145 is a feature matrix in which the stiffness matrix 143 and the force vector 144 are linked together.

[0061] The information processing device 100 provides mesh data 141 and feature data 145 to the graph convolutional network 133. The graph convolutional network 133 includes one or more graph convolutional layers. The graph convolutional network 133 performs a convolution operation on the feature amount included in the feature data 145 according to the adjacent relationship between the nodes indicated by the mesh data 141. As a result, the information processing device 100 predicts a displacement vector 146.

[0062] In this way, the information processing device 100 executes the discretization 131, which corresponds to the first half of the finite element method, while skipping the linear solver, which corresponds to the second half of the finite element method. In the finite element method, the discretization 131 requires a relatively small amount of calculation and a short execution time, while the linear solver requires a relatively large amount of calculation and a long execution time. In addition, the execution times of the feature extraction 132 and the graph convolution network 133 are sufficiently short. Therefore, by skipping the linear solver, the overall calculation amount of the structural analysis simulation is reduced, and the execution time is shortened.

[0063] In addition, the features included in the stiffness matrix 143 and the force vector 144 reflect the physical laws regarding force propagation and have a high affinity with the displacement amount. Therefore, an appropriate feature amount is assigned to each node, and machine learning of the graph convolutional network 133 can be performed to accurately predict the displacement amount of each node. As a result, the prediction accuracy of the graph convolutional network 133 is improved.

[0064] In addition, the boundary condition data 142 depends on the type of object or event to be analyzed, and therefore has low versatility as information. For example, although the above-mentioned feature data 32 includes material density, elastic modulus, and Poisson's ratio as parameters, it may be preferable to include other parameters depending on the object or event to be analyzed. In contrast, the stiffness matrix 143 and the force vector 144 are generated generically without depending on the boundary condition data 142 when predicting the displacement vector 146. Therefore, the versatility of the graph convolution network 133 is improved.

[0065] FIG. 7 is a diagram showing an example of the structure of mesh data, a stiffness matrix, and a force vector. The mesh data 141 includes a node matrix 147 and an adjacency matrix 148. The node matrix 147 is a matrix of size n×3. The n rows of the node matrix 147 correspond to the n nodes. The three columns of the node matrix 147 correspond to the X coordinate, the Y coordinate, and the Z coordinate. One row of the node matrix 147 represents the three-dimensional coordinate of one node.

[0066] Adjacency matrix 148 is a matrix of size n×n. The n rows of node matrix 147 correspond to n nodes, and the n columns of node matrix 147 correspond to n nodes. A flag of 0 or 1 is placed at the intersection of a row and a column. 0 indicates that there is no edge between the two nodes corresponding to the row and column. 1 indicates that there is an edge between the two nodes corresponding to the row and column. Adjacency matrix 148 is a symmetric matrix in which the value of row i, column j is the same as the value of row j, column i.

[0067] The information processing device 100 generates a stiffness matrix 143 and a force vector 144 based on the mesh data 141 and the boundary condition data 142. The stiffness matrix 143 is a matrix with a size of 3n×3n. Consecutive 3×3 elements in the stiffness matrix 143 form one block. Three rows of the block correspond to the X-direction, Y-direction, and Z-direction of a certain node. Three columns of the block correspond to the X-direction, Y-direction, and Z-direction of a certain node. Thus, the 3n rows correspond to the X-direction, Y-direction, and Z-direction of n nodes. The 3n columns correspond to the X-direction, Y-direction, and Z-direction of n nodes.

[0068] Among the n×n blocks included in the stiffness matrix 143, the diagonal blocks on the diagonal represent stiffness within the same node. The non-diagonal blocks on the diagonal represent stiffness of connections between different nodes. The 3×3 size block includes the XX, XY, XZ, YX, YY, YZ, ZX, ZY, and ZZ components of stiffness.

[0069] The XX component of stiffness represents the relationship between the force in the X direction and the displacement in the X direction. The XY component represents the relationship between the force in the X direction and the displacement in the Y direction. The XZ component represents the relationship between the force in the X direction and the displacement in the Z direction. The YX component represents the relationship between the force in the Y direction and the displacement in the X direction. The YY component represents the relationship between the force in the Y direction and the displacement in the Y direction. The YZ component represents the relationship between the force in the Y direction and the displacement in the Z direction. The ZX component represents the relationship between the force in the Z direction and the displacement in the X direction. The ZY component represents the relationship between the force in the Z direction and the displacement in the Y direction. The ZZ component represents the relationship between the force in the Z direction and the displacement in the Z direction.

[0070] The n×n blocks of the stiffness matrix 143 form a symmetric matrix because the edges have no direction. In addition, blocks corresponding to two non-adjacent nodes are zero matrices. The stiffness matrix 143 is a sparse matrix with few non-zero elements. In the second embodiment, since the structural analysis simulation is performed in a three-dimensional space, the spatial degrees of freedom are three and the size of each block is 3×3. When the structural analysis simulation is performed in a two-dimensional space, the spatial degrees of freedom are two and the size of each block is 2×2.

[0071] The force vector 144 is a vector with a size of 3n×1. Three consecutive elements in the force vector 144 form one block. Three rows of the block represent the X, Y, and Z components of the force acting on a node. Thus, the 3n rows correspond to the X, Y, and Z components of n nodes. When performing a structural analysis simulation in a two-dimensional space, the spatial degrees of freedom are two, and the size of each block is 2×1.

[0072] Here, the values ​​of the diagonal blocks included in the stiffness matrix 143 can be regarded as feature amounts related to the nodes. Also, the values ​​of the non-diagonal blocks included in the stiffness matrix 143 can be regarded as feature amounts related to the edges. Also, the values ​​of the blocks included in the force vector 144 can be regarded as feature amounts related to the nodes. The information processing device 100 utilizes such feature amounts related to the nodes and feature amounts related to the edges.

[0073] FIG. 8 is a diagram showing an example of the structure of a node feature vector and an edge feature vector. Here, attention is focused on the above-mentioned nodes 171, 172, and 173. The nodes 171 and 172 are connected by an edge e12, the nodes 171 and 173 are connected by an edge e13, and the nodes 172 and 173 are connected by an edge e23.

[0074] From the stiffness matrix 143 and the force vector 144, a node feature vector 174 for node 171, a node feature vector 175 for node 172, and a node feature vector 176 for node 173 are generated. Each of the node feature vectors 174, 175, and 176 is a 12-dimensional vector including 12 feature amounts. Nine of the 12 feature amounts are values ​​included in the diagonal blocks in the stiffness matrix 143. Three of the 12 feature amounts are values ​​included in the block of the force vector 144.

[0075] Thus, node feature vector 174 includes values ​​contained in the diagonal block corresponding to node 171 in stiffness matrix 143 and values ​​contained in the block corresponding to node 171 in force vector 144. Node feature vector 175 includes values ​​contained in the diagonal block corresponding to node 172 in stiffness matrix 143 and values ​​contained in the block corresponding to node 172 in force vector 144. Node feature vector 176 includes values ​​contained in the diagonal block corresponding to node 173 in stiffness matrix 143 and values ​​contained in the block corresponding to node 173 in force vector 144.

[0076] In addition, an edge feature vector 177 for edge e12, an edge feature vector 178 for edge e13, and an edge feature vector 179 for edge e23 are generated from the stiffness matrix 143 and the force vector 144. Each of the edge feature vectors 177, 178, and 179 is a nine-dimensional vector including nine feature amounts. These nine feature amounts are values ​​included in the off-diagonal blocks in the stiffness matrix 143.

[0077] Thus, edge feature vector 177 contains the values ​​contained in the off-diagonal blocks corresponding to nodes 171 and 172 in stiffness matrix 143. Edge feature vector 178 contains the values ​​contained in the off-diagonal blocks corresponding to nodes 171 and 173. Edge feature vector 179 contains the values ​​contained in the off-diagonal blocks corresponding to nodes 172 and 173.

[0078] In this way, the information processing device 100 extracts the feature amounts of the nodes and the feature amounts of the edges from the stiffness matrix 143 and the force vector 144. However, the graph convolution network 133 performs a convolution operation of the feature vectors between adjacent nodes. Therefore, the feature amount of an edge is distributed to the feature vectors of the nodes related to that edge. There are several possible formats for the feature data 145.

[0079] FIG. 9 is a diagram showing an example of a connection between a stiffness matrix and a force matrix. The information processing device 100 converts the stiffness matrix 143 into a stiffness matrix 151. The stiffness matrix 151 is obtained by rearranging the 3n×3n elements included in the stiffness matrix 143, and is a matrix of size n×9n. The n rows of the stiffness matrix 151 correspond to the n nodes. The 9n columns of the stiffness matrix 151 correspond to the elements of three consecutive rows of the stiffness matrix 143, i.e., 3×3n elements. A block of size 3×3 is stretched horizontally to a size of 1×9.

[0080] Furthermore, the information processing device 100 converts the force vector 144 into a force matrix 152. The force matrix 152 is obtained by rearranging the 3n×1 elements included in the force vector 144, and is a matrix of size n×3. The n rows of the force matrix 152 correspond to the n nodes. The three columns of the force matrix 152 correspond to three consecutive elements of the force vector 144. The X, Y, and Z components of the force are arranged in the horizontal direction.

[0081] The information processing device 100 generates a feature matrix 153 by horizontally concatenating the stiffness matrix 151 and the force matrix 152. The feature matrix 153 corresponds to the feature data 145. The feature matrix 153 is a matrix with a size of n×(9n+3). One row of the feature matrix 153 corresponds to the feature vector of one node. Therefore, the feature vector of the node includes 9n+3 feature amounts. The feature vector includes nine feature amounts related to stiffness within the node, 9(n-1) feature amounts related to stiffness between other nodes, and three feature amounts related to forces acting on the node.

[0082] However, since only a portion of the n×n node pairs are connected by edges, the stiffness matrix 143 is a sparse matrix. As a result, the feature matrix 153 is also a sparse matrix. Therefore, the information processing device 100 may delete zero elements from the feature matrix 153 and left-justify non-zero elements. This reduces the number of columns in the feature matrix 153. In addition, the feature vector of a certain node may include edge features limited to edges within a certain range from the node (for example, edges within a certain number of hops).

[0083] FIG. 10 is a diagram illustrating an example of a graph convolution operation. By the above method, feature vector 181 corresponding to node 171, feature vector 183 corresponding to node 172, and feature vector 185 corresponding to node 173 are generated. Graph convolution network 133 performs graph convolution operations on feature vectors 181, 183, and 185 according to the adjacent relationships between nodes 171, 172, and 173. Here, the procedure for updating feature vector 181 of node 171 will be described.

[0084] The graph convolutional network 133 applies a kernel to the feature vector 181 of the node 171 to generate a feature vector 182. The kernel is a set of coefficients indicating the weights of the features, and is optimized through machine learning. The conversion from the feature vector 181 to the feature vector 182 can be expressed as a neural network. The number of features included in the feature vector 182 may be the same as that of the feature vector 181, may be less than that of the feature vector 181, or may be more than that of the feature vector 181. The number of features to be output is a hyperparameter designated by the user during machine learning.

[0085] Similarly, graph convolutional network 133 applies a kernel to feature vector 183 of node 172 to generate feature vector 184. Graph convolutional network 133 applies a kernel to feature vector 185 of node 173 to generate feature vector 186. Feature vectors 182, 184, and 186 have the same number of features. The kernels applied to feature vectors 181, 183, and 185 may be the same or different.

[0086] The graph convolutional network 133 adds up the feature amounts of the feature vectors 182, 184, and 186 to generate a feature vector 187. The feature vector 187 is the updated feature vector of the node 171. In a similar procedure, the graph convolutional network 133 also updates the feature vectors 183 and 185 of the nodes 172 and 173. In one graph convolutional layer, the feature vector of each node is updated once.

[0087] The graph convolution operation is expressed as in formula (1). In formula (1), x is a feature vector, i is a node of interest, N(i) is a set of adjacent nodes connected to node i by edges, k is time, θ is a kernel, and deg is the number of adjacent nodes.

[0088]

number

[0089] FIG. 11 illustrates an example of a graph convolution network according to the second embodiment. The graph convolutional network 133 includes four graph convolutional layers. The graph convolutional network 133 includes graph convolutional layers 161, 163, 165, and 167, nonlinear activation layers 162, 164, 166, and 168, and a fully connected layer 169. The four graph convolutional layers and the four nonlinear activation layers are arranged alternately.

[0090] The graph convolution layer 161 accepts a feature matrix 153 of size n×(9n+3). After the graph convolution layer 161 is a non-linear activation layer 162. After the non-linear activation layer 162 is a graph convolution layer 163. After the graph convolution layer 163 is a non-linear activation layer 164. After the non-linear activation layer 164 is a graph convolution layer 165. After the graph convolution layer 165 is a non-linear activation layer 166. After the non-linear activation layer 166 is a graph convolution layer 167. After the graph convolution layer 167 is a non-linear activation layer 168. After the non-linear activation layer 168 is a fully connected layer 169. The fully connected layer 169 outputs a displacement matrix of size n×3.

[0091] The graph convolution layers 161, 163, 165, and 167 execute the graph convolution operation described above on the feature vectors of the multiple nodes. The nonlinear activation layers 162, 164, 166, and 168 convert the feature values ​​with the function tanh. However, other activation functions such as a sigmoid function may be used. The fully connected layer 169 combines the multiple feature values ​​output by the nonlinear activation layer 168 to calculate 3n elements included in the displacement matrix. Note that the number of graph convolution layers is a hyperparameter and can be changed by the user during machine learning.

[0092] FIG. 12 is a graph showing an example of the optimum number of layers and the optimum number of features according to the number of nodes. During machine learning, the information processing device 100 can also perform hyperparameter search to search for the number of graph convolution layers that maximizes the prediction accuracy of the graph convolution network 133. The optimal number of graph convolution layers depends on the number of nodes n. A curve 42 shows an example of the search result for the optimal number of graph convolution layers.

[0093] For n=28, 6 layers is optimal. For n=60, 8 layers is optimal. For n=130, 10 layers is optimal. For n=260, 12 layers is optimal. For n=516, 14 layers is optimal. For n=1035, 16 layers is optimal. For n=2238, 20 layers is optimal. In this way, the more nodes there are in the mesh data, the more likely it is that prediction accuracy will improve by increasing the number of graph convolutional layers. However, increasing the number of graph convolutional layers too much will not improve prediction accuracy, and there is an optimal number of graph convolutional layers.

[0094] Furthermore, during machine learning, the information processing device 100 can also perform hyperparameter search to search for the number of features in the intermediate layer that maximizes the prediction accuracy of the graph convolutional network 133. The optimal number of features depends on the number of nodes n. Curve 43 shows an example of the search result for the optimal number of features. As shown by curve 43, the more nodes there are in the mesh data, the more the prediction accuracy may be improved by suppressing the number of features in the intermediate layer.

[0095] FIG. 13 is a graph showing an example of the execution time of a structural analysis simulation. Execution times 44 and 45 are each a measurement of the execution time of discretization 131. Execution time 46 is a measurement of the execution time of the linear solver. Execution time 47 is a measurement of the execution time of prediction by graph convolution network 133. In a typical finite element method, the sum of execution times 44 and 46 corresponds to the execution time of the structural analysis simulation. In the second embodiment, the sum of execution times 45 and 47 corresponds to the execution time of the structural analysis simulation.

[0096] In a typical finite element method, the execution time 46 of the linear solver is long and accounts for most of the execution time of the entire structural analysis simulation. In contrast, in the second embodiment, the execution time 46 of the linear solver is replaced with the execution time 47 of the graph convolution network 133. The execution time 47 of the graph convolution network 133 is significantly shorter than the execution time 46 of the linear solver. Therefore, the execution time of the entire structural analysis simulation is significantly reduced.

[0097] FIG. 14 shows an example of a simulation result of a cantilever. Here, an example of displacement prediction for another object will be described. Analysis results 51 to 58 show the shape of the cantilever after deformation when a certain amount of force is applied to the right end of the cantilever. Analysis result 51 is an example of a displacement vector calculated by a linear solver from mesh data of n=28. Analysis result 52 is an example of a displacement vector calculated by a linear solver from mesh data of n=60. Analysis result 53 is an example of a displacement vector calculated by a linear solver from mesh data of n=130. Analysis result 54 is an example of a displacement vector calculated by a linear solver from mesh data of n=260.

[0098] Analysis result 55 is an example of a displacement vector predicted by the graph convolution network 133 from mesh data of n=28. Analysis result 56 is an example of a displacement vector predicted by the graph convolution network 133 from mesh data of n=60. Analysis result 57 is an example of a displacement vector predicted by the graph convolution network 133 from mesh data of n=130. Analysis result 58 is an example of a displacement vector predicted by the graph convolution network 133 from mesh data of n=260.

[0099] The graph convolution network 133 predicts the displacement vector calculated by the linear solver with high accuracy. In particular, the graph convolution network 133 predicts the displacement vector with higher accuracy for mesh data with a smaller number of nodes.

[0100] Next, the functions and processing procedures of the information processing device 100 will be described. FIG. 15 is a block diagram illustrating an example of functions of the information processing device. The information processing device 100 has a mesh data storage unit 121, a boundary condition storage unit 122, and a model storage unit 123. These storage units are implemented using, for example, a RAM 102 or a HDD 103. The information processing device 100 also has a discretization unit 124, a linear solver 125, a feature extraction unit 126, a machine learning unit 127, and a prediction unit 128. These processing units are implemented using, for example, a CPU 101 and a program.

[0101] The mesh data storage unit 121 stores mesh data used for machine learning of the graph convolution network. The mesh data storage unit 121 may store a plurality of mesh data representing different shapes of the same type of object for machine learning. The mesh data storage unit 121 also stores mesh data representing the shape of an object to be analyzed.

[0102] The boundary condition storage unit 122 stores boundary condition data used for machine learning of the graph convolution network 133. The boundary condition storage unit 122 may store a plurality of boundary condition data that differ in the manner in which an external force is applied to an object or in the material of the object. The model storage unit 123 stores the graph convolution network 133 generated by machine learning.

[0103] The discretization unit 124 reads mesh data from the mesh data storage unit 121, and reads boundary condition data from the boundary condition storage unit 122. The discretization unit 124 calculates a stiffness matrix and a force vector from the mesh data, the boundary condition data, and the governing equation. During machine learning, the discretization unit 124 calculates multiple sets of stiffness matrices and force vectors. During displacement prediction, the discretization unit 124 calculates the stiffness matrix and force vector of the analysis target.

[0104] The linear solver 125 acquires a stiffness matrix and a force vector from the discretization unit 124 during machine learning. The linear solver 125 solves Ax=b by an iterative method such as the conjugate gradient method to calculate a displacement vector. This displacement vector is a correct displacement vector under a given stiffness matrix and force vector, and corresponds to teacher data. However, the correct displacement vector may be derived by a method other than solving Ax=b. The linear solver 125 calculates multiple displacement vectors from multiple sets of stiffness matrices and force vectors.

[0105] The feature extraction unit 126 obtains the stiffness matrix and the force vector from the discretization unit 124. The feature extraction unit 126 generates a feature matrix by combining the stiffness matrix and the force vector. For example, the feature extraction unit 126 transforms the stiffness matrix and the force vector, respectively, and connects them in the horizontal direction so that one row corresponds to one node.

[0106] This feature matrix corresponds to the input data of the graph convolution network. During machine learning, the feature extraction unit 126 obtains a displacement vector from the linear solver 125 and combines the feature matrix corresponding to the input data with the displacement vector corresponding to the teacher data. The feature extraction unit 126 generates training data including a plurality of sets of the feature matrix and the displacement vector. During displacement prediction, the feature extraction unit 126 outputs the feature matrix of the analysis target.

[0107] The machine learning unit 127 acquires the feature matrix and the displacement vector from the feature extraction unit 126, and reads out the mesh data from the mesh data storage unit 121. The machine learning unit 127 optimizes the graph convolution network according to an optimization algorithm such as an error backpropagation method. For example, the machine learning unit 127 performs a graph convolution operation based on the feature matrix and the mesh data to predict a displacement vector and evaluates the error with respect to the teacher data. The machine learning unit 127 updates the parameters of the graph convolution layer so as to reduce the error. The machine learning unit 127 stores the generated graph convolution network in the model storage unit 123.

[0108] The prediction unit 128 reads the graph convolution network from the model storage unit 123, reads the mesh data of the analysis target from the mesh data storage unit 121, and obtains the feature matrix of the analysis target from the feature extraction unit 126. The prediction unit 128 provides the feature matrix and the mesh data to the graph convolution network to predict a displacement vector. The prediction unit 128 outputs the predicted displacement vector. The prediction unit 128 may store the displacement vector in the HDD 103, may display it on the display device 111, or may transmit it to another information processing device.

[0109] FIG. 16 is a flowchart illustrating an example of a procedure for generating a model according to the second embodiment. (S10) The discretization unit 124 generates a 3n×3n stiffness matrix A and a 3n×1 force vector b from the mesh data and boundary condition data.

[0110] (S11) The linear solver 125 solves the simultaneous linear equations Ax=b using an iterative method from A and b in step S10 to calculate a 3n×1 displacement vector x. (S12) The feature extraction unit 126 converts the 3n×3n stiffness matrix A into an n×9n stiffness matrix A by rearranging the elements. The feature extraction unit 126 also converts the 3n×1 force vector b into an n×3 force matrix b by rearranging the elements. The feature extraction unit 126 also converts the 3n×1 displacement vector x into an n×3 displacement matrix x by rearranging the elements. As a result, one row of the stiffness matrix A corresponds to one node, one row of the force matrix b corresponds to one node, and one row of the displacement matrix x corresponds to one node.

[0111] (S13) The feature extraction unit 126 horizontally concatenates the n×9n stiffness matrix A and the n×3 force matrix b to generate an n×(9n+3) feature matrix F. The feature extraction unit 126 combines the feature matrix F and the displacement matrix x to generate training data.

[0112] (S14) The machine learning unit 127 sets the number of graph convolutional layers included in the graph convolutional network and the number of features output by each graph convolutional layer. The number of layers and the number of features may be specified by a user. In addition, the machine learning unit 127 may optimize the number of layers and the number of features by hyperparameter search.

[0113] (S15) The machine learning unit 127 uses the training data in step S13 to generate a graph convolutional network that predicts an n × 3 displacement matrix x from an n × (9n + 3) feature matrix F. Here, the kernel used in the graph convolutional layer is optimized.

[0114] (S16) The machine learning unit 127 stores the generated graph convolution network. FIG. 17 is a flowchart illustrating an example of a procedure for predicting a displacement amount according to the second embodiment. (S20) The discretization unit 124 generates a 3n×3n stiffness matrix A and a 3n×1 force vector b from the mesh data and boundary condition data.

[0115] (S21) The feature extraction unit 126 converts the 3n×3n stiffness matrix A into an n×9n stiffness matrix A by rearranging the elements. The feature extraction unit 126 also converts the 3n×1 force vector b into an n×3 force matrix b by rearranging the elements.

[0116] (S22) The feature extraction unit 126 horizontally concatenates the n×9n stiffness matrix A and the n×3 force matrix b to generate an n×(9n+3) feature matrix F. (S23) The prediction unit 128 inputs the n×(9n+3) feature matrix F to the graph convolution network to predict the n×3 displacement matrix x.

[0117] (S24) The prediction unit 128 converts the n × 3 displacement matrix x into a 3n × 1 displacement vector x by rearranging the elements. The prediction unit 128 outputs the displacement vector x. As described above, the information processing device 100 of the second embodiment executes a structural analysis simulation that calculates the displacement amount of each node from mesh data and boundary condition data. This allows the information processing device 100 to provide information useful for designing an object shape. Moreover, instead of calculating the displacement vector x by solving Ax=b using a linear solver, the information processing device 100 predicts the displacement vector x from a feature matrix. This reduces the amount of calculation in the structural analysis simulation and shortens the execution time.

[0118] The information processing device 100 also inputs the feature matrix into a graph convolution network and predicts the displacement vector x through a graph convolution operation. This reduces blank pixels and makes the input data more compact than a normal convolution neural network that handles image data in which pixels are arranged in a lattice pattern. In addition, the convolution operation of the feature amounts of the nodes is efficiently performed according to the adjacent relationship between the nodes, and the force information is efficiently propagated.

[0119] Furthermore, the information processing device 100 generates a feature matrix from the stiffness matrix A and the force vector b. As a result, an appropriate feature quantity reflecting the physical laws regarding force propagation is assigned to each node, improving the prediction accuracy of the displacement vector x. Furthermore, in the structural analysis simulation, the stiffness matrix A and the force vector b are general-purpose data that do not depend on the items of boundary condition data. Therefore, the structure of the feature matrix becomes general-purpose, and the versatility of the graph convolution network is improved, making it possible to use it for various structural analyses.

[0120] [Third embodiment] Next, a third embodiment will be described. The differences from the second embodiment will be mainly described, and the description of the same contents as the second embodiment may be omitted. The information processing device of the third embodiment can be realized by the same hardware structure and software structure as those in Figs. 2 and 15. Therefore, the third embodiment will be described below using the same reference numerals as those in Figs. 2 and 15.

[0121] The feature matrix input to the graph convolution network of the second embodiment has a size of n×(9n+3) depending on the number of nodes n. Therefore, 9n+3 features are assigned to each node. However, since the stiffness corresponding to a node pair not connected by an edge is zero, this feature matrix is ​​a sparse matrix with many zero elements. For example, about 70% of the features included in the feature matrix may be zero. Therefore, the third embodiment attempts to compress the size of the feature matrix.

[0122] As described above, the information processing device 100 may consider a method of deleting zero elements from the feature matrix and left-justifying non-zero elements to reduce the number of columns of the feature matrix. However, simply deleting zero elements from the feature matrix results in different features of the other nodes being mixed and used in the graph convolution operation, resulting in a large loss of information and the need for time to properly propagate features between nodes. As a result, the prediction accuracy of the graph convolution network may be reduced.

[0123] This decrease in prediction accuracy can be mitigated by increasing the number of graph convolution layers. However, as discussed in the second embodiment, there is a limit to how much the prediction accuracy can be improved by increasing the number of graph convolution layers, and even if the number of graph convolution layers is increased excessively, the prediction accuracy does not improve any further. In addition, the more nodes there are in the mesh data, the more likely the prediction accuracy is to decrease. Therefore, in the third embodiment, the number of dimensions of the feature vector of each node is reduced by using principal component analysis.

[0124] FIG. 18 illustrates an example of a data flow for predicting the amount of displacement according to the third embodiment. As in the second embodiment, the information processing device 100 calculates a stiffness matrix 143 and a force vector 144 from mesh data 141 and boundary condition data 142 by discretization 131. The information processing device 100 generates feature data 149 from the calculated stiffness matrix 143 and force vector 144 by feature extraction 134. Then, the information processing device 100 provides the mesh data 141 and the feature data 149 to a graph convolution network 137 to predict a displacement vector 146.

[0125] The feature data 149 is a feature matrix having fewer feature amounts than the feature data 145 of the second embodiment. The number of feature amounts per node, i.e., the number of columns of the feature matrix, is smaller in the feature data 149 than in the feature data 145. To generate such feature data 149, the feature extraction 134 includes normalization 135 and principal component analysis 136.

[0126] As in the second embodiment, feature extraction 134 transforms stiffness matrix 143 into an n×9n stiffness matrix such that one row corresponds to one node. Feature extraction 134 also transforms force vector 144 into an n×3 force matrix such that one row corresponds to one node. Then, feature extraction 134 concatenates the transformed stiffness matrix and the force matrix to generate an n×(9n+3) feature matrix. Feature extraction 134 performs normalization 135 and principal component analysis 136 on this feature matrix.

[0127] Normalization 135 performs a scale conversion that converts the feature quantities included in the feature matrix into numerical values ​​between -1 and 1. Normalization 135 is performed in units of columns (dimension units) of the feature matrix. Normalization 135 is a Maximum Absolute Scaler. With normalization 135, the feature quantity with the maximum absolute value is converted to 1 or -1, and the original 0 is maintained as 0. Normalization 135 extracts the feature quantity with the maximum absolute value from the column, and determines a conversion magnification so that the feature quantity becomes 1 if the feature quantity is positive, and determines a conversion magnification so that the feature quantity becomes -1 if the feature quantity is negative.

[0128] The principal component analysis 136 performs a principal component analysis process on the normalized feature matrix to reduce the number of columns of the feature matrix. This reduces the number of features per node, and the length (number of dimensions) of the feature vector assigned to the node. The principal component analysis 136 calculates the basis of the eigenvectors so as to maximize the eigenvalues ​​of the covariance.

[0129] The principal component analysis 136 is performed, for example, as follows. The principal component analysis 136 calculates a covariance matrix Σ=(1 / m)X for a matrix X. * The principal component analysis 136 calculates a matrix Z=Ur×X. The principal component analysis 136 decomposes the covariance matrix Σ into Σ=USV by singular value decomposition (SVD). U is a left singular matrix, S is a singular value matrix, and V is a right singular matrix. The principal component analysis 136 extracts columns from the left singular matrix U in a number corresponding to the number of dimensions after compression, and generates a matrix Ur in which the extracted columns are arranged. The principal component analysis 136 calculates a matrix Z=Ur×X. This matrix Z is converted from the matrix X by the principal component analysis 136.

[0130] The number of dimensions after compression may be fixed, may be specified by the user, or may be determined according to the number of nodes. For example, the principal component analysis 136 adjusts the number of dimensions after compression so that the variance of the feature matrix after conversion is 95% of that before conversion. The fewer the dimensions after compression, the smaller the data volume, but the smaller the variance, which causes information loss. The more the dimensions after compression, the larger the variance, which suppresses information loss, but the larger the data volume.

[0131] The structure of the graph convolutional network 137 is similar to that of the graph convolutional network 133 of the second embodiment. However, the size of the input data is different from that of the graph convolutional network 133. In addition, as described later, the graph convolutional network 137 has fewer graph convolutional layers than the graph convolutional network 133.

[0132] FIG. 19 is a diagram illustrating an example of normalization of a feature matrix and principal component analysis. Here, a case will be described where the number of nodes in mesh data 141 is 28. Feature matrix 154 is generated by concatenating stiffness matrix 143 and force vector 144. Feature matrix 154 is a matrix of 28 rows and 255 columns. Feature matrix 154 is converted into feature matrix 155 by normalization 135. Feature matrix 155 is a matrix of 28 rows and 255 columns. Each feature amount of feature matrix 155 is normalized to be between -1 and 1. Then, feature matrix 155 is converted into feature matrix 156 by principal component analysis 136.

[0133] Here, the number of dimensions after compression is set to 20. Therefore, feature matrix 156 is a matrix of 28 rows and 20 columns. As a result, the length of the feature vector of each node is reduced from 255 to 20. In addition, since principal component analysis 136 takes into account the entire feature matrix 155, information loss is suppressed compared to a method of deleting zero elements from feature matrix 154. In addition, the feature amount of a certain node also reflects to some extent the feature amounts of other nodes far from that node.

[0134] FIG. 20 illustrates an example of a graph convolution network according to the third embodiment. As described above, the information processing device 100 converts the feature matrix by principal component analysis. Through this principal component analysis, the feature of a certain node appropriately reflects the feature of other nodes far from the node. Therefore, it is possible to reduce the number of graph convolution operations that propagate the feature of a certain node to adjacent nodes. Therefore, the graph convolution network 137 of the third embodiment includes only one graph convolution layer.

[0135] The graph convolutional network 137 includes a graph convolutional layer 161, a nonlinear activation layer 162, and a fully connected layer 169. The graph convolutional layer 161 receives a feature matrix of size n×m, where m is the number of dimensions after compression and is smaller than 9n+3. The graph convolutional layer 161 is followed by a nonlinear activation layer 162. The nonlinear activation layer 162 transforms the feature quantity with a function tanh. The nonlinear activation layer 162 is followed by a fully connected layer 169. The fully connected layer 169 outputs a displacement matrix of size n×3.

[0136] FIG. 21 is a diagram showing an example of the number of features per node according to the number of nodes. Table 48 shows an example of the number of nodes, the number of features per node, the number of non-zero features per node, and the number of features per node after principal component analysis. As the number of nodes n increases to 28, 60, 130, 260, 516, 1035, 2238, 4473, and 9162, the number of features per node increases linearly as 9n+3.

[0137] However, there are few non-zero features among the 9n+3 features, and the number of non-zero features does not increase significantly even if n becomes larger. This is because the number of adjacent nodes per node does not increase significantly due to locality even if n becomes larger, and the stiffness matrix 143 has a shape close to a diagonal matrix. The number of features per node after principal component analysis is reduced to about 1 / 13 compared to before principal component analysis. This number of features is the number of features that can maintain 95% of the variance.

[0138] FIG. 22 is a flowchart illustrating an example of a procedure for generating a model according to the third embodiment. (S30) The discretization unit 124 generates a 3n×3n stiffness matrix A and a 3n×1 force vector b from the mesh data and boundary condition data.

[0139] (S31) The linear solver 125 solves the simultaneous linear equations Ax=b using an iterative method from A and b in step S30 to calculate a 3n×1 displacement vector x. (S32) The feature extraction unit 126 converts the 3n×3n stiffness matrix A into an n×9n stiffness matrix A, converts the 3n×1 force vector b into an n×3 force matrix b, and converts the 3n×1 displacement vector x into an n×3 displacement matrix x.

[0140] (S33) The feature extraction unit 126 horizontally concatenates the n×9n stiffness matrix A and the n×3 force matrix b to generate an n×(9n+3) feature matrix F. (S34) The feature extraction unit 126 normalizes the feature matrix F of step S33 using a Maximum Absolute Scaler. The normalization is performed column by column, and the feature amount is distributed in the range from -1 to 1.

[0141] (S35) The feature extraction unit 126 performs principal component analysis on the normalized n×(9n+3) feature matrix F to convert it into an n×m feature matrix F. The number of features m after compression may be determined according to the number of nodes n, or may be determined so that the variance exceeds a reference value. The feature extraction unit 126 generates training data by combining the feature matrix F and the displacement matrix x.

[0142] (S36) The machine learning unit 127 uses the training data in step S35 to generate a graph convolutional network that predicts an n×3 displacement matrix x from the n×m feature matrix F. The graph convolutional network may include only one graph convolutional layer.

[0143] (S37) The machine learning unit 127 stores the generated graph convolutional network. FIG. 23 is a flowchart illustrating an example of a procedure for predicting a displacement amount according to the third embodiment. (S40) The discretization unit 124 generates a 3n×3n stiffness matrix A and a 3n×1 force vector b from the mesh data and boundary condition data.

[0144] (S41) The feature extraction unit 126 converts the 3n×3n stiffness matrix A into an n×9n stiffness matrix A, and converts the 3n×1 force vector b into an n×3 force matrix b. (S42) The feature extraction unit 126 horizontally concatenates the n×9n stiffness matrix A and the n×3 force matrix b to generate an n×(9n+3) feature matrix F.

[0145] (S43) The feature extraction unit 126 normalizes the feature matrix F of step S42 using a Maximum Absolute Scaler. The normalization is performed column by column, and the feature amount is distributed in the range from -1 to 1. (S44) The feature extraction unit 126 performs principal component analysis on the normalized n×(9n+3) feature matrix F to convert it into an n×m feature matrix F.

[0146] (S45) The prediction unit 128 inputs the n×m feature matrix F to the graph convolution network to predict the n×3 displacement matrix x. (S46) The prediction unit 128 converts the n × 3 displacement matrix x into a 3n × 1 displacement vector x. The prediction unit 128 outputs the displacement vector x.

[0147] As described above, the information processing device 100 according to the third embodiment reduces the size of the feature matrix input to the graph convolution network. This allows the information processing device 100 to execute the graph convolution operation using a memory with a limited storage capacity, such as a GPU memory. In addition, the amount of calculation of the graph convolution network is reduced.

[0148] In addition, the information processing device 100 reduces the size of the feature matrix through normalization and principal component analysis. As a result, the feature vector of each node is derived taking into account the entire original feature matrix, and information loss is suppressed, and information of distant nodes is reflected to some extent in the feature vector of each node. This improves the prediction accuracy of the graph convolution network. In addition, it is possible to maintain high prediction accuracy even if the number of graph convolution operations is reduced, and the graph convolution network becomes a compact model with a small number of layers.

[0149] In addition, since normalization and principal component analysis are performed after concatenation of the stiffness matrix and the force vector, the correlation between stiffness and force is also reflected in the feature amount, thereby improving prediction accuracy. [Explanation of symbols]

[0150] 10. Information processing device 11 Storage section 12 Processing section 13 Mesh data 14 Boundary condition data 15 Stiffness matrix 16 Force Vectors 17 Displacement Vector 18 Feature Data 19 Models

Claims

1. Calculating a stiffness matrix including a plurality of stiffness values ​​corresponding to the edges and a force vector including a plurality of force values ​​corresponding to the nodes, based on mesh data including a plurality of nodes and a plurality of edges connecting the nodes, and boundary condition data indicating forces applied to an object represented by the mesh data; generating feature data from the stiffness matrix and the force vector; performing a convolution operation on the feature data according to a connection relationship of the plurality of nodes indicated by the mesh data, thereby inferring a plurality of displacement amounts corresponding to the plurality of nodes; A program that causes a computer to carry out processing.

2. the feature data includes a plurality of feature vectors corresponding to the plurality of nodes; The convolution operation is a graph convolution operation that updates a feature vector of a first node using a feature vector of a second node connected to the first node. The program according to claim 1.

3. Inferring the plurality of displacement amounts includes inputting the feature data to a neural network including one or more graph convolutional layers that perform the graph convolution operation. The program according to claim 2.

4. generating said feature data includes combining said stiffness matrix and said force vectors to generate a feature matrix in which stiffness values ​​and force values ​​associated with the same node are arranged in the same row; The program according to claim 1.

5. generating the feature data includes generating a plurality of feature vectors corresponding to the plurality of nodes, normalizing feature amounts included in the plurality of feature vectors, and reducing the number of dimensions of the normalized plurality of feature vectors by principal component analysis; The program according to claim 1.

6. Calculating another stiffness matrix and another force vector based on another mesh data and another boundary condition data indicating an object different from the mesh data, and calculating a displacement vector indicating a solution of an equation including the another stiffness matrix and the another force vector; generating another feature data from the another stiffness matrix and the another force vector, and generating an inference model for inferring the displacement vector from the another feature data; The process is further performed by the computer. Inferring the plurality of displacement amounts includes inputting the feature data into the inference model. The program according to claim 1.

7. Calculating a stiffness matrix including a plurality of stiffness values ​​corresponding to the edges and a force vector including a plurality of force values ​​corresponding to the nodes, based on mesh data including a plurality of nodes and a plurality of edges connecting the nodes, and boundary condition data indicating forces applied to an object represented by the mesh data; generating feature data from the stiffness matrix and the force vector; performing a convolution operation on the feature data according to a connection relationship of the plurality of nodes indicated by the mesh data, thereby inferring a plurality of displacement amounts corresponding to the plurality of nodes; A method of inference in which processing is carried out by a computer.

8. a storage unit that stores mesh data including a plurality of nodes and a plurality of edges connecting the plurality of nodes, and boundary condition data that indicates a force applied to an object represented by the mesh data; a processing unit that calculates a stiffness matrix including a plurality of stiffness values ​​corresponding to the plurality of edges and a force vector including a plurality of force values ​​corresponding to the plurality of nodes based on the mesh data and the boundary condition data, generates feature data from the stiffness matrix and the force vector, and infers a plurality of displacement amounts corresponding to the plurality of nodes by performing a convolution operation on the feature data in accordance with a connection relationship of the plurality of nodes indicated by the mesh data; An information processing device having the above configuration.

Citation Information

Patent Citations

  • Structure load transmission calculation device

    JP2015005230A

  • Interactive 3D experiences based on data

    JP2016146169A

  • Micro fault visualization method and system

    JP2016170080A

  • Physical quantity prediction device

    JP2019128815A

  • Pseudo-inverse matrix calculation device for displacement analysis operation of structure

    JP2020016982A