Calculating ray path between source antenna position and destination antenna position
By combining heat transfer, Eikonal equations and machine learning methods, using trained neural networks to calculate ray paths, the problem of low ray path calculation efficiency in the existing technology is solved, and more efficient and accurate ray path calculation is achieved, suitable for complex electromagnetics structure.
Patent Information
- Application Number
- CN202410782710.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-11
- Filing Date
- 2024-06-18
- Publication Date
- 2025-01-07
AI Technical Summary
Existing ray path calculation methods are inefficient and difficult to accurately determine ray paths when dealing with complex electromagnetic structures, especially in large and complex geometric structures, resulting in too long calculation time and high cost.
Using a ray path calculation method combining heat transfer, Eikonal equations and artificial intelligence/machine learning methods, the geodesic path is calculated using trained neural networks and greedy search algorithms, and the free space path is calculated through ray tracing to improve the computing efficiency and Accuracy.
It significantly improves the efficiency and accuracy of ray path calculations, can handle more complex electromagnetic large structures, and reduces the amount and time of experiments during the design process.
Smart Images

Figure CN119272597A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 63 / 512,356, filed on July 7, 2023, which is hereby incorporated by reference in its entirety for all purposes. Technical Field
[0003] The present application relates to ray path computation in the context of electromagnetic simulation of physical systems. Background Art
[0004] When engineering systems and devices utilize electromagnetic communications (e.g., via radio or infrared signals), the geometric properties of such systems and devices affect their ability to communicate. For example, diffraction around a portion of a device or around other structures may affect signal strength at different locations in the system. Developers of systems that use electromagnetic communications can use information about the diffraction properties of the system to select locations for antennas that transmit and / or receive electromagnetic signals.
[0005] Existing methods for computing the electromagnetic properties of structures often take as input an indication of ray paths. These ray paths are the paths that electromagnetic waves follow when they interact with the structure. For example, part of the ray path may pass through free space, while another part of the ray path may be located along the surface of the structure. By determining ray paths on and around the structure, and by performing electromagnetic simulations using these ray paths, developers can select structure geometries and antenna arrangements that allow for reduced interference and high signal-to-noise ratios for received and transmitted signals. Summary of the invention
[0006] According to one aspect of the present disclosure, a computing system is provided, comprising a processor configured to receive a grid of a three-dimensional geometric shape. The processor is also configured to receive a source antenna position and a destination antenna position on the grid. The processor is also configured to calculate a ray path as an estimated shortest path between the source antenna position and the destination antenna position. The ray path includes a geodesic path on the grid and a free space path outside the grid. The ray path is calculated at least in part by calculating the geodesic path, wherein the geodesic path is calculated at least in part by performing inference at a trained neural network. Calculating the ray path also includes calculating the free space path at least in part by performing ray tracing from a launch point located at an endpoint of the geodesic path. The processor is also configured to output the ray path to an additional computing process. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 A computing system including a processor configured to execute a ray path calculation module according to an example embodiment is schematically illustrated.
[0008] Figure 2 Schematically showing the Figure 1 An example of multiple ray paths computed for a mesh of 3D geometry.
[0009] Figure 3 Schematically showing with additional details Figure 1 Example ray paths for an example of .
[0010] Figure 4 Schematically showing the Figure 1 An example of a computing system when the processor is configured to utilize a thermal method and a trained neural network to calculate a geodesic path.
[0011] Figure 5 Schematically showing the Figure 1 An example of a computing system when training a neural network.
[0012] Figure 6 Schematically showing the Figure 1 An example of a computing system in which the thermal method is used with the Dijkstra algorithm.
[0013] Figure 7 Schematically showing the Figure 1 The computing system of the example configures the processor to approximate a solution of the Eikonal equation using a fast marching method.
[0014] Figure 8 Schematically showing the Figure 1 An example of a computing system when the processor is configured to approximate a solution of the Eikonal equation at a trained neural network.
[0015] Fig. 9 Schematically showing the Figure 1 An example of a computing system when the processor is configured to execute a geometric theory of diffraction (GTD) or uniform theory of diffraction (UTD) simulation module.
[0016] Fig. 10A Show according to Figure 1 A flow chart of an example method for use with a computing system to compute a ray path.
[0017] Fig. 10B shows the steps performed in some examples when computing a geodesic path Fig. 10A Additional steps of the method.
[0018] Fig. 10C Show Fig. 10A Additional steps of the method may be performed to obtain a trained neural network.
[0019] Fig. 10D Show Fig. 10A Additional steps of the method may be performed at the GTD or UTD simulation module.
[0020] Fig.10E Show according to Fig. 10A Example steps that may be performed when computing ray paths as an alternative to performing inference at a trained machine learning model.
[0021] Fig.11 Shows where you can instantiate Figure 1 Schematic diagram of an example computing environment of a computing device. DETAILED DESCRIPTION
[0022] The present disclosure discusses the challenges faced in finding ray paths when computationally simulating large electromagnetic structures using the Geometric Theory of Diffraction (GTD) and / or the Uniform Theory of Diffraction (UTD). The present disclosure presents a method that combines heat transfer, calculation of the Eikonal equations, and artificial intelligence / machine learning (AI / ML) to perform ray searches with greater computational efficiency and accuracy than previous ray search techniques. Thus, the apparatus and methods discussed below can overcome the technical challenges associated with existing methods for GTD / UTD applications, and can extend the applicability of GTD / UTD to simulations of electromagnetic large structures.
[0023] introduction
[0024] Many computational electromagnetic (EM) algorithms (including finite element method (FEM), finite difference time domain (FDTD), moment method (MoM), multi-level fast multipole method (MLFMM), physical optics (PO) and GDT / UTD) can be adopted to simulate electromagnetic structures by computation. Among these methods, high frequency asymptotic technique GTD / UTD is often used to simulate electrical large structures. For example, existing methods have utilized GTD / UTD to simulate radar and antenna systems in electromagnetic large structures. Some commercially available computational electromagnetic (CEM) software tools have incorporated the GTD / UTD method into their software tool suites. However, the implementation of GTD / UTD in these existing software tools is limited to simple structures. Existing methods such as these cannot accurately determine the ray path from source to target on the surface of complex geometry. Without accurate determination of the ray path, the GTD / UTD algorithm cannot be correctly applied to such complex geometry.
[0025] Existing computational electromagnetic programs have been configured to compute geodesic paths from a source to a target, which represent electromagnetic waves propagating in a domain of interest (e.g., surface bounded creeping waves and / or unbounded platform off-plane propagating waves), using the following two techniques. First, existing computational electromagnetic programs have been configured to identify geodesic paths by tracing back the geodesic path between two locations using a two-dimensional mesh surface model. However, the speed of the path search algorithm used in this approach is a function of the total number of mesh elements, so the larger the structure or the denser the mesh, the more time it takes to resolve the ray path. In order to improve the accuracy of the ray path, the existing method must increase the density of the mesh. Therefore, the existing method suffers from the disadvantage that the search time increases exponentially with the increase in mesh density, resulting in an application that is too slow and costly when applied to large and / or complex structures.
[0026] In another existing approach, existing computational electromagnetic programs have been configured to use the Eikonal equations to determine geodesic paths. This approach uses solutions to the Eikonal equations on a tetrahedral mesh to compute the shortest path between a source and a destination. Also for this option, the time complexity of computing the shortest path is a function of the mesh size. Therefore, this approach can be computationally complex and slow and costly to implement for large structures.
[0027] Disclosed Embodiments
[0028] Figure 1 A computing system 10 is schematically shown including a processor 14 configured to execute a ray path calculation module 50. The processor 14 is accordingly configured to calculate a ray path 60. The ray path calculation module 50 implements a ray path search algorithm that is less computationally complex than the prior art methods described above, and therefore provides processing speed and cost advantages over the methods. The ray path search algorithm of the present disclosure uses a trained neural network 52 or a greedy search algorithm 80 to replace the backtracking techniques used in prior art methods. The processor 14 may also calculate a heat vector field or numerically solve the Eikonal equation in some examples when calculating the ray path, as discussed in further detail below.
[0029] like Figure 1 As shown, computing system 10 includes a computing device 12 having a processor 14 and associated memory 16 (e.g., RAM) communicatively connected via a communication bus 20. Computing device 12 also includes a storage device 18 storing instructions that, when executed by processor 14 using portions of memory 16, cause processor 14 to implement the functionality described herein. The processor is also linked to a communication interface 22, one or more user input devices 24, and a display 26 via communication bus 20.
[0030] exist Figure 1 In an example of , the processor 14 is configured to receive a mesh 30 of a three-dimensional (3D) geometric shape 38. The 3D geometric shape 38 may be, for example, the geometry of a vehicle 38A, a satellite 38B, or a geographic area including a communication tower 38C. In other examples, the 3D geometric shape 38 may represent other types of structures or areas. The mesh 30 includes a plurality of nodes 32 connected by a plurality of edges 34. In some examples, the mesh 30 is an unweighted graph. In other examples, the mesh 30 is a weighted graph in which edge weights 36 associated with the plurality of edges 34 indicate distances between pairs of nodes 32. The mesh 30 may be, for example, a tetrahedral mesh.
[0031] Processor 14 is also configured to receive source antenna location 40 and destination antenna location 42 on grid 30. Source antenna location 40 and destination antenna location 42 are nodes 32 in grid 30 that serve as endpoints of ray paths 60.
[0032] At the ray path calculation module 50, the processor 14 is further configured to calculate the ray path as an estimated shortest path between the source antenna location 40 and the destination antenna location 42. The ray path 60 includes a geodesic path 62 above the grid 30 and a free space path 64 outside the grid 30. In some examples, the ray path 60 includes two geodesic paths 62 located at the ends of the free space path 64.
[0033] Figure 2 Schematically illustrated are a plurality of ray paths 60 calculated for a mesh 30 of a 3D geometric shape 38. Figure 2 In the example of , the 3D geometry 38 is the geometry of an aircraft. For a plurality of different source antenna positions 40 and destination antenna positions 42 on the grid 30, ray paths 60 including corresponding geodesic paths 62 and free space paths 64 are shown. Figure 2 The geodesic path 62 shown in FIG. 6 is a creeping wave propagating along the surface of the 3D geometric shape 38. The free space path 64 is taken by a wave propagating in free space. Figure 2 Further shown is a close-up view of a portion of mesh 30 (including a plurality of nodes 32 and a plurality of edges 34 ).
[0034] Figure 3 An example ray path 60 is schematically shown in additional detail. The ray path 60 includes a geodesic path 62 that extends along the surface of the grid 30 from the source antenna location 40 to a launch point 66. At the launch point 66, the ray path 60 exits the surface of the grid 30 and travels through free space to the destination antenna location 42, forming a free space path 64. Figure 3Further shown are the unit vector (b, t, n) associated with the transmit point 66 and the unit vector (b′, t′, n′) associated with the source antenna location 40 . These unit vectors are arranged so that n and n′ are normal vectors to the surface of the grid 30 .
[0035] Techniques for calculating ray paths 60 are discussed below.
[0036] Heat Transfer and AI / ML
[0037] A thermal method algorithm has been proposed in the following document: K. Crane, C. Weischedel and M. Wardetzky, "Geodesics in Heat: A New Approach to Computing Geodesics based on Heat Flow", ACM Transactions on Graphics, Vol. 32, No. 5, Article 152, October 8, 2013, the entire disclosure of which is incorporated herein by reference. The thermal method algorithm can be used to calculate the geodesic distance to a point or curve in a given domain. According to the thermal method algorithm, a thermal vector field is determined, and then the thermal vector field is used to find the geodesic path between two points along the surface of a geometric shape. The heat transfer method is able to quickly find geodesic paths on complex two-dimensional mesh geometries. However, a disadvantage of the thermal method is that it tends to propagate only along the surface of the geometric shape. The thermal method does not calculate free space paths64. Therefore, as Figure 3 As shown, the thermal method also does not identify the emission point 66 .
[0038] Figure 4 The computing system 10 is schematically illustrated when the processor 14 is configured to calculate the geodesic path 62 using the thermal method and the trained neural network 52. The processor 14 is configured to execute the numerical solver 56 included in the ray path calculation module 50. At the numerical solver 56, the processor 14 is configured to calculate the thermal vector field 90 over the grid 30. The thermal vector field 90 may indicate the electromagnetic wave propagation distance of a point on the grid 30 from the source antenna location 40 or the destination antenna location 42.
[0039] When the search domain is discretized into a grid 30, the calculation of the geodesic path 62 is equivalent to finding the shortest path in a graph with nodes and edges. If the exact distances of the edges can be calculated, the graph can be represented as a weighted graph. The problem of calculating the shortest distance between two points is equivalent to finding the shortest path from a source node to a destination node in a weighted graph. On the other hand, if the edge distances are not available, the calculation of the geodesic path 62 is equivalent to searching for the shortest path between two nodes in an unweighted graph. Using the thermal method, the distance between the node pairs 32 can be calculated, and the calculation of the geodesic path 62 is equivalent to finding the shortest path in the weighted graph.
[0040] exist Figure 4 In the example of FIG. 1 , the processor 14 is configured to compute the heat vector field 90 at least in part by solving a heat equation 92 over the grid 30. The heat equation is given as follows:
[0041]
[0042] In the above equation, u is the heat function, is the time derivative of u, and Δu is the Laplacian of u. The processor 14 is configured to solve the heat equation 92 at the numerical solver 56 to obtain a gradient 94 over the grid 30 .
[0043] The processor 14 is also configured to normalize the gradient 94 to obtain a normalized gradient 96. The normalized gradient may be calculated as follows:
[0044]
[0045] In the above example, processor 14 is also configured to invert the sign of gradient 94 when calculating normalized gradient 96 .
[0046] The processor 14 is also configured to numerically solve the Poisson equation 98 on the normalized gradient 96 to obtain the heat vector field 90. The Poisson equation 98 is given as follows:
[0047]
[0048] In the above equation, φ is the thermal vector field 90.
[0049] At the numerical solver 56, the heat vector field 90 may be calculated in a time discretized form. The heat equation 92 may be discretized as follows:
[0050]
[0051] In the above equation, u tis the value of u at the current time step, u0 is the value of u at the previous time step, and t is the time step length. The heat equation 92 can alternatively be rewritten as a linear elliptic equation in the following form:
[0052] (id-tΔ)u t =u0
[0053] In the above equation, id is the identity matrix. Processor 14 is configured to efficiently compute an estimate of heat vector field 90 by solving heat equation 92 in a discretized form.
[0054] The processor 14 is also configured to calculate the geodesic path 62 at the trained neural network 52 based at least in part on the heat vector field 90. In recent years, deep neural networks, which can have millions of internal parameters, have been developed to model problems in many domains. Several methods have been proposed for finding the shortest distance in a graph. The machine learning methods discussed below use deep neural networks in this manner. These methods are based on pre-selected or pre-generated data sets with known results (ground truth). The neural network is then trained on these data sets. In the example discussed below, the neural network is trained to calculate the shortest path in the graph. The trained neural network 52 can then be used to estimate the calculation of the ray path 60 from the source antenna position 40 to the destination antenna position 42 at inference time.
[0055] The trained neural network 52 has been trained to identify the geodesic path 62 on the grid 30 when given the source antenna position 40, the destination antenna position 42, and the heat vector field 90 as input. For example, the trained neural network 52 can be a graph neural network (GNN) 52A, a graph convolutional neural network (GCNN) 52B, a recurrent neural network (RNN) 52C, or a transformer network 52D. The training of the trained neural network 52 is discussed in further detail below. Thus, the processor 14 is configured to generate the geodesic path 62 in a more computationally efficient manner than conventional backtracking methods. Figure 4 The method is about an order of magnitude faster than backtracking while maintaining or even improving accuracy.
[0056] Because the trained neural network 52 is derived from a training data set, the trained neural network 52 has associated uncertainty compared to deterministic methods such as Dijkstra's algorithm (discussed below). For example, uncertainty in the output of the trained neural network 52 may occur due to a lack of training data (epistemic uncertainty) and / or due to the distribution of the sampled data (accidental uncertainty). The uncertainty of the trained neural network 52 can be estimated and calibrated using techniques such as Monte Carlo Dropout, deep ensembles, or deep Bayesian active learning. Through uncertainty quantification, the trained neural network 52 can report predictions with confidence estimates. Therefore, the trained neural network 52 can be configured to quantify the uncertainty of its output that estimates the shortest ray path 60.
[0057] Figure 5 The computing system 10 is schematically shown when training the neural network 100 to obtain the trained neural network 52. Figure 5 As shown in the example of , the training data set 102 can be generated by an existing backtracking algorithm 110. Additionally or alternatively, a greedy search algorithm 80 such as Dijkstra's algorithm can be used to generate the training data set 102. Generating the training data set 102 includes calculating training shortest path data 107 associated with the grid 30. The training shortest path data 107 includes a plurality of training shortest paths 108 between corresponding training source antenna positions 104 and training destination antenna positions 106 on the grid 30.
[0058] Processor 14 is further configured to train neural network 100 using training source antenna positions 104, training destination antenna positions 106, and training shortest path data 107 to obtain trained neural network 52. Trained neural network 52 may then be used to efficiently calculate the approximate shortest distance between source antenna position 40 and destination antenna position 42, as described above.
[0059] Graph Neural Networks (GNNs)
[0060] Using the GNN approach (e.g., see FS Rizi, J. Schloetterer, and M. Granitzer, “Shortest Path Distance Approximation using Deep learning Techniques,” 2018 IEEE / ACM International Conference on Advances in Social Networks Analysis and Mining (ASONAM), the entire disclosure of which is incorporated herein by reference), the neural network 100 can be trained to learn the embedding of the distances (i.e., edge lengths) between nodes 32 in the approximate graph. The training is performed for a given geometry. In the case of an aircraft simulation, for example, for a given grid 30 of the 3D geometry 38 of a given aircraft, a GNN 52A is trained using a training data set 102 calculated by other methods. After training, the GNN 52A can be used to infer (predict) the shortest path between two locations on the aircraft. Once the GNN 52A has been trained and validated, the GNN approach can be highly efficient in calculating the distance from the source antenna position 40 to the destination antenna position 42.
[0061] The GNN complexity (for inference only, not including training) is:
[0062] If the path passes through m points, it is O(1) or O(m)
[0063] The GNN approach may be useful when the exact distance between nodes 32 in the graph is unavailable or is expensive to compute. The thermal approach described above may be used to efficiently and accurately compute the distance between two points on a surface in such an example.
[0064] Graph Convolutional Neural Network (GCNN)
[0065] Convolutional neural networks (CNNs), which are commonly used in computer vision applications such as facial recognition and autonomous driving, have also been applied to find the shortest path in a graph (e.g., see K. Osanlou, C. Guettier, A. Bursuc, T. Cazenave, E. Jacopin, "Constrained shortest path search with graph convolutional neural networks" published on arxiv.org in August 2021). Such neural networks are called graph convolutional neural networks (GCNNs). Similar to the GNN approach, a training data set 102 with known results (ground truth) is used for model training. The trained GCNN 52B can then be used to predict the shortest path from one node to another in the graph.
[0066] One advantage of using GCNN 52B is the high efficiency of predictions from the trained model. A potential disadvantage of this approach is that the trained GCNN 52B is typically specialized for the geometry of the graphs that generated its training dataset 102.
[0067] Recurrent Neural Networks (RNNs)
[0068] A method for determining the shortest paths in a graph using an RNN was also developed and tested (see D. Mack, “Finding shortest paths with graph neural networks,” Octavian. AI, 2019, the disclosure of which is incorporated herein by reference). In the prediction after model training, the results show performance similar to that of Dijkstra's algorithm. The RNN method has a similar disadvantage to the GCNN method, that is, the RNN 52C must typically be retrained for each different graph geometry. However, similar to the GCNN method, the RNN method also allows for efficient ray path calculations after training.
[0069] As described above, the transformer network 52D can be used in some examples as the trained neural network 52. In some examples, the transformer network approach can be combined with the GNN approach.
[0070] Dijkstra algorithm plus heat method
[0071] Figure 6A computing system 10 is schematically shown in an example in which a thermal method is used together with a Dijkstra algorithm 84 (rather than a trained neural network 52). By using the thermal method, the exact distance between a source point and a destination point on a surface can be calculated at the numerical solver 56 by solving a partial differential equation equivalent to a heat transfer problem, as described above. Therefore, the calculation of the geodesic path 62 is equivalent to finding the shortest path between two nodes 32 in a weighted graph. The Dijkstra algorithm (Dijkstra 1959, Jasika et al. 2012) has been widely used in applications such as online maps to calculate the shortest distance between two nodes in a weighted graph (i.e., the shortest driving direction from one city to another). The algorithm does not perform backtracking to re-evaluate the distance. Instead, the Dijkstra algorithm 84 is an example of a greedy search algorithm 80 calculated on a grid 30.
[0072] If the exact distance between any two nodes 32 is available, the results of applying Dijkstra's algorithm 84 can be considered exact. By using the thermal method, the exact distance between two points on the grid 30 can be calculated. The processor 14 can utilize a combination of Dijkstra's algorithm 84, the thermal method, and the gridding algorithm to efficiently and accurately search for the shortest ray path.
[0073] In contrast to machine learning based approaches, the Dijkstra algorithm is physically based and does not require the creation of data sets for model training, validation, and testing. The grid 30 and the Dijkstra algorithm 84 can be used to find the launch point 66 where the ray path 60 leaves the surface of the grid 30. The ray path distance above the surface can be calculated by the heat vector method between the source antenna location 40 and the launch point 66. In such an example, the shortest ray path 60 is located along the node 32 returned by the Dijkstra algorithm 84. The sum of the distances along the shortest path is equal to the shortest distance from the source antenna location 40 to the launch point 66, as calculated using the distance included in the heat vector field 90.
[0074] Dijkstra Algorithm Complexity
[0075] The worst case time complexity of Dijkstra's algorithm in the simplest implementation case is:
[0076] O(v 2 ), where v = the number of edges
[0077] There are variations of Dijkstra's algorithm, such as using data structures (such as heaps) to store partial results, which can perform better with the following worst-case time complexity:
[0078] O(v+n*log(n)), where v = number of edges, and n = number of nodes
[0079] The average case time complexity is:
[0080] O(v+n*log(v / n)*log(n)), where v = number of edges, and n = number of nodes
[0081] Thus, Dijkstra's algorithm 84 generally has a higher time complexity than neural network inference, but does not involve training a neural network. Thus, Dijkstra's algorithm 84 is well suited for ray path calculations in examples where a small number of ray paths 60 are calculated.
[0082] Eikonal equations and AI / ML
[0083] Figure 7 The computing system 10 is schematically shown in an example in which the processor 14 is configured to approximate the solution of the Eikonal equation 200 at the numerical solver 56. The Eikonal equation 200 is given by the following partial differential equation:
[0084]
[0085] where the boundary condition u(x0)=0. Here, x0 is the source antenna location 40, and Ω is the mesh 30. The solution to the Eikonal equation 200 can be interpreted as a distance function to x0 in a given domain. The solution can be backtracked to compute the shortest path between antenna locations (M. Natali, M. Attene, and G. Ottonello, "Steepest descent paths on simple meshes of arbitrary dimensions," Comput. Graph. 37(6):687-696, 2013, the disclosure of which is incorporated herein by reference). This method suffers from numerical inaccuracies near the source location and any location where the path may be kinked because the solution at these locations is singular.
[0086] In order to solve the above challenges using the Eikonal equation method, the present disclosure provides a path straightening method. In this method, the processor 14 is configured to iteratively straighten the path according to the segment type. The path straightening method also uses the method in the following literature to find the shortest path between the endpoints of the geodesic path 62: N. Sharp and K. Crane, "You can find geodesic paths in triangle meshes by just flipping edges," ACM Trans. Graph. 39, 6 Article 29, 2020, the disclosure of which is incorporated herein by reference.
[0087] In the present method, the Eikonal equation 200 is solved for each source antenna. Therefore, it is advantageous to reduce the computational resources consumed (processor cycles and amount of memory) and the clock time required to solve the Eikonal equation 200. However, solving the Eikonal equation on a tetrahedral domain is computationally expensive and involves solving a large nonlinear system of equations. In contrast, the present method utilizes a fast marching method (FMM) 82 to numerically solve the Eikonal equation 200 (see, e.g., JNTsitsiklis, "Efficient algorithms for globally optimal trajectories," Proceedings of 1994 33rd IEEE Conference on Decision and Control, pp. 1368-1373 vol. 2, 1994; and JASethian, "A Fast Marching Level Set Method for Monotonically Advancing Fronts," Proc. Nat. Acad. Sci., 93, 4, pp. 1591-1595, 1996, the disclosures of each of which are incorporated herein by reference). Similar to Dijkstra's algorithm 84, FMM 82 is an example of a greedy search algorithm 80. FMM 82 is a generalization of Dijkstra's algorithm 84 that advances solutions from "acceptable" nodes of the domain to "unvisited" regions of the domain and uses a "narrowband" data structure to keep track of nodes 32 that are candidates for subsequent updates. FMM 82 differs from prior methods in that FMM 82 uses a first-order upwind scheme to approximate the solution at a given node 32.
[0088] Because heaps are used to organize narrowbands, FMM 82 has a complexity of O(NlogN). For fine tetrahedral meshes, the complexity may grow very quickly. Due to the method's marching method and the use of heap structures, FMM 82 is serial. However, techniques and methods for parallelizing Eikonal solvers have been proposed. For example, Ganellari et al. introduced a parallelizable solver with low memory usage based on a fast iterative method (FIM) (e.g., see D. Ganellari, G. Haase, and G. Zumbusch, "A massively parallel Eikonals solver on unstructured meshes," Computing and Visualization in Science, vol 19, 2018; and Z. Fu, R. Kirby, and R. Whitaker, "A fast iterative method for solving the Eikonalequation on tetrahedral domains," SIAM J. Sci. Comput. 35(5), C473-C494, 2013, the disclosures of each of which are incorporated herein by reference).
[0089] Figure 8 The computing system 10 is schematically shown when the processor 14 is configured to approximate the solution of the Eikonal equation 200 at the trained neural network 52. Recently, several deep learning methods have been proposed to solve the Eikonal equation 200. One method relies on the FMM 82 and replaces the local numerical solver with a trained neural network. (See M. Lichtenstein, G. Pai, & R. Kimmel, "Deep Eikonal solvers," Scale Space and Variational Methods in Computer Vision, 38-50, 2019). However, this method uses the same update scheme as the FMM 82 and does not provide reduced computational complexity. Instead, Figure 8The example utilizes an implementation of EikoNet 202 introduced by Smith et al. in 2021. (See J. Smith, K. Azizzadenesheli, Z. Ross, “EikoNet: Solving the Eikonal equation with Deep Neural Networks,” IEEE Trans. On Geoscience and Remote Sensing. 59, 12, 10685-10696, 2021, the disclosure of which is incorporated herein by reference).
[0090] EikoNet 202 is a gridless method that allows for fast computation of the distance between any two points in a continuous domain. Neural networks can be trained without requiring solutions computed using finite difference methods. EikoNet 202 is also parallelizable and has low memory overhead. As described above, the solution to the Eikonal equation 200 has strong singularities at the source locations. Therefore, EikoNet 202 uses a factorized formulation of the equation that mitigates the effects of the singularities.
[0091] The EikoNet method assumes that the solution to the Eikonal equation 200 can be factorized into the following form:
[0092] u(x)=u0(x)τ(x)
[0093] Where u0(x) = |x-x0| and τ is the correction factor. Substituting the factorized solution into the partial differential equation yields:
[0094]
[0095] In the EikoNet method, the processor 14 trains the neural network 100 to predict τ by calculating the gradient of the distance field analytically using the differentiability of the neural network. The neural network 100 is trained to minimize the difference between the true velocity model and the predicted velocity model of the factorized Eikonal equation. EikoNet has been shown to produce solutions consistent with the FMM 82.
[0096] There are potential technical advantages to using EikoNet to calculate the ray path 60 between the source antenna location 40 and the destination antenna location 42. One advantage comes from using the factorized Eikonal equations. By having a more accurate solution near the singular point at the source location, the backtracking portion of the disclosed method (discussed below) produces a more accurate solution, reducing the number of iterations in the path straightening algorithm.
[0097] Another advantage is that once the neural network 100 is trained, the Eikonal equations 200 are no longer needed. Instead, the processor 14 can calculate the solution for any pair of source-receiver positions. For example, not having to solve the Eikonal equations 200 after training provides a significant advantage for simulations related to aircraft, as such simulations typically involve calculating the distances between many antenna pairs on an aircraft. The trained neural network 52 can be trained once for each 3D geometry 38 and can then be used to obtain each ray path 60 calculated for that geometry.
[0098] Back to Figure 1 In the example of FIG. 6 , the processor 14 is further configured to calculate a free space path 64 . The free space path 64 may be calculated at least in part by performing ray tracing from a launch point 66 located at an endpoint of the geodesic path 62 . Figure 1 A ray tracing module 54 is shown included in the ray path calculation module 50 accordingly. At the ray tracing module 54, the processor 14 may perform a backtracking from the destination antenna location 42 to the launch point 66, for example, by performing a brute force search. In the brute force search, the processor 14 may identify the launch point 66 that results in the shortest overall length of the ray path 60 (including both the geodesic path 62 and the free space path 64). Thus, the processor 14 is configured to calculate the shortest ray path 60 for the source-destination pair.
[0099] The processor 14 is also configured to output the ray path 60 to an additional computation process 70 . Fig. 9 An example of a computing system 10 is schematically shown in which the additional computing process 70 is a geometric theory of diffraction (GTD) or uniform theory of diffraction (UTD) simulation module 111 or 112. At the GTD or UTD simulation module 111 or 112, the processor 14 is also configured to estimate a diffracted electromagnetic field 116 by performing a GTD or UTD simulation of the 3D geometric shape 38 based at least in part on the ray path. The GTD or UTD simulation is a simulation of electromagnetic waves traveling between a source antenna location 40 and a destination antenna location 42. The processor 14 is configured to estimate the diffracted electromagnetic field 116 in a spatial region 114 surrounding the 3D geometric shape 38, the spatial region 114 including areas on the surface of the grid 30 and outside the grid 30.
[0100] The GTD / UTD simulation module 111 or 112 is also configured to output an estimate of the diffracted electromagnetic field 116. In some examples, the GTD / UTD simulation module 111 or 112 is configured to output the diffracted electromagnetic field 116 to a design application 118. At the design application 118, the processor 14 is configured to provide a computer-aided design (CAD) interface 120, via which a user can select characteristics of the structure. For example, a user can define and modify the 3D geometry 38 at the CAD interface 120, and such modifications can be informed by the estimate of the diffracted electromagnetic field 116. Therefore, the electromagnetic simulation performed at the GTD / UTD simulation module 111 or 112 can be included in an iterative design process, through which a user selects characteristics of the structure.
[0101] Because the above-described techniques allow ray paths 60 to be calculated more efficiently than via previous methods, and because ray paths 60 are used as input to GTD / UTD simulation modules 111 or 112, the above-described ray path calculation methods may allow a user to more quickly develop 3D geometry 38. Furthermore, because of the increased accuracy of ray path calculations that may be achieved using the above-described methods, the electromagnetic properties of a structure may be more accurately estimated, which may reduce the amount of experimentation required when designing a structure.
[0102] Fig. 10A A flow chart of a method 300 for use with a computing system to compute ray paths is shown. At step 302, the method 300 includes receiving a mesh of 3D geometry. As non-limiting examples, the 3D geometry may be the geometry of a vehicle, a satellite, or a geographic area including a communication tower. The mesh includes a plurality of nodes connected by a plurality of edges. In some examples, the mesh is a weighted graph in which edge weights associated with the plurality of edges indicate distances between pairs of nodes. In other examples, the mesh is an unweighted graph.
[0103] At step 304, method 300 also includes receiving a source antenna position and a destination antenna position on a grid. The source antenna position and the destination antenna position are endpoints of ray paths between which electromagnetic wave propagation is simulated. The source antenna position and the destination antenna position are designated as nodes of the grid.
[0104] At step 306, method 300 also includes calculating a ray path as an estimated shortest path between the source antenna location and the destination antenna location. The ray path includes a geodesic path on the grid and a free space path outside the grid. The geodesic path and the free space path are two segments of the ray path that intersect at a launch point. The launch point is a node in the grid where the ray path leaves or enters the grid surface. In some examples, the ray path includes two geodesic paths at respective ends of the free space path.
[0105] Step 306 includes steps 308 and 310, which are performed during the calculation of the ray path. At step 308, calculating the ray path includes calculating a geodesic path. Fig. 10A In an example of , the geodesic path is calculated at least in part by performing inference at a trained neural network. When performing step 308, the source antenna position, the destination antenna position, and the grid can be used as inputs to the trained neural network inference. For example, the trained neural network can be a graph neural network (GNN), a graph convolutional neural network (GCNN), a recurrent neural network (RNN), or a transformer network. In some examples, the trained neural network is an EikoNet model that is trained to approximate the solution of the Eikonal equation.
[0106] At step 310, step 306 also includes computing the free space path at least in part by performing ray tracing from launch points located at endpoints of the geodesic path. For example, performing ray tracing at step 310 may include performing a brute force search on potential launch points located along the geodesic path to determine the launch point that achieves the shortest overall path length.
[0107] At step 312, method 300 also includes outputting the ray paths to an additional computational process. In some examples, the ray paths are output to an electromagnetic simulation module.
[0108] Fig. 10B 308. In some examples, additional steps of method 300 are shown that are performed when calculating the geodesic path at step 308. At step 314, step 308 includes calculating the heat vector field over the grid. Fig. 10B In the example of , calculating the heat vector field at step 314 includes solving the heat equation on the grid to obtain the gradient at step 316. Step 314 also includes normalizing the gradient at step 318. At step 320, step 314 also includes solving the Poisson equation on the normalized gradient to obtain the heat vector field. After calculating the heat vector field, step 308 also includes calculating a geodesic path based at least in part on the heat vector field at the trained neural network at step 322. Fig. 10B In the example of FIG. 4 , the heat vector field, the source antenna position, and the destination antenna position can be used as input to the trained neural network.
[0109] Fig. 10CAdditional steps of method 300 that may be performed to obtain a trained neural network are shown. At step 324, method 300 also includes calculating training shortest path data associated with the grid. The training shortest path data includes a plurality of training shortest paths between corresponding training source antenna positions and training destination antenna positions. For example, a backtracking or greedy search algorithm may be used to obtain the training shortest path data. At step 326, method 300 also includes training the neural network using the training source antenna positions, the training destination antenna positions, and the training shortest path data. Thus, the neural network is trained to output an estimated shortest path over the grid.
[0110] Fig. 10D Additional steps of method 300 that can be performed in an example where the additional computational process is a GTD or UTD simulation module are shown. At step 328, method 300 also includes estimating the diffracted electromagnetic field based at least in part on the ray path at the GTD or UTD simulation module. The diffracted electromagnetic field is estimated in a spatial region around the three-dimensional geometric shape. At step 330, method 300 also includes outputting an estimate of the diffracted electromagnetic field. For example, the diffracted electromagnetic field can be output to a design application where a CAD interface is presented to a user.
[0111] Fig.10E Example steps performed in some examples when computing ray paths as an alternative to performing inference at a trained machine learning model are shown. At step 332, step 306 may include computing geodesic paths at least in part by performing a greedy search algorithm on a grid.
[0112] In some examples, step 332 includes steps 334 and 336, while in other examples, step 332 includes step 338. In an example where the greedy search algorithm is the Dijkstra algorithm, steps 334 and 336 are performed. At step 334, step 332 may include calculating corresponding weights associated with the edges of the mesh at least in part by calculating a heat vector field over the mesh. Fig. 10B The heat vector field is calculated as discussed above. Step 332 may also include inputting the weights indicated by the heat vector field into the Dijkstra algorithm at step 336. Thus, a geodesic path is calculated by performing path finding through a weighted grid.
[0113] In other examples, step 332 includes step 338. At step 338, method 300 also includes performing a fast marching method (FMM) on the grid. FMM is another example of a greedy search algorithm and is used in such examples to estimate solutions to the Eikonal equation. In some examples, a fast iterative method (FIM) can be used to parallelize some parts of the FMM, thereby allowing faster calculation of geodesic paths.
[0114] in conclusion
[0115] The GTD / UTD method is suitable for calculating the impact of radar and antenna systems on electromagnetic large structures. However, its application is limited by the inefficiency of the ray path search algorithm on which GTD / UTD is based. The system and method of the present disclosure utilizes AI / ML as well as thermal methods and Eikonal equation methods to accelerate the ray path calculation by an estimated order of magnitude or more while improving the accuracy of the calculated ray paths. Therefore, compared with existing ray path calculation methods, the system and method of the present disclosure is faster and more accurate, and is therefore able to handle significantly more complex electromagnetic large geometries.
[0116] The methods and processes described herein are associated with a computing system of one or more computing devices. In particular, such methods and processes can be implemented as computer applications or services, application programming interfaces (APIs), libraries, and / or other computer program products.
[0117] Fig.11 A non-limiting embodiment of a computing system 400 is schematically shown, which can implement one or more of the above methods and processes. The computing system 400 is shown in simplified form. The computing system 400 can embody the above description and Figure 1 Components of computing system 400 may be included in one or more personal computers, server computers, tablet computers, home entertainment computers, network computing devices, video gaming devices, mobile computing devices, mobile communication devices (e.g., smartphones), and / or other computing devices, as well as wearable computing devices such as smart watches and head-mounted augmented reality devices.
[0118] The computing system 400 includes a processing circuit 402, a volatile memory 404, and a non-volatile storage device 406. The computing system 400 may optionally include a display subsystem 408, an input subsystem 410, a communication subsystem 412, and / or Fig.11 Other components not shown.
[0119] Processing circuitry 402 typically includes one or more logical processors, which are physical devices configured to execute instructions. For example, a logical processor may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, convert the state of one or more components, implement a technical effect, or otherwise obtain a desired result.
[0120] The logical processor may include one or more physical processors configured to execute software instructions. Additionally or alternatively, the logical processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. The processor of the processing circuit 402 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential processing, parallel processing, and / or distributed processing. The individual components of the processing circuit 402 may optionally be distributed between two or more independent devices, which may be remotely located and / or configured for coordinated processing. For example, various aspects of the computing system 400 disclosed herein may be virtualized and executed by a remotely accessible networked computing device configured with a cloud computing configuration. In such a case, it is understood that these virtualization aspects are run on different physical logical processors of various different machines. These different physical logical processors of different machines will be understood to be covered by the processing circuit 402 together.
[0121] The non-volatile storage device 406 includes one or more physical devices configured to hold instructions executable by the processing circuit to implement the methods and processes described herein. When such methods and processes are implemented, the state of the non-volatile storage device 406 can be transformed—for example, to hold different data.
[0122] The non-volatile storage device 406 may include a removable and / or built-in physical device. The non-volatile storage device 406 may include an optical memory, a semiconductor memory, and / or a magnetic memory, or other mass storage device technology. The non-volatile storage device 406 may include a non-volatile, dynamic, static, read / write, read-only, sequential access, location addressable, file addressable, and / or content addressable device. It will be understood that the non-volatile storage device 406 is configured to retain instructions even when the non-volatile storage device 406 is powered off.
[0123] Volatile memory 404 may include a physical device that includes random access memory. Volatile memory 404 is typically used by processing circuit 402 to temporarily store information during processing of software instructions. It will be understood that when volatile memory 404 is powered off, volatile memory 404 typically does not continue to store instructions.
[0124] Aspects of processing circuitry 402, volatile memory 404, and non-volatile storage device 406 may be integrated together into one or more hardware logic components. For example, such hardware logic components may include field programmable gate arrays (FPGAs), program and application specific integrated circuits (PASIC / ASIC), program and application specific standard products (PSSP / ASSP), systems on chips (SOCs), and complex programmable logic devices (CPLDs).
[0125] The terms "module", "program", and "engine" may be used to describe an aspect of the computing system 400 that is typically implemented in software by a processor to use portions of volatile memory to perform a specific function that involves a transformation process that specifically configures the processor to perform the function. Thus, a module, program, or engine may be instantiated by executing instructions held by a non-volatile storage device 406 via processing circuitry 402 using portions of volatile memory 404. It will be understood that different modules, programs, and / or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, and the like. Likewise, the same module, program, and / or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, and the like. The terms "module", "program", and "engine" may cover individual or grouped executable files, data files, libraries, drivers, scripts, database records, and the like.
[0126] When included, the display subsystem 408 can be used to present a visual representation of the data held by the non-volatile storage device 406. The visual representation can take the form of a graphical user interface (GUI). Since the methods and processes described herein change the data held by the non-volatile storage device, and thus transform the state of the non-volatile storage device, the state of the display subsystem 408 can likewise be transformed to visually represent the change of the underlying data. The display subsystem 408 can include one or more display devices utilizing almost any type of technology. Such a display device can be combined in a shared housing with the processing circuit 402, the volatile memory 404, and / or the non-volatile storage device 406, or such a display device can be a peripheral display device.
[0127] When included, input subsystem 410 may include or be connected to one or more user input devices (e.g., a keyboard, a mouse, a touch screen, a camera, or a microphone).
[0128] When included, the communication subsystem 412 can be configured to communicatively couple the various computing devices described herein to each other and to other devices. The communication subsystem 412 may include wired and / or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem can be configured to communicate via a wired or wireless local or wide area network, a broadband cellular network, or the like. In some embodiments, the communication subsystem can allow the computing system 400 to send messages to and / or receive messages from other devices via a network such as the Internet.
[0129] Furthermore, the present disclosure includes configurations described according to the following clauses.
[0130] Item 1. A computing system comprising: a processor configured to: receive a grid of a three-dimensional geometry; receive a source antenna position and a destination antenna position on the grid; compute a ray path as an estimated shortest path between the source antenna position and the destination antenna position; and output the ray path to an additional computing process, wherein: the ray path includes a geodesic path on the grid and a free space path outside the grid; and the ray path is computed at least in part by: computing the geodesic path at least in part by performing inference at a trained neural network; and computing the free space path at least in part by performing ray tracing from a launch point at an endpoint of the geodesic path.
[0131] Clause 2. The computing system of clause 1, wherein the processor is configured to compute the geodesic path at least in part by: computing a heat vector field over the grid; and computing the geodesic path at the trained neural network based at least in part on the heat vector field.
[0132] Clause 3. A computing system according to clause 2, wherein the processor is configured to compute the heat vector field at least in part by: solving the heat equation on the grid to obtain gradients; normalizing the gradients; and solving the Poisson equation on the normalized gradients to obtain the heat vector field.
[0133] Clause 4. A computing system according to any of clauses 1-3, wherein the trained neural network is a graph neural network (GNN), a graph convolutional neural network (GCNN), a recurrent neural network (RNN), or a transformer network (52D).
[0134] Clause 5. The computing system of clause 1 or 4, wherein the trained neural network is an EikoNet model trained to approximate solutions to Eikonal equations.
[0135] Clause 6. The computing system of any of clauses 1-5, wherein the grid is a weighted graph in which edge weights associated with a plurality of edges indicate distances between pairs of nodes.
[0136] Clause 7. The computing system of any of clauses 1-5, wherein the grid is an unweighted graph.
[0137] Clause 8. A computing system according to any of clauses 1-7, wherein the processor is further configured to: calculate training shortest path data associated with the grid, wherein the training shortest path data includes multiple training shortest paths between corresponding training source antenna positions and training destination antenna positions; and train a neural network using the training source antenna positions, the training destination antenna positions, and the training shortest path data.
[0138] Clause 9. A computing system according to any of clauses 1-8, wherein: the additional computing process is a geometric theory of diffraction (GTD) or uniform theory of diffraction (UTD) simulation module; at the GTD or UTD simulation module, the processor is also configured to: estimate the diffracted electromagnetic field in a spatial region around a three-dimensional geometric shape based at least in part on the ray path; and output an estimate of the diffracted electromagnetic field.
[0139] Clause 10. The computing system of any of clauses 1-9, wherein the three-dimensional geometric shape is the geometry of: a vehicle; a satellite; or a geographic area including a communication tower.
[0140] Item 11. A method for use with a computing system, the method comprising: receiving a grid of a three-dimensional geometry; receiving a source antenna position and a destination antenna position on the grid; computing a ray path as an estimated shortest path between the source antenna position and the destination antenna position; and outputting the ray path to an additional computing process, wherein: the ray path includes a geodesic path on the grid and a free space path outside the grid; and the ray path is computed at least in part by: computing the geodesic path at least in part by performing inference at a trained neural network; and computing the free space path at least in part by performing ray tracing from a launch point located at an endpoint of the geodesic path.
[0141] Clause 12. The method of clause 11, wherein computing the geodesic path comprises: computing a heat vector field over the grid; and computing the geodesic path at the trained neural network based at least in part on the heat vector field.
[0142] Clause 13. The method of clause 11 or 12, wherein the trained neural network is a graph neural network (GNN), a graph convolutional neural network (GCNN), a recurrent neural network (RNN), or a transformer network.
[0143] Clause 14. The method of clause 11 or 13, wherein the trained neural network is an EikoNet model trained to approximate solutions to Eikonal equations.
[0144] Clause 15. The method according to any one of clauses 11-14 further includes: calculating training shortest path data associated with the grid, wherein the training shortest path data includes multiple training shortest paths between corresponding training source antenna positions and training destination antenna positions; and training a neural network using the training source antenna positions, training destination antenna positions and the training shortest path data.
[0145] Clause 16. A method according to any one of clauses 11-15, wherein: the additional computational process is a geometric theory of diffraction (GTD) or uniform theory of diffraction (UTD) simulation module; the method also includes, at the GTD or UTD simulation module: estimating the diffracted electromagnetic field in a spatial region around a three-dimensional geometric shape based at least in part on the ray path; and outputting an estimate of the diffracted electromagnetic field.
[0146] Item 17. A computing system comprising: a processor configured to: receive a grid of a three-dimensional geometric shape; receive a source antenna position and a destination antenna position on the grid; calculate a ray path as an estimated shortest path between the source antenna position and the destination antenna position; and output the ray path to an additional computing process, wherein: the ray path includes a geodesic path on the grid and a free space path outside the grid; and the ray path is calculated at least in part by: calculating the geodesic path at least in part by performing a greedy search algorithm on the grid; and calculating the free space path at least in part by performing ray tracing from a launch point located at an endpoint of the geodesic path.
[0147] Clause 18. The computing system of Clause 17, wherein the greedy search algorithm is Dijkstra's algorithm.
[0148] Clause 19. A computing system according to clause 18, wherein the processor is further configured to: calculate corresponding weights associated with edges of the mesh at least in part by calculating a heat vector field over the mesh; and use the weights as input to Dijkstra's algorithm when calculating geodesic paths.
[0149] Clause 20. The computing system of Clause 17, wherein the greedy search algorithm is a fast marching method (FMM).
[0150] As used herein, "and / or" is defined as an inclusive relation, or, as specified by the following truth table:
[0151] A B A∨B real real real real Fake real Fake real real Fake Fake Fake
[0152] It will be understood that the configurations and / or methods described herein are exemplary in nature, and these specific embodiments or examples should not be considered in a restrictive sense, as many variations are possible. Specific routines or methods described herein may represent one or more of any number of processing strategies. Therefore, the various actions shown and / or described may be performed in the order shown and / or described, in other orders, in parallel or omitted. Likewise, the order of the above process may be changed.
[0153] The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and / or properties disclosed herein, as well as any and all equivalents thereof.
[0154] Parts List
[0155] Computing system 10
[0156] Computing device 12
[0157] Processor 14
[0158] Memory 16
[0159] Storage Devices 18
[0160] Bus 20
[0161] Communication interface 22
[0162] User input device 24
[0163] Display 26
[0164] Grid 30
[0165] Node 32
[0166] Edge 34
[0167] Edge weight 36
[0168] 3D geometric shapes 38
[0169] Vehicle 38A
[0170] Satellite 38B
[0171] Geographic area including communication towers 38C
[0172] Source antenna position 40
[0173] Destination Antenna Location 42
[0174] Ray path calculation module 50
[0175] Trained neural network 52
[0176] Graph Neural Network 52A
[0177] Graph Convolutional Neural Network 52B
[0178] Recurrent Neural Network 52C
[0179] Converter Network 52D
[0180] Ray Tracing Module 54
[0181] Numerical Solver56
[0182] Ray Path 60
[0183] Geodesic Path 62
[0184] Free Space Path 64
[0185] Launch Point 66
[0186] Additional calculation process 70
[0187] Greedy Search Algorithm 80
[0188] Fast Marching Method 82 Dijkstra Algorithm 84
[0189] Heat Vector Field 90
[0190] Heat Equation 92
[0191] Gradient 94
[0192] Normalized Gradient 96
[0193] Poisson's equation 98
[0194] Neural Networks 100
[0195] Training data set 102 Training source antenna position 104 Training destination antenna position 106 Training shortest path data 107 Training shortest path 108
[0196] Backtracking algorithm 110 Geometric diffraction theory simulation module 111 Uniform diffraction theory simulation module 112 Spatial region 114
[0197] Diffraction Electromagnetic Field 116
[0198] Design applications 118 CAD interfaces 120 eikonal equations 200 trained neural networks 202 methods 300
[0199] Step 302
[0200] Step 304
[0201] Step 306
[0202] Step 308
[0203] Step 310
[0204] Step 312
[0205] Step 314
[0206] Step 316
[0207] Step 318
[0208] Step 320
[0209] Step 322
[0210] Step 324
[0211] Step 326
[0212] Step 328
[0213] Step 330
[0214] Step 332
[0215] Step 334
[0216] Step 336
[0217] Step 338
[0218] Computing System 400
[0219] Processing circuit 402
[0220] Volatile memory 404
[0221] Non-volatile storage device 406
[0222] Display subsystem 408
[0223] Input subsystem 410
[0224] Communication Subsystem 412
Claims
1. A computing system (10), comprising: A processor (14) configured to: Receiving a mesh (30) of a three-dimensional geometric shape (38); receiving a source antenna location (40) and a destination antenna location (42) on the grid; A ray path (60) is calculated as an estimated shortest path between the source antenna position and the destination antenna position, where: The ray paths include geodesic paths (62) above the grid and free space paths (64) outside the grid; and The ray path is calculated at least in part by: computing the geodesic path at least in part by performing inference at a trained neural network (52); and computing the free space path at least in part by performing ray tracing from launch points (66) located at endpoints of the geodesic path; and The ray paths are output to an additional computation process (70).
2. The computing system of claim 1 , wherein the processor is configured to compute the geodesic path at least in part by: calculating a heat vector field (90) over the grid; and At the trained neural network, the geodesic path is calculated based at least in part on the heat vector field.
3. The computing system of claim 2, wherein the processor is configured to compute the heat vector field at least in part by: solving a heat equation (92) on the grid to obtain a gradient (94); normalizing the gradient; and Poisson's equation (98) is solved on the normalized gradient to obtain the heat vector field.
4. The computing system of claim 1, wherein the trained neural network is a graph neural network (GNN) (52A), a graph convolutional neural network (GCNN) (52B), a recurrent neural network (RNN) (52C), or a transformer network (52D).
5. The computing system of claim 1, wherein the trained neural network is an EikoNet model (202) trained to approximate solutions to the Eikonal equations (200).
6. The computing system of claim 1, wherein the grid is a weighted graph in which edge weights (36) associated with a plurality of edges (34) indicate distances between pairs of nodes (32).
7. The computing system of claim 1, wherein the grid is an unweighted graph.
8. The computing system of claim 1 , wherein the processor is further configured to: calculating training shortest path data (107) associated with the grid, wherein the training shortest path data includes a plurality of training shortest paths (108) between corresponding training source antenna locations (104) and training destination antenna locations (106); and The neural network is trained using the training source antenna positions, the training destination antenna positions, and the training shortest path data.
9. The computing system of claim 1, wherein: The additional calculation process is a geometric diffraction theory GTD or uniform diffraction theory UTD simulation module (111, 112); At the GTD or UTD simulation module, the processor is further configured to: estimating a diffracted electromagnetic field (116) in a region of space (114) surrounding the three-dimensional geometric shape based at least in part on the ray path; and The estimate of the diffracted electromagnetic field is output.
10. The computing system of claim 1, wherein the three-dimensional geometric shape is a geometric shape of: Vehicle (38A); Satellite (38B); or The geographic area (38C) includes the communication towers.
11. A method (300) for use with a computing system, the method comprising: Receiving a mesh of a three-dimensional geometric shape (302); receiving a source antenna location and a destination antenna location on the grid (304); A ray path is calculated as the estimated shortest path between the source antenna location and the destination antenna location, where: The ray paths include geodesic paths on the grid and free space paths outside the grid (306); and The ray path is calculated at least in part by: computing the geodesic path at least in part by performing inference at a trained neural network (308); and computing the free space path at least in part by performing ray tracing from launch points located at endpoints of the geodesic path (310); and The ray paths are output to an additional computation process (312).
12. The method of claim 11, wherein calculating the geodesic path comprises: calculating a heat vector field over the grid (314); and At the trained neural network, the geodesic path is calculated based at least in part on the heat vector field (322).
13. The method of claim 11, wherein the trained neural network is a graph neural network (GNN), a graph convolutional neural network (GCNN), a recurrent neural network (RNN), or a transformer network.
14. The method of claim 11, wherein the trained neural network is an EikoNet model trained to approximate solutions to Eikonal equations.
15. The method according to claim 11, further comprising: calculating training shortest path data associated with the grid, wherein the training shortest path data includes a plurality of training shortest paths between corresponding training source antenna locations and training destination antenna locations (324); and The neural network is trained using the training source antenna positions, the training destination antenna positions, and the training shortest path data (326).
16. The method of claim 11, wherein: The additional calculation process is a geometric diffraction theory GTD or uniform diffraction theory UTD simulation module; The method further comprises, at the GTD or UTD simulation module: estimating a diffracted electromagnetic field in a region of space surrounding the three-dimensional geometric shape based at least in part on the ray paths (328); and The estimate of the diffracted electromagnetic field is output (330).
17. A computing system (10), comprising: A processor (14) configured to: Receiving a mesh (30) of a three-dimensional geometric shape (38); receiving a source antenna location (40) and a destination antenna location (42) on the grid; A ray path (60) is calculated as an estimated shortest path between the source antenna position and the destination antenna position, where: The ray paths include geodesic paths (62) above the grid and free space paths (64) outside the grid; and The ray path is calculated at least in part by: computing the geodesic path at least in part by executing a greedy search algorithm (80) over the grid; and computing the free space path at least in part by performing ray tracing from launch points (66) located at endpoints of the geodesic path; and The ray paths are output to an additional computation process (70).
18. The computing system of claim 17, wherein the greedy search algorithm is a Dijkstra algorithm (84).
19. The computing system of claim 18, wherein the processor is further configured to: computing respective weights (36) associated with edges (34) of the grid at least in part by computing a heat vector field (90) over the grid; and The weights are used as input to the Dijkstra algorithm when calculating the geodesic path.
20. The computing system of claim 17, wherein the greedy search algorithm is a fast marching method (FMM) (82).