In [1]:
from cpwprop import *
from helprop import *
import matplotlib.pyplot as plt
from scipy.constants import c
%matplotlib inline
In [2]:
# Default values
default = {'length': [7153E-6],
'conductorWidth': [20E-6],
'gapWidth': [10E-6],
'conductorThickness': [100E-9],
'resonatorType': 'quarter',
'conductorMaterial': 'Niobium Nitride',
'substrateMaterial': 'Silicon',
'temperature': [3],
'couplingCapacitance': [10E-15],
'loadBoundaryCondition': 'Short',
'mode': [1]}
In [9]:
# Instantiate a CPWResonator object
mCPW = CPWResonator(length = default['length'],
conductorWidth = default['conductorWidth'],
gapWidth = default['gapWidth'],
conductorThickness = default['conductorThickness'],
resonatorType = default['resonatorType'],
conductorMaterial = default['conductorMaterial'],
substrateMaterial = default['substrateMaterial'],
temperature = default['temperature'],
couplingCapacitance = default['couplingCapacitance'],
loadBoundaryCondition = default['loadBoundaryCondition'],
mode = [1,2,3,4,5,6])
In [10]:
# Display the coupled resonance frequencies
pd.DataFrame(mCPW.coupledResonantFrequency()/10**9, columns=['frequency (GHz)'], index=mCPW.mode)
Out[10]:
The required length of the resonator (assuming no shifts due to effects of temperature, capacitive coupling, etc) such that the corresponsing harmonic matches a given frequency are calculated below,
In [6]:
def length(cpw, frequency):
m = cpw.getModeFactor()
return (c / np.sqrt(cpw.effectivePermittivity())) / (m * frequency)
state_1 = State(n=68, L=67, S=1, M=67)
state_2 = State(n=69, L=68, S=1, M=68)
atomFreq = transition_energy(state_1, state_2, units='ghz')
lengths = length(mCPW, atomFreq*10**9)
print('Transition frequency ({} -> {}): {:.3f} GHz'.format(state_1, state_2, atomFreq))
In [7]:
pd.DataFrame(list(map(int, lengths*10**6)), columns=['length (mm)'], index=mCPW.mode)
Out[7]:
In [13]:
# Display all of the properies of a particular mode
mCPW = CPWResonator(length = default['length'],
conductorWidth = default['conductorWidth'],
gapWidth = default['gapWidth'],
conductorThickness = default['conductorThickness'],
resonatorType = default['resonatorType'],
conductorMaterial = default['conductorMaterial'],
substrateMaterial = default['substrateMaterial'],
temperature = default['temperature'],
couplingCapacitance = default['couplingCapacitance'],
loadBoundaryCondition = default['loadBoundaryCondition'],
mode = [3])
mCPW.info()
Out[13]:
In [ ]: