next up previous index
Next: 4.2.3 Random Number Generator Up: 4.2 Code structure Previous: 4.2.1 Graphical User Interface

4.2.2 Flow Chart

  The important steps SIMON is going through during a simulation run are shown in the flow chart in Fig. 4.4. A parser written in lex/yacc [77] reads in the circuit description and stores the information in linked lists. Then the equation system linking known
  
Figure 4.4: Flow chart of the inner loop of SIMON.
\includegraphics{flow_chart.eps}  

quantities with unknown ones are assembled. Afterwards the inner loop is entered where change in free energy, tunnel rate and the exponentially distributed duration between tunnel events for each possible event are computed. The event with the smallest duration is the winner and is used to compute the new state of the circuit. In the case of a  transient simulation with time dependent voltage sources one more test has to be passed before the time is advanced and a new event is simulated. If the  duration to the next tunnel event is bigger than a user defined time constant $\tau_{\text{max}}$, which should be smaller than the smallest characteristic time constant of the voltage sources, no tunnel event takes place and the time is only advanced by the user defined time constant $\tau_{\text{max}}$. A good choice for $\tau_{\text{max}}$ is $\tau_{\text{max}} < 1/4f_{\text{max}}$, where $f_{\text{max}}$ is the maximum frequency of any voltage source present. A too long duration to the next tunnel event means that in the computed tunnel interval the voltage sources have changed considerably which demands a recalculation of tunnel rates. In Fig. 4.5 one can see that if the smallest time between two tunnel events, $\tau_a$, is too big, the interval has to be partitioned into smaller steps $\Delta t$.
  
Figure 4.5: If the characteristic time constant of time dependent voltage sources is smaller than the duration to the next tunnel event, a finer time resolution has to be chosen to achieve more accurate transient behavior.
\includegraphics{tunnel_duration1.eps}

Therefore the time is advanced only by $\Delta t$, time dependent voltage sources are updated, and a new event is computed. In this way transient behavior is simulated more accurately. This method preserves the statistics of tunneling accurately to the first order. The probability that a tunnel event happens sometime before $\tau_a$ is
 \begin{gather}
P(t<\tau_a)=\frac{1}{\Gamma}\int_0^{\tau_a}e^{-\Gamma t}\,dt=
(1-e^{-\Gamma \tau_a}),
\end{gather}
where the factor $1/\Gamma$ in front of the integral is a normalization factor to make the probability unity for $\tau_a\rightarrow\infty$. The probability that the event happens in the short time $\Delta t$ is thus $1-\exp(-\Gamma\Delta t)$. If $\tau_a$ is split up into n intervals $\Delta t$ long, one gets for the probability that the event happens within $n\Delta t$
\begin{gather}P(t<\tau_a)=n(1-e^{-\Gamma\Delta t})=n\left(1-1+\Gamma\Delta t-
\...
...a^2\Delta t^2}{2}+\ldots\right)=
\Gamma n\Delta t + O(\Delta t^2),
\end{gather}
which is correct to the first order with (4.1).


next up previous index
Next: 4.2.3 Random Number Generator Up: 4.2 Code structure Previous: 4.2.1 Graphical User Interface

Christoph Wasshuber