************************************************************************** * * IPAT - Interferometer Threshold Curve Plotter * * Stephen R. Whiteley (stevew@srware.com) * *************************************************************************** * $Id: README,v 2.6 2002/08/10 23:47:24 stevew Exp $ *************************************************************************** IPAT is a program for displaying the threshold characteristics of two and three Josephson junction interferometers. It is free software, with no guarantees of any sort. Author: Stephen R. Whiteley (stevew@srware.com) Introduction ------------ IPAT is a program for plotting the interference threshold curves of two and three Josephson junction interferometer devices. IPAT runs under UNIX with X Windows, or under Cygnus NT with X support. The author of IPAT is Stephen R. Whiteley, and comments or bug reports should be sent to stevew@srware.com. Presently, IPAT makes the following assumptions: 1. The coupled flux is represented by a current in the loop inductors with a transfer ratio set by the user when IPAT starts. 2. The gate current injected into the three junction interferometer is split between the two branches. The fraction going to the left branch is an input parameter. 3. The junctions are perfect RSJ with no coupled flux. Within these assumptions, the computation is exact, to within an iteration tolerance of .1 percent. The algorithms used have been discussed in the literature, and are implemented in an efficient manner which provides rapid computation. References: Won-Tien Tsang and T. Van Duzer, "The analysis of parallel arrays of two and three Josephson junctions," J. Appl. Phys., Vol. 46, No. 10, pp. 4573-4580, October 1975. Tsang and Van Duzer outline the Lagrange multiplier method of solving the interferometer equations, which is the method used in IPAT for three junction interferometers. R. L. Peterson and C. A Hamilton, "Analysis of threshold curves for superconducting interferometers," J. Appl. Phys., Vol. 50, No. 12, pp.8135-8142, December 1979. Peterson and Hamilton provide a useful approximate screening condition for determining which solutions are unstable. E. O. Schulz-DuBios and P. Wolf, "Static Characteristics of Josephson Interferometers," Appl. Phys. (Springer-Verlag), Vol. 16, pp. 317-338, 1978. Shulz-DuBois and Wolf provide detailed analysis of the stability criteria. Gregory S. Lee, "A simple physical principle for determining mode boundaries in superconducting loop circuits," J. Appl. Phys., Vol 66, No. 6, 15 September 1989. Lee shows an interesting connection between the small-signal model of an interferometer circuit and the general equations governing the threshold behavior. The two-junction solution: Basic equations: (1) It = Ic1*sin(phi1) + Ic2*sin(phi2) (gate current) (2) FLX = phi1 - phi2 + PHI*( L1*Ic1*sin(phi1) - L2*Ic2*sin(phi2) ) (external flux) (3) 1/(Ic1*cos(phi1)) + 1/(Ic2*cos(phi2) + PHI*(L1+L2) = 0 (The auxiliary condition) This expression can be derived by introducing a Lagrange multiplier m, and setting I~ = It + m*FLX. Equating dI~/dphi1 = 0 and dI~/dphi2 = 0 yields (3). where It threshold gate current FLX externally applied flux There are two junctions, one with phase phi1 and critical current Ic1, and similar for the second junction. The loop inductance is split between L1 and L2, whth the gate current driving the connection point. L1 connects to J1, and L2 connects to J2. The algorithm is to simply loop over phi1, then again over phi2 to better fill in the curve, using (3) to get the other angle. Equations (1) and (2) provide a locus of points which define the threshold curve. Three junction solution: Basic equations: sN = IcN*sin(phiN) cN = icN*cos(phiN) (1) It = s1 + s2 + s3 = Il + Ir, Il/It = C ( C is splitting fraction ) (gate current) (2) f1 = phi1 - phi2 + PHI*(L1*s1 - L2*(C(s2 + s3) + (C-1)*s1)) + Order1 (left loop flux) f2 = phi2 - phi3 + PHI*(L3*((1-C)*(s1 + s2) - C*s3) - l4*s3) + Order2 (right loop flux) (3) I~ = It + A*(f1 terms) + B*(f2 terms) (lagrange multipliers) (4) Partial derivatives phi1: c1 + A * (1 + PHI*L1*c1 + (1-C)*PHI*L2*c1) + B * (1-C)*PHI*L3*c1 = 0 phi2: c2 - A * (1 + C*PHI*L2*c2) + B * (1 + (1-C)*PHI*L3*c2) = 0 phi3: c3 - A * C*PHI*L2*c3 - B * (1 + PHI*L4*c3 + C*PHI*L3*c3) = 0 (5) FLX = f1 + f2 (total external flux) (6) (L3+L4)*f1 - (L1+L2)*f2 = 0 (assume the flux is coupled through the loop inductance) A common control line divides the flux between the two loops as above. We loop over phi1, then phi2, and finally phi3, to ensure that the curves are filled in. Given one angle, (4) and (6) are used to find the other two, using a Newton-Rhapson numerical solution algorithm. (1) and (5) provide the locus of points which represent the threshold. Before plotting, we discard any points where PHI*Ic1*cos(phi1)*(L1+L2) < -1, or PHI*Ic2*cos(phi3)*(L3+L4) < -1. These points represent nonphysical solutions. The above conditions are not rigorously sufficient to eliminate all such solutions, but in practice there does not seem to be a problem. This process is repeated with Order1 set to 2*PI to get the secondary thresholds (where the two loops differ by one flux quantum), and Order2 is set to -2*PI and the process is again repeated to get the third order thresholds (loops differ by two flux quanta). Building and Installing IPAT ---------------------------- 1. Run the configure script: Type ./configure The configure script can take the --prefix=/some/path argument, which will direct installation into /some/path/bin rather than the default /usr/local/bin. 2. Compile: Type make 3. Install: Become root, and type make install 4. Read the ipatrc file note, and if desired install the file in your home directory as per instructions. Under Windows, the home directory can be specified by setting the $HOME environment variable to a directory path. The .ipatrc file will also be found if located in the current directory. If problems, contact stevew@srware.com. Running IPAT ------------ From a command line, type "ipat". Any words following "ipat" on the command line are expected to be a path to a file in the format of the output file from Jspice3/WRspice operating range analysis. The pass or fail points from the file will be plotted along with the interference pattern (see Load Points below). A window will appear, containing some input areas, and graphical areas for the plot and a schematic. There is a menu bar along the top, containing a "WR" button, and File, Options, and Help menus. The WR button cycles through four different horizontal scale factors for the plot, allowing the user to select the number of periods to display. The File menu contains the following selections: Save The Save button in the File menu brings up a dialog asking for a name to save the current data set under. This name can be any name, but it can not start with the character '#', and it can't include white space. The data set will be saved in the file ".ipat.data", in the user's home directory. If the home directory can't be determined, such as under Windows if the environment variable $HOME is not defined to a directory path, a file named ipat.data in the current directory will be used. In either case the file will be created if it does not already exist. The format is very simple: each line contains the name, followed by the number of junctions, followed by the nine values from the input entry widgets, top to bottom as on-screen. Note that some of these values are not really used for two junctions, but some numeric value must be present in that position as a place-holder. If the given name is already present, the new data set will overwrite the old. Recall Pressing the Recall button in the File menu will produce a menu containing the names of all saved parameter sets. Selecting one of the entries will load those values into ipat, and update the display. Delete The Delete button in the File menu will prompt for a dataset name to delete from storage. The response should be the name of a parameter set previously stored. Load Points This allows a "points" file to be read. The points found in the file will be added to the plot. The file format is the Jspice3/WRspice operating range output format. Print This brings up a pop-up which controls printing the current display. Quit Exit IPAT. The Options menu contains the following selections: Three Junctions When set, a three-junction device will be plotted. When unset, a two-junction device will be shown. Phase Plot When set, a phase plot will be presented. When unset, a threshold plot will be presented. Show Negative X When set, both positive and negative control currents will be shown. When unset, only positive control currents will be shown. Show Negative Y When set, both positive and negative threshold voltages will be shown. When unset, only positive threshold voltages will be shown. Suppress Axes When set, the axes and grid points will not be shown. Suppress Secondary When set, the secondary contours of three-junction devices will not be shown. Suppress Tertiary When set, the tertiary contours of three-junction devices will not be shown. Plot Fail Points If plotting points from a file (Load Points in File Menu) show the fail points. Show Marker Enables a marker and printout of the cursor coordinates. Retire the marker by pressing any key. The left mouse button marks a location which is used as a reference for the coordinate printing, which can be deleted with the right button (i.e., go back to absolute coordinates). The Help menu contains the following selections: Help Bring up a window containing a a description of the program features. The best way to learn IPAT, and to learn about interferometers, is to experiment. Have fun!