Qucs-core
0.0.19
|
00001 /* 00002 * bondwire.h - bondwire class definitions 00003 * 00004 * Copyright (C) 2006 Bastien Roucaries <roucaries.bastien@gmail.com> 00005 * Copyright (C) 2007, 2008 Stefan Jahn <stefan@lkcc.org> 00006 * 00007 * This is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2, or (at your option) 00010 * any later version. 00011 * 00012 * This software is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this package; see the file COPYING. If not, write to 00019 * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, 00020 * Boston, MA 02110-1301, USA. 00021 * 00022 * $Id$ 00023 * 00024 */ 00025 00026 #ifndef __BONDWIRE_H__ 00027 #define __BONDWIRE_H__ 00028 00029 00030 class bondwire : public qucs::circuit 00031 { 00032 public: 00033 CREATOR (bondwire); 00034 void initSP (void); 00035 void calcSP (const nr_double_t); 00036 void calcNoiseSP (nr_double_t); 00037 void initDC (void); 00038 void initAC (void); 00039 void calcAC (nr_double_t); 00040 void calcNoiseAC (nr_double_t); 00041 qucs::matrix calcMatrixY (nr_double_t); 00042 void saveCharacteristics (nr_double_t); 00043 00044 private: 00045 void getProperties (void); 00046 nr_double_t resistance (const nr_double_t f) const; 00047 nr_double_t Lfreespace (const nr_double_t f) const; 00048 nr_double_t Lmirror () const; 00049 00050 nr_double_t l; 00051 nr_double_t d; 00052 nr_double_t h; 00053 nr_double_t rho; 00054 nr_double_t mur; 00055 int model; 00056 nr_double_t R, L; 00057 nr_double_t temp; 00058 }; 00059 00060 #endif /* __BONDWIRE_H__ */