Load distribution method, device and system for numerical reservoir simulation

By obtaining the grid files of the reservoir numerical simulation, load allocation is performed according to the grid type, and using graph segmentation technology to optimize load allocation, the problem of load imbalance in the reservoir numerical simulation is solved, and the calculation efficiency and accuracy are improved.

CN120508403AActive Publication Date: 2025-08-19北京大学长沙计算与数字经济研究院

Patent Information

Application Number
CN202511001933.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-21
Publication Date
2025-08-19
Estimated Expiration
2045-07-21

AI Technical Summary

Technical Problem

In the prior art, the calculation of the numerical simulation grid of the reservoir cannot achieve load balancing when allocating loads, resulting in inefficient calculation efficiency and inaccurate simulation results.

Method used

By obtaining grid files, load allocation is performed according to grid type (structural grid or non-structural grid), an equal distribution strategy is adopted by the number of grids and the calculation time, and a graph segmentation technology is used to optimize load allocation, and a unified management framework is built to ensure that the calculation task volume of each computing node matches the time.

Benefits of technology

Load balancing is achieved, the calculation efficiency and accuracy of reservoir numerical simulation are improved, especially when dealing with complex geological structures, parallel computing performance is significantly improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120508403A_ABST
    Figure CN120508403A_ABST
Patent Text Reader

Abstract

The invention provides a load distribution method, device and system for numerical reservoir simulation. The method comprises the steps that a grid file is obtained, the grid file is a file representing the geological space structure of a target area, the target area is one or more of a coal mine, an oil field, a geothermal field and a gas field, and the grid file comprises a plurality of grids; loads are distributed according to the types of grids in the grid file, the types of the grids comprise structured grids or non-structured grids, the loads are equipment used for reservoir numerical simulation, and the distribution mode comprises average distribution according to the number of the grids and / or average distribution according to the calculation time of the grids, the calculation time is time for load calculation of oil-water distribution of the target area during numerical reservoir simulation; and controlling all loads, and carrying out reservoir numerical simulation based on the distributed grid file. According to the method, the problem that in the prior art, load balancing cannot be achieved during load distribution in numerical reservoir simulation grid calculation is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of reservoir simulation, and in particular to a load distribution method, device, computer program product, and load distribution system for reservoir numerical simulation. Background Art

[0002] Grids are often used in numerical reservoir simulations, and the oil-water distribution is then calculated using different processors (or other computing devices). However, due to the varying complexity of different grids and the required memory access efficiencies, load balancing cannot be achieved when distributing the load. Summary of the Invention

[0003] The main purpose of this application is to provide a load distribution method, device, computer program product and load distribution system for reservoir numerical simulation, so as to at least solve the problem in the prior art that reservoir numerical simulation grid computing cannot achieve load balancing when distributing load.

[0004] In order to achieve the above-mentioned purpose, according to one aspect of the present application, a load distribution method for reservoir numerical simulation is provided, including: obtaining a grid file, wherein the grid file is a file representing the geological spatial structure of the target area, the target area is one or more of a coal mine, an oil field, a geothermal field, and a gas field, and the grid file includes multiple grids; distributing the load according to the type of the grid in the grid file, wherein the type of the grid includes a structured grid or an unstructured grid, the load is a device used for reservoir numerical simulation, and the distribution method includes average distribution according to the number of the grids and / or average distribution according to the calculation time of the grids, wherein the calculation time is the time for the load to calculate the oil and water distribution of the target area when used for reservoir numerical simulation; controlling all the loads and performing reservoir numerical simulation based on the distributed grid files.

[0005] Optionally, when the type of the grid is the structural grid, the load is distributed according to the type of the grid in the grid file, including: dividing the structural grid for the first time according to the directional distribution of the structural grid to obtain a first division result; updating the first division result according to the graph segmentation technology to obtain a second division result; and distributing the structural grid to multiple loads according to the second division result.

[0006] Optionally, according to the directional distribution of the structural grid, the structural grid is divided for the first time to obtain a first division result, including: obtaining the load quantity of all the loads; dividing the structural grid in each direction into multiple grid sets to obtain the first division result, wherein the number of the grid sets in all directions is equal to the load quantity, and each of the grid sets includes at least one structural grid.

[0007] Optionally, according to the graph segmentation technology, the first division result is updated to obtain the second division result, including: obtaining relevant information of each structural grid in the first division result, wherein the relevant information includes at least the size and / or complexity of the structural grid, the size of the structural grid is positively correlated with the calculation time, and the complexity of the structural grid is positively correlated with the calculation time; according to the graph segmentation technology, the first division result is updated based on the relevant information to obtain the second division result, wherein the size of the structural grid is negatively correlated with the number of divisions, and the complexity of the structural grid is negatively correlated with the number of divisions.

[0008] Optionally, when the type of the grid is the unstructured grid, the load is distributed according to the type of the grid in the grid file, including: dividing the unstructured grid according to the graph segmentation technology to obtain a third division result; and distributing the unstructured grid to multiple loads according to the third division result.

[0009] Optionally, after distributing the load according to the type of the grid in the grid file, the method further includes: obtaining grid elements, wherein the grid elements include points, edges, faces and bodies, at least two of the points constitute the edge, at least two of the edges constitute the face, and at least two of the faces constitute the body; determining grid topology information based on adjacent grid elements, wherein the grid topology information is information about the adjacency relationship between the grid elements; generating geometric information based on the grid topology information, and displaying the geometric information in a display interface, wherein the geometric information is information about the shape, size and position of the grid elements.

[0010] Optionally, after allocating the load according to the type of grid in the grid file, the method further includes: obtaining a preset template range, wherein the preset template range is a set of preset defined grids; generating network template information according to the preset template range, wherein the network template information is used to describe the extended area of the grid considered by each grid when executing a specific numerical discretization algorithm; integrating the network template information into the reservoir numerical simulation software so that reservoir numerical simulation can be performed in the reservoir numerical simulation software.

[0011] According to another aspect of the present application, a load distribution device for reservoir numerical simulation is provided, comprising: a first acquisition unit, for acquiring a grid file, wherein the grid file is a file representing the geological spatial structure of a target area, the target area is one or more of a coal mine, an oil field, a geothermal field, and a gas field, and the grid file includes multiple grids; a distribution unit, for distributing loads according to the type of grids in the grid file, wherein the type of grids includes a structured grid or an unstructured grid, the load is a device for reservoir numerical simulation, and the distribution method includes average distribution according to the number of grids and / or average distribution according to the calculation time of the grids, wherein the calculation time is the time for the load to calculate the oil-water distribution of the target area when used for reservoir numerical simulation; a control unit, for controlling all the loads, and performing reservoir numerical simulation based on the distributed grid files.

[0012] According to another aspect of the present application, a computer program product is provided, comprising a computer program, wherein when the computer program is executed by a processor, the computer program implements the steps of any one of the load distribution methods for reservoir numerical simulation.

[0013] According to another aspect of the present application, a load distribution system is provided, comprising: one or more processors, a memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs include a method for executing any one of the load distribution methods for reservoir numerical simulation.

[0014] By applying the technical solution of this application, the data structure of the structured grid has the advantages of high memory access efficiency and high parallel computing efficiency. The unstructured grid data structure can handle complex geometry and has good adaptability to geological structures. This solution can distribute loads for different types of grids and build a unified management framework for different grid types to ensure that the load can bear similar workloads, thereby achieving load balancing. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The drawings that constitute part of this application are used to provide a further understanding of this application. The illustrative embodiments of this application and their descriptions are used to explain this application and do not constitute an improper limitation on this application. In the drawings:

[0016] Figure 1 A hardware structure block diagram of a mobile terminal for executing a load distribution method for reservoir numerical simulation provided in an embodiment of the present application is shown;

[0017] Figure 2 A schematic flow chart of a load distribution method for reservoir numerical simulation according to an embodiment of the present application is shown;

[0018] Figure 3 Shows a schematic diagram of grid functions for reservoir numerical simulation;

[0019] Figure 4 A schematic diagram of the topological adjacency relationship of a polyhedron mesh is shown;

[0020] Figure 5 A structural block diagram of a load distribution device for reservoir numerical simulation provided according to an embodiment of the present application is shown.

[0021] The above drawings include the following reference numerals:

[0022] 102. Processor; 104. Memory; 106. Transmission device; 108. Input / output device. DETAILED DESCRIPTION

[0023] It should be noted that, in the absence of conflict, the embodiments and features of the embodiments in this application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0024] In order to enable those skilled in the art to better understand the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments in the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of this application.

[0025] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present application described here. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0026] For ease of description, some nouns or terms involved in the embodiments of the present application are explained below:

[0027] Numerical simulation of oil reservoirs: Numerical simulation of oil reservoirs refers to the use of computers to solve the mathematical model of oil reservoirs, simulate the flow of underground oil and water, and give the oil and water distribution at a certain moment in order to predict the dynamics of oil reservoirs.

[0028] Grid: A spatial grid structure used to discretize and represent complex geometric shapes. It is a fundamental concept in numerical simulation, used to convert continuous physical space into discrete grid points for numerical calculations.

[0029] Structured Grid: In numerical computing, a structured grid is a grid with a specific structure and a regular arrangement over the computational domain. The nodes of this type of grid are typically arranged in a regular pattern, conforming to a specific geometric structure (such as a rectangle or cube). Structured grids typically use a regular coordinate system. In two-dimensional space, grid nodes are located on the grid points of a Cartesian coordinate system. In three-dimensional space, grid nodes are located on a regular grid of three-dimensional Cartesian coordinates.

[0030] Unstructured grid: In numerical computing, an unstructured grid is a grid with irregular nodes and elements, and irregular shapes or sizes. Unlike structured grids, unstructured grid elements can be of arbitrary shapes, such as triangles, quadrilaterals, and in three-dimensional cases, tetrahedrons and hexahedrons.

[0031] Corner point grid: A corner point grid is a three-dimensional grid whose cells are shaped like cubes or rectangular parallelepipeds. Its key information includes grid cells and corner points. One grid cell contains eight corner points, and the coordinates of the corner points are flexible. This means that while both grid cells and corner points can be described using Cartesian coordinate numbers, the grid's adjacency and geometry can be irregular. Corner point grids can flexibly adapt to complex reservoir structures.

[0032] Radial Grid: A radial grid is a grid based on polar (or spherical) coordinates. It is particularly well-suited for problems with axisymmetric geometries, such as circles or spheres. In a radial grid, the grid points are distributed primarily along the radial direction, typically around a central point (such as a wellbore, source, or reference point). The grid is typically divided into concentric circles (in 2D problems) or concentric spheres (in 3D problems). The grid point distribution within each layer can be uniform or non-uniform, depending on the physical requirements of the problem.

[0033] As introduced in the background technology, the existing technology of reservoir numerical simulation grid computing cannot achieve load balancing when distributing load. To solve the above problem, the embodiments of the present application provide a load distribution method, device, computer program product and load distribution system for reservoir numerical simulation.

[0034] The technical solutions in the embodiments of the present invention will be described clearly and completely below with reference to the accompanying drawings in the embodiments of the present invention.

[0035] The method embodiments provided in the embodiments of the present application can be executed in a mobile terminal, a computer terminal or a similar computing device. Taking running on a mobile terminal as an example, Figure 1 This is a hardware structure block diagram of a mobile terminal for a load distribution method for reservoir numerical simulation according to an embodiment of the present invention. Figure 1 As shown, the mobile terminal may include one or more ( Figure 1 Only one is shown) a processor 102 (the processor 102 may include but is not limited to a microprocessor MCU or a programmable logic device FPGA and other processing devices) and a memory 104 for storing data, wherein the mobile terminal may also include a transmission device 106 and an input and output device 108 for communication functions. It will be understood by those skilled in the art that Figure 1 The structure shown is only for illustration and does not limit the structure of the mobile terminal. Figure 1 More or fewer components than shown, or with Figure 1 Different configurations shown.

[0036] The memory 104 can be used to store computer programs, such as software programs and modules of application software, such as the computer program corresponding to the device information display method in the embodiment of the present invention. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, implementing the above-mentioned method. The memory 104 may include a high-speed random access memory and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include a memory remotely located relative to the processor 102, and these remote memories can be connected to the mobile terminal via a network. Examples of the above-mentioned networks include but are not limited to the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof. The transmission device 106 is used to receive or send data via a network. Specific examples of the above-mentioned network may include a wireless network provided by the mobile terminal's communication provider. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, abbreviated as NIC), which can be connected to other network devices via a base station to communicate with the Internet. In one example, the transmission device 106 may be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.

[0037] In this embodiment, a load distribution method for reservoir numerical simulation running on a mobile terminal, a computer terminal or a similar computing device is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0038] Figure 2 FIG. 1 is a flow chart of a load distribution method for reservoir numerical simulation according to an embodiment of the present application. Figure 2 As shown, the method includes the following steps:

[0039] Step S201, obtaining a grid file, wherein the grid file is a file representing the geological spatial structure of a target area, the target area being one or more of a coal mine, an oil field, a geothermal field, and a gas field, and the grid file includes a plurality of grids;

[0040] Specifically, the grid file containing the geological information of the target area is read in. This step is the starting point of the entire reservoir numerical simulation, which ensures that subsequent calculations are based on actual geological data, improving the accuracy and reliability of the simulation.

[0041] By accurately reading the geological spatial structure, precise reservoir simulation can be achieved, avoiding calculation deviations caused by grid file errors, thereby improving the prediction accuracy of reservoir numerical simulation. The accuracy and completeness of the grid file are key to the success of reservoir numerical simulation. Different grid types require different reading strategies to ensure that all grid information is correctly parsed.

[0042] Step S202, allocating a load according to the type of the grid in the grid file, wherein the type of the grid includes a structured grid or an unstructured grid, the load is a device used for reservoir numerical simulation, and the allocation method includes evenly allocating according to the number of the grids and / or evenly allocating according to the calculation time of the grids, wherein the calculation time is the time for the load to calculate the oil-water distribution in the target area during the reservoir numerical simulation;

[0043] Specifically, after reading the grid file, load distribution is performed based on the grid type (structured or unstructured). For example, for structured grids, a strategy of evenly distributing load based on the number of grid cells can be used to simplify parallel computing complexity. For unstructured grids, a strategy of evenly distributing load based on computation time can be used, optimizing load balancing through a graph partitioning algorithm to ensure efficient utilization of computing resources.

[0044] This load distribution strategy can significantly improve the computational efficiency of reservoir simulations, especially when dealing with large-scale, geologically complex reservoirs. The regularity of structured grids allows computational tasks to be evenly distributed across computing devices, while dynamic load distribution on unstructured grids avoids resource bottlenecks in computationally intensive areas, thereby improving overall parallel computing performance.

[0045] Reservoir simulation: This is a mathematical and physical method used to predict and analyze the behavior of underground reservoirs (such as oil, natural gas, geothermal resources, etc.), including oil and water distribution, pressure changes, fluid flow, etc.

[0046] Load: Here, it refers to the computing resources used for reservoir numerical simulation, which can be a processor (such as CPU, GPU), a computing node, or a component in a cluster.

[0047] Target area: refers to the actual geographical location of the underground oil reservoir or the virtual area defined in the reservoir simulation software. This area contains the grid data of oil and water distribution.

[0048] Oil-water distribution: The distribution of oil and water in the reservoir is one of the main focuses of reservoir numerical simulation because it directly affects the extraction efficiency and economic benefits of oil and gas resources.

[0049] During reservoir numerical simulation, each computational load (e.g., a compute node) must process its assigned grid data to calculate the oil-water distribution within the target area. The computational time for this process refers to the length of time from the start of grid data processing to the calculation of the oil-water distribution. This computational time depends on multiple factors, including the complexity of the grid, the performance of the computing equipment, and the efficiency of the numerical algorithm employed. In a parallel computing environment, the computational time of a load has a direct impact on load balancing (i.e., the distribution of workload across the compute nodes). Loads with long computational times can become computational bottlenecks, slowing down the overall simulation progress.

[0050] In this solution, by intelligently distributing the load, ensuring that the amount of grid data processed by each compute node matches its computational time, computational imbalance is minimized and the overall efficiency and speed of reservoir numerical simulation are improved. This means that by optimizing the load distribution strategy, high performance of reservoir numerical simulation can be maintained even when dealing with complex geological structures, resulting in accurate oil-water distribution predictions in a shorter time.

[0051] Step S203: Control all the above loads and perform reservoir numerical simulation based on the distributed grid file.

[0052] Specifically, it coordinates all computing devices to execute reservoir numerical simulations based on the load distribution described above by grid type. It not only processes topological information, geometric information, and adjacency templates, but also creates necessary data structures such as matrices and vectors, ensuring the synchronous execution of computing tasks and data communication across devices.

[0053] This intelligent scheduling achieves optimal resource allocation and efficient parallel computing, significantly shortening the total computation time for reservoir numerical simulations. By integrating and coordinating grid information and computing devices, efficient parallel processing of complex computational tasks is ensured, reducing inter-process communication delays and enabling rapid and stable operation of reservoir numerical simulations.

[0054] Through this embodiment, the data structure of the structured grid has the advantages of high memory access efficiency and high parallel computing efficiency. The unstructured grid data structure can handle complex geometry and has good adaptability to geological structures. This solution can distribute loads for different types of grids and build a unified management framework for different grid types to ensure that the load can bear similar workloads, thereby achieving load balancing.

[0055] Specifically, polyhedral grid data is used to be compatible with various reservoir grids. The structural grid information in the original grid is used for pre-division as the initial grid division scheme, and the graph division algorithm is further used to complete the grid division. At the same time, the order of the structural grid is maintained, and distributed grid topology data is established to provide a unified and efficient grid data structure for reservoir numerical simulation.

[0056] Commonly used grid types in reservoir numerical simulation include block center grids, corner grids, radial grids, and unstructured grids. Block center grids and radial grids are structured grids, while corner grids have both the topological relationship and geometric information of structured grid numbers and unstructured grids. Currently, different grid types are processed differently in reservoir simulation:

[0057] 1. Block center grid and radial grid: Use structured grid data structure and take advantage of the characteristics of structured grid to simply implement grid area decomposition. For example, if a three-dimensional structured grid is to be divided into 8 processes, it only needs to be divided into 2 equal parts in each direction, and a grid area decomposition solution with good load balancing can be obtained.

[0058] 2. Unstructured grid: Adopt unstructured grid data structure and use graph partitioning algorithm to obtain load-balanced grid area decomposition scheme.

[0059] 3. Corner point grid: Both structured grid data structure and unstructured grid data structure can be used. The general solution is to use the unstructured grid solution.

[0060] Structured grid data structures offer the advantages of high memory access efficiency and ease of parallel computing. However, structured grids have poor geometric adaptability, making them difficult to describe the complex geological structures used in reservoir numerical simulations. Unstructured grid data structures can handle complex geometries and are highly adaptable to geological structures. However, unstructured grid data structures often require more complex data structures, are generally less efficient in memory access than structured grids, and are more challenging to load balance. In practice, reservoir simulation engineers often choose different grids and corresponding solvers based on their understanding of the simulation scenario, which greatly increases the complexity and reduces the efficiency of reservoir simulations.

[0061] Therefore, the technical solution of the present application combines the advantages of structured grid data structure and unstructured grid data structure, and targets the requirements of reservoir numerical simulation for processing complex geological structures and efficient large-scale parallelism. It utilizes the adaptability of unstructured grids to complex geometric structures and possible structured grid information (block center grids, radial grids and corner grids) to ensure computing performance, and provides a unified management solution for the various grid types in reservoir simulation.

[0062] Specifically, structured grids (such as block-centered and radial grids) offer efficient data structure and simple load balancing due to their structural characteristics, but struggle to describe complex geological structures. Unstructured grids (including non-structured and corner grids) facilitate complex geological structures, but suffer from complex data structures, inefficient load balancing, and difficulties with data structure. The solution of this application combines the advantages of both structured and unstructured grids, offering both efficient load balancing and adaptability to complex data structures, while utilizing a unified grid management framework for multiple grid types.

[0063] During the specific implementation process, when the type of the above-mentioned grid is the above-mentioned structured grid, the load is distributed according to the type of the above-mentioned grid in the above-mentioned grid file, which can be achieved through the following steps: according to the directional distribution of the above-mentioned structured grid, the above-mentioned structured grid is divided for the first time to obtain a first division result; according to the graph segmentation technology, the above-mentioned first division result is updated to obtain a second division result; according to the above-mentioned second division result, the above-mentioned structured grid is distributed to multiple of the above-mentioned loads.

[0064] In this scheme, the pre-partitioning and optimization process of the structured grid fully exploits the inherent regularity of the structured grid. This not only simplifies the initial grid partitioning but also further optimizes load distribution through the graph partitioning algorithm, ensuring that the amount of grid data processed by each computing device matches the computation time and reducing unnecessary communication overhead. This precise load distribution avoids idle computing devices, reduces the waste caused by underutilized computing resources, and lowers the cost of large-scale parallel computing. Although the structured grid has regularity, the optimization of the graph partitioning algorithm can effectively handle the irregularities present in the structured grid, making it more suitable for describing complex geological structures in reservoir numerical simulations.

[0065] Specifically, considering the regular distribution and geometric characteristics of the structured grid, this method first performs a pre-partition based on the distribution of the structured grid along the x, y, and z axes in three-dimensional space. The purpose of pre-partitioning is to utilize this characteristic of the structured grid to simplify the computational complexity of the partitioning process and provide a good initial state for subsequent load distribution.

[0066] According to the distribution characteristics of the structural grid in three-dimensional space, it is divided along the x, y, and z axes in a certain ratio (for example, 1:1:1 or 2:3:1, etc., the specific ratio is determined by the density of the grid in each direction and the calculation requirements, and can also be set manually) to obtain a preliminary area division, that is, the first division result.

[0067] The initial pre-partitioning may not fully meet load balancing requirements, especially when the grid is unevenly distributed. To address this, a graph partitioning algorithm, such as the Metis or Scotch algorithm, is used to rescale the initial grid, ensuring that the computational effort on each load is roughly equal, resulting in an optimized second partitioning result. This update process is crucial, ensuring a more balanced load distribution and improving the efficiency of parallel computing.

[0068] The structural mesh data is distributed to different computing devices (loads) based on the partitioning results. This distribution ensures that the computing workload of each device is moderate, neither overburdened nor wasted, thus achieving an efficient and balanced parallel computing environment across the entire computing cluster.

[0069] In reservoir numerical simulations, pre-partitioning a structured grid quickly provides a preliminary load distribution plan based on the grid's dimensional distribution. Subsequently, through optimization of the graph partitioning algorithm, any potential imbalances in this preliminary plan are resolved, resulting in a more rational allocation of computing resources and improved parallel computing efficiency. In a parallel computing environment, load balancing is crucial for computational efficiency. Improper load distribution can cause some computing devices to remain idle for extended periods, while others face the risk of overload. Pre-partitioning and load optimization ensure an even distribution of computing tasks across devices, reducing resource idleness and overall computational costs. Even within a structured grid, reservoir geology can exhibit localized irregularities. The graph partitioning algorithm identifies these irregularities and makes appropriate adjustments, ensuring a grid that better reflects the reservoir's actual structure. This enhances adaptability to complex geological environments while maintaining the advantages of a structured grid, improving the accuracy of simulation results.

[0070] In some embodiments, the above-mentioned structural grid is divided for the first time according to the directional distribution of the above-mentioned structural grid to obtain a first division result, which can be specifically achieved through the following steps: obtaining the load quantity of all the above-mentioned loads; dividing the above-mentioned structural grid in each direction into multiple grid sets to obtain the above-mentioned first division result, wherein the number of the above-mentioned grid sets in all directions is equal to the above-mentioned load quantity, and each of the above-mentioned grid sets includes at least one above-mentioned structural grid.

[0071] In this solution, the initial load distribution can be completed more quickly, providing a foundation for subsequent more complex load balancing optimization. It also reduces the computing cost during the load distribution process, significantly improves the efficiency of parallel computing, and further achieves load balancing.

[0072] Specifically, we first need to determine the total number of devices involved in the calculation, that is, the total number of loads. For example, assume that there are 8 computing nodes in total.

[0073] Considering the distribution characteristics of the structural grid in the x, y, and z directions, the structural grid in each direction can be divided equally into grid sets corresponding to the number of loads mentioned above to simplify the load distribution of parallel computing. For example, for a three-dimensional structural grid, if the number of loads is 8, the grid can be divided into 2 equal parts in each direction. After completing equal division in the x, y, and z directions, 8 grid sets (2×2×2 = 8) can be obtained. Each set contains a certain number of structural grid units, meeting the basic requirements of load balancing.

[0074] The regularity of the structured grid allows for a quick initial distribution of the grid across various computing devices through a simple equal division. This approach not only reduces the complexity of computing resource allocation but also ensures that each computing device has at least one structured grid unit, thus preventing idle resources.

[0075] By directly utilizing the inherent characteristics of the structured grid for pre-division, the initial calculation of the complex graph segmentation algorithm is avoided, the initial load distribution can be completed in a shorter time, and the computational overhead when processing large-scale grid data is reduced.

[0076] The pre-partitioning strategy based on the compatibility of polyhedral mesh data and structural mesh information enables the subsequent graph segmentation algorithm to optimize the pre-partitioning results more efficiently, ensuring that each computing node can quickly enter an efficient computing state in large-scale parallel computing, achieving rapid response and high computing performance in reservoir numerical simulation.

[0077] Suppose a specific reservoir simulation scenario requires processing a structural grid with dimensions of 1000 × 1000 × 1000 in each of the three dimensions. Given 32 workloads (compute nodes), for initial load distribution, the structural grid in each dimension can be equally divided into four grid sets: 250 × 250 × 250 grid sets in the x, y, and z directions, respectively. This ensures that each workload will ultimately have 250 × 250 × 250 = 15,625,000 grid cells. This distribution strategy not only simplifies initial load distribution but also provides a good starting point for subsequent graph partitioning algorithm optimization.

[0078] During the specific implementation process, according to the graph segmentation technology, the above-mentioned first division result is updated to obtain the second division result, which can be achieved through the following steps: obtaining the relevant information of each of the above-mentioned structural grids in the above-mentioned first division result, wherein the above-mentioned relevant information at least includes the size and / or complexity of the above-mentioned structural grid, the size of the above-mentioned structural grid is positively correlated with the above-mentioned calculation time, and the complexity of the above-mentioned structural grid is positively correlated with the above-mentioned calculation time; according to the graph segmentation technology, based on the above-mentioned relevant information, the above-mentioned first division result is updated to obtain the above-mentioned second division result, wherein the size of the above-mentioned structural grid is negatively correlated with the number of divisions, and the complexity of the above-mentioned structural grid is negatively correlated with the number of divisions.

[0079] This approach leverages the size and complexity of the structured grid for dynamic optimization, effectively balancing the computational load across different computing devices and ensuring that each device receives roughly equal computation time. The optimized partitioning strategy for the structured grid ensures a rational allocation of computing resources, avoiding both idle and overused resources.

[0080] Specifically, we collect data on the size and complexity of each structural grid cell, which has a direct impact on computational time. The size of the structural grid determines the basic unit of computation, while the complexity reflects the possible irregularities in the grid and the additional computational requirements.

[0081] This algorithm utilizes a similar graph partitioning technique, but focuses on leveraging grid size and complexity information to optimize the initial partitioning results. The algorithm dynamically adjusts the partitioning strategy based on relevant information about each grid, ensuring that grid cells with the longest computational time are not concentrated on a single computing device, but are evenly distributed to achieve balanced computational time. For example, for larger or more complex grid cells, the algorithm may add more partitions to distribute the computational load across more devices. Conversely, for smaller or simpler grid cells, the algorithm may use fewer partitions to maintain higher computational locality.

[0082] Large grids or complex regions have high computational demands. If not effectively segmented and balanced, individual computing nodes may become bottlenecks, slowing down the overall computation. Conversely, small grids and simple regions have lower computational demands, and excessive segmentation can increase unnecessary communication and management overhead. Dynamic optimization strategies can be used to tailor segmentation strategies to the characteristics of different grid structures, achieving optimal load balancing and improving parallel computing efficiency.

[0083] By dynamically evaluating the size and complexity of the grid, we can avoid allocating too much computing power to small grids with lower computing requirements, while also ensuring that high-loaded large grids or complex areas do not lack sufficient computing resources. This refined resource management method reduces resource waste and improves resource utilization.

[0084] In a reservoir simulation example, consider a structured grid consisting of 10,000 × 10,000 × 10,000 cells, each varying in complexity and size. An initial pre-partitioning process divides the grid into 100 × 100 × 100 grid cells, resulting in 1,000,000 preliminary grid sets, each containing 1,000,000 cells. However, this initial pre-partitioning may not fully account for the uneven distribution of grid complexity and size, leading to an unbalanced computational load. In this case, according to the aforementioned method, a secondary partitioning process can be performed by obtaining information about the size and complexity of each grid cell. For example, large grid cells exceeding 150% of the average size can be further subdivided into four subgrids, while small grid cells less than 75% of the average size can remain unchanged or be subdivided into only two subgrids. This approach balances computational time and resource consumption across different loads. Through this dynamic adjustment, it is possible to eventually obtain 1,500,000 grid sets, each containing approximately 6,666 grid cells, achieving a more balanced load distribution and improving the efficiency of parallel computing and the performance of reservoir numerical simulation.

[0085] In some embodiments, when the type of the above-mentioned grid is the above-mentioned unstructured grid, the load is distributed according to the type of the above-mentioned grid in the above-mentioned grid file, which can be specifically achieved through the following steps: according to the graph segmentation technology, the above-mentioned unstructured grid is divided to obtain a third division result; according to the above-mentioned third division result, the above-mentioned unstructured grid is distributed to multiple of the above-mentioned loads.

[0086] In this solution, unstructured grids can more accurately describe the complex geological structures in reservoirs, such as faults, fractures, and pore networks. Using graph partitioning technology ensures that this complexity is properly managed, and each computing node processes an optimized subset of the unstructured grid, which is conducive to accurately simulating reservoir behavior. By dividing the unstructured grid into multiple computationally independent subsets, each subset only communicates with a few adjacent subsets, thereby significantly reducing unnecessary data exchange in parallel computing. Graph partitioning technology not only considers the geometry of the unstructured grid, but also fully considers the computing requirements and equipment performance, ensuring that the computational load of each subset matches the capabilities of the corresponding computing node, avoiding waste of computing resources.

[0087] Specifically, when dealing with unstructured grids, due to their irregular geometric distribution and complex topological relationships, efficient and mature graph segmentation techniques are directly employed to analyze the connectivity and computational requirements of unstructured grids. For example, the Metis or Scotch graph segmentation libraries are used for this analysis. The algorithms consider the size, shape, and connectivity of the grid cells, partitioning the unstructured grid into multiple subsets to form a third partitioning result. This partitioning process aims to achieve load balancing, ensuring that the computational complexity within each subset matches the capabilities of the assigned computing device (load).

[0088] After the third partitioning step, the data and processing tasks for the unstructured grid are distributed to the various computing devices based on the computational load and device performance of each subset. For example, if the graph partitioning technique divides the unstructured grid into 32 subsets, and there are exactly 32 available compute nodes in the system, each node will be responsible for processing one subset, achieving a balanced distribution of computing tasks. This allocation method effectively reduces communication latency between different compute nodes, while also improving overall computational efficiency and parallel performance.

[0089] Unstructured grids can freely adapt to the irregularities of geological structures. Graph segmentation technology is used to automatically identify and balance the computational complexity in these grids, enabling reservoir numerical simulations to better reflect actual conditions and improve the reliability and accuracy of the simulations.

[0090] The third partitioning result of the unstructured grid is optimized through graph partitioning technology. This partitioning method ensures that the boundaries of each subset are as smooth as possible, reduces the communication paths across subsets, thereby reducing communication overhead and improving the efficiency of parallel computing.

[0091] By dynamically adjusting the size and complexity of each subset through graph partitioning technology, subsets with large computational load are assigned to computing nodes with stronger performance, while subsets with small computational load are assigned to nodes with slightly weaker performance. This refined management method optimizes the allocation of computing resources to the greatest extent, achieves load balancing, and improves the overall performance of parallel computing.

[0092] In reservoir numerical simulation, consider processing an unstructured grid with irregular shapes and complex topology, consisting of approximately 1.2 million randomly distributed polygonal cells. In the specific embodiment described above, the unstructured grid is partitioned using the Metis graph partitioning algorithm. Assuming 32 compute nodes, the Metis algorithm can partition the unstructured grid into 32 computationally independent subsets, each containing approximately 37,500 cells (in practice, the number of cells in each subset may vary slightly due to the irregularity of the grid). Algorithmic optimization ensures that the computational complexity of each subset matches the performance of the corresponding compute node, achieving load balancing. For example, subsets containing more complex cells are partitioned into finer sub-divisions, assigning them to higher-performance compute nodes. Subsets with fewer cells and simpler shapes are assigned to less powerful nodes, ensuring the efficiency and stability of the entire parallel computing environment.

[0093] Specifically, for structural grids, the load can be evenly distributed by the number of grids alone, or by the calculation time of the grids alone. The specific process will not be described here.

[0094] For unstructured grids, the load can be evenly distributed by using the number of grids alone, or by combining the number of grids with image segmentation calculations (i.e., using the calculation time of the grids). The distribution process is similar to that for structured grids and will not be described in detail here.

[0095] During the specific implementation process, after distributing the load according to the type of the above-mentioned grid in the above-mentioned grid file, the above-mentioned method also includes the following steps: obtaining grid elements, wherein the above-mentioned grid elements include points, edges, faces and bodies, at least two of the above-mentioned points constitute the above-mentioned edges, at least two of the above-mentioned edges constitute the above-mentioned faces, and at least two of the above-mentioned faces constitute the above-mentioned bodies; determining grid topology information based on adjacent grid elements, wherein the above-mentioned grid topology information is information on the adjacency relationship between the above-mentioned grid elements; generating geometric information based on the above-mentioned grid topology information, and displaying the above-mentioned geometric information in a display interface, wherein the above-mentioned geometric information is information on the shape, size and position of the above-mentioned grid elements.

[0096] This approach, by calculating the detailed topological relationships and geometric information of mesh elements, allows for a more accurate representation of the complex geometry of the reservoir, which is crucial for simulating reservoir dynamics. Clear mesh topology and precise geometry help reduce errors that may occur during parallel computations and ensure the correct execution of numerical discretization algorithms. Visualizing mesh geometry in the display interface not only helps reservoir engineers intuitively understand the reservoir structure but also enhances their ability to interpret simulation results.

[0097] Specifically, this embodiment involves obtaining the basic elements that make up a mesh: points, edges, faces, and volumes. These elements are the foundation for building complex geometric shapes. In a polyhedral mesh, at least two points form an edge, at least two edges form a face, and at least two faces form a volume. This structure allows for the precise description of various geological structures in an oil reservoir.

[0098] Mesh topology information is constructed based on the adjacency relationships between mesh elements. For unstructured meshes, such as corner meshes, it is necessary to clearly define the connections between each volume, face, edge, and point to generate a complete mesh topology. For example, a volume may be adjacent to multiple faces, a face may be connected to multiple edges, and an edge connects at least two points. These complex adjacency relationships constitute the mesh topology information and are the basis for subsequent calculations and visualization.

[0099] Based on the acquired topological information, the shape, size, and position of each mesh element are calculated, including but not limited to the volume of the mesh cell, the normal vector of the face, and the length of the edge. This geometric information is crucial for understanding and analyzing reservoir performance. Finally, the calculated geometric information is visualized in a display interface, allowing reservoir engineers to intuitively observe the details of the reservoir geometry, thereby making more accurate reservoir performance predictions and decision-making.

[0100] The topological relationships and geometric information of the grid are directly related to the accuracy of the reservoir mathematical model, which is the cornerstone of predicting reservoir dynamics and making reasonable decisions. Through the above steps, more detailed grid information is obtained, thereby improving the accuracy of reservoir numerical simulation.

[0101] The accuracy of mesh topology directly impacts the boundary conditions used in numerical calculations, while geometric information determines the accuracy of the discretization process. Accurately acquiring and calculating this information can effectively reduce uncertainty in parallel computations and improve the reliability of simulation results.

[0102] By visualizing mesh geometry, engineers can clearly see the actual size and relative position of each reservoir component, which is crucial for understanding and analyzing simulation results. Furthermore, visualization facilitates checking mesh quality, ensuring accurate data during simulations and enhancing the scientific and effective nature of reservoir engineering decisions.

[0103] In the example of reservoir numerical simulation, we assume we are dealing with an irregular corner grid consisting of approximately 200,000 individual cells and millions of edges and points. After load distribution, the mesh topology calculation and geometric information generation phase begins. First, a mesh analysis algorithm is used to determine the topological relationships between each cell and its adjacent faces, edges, and points. For example, a cell may be adjacent to six faces, 12 edges, and eight points. Subsequently, geometric information is calculated for each mesh element, such as the volume of the element (assuming an average volume of 0.1 cubic meters), the surface normal vector (for example, the normal vector of a surface is (0.6, 0.8, 0.0), the length of the edge (the average length is approximately 0.5 meters), and the coordinate position of the point. This data is then used to generate a visualization interface to display the geometric structure of the reservoir. For example, in the display interface, the type of each element is represented by a different color, the direction of the surface normal vector is indicated by an arrow, and the size of the line segment and point reflects the length of the edge and the coordinate position of the point. This highly accurate visualization information not only enhances the user's understanding of the reservoir structure, but also improves the ability to interpret parallel computing results, playing an important role in supporting decision-making in reservoir engineering.

[0104] In some embodiments, after allocating the load according to the type of the above-mentioned grid in the above-mentioned grid file, the above-mentioned method also includes the following steps: obtaining a preset template range, wherein the above-mentioned preset template range is a set of preset defined grids; generating network template information according to the above-mentioned preset template range, wherein the above-mentioned network template information is used to describe the extended area of the above-mentioned grid considered when each of the above-mentioned grids executes a specific numerical discretization algorithm; integrating the above-mentioned network template information into the reservoir numerical simulation software so that reservoir numerical simulation can be performed in the above-mentioned reservoir numerical simulation software.

[0105] In this solution, the generation and integration of network template information effectively guides data exchange within a parallel computing environment within reservoir numerical simulation software. By presetting the template range and network template information, the numerical discretization algorithm can accurately access and calculate the required grid data, avoiding issues such as missing data or duplicate calculations.

[0106] Specifically, before numerical reservoir simulation, a template range is preset based on the desired numerical discretization algorithm. This template range defines the adjacent grid area that needs to be considered for each grid cell during calculation. For example, if the finite volume method (FVM) is used as the numerical discretization algorithm, the preset template range may include the 12 neighboring grid cells around each grid cell, because the FVM generally needs to consider the direct neighbors of the grid cell to calculate fluid flow.

[0107] Based on the preset template range, network template information is calculated and generated. This includes the grid cells adjacent to each other within the template range, as well as the distribution of these adjacent grid cells among different processes. For example, if a grid cell within the template range needs to communicate with four other grid cells from different processes, the method records the identification information of these grid cells and the process IDs to which they belong, ensuring correct inter-process communication in parallel computing.

[0108] After completing the construction of the grid template information, this information is integrated into the framework of the reservoir numerical simulation software. This enables the software to perform efficient data exchange and calculation based on the network template information when executing specific numerical discretization algorithms, avoiding unnecessary communication delays and data redundancy, and improving the real-time performance and accuracy of reservoir simulation.

[0109] The preset template range defines the adjacent grid areas that each grid cell needs to consider when executing the numerical discretization algorithm, while the network template information specifically indicates the distribution of these adjacent grids in each calculation process, allowing the software to directly locate the process that needs to communicate, reducing unnecessary addressing and waiting time, and thus achieving efficient parallel communication.

[0110] Numerical discretization algorithms rely on information about grid cells and their neighbors to discretize the physical field. The network template information accurately describes the relationship and position of these neighbors, ensuring that the execution of the algorithm on each computing node is based on a complete and correct data set, thereby improving the efficiency and accuracy of numerical calculations.

[0111] The introduction of network template information enables reservoir simulation software to easily handle different types of grid data and parallel computing architectures. Whether working with structured, unstructured, or corner-point grids, the template information accurately describes the computational requirements of each grid cell. Furthermore, it adapts to parallel computing environments of varying scales. Whether operating with a small number of compute nodes or large-scale clusters, network template information enables efficient load distribution and data communication, greatly enhancing the flexibility and scalability of reservoir simulation.

[0112] In a reservoir simulation scenario, assuming the finite element method (FEM) is used as the numerical discretization algorithm, the preset template range includes at least 20 neighboring meshes around each grid cell. This is because the FEM needs to consider more information about neighboring meshes when constructing a continuum model to accurately describe the changes in reservoir physical fields. In a specific embodiment, the generated network template information includes detailed information about each grid cell and its neighboring meshes within the template range. For example, if a specific grid cell needs to communicate with five grid cells from other processes within the template range, not only is the identification information of these five grid cells recorded, but also the information indicating that they belong to the compute nodes of process IDs 1, 2, 3, 4, and 5, respectively. This allows the reservoir simulation software to quickly locate these neighboring meshes during runtime, reducing communication latency and improving parallel computing efficiency. Furthermore, by establishing a mapping relationship between neighboring meshes across different processes, the software can effectively manage cross-process data exchange, ensuring the smooth execution of the numerical discretization algorithm, thereby improving the accuracy and real-time performance of reservoir simulation.

[0113] The optimization process of the graph segmentation algorithm is as follows:

[0114] Modeling the grid as a graph: First, the grid model is converted into a graph model. In a graph model, each grid cell is considered a node, and connections between nodes (especially cross-partition connections) are considered edges. In this way, the entire grid is abstracted into a collection of nodes and edges, forming a graph network.

[0115] Compute node weights: For each node (i.e., grid cell), calculate its computational load (or weight). This computational load is based on the grid cell's size, complexity, reservoir properties, and other factors, as different grid cells may require different computational resources during numerical simulations. For example, grid cells near a fault in a reservoir may be more complex and require more computational time than cells in other areas.

[0116] Defining the objective function: The goal of a graph partitioning algorithm is to achieve load balancing while reducing data communication between partitions. Therefore, the algorithm defines an objective function that considers both load balancing and communication costs. A common objective function is to minimize the number of cut edges (i.e., minimize cross-partition connections) while ensuring that the node weights (i.e., computational loads) of each partition are as close as possible.

[0117] Applying graph partitioning algorithms: Graph partitioning algorithms, such as the Kernighan-Lin algorithm, the Fiduccia-Mattheyses algorithm, or more advanced multi-level graph partitioning algorithms (such as Metis and Scotch), are applied to partition the graph. These algorithms adjust the assignment of nodes (grid cells) through iterative optimization to minimize the objective function. During the iteration process, the algorithm attempts to swap nodes between partitions, evaluates the impact of these swaps on the objective function, and selects those swaps that improve load balancing or reduce communication overhead.

[0118] Boundary Adjustment: As the graph partitioning algorithm progresses, the boundaries of the grid partitions are adjusted to reflect the optimal partitioning solution. The goal of boundary adjustment is to ensure that adjacent grid cells remain within the same partition as much as possible to reduce the need for inter-process communication and ensure that the computational load of each partition is balanced.

[0119] Evaluation and Termination Criteria: The algorithm continuously evaluates the segmentation results until a predefined termination criterion is met. This could be a threshold improvement in the objective function or convergence after a certain number of iterations. Once the termination criterion is met, the algorithm outputs the final mesh partitioning solution.

[0120] In order to enable those skilled in the art to more clearly understand the technical solution of the present application, the implementation process of the load distribution method for reservoir numerical simulation of the present application will be described in detail below with reference to specific embodiments.

[0121] This embodiment relates to a specific load distribution method for reservoir numerical simulation, such as Figure 3 As shown, it includes the following functional blocks:

[0122] 1) MeshFileReader: This program reads mesh files and correctly interprets structured, unstructured, and corner-point grid formats used in reservoir simulation. It is responsible for reading data from various mesh file formats and correctly interpreting common grid formats used in reservoir simulation, such as structured, unstructured, and corner-point grids. This is the first step in processing mesh data in reservoir numerical simulation software, ensuring data accuracy and integrity in subsequent processing.

[0123] 2) MeshPartioner: This performs mesh partitioning by process. It determines whether to pre-partition the mesh based on whether it contains structured mesh information. It also supports calling a graph partitioning algorithm (i.e., a graph-theoretic algorithm) during pre-partitioning to complete mesh partitioning by process. This partitioning process determines the pre-allocation of mesh data based on the mesh type (structured, unstructured, or corner mesh) and the distribution of computing devices. For meshes with structured information (such as structured and corner meshes), it first pre-partitions the mesh and then optimizes for load balancing. For unstructured meshes, it directly uses the graph partitioning algorithm for partitioning.

[0124] 3) PolyMeshTopology: This function builds a distributed polyhedral mesh topology based on the mesh file information and mesh partitioning results. This function constructs the mesh topology, including the adjacency relationships between volumes, faces, edges, and points, based on the mesh data and partitioning results. For structured meshes, this topology information is implicit and requires no additional calculation. However, for unstructured meshes and corner point meshes, the adjacency relationships between mesh entities must be calculated for subsequent numerical calculations.

[0125] 4) MeshGeometry: This module contains mesh geometry information, including volume, face normals, and cell weights on both sides of a face. Mesh geometry information is essential for reservoir simulation and does not require detailed description. It is responsible for calculating and storing mesh geometric properties, such as cell volume, face normals, and inter-cell connectivity weights. This information is crucial for building physical models and performing numerical calculations.

[0126] 5) PolyMeshStencil (Polyhedral mesh template): Mesh template information, representing the adjacent mesh regions used by the numerical discretization algorithm. Different versions exist depending on the numerical discretization method used. Mesh template information is determined based on the numerical method used for reservoir simulation and is an essential foundational function for reservoir meshing. Specifically, mesh template information is generated based on the needs of the numerical discretization algorithm. This includes determining the mesh region within the template, that is, the set of mesh cells to be considered during algorithm execution. Templates can be based on different numerical methods, such as the finite volume method, the finite element method, or the finite difference method.

[0127] 6) PolyMeshManager: Targeted at the needs of reservoir numerical simulation, it provides topology information, geometry information, adjacency templates, and matrix and vector creation. This module manages information generated by previous modules for direct use in reservoir numerical simulation calculations. It provides a unified interface and management mechanism for manipulating mesh topology, geometry, and templates, supporting matrix and vector creation, and handling inter-process data exchange for parallel computations. It integrates the functionality of all the aforementioned modules, providing an efficient and unified mesh data structure and management solution for reservoir numerical simulation.

[0128] 7) Graph Partioner: A key component for optimizing the load distribution of grid data in parallel computing. It works by treating the grids in reservoir simulation as nodes in a graph, and the adjacency relationships between grids as edges. A graph partitioning algorithm is then applied to this graph to achieve a balanced distribution of parallel computing tasks across different compute nodes. The goal of graph partitioning is typically to minimize communication between different parts (or compute nodes) while maintaining a balanced computational load across each part. This is because communication overhead in parallel computing is often a significant factor affecting overall efficiency. Specifically, the graph partitioner identifies computationally intensive regions within the grid data and attempts to evenly distribute these regions across the compute nodes, while reducing data interactions across node boundaries, thereby improving the efficiency and speed of parallel computing. This approach is particularly suitable for unstructured grids, as their geometry and topological relationships are often irregular, making it difficult to achieve load balancing through simple geometric or mathematical partitioning.

[0129] StructureReader (Structural Mesh Reader): A file specifically designed to read and parse structural meshes. A structural mesh is a regularly arranged grid, usually defined in a Cartesian coordinate system, with nodes and elements distributed in a regular pattern.

[0130] CornerPointReader: Responsible for reading and parsing corner point grid files. Corner point grids are a special type of 3D grid that combines the characteristics of structured and unstructured grids, allowing for more flexible description of complex geological structures while retaining a certain degree of regularity.

[0131] UntructureReader: This is used to read and parse unstructured mesh files. Unstructured meshes have irregularly distributed nodes and cells, which can accommodate more complex geometries and are suitable for simulating reservoirs with complex structures.

[0132] MetisPartioner: Partitions the grid based on the Metis graph partitioning algorithm to achieve load balancing. Metis is an efficient graph partitioning and coloring algorithm widely used in parallel computing to optimize the allocation of computing resources.

[0133] ScotchPartioner: Use the Scotch graph partitioning tool to partition grids and optimize parallel computing loads. Scotch is a parallel computing tool for graph and high-dimensional grid partitioning and sparse matrix processing. It is particularly well-suited for optimizing grid partitioning in parallel computing environments.

[0134] Partioner: A more general mesh partitioning component that can call different mesh partitioning algorithms (such as MetisPartioner, ScotchPartioner or other partitioners) to partition mesh data according to specific input and requirements.

[0135] FVMCellcenterStencil (Finite Volume Method Cell Center Stencil): Generates stencil information for the region of influence around the cell center in Finite Volume Method (FVM) calculations. The finite volume method is a common discretization technique used for numerical simulations of continua, such as fluids. Cell center stencils are used to define the coupling and interactions of local meshes in the calculation.

[0136] FEMstencil (Finite Element Method Template): Generates template information for Finite Element Method (FEM) calculations, defining the connections and interactions between mesh elements in numerical calculations. The FEM is another numerical method widely used in engineering problems, including reservoir simulation. By constructing templates between elements, efficient local calculations and solutions are possible.

[0137] FDMStencil (Finite Difference Method Template): Provides template information for Finite Difference Method (FDM) calculations, defining how to apply difference equations to a grid of points for numerical calculations. The Finite Difference Method is a fundamental technique in numerical analysis used to approximate the solution of differential equations.

[0138] Dynamic Stencil: This provides the ability to dynamically adjust the template range, allowing the calculation template to be adjusted in real time based on dynamic changes during the simulation process to optimize calculation efficiency and accuracy. For example, in reservoir numerical simulation, as the reservoir fluid distribution changes, the grid area that needs to be considered in the calculation may also need to be dynamically adjusted.

[0139] The steps include:

[0140] Step S1: Read the grid file and obtain global grid point coordinate data. For corner grids and unstructured grids, the adjacency relationship between grid cells and grid points is also obtained, that is, the points that make up a cell. For structured grids, this information does not need to be displayed. A structured grid cell with a sequence number (i,j,k) is composed of the eight points (i,j,k), (i+1,j,k), (i,j+1,k), (i+1,j+1,k), (i,j,k+1), (i+1,j,k+1), (i,j+1,k+1), (i+1,j,k+1), (i+1,j+1,k+1), (i+1,j+1,k+1). This step is used to obtain the coordinates of the grid points and the adjacency relationship between the cells and the points. This information can be obtained by directly reading the grid file. The grid point coordinates are used for subsequent geometric information generation, and the adjacency relationship between the cells and the points is used for subsequent topology generation and process partitioning.

[0141] Step S2: Partition the grid by process. Assume the number of processes is N. For grids with structural information, including structured and corner grids, the grid is divided into segments Px, Py, and Pz in three directions according to their grid distribution Nx, Ny, and Nz. This ensures that Px*Py*Pz=N and that Px:Py:Pz approximates Nx:Ny:Nz. For corner grids, after the initial partitioning, a graph partitioning algorithm is invoked for further load balancing optimization. For unstructured grids, the graph partitioning algorithm is directly used for partitioning. After partitioning, the grid information is assigned to the corresponding process. Subsequent steps are performed on local information within the process. Reservoir numerical simulation generally uses static load balancing, so the process partitioning of the grid is directly related to the load balancing effect. This step involves partitioning the process based on the grid information obtained in the first step. After the partitioning scheme is obtained through the marking step, only the grid information corresponding to the corresponding process is retained in the corresponding process. This step is used to achieve efficient load balancing for different grid types in this technical solution.

[0142] Step S3: Calculate the grid topology. The topology of the structured grid is implicit in the structure information. That is, the left cell of the (i, j, k)th structured grid cell is (i-1, j, k), and the right cell is (i+1, j, k). Adjacent numbered cells are adjacent grids and do not need to be calculated. Corner grids and unstructured grids also need to be calculated. Figure 4The adjacency relationships between four types of mesh entities include region, face, edge, and vertex. The adjacency relationships are constructed through the bidirectional adjacency relationships between bodies, faces, edges, and their constituent points. This solution supports the selective generation of entities and adjacency relationships according to the needs of different numerical algorithms. Bodies and points are generally included in mesh files, and faces and edges are constructed on this basis. Specifically, they are obtained by finding the intersection of adjacent body units. If the intersection is three or more points, it is a face, and two points are edges. The construction of adjacency relationships is the basis for subsequent mesh template information and geometric information. Adjacency relationships are also called mesh representations. Efficient mesh representations are a key part of supporting efficient numerical calculations. The mesh representation constructed by this solution is efficient and flexible. It can choose which entities to save according to the needs of developers and supports any adjacency relationship to be obtained within the time complexity of O(1).

[0143] Step S4: Generate grid template information. The template information is constructed based on the template type required by the numerical discretization method. This includes establishing the extension area of the sub-region grid according to the template, that is, the grid belonging to other processes within the template range, and constructing the mapping of the extension area between different processes to implement inter-process communication during reservoir simulation. The template information is determined based on the hotspot calculation area in the reservoir numerical simulation. For example, if a numerical discretization method requires data from several adjacent positions on the grid, the scope of the hotspot calculation can be determined based on the adjacency information in the topology. The structure is the template information. The extension area is constructed to expand outward through the common points between different processes in the grid. The serial number corresponding to the extension area in the remote process is obtained through inter-process communication to construct the mapping of the extension area. After the mapping is realized, the communication of numerical calculation data between different processes can be efficiently realized, thereby improving parallel efficiency.

[0144] Step S5: Generate geometric information and calculate the volume of the grid cell, the surface normal, the weight of the cells on both sides of the surface, and other information.

[0145] Every grid cell (whether structured, unstructured, or corner-point) has a specific volume. In numerical simulations, this volume is the basis for calculating fluid transport, pressure distribution, and other physical quantities. Accurately calculating this volume is crucial to ensuring reliable simulation results.

[0146] The face normal, the perpendicular direction of each mesh face, is key in determining the direction of fluid or material flow through the face. In numerical simulations, face normals are used to calculate the flow of fluid or material through each face, as well as the interactions between faces involved in physical processes.

[0147] When calculating the flow of fluid or material through a mesh, it may be necessary to consider the relative influence of the cells on either side on the fluid's behavior. This influence can be represented by weights, where the magnitude of the weights reflects the physical properties of the cells on either side (such as permeability, flow resistance, etc.).

[0148] It should be noted that the specific calculation method can adopt any current calculation method. This solution only involves load distribution and does not limit the calculation method.

[0149] This solution has a wide range of applications and provides a unified approach to the diverse grid types involved in reservoir simulation. It leverages the structural information of unstructured grids, such as diagonal grids, which have some structural characteristics, to optimize load balancing and locality, improving the efficiency of reservoir numerical simulations.

[0150] The embodiment of the present application also provides a load distribution device for reservoir numerical simulation. It should be noted that the load distribution device for reservoir numerical simulation in the embodiment of the present application can be used to execute the load distribution method for reservoir numerical simulation provided in the embodiment of the present application. The device is used to implement the above-mentioned embodiments and preferred implementation methods, and the details that have been explained will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, implementation in hardware, or a combination of software and hardware, is also possible and conceivable.

[0151] The following introduces the load distribution device for reservoir numerical simulation provided in the embodiments of the present application.

[0152] Figure 5 This is a structural block diagram of a load distribution device for reservoir numerical simulation according to an embodiment of the present application. Figure 5 As shown, the device includes:

[0153] A first acquisition unit 10 is configured to acquire a grid file, wherein the grid file is a file representing the geological spatial structure of a target area, the target area being one or more of a coal mine, an oil field, a geothermal field, and a gas field, and the grid file includes a plurality of grids;

[0154] an allocating unit 20 configured to allocate a load according to a type of the grid in the grid file, wherein the type of the grid includes a structured grid or an unstructured grid, the load is a device used for reservoir numerical simulation, and the allocation method includes evenly allocating the load according to the number of the grids and / or evenly allocating the load according to a calculation time of the grids, wherein the calculation time is the time for the load to calculate the oil-water distribution in the target area during reservoir numerical simulation;

[0155] The control unit 30 is used to control all the above loads and perform reservoir numerical simulation based on the distributed grid file.

[0156] Through this embodiment, the data structure of the structured grid has the advantages of high memory access efficiency and high parallel computing efficiency. The unstructured grid data structure can handle complex geometry and has good adaptability to geological structures. This solution can distribute loads for different types of grids and build a unified management framework for different grid types to ensure that the load can bear similar workloads, thereby achieving load balancing.

[0157] During the specific implementation process, the allocation unit includes a first division module, an update module and a first allocation module. The first division module is used to perform a first division on the above-mentioned structured grid according to the directional distribution of the above-mentioned structured grid when the type of the above-mentioned grid is the above-mentioned structured grid, and obtain a first division result; the update module is used to update the above-mentioned first division result according to the graph segmentation technology to obtain a second division result; the first allocation module is used to allocate the above-mentioned structured grid to multiple of the above-mentioned loads according to the above-mentioned second division result.

[0158] In this scheme, the pre-partitioning and optimization process of the structured grid fully exploits the inherent regularity of the structured grid. This not only simplifies the initial grid partitioning but also further optimizes load distribution through the graph partitioning algorithm, ensuring that the amount of grid data processed by each computing device matches the computation time and reducing unnecessary communication overhead. This precise load distribution avoids idle computing devices, reduces the waste caused by underutilized computing resources, and lowers the cost of large-scale parallel computing. Although the structured grid has regularity, the optimization of the graph partitioning algorithm can effectively handle the irregularities present in the structured grid, making it more suitable for describing complex geological structures in reservoir numerical simulations.

[0159] In some embodiments, the first division module includes a first acquisition submodule and a division submodule, the first acquisition submodule is used to obtain the load quantity of all the above-mentioned loads; the division submodule is used to divide the above-mentioned structural grid in each direction into multiple grid sets to obtain the above-mentioned first division result, wherein the number of the above-mentioned grid sets in all directions is equal to the above-mentioned load quantity, and each of the above-mentioned grid sets includes at least one above-mentioned structural grid.

[0160] In this solution, the initial load distribution can be completed more quickly, providing a foundation for subsequent more complex load balancing optimization. It also reduces the computing cost during the load distribution process, significantly improves the efficiency of parallel computing, and further achieves load balancing.

[0161] During the specific implementation process, the update module includes a second acquisition submodule and an update module, the second acquisition submodule is used to obtain the relevant information of each of the above-mentioned structural grids in the above-mentioned first division result, wherein the above-mentioned relevant information at least includes the size and / or complexity of the above-mentioned structural grid, the size of the above-mentioned structural grid is positively correlated with the above-mentioned calculation time, and the complexity of the above-mentioned structural grid is positively correlated with the above-mentioned calculation time; the update module is used to update the above-mentioned first division result based on the above-mentioned relevant information according to the graph segmentation technology to obtain the above-mentioned second division result, wherein the size of the above-mentioned structural grid is negatively correlated with the number of divisions, and the complexity of the above-mentioned structural grid is negatively correlated with the number of divisions.

[0162] This approach leverages the size and complexity of the structured grid for dynamic optimization, effectively balancing the computational load across different computing devices and ensuring that each device receives roughly equal computation time. The optimized partitioning strategy for the structured grid ensures a rational allocation of computing resources, avoiding both idle and overused resources.

[0163] In some embodiments, the allocation unit includes a second division module and a second allocation module. The second division module is used to divide the above-mentioned unstructured grid according to the graph segmentation technology when the type of the above-mentioned grid is the above-mentioned unstructured grid, so as to obtain a third division result; the second allocation module is used to allocate the above-mentioned unstructured grid to the plurality of the above-mentioned loads according to the above-mentioned third division result.

[0164] In this solution, unstructured grids can more accurately describe the complex geological structures in reservoirs, such as faults, fractures, and pore networks. Using graph partitioning technology ensures that this complexity is properly managed, and each computing node processes an optimized subset of the unstructured grid, which is conducive to accurately simulating reservoir behavior. By dividing the unstructured grid into multiple computationally independent subsets, each subset only communicates with a few adjacent subsets, thereby significantly reducing unnecessary data exchange in parallel computing. Graph partitioning technology not only considers the geometry of the unstructured grid, but also fully considers the computing requirements and equipment performance, ensuring that the computational load of each subset matches the capabilities of the corresponding computing node, avoiding waste of computing resources.

[0165] During the specific implementation process, the above-mentioned device also includes a second acquisition unit, a determination unit and a processing unit. The second acquisition unit is used to obtain grid elements after allocating the load according to the type of the above-mentioned grid in the above-mentioned grid file, wherein the above-mentioned grid elements include points, edges, faces and bodies, at least two of the above-mentioned points constitute the above-mentioned edges, at least two of the above-mentioned edges constitute the above-mentioned faces, and at least two of the above-mentioned faces constitute the above-mentioned bodies; the determination unit is used to determine grid topology information based on adjacent grid elements, wherein the above-mentioned grid topology information is information about the adjacency relationship between the above-mentioned grid elements; the processing unit is used to generate geometric information based on the above-mentioned grid topology information, and display the above-mentioned geometric information in a display interface, wherein the above-mentioned geometric information is information about the shape, size and position of the above-mentioned grid elements.

[0166] This approach, by calculating the detailed topological relationships and geometric information of mesh elements, allows for a more accurate representation of the complex geometry of the reservoir, which is crucial for simulating reservoir dynamics. Clear mesh topology and precise geometry help reduce errors that may occur during parallel computations and ensure the correct execution of numerical discretization algorithms. Visualizing mesh geometry in the display interface not only helps reservoir engineers intuitively understand the reservoir structure but also enhances their ability to interpret simulation results.

[0167] In some embodiments, the above-mentioned device also includes a third acquisition unit, a generation unit and an integration unit, the third acquisition unit is used to obtain a preset template range after allocating the load according to the type of the above-mentioned grid in the above-mentioned grid file, wherein the above-mentioned preset template range is a set of preset defined grids; the generation unit is used to generate network template information according to the above-mentioned preset template range, wherein the above-mentioned network template information is used to describe the expansion area of the above-mentioned grid considered by each of the above-mentioned grids when executing a specific numerical discretization algorithm; the integration unit is used to integrate the above-mentioned network template information into the reservoir numerical simulation software, so that reservoir numerical simulation can be performed in the above-mentioned reservoir numerical simulation software.

[0168] In this solution, the generation and integration of network template information effectively guides data exchange within a parallel computing environment within reservoir numerical simulation software. By presetting the template range and network template information, the numerical discretization algorithm can accurately access and calculate the required grid data, avoiding issues such as missing data or duplicate calculations.

[0169] The load distribution device for reservoir numerical simulation includes a processor and memory. The first acquisition unit, distribution unit, and control unit are all stored as program units in the memory. The processor executes the program units stored in the memory to implement the corresponding functions. The modules are all located in the same processor; alternatively, the modules can be located in different processors in any combination.

[0170] The processor contains a kernel, which retrieves the corresponding program unit from the memory. One or more kernels can be configured, and kernel parameters can be adjusted to address the existing problem of load balancing in reservoir numerical simulation grid computing.

[0171] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM, and the memory includes at least one memory chip.

[0172] An embodiment of the present invention provides a computer-readable storage medium, which includes a stored program. When the program is executed, the device where the computer-readable storage medium is located is controlled to execute the load distribution method for reservoir numerical simulation.

[0173] An embodiment of the present invention provides a processor, which is used to run a program, wherein the program executes the load distribution method for reservoir numerical simulation when running.

[0174] An embodiment of the present invention provides a device comprising a processor, a memory, and a program stored in the memory and executable by the processor. When the processor executes the program, it implements at least the steps of a load distribution method for reservoir numerical simulation. The device herein may be a server, a PC, a PAD, a mobile phone, or the like.

[0175] A computer program product includes a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the computer program implements the steps of the load distribution method for reservoir numerical simulation in each embodiment of the present application.

[0176] The present application provides a load distribution system, comprising one or more processors, a memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs include a method for executing any one of the above-mentioned load distribution methods for reservoir numerical simulation.

[0177] Obviously, those skilled in the art will appreciate that the various modules or steps of the present invention described above can be implemented using a general-purpose computing device, can be centralized on a single computing device, or can be distributed across a network of multiple computing devices. They can be implemented using program code executable by the computing device, and thus, can be stored in a storage device and executed by the computing device. In some cases, the steps shown or described herein can be performed in a different order than that shown, or can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the present invention is not limited to any particular combination of hardware and software.

[0178] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0179] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0180] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.

[0181] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing the instructions executed on the computer or other programmable device for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.

[0182] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.

[0183] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0184] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can be implemented using any method or technology for information storage. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change RAM (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media, such as modulated data signals and carrier waves.

[0185] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.

[0186] The above description is merely a preferred embodiment of the present application and is not intended to limit the present application. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present application shall be included within the scope of protection of the present application.

Claims

1. A load distribution method for reservoir numerical simulation, characterized in that: include: Obtaining a grid file, wherein the grid file is a file representing the geological spatial structure of a target area, the target area being one or more of a coal mine, an oil field, a geothermal field, and a gas field, and the grid file includes a plurality of grids; Allocating the load according to the type of the grid in the grid file, wherein the type of the grid includes a structured grid or an unstructured grid, the load is a device used for reservoir numerical simulation, and the allocation method includes evenly allocating according to the number of the grids and / or evenly allocating according to the calculation time of the grids, wherein the calculation time is the time for the load to calculate the oil-water distribution in the target area during the reservoir numerical simulation; All the loads are controlled, and reservoir numerical simulation is performed based on the distributed grid file.

2. The method according to claim 1, characterized in that When the type of the grid is the structural grid, distributing the load according to the type of the grid in the grid file includes: Performing a first division on the structured grid according to the directional distribution of the structured grid to obtain a first division result; updating the first partitioning result according to the graph partitioning technology to obtain a second partitioning result; The structural grid is allocated to a plurality of the loads according to the second division result.

3. The method according to claim 2, characterized in that Performing a first division on the structured grid according to the directional distribution of the structured grid to obtain a first division result includes: Obtain the load quantity of all the loads; The structural grid in each direction is divided into multiple grid sets to obtain the first division result, wherein the number of the grid sets in all directions is equal to the number of loads, and each of the grid sets includes at least one structural grid.

4. The method according to claim 2, characterized in that The first partitioning result is updated according to the graph partitioning technology to obtain a second partitioning result, including: Obtaining relevant information of each structured grid in the first division result, wherein the relevant information includes at least the size and / or complexity of the structured grid, the size of the structured grid is positively correlated with the calculation time, and the complexity of the structured grid is positively correlated with the calculation time; According to the graph segmentation technology, the first division result is updated based on the relevant information to obtain the second division result, wherein the size of the structured grid is negatively correlated with the number of divisions, and the complexity of the structured grid is negatively correlated with the number of divisions.

5. The method according to claim 1, wherein In a case where the type of the grid is the unstructured grid, distributing the load according to the type of the grid in the grid file includes: dividing the unstructured grid according to a graph segmentation technique to obtain a third segmentation result; According to the third division result, the unstructured grid is allocated to a plurality of the loads.

6. The method according to any one of claims 1 to 5, characterized in that After distributing the load according to the type of the grid in the grid file, the method further includes: Acquire mesh elements, wherein the mesh elements include points, edges, surfaces, and volumes, at least two of the points constitute the edge, at least two of the edges constitute the surface, and at least two of the surfaces constitute the volume; Determining mesh topology information based on adjacent mesh elements, wherein the mesh topology information is information about adjacency relationships between the mesh elements; Geometric information is generated according to the mesh topology information, and the geometric information is displayed in a display interface, wherein the geometric information is information about the shape, size, and position of the mesh elements.

7. The method according to any one of claims 1 to 5, characterized in that After distributing the load according to the type of the grid in the grid file, the method further includes: Obtaining a preset template range, wherein the preset template range is a set of preset defined grids; Generating network template information according to the preset template range, wherein the network template information is used to describe an extended area of each grid considered when executing a specific numerical discretization algorithm; The network template information is integrated into reservoir numerical simulation software, so that reservoir numerical simulation can be performed in the reservoir numerical simulation software.

8. A load distribution device for reservoir numerical simulation, characterized in that: include: a first acquisition unit, configured to acquire a grid file, wherein the grid file is a file representing a geological spatial structure of a target area, the target area being one or more of a coal mine, an oil field, a geothermal field, and a gas field, and the grid file includes a plurality of grids; an allocating unit, configured to allocate a load according to a type of grid in the grid file, wherein the type of the grid includes a structured grid or an unstructured grid, the load is a device used for reservoir numerical simulation, and the allocation method includes average allocation according to the number of the grids and / or average allocation according to the calculation time of the grids, wherein the calculation time is the time for the load to calculate the oil-water distribution in the target area during reservoir numerical simulation; A control unit is used to control all the loads and perform reservoir numerical simulation based on the distributed grid file.

9. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the load distribution method for reservoir numerical simulation according to any one of claims 1 to 7 are implemented.

10. A load distribution system, characterized in that: include: One or more processors, a memory, and one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, and the one or more programs include a method for executing a load distribution method for reservoir numerical simulation according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Domain decomposition optimizing method for numerical simulation of structure fire

    CN106815075A

  • Large-scale parallel mesh generation system and method for finite element analysis

    CN111125949A

  • Fractured-vuggy reservoir numerical simulation method and system

    CN115345080A

  • Multi-layer region decomposition parallel computing method and device for polyhedral mesh

    CN116562066A

  • Oil reservoir numerical simulation method and device, computer equipment and storage medium

    CN116882218A

Cited By

  • Computing node allocation method, electronic equipment, storage medium and program product

    CN120929280A

  • Method for allocating computing nodes, electronic device, storage medium and program product

    CN120929280B