Method and electronic device for predicting atomic force

By combining the GNN model and the 3D bucket queue model in the molecular dynamic simulation, the simulation is performed alternately and the model is updated, and the problem of difficult to balance speed and accuracy in the existing technology is solved, and efficient molecular dynamic simulation is achieved.

CN119400258APending Publication Date: 2025-02-07SAMSUNG (CHINA) SEMICONDUCTOR CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411663068.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-20
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

The existing molecular dynamic simulation methods increase speed while causing a decrease in accuracy, making it difficult to find a balance between speed and accuracy.

Method used

By combining graph neural network (GNN) models and 3D bucket queue models, the simulation is performed alternately and the 3D bucket queue model is updated to reduce the number of use of the GNN model and maintain accuracy.

Benefits of technology

It realizes that while improving the molecular dynamic simulation speed, maintaining the accuracy of the original GNN model, avoiding the reduction in simulation accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119400258A_ABST
    Figure CN119400258A_ABST
Patent Text Reader

Abstract

The invention discloses a method and an electronic device for predicting atomic force. The method for predicting the atomic force comprises the steps that first simulation is executed based on a graph neural network (GNN) model; updating a 3-dimensional (3D) bucket queue model using a result obtained by performing the first simulation, the 3D bucket queue model predicting an atomic force as a result of the current simulation based on an atomic force as a result of the previous simulation; and executing a second simulation based on the updated 3D bucket queue model, the first simulation including executing a first number of times of a first type simulation to obtain a first number of atomic forces for each atom, and the second simulation including executing a second number of times of a second type simulation to obtain a second number of atomic forces for each atom.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of molecular dynamics simulation, and more particularly to a method and electronic device for predicting atomic forces. Background Art

[0002] Molecular dynamics is a computational materials science methodology that is used to simulate the motion of atoms in a material system under real operating pressure and temperature conditions. Existing molecular dynamics simulations mostly use GNN models to calculate atomic forces and potential energy for higher accuracy.

[0003] Usually, simulation is performed through a lightweight GNN model to improve the speed of molecular dynamics simulation. However, this will reduce the accuracy of the lightweight GNN model, resulting in a decrease in simulation accuracy.

[0004] Therefore, a technology is needed that can effectively improve the speed of molecular dynamics simulation and maintain the accuracy of the original GNN model. Summary of the invention

[0005] This Summary is provided to introduce in simplified form a selection of concepts that are further described below in the Detailed Description. This Summary is not intended to identify key features and / or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0006] The present application provides a method and electronic device for predicting atomic forces, which can at least improve the speed of molecular dynamics simulation while maintaining the accuracy of the original GNN model.

[0007] According to some example embodiments, a method for predicting atomic forces includes: performing a first simulation based on a graph neural network (GNN) model; updating a three-dimensional (3D) bucket queue model using a result obtained from performing the first simulation, the 3D bucket queue model predicting the atomic force as a result of a current simulation based on the atomic force as a result of a previous simulation; performing a second simulation based on the updated 3D bucket queue model, wherein the first simulation includes performing a first type of simulation a first number of times to obtain a first number of atomic forces for each atom, and wherein the second simulation includes performing a second type of simulation a second number of times to obtain a second number of atomic forces for each atom.

[0008] In the present application, by performing simulation using a 3D bucket queue model that can directly predict the current atomic force from the previous atomic force, the number of simulations performed using the GNN model can be reduced, thereby improving the molecular dynamics simulation speed. In the present application, the 3D bucket queue model is updated based on the results of the simulation performed using the GNN model, thereby avoiding the decrease in the accuracy of the simulation performed using the 3D bucket queue model to maintain the accuracy of the original GNN model.

[0009] The method may further include repeating the first simulation and the second simulation until the number of times the second type of simulation is performed reaches a predetermined threshold.

[0010] In the present application, the number of simulations performed using the 3D bucket queue model is controlled by a predetermined threshold and a second number, thereby controlling the balance between simulation performance and accuracy. In the present application, the first simulation and the second simulation are performed alternately, and the result of the first simulation is used as training data for online learning of the 3D bucket queue model, thereby avoiding the accuracy of using the 3D bucket queue model to predict atomic forces from decreasing over time.

[0011] The first simulation and the second simulation may be repeated while changing at least one of the first number and the second number.

[0012] The method also includes: before executing the first simulation for the first time, performing a third simulation based on the GNN model, and initializing the 3D bucket queue model using the results obtained from executing the third simulation, wherein the third simulation includes executing the first type of simulation a third number of times to obtain a third number of atomic forces for each atom.

[0013] In the present application, before performing simulation using the 3D bucket queue model, the 3D bucket queue model is initialized using the result of the third simulation, thereby improving the accuracy of performing simulation using the 3D bucket queue model.

[0014] The steps of performing the first type of simulation may include: when the first type of simulation is the first simulation performed in the third simulation: execute the GNN model using the initial atomic position as input to obtain atomic potential energy; determine the atomic force using the atomic potential energy; when the first type of simulation is not the first simulation performed in the third simulation: update the atomic velocity using the atomic force as a result of the previous simulation; update the atomic position using the updated atomic velocity; execute the GNN model using the updated atomic position as input to obtain atomic potential energy; determine the atomic force using the atomic potential energy.

[0015] A 3D bucket queue model may include a plurality of buckets divided from a predetermined atomic force space and a queue corresponding to each bucket, wherein the atomic force space may be formed by a first atomic force range on a first coordinate axis, a second atomic force range on a second coordinate axis, and a third atomic force range on a third coordinate axis, wherein the plurality of buckets may be formed by dividing the first atomic force range into a first plurality of arrays at a first interval, dividing the second atomic force range into a second plurality of arrays at a second interval, and dividing the third atomic force range into a third plurality of arrays at a third interval, wherein the queue corresponding to each bucket may include: a subsequent bucket to which a subsequent atomic force that appears after the atomic force corresponding to the bucket belongs, and a weight representing the probability of the subsequent bucket appearing.

[0016] The step of updating the 3D bucket queue model may include: for each of the first type of simulations for a first number of times, backing up a previous atomic force obtained by performing a previous simulation before performing the first type of simulation, and mapping the previous atomic force to a first 3D bucket among the multiple buckets; mapping the atomic force obtained by performing the first type of simulation to a second 3D bucket among the multiple buckets; determining whether the second 3D bucket is included in the queue of the first 3D bucket; when the second 3D bucket is included in the queue of the first 3D bucket, increasing the weight of the second 3D bucket by a first value, and when the second 3D bucket is not included in the queue of the first 3D bucket, adding the second 3D bucket to the queue of the first 3D bucket, and setting the weight of the second 3D bucket to an initial value.

[0017] The step of performing a second type of simulation may include: for each of a second number of second type simulations, mapping a previous atomic force obtained by performing a previous simulation before performing the second type of simulation to a third 3D bucket among the multiple buckets; obtaining a bucket with the highest weight from the queue of the third 3D buckets; and generating a predicted atomic force based on the bucket with the highest weight.

[0018] The step of mapping the previous atomic force to a third 3D bucket among the multiple buckets may include: determining the index of the previous atomic force based on that the first component of the previous atomic force corresponding to the first coordinate axis belongs to the first array among the first multiple arrays, the second component of the previous atomic force corresponding to the second coordinate axis belongs to the second array among the second multiple arrays, and the third component of the previous atomic force corresponding to the third coordinate axis belongs to the third array among the third multiple arrays, and determining the third 3D bucket based on the index of the previous atomic force.

[0019] The step of generating the predicted atomic force may include determining one of the atomic forces corresponding to the bucket having the highest weight as the predicted atomic force.

[0020] According to some example embodiments, an electronic device includes: a first simulation module, configured to: perform a first simulation based on a graph neural network (GNN) model; an update module, configured to: update a 3-dimensional (3D) bucket queue model using a result obtained from performing the first simulation, the 3D bucket queue model predicting atomic forces as a result of a current simulation based on atomic forces as a result of a previous simulation; a second simulation module, configured to: perform a second simulation based on the updated 3D bucket queue model, wherein the first simulation includes performing a first type of simulation a first number of times to obtain a first number of atomic forces for each atom, and wherein the second simulation includes performing a second type of simulation a second number of times to obtain a second number of atomic forces for each atom.

[0021] In the present application, by performing simulation using a 3D bucket queue model that can directly predict the current atomic force from the previous atomic force, the number of simulations performed using the GNN model can be reduced, thereby improving the molecular dynamics simulation speed. In the present application, the 3D bucket queue model is updated based on the results of the simulation performed using the GNN model, thereby avoiding the decrease in the accuracy of the simulation performed using the 3D bucket queue model to maintain the accuracy of the original GNN model.

[0022] The first simulation and the second simulation may be repeated until the number of times the second type of simulation is performed reaches a predetermined threshold.

[0023] In the present application, the number of simulations performed using the 3D bucket queue model is controlled by a predetermined threshold and a second number, thereby controlling the balance between simulation performance and accuracy. In the present application, the first simulation and the second simulation are performed alternately, and the result of the first simulation is used as training data for online learning of the 3D bucket queue model, thereby avoiding the accuracy of using the 3D bucket queue model to predict atomic forces from decreasing over time.

[0024] The first simulation and the second simulation may be repeated while changing at least one of the first number and the second number.

[0025] The first simulation module may also be configured to: perform a third simulation based on the GNN model before performing the first simulation for the first time, and the electronic device may also include: an initialization module, configured to: initialize the 3D bucket queue model using the result obtained from performing the third simulation, wherein the third simulation includes performing the first type of simulation a third number of times to obtain a third number of atomic forces.

[0026] In the present application, before performing simulation using the 3D bucket queue model, the 3D bucket queue model is initialized using the result of the third simulation, thereby improving the accuracy of performing simulation using the 3D bucket queue model.

[0027] The first simulation module can be configured as follows: when the first type of simulation is the first simulation performed in the third simulation: execute the GNN model using the initial atomic positions as input to obtain atomic potential energy; determine the atomic forces using the atomic potential energy; when the first type of simulation is not the first simulation performed in the third simulation: update the atomic velocity using the atomic force as a result of the previous simulation; update the atomic position using the updated atomic velocity; execute the GNN model using the updated atomic position as input to obtain the atomic potential energy; determine the atomic force using the atomic potential energy.

[0028] A 3D bucket queue model may include a plurality of buckets divided from a predetermined atomic force space and a queue corresponding to each bucket, wherein the atomic force space may be formed by a first atomic force range on a first coordinate axis, a second atomic force range on a second coordinate axis, and a third atomic force range on a third coordinate axis, wherein the plurality of buckets may be formed by dividing the first atomic force range into a first plurality of arrays at a first interval, dividing the second atomic force range into a second plurality of arrays at a second interval, and dividing the third atomic force range into a third plurality of arrays at a third interval, wherein the queue corresponding to each bucket may include: a subsequent bucket to which a subsequent atomic force that appears after the atomic force corresponding to the bucket belongs, and a weight representing the probability of the subsequent bucket appearing.

[0029] The update module can be configured to: for each of the first type of simulations for a first number of times, back up the previous atomic force obtained by performing a previous simulation before performing the first type of simulation, and map the previous atomic force to a first 3D bucket among the multiple buckets; map the atomic force obtained by performing the first type of simulation to a second 3D bucket among the multiple buckets; determine whether the second 3D bucket is included in the queue of the first 3D bucket; when the second 3D bucket is included in the queue of the first 3D bucket, increase the weight of the second 3D bucket by a first value, and when the second 3D bucket is not included in the queue of the first 3D bucket, add the second 3D bucket to the queue of the first 3D bucket, and set the weight of the second 3D bucket to an initial value.

[0030] The second simulation model can be configured to: for each of the second type of simulations a second number of times, map a previous atomic force obtained by performing a previous simulation before performing the second type of simulation to a third 3D bucket among the multiple buckets; obtain a bucket with the highest weight from the queue of the third 3D buckets; and generate a predicted atomic force based on the bucket with the highest weight.

[0031] The second simulation model can be configured to determine the index of the previous atomic force based on the fact that the first component of the previous atomic force corresponding to the first coordinate axis belongs to the first array among the first multiple arrays, the second component of the previous atomic force corresponding to the second coordinate axis belongs to the second array among the second multiple arrays, and the third component of the previous atomic force corresponding to the third coordinate axis belongs to the third array among the third multiple arrays, and determine the third 3D bucket based on the index of the previous atomic force.

[0032] The second simulation model may be configured to determine one of the atomic forces corresponding to the bucket having the highest weight as the predicted atomic force.

[0033] According to some example embodiments, a computer-readable storage medium storing a computer program is provided, wherein when the computer program is executed by a processor, the above-mentioned method of predicting atomic forces is implemented.

[0034] Additional aspects and / or advantages of the inventive concepts will be set forth in part in the description which follows and, in part, will be apparent from the description, and / or may be learned by practice of various example embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] The above and other objects, features and advantages of the present disclosure will become more apparent through the following detailed description in conjunction with the accompanying drawings, in which:

[0036] Figure 1 is a flow chart illustrating a method of predicting atomic forces according to some example embodiments.

[0037] Figure 2 is a flow chart illustrating a process of performing a first type of simulation according to some example embodiments.

[0038] Figure 3 A diagram illustrating a 3D bucket queue model according to some example embodiments.

[0039] Figure 4A is a schematic diagram illustrating a process of initializing and updating a 3D bucket queue model according to some example embodiments.

[0040] Figure 4B is a flow chart illustrating a process of initializing and updating a 3D bucket queue model according to some example embodiments.

[0041] Figure 5 is a flow chart illustrating a process of performing a second type of simulation according to some example embodiments.

[0042] Figure 6 is a flow chart illustrating a method of predicting atomic forces according to some example embodiments.

[0043] Figure 7 is a block diagram illustrating an electronic device according to some example embodiments. DETAILED DESCRIPTION

[0044] The following detailed description is provided to help the reader obtain a comprehensive understanding of the methods, devices and / or systems described herein. However, after understanding the disclosure of the present application, various changes, modifications and equivalents of the methods, devices and / or systems described herein will be clear. For example, except for the operations that must occur in a specific order, the order of operations described herein is only an example and is not limited to those orders set forth herein, but can be changed as will be clear after understanding the disclosure of the present application. In addition, for greater clarity and simplicity, the description of features known in the art may be omitted.

[0045] The features described herein may be implemented in different forms and should not be construed as being limited to the examples described herein. Rather, the examples described herein have been provided to illustrate only some of the many possible ways to implement the methods, devices, and / or systems described herein that will be clear after understanding the disclosure of the present application.

[0046] The structural or functional description of the examples disclosed herein below is intended only for the purpose of describing the examples, and the examples may be implemented in various forms. The examples are not intended to be limiting, but various modifications, equivalents, and substitutes are also intended to be included within the scope of the claims.

[0047] Although the terms "first" or "second" are used to explain various components, the components are not limited to the terms. These terms should only be used to distinguish one component from another component. For example, within the scope of the rights according to the concept of the present disclosure, a "first" component may be referred to as a "second" component, or similarly, a "second" component may be referred to as a "first" component.

[0048] It will be understood that when a component is referred to as being “connected to” another component, the component may be directly connected or coupled to the other component or intervening components may be present.

[0049] As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. It should also be understood that when the terms "include" and / or "comprising" are used in this specification, it indicates the presence of stated features, integers, steps, operations, elements, components or combinations thereof, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.

[0050] Unless otherwise defined, all terms (including technical or scientific terms) used herein have the same meaning as those commonly understood by those skilled in the art to which the examples belong. It will also be understood that, unless expressly defined as such herein, terms (such as those defined in general dictionaries) should be interpreted as having a meaning consistent with their meaning in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense.

[0051] Hereinafter, examples will be described in detail with reference to the accompanying drawings. Regarding reference numerals assigned to elements in the drawings, it should be noted that the same elements will be denoted by the same reference numerals and redundant descriptions thereof will be omitted.

[0052] Figure 1 is a flow chart illustrating a method of predicting atomic forces according to some example embodiments.

[0053] like Figure 1As shown in , in step S110, a first simulation can be performed based on the graph neural network GNN model.

[0054] According to some example embodiments, the first simulation may include performing the first type of simulation a first number of times to obtain a first number of atomic forces for each atom.

[0055] Here, the first type of simulation may refer to a simulation based on the GNN model to predict atomic forces. It will be appreciated by those skilled in the art that various known methods for predicting atomic forces based on the GNN model may be used, and the present invention does not impose any limitation thereto. Figure 2 The process of performing the first type of simulation is described in detail.

[0056] In step S120 , a 3-dimensional (3D) bucket queue model may be updated using the results obtained by performing the first simulation.

[0057] In one example, unlike the GNN model that uses atomic positions to predict atomic forces, the 3D bucket queue model can predict atomic forces as a result of the current simulation based on atomic forces as a result of the previous simulation. For example, the 3D bucket queue model can predict atomic forces as a result of the i+1th simulation based on atomic forces as a result of the i-th simulation (i can be a natural number greater than or equal to 1).

[0058] In the following, reference will be made to Figure 3 A detailed description of the 3D bucket queue model will be given in Figure 4A and Figure 4B The process of updating the 3D bucket queue model is described in detail.

[0059] In step S130 , a second simulation may be performed based on the updated 3D bucket queue model.

[0060] According to some example embodiments, the second simulation may include performing the second type of simulation a second number of times to obtain a second number of atomic forces for each atom.

[0061] Here, the second type of simulation may refer to a simulation that predicts atomic forces based on a 3D bucket queue model.

[0062] In one example, when the simulation performed before the second type simulation is a first type simulation, the atomic force can be predicted based on the results of the first type simulation by the 3D bucket queue model. When the simulation performed before the second type simulation is also a second type simulation, the atomic force can be predicted based on the results of the previous second type simulation by the 3D bucket queue model.

[0063] In a preferred embodiment, in order to improve the accuracy of predicting atomic forces, the first number may be set to be greater than the second number. However, the example is not limited thereto, and the first number may also be set to be less than or equal to the second number.

[0064] In the following, reference will be made to Figure 6 The second type of simulation is described in detail.

[0065] According to some example embodiments, the method further comprises: repeating the first simulation and the second simulation until the number of times the second type of simulation is performed reaches a predetermined threshold.

[0066] In one example, the first simulation and the second simulation may be performed alternately to avoid the accuracy of predicting atomic forces from decreasing over time.

[0067] In one example, the first number set in the first simulation and the second number set in the second simulation may be kept constant. In another example, the first simulation and the second simulation are repeated while changing at least one of the first number and the second number.

[0068] According to some example embodiments, the above method further includes: before performing the first simulation for the first time, performing a third simulation based on the GNN model, and initializing the 3D bucket queue model using a result obtained by performing the third simulation.

[0069] According to some example embodiments, the third simulation may include performing the first type simulation a third number of times to obtain a third number of atomic forces for each atom. In one example, the third number may be greater than the first number.

[0070] In the following, reference will be made to Figure 4A and Figure 4B The process of initializing the 3D bucket queue model is described in detail.

[0071] In the present application, by performing simulation using a 3D bucket queue model that can directly predict the current atomic force from the previous atomic force, the number of simulations performed using the GNN model can be reduced, thereby improving the molecular dynamics simulation speed. In the present application, the 3D bucket queue model is updated based on the results of the simulation performed using the GNN model, thereby avoiding the decrease in the accuracy of the simulation performed using the 3D bucket queue model to maintain the accuracy of the original GNN model.

[0072] In the present application, the number of simulations performed using the 3D bucket queue model is controlled by a predetermined threshold and a second number, thereby controlling the balance between simulation performance and accuracy. In the present application, the accuracy of atomic force prediction using the 3D bucket queue model is prevented from decreasing over time by alternately performing the first simulation and the second simulation.

[0073] Figure 2is a flow chart illustrating a process of performing a first type of simulation according to some example embodiments.

[0074] like Figure 2 As shown in FIG. 2 , in step S210 , it may be determined whether the simulation to be performed is a first type simulation.

[0075] When it is determined that the simulation to be performed is not the first type simulation, in step S220 , a second type simulation may be performed.

[0076] When it is determined that the simulation to be executed is the first type of simulation, in step S230, it may be determined whether the simulation to be executed is the first simulation executed in the third simulation. For example, it may be determined whether the simulation to be executed is the first simulation executed in the third simulation, or one of the simulations in the third simulation other than the first simulation executed and the simulation in the first simulation.

[0077] When it is determined that the simulation to be performed is the first simulation to be performed in the third simulation, in step S240, the GNN model is executed using the initial atomic positions as input to obtain atomic potential energy, and in step S250, the atomic force is determined using the atomic potential energy. In one example, the GNN model can be executed using an atomic graph including the initial atomic positions as input to obtain atomic potential energy. It can be understood by those skilled in the art that various known methods can be used to determine the atomic graph, and the present invention does not impose any limitation.

[0078] When it is determined that the simulation to be executed is not the first simulation to be executed in the third simulation, in step S260, the atomic velocity is updated using the atomic force as a result of the previous simulation; in step S270, the atomic position is updated using the updated atomic velocity; in step S280, the GNN model is executed using the updated atomic position as input to obtain the atomic potential energy; in step S290, the atomic force is determined using the atomic potential energy.

[0079] Figure 3 A diagram illustrating a 3D bucket queue model according to some example embodiments.

[0080] According to some example embodiments, a 3D bucket queue model may include a plurality of buckets divided from a predetermined atomic force space and a queue corresponding to each bucket.

[0081] For example, the atomic force space may be formed by a first atomic force range on a first coordinate axis, a second atomic force range on a second coordinate axis, and a third atomic force range on a third coordinate axis. In one example, the first atomic force range, the second atomic force range, and the third atomic force range may depend on an actual maximum atomic force and an actual minimum atomic force on the corresponding coordinate axis.

[0082] In one example, if Figure 3 As shown in (a), the atomic force space may be formed by a first atomic force range [-m, m] on the X-axis, a second atomic force range [-m, m] on the Y-axis, and a third atomic force range [-m, m] on the Z-axis. However, the example is not limited thereto, and at least one or two of the first atomic force range, the second atomic force range, and the third atomic force range may be different from each other, and the absolute values ​​of the maximum atomic force and the minimum atomic force of at least one of the first atomic force range, the second atomic force range, and the third atomic force range may be different from each other.

[0083] In one example, the first interval (e.g., ) divides the first atomic force range into a first plurality of arrays, with a second interval (e.g., ) divides the second atomic force range into a second plurality of arrays, with a third interval (e.g., ) The third atomic force range is divided into a third plurality of arrays to form a plurality of barrels. For example, at least two of the first interval, the second interval, and the third interval may be the same or different from each other.

[0084] For example, the first atomic force range, the second atomic force range, and the third atomic force range may be divided by the following formula 1.

[0085]

[0086] In formula 1, represents the minimum value of the first atomic force range, represents the maximum value of the first atomic force range, bx represents the index of the array in the first plurality of arrays, N x bins represents the number of first multiple arrays, Represents the range of the bxth array on the X-axis; represents the minimum value of the second atomic force range, represents the maximum value of the second atomic force range, by represents the index of the array in the second plurality of arrays, N y bins Indicates the number of the second largest array, Represents the range of the by-th array on the Y axis; represents the minimum value of the third atomic force range, represents the maximum value of the third atomic force range, bz represents the index of the array in the third plurality of arrays, N z bins Indicates the number of the third multiple arrays, Represents the range of the bzth array on the Z axis.

[0087] In one example, a plurality of buckets may be formed based on the divided first atomic force range, the second atomic force range, and the third atomic force range. For example, a bucket may be formed based on one of the first plurality of arrays, one of the second plurality of arrays, and one of the third plurality of arrays. Figure 3 The relatively small multiple rectangular blocks in (a) may represent multiple buckets.

[0088] According to some example embodiments, the queue corresponding to each bucket may include a subsequent bucket to which a subsequent atomic force occurring after the atomic force corresponding to the bucket belongs and a weight representing a probability of occurrence of the subsequent bucket.

[0089] For example, Figure 3 As shown in (b), the queue Q corresponding to bucket A A It may include: a subsequent bucket to which a subsequent atomic force that appears after the atomic force corresponding to bucket A belongs and a weight (eg, 8, 3, 15, 2, ..., 1) indicating a probability of the subsequent bucket appearing.

[0090] Figure 4A is a schematic diagram illustrating a process of initializing and updating a 3D bucket queue model according to some example embodiments. Figure 4B is a flow chart illustrating a process of initializing and updating a 3D bucket queue model according to some example embodiments.

[0091] According to some example embodiments, after obtaining the result of the third simulation, the 3D bucket queue model may be initialized. For example, the following may be performed for the results of any two adjacent first-type simulations in the third simulation: Figure 4A and Figure 4B The method of setting the queue and weight shown in to initialize the 3D bucket queue model.

[0092] According to some example embodiments, after each time the result of the first simulation is obtained, the 3D bucket queue model may be updated. For example, the following may be performed for the results of any two adjacent first-type simulations in the first simulation: Figure 4A and Figure 4B The method for setting queues and weights shown in to update the 3D bucket queue model.

[0093] Optionally, the 3D bucket queue model may be updated after each execution of the first type of simulation of the first simulation. For example, before each execution of the first type of simulation of the first simulation, the previous atomic force obtained by the previous simulation before the execution of the first type of simulation is backed up, and the following is performed based on the previous atomic force and the current atomic force obtained by the execution of the first type of simulation: Figure 4A and Figure 4B The method for setting queues and weights is shown in .

[0094] exist Figure 4A middle, may represent an atomic force vector of the i-th atom obtained by performing the j-1-th simulation (e.g., the previous simulation) (e.g., the previous atomic force to be described below), i∈[0,n), and n may represent the total number of atoms; may represent an atomic force vector (eg, a current atomic force to be described below) of an i-th atom obtained by performing a j-th simulation (eg, a current simulation).

[0095] like Figure 4B As shown in FIG. 1 , in step S310 , the previous atomic force as a result of the previous simulation may be mapped to the first 3D bucket in the plurality of buckets of the atomic force space. Mapped to the first 3D bucket (eg, bucket A).

[0096] In one example, an atomic force may be mapped to a bucket of the atomic force space by determining to which bucket of the atomic force space the atomic force belongs the subspace represented.

[0097] In one example, the index of each atomic force can be determined based on that the first component of each atomic force corresponding to the first coordinate axis belongs to the first array of the first multiple arrays, the second component of each atomic force corresponding to the second coordinate axis belongs to the second array of the second multiple arrays, and the third component of each atomic force corresponding to the third coordinate axis belongs to the third array of the third multiple arrays, and based on the index of each atomic force, each atomic force is mapped to the corresponding bucket.

[0098] For example, the index of each atomic force may be determined based on an index of a first array to which a first component of each atomic force belongs, an index of a second array to which a second component belongs, and an index of a third array to which a third component belongs.

[0099] In one example, each atomic force may be mapped to a corresponding bucket by following Equation 2.

[0100]

[0101] In Formula 2, x may represent the first component of the atomic force corresponding to the first coordinate axis, y may represent the second component of the atomic force corresponding to the second coordinate axis, and z may represent the third component of the atomic force corresponding to the third coordinate axis. bx,by,bz Represents the index of the bucket to which the atomic force is mapped.

[0102] In step S320, the current atomic force as a result of the current simulation may be mapped to a second 3D bucket in the plurality of buckets of the atomic force space. For example, (eg, by the above formula 2) Mapped to a second 3D bucket (eg, bucket B).

[0103] In step S330, it may be determined whether the second 3D bucket is included in the queue of the first 3D bucket. When it is determined that the second 3D bucket is included in the queue of the first 3D bucket, in step S340, the weight of the second 3D bucket is increased by a first value (e.g., 1); when it is determined that the second 3D bucket is not included in the queue of the first 3D bucket, in step S350, the second 3D bucket is added to the queue of the first 3D bucket, and the weight of the second 3D bucket is set to an initial value.

[0104] For example, Figure 4A As shown in , if bucket B is in queue Q of bucket A A Then increase the queue Q A The weight of bucket B in B ; If bucket B is not in bucket A's queue Q A Then add bucket B to queue Q A , and the weight of bucket B is B Set to an initial value (for example, 1).

[0105] In the present application, before performing simulation using the 3D bucket queue model, the 3D bucket queue model is initialized using the result of the third simulation, thereby improving the accuracy of performing simulation using the 3D bucket queue model.

[0106] Figure 5 is a flow chart illustrating a process of performing a second type of simulation according to some example embodiments.

[0107] like Figure 5 As shown in FIG. 4 , in step S410 , a previous atomic force obtained by performing a previous simulation before performing the second type simulation may be mapped to a third 3D bucket among the plurality of buckets.

[0108] In one example, when the previous simulation performed before the second type simulation is a first type simulation, the atomic force can be predicted based on the results of the first type simulation by the 3D bucket queue model. When the previous simulation performed before the second type simulation is also a second type simulation, the atomic force can be predicted based on the results of the previous second type simulation by the 3D bucket queue model.

[0109] In step S420, the bucket with the highest weight may be obtained from the queue of the third 3D bucket. For example, when the bucket with the highest weight is Figure 3 When bucket A of (b) is selected, the bucket with weight 15 in the queue of bucket A is obtained.

[0110] In step S430, a predicted atomic force may be generated based on the bucket with the highest weight. For example, one atomic force (eg, any one atomic force) among the atomic forces corresponding to the bucket with the highest weight may be determined as the predicted atomic force.

[0111] Figure 6 is a flow chart illustrating a method of predicting atomic forces according to some example embodiments.

[0112] like Figure 6 As shown in FIG. 5 , in step S510 , variables i, j, k, and s are set to initial values ​​(eg, 1).

[0113] In step S520 , a first type simulation may be performed, and a variable i may be increased by 1.

[0114] In step S530 , it may be determined whether the variable i is greater than or equal to a third number i0 .

[0115] When the variable i is less than the third number i0, step S520 may be performed again.

[0116] When the variable i is greater than or equal to the third number i0, in step S540, the 3D queue model may be initialized.

[0117] In step S550 , a first type simulation may be performed, and a variable j may be increased by 1.

[0118] In step S560 , it may be determined whether the variable j is greater than or equal to the first number j0 .

[0119] When the variable j is less than the first number j0, step S550 may be performed again.

[0120] When the variable j is greater than or equal to the first number j0, in step S570, the 3D queue model may be updated. However, the example is not limited thereto, and the 3D queue model may be updated immediately after step S550.

[0121] For example, a previous atomic force obtained by a previous simulation before executing the first type of simulation of step S550 may be backed up and the previous atomic force may be mapped to a first 3D bucket; the atomic force obtained by the first type of simulation of step S550 may be mapped to a second 3D bucket; it may be determined whether the second 3D bucket is included in a queue of the first 3D bucket; when the second 3D bucket is included in the queue of the first 3D bucket, the weight of the second 3D bucket may be increased by a first value, and when the second 3D bucket is not included in the queue of the first 3D bucket, the second 3D bucket may be added to the queue of the first 3D bucket, and the weight of the second 3D bucket may be set to an initial value.

[0122] In step S580 , a second type of simulation may be performed, and variables k and s may be increased by 1.

[0123] In step S590 , it may be determined whether the variable k is greater than or equal to a second number k0 .

[0124] When the variable k is less than the second number k0, step S580 may be performed again.

[0125] When the variable k is greater than or equal to the second number k0, in step S591, it may be determined whether the variable s is greater than a predetermined threshold s0.

[0126] When the variable s is less than the predetermined threshold s0, in step S592, the variables j and k are set to initial values ​​and step S550 is performed again. In one example, step S592 further includes changing the first number j0 and the second number k0.

[0127] When the variable s is greater than or equal to a predetermined threshold value s0, the simulation may be terminated. In this example, the condition for terminating the simulation is that the number of times the second type of simulation is executed reaches a predetermined threshold value. However, the example is not limited thereto, and the condition for terminating the simulation may be any other suitable condition (e.g., the sum of the number of times all simulations are performed reaches a threshold value, the number of times the first type of simulation is performed reaches a threshold value, etc.).

[0128] In one example, the above steps S520 to S530 may correspond to the third simulation, the above steps S550 to S560 may correspond to the first simulation, and the above steps S580 to S590 may correspond to the second simulation.

[0129] Figure 7 is a block diagram illustrating an electronic device according to some example embodiments.

[0130] The electronic device according to various exemplary embodiments of the present disclosure may include, for example, a desktop computer, a laptop computer, a tablet computer, a server system, etc. However, the present disclosure is not limited thereto, and the electronic device according to the present disclosure may be any electronic device having a function of predicting atomic force.

[0131] like Figure 7 As shown in FIG. 1 , the electronic device 1 may include a first simulation module 11 , an update module 12 and a second simulation model 13 .

[0132] In one example, the first simulation module 11 may perform a first simulation based on a GNN model.

[0133] According to example embodiments, the first simulation may include performing the first type of simulation a first number of times to obtain a first number of atomic forces for each atom. Figure 2 The process of performing the first type of simulation has been described, and repeated descriptions will be omitted here to avoid redundancy.

[0134] In one example, the update module 12 may use the results obtained by performing the first simulation to update the 3D bucket queue model. Figure 4A and Figure 4BThe process of updating the 3D bucket queue model is described, and repeated descriptions will be omitted here to avoid redundancy.

[0135] In one example, the second simulation model 13 may perform a second simulation based on the updated 3D bucket queue model.

[0136] According to example embodiments, the second simulation may include performing the second type of simulation a second number of times to obtain a second number of atomic forces for each atom. Figure 5 The process of performing the second type simulation has been described, and repeated description will be omitted here to avoid redundancy.

[0137] According to some example embodiments, the first simulation and the second simulation may be repeated until the number of times the second type of simulation is performed reaches a predetermined threshold.

[0138] In one example, the first simulation module 11 may also perform a third simulation based on the GNN model before performing the first simulation for the first time.

[0139] According to example embodiments, the third simulation may include performing the first type simulation a third number of times to obtain a third number of atomic forces.

[0140] In one example, the electronic device 1 may further include an initialization module (not shown). The initialization module may initialize the 3D bucket queue model using the result obtained by performing the third simulation.

[0141] In one example, the initialization module and the update module 12 may be implemented in a single module.

[0142] The devices, units, modules and other components described herein are implemented by hardware components. Examples of hardware components that can be used to perform the operations described in this application include, where appropriate, controllers, sensors, generators, drivers, memories, comparators, arithmetic logic units, adders, subtractors, multipliers, dividers, integrators, and any other electronic components configured to perform the operations described in this application. In other examples, one or more hardware components in the hardware components that perform the operations described in this application are implemented by computing hardware (e.g., by one or more processors or computers). A processor or computer may be implemented by one or more processing elements (such as logic gate arrays, controllers and arithmetic logic units, digital signal processors, microcomputers, programmable logic controllers, field programmable gate arrays, programmable logic arrays, microprocessors, or any other device or combination of devices configured to respond and execute instructions in a limited manner to achieve the desired result). In one example, a processor or computer includes or is connected to one or more memories storing instructions or software executed by a processor or computer. The hardware components implemented by a processor or computer may execute instructions or software (such as an operating system (OS) and one or more software applications running on the OS) for performing the operations described in this application. Hardware components can also access, manipulate, process, create and store data in response to the execution of instructions or software. For simplicity, the singular term "processor" or "computer" can be used in the description of the examples described in this application, but in other examples, multiple processors or computers can be used, or processors or computers can include multiple processing elements, or multiple types of processing elements, or both. For example, a single hardware component, or two or more hardware components can be implemented by a single processor, or two or more processors, or a processor and a controller. One or more hardware components can be implemented by one or more processors, or a processor and a controller, and one or more other hardware components can be implemented by one or more other processors, or another processor and another controller. One or more processors, or a processor and a controller can implement a single hardware component, or two or more hardware components. Hardware components can have any one or more of different processing configurations, and examples of different processing configurations include: a single processor, an independent processor, a parallel processor, a single instruction single data (SISD) multiprocessing, a single instruction multiple data (SIMD) multiprocessing, multiple instructions single data (MISD) multiprocessing, and multiple instructions multiple data (MIMD) multiprocessing.

[0143] The method for performing the operations described in this application is performed by computing hardware (e.g., by one or more processors or computers), which is implemented as executing instructions or software as described above to perform the operations performed by the method described in this application. For example, a single operation, or two or more operations may be performed by a single processor, or two or more processors, or a processor and a controller. One or more operations may be performed by one or more processors, or a processor and a controller, and one or more other operations may be performed by one or more other processors, or another processor and another controller. One or more processors, or a processor and a controller may perform a single operation, or two or more operations.

[0144] The instructions or software for controlling a processor or computer to implement a hardware component and perform the method as described above may be written as a computer program, a code segment, an instruction, or any combination thereof, to individually or collectively instruct or configure a processor or computer to operate as a machine or a special-purpose computer to perform operations performed by the hardware components and methods as described above. In one example, the instructions or software include machine code (such as machine code generated by a compiler) directly executed by a processor or computer. In another example, the instructions or software include high-level code executed by a processor or computer using an interpreter. An ordinary programmer in the art can easily write instructions or software based on the block diagrams and flow charts shown in the accompanying drawings and the corresponding descriptions in the specification, and the block diagrams and flow charts shown in the accompanying drawings and the corresponding descriptions in the specification disclose algorithms for performing operations performed by the hardware components and methods as described above.

[0145] The instructions or software for controlling a processor or computer to implement the hardware components and perform the methods described above, and any associated data, data files, and data structures are recorded, stored, or fixed in or on one or more non-transitory computer-readable storage media. Examples of non-transitory computer-readable storage media include: read-only memory (ROM), random access programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, non-volatile memory, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM, DVD-R, DVD+R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray or optical disk storage device, hard disk drive (HDD), solid state drive (SSD), flash memory, card memory (such as, multimedia card or micro card (for example, Secure Digital (SD) or Extreme Digital (XD))), magnetic tape, floppy disk, magneto-optical data storage device, optical data storage device, hard disk, solid state disk and any other device, any other device is configured to store instructions or software and any associated data, data files and data structures in a non-temporary manner and provide the instructions or software and any associated data, data files and data structures to a processor or computer so that the processor or computer can execute the instructions.

[0146] While the present disclosure has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the following claims.

Claims

1. A method for predicting atomic forces, comprising: Based on the graph neural network GNN model, perform a first simulation; updating a 3D bucket queue model using the results obtained from performing the first simulation, the 3D bucket queue model predicting atomic forces as a result of a current simulation based on atomic forces as a result of a previous simulation; Based on the updated 3D bucket queue model, a second simulation is performed. wherein the first simulation includes performing a first type of simulation a first number of times to obtain a first number of atomic forces for each atom, The second simulation includes performing the second type of simulation a second number of times to obtain a second number of atomic forces for each atom.

2. The method according to claim 1, further comprising: The first simulation and the second simulation are repeated until the number of times the second type of simulation is performed reaches a predetermined threshold.

3. The method according to claim 2, wherein: The first simulation and the second simulation are repeated while changing at least one of the first number and the second number.

4. The method according to claim 1, further comprising: Before the first simulation is performed for the first time, a third simulation is performed based on the GNN model, and Using the results obtained from performing the third simulation, the 3D bucket queue model is initialized. The third simulation includes executing the first type simulation a third number of times to obtain a third number of atomic forces for each atom.

5. The method according to claim 4, wherein: The steps of performing a first type of simulation include: When the first type simulation is the first simulation to be executed in the third simulation: Execute the GNN model using the initial atomic positions as input to obtain atomic potential energies; Using atomic potential energy, determine atomic forces; When the first type simulation is not the first simulation executed in the third simulation: Update atomic velocities using atomic forces as a result of the previous simulation; Using the updated atomic velocities, update the atomic positions; Execute the GNN model using the updated atomic positions as input to obtain atomic potential energies; Using atomic potential energy, determine the atomic forces.

6. The method according to claim 1, wherein: The 3D bucket queue model includes a plurality of buckets divided from a predetermined atomic force space and a queue corresponding to each bucket. The atomic force space is formed by a first atomic force range on a first coordinate axis, a second atomic force range on a second coordinate axis, and a third atomic force range on a third coordinate axis. The plurality of barrels are formed by dividing the first atomic force range into a first plurality of arrays at a first interval, dividing the second atomic force range into a second plurality of arrays at a second interval, and dividing the third atomic force range into a third plurality of arrays at a third interval, The queue corresponding to each bucket includes: a subsequent bucket to which a subsequent atomic force that appears after the atomic force corresponding to the bucket belongs and a weight representing a probability of the subsequent bucket appearing.

7. The method according to claim 6, wherein: The step of updating the 3D bucket queue model comprises: for each of the first number of simulations of the first type, backing up a previous atomic force obtained by performing a previous simulation before performing the first type of simulation, mapping the previous atomic force to a first 3D bucket among the plurality of buckets; mapping atomic forces obtained by performing the first type of simulation to a second 3D bucket among the plurality of buckets; determining whether the second 3D bucket is included in the queue of the first 3D bucket; When the second 3D bucket is included in the queue of the first 3D bucket, the weight of the second 3D bucket is increased by a first value, and when the second 3D bucket is not included in the queue of the first 3D bucket, the second 3D bucket is added to the queue of the first 3D bucket and the weight of the second 3D bucket is set to an initial value.

8. The method according to claim 7, wherein: The step of performing the second type of simulation includes: for each of the second number of times of the second type of simulation, mapping a previous atomic force obtained by performing a previous simulation before performing the second type of simulation to a third 3D bucket among the plurality of buckets; Get the bucket with the highest weight from the queue of the third 3D bucket; Based on the bucket with the highest weight, the predicted atomic forces are generated.

9. The method according to claim 8, wherein: The step of mapping the previous atomic force to a third 3D bucket among the plurality of buckets comprises: An index of the previous atomic force is determined based on that a first component of the previous atomic force corresponding to the first coordinate axis belongs to a first array in a first plurality of arrays, a second component of the previous atomic force corresponding to the second coordinate axis belongs to a second array in a second plurality of arrays, and a third component of the previous atomic force corresponding to the third coordinate axis belongs to a third array in a third plurality of arrays, Based on the index of the previous atomic force, a third 3D bucket is determined.

10. The method according to claim 8, wherein: The steps to generate predicted atomic forces include: One of the atomic forces corresponding to the bucket having the highest weight is determined as the predicted atomic force.

11. An electronic device comprising: The first simulation module is configured to: perform a first simulation based on a graph neural network GNN model; An updating module configured to: update a 3D bucket queue model using a result obtained by performing the first simulation, the 3D bucket queue model predicting atomic forces as a result of a current simulation based on atomic forces as a result of a previous simulation; The second simulation module is configured to: perform a second simulation based on the updated 3D bucket queue model, wherein the first simulation includes performing a first type of simulation a first number of times to obtain a first number of atomic forces for each atom, The second simulation includes performing the second type of simulation a second number of times to obtain a second number of atomic forces for each atom.

12. A computer-readable storage medium storing a computer program, wherein: When the computer program is executed by a processor, the method for predicting atomic force according to any one of claims 1 to 10 is implemented.