Adaptive redundancy-extraction for 3D electromagnetic simulation of electronic systems

Redundancy extraction in electromagnetic simulation of an electronic device/system includes discretizing first and second spaced conductive layers of a computer model of an electronic device/system into first and second meshes M1 and M2. For each edge between cells of each mesh, a current flow across the edge in response to application of an exemplary bias to the geometry is determined. A square impedance matrix Z* is determined which, for each instance of equal magnitude and opposite direction current flows (EMODCF) in edges E1 and E2 of M1 and M2, has one less row and one less column than the total number of edges in M1 and M2. A voltage column vector V* is also determined which, for each instance of EMODCF, has one less row than the total number of edges in M1 and M2. A current column vector [I*]=[V*]/[Z*] is then determined.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to redundancy extraction in electromagnetic simulation of an electronic device/system and, more particularly, to reducing the size of the matrices that are utilized to simulate the electromagnetic response of the electronic device/system.

2. Description of Related Art

Simulating the electrical behavior of a device/system, especially electromagnetic behavior, requires numerical/computational techniques, such as the so-called method of moments (MOM) method. These methods solve Maxwell's equations for each conductive layer of a device/system.

In these electromagnetic modeling methods, the response that the device/system has to excitation(s), such as incident waves or currents that excite these elements is determined. In the first step of such modeling, the entire surface of the element is broken up into simple mesh elements, such as small rectangles or squares, or small triangles. This first step, routinely done in these techniques is called mesh generation.

The purpose of mesh generation is to discretize equations on each cell of the mesh, or on each edge between each pair of cells, and to approximately solve these equations on the mesh by converting Maxwell's equations to a matrix equation. These steps are commonly known as the method of moments (MOM) method. The matrix system associated with MOM can be a large, dense system. The storage of such a matrix system takes computer memory that scales as the square of N (i.e., N2) where the dimension of the matrix is N×N, i.e., a square matrix. The solution of this matrix utilizing standard methods takes time/CPU units proportional to the cube of N (i.e., N3).

What would, therefore, be desirable are a method, system, and computer readable medium that enables solutions of electromagnetic problems that reduces the size of the matrix system with the accompanying improvement in computational time to solve such matrices.

SUMMARY OF THE INVENTION

The invention is a computer-implemented method of redundancy extraction in electromagnetic simulation of an electronic device/system comprising: (a) a processor of a computer discretizing first and second spaced conductive layers of a computer model of a 3D geometry of an electronic device/system into a first mesh M1and second mesh M2, wherein each mesh includes a plurality of cells, and each pair of adjacent cells in each mesh is separated by an edge; (b) for each mesh, the processor estimating a magnitude and direction of current flow across each edge thereof in response to application of an exemplary bias to the geometry; (c) the processor determining at least one instance where one edge of M1and one edge of M2having a predetermined spatial relation to each other have equal magnitude and opposite direction current flows (EMODCF), wherein said at least one instance of EMODCF includes an edge E1of M1and an edge E2of M2; (d) the processor determining a square impedance matrix Z* which, for each instance of EMODCF in step (c), has one less row than the total number of edges in M1and M2and which, for each instance of EMODCF in step (c), has one less column than the total number of edges in M1and M2; (e) the processor determining a voltage column vector V* which, for each instance of EMODCF in step (c), has one less row than the total number of edges in M1and M2; and (f) the processor determining a current column vector [I*]=[V*]/[Z*].

Subject to the impedance matrix Z* of step (d) not including a row of cells and a column of cells related to either edge E1or edge E2, the cells of impedance matrix Z* can include impedance values Zi,j, wherein i and j are separately indexed from 1 to n, where n=the total number of edges in M1and M2; and each impedance value Zi,j, is determined from a potential or voltage estimated to exist at an edge i based on a charge density or current estimated to exist at an edge j.

The method can further include, prior to step (f) the steps of: (g) the processor determining each edge of M2that does not have a predefined relation to E2; and (h) the processor populating with a zero (0) value each cell of impedance matrix Z* that represents an edge pair comprised of E1and one of the edges of M2determined in step (g).

In step (c), the predetermined spatial relation between E1and E2can be parallel, substantially parallel, in alignment normal to a plane defined by M1or M2, or substantially in alignment normal to a plane defined by M1or M2. In step (g), the predefined relation can be each edge of M2that touches E2.

The method can further include, prior to step (f), the steps of: (i) the processor determining each edge of M1that does not have the predefined relation to E1; and (j) the processor populating with a zero (0) value each cell of impedance matrix Z* that represents an edge pair comprised of E2and one of the edges of M1determined in step (i).

The method can further include, prior to step (f), the steps of: (g) the processor determining each edge of M1that does not have a predefined relation to E1; and (h) the processor populating with a zero (0) value each cell of impedance matrix Z* that represents an edge pair comprised of E2and one of the edges of M1determined in step (g).

The square impedance matrix Z* can be determined based on a square impedance matrix Z having the same number of rows as the number of edges in M1and M2and the same number of columns as the number of edges in M1and M2. In the square impedance matrix Z*, row cells related to one of E1and E2from the square impedance matrix Z can be subtracted from row cells related to the other of E1and E2from the square impedance matrix Z. In the square impedance matrix Z*, column cells related to one of E1and E2from the square impedance matrix Z can be subtracted from column cells related to the other of E1and E2from the square impedance matrix Z.

The invention is also a system of redundancy extraction in electromagnetic simulation of an electronic device comprising: means for discretizing first and second spaced conductive layers of a computer model of a 3D geometry of an electronic device into a first mesh M1and second mesh M2, wherein each mesh includes a plurality of cells, and each pair of adjacent cells in each mesh is separated by an edge; means for estimating for each mesh a direction of current flow across each edge thereof in response to application of an exemplary bias to the geometry; means for determining at least one instance where one edge of M1and one edge of M2having a predetermined spatial relation to each other have equal magnitude and opposite direction current flows (EMODCF), wherein said at least one instance of EMODCF includes an edge E1of M1and an edge E2of M2; means for determining a square impedance matrix Z* having a number of columns i and a number of rows j, wherein for each instance of EMODCF, the number of rows j is one less than the total number of edges in M1and M2and wherein for each instance of EMODCF, the number of columns i is one less than the total number of edges in M1and M2; means for determining a voltage column vector V* which, for each instance of EMODCF, has one less row than the total number of edges in M1and M2; and means for determining a current column vector [I*]=[V*]/[Z*].

Subject to the impedance matrix Z* not including a row of cells and a column of cells related to one of edge E1and edge E2, each cell of the impedance matrix Z* can include an impedance value Zi,jdetermined for a unique combination of a potential or voltage estimated to exist on an edge i based on a charge density or current estimated to exist at an edge j, wherein i and j are separately indexed from 1 to n, and n=the total number of edges in M1and M2.

The system can further include: means for determining each edge of M2that does not have a predefined relation to E2; and means for populating each cell of impedance matrix Z* that represents an edge pair comprised of E1and one of said edges of M2with a zero (0) value.

The predetermined spatial relation between E1and E2can be parallel, substantially parallel, in alignment normal to a plane defined by M1or M2, or substantially in alignment normal to a plane defined by M1or M2. The predefined relation can be each edge of M2that touches E2.

The system can further include: means for determining each edge of M1that does not have the predefined relation to E1; and means for populating each cell of impedance matrix Z* that represents an edge pair comprised of E2and one of said edges of M1with a zero (0) value.

The system can further include: means for determining each edge of M1that does not have a predefined relation to E1; and means for populating each cell of impedance matrix Z* that represents an edge pair comprised of E2and one of said edges of M1with a zero (0) value.

The square impedance matrix Z* can be determined based on a square impedance matrix Z having the same number of rows as the number of edges in M1and M2and the same number of columns as the number of edges in M1and M2. In the square impedance matrix Z*, row cells related to one of E1and E2from the square impedance matrix Z are subtracted from row cells related to the other of E1and E2from the square impedance matrix Z. In the square impedance matrix Z*, column cells related to one of E1and E2from the square impedance matrix Z are subtracted from column cells related to the other of E1and E2from the square impedance matrix Z.

Lastly, the invention is a computer readable medium having stored thereon instructions which, when executed by a processor of a computer, cause the processor to perform the steps of: (a) discretize first and second spaced conductive layers of a computer model of a 3D geometry of an electronic device/system into a first mesh M1and second mesh M2, wherein each mesh includes a plurality of cells, and each pair of adjacent cells in each mesh is separated by an edge; (b) estimate for each mesh a magnitude and direction of current flow across each edge thereof in response to application of an exemplary bias to the geometry; (c) determine at least one instance where one edge of M1and one edge of M2having a predetermined spatial relation to each other have equal magnitude and opposite direction current flows (EMODCF), wherein said at least one instance of EMODCF includes edge E1of M1and edge E2of M2; (d) determine a square impedance matrix Z* which, for each instance of EMODCF in step (c), has one less row than the total number of edges in M1and M2and which, for each instance of EMODCF in step (c), has one less column than the total number of edges in M1and M2; (e) determine a voltage column vector V* which, for each instance of EMODCF in step (c), has one less row than the total number of edges in M1and M2; and (f) determine a current column vector [I*]=[V*]/[Z*].

Subject to the impedance matrix Z* of step (d) not including, a row of cells and a column of cells related to one of E1and E2, the cells of impedance matrix Z* can include impedance values Zi,j, wherein: each impedance value Zi,jis determined from a voltage estimated to exist at an edge i based on a charge density or current estimated to exist at an edge j; and i and j are separately indexed from 1 to n, where n=the total number of edges in M1and M2.

The instructions, prior to step (f), can further cause the processor to: (g) determine each edge of M2that does not have a predefined spatial or geometric relation with E2; and (h) populate with a zero (0) value each cell of impedance matrix Z* that represents an edge pair comprised of E1and one of the edges of M2determined in step (g).

In step (c), the predetermined spatial or geometric relation between E1and E2is parallel, substantially parallel, in alignment normal to a plane defined by M1or M2, or substantially in alignment normal to a plane defined by M1or M2. In step (g), the predefined relation is each edge of M2that touches E2.

The instructions, prior to step (f), can further cause the processor to: (i) determine each edge of M1that does not have the predefined spatial or geometric relation with E1; and (j) populate with a zero (0) value each cell of impedance matrix Z* that represents an edge pair comprised of E2and one of the edges of M1determined in step (i).

The instructions, prior to step (f), can further cause the processor to: (g) determine each edge of M1that does not have a predefined spatial or geometric relation with E1; and (h) populate with a zero (0) value each cell of impedance matrix Z* that represents an edge pair comprised of E2and one of the edges of M1determined in step (g).

The square impedance matrix Z* can be determined based on a square impedance matrix Z having the same number of rows as the number of edges in M1and M2and the same number of columns as the number of edges in M1and M2. In the square impedance matrix Z*, row cells related to one of E1and E2from the square impedance matrix Z can be subtracted from row cells related to the other of E1and E2from the square impedance matrix Z. In the square impedance matrix Z*, column cells related to one of E1and E2from the square impedance matrix Z can be subtracted from column cells related to the other of E1and E2from the square impedance matrix Z.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will be described with reference to the accompanying figures where like reference numbers correspond to like elements.

With reference toFIG. 1, the present invention is embodied in computer readable program code which executes on one or more computer systems2. Each computer system2includes a microprocessor4, a memory6, and an input/output system8. Each computer system2may also include a media drive10, such as a disk drive, a CD-ROM drive, a flash memory drive, and the like. Computer system2can be operated under the control of the computer readable program code that resides in memory6or in a computer readable storage medium12that can be read by media drive10. The computer readable program code is able to configure and operate computer system2in a manner to implement the present invention.

Input/output system8can include keyboard14, a mouse16, and/or display means18, such as a video monitor, a printer or any other suitable and/or desirable display means for providing a visually perceptible image. Computer system2is exemplary of computer systems capable of executing the computer readable program code of the present invention and is not to be construed as limiting the invention.

With reference toFIGS. 2A-2C, a simplified example of the present invention will now be described with reference to a multi-layer analytic or computer model of a device20that resides in memory6accessible by microprocessor4of computer system2. For the purpose of describing the present invention, device20will be described as being a part of an integrated circuit. However, this is not to be construed as limiting the invention since device20can, also or alternatively, be a part of a printed circuit board, an electrical conductor, an aircraft, an automobile, an antenna, or any other suitable and/or desirable device having two or more layers of conductive materials spaced from each other.

FIG. 2Ais a cross-sectional view of a portion of an integrated circuit device20that includes a lower conductive layer22, an insulating layer24disposed atop lower conductive layer22, and an upper conductive layer26disposed atop insulating layer24. As shown, lower conductive layer22and upper conductive layer26are separated from each other by insulating layer24by a distance T.

FIGS. 2B and 2Care isolated, three-dimensional (3D) perspective views of lower conductive layer22and upper conductive layer26separated from each other by distance T. InFIGS. 2B and 2C, insulating layer24has been omitted for clarity. The patterns of lower conductive layer22and upper conductive layer26shown inFIGS. 2B and 2Creside as models in memory6accessible by microprocessor4of computer system2. For the purpose of illustration and description, lower conductive layer22and upper conductive layer26inFIGS. 2B and 2Cwill be shown and described as not having any thickness. However, this is not to be construed as limiting the invention.

At a suitable time, microprocessor4of computer system2discretizes the computer models of lower conductive layer22and upper conductive layer26while maintaining in the model the spatial relationship of layers22and26. More specifically, in the embodiment shown inFIG. 2B, microprocessor4of computer system2discretizes models of lower conductive layer22and upper conductive layer26residing in memory6into first and second discretized meshes28and30, with each mesh28and30including a number of square or rectangular cells, and stores each discretized mesh28and30in memory6of computer system2.

Alternatively, as shown inFIG. 2C, microprocessor4of computer system2can discretize lower conductive layer22and upper conductive layer26into first and second discretized meshes28′ and30′, with each mesh28′ and30′ including a number of triangular cells, and stores each discretized mesh28′ and30′ in memory6of computer system2. The decision to discretize lower conductive layer22and upper conductive layer26into meshes formed from square or rectangular cells (FIG. 2B) or triangular cells (FIG. 2C) can be made by one of ordinary skill in the art. Accordingly, the discretization of lower conductive layer22and upper conductive layer26into square cells (FIG. 2B) or triangular cells (FIG. 2C) is not to be construed as limiting the invention. For the purpose of describing the invention hereinafter, reference will be made to the square or rectangular cells of discretized meshes28and30shown inFIG. 2B. However, this is not to be construed as limiting the invention.

Except at the boundaries of lower conductive layer22and upper conductive layer26, the cells of each discretized mesh28and30are separated from each other by an edge E in memory6. For example, first mesh28is discretized into a 3×4 array of cells, with each pair of adjacent cells separated by one of the edges E2-E18. Similarly, second mesh30is discretized into one pair of adjacent cells that are separated from each other by an edge E1.

InFIG. 2B, it should be noted that edge E1is positioned in a predetermined spatial relation to edge E10of first mesh28. In this example, edge E1is aligned vertically above edge E10in a direction normal to the plane defined by first mesh28and/or second mesh30. It is envisioned, however, that the horizontal and vertical alignment of edge E1relative to edge E10, or vice versa, inFIG. 2Bcan vary somewhat within tolerances selectable by one skilled in the art without affecting the practice of the invention in the manner described hereinafter.

Herein, it is assumed that the boundary edges, i.e., the periphery, of each mesh28and30do not have a current associated with them. This is a conventional assumption that is utilized when implementing the conventional method of moments (MOM) technique.

With reference toFIGS. 3A-3Cand with continuing reference toFIG. 2B, the determination of an impedance matrix [Z]32in accordance with the prior art from discretized meshes28and30will now be described for the purpose of laying the groundwork for an understanding of the invention to be described hereinafter with reference toFIGS. 5A-8.

Impedance matrix [Z]32includes an X-Y array of cells34, each of which includes an impedance value Zi,jwhich is due to a potential or voltage Viestimated to exist on an edge i of one of the discretized meshes28and30due to an initial unit charge density or current Ijestimated to exist across an edge j of one of the discretized meshes28and30. The initial potential or voltage Viand the initial charge density or current Ijat and across each edge E of discretized meshes28and30are exemplary values that are determined by solving Maxwell's equations in a manner known in the art in response to the application of an exemplary model bias to device20. For example, to determine for each mesh28and30a current I that flows across each edge E thereof and a potential voltage V induced at each edge E thereof in response to the application of an exemplary bias, Maxwell's equations are solved for meshes28and30independently. More specifically, the current I that flows across and the potential or voltage V induced at each edge of mesh28is determined by solving Maxwell's equation for mesh28. Similarly, the current I that flows across and the potential or voltage V induced at each edge of mesh30is determined by solving Maxwell's equation for mesh30.

In impedance matrix [Z]32, the impedance value Z included in each cell of the first row36of impedance matrix [Z]32includes, from left to right: impedance value Z1,1equal to the potential or voltage V1at edge E1due to the unit charge density at or current I1that flows across edge E1(i.e., V1divided by I1); impedance value Z1,2equal to the potential or voltage V1at edge E1due to the unit charge density at or current I2that flows across edge E2(i.e., V1divided by I2); impedance value Z1,3equal to the potential or voltage V1at edge E1due to the unit charge density at or current I3that flows across edge E3(i.e., V1divided by I3); impedance value Z1,4equal to the initial potential or voltage V1at edge E1due to the unit charge density at or current I4that flows across edge E4(i.e., V1divided by I4); etc.

In a similar manner, each other cell of impedance matrix32is populated with a suitable impedance value Zi,jwhere i=j, and i and j are independently indexed from one (1) to the total number of edges E in first and second meshes28and30, i.e., 18 edges E. The impedance values Z in each row of impedance matrix [Z]32are for the initial potential or voltage Viestimated to exist along a particular edge Eidue to initial charge densities at or current Ijestimated to flow across all of the edges, one-at-a-time, of discretized meshes28and30. For example, the eighteen (18) cells of row38of impedance matrix [Z]32include impedance values Z18,jdue to the initial potential or voltage V18determined to exist at edge E18and the initial unit charge densities or currents Ijestimated to exist across edges E1-E18(where the value of j is indexed from 1 to 18), respectively. The layout of impedance matrix [Z]32is not to be construed as limiting the invention since it is envisioned that the impedance values Z can be populated into the rows and columns of impedance matrix [Z]32in any suitable and/or desirable order selected in accordance with conventional practices known in the art of linear algebra.

The population of the cells of impedance matrix [Z]32with values of impedance Z based on potentials or voltages at edges E1-E18of discretized meshes28and30and unit charge densities at or currents across edges E1-E18of discretized meshes28and30is well known in the art and is utilized in the MOM method discussed above.

Microprocessor4of computer system2also determines a voltage column vector [V]40(FIG. 3C) that includes voltages V1-V18corresponding to the potentials or voltages determined to exist at edges E1-E18, respectively. Once impedance matrix [Z]32(a square impedance matrix) and voltage column vector [V]40have been determined and stored in memory6of computer system2, microprocessor4of computer system2solves the matrix equation shown inFIG. 4, wherein voltage column vector [V]40is divided by impedance matrix [Z]32to find the values I1-I18to be included in the cells of a current column vector [I]42. The current values I1-I18included in current column vector [I]42represent the actual currents that flow across edges E1-E18due to the cumulative effects of potentials or voltages at and charge densities or currents estimated to exist at or across all of the edges E of meshes28and30determined by solving Maxwell's equations for each mesh28and30independently. In practice, microprocessor4of computer system2determines the inverse of impedance matrix [Z]32, i.e., [Z]−132′. Thereafter, microprocessor4of computer system2multiplies inverse impedance matrix [Z]−132′ by voltage column vector [V]40utilizing linear algebra techniques well known in the art to determine the values of I1-I18to be included in current column vector [I]42.

As can be seen, with even the relatively simple discretized meshes28and30shown inFIG. 2B, a relatively large impedance matrix [Z]32is formed. As would be recognized by one of ordinary skill in the art, the computational time that microprocessor4takes to solve the matrix equation shown inFIG. 4increases with increasing sizes of impedance matrix [Z]32, voltage column vector [V]40, and current column vector [I]42. It would, therefore, be desirable to reduce the sizes of the impedance matrix [Z] and the voltage column vector [V] that microprocessor4needs to solve while maintaining a desired level of accuracy in the determination of the values of current I included in the current column vector [I].

Referring back toFIG. 2B, for each mesh28and30a magnitude and direction of current that flows across each edge E thereof (and the voltage induced at each edge E thereof in response to the application of an exemplary bias to device20) can be determined. This is generally accomplished by solving Maxwell's equations for meshes28and30independently. It has been observed that where an edge in first mesh28having a predetermined spatial relation (e.g., in vertical alignment) with an edge in second mesh30has equal magnitude and opposite direction current flows (EMODCF) or differential currents, the contribution of these differential currents on edges outside of a predefined spatial relation with these edges can be ignored.

For example, assume that the magnitude and direction of current I1estimated to flow across edge E1is equal in magnitude but opposite in direction to current I10estimated to flow across edge E10as shown inFIG. 2B, i.e., I1and I10are differential currents. As a result of these equal magnitude opposite direction current flows across edges E1and E10in vertical or substantially vertical alignment with one another in first and second meshes28and30, square impedance matrix [Z]32can be rewritten as square impedance [Z*]48shown inFIGS. 5A-5Cwhich has one less row and one less column than impedance matrix [Z]32shown inFIGS. 3A-3C. More specifically, when current I1across edge E1of second mesh30is equal in magnitude but opposite in direction to current I10across edge E10in first mesh28, wherein edges E1and E10have a predefined spatial relation to each other, in this example, in vertical or substantially vertical alignment, the impedances Z10,jand Zi,10of impedance matrix [Z]32included in row10and column10can be subtracted from the impedances Zi,jincluded in row1and column1, respectively, to form impedance matrix [Z*]48. Thereafter, row10and column10of square impedance matrix [Z]32can be omitted in impedance matrix [Z*]48. Thus, impedance matrix [Z*]48will have one less row and one less column than impedance matrix [Z*]32. Alternatively, the impedances of impedance matrix [Z]32included in row1and column1can be subtracted from the impedances included in row10and column10, respectively, to form an impedance matrix that can be substituted for impedance matrix [Z*]48, and row1and column1of square impedance matrix [Z]32can be omitted in this replacement impedance matrix. For the purpose of describing the present invention, it will be assumed hereinafter that the impedances of impedance matrix [Z]32included in row10and column10are subtracted from the impedances included in row1and column1, respectively. However, this is not to be construed as limiting the invention.

The result of subtracting row10of impedance matrix [Z]32from row1of impedance matrix [Z]32; subtracting column10of impedance matrix [Z]32from column1of impedance matrix [Z]32; and eliminating row10and column10from impedance matrix [Z]32inFIGS. 3A-3Cis shown in square matrix [Z*]48inFIGS. 5A-5C. Observing square of impedance matrix [Z*]48, it can be seen that square impedance matrix [Z*]48has seventeen (17) rows and seventeen (17) columns, wherein row10and column10from square matrix [Z]32has been omitted in impedance matrix [Z*]48. Similarly, as shown inFIG. 5C, in voltage column vector [V*]54the value V10from voltage column vector [V]40is subtracted from the value of V1from voltage column vector [V]40and the row (row10) that included V10in voltage column vector [V]40is omitted from voltage column vector [V*]50. The results of this operation are shown in voltage column vector [V*]50shown inFIG. 5C. Thus, voltage column vector [V*]54will have one less row than voltage column vector [V]40.

Once square impedance matrix [Z*]48and voltage column vector [V*]50have been determined, a current column vector [I*]52can be determined by either dividing voltage column vector [V*]50by square impedance matrix [Z*]48, or by multiplying the inverse of impedance matrix [Z*]48, i.e., [Z*−1]48′, by voltage column vector [V*]50, as shown inFIG. 6.

The process of subtracting a row and column associated with a first edge (edge E10in this example) from a respective row and column associated with a second edge (edge E1in this example), and eliminating the subtracted rows and columns (row10and column10in this example) from impedance matrix [Z]32can be performed each time an edge in one matrix and an edge in another matrix have a predetermined spatial relation with each other and said edges have differential current flows, e.g., edges E1and E10inFIG. 2B. Thus, for each instance where one edge of a first matrix and one edge of a second matrix having the predetermined spatial relationship to each other have differential current flows, one row and one column can be omitted from a prior art impedance matrix, such as impedance matrix [Z]32, to produce a reduced impedance matrix, like impedance matrix [Z*]48, in a process known as matrix reduction or row-column elimination in linear algebra.

The matrix reduction or row-column elimination procedure described above in connection withFIGS. 5A-5Ccan be used alone if desired. However, if further simplification of matrix [Z*]48is desired, advantage can be taken of the observation that differential currents, e.g., current I1across edge E1and current I10across edge E10inFIG. 2B, to a very high degree of accuracy, generate electric and magnetic fields only in their immediate neighborhood. Accordingly, the effects of said differential currents on edges E of meshes28and30positioned away from the edges carrying said differential currents (outside of their immediate neighborhood) can be ignored with minimal or no effect on the accuracy of determining the current values I to be included in current column vector [I*]52. Accordingly, a value of zero can be included in each cell of square impedance matrix [Z*]48that represents an edge pair comprised of an edge of a first mesh where one part of a differential current flows and each edge of a second mesh that is not a neighboring edge (i.e., an edge that does not have a predefined spatial relation) to an edge of a second mesh where the other part of the differential current flows. An example of this concept will now be described with reference toFIG. 2B, impedance matrix [Z*]48shown inFIGS. 5A-5C, and a sparse impedance matrix [Z**]58shown inFIGS. 7A-7C.

As shown inFIG. 2B, edges E1and E10have a predetermined spatial relation to each other and have differential (equal magnitude and opposite direction) currents I1and I10. Because of these differential currents, electric and magnetic fields generated by currents I1and I10will only have an effect on the edges E of first mesh28neighboring edge E10. In this example, the neighboring edges are those edges that touch edge E10, namely, edges E3, E6, E7, E13, E14, and E17. The discussion herein of neighboring edges as those edges that touch a particular edge, in this example edge E10, is not to be construed as limiting the invention since it is envisioned that neighboring edges can be defined in any suitable and/or desirable manner. For example, a neighboring edge may be one that is within a predefined distance of an edge E across which a differential current flows, an edge E having some predefined spatial or geometrical relation to an edge E across which a differential current flows, and the like.

However, because differential currents I1and I10do not generate any (or substantially any) electric or magnetic fields outside their immediate neighborhood, the cells of impedance matrix [Z*]48that represent the interaction between edge E1and each edge that is not an immediate neighbor of edge E10can be set to zero as shown in sparse impedance matrix [Z**]58shown inFIGS. 7A-7C, wherein the following rows (R) and columns (C) of sparse impedance matrix58have been set to zero: R1, C2; R1, C4; R1, C5; R1, C8; R1, C9; R1, C10; R1, C11; R1, C14; R1, C15; R1, C17; R2, C1; R4, C1; R5, C1; R8, C1; R9, C1; R10, C1; R11, C1; R14, C1; R15, C1; and R17, C1. InFIG. 2B, each edge that is not an immediate neighbor of edge E10has been circled and each edge that is an immediate neighbor of edge E10has been underlined to facilitate an understanding of the invention.

While the invention has been described in connection with the simplified embodiment shown inFIG. 2B, it is to be appreciated that impedance values Z can also be included in the cells of sparse impedance matrix [Z**]58for edges of second mesh30in the immediate neighborhood of edge E1(if such edges actually existed) and zero (0) values can be included in the cells of sparse impedance matrix [Z**]58for edges of second mesh30not in the immediate neighborhood of edge E1. In other words, each cell of sparse impedance matrix [Z**]58that represents an edge pair comprising an edge that carries a differential current and one edge that is in the immediate neighborhood of differential current carrying edge can be populated with an appropriate impedance value. In contrast, each cell of sparse impedance matrix [Z**]58that represents an edge pair comprised of a differential current carrying edge and one edge that is not in the immediate neighborhood of said differential current carrying edge can be populated with the value of zero (0).

With reference toFIG. 8and with continuing reference toFIGS. 7A-7C, once the cells of sparse impedance matrix [Z**]58have been populated with appropriate values of impedance Z or 0, current column vector [I*]52can be solved by microprocessor4by dividing voltage column vector [V*]50(determined in the manner discussed above) by sparse impedance matrix [Z**]58, or by multiplying voltage column vector [V*]50by the inverse of impedance matrix [Z**]58, namely, [Z**]−158′.

The concept of a neighboring edge described above, wherein, neighboring edges touch edge E10having a differential current I10flowing thereacross is not to be construed as limiting the invention. To this end, it is envisioned that a neighboring edge could be any edge that has a predefined relation to an edge across which a differential current flows, such as, without limitation: edges within a predefined distance of an edge across which a differential current flows; edges having some predefined spatial and/or geometrical relation to an edge across which a differential current flows; etc. The decision to characterize an edge as being a neighboring edge to an edge that carries a differential current can be made by one of ordinary skill in the art, e.g., based on physical and/or electrical conditions being analyzed, a desired degree of accuracy, and the like.

As can be seen, the present invention involves eliminating at least one row and at least one column of an impedance matrix and at least one row of a voltage column vector for each differential current that flows across edges of meshes defined for spaced conductive layers. Thereafter, if desired, zeros can be populated into cells of the impedance matrix related to edges of the impedance matrices that are not neighboring to each edge that carries a differential current.

To this end, for each differential current, e.g., current I1and I10inFIG. 2B, at least a single row and a single column can be eliminated from a conventional impedance matrix and at least a single row can be eliminated from a conventional voltage column matrix. For cells of the impedance matrix that represent edges where there is deemed to be an insufficient interaction between a differential current and a non-differential current, the values in these cells can be set to zero. All other cells of the impedance matrix can be left untouched as in a standard MOM method.