Pulse Propagation Along Close Conductors: Numerical Solution of The Telegraph Equations Using Mathematica

Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

Pulse Propagation along close

Conductors
Numerical solution of the telegraph equations using
Mathematica
Andreas Dieckmann
Physikalisches Institut der Uni Bonn
Elektronik Abteilung
Oktober 2000 - September 2001

Abstract
The propagation and reflection of arbitrarily shaped pulses on non-dispersive parallel conductors of finite
length with user defined cross section is simulated employing the discretized telegraph equation. The geome-
try of the system of conductors and the presence of dielectric material determine the capacities and induc-
tances that enter the calculation. The values of these parameters are found using an iterative Laplace equation
solving procedure and confirmed for certain calculable geometries including the line charge inside a box. The
evolving pulses and the resulting crosstalk can be plotted at any instant and – in the Mathematica notebook
version of this report (http://www.physik.uni-bonn.de/~dieckman/) – be looked at in an animation. As an
example a differential pair of microstrips as used in the ATLAS vertex detector is analysed.

Contents
Introduction 2

Integration of the Telegraph Equations 3

Numerical Calculation of Capacities and Inductances 15

The Pigtail 37

Conclusion 60

References 60
2 Pulse.nb

Introduction
Electrical pulses travelling on a conductor will induce voltages and currents onto the neighbor conductors.To
estimate the size of this influence called crosstalk either simulation and/or measurement of the effect is
needed. Fig. 1 shows the basic schematic of coupled lines (Ref. 1, p.196):

Figure 1
Figure 1. Two coupled pairs of conductors with parameters per unit length ('), voltages and currents on a section of
wires ranging from x to x+ x

The parameters R' (Resistance/m along the conductor), L' (Inductance/m of a circuit), C' (effective Capacity/m
between two conductors) and G' (Conductivity/m from one conductor to the next) are normalized to the length
of the wire and their index denotes the conductor they refer to. Their numerical values can be found by
measurement or calculation (see below).
At frequencies not too high the pulses are electromagnetic waves guided by the conductors. The state
of the pulses may be calculated by numerically integrating their evolution in space and time from a given
initial state of voltages and currents, subjected to the boundary conditions at either end of the conductor. The
voltages u j and currents ik change according to the following set of one dimensional partial differential
equations called telegraph equations that can be read off Fig. 1:

x u1 R1 ' i1 L1 ' t i1 L12 ' t i2


x u2 R2 ' i2 L2 ' t i2 L12 ' t i1
(1)
x i1 C1 ' t u1 C12 ' t u21 G1 ' u1 G12 ' u21
x i2 C2 ' t u2 C12 ' t u21 G2 ' u2 G12 ' u21
with u21 = u2 - u1 . For numerical integration these equations and their boundary conditions will be cast into
another form that allows the calculation of discrete increments in time ( t) and space ( x).
The end of the next section contains a flip page animation of a model pulse travelling back and forth
including its behavior at the wire ends. In a second section a method is presented to calculate the capacities
and inductances of a given set of linear conductors (including ground planes and dielectrics) by numerically
solving the Laplace equation. Code is given that allows precision tests against known geometries. The last
section shows then the application of all this to the "pigtail", a part of the ATLAS vertex detector for high
energy particles being assembled at CERN. This is a connection made of microstrip lines on kapton foil
carrying signals from the inner part to an optoconverter further outside.
This document is an interactive notebook that may be used to carry out the calculation or to view the
animations on a computer. All programming is done in Mathematica (Ref. 8) – code is shown in grey
boxes –, so the input may be easily adapted to get results on other geometries.
another form that allows the calculation of discrete increments in time ( t) and space ( x).
The end of the next section contains a flip page animation of a model pulse travelling back and forth
including its behavior at the wire ends. In a second section a method is presented to calculate the capacities
Pulse.nb
and inductances of a given set of linear conductors (including ground planes and dielectrics) by numerically 3
solving the Laplace equation. Code is given that allows precision tests against known geometries. The last
section shows then the application of all this to the "pigtail", a part of the ATLAS vertex detector for high
energy particles being assembled at CERN. This is a connection made of microstrip lines on kapton foil
carrying signals from the inner part to an optoconverter further outside.
This document is an interactive notebook that may be used to carry out the calculation or to view the
animations on a computer. All programming is done in Mathematica (Ref. 8) – code is shown in grey
boxes –, so the input may be easily adapted to get results on other geometries.

Integration of the Telegraph Equations

coupled Telegraph Equations

Rearrangement of the Equations

The scheme in Fig. 1 shows a generic situation of coupling, where everything is reduced to the
essentials. It is represented by the set of equations (1). To describe any 'real' setup, it is best to leave Fig. 1 and
equations (1) as they are and to project the properties of the situation at hand on to Fig. 1.
Later on the coupling of two differential circuits will be considered, so all the capacitive coupling will
have to be expressed through the capacity C12 ' (45) in Fig. 1. In addition, to simplify matters, we may, as the
conductivity of capton is extremely low, put the G matrix safely to zero.
To integrate the telegraph equations the set of equations (1) is rewritten with the time derivative term
on the left hand side and currents, voltages and parameters are given in vector and matrix notation
(Ref 2, p.182f):

1
t u C' x i
1 1
(2)
t i L' R' i L' x u
with R', L', C' as matrices [ ]:

R1 0 L1 L1,2
R' , L' ,
0 R2 L1,2 L2
(3)
C1 ' C1,2 ' C1,2 '
C' ,
C1,2 ' C2 ' C1,2 '
where the indices point to the pairs of conductors as is evident from Fig. 1. For the following calculations it
will be useful to collect u and i into another state vector v . Both equations (2) then form (4) a single
equation containing the time derivative of v on one side and the sum of two matrix operators 1 and 2
acting on v at the other side :

u
v
i
0 0 1
0 C' (4)
t v 1
v x 1
v
0 L' R' L' 0

1 v 2 v
4 Pulse.nb

Mathematica Code (verify Manipulation of Equations)


If you want to repeat or modify the calculations in the electronic version of this notebook:
select the cell bracket enclosing all grey cells of the corresponding Mathematica Code section and press the
evaluate key

This cell solves the system of equations (1) for the terms containing the time derivatives:

eq1 r1i1 l1 di1t l12 di2t du1x;


eq2 r2i2 l2 di2t l12 di1t du2x;
eq3 c1 du1t c12 du2t du1t di1x;
eq4 c2 du2t c12 du2t du1t di2x;
Solve eq1 0, eq2 0, eq3 0, eq4 0 ,
du1t, du2t, di1t, di2t Simplify

du2x l12 du1x l2 l2 r1i1 l12 r2i2


di1t ,
l122 l1 l2
du2x l1 du1x l12 l12 r1i1 l1 r2i2
di2t ,
l122 l1 l2
c2 di1x c12 di1x di2x
du1t ,
c12 c2 c1 c12 c2
c1 di2x c12 di1x di2x
du2t
c12 c2 c1 c12 c2

The next code example verifies the equality of the first equation of (2) with equations (1):

c1 c12 c12
Inverse . di1x, di2x Simplify
c12 c2 c12

c2 di1x c12 di1x di2x c1 di2x c12 di1x di2x


,
c12 c2 c1 c12 c2 c12 c2 c1 c12 c2

It is an easy exercise to check the second equation of (2) in the same way.
Pulse.nb 5

Discretization of the Telegraph Equations


The state vector v (x,t) is represented on a discrete time and space grid as

n
v (x j , tn ) = v( j x, n t ) = v j , j = 0,..., M, n = 0,..., N, (5)
where n (time) and j (space) label the coordinates of the grid and x, t stand for the grid spacing. The
differential operators will be replaced by finite differences, then the state at the time n+1 and at the place j
may be expressed by a linear combination of some points at the previous time n. In this way the calculation
proceeds in time one t after the other. For stability t has to be ≤ x/(speed of light).
In case the differencing scheme valid for each i alone in (4) is known and results in a prescription
n
i to update vj (in the next two subsections this condition is shown to be fulfilled) :

n 1 n
1 : vj 1 vk , t Damping Term
n 1 n (6)
2 : vj 2 vk , t Wave Equation ,
then the discrete telegraph equations follow with the method of operator splitting (Ref. 3, p.847) from (6) by
applying the updates one after the other:

n 1 n
vj = 1 2 vk , t , t (7)

differencing 2

The differencing scheme of 2 is presented in some detail. The time derivative is written as

n 1 n
vj vj
t v , (8)
t
so that with (4)

1
n 1 0 C' n n
vj t x 1
vj t x B vj , (9)
L' 0
where denotes the identity matrix and [B] is a shorthand for the LC matrix. Next the Lax-Wendroff two-step
scheme, which is second order in time, quite accurate and has little distortion if the step size chosen is small
enough, will be applied. First the space derivative is written as

n n
vj 1 vj
x v , (10)
x
where [B] is considered independent of x, and temporary "half step grid points" are constructed, which
(Fig. 2) we put into (9)

1
n 2 n n n
vj 1 vj 1
2 vj 1 vj
2
t B
2
x (11)
n 1
2 n t n n
vj 1 vj 1 B vj 1 vj
2 2 2 x
and in the same way

n 1
2 n t n n
vj 1 vj 1 B vj vj 1 . (12)
2 2 2 x
6 Pulse.nb

Figure 2
Figure 2. Location of temporary half step points in the Lax-Wendroff Scheme

The j± 12 points on the right of (11) and (12) are now replaced by the averages of their left and right neighbors
(Lax replacement)

n 1 n n n 1 n n
vj 1 vj 1 vj and vj 12 vj vj 1 . (13)
22 2
n 1
In a second step we use the four points connected by the cross in Fig. 3 to calculate vj (Ref. 3, p.835):

1 1
n 1 n n 2 n 2
vj vj vj 1 vj 1
2 2
B
t x

Figure 3
Figure 3. The new point on top is calculated using the staggered leapfrog scheme, it contains information from the
three black ones
Pulse.nb 7

With (11) and (12) the explicit result for 2 is

n 1 n
vj vk , t
2
n t n n t n n n
vj B vj 1 vj 1 B vj 1 2 vj vj 1
2 x x
t 2 2
1 t 2 2 (14)
n n n
B vj B vj 1 vj 1
x 2 x
t n n
B vj 1 vj 1
2 x

differencing 1

The differencing scheme of 1 is somewhat simpler, because there is no space derivative. A second shorthand
[A] is introduced for the LR matrix:

n 1 n 0 0 n n
vj 1 vk , t t 1
vj A vj . (15)
0 L' R'

Now 1 and 2 are combined as in (7) :

n 1 2 2 n
t
vj A x B vj
1 t 2 2 n n t n n (16)
2 x
A B vj 1 vj 1 2 x
A B vj 1 vj 1

From (16) we get, through inserting the parameter matrices for [A] and [B] and separating for voltages and
currents, at last to the discrete telegraph equations as shown in the next section.

the discrete Telegraph Equations

2
n 1 t 1 1 n
uj C' L' uj
x

2
1 t 1 1 n n t 1 n n
C' L' uj 1 uj 1 C' ij 1 ij 1
2 x x (17)
2
n 1 1 t 1 1 n
ij t L' R' L' C' ij
x
2
1 t 1 1 n n t 1 n n
L' C' ij 1 ij 1 L' uj 1 uj 1
2 x x
There are now two coupled (voltage/current) grids; Point (n+1, j) is calculated from the three points on the
line n below {(n, j+1), (n, j), (n, j-1)} in a left right symmetric way, the computational molecule is an isosceles
triangle (cf. Fig. 3).
8 Pulse.nb

special treatment of the boundary

At the edges (j = 1 or M) the outside points j = 0, M+1 are not available, so we have to modify our method.
Mean values of differences in space and time (18) are used to calculate the edge points - to understand this
look at Fig. 4 . As computational molecule there is now a rectangular box - (Ref. 4, p.107):

Figure 4
Fig. 4 The unknown point in the upper right edge is calculated from the three black ones by relating average
differences in time and space via the matrices [A] and [B].

These calculations are called implicit, because the term to be solved for shows up on the right and the left
hand side in the equations (18).

n 1 n n 1 n n 1 n 1 n n
vM vM vM vM vM vM vM vM
2 t
1 1
B 1
2 x
1

n 1 n t 1 t n n 1
vM vM 1 x B x B vM vM 1
(18)
n 1 n n 1 n n 1 n 1 n n
v1 v1 v2 v2 v2 v1 v2 v1
2 t
B 2 x
n 1 n t 1 t n n 1
v1 v2 x
B x
B v1 v2
After formation of the inverse matrix and multiplication with [A] we get these expressions:
right side:

1
n 1 n t 2 1 1 t 2 1 1 n n 1
uM uM 1 x
C' L' x
C' L' uM uM 1
1 n n 1
t t 2 1 1 1
2 x x
C' L' C' iM iM 1 ,
(19)
n 1 n 1
1 t t 2 1 1 1 n n 1
iM t L' R' iM 1 2 x x
L' C' L' uM uM 1
1 n n 1
t 2 1 1 t 2 1 1
x
L' C' x
L' C' iM iM 1

and left side:

1
n 1 n t 2 1 1 t 2 1 1 n n 1
u1 u2 x
C' L' x
C' L' u1 u2
1 n n 1
t t 2 1 1 1
2 x x
C' L' C' i1 i2 ,

n 1 1 n t t 2 1 1
1
1 n n 1 (20)
i1 t L' R' i2 2 x x
L' C' L' u1 u2
1 n n 1
t 2 1 1 t 2 1 1
x
L' C' x
L' C' i1 i2
Pulse.nb 9

explicit boundary conditions

Now the boundary conditions may be specified in the following ways:


open set i = 0, leave u as in (19) or (20);
short set u = 0, leave i as in (19) or (20);
termination with z right/left set u = i * (+/- z), leave i as in (19) / (20).

Mathematica Code (Gaussian Pulse with Reflections)


RAM requirements: Front End 40 MB, Kernel 10 MB.

As an example the propagation of gaussian pulses placed in the middle of each of two wires is presented. In
order to demonstrate clearly the propagation and reflection properties the mutual coupling, which disturbs the
shape of the pulses, is set to zero.

Definitions

npl 100; number of plots,


may be set to smaller number if memory is tight
dt 1. 10 12 ; 1 psec
dx 0.004; 4 mm
dx
dt
speed of propagation for stability,
trade off with computational speed
0 4. 10 7 ;
9
0 10 35.95 ;
m 250; array dimension space distance m dx 1 m
nmax 4000;
simulation time steps, time considered: nmax dt
pl Round nmax npl ;
snapshot after every pl timesteps
k 2; 2 wires dimension of matrices

Parameters per Unit Length

res 2.; resistance in per meter


res 0
rm ;
0 res
cap 0 2; capacitance in F per meter
cap 0
cm ; no mutual coupling
0 cap
ci Inverse cm ;
ind 2 0 ; inductance in H per meter
ind 0
lm ; no mutual coupling
0 ind
li Inverse lm ;
zl 0.5 ind cap ; too low Termination left
zr 2.0 ind cap ; too high Termination right
10 Pulse.nb

Initialization and Setup of Coefficient Matrices

id IdentityMatrix k ;
u1 u0 Table 0., m , k ; i1 i0 Table 0., m , k ;
2 2
dt 1 dt 1 dt
m1 id ci.li; m2 ci.li ; m3 ci;
dx 2 dx 2 dx
2
dt
m4 id dt li.rm . id li.ci ;
dx
2
1 dt
m5 id dt li.rm . li.ci ;
2 dx
1 dt
m6 id dt li.rm .li;
2 dx
2 2
dt dt
m8 Inverse id ci.li . id ci.li ;
dx dx
2
dt dt
m9 2 Inverse id ci.li .ci; m10 id dt li.rm;
dx dx
2
dt dt
m11 2 id dt li.rm . Inverse id li.ci .li ;
dx dx
m12
2 2
dt dt
id dt li.rm .Inverse id li.ci . id li.ci ;
dx dx

Static Initial Condition

u0 Transpose u0 ;
u0 1 u0 2 Table Exp i 125 2 80 , i, 1, m ;
u0 Chop Transpose u0 ;
p1 ListPlot Transpose u0 1 ,
PlotRange 0, m , 0, 1 , PlotJoined True,
AxesLabel "Length 4 mm ", "Amplitude" ;

A gaussian pulse is placed in the middle of the wires, it is going to divide into two separate components.
Pulse.nb 11

Calculate Evolution in Time and produce Plots

The output of the next cell shows the pulses at progressing time intervals. If their enclosing cell bracket is
selected and the Menu Command "Animate selected Graphics" is chosen, they display an animation.

this cell produces npl plots, view as animation


Timing
Do
main loop, calculate line n 1 in u and i grid
Do jp1 j 1; jm1 j 1;
u1 j m1.u0 j
m2. u0 jp1 u0 jm1 m3. i0 jp1 i0 jm1 ;
i1 j m4.i0 j m5. i0 jp1 i0 jm1
m6. u0 jp1 u0 jm1 , j, 2, m 1 ;
edges
u1 m u0 m 1
m8. u0 m u1 m 1 m9. i0 m i1 m 1 ;
i1 m m10.i0 m 1 m11. u0 m u1 m 1
m12. i0 m i1 m 1 ;
u1 1 u0 2 m8. u0 1 u1 2
m9. i0 1 i1 2 ;
i1 1 m10.i0 2 m11. u0 1 u1 2
m12. i0 1 i1 2 ;
static boundary conditions open: set i 0,
short: set u 0
u1 m, 2 zr i1 m, 2 ; termination right with z
u1 1, 2 zl i1 1, 2 ;
termination left with z
u1 1, 1 0.; wire 1 left short circuit
i1 m, 1 0.; wire 1 right open end
u0 u1; i0 i1; advance one step in time
do a snapshot of the voltages
If Mod n, pl 0,
plot voltage wire 1
p1 ListPlot
Transpose u1 1 , PlotRange 0, m , 0.6, 1 ,
PlotJoined True, DisplayFunction Identity ;
plot current wire 1
p2 ListPlot 250 Transpose i1 1 ,
PlotRange 0, m , 0.8, 0.6 ,
PlotJoined True, DisplayFunction Identity ;
plot voltage wire 2
p3 ListPlot
Transpose u1 2 , PlotRange 0, m , 0.6, 1 ,
PlotJoined True, DisplayFunction Identity ;
Show GraphicsArray p1 , p2 , p3 ,
DisplayFunction $DisplayFunction ;
get rid of small numbers to
accelerate calculation
u0 Chop u0 ; i0 Chop i0 ; Print n , n, nmax

Print "Fertig "


12 Pulse.nb

3 selected Plots from the Animation


Two wires without coupling are simulated, each of which is carrying a left and right travelling component of
the initial pulse; the first two diagrams show u and i of the same, namely the first wire, the third diagram
displays the voltage of the second wire. The current is scaled up by a factor that it numerically gets roughly
the same size as the voltage. The pulses have broken up in two parts that run apart. Edges of pulses with
gradients of voltages and currents of equal sign move right, those with gradients of opposite sign move left.
Pulse.nb 13

The upper wire has a short at the left and is open at the right end, the second wire (diagram at the bottom) is
terminated left with Zl = Z0 /2 and right with Zr = 2 Z0 , where Z0 is the impedance L C of the wire. These
boundary conditions cause reflection and transmission at either end of the wires.
14 Pulse.nb

Now the reflected pulses have changed direction, the amplitude of the pulses on the second wire is reduced to
(Zx - Z0 ) / (Zx + Z0 ) of the original.

The simulated pulses demonstrate the expected behaviour including reflection at the wire boundaries. To
understand any real situation the parameters entering the telegraph equation, specifically the capacities and
inductances of the configuration of conductors should be known precisely (the calculations of the next
sections reach an accuracy of a few % – tested with coax and other geometries –).
Pulse.nb 15

Numerical Calculation of Capacities and Inductances

Capacities

Definition of Capacitance, Coefficients of Induction and Coefficients of Capacity

In a system of n conductors the equations relating the 'induced' charge on one conductor to the potentials
(U or ) of all others (Ref. 5, p.318) read

Q1 = C11 *U1 + C12 *U2 + ... + C1 n *Un


Q2 = C21 *U1 + C22 *U2 + ... + C2 n *Un
(21)
Qn = Cn1 *U1 + Cn2 *U2 + ... + Cnn *Un ,
where the Cij = C ji (i≠j) are called 'coefficients of induction', Cii is the capacitance of conductor i.
The values of the C are constants depending on geometry only, that means on the shapes and the arrangement
of the conductors. Add

0 = Ci1 *Ui + Ci2 *Ui + ...+ Ci,i 1 *Ui + Ci,i 1 *Ui + ... + Cin *Ui - Ci1 *Ui - ... - Cin *Ui (22)
to equation i of (21), and they can be reshuffled to contain Maxwells 'coefficients of capacity'
(Teilkapazitäten):

Q1 = C10 *U1 + C12 *(U1 U2 ) + ... + C1 n * U1 Un


Q2 = C21 * U2 U1 + C20 *U2 + ... + C2 n * U2 Un
(23)
Qn = Cn1 * Un U1 + Cn2 * Un U2 + ... + Cn0 *Un .
The coefficients of capacity are connected to the coefficients of induction through the following equations:

n
Ci0 = k 1 C ik
(24)
Cik = - Cik (i≠k).

Ci0 is known as 'stray capacity', the part that corresponds to the field that goes to the 'outside', where the
fieldlines connect to the surrounding ground. Now the meaning of the term 'capacitance' defined above also
becomes clear: the capacitance of conductor i is the sum of its stray capacity plus all its coefficients of
capacity with the other conductors of the system.
The procedure outlined below finds the Cik of a given configuration. We then use (24) to calculate
the coefficients of capacity, a combination of which (according to the mode of operation) is to be put into (3).

Determination of the Coefficients of Induction in a System of Linear Conductors

Consider a system of conductors within a volume V filled with dielectric material ( r ≠1) and/or empty space.
The potential energy of the conductors, being fixed at certain potentials i , may then be written as

1 n n
W = 2 i 1 j 1 Cij i j . (25)
The induced charges will produce an electric field, whose shape is a consequence of the given geometry, and
whose energy amounts to

1
W = 2 V
D E V. (26)
The energy of a charged system of conductors is thus stored in the electric field between them. This offers a
neat way to calculate the capacitances and coefficients of induction of the configuration from the electric field
without quantitative information about the charge distribution, – once the field is known (Ref. 6, p.53). The
capacitance per unit length Cii ' of the linear conductor i pops out of (25) and (26), if we integrate over the
plane perpendicular to the conductor the electric field corresponding to the boundary conditions i =1 and all
other k = 0 :
16 Pulse.nb
The energy of a charged system of conductors is thus stored in the electric field between them. This offers a
neat way to calculate the capacitances and coefficients of induction of the configuration from the electric field
without quantitative information about the charge distribution, – once the field is known (Ref. 6, p.53). The
capacitance per unit length Cii ' of the linear conductor i pops out of (25) and (26), if we integrate over the
plane perpendicular to the conductor the electric field corresponding to the boundary conditions i =1 and all
other k = 0 :

Cii ' = A r
0 Ei Ei x y (27)
After the capacitances the coefficients of induction may be obtained from

1
Cij ' = 2
( A
r 0 E ij E ij x y - Cii ' - C jj ' ), (28)
by considering pairs of conductors, where the indices of E point to the two conductors, whose potentials are
then set to 1. From (27) and (28) it is clear that the presence of any additional conductor will change the field
and will consequently have an effect on every other capacity.

Discrete Form of Gauss's Law with Dielectrics

It remains to determine the electrical field. In the volume outside the conductors there are no free charges,
here the field obeys this form of Gauss's Law

·D = · E =0 (29)
with = r 0 . As the field is the negative gradient of the potential , (29) reads with a space dependent (x,y)

· E =-( · + ) = 0. (30)
The terms containing the first derivatives act as additional sources to the Laplace equation that appears
in (30).
The potential (x,y) is mapped onto a grid with ui, j = (i x, j y). In the iterative relaxation process
used for elliptic pde's (Ref. 3, p.821) the Laplace operator is discretized by the prescription that each point
is updated with the average of its four neighbors. i, j is either 1 (for vacuum or air) or equal to the relative
dielectric constant of the material at the location of the corresponding grid point.
Discretize first derivatives like (to second order for symmetry reasons, – first order would be shifted to
up and right) :

fi, j 1 fi, j 1
x fi, j = 2
, (31)
that means, any structure, in order to be correctly included, must comprise at least two grid points. This is the
'resolution' of this simulation.
The following update procedure is applied many times to each grid point starting from actually any
initial matrix ui, j , until the result no longer changes:

ui 1, j ui 1, j ui, j 1 ui, j 1 i, j 1 i, j 1 i 1, j i 1, j
ui, j = 4
+ 16 i, j
(ui, j 1 ui, j 1 )+ 16 i, j
(ui 1, j ui 1, j ) (32)
If the values at the boundaries are completely specified, a unique solution for u will be found slowly propagat-
ing into the plane from the fixed boundaries. The number of iterations and hence the calculation time is
proportional to the difference of the arbitrary initial matrix and the final result. The distribution of the ui, j , the
relaxation converges to, is characterized by the boundary values and the Laplace operator, which enforces the
sum of the curvatures ( to second derivative in space) in x and y direction to be zero. That means, either both
are zero (a piece of a plane surface) or both have opposite sign and equal size (saddle form). The presence of
dielectrics reveals itself by a sudden jump of the gradient to lower values (see code example below).
Pulse.nb 17

Mathematica Code (Parallel Plate Capacitor)


RAM requirements: Front End 10 MB, Kernel 10 MB

A grid of 80 x 40 points is set up. In all of the following we have to keep in mind, how a grid matrix is
mapped onto a rectangular coordinate system: the column index j marks the x-axis, increasing row numbers i
proceed in negative y-direction.
Two conducting planes forming a capacitor are placed within a grounded rectangle, between the
planes a dielectric area is defined.

set up matrix:

m defines a matrix of operators that tell, how the point i,j on the grid is to be updated (32), v1 and v2 define
the fixed potential on conductor 1and 2 (the warnings on Part specification are harmless...).

v1=1.;v2=0.;(* potential of the electrodes 1 and 2 *)


nz=40; (* # of rows of the grid, divisible by 2 *)
ns=80; (* # of columns of the grid, divisible by 2 *)
u=.;m=.;m=Array[u,{nz,ns}];a=Array[u,{nz,ns}];
mb=Table[0,{nz},{ns}];
=Table[1,{i,1,nz},{j,1,ns}];
eps=4;
exl=20;exr=39;eyd=20;eyu=28; (* dielectric area *)
Do[Do[ [[i,j]]=eps,{i,eyd,eyu}],{j,exl,exr}];
Do[Do[a[[i,j]]=u[[i,j]],{j,1,ns}],{i,1,nz}]
Do[Do[
m[[i,j]]:=Evaluate[0.25(a[[i-1,j]]+a[[i,j-1]]+
a[[i+1,j]]+a[[i,j+1]])+0.0625/ [[i,j]](( [[i,j+1]]-
[[i,j-1]])(a[[i,j+1]]-a[[i,j-1]])+( [[i+1,j]]-
[[i-1,j]])(a[[i+1,j]]-a[[i-1,j]]))],
{j,2,ns-1}],{i,2,nz-1}]

— Part::partd : Part specification u 1, 1 is longer than depth of object.


— Part::partd : Part specification u 1, 1 is longer than depth of object.
— Part::partd : Part specification u 1, 2 is longer than depth of object.
— General::stop :
Further output of Part::partd will be suppressed during this calculation.

boundary conditions:

Do m 1, j : 0., j, 1, ns
Do m nz, j : 0., j, 1, ns
Do m i, 1 : 0., i, 1, nz
Do m i, ns : 0., i, 1, nz

Set location of the conductors in the operator matrix, also stored in mask mb :

xl1=20;xr1=39;yd1=16;yu1=17;xl2=20;xr2=39;yd2=30;yu2=31;
Do[Do[{m[[i,j]]:=v1;mb[[i,j]]=1;},{j,xl1,xr1}],{i,yd1,yu1}]
Do[Do[{m[[i,j]]:=v2;mb[[i,j]]=1;},{j,xl2,xr2}],{i,yd2,yu2}]
18 Pulse.nb

p1 ListPlot3D 1,
ViewPoint 3., 1., 1. , DisplayFunction Identity ;
p2 ListPlot3D mb, ViewPoint 3., 1., 1. ,
DisplayFunction Identity ;
Show p1, p2, DisplayFunction $DisplayFunction

Graphics3D

This picture shows the location of the dielectrics and of the conductors in the plane.

calculate potential

To accelerate the calculation we obtain a rough guess u1 (without dielectrics) on a coarser grid
(# points/4 -> faster ) as initial matrix. u1 has already some similarity to the true distribution:

nz1=nz/2;ns1=ns/2;u1=.;m1=.;
m1=Array[u1,{nz1,ns1}];a1=Array[u1,{nz1,ns1}];
Do[Do[a1[[i,j]]=u1[[i,j]],{j,1,ns1}],{i,1,nz1}]
Do[Do[
m1[[i,j]]:=Evaluate[0.25(a1[[i-1,j]]+a1[[i+1,j]]+a1[[i,j-1]]+
a1[[i,j+1]])],
{j,2,ns1-1}],{i,2,nz1-1}];
Do[m1[[1,j]]:=0.,{j,1,ns1}];
Do[m1[[nz1,j]]:=0.,{j,1,ns1}];
Do[m1[[i,1]]:=0.,{i,1,nz1}];
Do[m1[[i,ns1]]:=0.,{i,1,nz1}];
(* guess for coordinates:old/2;
mb is used to identify location of conductors*)
Do[Do[If[mb[[2i,2j]]==1,m1[[i,j]]=m[[2i,2j]]],{i,nz1}],
{j,ns1}]

— Part::partd : Part specification u1 1, 1 is longer than depth of object.


— Part::partd : Part specification u1 1, 2 is longer than depth of object.
— Part::partd : Part specification u1 1, 3 is longer than depth of object.
— General::stop :
Further output of Part::partd will be suppressed during this calculation.
Pulse.nb 19

Let Laplace do his work...

u1=Table[0.,{i,1,nz1},{j,1,ns1}];
Timing[Do[{u1=m1;
If[Mod[i,500]==0,
Print[i," residual error:",Max[Flatten[Abs[u1-m1]]]]]},
{i,1,1000}]]

6
500 residual error:8.45628 10

8
1000 residual error:2.25683 10

22. Second, Null

The coarse grid u1 is interpolated to calculate intermediate points


for the final higher resolution grid u (j -> x, i -> y)

p ListInterpolation Transpose u1 ;

Control plot of interpolation:

Plot3D p x, y , x, 1, ns1 , y, 1, nz1 ,


PlotRange All, PlotPoints 30, ViewPoint 3., 1., 1.

Control plot of interpolated potential.


20 Pulse.nb

Copy coarse to fine grid as input for the main calculation


(near the border the interpolation has to extrapolate a little):

u=Table[p[j/2,i/2],{i,1,nz},{j,1,ns}];

— InterpolatingFunction::dmval :
1 1
Input value , lies outside the range of data
2 2
in the interpolating function. Extrapolation will be used.
— General::stop : Further output of
InterpolatingFunction::dmval will be suppressed during this calculation.

Once again time for Laplace...

Timing[Do[{u=m;
If[Mod[i,100]==0,{err=Max[Abs[Flatten[u-m]]];
Print[i," residual error: ",err];
If[err<10^-6,Break[]]}]},{i,1,2000}]]

7
1200 residual error: 7.76124 10

120.533 Second, Null

ListPlot3D[u,
ImageSize->400,PlotRange->All,ViewPoint {3.,1.,1.}]

SurfaceGraphics

View of the resulting potential including dielectric material. The dielectric effects on the potential are evident
in the abrupt change of the gradient on the flank to the right of the peak.
Pulse.nb 21

contourplot with fieldlines

A contourplot is generated for later display:

cont ListContourPlot u, ImageSize 400,


PlotRange All, ContourShading False,
Contours 15, DisplayFunction Identity

ContourGraphics

The electric field vector is given as derivative of an interpolated function of the potential u :

wi ListInterpolation Transpose u , InterpolationOrder 1 ;


column index counts increments in x direction,
row index counts increments in y direction
use Transpose
ex Derivative 1, 0 wi ;
ey Derivative 0, 1 wi ;

The lines follow the field from the starting point x0, y0 uphill and downhill as far as possible...

FieldLine ex_InterpolatingFunction, x0_ ,


ey_InterpolatingFunction, y0_ :
Module x x0, y y0, l x0, y0 ,
xxmin Part ex, 1, 1, 1 , xxmax Part ex, 1, 1, 2 ,
yymin Part ex, 1, 2, 1 ,
yymax Part ex, 1, 2, 2 , emod10, xn, yn ,
search uphill
Do emod10 10. ex x, y 2 ey x, y 2 ;
If emod10 0., Break ;
xn ex x, y emod10 x; yn ey x, y emod10 y;
If xn xxmin xn xxmax
yn yymin yn yymax, Break ;
l Append l, xn, yn ; x xn; y yn , n, 1, 5000 ;
x x0; y y0;
search downhill
Do emod10 10. ex x, y 2 ey x, y 2 ;
If emod10 0., Break ;
xn ex x, y emod10 x; yn ey x, y emod10 y;
If xn xxmin xn xxmax
yn yymin yn yymax, Break ;
l Prepend l, xn, yn ; x xn; y yn , n, 1, 5000 ;
Line l

Needs "Graphics`Arrow`"
22 Pulse.nb

Add directional arrows to the fieldlines (Ref. 9, p. 522):

AddArrow Line opts_ , d_, num_: 8 :


Module arr , n 0, pts Chop opts ,
Fold
If First #1 d && n num, n ;
AppendTo arr, Arrow Last #1 , #2, HeadScaling Absolute,
HeadCenter 0.5, HeadLength 4 ;
0, #2 , First #1 Sqrt Apply Plus, Last #1 #2 ^ 2 ,
#2 &, 0, First pts , Rest pts ;
arr

We let n fieldlines run up and down from an ellipse with center xe, ye and half axes a, b. The density of the
field lines is weighted with the strength of the field at the starting points. The dielectric area is indicated with
a grey line. You have to experiment with the parameters to get a decent picture...

xe, ye 30, 16.5 ; a 14; b 10;


n 21; n 3 is the number of angular bins
eps ListInterpolation Transpose ;
sample the field strength on the ellipse
ft Table eps a Cos i 2 n xe, b Sin i 2 n ye
ex a Cos i 2 n xe, b Sin i 2 n ye ^ 2
ey a Cos i 2 n xe, b Sin i 2 n ye ^ 2 , i, 1, n ;
s Apply Plus, ft ;
nl i is number of lines 1
starting in the ith angular bin of the ellipse
nl Round Apply Plus, Transpose Partition ft, 3 s n ;
start ;
array of angles of the
starting points on the ellipse
Do Do AppendTo start, 2 n 3 i 1 j nl i 1 ,
j, 0, nl i , i, 1, n 3 ;
calculate lines one after the other
lines Table FieldLine ex, a Cos start i xe ,
ey, b Sin start i ye , i, 1, Length start ;
add single lines where appropriate
line1 FieldLine ex, 25 , ey, 34 ; AppendTo lines, line1 ;
line2 FieldLine ex, 34 , ey, 34 ; AppendTo lines, line2 ;
arrows Map AddArrow #, 6 &, lines ;
r1,r2 : electrodes, r3: dielectrics
r1 Rectangle xl1, yd1 , xr1, yu1 ;
r2 Rectangle xl2, yd2 , xr2, yu2 ;
r3 Line exl, eyd , exl, eyu ,
Line exl, eyu , exr, eyu , Line
exr, eyu , exr, eyd , Line exr, eyd , exl, eyd ;
Show Graphics GrayLevel 0.8 , Thickness 0.015 , r3 ,
cont, Graphics lines, arrows, r1, r2 , ImageSize 400,
Frame True, DisplayFunction $DisplayFunction
Pulse.nb 23

Graphics

The above picture shows the field and the equipotential lines of two electrodes, the upper one at zero, the
lower at 1. All lines display a kink, whenever they enter or leave the dielectric (the greyish bordered area).

gradient field...

The matrix of gradient vectors needs a complicated build: the last row has same the y component as the row
above, the last column has the same x component as the column to its left:

g Table u i, j 1 u i, j , u i 1, j u i, j ,
i, 1, nz 1 , j, 1, ns 1 ;
lrow Table u nz, j 1 u nz, j ,
u nz, j u nz 1, j , j, 1, ns 1 ;
g Append g, lrow ;
lcol Append Table u i, ns u i, ns 1 ,
u i 1, ns u i, ns , i, 1, nz 1 ,
u nz, ns u nz, ns 1 , u nz, ns u nz 1, ns ;
g Transpose Append Transpose g , lcol ;
24 Pulse.nb

calculate integral over electric field

Use (27) to get C in [F/m] from the field:

9
10
0 ;
35.95
cap 0 Sum i, j g i, j .g i, j , i, 1, nz , j, 1, ns

11
6.28904 10

results for the capacities

The following results were obtained in three runs with the parameters vi as specified :
C11 = 62.9 [pF/m] (v1 = 1, v2 = 0)
C22 = 75.7 [pF/m] (v1 = 0, v2 = 1)
CC = 66.1 [pF/m] (v1 = 1, v2 = 1)
C12 = 0.5 (CC - C11 - C22 ) = - 36.3 [pF/m]

To understand the negative sign of C12 look at (21) with U1 = 1 and all other voltages set to zero. From the
sign of the field produced by the charges on both conductors (see picture of field above) it is seen that for
example C11 and C12 must be of opposite sign.

With (24) follow the coefficients of capacity:

C10 = 26.6 [pF/m]


C20 = 39.4 [pF/m]
C12 = 36.3 [pF/m]

There is good agreement with the theory. The formula from the textbook gives r,eff 0 dAl ≈ 36.8 [pF/m] (enter
A=19, d=13 and r,eff =(8*4+5*1)/(8+5)=2.85 as parameters). It takes into account the mutual capacity C12 of
the two conductors and ignores the surrounding ground.
The values Ci j reflect the geometry of the electrodes and may be combined in various ways to model different
modes of operating this capacitor :
differential: effective C = C12 + C10 C20 = 52.2 [pF/m] ( means here: in series )
electrode 1 grounded (C10 = ) : C = C12 + C20 = 75.7 [pF/m]
electrode 2 grounded (C20 = ) : C = C12 + C10 = 62.9 [pF/m]
The differences are sizeable, because the stray capacities are not negligible.
Pulse.nb 25

Inductances

Definition of Coefficients of Self- and Mutual Inductance

There is a far reaching duality between electric and magnetic fields, voltages and currents, or capacities and
inductances. Because of that, the calculation of the inductance of a circuit proceeds on a terrain already paved
by the previous section.
In a system of n circuits we have the equations

1 = L11 *I1 + L12 *I2 + ... + L1 n *In


2 = L21 *I1 + L22 *I2 + ... + L2 n *In
(33)
n = Ln1 *I1 + Ln2 *I2 + ... + Lnn *In
where i is the magnetic flux, Ii the current through circuit i and the Lij = L ji are called 'coefficients of
mutual inductance', Lii is the self-inductance of circuit i.

Determination of the Coefficients of Inductance in a System of Linear Circuits

The potential energy of system of linear circuits, carrying certain currents Ii , may then be written as

1 n n
W = 2 i 1 j 1 Lij Ii I j . (34)
There will be a magnetic field, whose shape is a consequence of the given geometry, and whose energy
amounts to

1
W = 2 V
B H V. (35)
The energy of a current carrying system of circuits is thus stored in the magnetic field between them. So the
coefficients of inductance may be found through the field. We get the self-inductance per unit length Lii ' of
the linear circuit i out of (34) and (35) after integration over the plane perpendicular to the conductor the field,
which corresponds to the boundary conditions Ii = 1 and all other Ik = 0 :

Lii ' = 0 A Hi Hi x y (36)


After the self-inductance the coefficients of mutual inductance are obtained from

1
Lij ' = 2
( 0 A H ij H ij x y - Lii '- L jj '), (37)
where the indices of H point to the two circuits, whose currents were fixed to 1.

The Magnetic Field H

The magnetic field H can be derived from the vector potential A :

H= A (38)
Ampere's Law ( H = J ) leads with (38) to

A= ( ·A )- A = J, (39)
where J is the current density. In our case we may orient the coordinate systems z axis parallel to the current.
As the vector potential is parallel to the current (Ref. 7, p.304), it has only a z coordinate Az . If in addition
the Coulomb Gauge ( · A = 0) is applied, equation (39) changes to a Poisson equation

Az = - Jz . (40)
The distribution of the currents is not known, what will the boundary condition be like ? This is similar to our
ignorance of the charge distribution in the electric case above (currents = moving charges after all !). For a
way out imagine that currents of magnitude 1 have built up a vector potential according to (40). We cut out all
current carrying conductors 1,...,i,...,n of the plane along their outer surfaces and nail down the values vi of Az
at the cut i, as if the currents were still there. Now the potential satisfies in the current free space a Laplace
equation
26 Pulse.nb

The distribution of the currents is not known, what will the boundary condition be like ? This is similar to our
ignorance of the charge distribution in the electric case above (currents = moving charges after all !). For a
way out imagine that currents of magnitude 1 have built up a vector potential according to (40). We cut out all
current carrying conductors 1,...,i,...,n of the plane along their outer surfaces and nail down the values vi of Az
at the cut i, as if the currents were still there. Now the potential satisfies in the current free space a Laplace
equation

Az = 0 (41)
plus certain boundary conditions. At each line of cut the value of Az will be constant and can be found by trial
and error from the requirement

I= H· l = ( A) · l = ±1 or 0, (42)
if the integration path l is around the surface cut. The task has now become the same as before, namely
numerically solving the Laplace equation with (iteratively determined) boundary conditions.

Mathematica Code (Coaxial Cable)


RAM requirements: Front End 15 MB, Kernel 25 MB

set up matrix:

This code is very similar to the code example of the previous section...

nz=130; (* divisible by 2 *)
ns=130; (* divisible by 2 *)
u=.;m=.;
m=Array[u,{nz,ns}];a=Array[u,{nz,ns}];mb=Table[0,{nz},{ns}];
Do[Do[a[[i,j]]=u[[i,j]],{j,1,ns}],{i,1,nz}]
Do[Do[m[[i,j]]:=Evaluate[0.25(a[[i-1,j]]+a[[i+1,j]]+a[[i,j-1]
]+a[[i,j+1]])],{j,2,ns-1}],{i,2,nz-1}]

— Part::partd : Part specification u 1, 3 is longer than depth of object.


— General::stop :
Further output of Part::partd will be suppressed during this calculation.

boundary conditions:

Do m 1, j : 0., j, 1, ns
Do m nz, j : 0., j, 1, ns
Do m i, 1 : 0., i, 1, nz
Do m i, ns : 0., i, 1, nz
Pulse.nb 27

The value of the vector potential Az at r0 -> v1 has to be adjusted according to (42). The vector potential is in
this case independent of , but changes radially even across the metal. A complete expression is given at the
end of this section. Usually one starts with a guess, here we may use the known value (see (43)) for the coax
cable (cross section Fig.5) :

Figure 5
Figure 5. Inner wire and shield of a coax cable with their corresponding radii.

Because of the complete shielding of the coax the addition of a constant doesn't change the shape of the vector
potential between r0 and r1 . Therefore the vector potential at r1 can be put to zero:

1 r12
Az r = 4 Log r2 . (43)

v1=0.11248766;
v2=0;

Set two circular boundaries at r0 (inner wire) and r1 (shield):

xr, yr, r0, r1, r2 65, 65, 30., 60., 63 ;


2 2
Do Do b j xr i yr ;
If b 0 && b r0 0.0, m i, j : v1; mb i, j 1; ;
If b r1 0.0 , m i, j : v2; mb i, j 1; ,
i, nz , j, ns

If the boundaries are curved, they can only be mapped approximately to a square grid. In all tests the best way
to find the sets of grid line intersection points that belong to the boundary areas and are to be kept fixed during
the relaxation process, was just to include or exclude the points according to the radius of curvature of the
corresponding boundary (see cell above). The general agreement between theory and numerical calculation (
about 2%) could – in the case of coaxial geometry – be somewhat improved (-> 0.5%) by using a radius of
curvature that extends the fixed areas by 0.3 units. But this turned out not to be true for other configurations
like for instance a pair of circular wires.
28 Pulse.nb

calculate potential

Calculate rough guess u1 on coarse grid as input for main calculation:

nz1=nz/2;ns1=ns/2; u1=.;m1=.;
m1=Array[u1,{nz1,ns1}];a1=Array[u1,{nz1,ns1}];
Do[Do[a1[[i,j]]=u1[[i,j]],{j,1,ns1}],{i,1,nz1}]
Do[Do[
m1[[i,j]]:=Evaluate[0.25(a1[[i-1,j]]+a1[[i+1,j]]+a1[[i,j-1]]+
a1[[i,j+1]])],
{j,2,ns1-1}],{i,2,nz1-1}];
Do[m1[[1,j]]:=0.,{j,1,ns1}];
Do[m1[[nz1,j]]:=0.,{j,1,ns1}];
Do[m1[[i,1]]:=0.,{i,1,nz1}];
Do[m1[[i,ns1]]:=0.,{i,1,nz1}];
(* guess for coordinates:old/2 *)
Do[Do[If[mb[[2i,2j]]==1,m1[[i,j]]=m[[2i,2j]]],{i,nz1}],
{j,ns1}]

— Part::partd : Part specification u1 1, 3 is longer than depth of object.


— General::stop :
Further output of Part::partd will be suppressed during this calculation.

Laplace at work...

u1=Table[0.,{i,1,nz1},{j,1,ns1}];
Timing[Do[{u1=m1;
If[Mod[i,500]==0,
err=Max[Flatten[Abs[u1-m1]]];
Print[i," residual error: ",err];
If[err<10^-6,Break[]]]},{i,1,4000}]]

6
500 residual error: 4.21964 10

8
1000 residual error: 2.79694 10

280.867 Second, Null


Pulse.nb 29

Copy coarse to fine grid:

p ListInterpolation u1 ;
u Table p i 2, j 2 , i, 1, nz , j, 1, ns ;
ListPlot3D u, PlotRange All ;

Control plot of interpolated vector potential.

restless Laplace...

Timing[Do[{u=m;If[Mod[i,100]==0,
{err=Max[Abs[Flatten[u-m]]];
Print[i," residual error: ",err];
If[err<10^-6,Break[]]}]},{i,1,7000}]]
30 Pulse.nb

ListPlot3D[u,ViewPoint->{1.300, -2.400, 2.000},


ImageSize->400,PlotRange->All]

The picture shows the resulting vector potential with its logarithmic drop between r0 and r1 .

gradient field...

g Table u i, j 1 u i, j , u i 1, j u i, j ,
i, 1, nz 1 , j, 1, ns 1 ;
lrow Table u nz, j 1 u nz, j ,
u nz, j u nz 1, j , j, 1, ns 1 ;
g Append g, lrow ;
lcol Append Table u i, ns u i, ns 1 ,
u i 1, ns u i, ns , i, 1, nz 1 ,
u nz, ns u nz, ns 1 , u nz, ns u nz 1, ns ;
g Transpose Append Transpose g , lcol ;

0 4. 10 7 ;
Pulse.nb 31

Calculate H l around inner conductor on a circle with radius r and center (xr,yr);
H · l = ( y Az , - x Az ) · (-r d sin , r d cos ) and Az is evaluated at (xr + r cos , yr + r sin )

dphi 100;
i Table Sum rr dphi
g Round yr rr Sin phi , Round xr rr Cos phi ,2
Sin phi g Round yr rr Sin phi ,
Round xr rr Cos phi , 1 Cos phi ,
phi, 0, 2 , dphi , rr, 31, 59
iMean Apply Plus, i Length i

0.997655, 0.99814, 0.997853, 0.995982, 0.993919,


0.99758, 0.995584, 0.998464, 0.995632, 0.998036, 0.997206,
0.996704, 1.0006, 0.998764, 0.998503, 0.999453, 0.999996,
1.00031, 0.999463, 1.00223, 1.00251, 1.00225, 1.00258,
1.00298, 1.00618, 1.00468, 1.00418, 1.00123, 1.01134

1.

The above cell shows the mean of many loop integrals that all should give the same result as long as the
radius rr does not touch other currents. v1 in the cell at the start of this section must be varied such that iMean
becomes 1. The following result is only correct, if the number for iMean is close enough to 1.

result:

With H = ( y Az , - x Az ) and (36) the external inductance (between r0 and r1 ) is in [H/m] :

2 2
Lii ' = 0 A y Az x Az x y, (44)
leading to:

ind 0 Sum g i, j .g i, j , i, 1, nz , j, 1, ns

7
1.40587 10

This is in nice agreement with the theoretical value:

0 r1
Log
2 r0

7
1.38629 10
32 Pulse.nb

For the complete coax including inner wire and shield we have (compare Fig. 5 with r0 = 30, r1 = 60,
r2 = 63; current in the wire =+1, current in the shield =-1) :
• the magnetic Field as function of r (Ref. 7, p.321f) :

r
h r_ : Which r r0, ,r r2,
2 r02
1 r22 r2 1
0., r r1, , True,
2 r r2 22 2 r
r1
Plot h r , r, 0, ns 2 , AxesLabel "r", "H r " ;

• the current density :

jz r_ :
1 1
Which r r0, ,r r2, 0., r r1, , True, 0
2 2
r0 r1 r22
Plot jz r , r, 0, ns 2 , AxesLabel "r", "J r " ;
Pulse.nb 33

• the corresponding vector potential az(r) ( Az r2 is forced to 0 ) :

az r_ : Which
1 r2 r12 r22 r22
r r0, Log Log ,
4 r02 r02 r22 r12 r12
r r2, 0.,
1 r22 r2 r22 r22
r r1, Log ,
4 r22 r12 r22 r12 r2
1 r12 r22 r22
True, Log 1 Log
4 r22 r12 r2 r12
Plot az r , r, 0, ns 2 , AxesLabel "r", "Az r " ;

The coax geometry allows easy comparison of the theoretical value of its self-inductance with the one
that was numerically calculated, because the boundary of the relaxation area has finite extension. Many of the
other configurations of conductors with known self-inductance have boundary values of the vector potential
that are 'zero at infinity' and require larger grids to reach good accuracy.

Some results with other geometries:

Coefficients of capacity of a pair of wires above a grounded plane:

Parameters used in the relaxation:


grid size : 240 * 150, center of wire 1 at (90, 40), center of wire 2 at (150, 40), height h above ground = 40,
distance of wires a = 60, diameter d, s = 1 4 h2 a2 , t = 4 h d , all lengths in grid units, the expressions
for the capacities are found in (Ref. 7, p. 118), capacities in Table 1 are given in [F/m]:
2 0 2 0 ln s
d ln s t
C10 C20 num. 2 2 C12 num.
ln t ln s
11 11 12 12
2 1.14 10 1.2 10 1.5 10 1.15 10
11 11 12 12
4 1.32 10 1.38 10 2.13 10 1.58 10
11 11 12 12
6 1.47 10 1.56 10 2.7 10 2.06 10
Table 1. Analytical (zero at infinity) and numerical capacities of a pair of wires [F/m]

The main contribution to the large differences between the numerical relaxation and the formula from the
textbook stems from the fact that the relaxation, however large a grid is chosen, imposes its boundary condi-
tions at a finite distance, namely the border of the grid, while the formula uses a potential, which is 'zero at
infinity'. To better check the accuracy of the relaxation, a new formula was developed that returns the exact
potential of a charge in a box through the method of images with 'infinite reflection'. If a charge Q is placed
inside a (2 – dimensional, rectangular) box, an infinite number of image charges of alternating sign will
appear in x– and y– direction (Fig. 6). Every remote image adds a term to the potential, which remains finite
because of the alternating sign. They 'compress' the potential function in such a way that its value at the
34 Pulse.nb
The main contribution to the large differences between the numerical relaxation and the formula from the
textbook stems from the fact that the relaxation, however large a grid is chosen, imposes its boundary condi-
tions at a finite distance, namely the border of the grid, while the formula uses a potential, which is 'zero at
infinity'. To better check the accuracy of the relaxation, a new formula was developed that returns the exact
potential of a charge in a box through the method of images with 'infinite reflection'. If a charge Q is placed
inside a (2 – dimensional, rectangular) box, an infinite number of image charges of alternating sign will
appear in x– and y– direction (Fig. 6). Every remote image adds a term to the potential, which remains finite
because of the alternating sign. They 'compress' the potential function in such a way that its value at the
borders of the box is constant.

Figure 6
Figure 6. 'Mirror Cabinet' of a charge and its images in a 2 – dimensional box, the indicated group of 4 charges
constitutes a term (n = 0, m = 1) in the sum below

The summation and reordering of all terms then gives the potential function at the point x, y within the box as
a closed expression:

Q
(x,y) = 2 0 l
f x, y, xs , ys , xq , yq k , where

2 2 2 2
2 n xs x xq 2 m ys y yq 2 n xs x xq 2 m ys y yq
f ln 2 2 2 2
,
m,n 2 n xs x xq 2 m ys y yq 2 n xs x xq 2 m ys y yq

and k is a reference point of the potential on the border. Indices m,n = 0 denote the term in the middle next to
the original charge, each square root represents the distance of a charge to the point P. The meaning of the
variables is explained in Fig. 6. The double sum converges well, only a few tens of terms are needed in x and
y direction. In addition the correct boundary conditions (0, y) = (xs , y) = (x, 0) = (x, ys ) = k are
fulfilled at the edges of the box. For the x – direction this can be seen by writing out a few terms of the sum in
the index n: at x = xs terms n=0 and n=1 cancel, then n=-1 and n=2 and so on, at x = 0 the parts of term n=0
cancel, then -1 and 1, -2 and 2 etc. A similar argument is valid for the y – direction. The boundary conditions
are also evident from the symmetry in Fig. 6 with respect to (x = 0 or x = xs ) or (y = 0 or y = ys ).
Pulse.nb 35

The above double infinite sum is equal to (Ref. 10)


x xq ys y yq ys xs 2 x xq ys y yq ys xs 2
1 1 2 xs xs 2 ys , 1 2 xs xs 2 ys ,
f= 2
ln 1
x xq ys y yq
, ys xs 2
1
x xq ys y yq
, ys xs 2 ,
2 xs xs 2 ys 2 xs xs 2 ys

with the first elliptic theta function defined as (Ref. 8, p.778)


2
1 u, q 2 1 n q n 1 2 sin 2 n 1 u . (The sum converges very fast...)
n 0

A control plot of f displays the typical double periodic behaviour (as in Fig. 6) :

xs 20; ys 30; xq 5.1; yq 4.1; q Exp ys xs ;


ContourPlot 1 2 Log Chop
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q
2 xs 2 xs
x xq y yq
EllipticTheta 1, I ,q ,
2 xs 2 xs
x, 65, 65 , y, 65, 65 ,
PlotPoints 100, ContourShading False

Each one of the four leaves of the "flowers" in the above picture to the left represents the exact distribution of
the potential of a line charge inside a conducting box. The picture to the right shows a section containing just
the central leaf, plotted is the area of the containing box with sides xs and ys.
36 Pulse.nb

The coefficients of capacity of two wires 1 and 2 with diameter d at the positions cited at the begin-
ning of this section may then be found according to (23) and (Ref. 7, p. 118) with
f x1 , y1 d 2, xs , ys , x1 , y1 f11 ,
f x1 , y1 d 2, xs , ys , x2 , y2 f12 ,
f x2 , y2 d 2, xs , ys , x1 , y1 f21 ,
f x2 , y2 d 2, xs , ys , x2 , y2 f22
from
2 0 f22 f12 2 0 f11 f21 2 0 f12 2 0 f21
C10 ' = f11 f22 f12 f21
, C20 ' = f11 f22 f12 f21
, C12 ' = f11 f22 f12 f21
, C21 ' = f11 f22 f12 f21
:

d new formula C10 C20 num. new formula C12 C21 num.
11 11 12 12
2 1.2 10 1.2 10 1.22 10 1.15 10
11 11 12 12
4 1.41 10 1.38 10 1.76 10 1.58 10
11 11 12 12
6 1.56 10 1.56 10 2.26 10 2.06 10
Table 2. Analytical (zero at boundary of the box) and numerical capacities of a pair of wires [F/m]

The agreement (cf. Table 2) is much better for the stray capacities and reasonable for the mutual capacity.

Coefficients of inductance of a pair of wires:

If the current flowing through a circuit is kept constant the magnetic field is insensitive to whether the vector
potential has its zero boundary at infinity or at the border of a box, because the rotation of the vector potential
doesn't change – in contrast to the gradient of the electric potential. This is accounted for in the relaxation
calculation by the necessary readjustment of the vector potential (42) at the edge of the conductors so that the
current stays at 1. Then the formula for the self-inductance (l = 0 Log a r ) and mutual induc-
tance (l12 = 0 2 Log r14 r23 r13 r24 ) from the textbook (Ref. 7, p.316, 325) can be directly
compared to the numerical computation. The calculation was done on a grid of 120 * 90 points, the positions
of the conductors 1 to 4 lying at (60, 50), (50, 50) and (60, 40), (70, 40) respectively. The loop integrals (42)
were taken with radii ranging from 4 to 6 in steps of 0.2, then their mean was used to determine the current.
The results for l1 , the self-inductance of circuit 1, (one circuit at current 1, the other at current zero – as if not
present –), l2 and ll (both circuits at current 1) are given below together with the corresponding values of the
vector potential.

r=1 l = 9.21*10^-7 [H/m]:


l1 = 9.19*10^-7; v1 = 0.370859; v2 = -0.3628862; v3 = -0.06284042; v4 = -0.03036495;
l2 = 9.16*10^-7; v1 = 0.0259072; v2 = 0.0579781; v3 = 0.352414; v4 = -0.381698;
ll = 1.758*10^-6; v1 = 0.396796; v2 = -0.3049608; v3 = 0.289506 v4 = -0.4120585;
r=2 l = 6.44*10^-7 [H/m]:
l1 = 6.65*10^-7; v1 = 0.2702775; v2 = -0.2609418; v3 = -0.0589633; v4 = -0.0294141;
l2 = 6.64*10^-7; v1 = 0.024736; v2 = 0.053704; v3 = 0.250446; v4 = -0.281441;
ll = 1.26*10^-6; v1 = 0.294926; v2 = -0.2073; v3 = 0.191429; v4 = -0.310924;
r=3 l = 4.82*10^-7 [H/m]:
l1 = 4.67*10^-7; v1 = 0.193345; v2 = -0.179803; v3 = -0.0505313; v4 = -0.0272583;
l2 = 4.66*10^-7; v1 = 0.02257533; v2 = 0.045243; v3 = 0.1695425; v4 = -0.203956;
ll = 8.798*10^-7; v1 = 0.215993; v2 = -0.134556; v3 = 0.118963; v4 = -0231246;
Pulse.nb 37

The formula for the mutual inductance had to be modified to include the dependence on the wire radius:

0 r14 r r23 r
l12 r Log .
2 r13 r r24 r

rij denotes the distance of conductors i and j. Three values of the mutual inductance for r = 1, 2, 3, calcu-
lated with relaxation, are shown as black dots, the thin line represents the formula :

The overall agreement of the relaxation calculation with the theoretical expressions is satisfactory.

The procedures developed until now will be applied to calculate the crosstalk of coupled microstrip lines in
the following section.

The Pigtail
The physical dimensions of the pigtail connector for the ATLAS detector are shown in Fig. 7.

Figure 7
Figure 7. Cross section of the Pigtail connector. The conductors have a thickness of 17 .

Size and distance of the 4 conductors and the dielectric foil are mapped onto a 446 * 80 grid to calculate the
coefficients of capacity and inductance of this system. Pairs of conductors are operated as differential lines to
minimize disturbances. The width and distance of the conductors will be 22 and 66 grid squares, the thickness
of the conductors and the dielectric ( = 4) will be 3 and 9 squares. The numbers of squares should be chosen
as large as program memory allows to minimize quantization error.
38 Pulse.nb

Mathematica Code (Coefficients of Induction for the pigtail)


RAM requirements: Front End 40 MB,Kernel 80 MB

v1=1.;v2=1.;v3=0.;v4=0.;(* potential of the electrodes *)


nz=80; (* # of rows of the grid, divisible by 2 *)
ns=446; (* # of columns of the grid, divisible by 2 *)
u=.;m=.;m=Array[u,{nz,ns}];a=Array[u,{nz,ns}];
mb=Table[0,{nz},{ns}];
=Table[1,{i,1,nz},{j,1,ns}];
eps=4;
exl=1;exr=ns;eyd=1;eyu=10; (* dielectric area *)
Do[Do[ [[i,j]]=eps,{i,eyd,eyu}],{j,exl,exr}];
Do[Do[a[[i,j]]=u[[i,j]],{j,1,ns}],{i,1,nz}]
Do[Do[
m[[i,j]]:=Evaluate[0.25(a[[i-1,j]]+a[[i,j-1]]+a[[i+1,j]]+
a[[i,j+1]])+
0.0625/ [[i,j]](( [[i,j+1]]- [[i,j-1]])(a[[i,j+1]]-
a[[i,j-1]])+( [[i+1,j]]- [[i-1,j]])(a[[i+1,j]]-a[[i-1,j]]))],
{j,2,ns-1}],{i,2,nz-1}]
Do[m[[1,j]]:=0.,{j,1,ns}]
Do[m[[nz,j]]:=0.,{j,1,ns}]
Do[m[[i,1]]:=0.,{i,1,nz}]
Do[m[[i,ns]]:=0.,{i,1,nz}]
xl1=80;xr1=102;yd1=11;yu1=14;
xl2=168;xr2=190;yd2=11;yu2=14;
xl3=256;xr3=278;yd3=11;yu3=14;
xl4=344;xr4=366;yd4=11;yu4=14;
Do[Do[{m[[i,j]]:=v1;mb[[i,j]]=1;},{j,xl1,xr1}],{i,yd1,yu1}]
Do[Do[{m[[i,j]]:=v2;mb[[i,j]]=1;},{j,xl2,xr2}],{i,yd2,yu2}]
Do[Do[{m[[i,j]]:=v3;mb[[i,j]]=1;},{j,xl3,xr3}],{i,yd3,yu3}]
Do[Do[{m[[i,j]]:=v4;mb[[i,j]]=1;},{j,xl4,xr4}],{i,yd4,yu4}]
(* uncomment next lines to verify coordinates *)
p1=ListPlot3D[ -1,ViewPoint {3.,1.,1.},
DisplayFunction Identity];
p2=ListPlot3D[mb,ViewPoint {3.,1.,1.},
DisplayFunction Identity];
Show[p1,p2,DisplayFunction $DisplayFunction];

— Part::partd : Part specification u 1, 1 is longer than depth of object.


— Part::partd : Part specification u 1, 1 is longer than depth of object.
— Part::partd : Part specification u 1, 2 is longer than depth of object.
— General::stop :
Further output of Part::partd will be suppressed during this calculation.
Pulse.nb 39

The picture shows the location of the conductors and the dielectric material.

nz1=nz/2;ns1=ns/2;u1=.;m1=.;
m1=Array[u1,{nz1,ns1}];a1=Array[u1,{nz1,ns1}];
Do[Do[a1[[i,j]]=u1[[i,j]],{j,1,ns1}],{i,1,nz1}]
Do[Do[m1[[i,j]]:=Evaluate[0.25(a1[[i-1,j]]+a1[[i+1,j]]+
a1[[i,j-1]]+a1[[i,j+1]])],{j,2,ns1-1}],{i,2,nz1-1}];
Do[m1[[1,j]]:=0.,{j,1,ns1}];
Do[m1[[nz1,j]]:=0.,{j,1,ns1}];
Do[m1[[i,1]]:=0.,{i,1,nz1}];
Do[m1[[i,ns1]]:=0.,{i,1,nz1}];
(* guess for coordinates:old/2;mb:location of conductors *)
Do[Do[If[mb[[2i,2j]]==1,m1[[i,j]]=m[[2i,2j]]],{i,nz1}],
{j,ns1}]
u1=Table[0.,{i,1,nz1},{j,1,ns1}];
Timing[Do[{u1=m1;If[Mod[i,500]==0,
Print[i," residual error:",Max[Flatten[Abs[u1-m1]]]]]},
{i,1,3000}]]

p ListInterpolation Transpose u1 ;
Plot3D p x, y , x, 1, ns1 , y, 1, nz1 ,
PlotRange All, PlotPoints 30, ViewPoint 3., 1., 1.

Control plot of interpolated potential, two conductors at potential 1.


40 Pulse.nb

u=Table[p[j/2,i/2],{i,1,nz},{j,1,ns}];
Timing[Do[{u=m;
If[Mod[i,100]==0,{err=Max[Abs[Flatten[u-m]]];
Print[i," residual error: ",err];
If[err<10^-6,Break[]]}]},{i,1,7000}]]
ListPlot3D[u,
ImageSize->400,PlotRange->All,ViewPoint {3.,1.,1.}];

— InterpolatingFunction::dmval :
1 1
Input value , lies outside the range of data
2 2
in the interpolating function. Extrapolation will be used.
— InterpolatingFunction::dmval :
1
Input value 1, lies outside the range of data
2
in the interpolating function. Extrapolation will be used.
— InterpolatingFunction::dmval :
3 1
Input value , lies outside the range of data
2 2
in the interpolating function. Extrapolation will be used.
— General::stop : Further output of
InterpolatingFunction::dmval will be suppressed during this calculation.

100 residual error: 0.000417988

6
6200 residual error: 1.03883 10

7
6300 residual error: 9.82263 10

8891.7 Second, Null

Potential distribution of the pigtail including dielectrics, with the first two conductors set to potential 1.

cont ListContourPlot u, ImageSize 400,


PlotRange All, ContourShading False,
Contours 15, DisplayFunction Identity
wi ListInterpolation Transpose u , InterpolationOrder 1 ;
Pulse.nb 41

column index counts increments in x direction,


row index counts increments in y direction
use Transpose
ex Derivative 1, 0 wi ;
ey Derivative 0, 1 wi ;
FieldLine ex_InterpolatingFunction, x0_ ,
ey_InterpolatingFunction, y0_ :
Module x x0, y y0, l x0, y0 ,
xxmin Part ex, 1, 1, 1 , xxmax Part ex, 1, 1, 2 ,
yymin Part ex, 1, 2, 1 ,
yymax Part ex, 1, 2, 2 , emod10, xn, yn ,
search uphill
2 2
Do emod10 10. ex x, y ey x, y ;
If emod10 0., Break ;
xn ex x, y emod10 x; yn ey x, y emod10 y;
If xn xxmin xn xxmax
yn yymin yn yymax, Break ;
l Append l, xn, yn ; x xn; y yn , n, 1, 5000 ;
x x0; y y0;
search downhill
2 2
Do emod10 10. ex x, y ey x, y ;
If emod10 0., Break ;
xn ex x, y emod10 x; yn ey x, y emod10 y;
If xn xxmin xn xxmax
yn yymin yn yymax, Break ;
l Prepend l, xn, yn ; x xn; y yn , n, 1, 5000 ;
Line l
Needs "Graphics`Arrow`"
AddArrow Line opts_ , d_, num_: 8 :
Module arr , n 0, pts Chop opts ,
Fold If First #1 d && n num, n ;
AppendTo arr, Arrow Last #1 , #2, HeadScaling Absolute,
HeadCenter 0.5, HeadLength 4 ;
0, #2 , First #1 Sqrt Apply Plus, Last #1 #2 ^ 2 ,
#2 &, 0, First pts , Rest pts ; arr
1
xe, ye 91, 12.5 ; a 13; b 6;
n 21; n 3 is the number of angular bins
eps ListInterpolation Transpose ;
sample the field strength on the ellipse
ft Table eps a Cos i 2 n xe, b Sin i 2 n ye
ex a Cos i 2 n xe, b Sin i 2 n ye ^ 2
ey a Cos i 2 n xe, b Sin i 2 n ye ^ 2 , i, 1, n ;
s Apply Plus, ft ;
nl i is number of lines 1
starting in the ith angular bin of the ellipse
nl Round Apply Plus, Transpose Partition ft, 3 s n ;
start ;
array of angles of the
starting points on the ellipse
Do Do AppendTo start, 2 n 3 i 1 j nl i 1 ,
j, 0, nl i , i, 1, n 3 ;
calculate lines one after the other
42 Pulse.nb

lines Table FieldLine ex, a Cos start i xe ,


ey, b Sin start i ye , i, 1, Length start ;
add single lines where appropriate
line1 FieldLine ex,25 , ey,34 ;
AppendTo lines,line1 ;line2 FieldLine ex,34 , ey,34 ;
AppendTo lines,line2 ;
arrows Map AddArrow #, 6 &, lines ;
r1,r2 : electrodes, r3: dielectrics
r1 Rectangle xl1, yd1 , xr1, yu1 ;
r2 Rectangle xl2, yd2 , xr2, yu2 ;
r3 Rectangle xl3, yd3 , xr3, yu3 ;
r4 Rectangle xl4, yd4 , xr4, yu4 ;
r5 Line exl, eyd , exl, eyu ,
Line exl, eyu , exr, eyu , Line
exr, eyu , exr, eyd , Line exr, eyd , exl, eyd ;
Show Graphics GrayLevel 0.8 , Thickness 0.015 , r5 ,
cont, Graphics lines, arrows, r1, r2, r3, r4 ,
ImageSize 400, Frame True,
DisplayFunction $DisplayFunction

ContourGraphics

Graphics

Field lines and equipotential lines of the pigtail, the two conductors to the left on potential 1, the others on 0.
Pulse.nb 43

g Table u i, j 1 u i, j , u i 1, j u i, j ,
i, 1, nz 1 , j, 1, ns 1 ;
lrow Table u nz, j 1 u nz, j ,
u nz, j u nz 1, j , j, 1, ns 1 ;
g Append g, lrow ;
lcol Append Table u i, ns u i, ns 1 ,
u i 1, ns u i, ns , i, 1, nz 1 ,
u nz, ns u nz, ns 1 , u nz, ns u nz 1, ns ;
g Transpose Append Transpose g , lcol ;

10
2.58572 10

The following results were obtained in runs with the parameters vi as specified :

C11 = 129.529 [pF/m] (v1 = 1, v2 = 0, v3 = 0, v4 = 0)


C22 = 129.527 [pF/m] (v1 = 0, v2 = 1, v3 = 0, v4 = 0)
C33 = 129.527 [pF/m] (v1 = 0, v2 = 0, v3 = 1, v4 = 0)
C44 = 129.529 [pF/m] (v1 = 0, v2 = 0, v3 = 0, v4 = 1)
28
CC12 = 258.572 [pF/m] (v1 = 1, v2 = 1, v3 = 0, v4 = 0) C12 = - 0.242 [pF/m]
CC23 = 258.569 [pF/m] (v1 = 0, v2 = 1, v3 = 1, v4 = 0) C23 = - 0.242 [pF/m]
CC34 = 258.572 [pF/m] (v1 = 0, v2 = 0, v3 = 1, v4 = 1) C34 = - 0.242 [pF/m]
CC13 = 259.049 [pF/m] (v1 = 1, v2 = 0, v3 = 1, v4 = 0) C13 = - 0.0035 [pF/m]
CC24 = 259.049 [pF/m] (v1 = 0, v2 = 1, v3 = 0, v4 = 1) C24 = - 0.0035 [pF/m]
CC14 = 259.059 [pF/m] (v1 = 1, v2 = 0, v3 = 0, v4 = 1) C14 = 0 [pF/m]

Using (24) the coefficients of capacity come out to be

C10 = 129.28 [pF/m] , C20 = 129.04 [pF/m] , C30 = 129.04 [pF/m] , C40 = 129.28 [pF/m] ,
C12 = 0.242 [pF/m] , C23 = 0.242 [pF/m] , C34 = 0.242 [pF/m] ,
C13 = 0.0035 [pF/m] , C24 = 0.0035 [pF/m] ,
C14 =0 [pF/m]

All ten coefficients of capacity form a five node network (Fig. 8). To describe two differential pairs we need
to combine the ten into six effective capacities Cij between the nodes 1 to 4, to each of which all ten coeffi-
cients will contribute. C12 of the first differential line (C1 ' in Fig. 1) is the whole capacity from node 1 to 2.
C34 of the second differential line (C2 ' in Fig. 1) is the total capacity from node 3 to 4. For the coupling
capacity (C12 ' in Fig. 1) there is a special twist: Any change of the potential on node 1 will couple via C13 to
node 3 and via C14 to node 4 and is (because of the dominating Ci0 's) hardly seen as a voltage on the second
pair (common mode rejection of the differential line), the same can be said for changes of potential on node 2;
therefore the coupling is given by

C12 ' = C23 - C24 - (C13 - C14 ). (45)


This completes the expression of all three capacities found in Fig. 1 through the Cij of the pigtail. Their values
will be used in the code example below.
Now in order to find the effective capacity Cij between two nodes i and j we reduce the network node
by node through replacing successively star-type nodes with box-type nets, which are then parallel to the rest
of the network, until there are only two nodes left (Ref. 7, p.31f). As you will see, every reduction blows up
the resulting expression quite a bit, so the symbolic capability of Mathematica comes to good use here.
44 Pulse.nb

Figure 8
Figure 8. Upper part: Most general capacitive network consisting of 5 nodes (0-4).
Lower part: Successive reduction to two nodes

Equation (45) shows how the new box impedance connecting nodes and is expressed by all the star legs:

n
1
Z , Z ,r Z ,r , (46)
1 Z ,r

where n is the number of legs of the star-type node r to be replaced.


The cell below contains an auxiliary function to calculate parallel impedances.

z1 z2
par z1_, z2_ :
z1 z2

We get 6, 3 and at last 1 expression corresponding to the thin lines in the lower part of Fig. 8.
Pulse.nb 45

Replace node 4 :

1 1 1 1
zz10 par z10, z14 z40 Simplify
z40 z14 z24 z34

z10 z24 z34 z40 z14 z34 z40 z24 z34 z40
z10 z24 z34 z24 z34 z40 z14 z24 z34 z24 z40 z34 z40

1 1 1 1
zz20 par z20, z24 z40 Simplify
z40 z14 z24 z34

z20 z24 z34 z40 z14 z34 z40 z24 z34 z40
z24 z34 z40 z14 z20 z34 z34 z40 z24 z34 z40

1 1 1 1
zz30 par z30, z34 z40 Simplify
z40 z14 z24 z34

z30 z24 z34 z40 z14 z34 z40 z24 z34 z40
z24 z34 z40 z14 z34 z40 z24 z30 z34 z40

1 1 1 1
zz12 par z12, z14 z24 Simplify
z40 z14 z24 z34

z12 z24 z34 z40 z14 z34 z40 z24 z34 z40
z12 z24 z34 z40 z14 z34 z40 z24 z34 z40

1 1 1 1
zz13 par z13, z14 z34 Simplify
z40 z14 z24 z34

z13 z24 z34 z40 z14 z34 z40 z24 z34 z40
z24 z13 z34 z40 z14 z34 z40 z24 z34 z40

1 1 1 1
zz23 par z23, z24 z34 Simplify
z40 z14 z24 z34

z23 z24 z34 z40 z14 z34 z40 z24 z34 z40
z24 z34 z40 z14 z23 z34 z40 z24 z34 z40
46 Pulse.nb

Replace node 0:

1 1 1
zzz12 par zz12, zz10 zz20 Simplify
zz10 zz20 zz30
— General::spell1 : Possible spelling error: new
symbol name "zzz12" is similar to existing symbol "zz12".

z12 z20 z30 z24 z34 z40 z14 z34 z40 z24 z34 z40
z10 z24 z34 z30 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40
z30 z20 z24 z34 z40 z14 z34 z40 z24 z34 z40
z12 z20 z24 z34 z40
z14 z20 z34 z34 z40 z24 z34 z40
z10 z34 z24 z30 z40 z20 z30 z40
z12 z30 z24 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40

1 1 1
zzz13 par zz13, zz10 zz30 Simplify
zz10 zz20 zz30
— General::spell1 : Possible spelling error: new
symbol name "zzz13" is similar to existing symbol "zz13".

z13 z20 z30 z24 z34 z40 z14 z34 z40 z24 z34 z40
z10 z24 z34 z30 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40
z20 z30 z24 z34 z40 z14 z34 z40 z24 z34 z40 z13
z24 z30 z34 z40 z14 z34 z40 z24 z30 z34 z40
z10 z24 z34 z30 z40 z20 z30 z40
z13 z24 z30 z40 z20 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40

1 1 1
zzz23 par zz23, zz20 zz30 Simplify
zz10 zz20 zz30
— General::spell1 : Possible spelling error: new
symbol name "zzz23" is similar to existing symbol "zz23".

z23 z20 z30 z24 z34 z40 z14 z34 z40 z24 z34 z40
z10 z24 z34 z30 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40
z20 z30 z24 z34 z40 z14 z23 z34 z40 z24 z34 z40
z10 z24 z34 z23 z30 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40 z23 z30 z34 z40
z24 z30 z34 z40 z20 z34 z30 z40
z23 z30 z34 z40 z24 z30 z34 z40
Pulse.nb 47

Replace node 3:

1 1
zzzz12 par zzz12, zzz13 zzz23 Simplify
zzz13 zzz23
— General::spell1 : Possible spelling error: new
symbol name "zzzz12" is similar to existing symbol "zzz12".

z12 z20 z23 z30 z24 z34 z40 z14 z34 z40 z24 z34 z40
z13 z24 z30 z34 z23 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40
z23 z30 z34 z40 z24 z30 z34 z40
z10 z23 z24 z34 z30 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40
z13 z24 z30 z34 z23 z30 z34 z40
z20 z34 z30 z40 z23 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40 z23 z30 z34 z40
z24 z30 z34 z40 z20 z34 z30 z40
z23 z30 z34 z40 z24 z30 z34 z40
z20 z23 z30 z24 z34 z40 z14 z34 z40 z24 z34 z40
z13 z24 z30 z34 z23 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40
z23 z30 z34 z40 z24 z30 z34 z40
z12 z30 z23 z24 z20 z23 z24 z34 z40
z14 z23 z34 z40 z24 z34 z40
z20 z34 z40 z23 z34 z40 z24 z34 z40
z13 z24 z30 z34 z23 z30 z34 z20
z30 z34 z23 z30 z34 z24 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40 z23 z30 z34
z40 z24 z30 z34 z40 z20 z34 z30 z40
z23 z30 z34 z40 z24 z30 z34 z40
z10 z23 z24 z34 z30 z40 z20 z30 z40
z14 z30 z34 z40 z24 z34 z40
z20 z34 z30 z40 z24 z30 z34 z40
z13 z24 z30 z34 z23 z30 z34 z40
z20 z34 z30 z40 z23 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40 z23 z30 z34
z40 z24 z30 z34 z40 z20 z34 z30 z40
z23 z30 z34 z40 z24 z30 z34 z40
z12 z34 z24 z30 z40 z20 z23 z24 z30 z40
z23 z30 z40 z24 z30 z40
z13 z30 z34 z40 z24 z34 z40 z23 z30 z34
z40 z24 z30 z34 z40 z20 z34 z30 z40
z23 z30 z34 z40 z24 z30 z34 z40
z14 z30 z34 z40 z24 z34 z40 z23 z30 z34
z40 z24 z30 z34 z40 z20 z34 z30 z40
z23 z30 z34 z40 z24 z30 z34 z40
48 Pulse.nb

After entering the capacity values for the impedances, we get C12 = C1 ' from (3) for the first differential line!

z10 1 129.28; z12 1 0.242; z13 1 0.0035; z14 1 0.0001;


z20 1 129.04; z23 1 0.242; z24 1 0.0035; z30 1 129.04;
z34 1 0.242; z40 1 129.28; 1 zzzz12

64.8842

To get C23 between nodes 2 and 3 the numbers 1 and 3 in the capacitors indices swap places (cf. Fig. 8):

z10 1 129.04; z12 1 0.242; z13 1 0.0035; z14 1 0.242;


z20 1 129.04; z23 1 0.242; z24 1 0.0035; z30 1 129.28;
z34 1 0.0001; z40 1 129.28; 1 zzzz12

64.8845

Both the capacities C24 between nodes 2 and 4 (swap numbers 1 and 4) and C13 between nodes 1 and 3
(swap numbers 2 and 3) are identical :

z10 1 129.28; z12 1 0.0035; z13 1 0.242; z14 1 0.0001;


z20 1 129.04; z23 1 0.242; z24 1 0.242; z30 1 129.04;
z34 1 0.0035; z40 1 129.28; 1 zzzz12

64.7649

The capacity C14 between nodes 1 and 4 is (swap numbers 2 and 4):

z10 1 129.28; z12 1 0.0001; z13 1 0.0035; z14 1 0.242;


z20 1 129.28; z23 1 0.242; z24 1 0.0035; z30 1 129.04;
z34 1 0.242; z40 1 129.04; 1 zzzz12

64.7626

Last is C2 ' , the capacity of the second differential line, where 1 is swapped for 4 and 2 for 3 (identical to
C1 ') :

z10 1 129.28; z12 1 0.242; z13 1 0.0035; z14 1 0.0001;


z20 1 129.04; z23 1 0.242; z24 1 0.0035; z30 1 129.04;
z34 1 0.242; z40 1 129.28; 1 zzzz12

64.8842

The remaining effective coupling that determines the crosstalk, evaluates then
with (45) to C12 ' = 0.1173 [pF/m].
Pulse.nb 49

Mathematica Code (Coefficients of inductance of the pigtail)


RAM requirements: Front End 20 MB, Kernel 30 MB

Set v1 - v4 such that the resulting current in the loop integral below has the correct value (-1 or 0 or +1).

v1=0.196581;v2=-0.1947736;v3=0.1947728;v4=-0.196612;
nz=80; (* # of rows of the grid, divisible by 2 *)
ns=446; (* # of columns of the grid, divisible by 2 *)
{xr,yr}={91,12.5};(* center point for contour integral *)
u=.;m=.;m=Array[u,{nz,ns}];a=Array[u,{nz,ns}];
mb=Table[0,{nz},{ns}];
Do[Do[a[[i,j]]=u[[i,j]],{j,1,ns}],{i,1,nz}]
Do[Do[m[[i,j]]:=Evaluate[0.25(a[[i-1,j]]+a[[i,j-1]]+
a[[i+1,j]]+a[[i,j+1]])],
{j,2,ns-1}],{i,2,nz-1}]
Do[m[[1,j]]:=0.,{j,1,ns}]
Do[m[[nz,j]]:=0.,{j,1,ns}]
Do[m[[i,1]]:=0.,{i,1,nz}]
Do[m[[i,ns]]:=0.,{i,1,nz}]
xl1=80;xr1=102;yd1=11;yu1=14;
xl2=168;xr2=190;yd2=11;yu2=14;
xl3=256;xr3=278;yd3=11;yu3=14;
xl4=344;xr4=366;yd4=11;yu4=14;
Do[Do[{m[[i,j]]:=v1;mb[[i,j]]=1;},{j,xl1,xr1}],{i,yd1,yu1}]
Do[Do[{m[[i,j]]:=v2;mb[[i,j]]=1;},{j,xl2,xr2}],{i,yd2,yu2}]
Do[Do[{m[[i,j]]:=v3;mb[[i,j]]=1;},{j,xl3,xr3}],{i,yd3,yu3}]
Do[Do[{m[[i,j]]:=v4;mb[[i,j]]=1;},{j,xl4,xr4}],{i,yd4,yu4}]

nz1=nz/2;ns1=ns/2;u1=.;m1=.;
m1=Array[u1,{nz1,ns1}];a1=Array[u1,{nz1,ns1}];
Do[Do[a1[[i,j]]=u1[[i,j]],{j,1,ns1}],{i,1,nz1}]
Do[Do[
m1[[i,j]]:=Evaluate[0.25(a1[[i-1,j]]+a1[[i+1,j]]+a1[[i,j-1]]+
a1[[i,j+1]])],
{j,2,ns1-1}],{i,2,nz1-1}];
Do[m1[[1,j]]:=0.,{j,1,ns1}];
Do[m1[[nz1,j]]:=0.,{j,1,ns1}];
Do[m1[[i,1]]:=0.,{i,1,nz1}];
Do[m1[[i,ns1]]:=0.,{i,1,nz1}];
(* guess for coordinates:old/2;mb is used to identify
location of conductors *)
Do[Do[If[mb[[2i,2j]]==1,m1[[i,j]]=m[[2i,2j]]],{i,nz1}],
{j,ns1}]
u1=Table[0.,{i,1,nz1},{j,1,ns1}];
Timing[Do[{u1=m1;
If[Mod[i,500]==0,
Print[i," residual error:",Max[Flatten[Abs[u1-m1]]]]]},
{i,1,2000}]]

— Part::partd : Part specification u1 1, 1 is longer than depth of object.


— General::stop :
Further output of Part::partd will be suppressed during this calculation.
50 Pulse.nb

p ListInterpolation Transpose u1 , InterpolationOrder 1 ;


Plot3D p x, y , x, 1, ns1 , y, 1, nz1 , PlotRange All

Control plot of interpolated vector potential.

u=Table[p[j/2,i/2],{i,1,nz},{j,1,ns}];Timing[Do[{u=m;
If[Mod[i,100]==0,{err=Max[Abs[Flatten[u-m]]];Print[i,"
residual error: ",err];If[err<10^-6,Break[]]}]},{i,1,7000}]]
ListPlot3D[u,ImageSize->400,ViewPoint->{1,-4.000,3}];

Vector potential of the pigtail, a current of strength 1 is flowing back and forth in both circuits.
Pulse.nb 51

g Table u i, j 1 u i, j , u i 1, j u i, j ,
i, 1, nz 1 , j, 1, ns 1 ;
lrow Table u nz, j 1 u nz, j ,
u nz, j u nz 1, j , j, 1, ns 1 ;
g Append g, lrow ;
lcol Append Table u i, ns u i, ns 1 ,
u i 1, ns u i, ns , i, 1, nz 1 ,
u nz, ns u nz, ns 1 , u nz, ns u nz 1, ns ;
g Transpose Append Transpose g , lcol ;

0 4. 10 7 ;

The shape of the conductors now suggests an elliptic contour to calculate the current. The elliptic path of the
line integral has to run completely outside of the current. Adjust the half axes a and b accordingly; for high
accuracy it is necessary to control all 4 currents precisely :

dphi 100;
xr, yr 91, 12.5 ;
center point for contour integral 1
i Table Sum dphi
g Round yr b Sin phi , Round xr a Cos phi ,2
a Sin phi g Round yr b Sin phi ,
Round xr a Cos phi , 1 b Cos phi ,
phi, 0, 2 , dphi , a, 13, 20 , b, 5, 10
iMean1 Apply Plus, Flatten i Length Flatten i

1.00863, 1.00161, 1.00454, 1.00039, 0.998661, 0.999783 ,


1.00281, 1.00465, 1.00212, 1.00047, 0.999056, 0.99995 ,
0.998864, 1.00062, 1.00015, 0.99813, 0.997783, 0.998637 ,
1.00116, 1.00143, 1.00126, 0.999359, 1.00027, 1.00031 ,
1.00394, 1.00344, 1.00205, 0.999937, 1.0006, 0.999843 ,
1.00242, 1.00103, 0.998707, 0.997314, 0.998403, 0.99755 ,
0.996741, 1.00119, 0.999394, 0.998253, 0.99902, 0.998298 ,
0.995873, 0.999232, 0.997195, 0.995986, 0.996848, 0.996145

1.
52 Pulse.nb

dphi 100;
xr, yr 179, 12.5 ;
center point for contour integral 2
i Table Sum dphi
g Round yr b Sin phi , Round xr a Cos phi ,2
a Sin phi g Round yr b Sin phi ,
Round xr a Cos phi , 1 b Cos phi ,
phi, 0, 2 , dphi , a, 13, 20 , b, 5, 10
iMean2 Apply Plus, Flatten i Length Flatten i

1.00867, 1.00161, 1.00454, 1.00035, 0.998615, 0.999734 ,


1.00283, 1.00465, 1.00213, 1.00046, 0.999033, 0.999927 ,
0.998885, 1.00063, 1.00015,
0.998121, 0.997766, 0.998623 ,
1.00116, 1.00144, 1.00126, 0.999349, 1.00025, 1.0003 ,
1.00395, 1.00345, 1.00206, 0.999929, 1.00059, 0.999831 ,
1.00243, 1.00104, 0.998716, 0.997309, 0.998397,
0.997544 , 0.996769, 1.00121, 0.999405,
0.998249, 0.999015, 0.998294 , 0.995898,
0.999252, 0.997209, 0.995986, 0.996848, 0.996147

1.

dphi 100;
xr, yr 267, 12.5 ;
center point for contour integral 3
i Table Sum dphi
g Round yr b Sin phi , Round xr a Cos phi ,2
a Sin phi g Round yr b Sin phi ,
Round xr a Cos phi , 1 b Cos phi ,
phi, 0, 2 , dphi , a, 13, 20 , b, 5, 10
iMean3 Apply Plus, Flatten i Length Flatten i

1.00867, 1.00161, 1.00454, 1.00035, 0.998616, 0.999736 ,


1.00283, 1.00465, 1.00213, 1.00046, 0.999034, 0.999928 ,
0.998884, 1.00062, 1.00015, 0.998121, 0.997767, 0.998624 ,
1.00116, 1.00144, 1.00126, 0.99935, 1.00025, 1.0003 ,
1.00395, 1.00345, 1.00206, 0.999929, 1.00059, 0.999832 ,
1.00243, 1.00104, 0.998716, 0.99731, 0.998398, 0.997545 ,
0.996768, 1.00121, 0.999405, 0.99825, 0.999015, 0.998295 ,
0.995897, 0.999252, 0.997209, 0.995987, 0.996849, 0.996148

1.
Pulse.nb 53

dphi 100;
xr, yr 355, 12.5 ;
center point for contour integral 4
i Table Sum dphi
g Round yr b Sin phi , Round xr a Cos phi ,2
a Sin phi g Round yr b Sin phi ,
Round xr a Cos phi , 1 b Cos phi ,
phi, 0, 2 , dphi , a, 13, 20 , b, 5, 10
iMean4 Apply Plus, Flatten i Length Flatten i

1.0087, 1.00165, 1.00456, 1.00037, 0.998629, 0.999733 ,


1.00286, 1.00467, 1.00214, 1.00047, 0.99904, 0.99992 ,
0.99892, 1.00065, 1.00016, 0.998135, 0.997771, 0.998613 ,
1.0012, 1.00147, 1.00128, 0.999367, 1.00025, 1.00029 ,
1.00398, 1.00346, 1.00207, 0.999936, 1.00058, 0.999813 ,
1.00245, 1.00105, 0.998717, 0.997308, 0.99838, 0.997513 ,
0.996784, 1.00121, 0.999398, 0.998239,
0.998989, 0.998252 , 0.995908, 0.999245,
0.997191, 0.995964, 0.996808, 0.996088

1.

If all currents have their required values, then the inductance is:

ind 0 Sum g i, j .g i, j , i, 1, nz , j, 1, ns

7
9.82397 10

Results for the external inductances from the three pairs of currents {1,0},{0,1},and {1,1}:
L1 ' = 0.493248 [ H/m] (v1 = 0.196541, v2 = - 0.196598, v3 = - 0.0018, v4 = - 0.00004)
L2 ' = 0.493260 [ H/m] (v1 = 0.000039, v2 = 0.001824, v3 = 0.196572, v4 = - 0.196572)
LL12 '= 0.982397 [ H/m] (v1 = 0.196581, v2 = - 0.1947736, v3 = 0.1947728, v4 = - 0.196612)

The internal inductance amounts to 8 0 = 5 10 8 [H/m] per conductor (Ref. 7, p.320) and the complete result
is:
L1 ' = 0.593248 [ H/m], L2 ' = 0.593260 [ H/m], LL12 '= 1.182397 [ H/m]

With (37) there is then the mutual inductance that is responsible for the crosstalk:

L12 '= - 3.34 [nH/m].

The negative sign can be understood from the following argument: conductor 1 generates with current +1 a
certain amount of flux between conductors 3 and 4. The flux originating from conductor 2 with current in
opposite direction is closer to the region between conductor 3 and 4 and has therefore (because it depends
logarithmically on the distance) in this place a bigger impact, so that the addition of these two fluxes will give
a negative number.
The obtained values for the capacities and inductances will now be used in the following code to
calculate the propagating pulse.
54 Pulse.nb

Mathematica Code (Animation of Double Pulse including Crosstalk)


RAM requirements: Front End 60 MB, Kernel 20 MB

npl 300; number of plots


12
dt 1. 10 ; 1 psec
dx 0.004; 4 mm
dx
dt
speed of propagation for stability,
trade off with computational speed
m 250; array dimension space distance m dx 1 m
nmax 50000; time considered: nmax dt
pl Round nmax npl ;
snapshot after every pl timesteps
k 2; number of circuits
define input pulse
rise Round 1. 10 9 dt ;
width Round 10.5 10 9 dt ;
fall Round 1. 10 9 dt ;
emp Round 12.5 10 9 dt ;
len rise width fall emp rise width fall;
uin Table 1. j rise, j, 1, rise ;
uin Append uin, Table 1., j, 1, width ;
uin Append uin, Table 1. j fall, j, 1, fall ;
uin Append uin, Table 0., j, 1, emp ;
uin Append uin, Table 1. j rise, j, 1, rise ;
uin Append uin, Table 1., j, 1, width ;
uin Append uin, Table 1. j fall, j, 1, fall ;
uin Append uin, Table 0., j, 1, nmax len ;
uin Flatten uin ;

Parameters per Unit Length:

res 8.; resistance in per meter


res 0
rm ;
0 res
capacitance in F per meter
65. 0.117
cm 10 12 ; now incl crosstalk
0.117 65.
ci Inverse cm ;
inductance in H per meter
0.59325 0.00334
lm 10 6 ; now incl crosstalk
0.00334 0.59326
li Inverse lm ;
zl 220; Termination left
zr 220; Termination right
Pulse.nb 55

Initialization and Setup of Coefficient Matrices:

id IdentityMatrix k ;
u1 u0 Table 0., m , k ; i1 i0 Table 0., m , k ;
2 2
dt 1 dt 1 dt
m1 id ci.li ; m2 ci.li ; m3 ci;
dx 2 dx 2 dx
2
dt
m4 id dt li.rm . id li.ci ;
dx
2
1 dt
m5 id dt li.rm . li.ci ;
2 dx
1 dt
m6 id dt li.rm .li;
2 dx
2 2
dt dt
m8 Inverse id ci.li . id ci.li ;
dx dx
2
dt dt
m9 2 Inverse id ci.li .ci;
dx dx
m10 id dt li.rm;
2
dt dt
m11 2 id dt li.rm . Inverse id li.ci .li ;
dx dx
m12
2 2
dt dt
id dt li.rm .Inverse id li.ci . id li.ci ;
dx dx
output main and 2 adjacent wires
uout 0, 0 ; uout1 0, 0 ; uout2 0, 0 ;

Static Initial Condition:

ListPlot uin, PlotJoined True,


AxesLabel "10 12 sec", "Ampl" ;

Input Pulse on the left side of the pigtail,two pulses of 12.5 nsec length and 12.5 nsec separation.
56 Pulse.nb

Calculate evolution in time and produce animation of the propagating pulses:

Timing
Do
main loop, calculate line n 1 in u and i grid
Do jp1 j 1; jm1 j 1;
u1 j m1.u0 j
m2. u0 jp1 u0 jm1 m3. i0 jp1 i0 jm1 ;
i1 j m4.i0 j m5. i0 jp1 i0 jm1
m6. u0 jp1 u0 jm1 , j, 2, m 1 ;
edges
u1 m u0 m 1
m8. u0 m u1 m 1 m9. i0 m i1 m 1 ;
i1 m m10.i0 m 1 m11. u0 m u1 m 1
m12. i0 m i1 m 1 ;
u1 1 u0 2 m8. u0 1 u1 2
m9. i0 1 i1 2 ;
i1 1 m10.i0 2 m11. u0 1 u1 2
m12. i0 1 i1 2 ;
static boundary conditions open: set i 0,
short: set u 0
u1 m zr i1 m ; termination right with z
u1 1 zl i1 1 ; termination left with z
u1 1, 1 uin n ;
build output
uout Append uout, u1 m, 1 ;
seen on diff line 1 after 1 m
uout1 Append uout1, u1 m, 2 ;
crosstalk on diff line 2 after 1 m
uout2 Append uout2, Max Transpose u1 2 ;
max ampl of crosstalk
u0 u1; i0 i1; advance one step in time
do a snapshot of the voltages
If Mod n, pl 0,
plot voltage wire 1
p1 ListPlot Transpose u1 1 ,
PlotRange 0, m , 0.6, 1.7 ,
PlotJoined True, DisplayFunction Identity ;
plot current wire 1
p2 ListPlot Transpose i1 1 ,
PlotRange 0, m , 0.015, 0.015 ,
PlotJoined True, DisplayFunction Identity ;
plot voltage wire 2
p3 ListPlot Transpose u1 2 ,
PlotRange 0, m , 0.039, 0.039 ,
PlotJoined True, DisplayFunction Identity ;
Show GraphicsArray p1 , p2 , p3 ,
DisplayFunction $DisplayFunction ;
get rid of small numbers to
accelerate calculation
u0 Chop u0 ; i0 Chop i0 ; Print n , n, nmax

Print "Fertig "


Pulse.nb 57

This shows the voltage between line 1 and 2, sampled at the right end of the pigtail (1m), as it would appear
on a scope – leading edge is to the left – :

ListPlot uout, AxesLabel "time ps ", "Ampl"

Graphics

Below is shown the corresponding crosstalk on lines 3 and 4, sampled at the right end of the pigtail, as it
would appear on a scope:

ListPlot uout1, PlotRange All,


AxesLabel "time ps ", "Crosstalk"

Graphics

In both 'scope' pictures above the displayed pulses already contain a reflected part from the right end, where
they are sampled. This is why – you see it clearly in the animation – the second pulse in the first picture is
larger and has a lower baseline.
58 Pulse.nb

In the next plot we see the amplitude of the crosstalk signal as function of time during its motion from
left to right – it is shown before it has reached the right end and is therefore not yet disturbed by reflection,
because the simulated wires in this special run were more than 12 m long – as it rises from zero to its steady
state value (horizontal unit is 1 ps):

Why might the crosstalk be increasing ? For an explanation look at Fig. 9 (Ref. 11, p. 206) :

Figure 9
Figure 9. Accumulation of far end crosstalk

At each instant in time some portion of the main pulse is coupled to the adjacent wire, where it starts propagat-
ing to both ends. As the main pulse has one direction (here: to the right) and travels with the same speed as the
crosstalk portions, everything that goes to the far end arrives at the same time, while the parts going to the left
are distributed in time and see the near end only one after the other. This process continues until a likewise
growing part of the crosstalk starts flowing back to the main wire and an equilibrium is reached.
Pulse.nb 59

Next shown is the shape of the pulse after having travelled on line 1 for about 12m
(horizontal unit is 4mm, leading edge is to the right):

and below the corresponding crosstalk on line 2, it has grown quite a bit :
60 Pulse.nb

One can do many more interesting experiments with this notebook. Let's look as a last thing for now at u/i on
line 1 as function of position along the wire. The following plot displays voltage/current after the first reflec-
tion of the pulse at the right end. Before reflection we have u0 i0 Z0 0.6 65 *1000 = 96 . The line
is terminated with Zx = 220 . After reflection there is a superposition of the original pulse with the return-
ing component: u = u0 *(1+ (Zx -Z0 )/ (Zx +Z0 )), i = i0 *(1- (Zx -Z0 )/ (Zx +Z0 )), so that u/i = Zx .

Graphics

Conclusion
Tools have been presented that allow the detailed analysis of crosstalk on coupled linear conductors
within the time domain. They also let you determine the capacities and inductances of linear conductors of
arbitrary shape. All you have to do is to adapt the contour and the height of the potential boundaries and run
the code example. The resulting values may be entered into the corresponding matrices of the telegraph
equations to simulate and watch pulse propagation.
A simple formula was derived that lets you calculate the exact potential of a line charge in a rectangu-
lar box and hence the capacity of a wire inside a rectangular shield.
Crosstalk is a dynamic phenomenon. Although the coupling – capacitive and inductive – of the pigtail
is surprisingly small, the amplitude of the crosstalk pulse grows considerably until it gets to an asymptotic
value: In this case it reaches 2-3% after 1 m length and attains its equilibrium amplitude of well over 18%
(even 30% if related to the damped pulse on line 1) after running about 13 m or 80 necs.
The ratio voltage/current is determined first by the impedance Z0 , after the pulse has suffered reflec-
tion at the end of the conductor, the ratio changes to Zx , the value of the terminating resistor.

References
(1) Reisch: Elektronische Bauelemente, Springer, 1998
(2) Unger: Elektromagnetische Wellen auf Leitungen, Hüthig, 4. Auflage, 1996
(3) Press et. al.: Numerical Recipes in Fortran, Cambridge University Press, Second Edition, 1992
(4) Ganzha,Vorozhtsov: Numerical Solutions for Partial Differential Equations, CRC Press, 1996
(5) Simonyi: Theoretische Elektrotechnik, Barth, 10. Auflage, 1993
(6) Jackson: Classical Electrodynamics, Wiley & Sons, Third Edition, 1998
(7) Küpfmüller, Kohn: Theoretische Elektrotechnik und Elektronik, Springer, 15. Auflage, 2000
(8) Wolfram: The Mathematica Book, Wolfram Media, Inc., Fourth Edition, 1999
(9) Wickham-Jones: Mathematica Graphics, Springer, 1994
(10) with help from D. Zagier, MPI für Mathematik, Bonn
(11) Johnson,Graham: High Speed Digital Design, Prentice Hall PTR, 1993

You might also like