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

via.h

Go to the documentation of this file.
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 doxygen1.2.7