Qucs-GUI
0.0.19
|
00001 /*************************************************************************** 00002 copyright : (C) 2008 by Michael Margraf 00003 email : michael.margraf@alumni.tu-berlin.de 00004 ***************************************************************************/ 00005 00006 /*************************************************************************** 00007 * * 00008 * This program is free software; you can redistribute it and/or modify * 00009 * it under the terms of the GNU General Public License as published by * 00010 * the Free Software Foundation; either version 2 of the License, or * 00011 * (at your option) any later version. * 00012 * * 00013 ***************************************************************************/ 00014 00015 #include "tunneldiode.h" 00016 00017 TunnelDiode::TunnelDiode() 00018 { 00019 Description = QObject::tr("resonance tunnel diode"); 00020 00021 Props.append(new Property("Ip", "4 mA", true, 00022 QObject::tr("peak current"))); 00023 Props.append(new Property("Iv", "0.6 mA", true, 00024 QObject::tr("valley current"))); 00025 Props.append(new Property("Vv", "0.8 V", true, 00026 QObject::tr("valley voltage"))); 00027 Props.append(new Property("Wr", "2.7e-20", false, 00028 QObject::tr("resonance energy in Ws"))); 00029 Props.append(new Property("eta", "1e-20", false, 00030 QObject::tr("Fermi energy in Ws"))); 00031 Props.append(new Property("dW", "4.5e-21", false, 00032 QObject::tr("resonance width in Ws"))); 00033 Props.append(new Property("Tmax", "0.95", false, 00034 QObject::tr("maximum of transmission"))); 00035 Props.append(new Property("de", "0.9", false, 00036 QObject::tr("fitting factor for electron density"))); 00037 Props.append(new Property("dv", "2.0", false, 00038 QObject::tr("fitting factor for voltage drop"))); 00039 Props.append(new Property("nv", "16", false, 00040 QObject::tr("fitting factor for diode current"))); 00041 00042 Props.append(new Property("Cj0", "80 fF", false, 00043 QObject::tr("zero-bias depletion capacitance"))); 00044 Props.append(new Property("M", "0.5", false, 00045 QObject::tr("grading coefficient"))); 00046 Props.append(new Property("Vj", "0.5 V", false, 00047 QObject::tr("junction potential"))); 00048 Props.append(new Property("te", "0.6 ps", false, 00049 QObject::tr("life-time of electrons"))); 00050 00051 Props.append(new Property("Temp", "26.85", false, 00052 QObject::tr("simulation temperature in degree Celsius"))); 00053 Props.append(new Property("Area", "1.0", false, 00054 QObject::tr("default area for diode"))); 00055 00056 Lines.append(new Line(-30, 0,-12, 0,QPen(Qt::darkBlue,2))); 00057 Lines.append(new Line( 12, 0, 30, 0,QPen(Qt::darkBlue,2))); 00058 Lines.append(new Line(-12, -9,-12, 9,QPen(Qt::darkBlue,2))); 00059 Lines.append(new Line( 0, -9, 0, 9,QPen(Qt::darkBlue,2))); 00060 Lines.append(new Line( 12, -9, 12, 9,QPen(Qt::darkBlue,2))); 00061 Lines.append(new Line(-12, -9, 12, 9,QPen(Qt::darkBlue,2))); 00062 Lines.append(new Line(-12, 9, 12, -9,QPen(Qt::darkBlue,2))); 00063 00064 Ports.append(new Port(-30, 0)); 00065 Ports.append(new Port( 30, 0)); 00066 00067 x1 = -30; y1 = -11; 00068 x2 = 30; y2 = 11; 00069 00070 tx = x1+4; 00071 ty = y2+4; 00072 Model = "RTD"; 00073 Name = "D"; 00074 } 00075 00076 // ------------------------------------------------------------------- 00077 Component* TunnelDiode::newOne() 00078 { 00079 return new TunnelDiode(); 00080 } 00081 00082 Element* TunnelDiode::info(QString& Name, char* &BitmapFile, bool getNewOne) 00083 { 00084 Name = QObject::tr("Tunnel Diode"); 00085 BitmapFile = (char *) "tunneldiode"; 00086 00087 if(getNewOne) return new TunnelDiode(); 00088 return 0; 00089 }