2. Capacitance Matrix

This section explains the theory behind the capacitance solver and clarifies some of the terms used in the API.

Consider a multi-conductor system shown in Fig. 2.6. The system consists of \(N+1\) perfect conductors surrounded by a perfect, possibly inhomogeneous, dielectric medium. Potential on the ground conductor is assumed to be zero.

Multi-conductor system

Fig. 2.6 Multi-conductor system under consideration

The system consists of \(N+1\) perfect conductors surrounded by a perfect, possibly inhomogeneous, dielectric medium. The potential on the ground conductor is assumed to be zero.

In the steady state, a linear relationship exists between the potentials and charges on the surfaces of the conductors, which can be written as follows [Che92, HD08, MSM12]:

(2.14)\[\begin{split}\begin{pmatrix} Q_1 \\ Q_2 \\ \vdots \\ Q_N \end{pmatrix} = \begin{pmatrix} C_{11} & C_{12} & \cdots & C_{1N} \\ C_{21} & C_{22} & \cdots & C_{2N} \\ \vdots & \vdots & \ddots & \vdots \\ C_{N1} & C_{N2} & \cdots & C_{NN} \end{pmatrix} \cdot \begin{pmatrix} \varphi_1 \\ \varphi_2 \\ \vdots \\ \varphi_N \end{pmatrix},\end{split}\]

or more complactly as

(2.15)\[\mathbf q = \mathbf C \boldsymbol {\varphi}.\]

The matrix \(\mathbf C\) is referred to as the capacitance matrix of the multi-conductor system.

One can find the coefficients \(C_{ij}\) of this matrix as follows [MSM12]:

(2.16)\[C_{ij}=\frac{Q_i}{\varphi_j} \Bigg|_{\varphi_{k\ne j} = 0},\]

where \(Q_i\) is the charge that accumulates on the surface of conductor \(i\) when all potentials except \(\varphi_j\) are set to zero. This charge can be found by solving for \(\varphi\) using Poisson’s equation \(\nabla \cdot \left(\epsilon\nabla\varphi\right) = 0\) with appropriate boundary conditions and using Gauss’ law to compute the charge [Che92] at each conductor.

The multi-conductor system can also be represented as the following circuit [Che92]:

Lumped element model

Fig. 2.7 Lumped element circuit representation of the multi-conductor system

where the lumped capacitors \(c_{ij}\) between the nodes are related to the coefficients \(C_{ij}\) of the capacitance matrix as follows:

(2.17)\[\begin{split}C_{ij} = \begin{cases} c_{i0} + c_{i1} + \ldots + c_{iN}, & i = j\\ -c_{ij}, & i \ne j \end{cases}.\end{split}\]

The energy stored in the system due to the capacitive couplings between conductors is given by [RCP+21],

(2.18)\[T = \frac{1}{2}\dot{\boldsymbol{\phi}^T}\mathbf{C}\dot{\boldsymbol{\phi}}\]

where \(\boldsymbol{\phi}\) is the vector of node fluxes, which is related to the vector of potentials by

(2.19)\[\boldsymbol{\phi}(t) = \int_{-\infty}^{t} \boldsymbol{\varphi}(t') dt'.\]

In Eq. (2.18), the dot operator indicates the time derivative.

The capacitance matrix plays an important role in describing the behaviour of superconducting quantum circuits. In particular, Eq. (2.18) can be interpreted as the kinetic energy [RCP+21] in the Lagrangian description of the circuit.

Boundary conditions

The boundary conditions of the device are used by the solver to find the electric potential when each of the signal conductors is selected to have a nonzero potential (while the rest are forced to \(\varphi_\mathrm{bias} = 0\)) [MSM12]. The boundary conditions supported by the capacitance solver are Dirichlet and natural boundary conditions outlined here. In the capacitance solver they are treated as follows:

  • Dirichlet boundary conditions: The \(\varphi_\mathrm{bias}\) is ignored and the voltage bias configurations are varied to find the corresponding elements of the capacitance matrix [MSM12].

  • Natural boundary conditions: These boundary conditions are handled in the same way as in the linear Poisson equation solver.

Signal and ground conductors

The capacitance Solver requires users to define the surfaces of conductors. Those can be separated into two groups:

  • Signal conductors (such as conductors 1, 2, …, \(N\) in Fig. 2.6)

  • Ground conductors (such as the ground conductor in Fig. 2.6).

The conductors are specified by assigning Dirichlet boundary conditions (API reference) to their surfaces.

The signal conductors need to be explicitly specified via the signal_conductors attribute of the Solver class. This attribute is defined using the signal_conductors argument of the __init__ method of the of the Solver class. All other Dirichlet boundaries are then assumed to be ground conductors.