00001 // SuperMix version 1.0 C++ source file 00002 // 00003 // Copyright (c) 1999 California Institute of Technology. 00004 // All rights reserved. 00005 // 00006 // Redistribution and use in source and binary forms for noncommercial 00007 // purposes are permitted provided that the above copyright notice and 00008 // this paragraph are duplicated in all such forms and that any 00009 // documentation and other materials related to such distribution and 00010 // use acknowledge that the software was developed by California 00011 // Institute of Technology. Redistribution and/or use in source or 00012 // binary forms is not permitted for any commercial purpose. Use of 00013 // this software does not include a permitted use of the Institute's 00014 // name or trademark for any purpose. 00015 // 00016 // DISCLAIMER: 00017 // THIS SOFTWARE AND/OR RELATED MATERIALS ARE PROVIDED "AS-IS" WITHOUT 00018 // WARRANTY OF ANY KIND INCLUDING ANY WARRANTIES OF PERFORMANCE OR 00019 // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE OR PURPOSE (AS SET 00020 // FORTH IN UCC 23212-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE 00021 // LICENSED PRODUCT, HOWEVER USED. IN NO EVENT SHALL CALTECH/JPL BE 00022 // LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING BUT NOT LIMITED TO 00023 // INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING ECONOMIC 00024 // DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF 00025 // WHETHER CALTECH/JPL SHALL BE ADVISED, HAVE REASON TO KNOW, OR IN 00026 // FACT SHALL KNOW OF THE POSSIBILITY. THE USER BEARS ALL RISK 00027 // RELATING TO QUALITY AND PERFORMANCE OF THE SOFTWARE AND/OR RELATED 00028 // MATERIALS. 00029 // 00030 00040 #ifndef VIA_H 00041 #define VIA_H 1 00042 00043 #include "parameter.h" 00044 00062 class L_via : public abstract_real_parameter 00063 { 00064 public: 00066 parameter D; 00067 00069 parameter H; 00070 00074 L_via() : abstract_real_parameter(), D(0.0), H(0.0), coeff(muVacuum/(2.0*Pi)) 00075 { } 00076 00083 double get() const 00084 { 00085 if (D/H < 0.2) 00086 error::warning("Via hole D/H ratio should be > 0.2 in class L_via"); 00087 00088 if (D/H > 1.5) 00089 error::warning("Via hole D/H ratio should be < 1.5 in class L_via"); 00090 00091 if (H < 100.*Micro*Meter) 00092 error::warning("Via hole height should be > 100 microns in class L_via"); 00093 00094 if (H > 635.*Micro*Meter) 00095 error::warning("Via hole height should be < 635 microns in class L_via"); 00096 00097 double r = 0.5*D; 00098 double hypot = sqrt(r*r + H*H); 00099 return coeff * (H * log((H + hypot)/r) + 1.5 * (r - hypot)); 00100 } 00101 00102 private: 00106 double coeff; 00107 }; 00108 00109 #endif /* VIA_H */
Please direct comments and corrections to
supermix@submm.caltech.edu
Go to the supermix home page
Generated by
1.2.7