Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

microstrip.cc

Go to the documentation of this file.
00001 // microstrip.cc
00002 
00003 // Create a superconducting microstrip line and use it to make a
00004 // simple 1/4 wave transformer, matching 30 Ohms to a 10 Ohm load
00005 // at 230 GHz.
00006 
00007 #include "supermix.h"
00008 
00009 int main()
00010 {
00011   device::T  = 4.2*Kelvin;  // operating temperature
00012   device::f  = 230*GHz;     // this is the design frequency for the match
00013   device::Z0 = 30*Ohm;      // one of the imdepances to match 
00014 
00015 
00016   // The materials and the microstrip:
00017 
00018   super_film nb;
00019     nb.Vgap       = 2.9*mVolt;
00020     nb.Tc         = 9.2*Kelvin;
00021     nb.rho_normal = 5.0*Micro*Ohm*Centi*Meter;
00022     nb.Thick      = 3000*Angstrom;
00023 
00024   const_diel SiO(5.6, .0001), air(1.0,0);
00025 
00026   microstrip line;
00027     line.superstrate(air).substrate(SiO).top_strip(nb).ground_plane(nb);
00028     line.sub_thick = 2500*Angstrom; 
00029 
00030 
00031   // Determine the microstrip line width and length:
00032 
00033   double Zo = sqrt(30*Ohm * 10*Ohm); // match the real part of Zchar to this
00034 
00035   line.width = 1.0*Micron;           // initial guess for line width
00036   while( fabs(line.Zchar(device::f,device::T).real/Zo - 1.0) > 1.0e-6 )
00037     // increase width if Zchar too high, decrease width if too low:
00038     line.width *= line.Zchar(device::f,device::T).real/Zo;
00039 
00040   line.length = .25 * 2*Pi/line.Kprop(device::f,device::T).imaginary;
00041 
00042 
00043   // test the transformer response:
00044 
00045   zterm load(10*Ohm);
00046   cascade stub;
00047     stub.add(line).add(load);  // now we have a 1-port line terminated by load
00048 
00049   cout << "# 1/4 wave superconducting Niobium/SiO microstrip transformer" << endl
00050        << "# to match 10 Ohms to 30 Ohms at " << device::f/GHz << " GHz." << endl;
00051 
00052   cout << endl
00053        << "# Microstrip physical characteristics:" << endl
00054        << "#  Temperature:   " << device::T/Kelvin << " Kelvin" << endl
00055        << "#  Nb  thickness: " << nb.Thick/Angstrom << " Angstrom" << endl
00056        << "#  SiO thickness: " << line.sub_thick/Angstrom << " Angstrom" << endl
00057        << "#  line width:    " << line.width/Micron << " Micron" << endl
00058        << "#  line length:   " << line.length/Micron << " Micron" << endl
00059        << "#  line Zo:       " << line.Zchar(device::f,device::T).real/Ohm
00060        << " Ohm" << endl;
00061 
00062   cout << endl
00063        << "# f(GHz)" << "\t" << "Match (dB)" << endl
00064        << "# ------" << "\t" << "----------" << endl;
00065 
00066   for(device::f = 200*GHz; device::f <= 260*GHz; device::f += 5*GHz) {
00067     cout << "  " << setw(6) 
00068          << device::f/GHz << "\t" << stub.get_data().SdB(1,1) << endl;
00069   }
00070 
00071 }

Please direct comments and corrections to supermix@submm.caltech.edu
Go to the supermix home page
Generated by doxygen1.2.7