Example:Radio-frequency single electron transistor
From Pynomo
RF-SET | |
![]() | |
author | Leif Roschier |
---|
Contents
Theory and background
Radio-frequency single-electron transistor (RF-SET) is a sensitive charge detector. It's charge sensitivity [math]\delta q [e/\sqrt{Hz}]\,[/math] in normal (not superconducting) operation is typically set by pre-amplifier noise temperature [math]T_0 [K]\,[/math], charging energy [math]E_C [J]\,[/math], transistor island electron temperature [math]T [K]\,[/math], SET high bias DC resistance [math]R_\Sigma [\Omega]\,[/math] and LC-transformer impedance [math]Z_{TR} [\Omega]\,[/math] according to relation [1]
[math]\delta q \approx \frac{2(3\frac{R_\Sigma}{Z_{TR}}+\frac{Z_{TR}}{Z_T}) \sqrt{k_B T_0 Z_T}}{2\times 0.41 t^{-1.74} 0.9 E_C/e^2}. \,[/math]
References
- ↑ L. Roschier, M. Sillanpää, W. Taihong, M. Ahlskog, S. Iijima and P. Hakonen, “Carbon nanotube radio-frequency single-electron transistor”, Journal of Low Temperature Physics, 136, 465 (2004).
Construction of the nomograph
The equation is written as split into two equations that each are blocks:
[math]-\log(\delta q)+x+\frac{1}{2}\log(k_B T_0 Z_T)-\log(0.9(k_B E_C)^{2.74}-\log(0.41(k_B T)^{-1.74}/e)=0\,[/math] | type 3 |
[math]\exp(x) = (3\frac{R_\Sigma}{Z_{TR}}+\frac{Z_{TR}}{Z_T})[/math] | type 5 |
Generated nomograph
Second order equation | |
---|---|
![]() |
|
Generated portable document file (pdf): | File:Ex rfset.pdf |
Source code
""" ex_rfset.py Sensitivity of radio-frequency single electron transistor (RF-SET). Copyright (C) 2007-2008 Leif Roschier This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """ from nomographer import * # for testing R_sigma=60e3 Z_tr=800.0 t=0.2 k_b=1.3806504e-23 T_0=4.0 Z_T=50.0 E_C=2.0*k_b e=1.3806504e-19 T=t*E_C/k_b d_q = 2.0*(3.0*R_sigma/Z_tr+Z_tr/Z_T)*sqrt(k_b*T_0*Z_T)/(2.0*0.41*t**(-1.74)*0.9*E_C/e**2)/e print "for testing...d_q: %g"%d_q def f_dq(q): return -log(q*1e-6)-14.0 # additional const for helping scale alignment def f_t0(t0): return 0.5*log(k_b*t0*Z_T)+14.0 # additional const for helping scale alignment def f_ec(ec): # [K] return -log(0.9*(k_b*ec)**2.74)-150.0 # additional const for helping scale alignment def f_t(t): return -log(0.41*(k_b*t)**-1.74/e)+150.0 # additional const for helping scale alignment def f_rs(rs): return rs*1e3 def f_ztr(x,ztr): return (exp(x)-ztr/Z_T)*ztr/3.0 block_contour_params={ 'width':10.0, 'height':5.0, 'block_type':'type_5', 'u_func':f_rs, 'v_func':f_ztr, 'u_values':[10.0,20.0,30.0,40.0,50.0,60.0,70.0,80.0,90.0,100.0], 'v_values':[100.0,200.0,400.0,800.0,1600.0], 'wd_tag':'AA', 'u_title':'$R_\Sigma (k\Omega )$', 'v_title':r'$Z_{TR}$', 'v_text_format':r"$%3.0f k\Omega$ ", 'u_text_format':r"$%3.0f$ ", 'mirror_y':False, 'wd_tick_levels':0, 'wd_tick_text_levels':0, } # this is non-obvious trick to find bottom edge coordinates of the grid in order # to align it with N nomogram block1_dummy=Nomo_Block_Type_5(mirror_x=False) block1_dummy.define_block(block_contour_params) block1_dummy.set_block() x_params={ 'u_min':block1_dummy.grid_box.params_wd['u_min'], 'u_max':block1_dummy.grid_box.params_wd['u_max'], 'function':lambda u:u, 'title':'', 'tag':'AA', 'tick_side':'right', 'tick_levels':2, 'tick_text_levels':2, 'reference':False, 'tick_levels':0, 'tick_text_levels':0, 'title_draw_center':True, 'text_format':r"$%3.2f$ " } N_params_1={ 'u_min':0.5, 'u_max':20.0, 'function':f_ec, 'title':r'$E_C$', 'tick_levels':4, 'tick_text_levels':3, 'scale_type':'log', } N_params_2={ 'u_min':0.1, 'u_max':20.0, 'function':f_t, 'title':r'$T$', 'tick_levels':4, 'tick_text_levels':3, 'scale_type':'log', } N_params_3={ 'u_min':0.5, 'u_max':100.0, 'function':f_dq, 'title':r'$\delta q$', 'tick_levels':4, 'tick_text_levels':2, 'scale_type':'log', } N_params_4={ 'u_min':0.1, 'u_max':20.0, 'function':f_t0, 'title':r'$T_0$', 'tick_levels':2, 'tick_text_levels':1, 'scale_type':'log', } block_1_params={ 'block_type':'type_3', 'width':5.0, 'height':10.0, 'mirror_x':True, 'reference_padding':0.05, 'f_params':[N_params_1,N_params_2,N_params_3, N_params_4,x_params] } main_params={ 'filename':'ex_rfset.pdf', 'paper_height':20.0, 'paper_width':20.0, 'block_params':[block_1_params,block_contour_params], 'transformations':[('rotate',-0.01),('scale paper',)], 'title_str':r'' } Nomographer(main_params)