Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

haatom.h

Go to the documentation of this file.
00001 
00010 #ifndef HAATOM_H
00011 #define HAATOM_H
00012 
00013 #include "haconst.h"  
00014 
00015 #include "hastl.h"
00016 #include "hastring.h"
00017 #include "vec3d.h"
00018 
00019 class HaResidue;
00020 class HaChain;
00021 class HaMolecule;
00022 class HaMolSet;
00023 class ChemGroup;
00024 class AtomList;
00025 
00026 const int ATOMREF_FULL   = 0;
00027 const int ATOMREF_NO_MOL = 1;
00028 const int ATOMREF_NO_RES = 2; 
00029                                                                               
00030 class MatPoint : public Vec3D 
00032 {
00033 public:
00034     MatPoint();
00035         virtual ~MatPoint();
00036 
00037         const char* GetFFSymbol() const { return FFSymbol.c_str(); } 
00038         const char* SetFFSymbol(HaString new_ff_symbol) { FFSymbol = new_ff_symbol; 
00039                                                           return(FFSymbol.c_str()); } 
00040         virtual bool IsHydrogen() const { return false; } 
00041         virtual bool IsAtom() const     { return false; } 
00042  
00043     virtual void Select();                     
00044     virtual void UnSelect();                   
00045     virtual int Selected() const;              
00046 
00047         const char* GetRef(int ref_type = ATOMREF_FULL ) const;          
00048         virtual bool FillRef(char* buf, int mode = ATOMREF_FULL) const;  
00049 
00050         int SetParamFrom(const MatPoint& pt_ref); 
00051 
00052     bool SetCharge(double new_charge){ charge = new_charge; return true;} 
00053     double GetCharge() const { return charge; } 
00054 
00055         double GetMass() const { return mass; }                            
00056         bool SetMass( double new_mass ) { mass = new_mass; return true; }  
00057         
00058         double charge;               
00059         double mass;                 
00060         double vdw_rad;   
00061         double ew;        
00062 
00063 
00064         HaString FFSymbol;  
00065 
00066 protected:      
00067 
00068 };
00069 
00070 /* Atom Flags */
00071 const int SphereFlag    =  0x02;     
00072 const int HeteroFlag    =  0x04;     
00073 const int HydrogenFlag  =  0x08;     
00074 const int NormAtomFlag  =  0x10;     
00075 const int NonBondFlag   =  0x20;
00076 const int BreakFlag     =  0x40;     
00077 const int DisplayedFlag =  0x80;     //
00078 const int HBDonorFlag   =  0x100;    
00079 const int HBAcceptorFlag=  0x200;    
00080 
00081 enum  HYBRIDIZATION { NO_HYBRID, SP_HYBRID, SP2_HYBRID, SP3_HYBRID };
00082 
00084 class HaAtom : public MatPoint
00085 {
00086 public:
00087   HaAtom();
00088   HaAtom(HaResidue* new_phost_res);
00089   virtual ~HaAtom();
00090 
00091   bool SetParamFrom(const HaAtom& atom_ref);
00092 
00093   int GetElemNo() const;                 
00094   void SetElemNo(const int new_elem_no); 
00095   int SetName(const char* AtName);       
00096   const char* GetName() const;           
00097 
00098   HaString GetStdSymbol() const;  
00099 
00100 
00101   bool operator==(const HaAtom& rhs) const;
00102   bool operator< (const HaAtom& rhs) const;
00103 
00104 // Property Flag Manipulation Utilities
00105 
00106   virtual void Select();                     
00107   virtual void UnSelect();                   
00108   virtual int Selected() const;              
00109 
00110   bool IsDrawSphere() const;
00111   void SetDrawSphere(bool set_mode);
00112 
00113   void SetDisplayed( bool set_mode); 
00114   bool IsDisplayed() const;          
00115 
00116   virtual bool IsAtom() const { return true; }
00117   virtual bool IsHydrogen() const;
00118 
00119 // H-Bond donor/acceptor status manupulation
00120 
00121   bool IsHBDonor() const;              
00122   bool IsHBAcceptor() const;           
00123   void SetHBDonor( bool set_mode);     
00124   void SetHBAcceptor( bool set_mode);  
00125   int SetHBStatus(const char* hb_status_str); 
00126   int GetHBStatusTextStr(HaString& hb_status_str);
00127 
00128 // Molecule Structure Related functions:
00129 
00130   HaResidue* GetHostRes();             
00131   const HaResidue* GetHostRes() const;
00132   HaChain*       GetHostChain();
00133   const HaChain* GetHostChain() const;
00134   ChemGroup* GetHostChemGroup();
00135   HaMolecule* GetHostMol();
00136   const HaMolecule* GetHostMol() const;
00137   HaMolSet* GetHostMolSet();
00138   const HaMolSet* GetHostMolSet() const;
00139 
00140   void SetHostRes(HaResidue* new_phost_res);
00141 
00142   int GetBondedAtoms(AtomList& bonded_atoms); 
00143   bool IsBonded(HaAtom& at2);
00144 
00145   static int CreateBond(HaAtom* aptr1, HaAtom* aptr2); 
00146   static int DeleteBond(HaAtom* aptr1, HaAtom* aptr2); 
00147 
00149   static int GetReachableAtoms(AtomList& block_atoms, HaAtom* aptr2, AtomList& reach_atoms, int& loop); 
00150 
00151   static void FillStdAtomTypes();     
00152   static StrVec ElemDesc;   
00153 
00154   bool IsSameName(const HaAtom* aptr_ref) const; 
00155   
00156  // Output and Related functions:
00157 
00158   static int AtTypeFromLbl(HaString & Label); 
00159 
00160   bool Print_info(ostream &sout, const int level) const;
00161 
00162   virtual bool FillRef(char* buf, int ref_type = ATOMREF_FULL ) const; 
00163 
00164   int GetSerNo() const; 
00165 
00166 // Atom identification functions:
00167 
00168   static int NewAtomType(const char* ptr);
00169 
00170   static int GetElemNoFromName(const HaString at_name, const HaResidue* pres = NULL); 
00171   static const char* GetStdSymbolElem(int elem);           
00172   static double ElemVDWRadius(int elem, 
00173                                   bool united_atom_flag = false); 
00174   static double StdElemMass(int elem);                        
00175 
00176   static double ElemDuttonRadius(int elem); 
00177 
00178   bool IsAlphaCarbon()     const ;
00179   bool IsSugarPhosphate()  const ;
00180   bool IsAminoBackbone()   const ;
00181   bool IsShapelyBackbone() const ;
00182   bool IsNucleicBackbone() const ;
00183   bool IsShapelySpecial()  const ;
00184   bool IsCysteineSulfur() const ;
00185 
00186 // ATOM structure parameters
00187 
00188   short  x, y, z;              
00189   double tempf;                
00190   short  col;                  
00191 //  Long   serno;                //!< Atom Serial Number
00192   HaString label;              
00193   Byte   elemno;               
00194   int    refno;                
00195   unsigned int flag;           
00196   char   altl;                 
00197   double radius;               
00198   double image_radius;         
00199   short  irad;                 
00200   short  mbox;                 
00201   double solv_access_surf;     
00202 
00203 
00204   HYBRIDIZATION hybrid;      
00205 
00206   HYBRIDIZATION GetHybrid() const { return hybrid; } 
00207   int GetHybridTextStr(HaString& hybrid_str) const; 
00208   int SetHybrid( HaString hybrid_str );              
00209 
00210   static double StdBondLen(const HaAtom* aptr1, const HaAtom* aptr2); 
00211 
00212   int  nbonds;                 
00213 
00214 protected:
00215   HaResidue* phost_res;        
00216 
00217   void SetDefaultParam();
00218 };
00219 
00220 
00221 class MatPoint_double_map : public map<MatPoint*,double, less<MatPoint*> >
00222 {
00223 public:
00224     
00225         MatPoint_double_map(const char* new_name = "");
00226         virtual ~MatPoint_double_map();
00227 
00228     HaString name;
00229 
00230         double GetValueFor(MatPoint* mpt);
00231         int ModifyValueFor(MatPoint* mpt, double new_val);
00232         const char* GetName() { return name.c_str(); }
00233         void SetName(const char* new_name) { name = new_name; }
00234 
00235 };
00236 
00237 
00238 
00239 
00240 /* CPK Colour Indices
00241  *  0 Light Grey    1 Sky Blue      2 Red           3 Yellow
00242  *  4 White         5 Pink          6 Golden Rod    7 Blue
00243  *  8 Orange        9 Dark Grey    10 Brown        11 Purple
00244  * 12 Deep Pink    13 Green        14 Fire Brick   15 Mid Green
00245  */
00246 
00247 const int MAXELEMNO = 104;
00248 typedef struct {
00249            char   symbol[2];
00250            double covalrad;  // Covalent radius if Bohrs
00251            double vdwrad;    // Van-der-Waals Radius in Bohrs
00252                    double mass;      // Atomic Mass from Periodical Table
00253            int cpkcol;
00254            char *name;
00255         } ElemStruct;
00256 
00257 
00258 #ifdef HAATOM_CPP
00259 ElemStruct ElementArr[MAXELEMNO] =  {
00260     { { ' ', ' ' }, 0.72 /BOHR_TO_ANG, 1.44 /BOHR_TO_ANG, 1.000,   12, ""             },  /*   0 */
00261     { { 'H', ' ' }, 0.32 /BOHR_TO_ANG, 1.1  /BOHR_TO_ANG, 1.0079,    4, "HYDROGEN"     },  /*   1 */
00262     { { 'H', 'e' }, 1.6  /BOHR_TO_ANG, 2.2  /BOHR_TO_ANG, 4.0026,   5, "HELIUM"       },  /*   2 */
00263     { { 'L', 'i' }, 0.68 /BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 6.9400,  14, "LITHIUM"      },  /*   3 */
00264     { { 'B', 'e' }, 0.352/BOHR_TO_ANG, 0.628/BOHR_TO_ANG, 9.0122,  12, "BERYLLIUM"    },  /*   4 */
00265     { { 'B', ' ' }, 0.832/BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 10.810,  13, "BORON"        },  /*   5 */
00266     { { 'C', ' ' }, 0.72 /BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 12.011,   0, "CARBON"       },  /*   6 */
00267     { { 'N', ' ' }, 0.68 /BOHR_TO_ANG, 1.4  /BOHR_TO_ANG, 14.0067,  1, "NITROGEN"     },  /*   7 */
00268     { { 'O', ' ' }, 0.68 /BOHR_TO_ANG, 1.348/BOHR_TO_ANG, 15.9994,  2, "OXYGEN"       },  /*   8 */
00269     { { 'F', ' ' }, 0.64 /BOHR_TO_ANG, 1.3  /BOHR_TO_ANG, 18.9964,  6, "FLUORINE"     },  /*   9 */
00270     { { 'N', 'e' }, 1.12 /BOHR_TO_ANG, 2.02 /BOHR_TO_ANG, 20.17,   12, "NEON"         },  /*  10 */
00271     { { 'N', 'a' }, 0.972/BOHR_TO_ANG, 2.2  /BOHR_TO_ANG, 22.9898,  7, "SODIUM"       },  /*  11 */
00272     { { 'M', 'g' }, 1.1  /BOHR_TO_ANG, 1.5  /BOHR_TO_ANG, 24.305,  15, "MAGNESIUM"    },  /*  12 */
00273     { { 'A', 'l' }, 1.352/BOHR_TO_ANG, 1.5  /BOHR_TO_ANG, 26.9815,  9, "ALUMINIUM"    },  /*  13 */
00274     { { 'S', 'i' }, 1.2  /BOHR_TO_ANG, 2.2  /BOHR_TO_ANG, 26.086,   6, "SILICON"      },  /*  14 */
00275     { { 'P', ' ' }, 1.036/BOHR_TO_ANG, 1.88 /BOHR_TO_ANG, 30.9738,  8, "PHOSPHORUS"   },  /*  15 */  /* 262? */
00276     { { 'S', ' ' }, 1.02 /BOHR_TO_ANG, 1.808/BOHR_TO_ANG, 32.0600,  3, "SULFUR"      },  /*  16 */
00277     { { 'C', 'l' }, 1    /BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 35.453,  13, "CHLORINE"     },  /*  17 */
00278     { { 'A', 'r' }, 1.568/BOHR_TO_ANG, 2.768/BOHR_TO_ANG, 39.948,  12, "ARGON"        },  /*  18 */
00279     { { 'K', ' ' }, 1.328/BOHR_TO_ANG, 2.388/BOHR_TO_ANG, 39.090,  12, "POTASSIUM"    },  /*  19 */
00280     { { 'C', 'a' }, 0.992/BOHR_TO_ANG, 1.948/BOHR_TO_ANG, 40.08,    9, "CALCIUM"      },  /*  20 */
00281     { { 'S', 'c' }, 1.44 /BOHR_TO_ANG, 1.32 /BOHR_TO_ANG, 44.9559, 12, "SCANDIUM"     },  /*  21 */
00282     { { 'T', 'i' }, 1.472/BOHR_TO_ANG, 1.948/BOHR_TO_ANG, 47.9000,  9, "TITANIUM"     },  /*  22 */
00283     { { 'V', ' ' }, 1.328/BOHR_TO_ANG, 1.06 /BOHR_TO_ANG, 50.941,  12, "VANADIUM"     },  /*  23 */
00284     { { 'C', 'r' }, 1.352/BOHR_TO_ANG, 1.128/BOHR_TO_ANG, 51.966,   9, "CHROMIUM"     },  /*  24 */
00285     { { 'M', 'n' }, 1.352/BOHR_TO_ANG, 1.188/BOHR_TO_ANG, 54.938,   9, "MANGANESE"    },  /*  25 */
00286     { { 'F', 'e' }, 1.34 /BOHR_TO_ANG, 1.948/BOHR_TO_ANG, 55.847,   8, "IRON"         },  /*  26 */
00287     { { 'C', 'o' }, 1.328/BOHR_TO_ANG, 1.128/BOHR_TO_ANG, 58.9332, 12, "COBALT"       },  /*  27 */
00288     { { 'N', 'i' }, 1.62 /BOHR_TO_ANG, 1.24 /BOHR_TO_ANG, 58.71,   10, "NICKEL"       },  /*  28 */  /* >375! */
00289     { { 'C', 'u' }, 1.52 /BOHR_TO_ANG, 1.148/BOHR_TO_ANG, 63.546,  10, "COPPER"       },  /*  29 */
00290     { { 'Z', 'n' }, 1.448/BOHR_TO_ANG, 1.148/BOHR_TO_ANG, 65.38,   10, "ZINC"         },  /*  30 */
00291     { { 'G', 'a' }, 1.22 /BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 69.72,   12, "GALLIUM"      },  /*  31 */
00292     { { 'G', 'e' }, 1.168/BOHR_TO_ANG, 3.996/BOHR_TO_ANG, 72.59,   12, "GERMANIUM"    },  /*  32 */  /* 1225? */
00293     { { 'A', 's' }, 1.208/BOHR_TO_ANG, 0.828/BOHR_TO_ANG, 74.9216, 12, "ARSENIC"      },  /*  33 */
00294     { { 'S', 'e' }, 1.22 /BOHR_TO_ANG, 0.9  /BOHR_TO_ANG, 78.96,   12, "SELENIUM"     },  /*  34 */
00295     { { 'B', 'r' }, 1.208/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 79.904,  10, "BROMINE"      },  /*  35 */
00296     { { 'K', 'r' }, 1.6  /BOHR_TO_ANG, 1.9  /BOHR_TO_ANG, 83.80,   12, "KRYPTON"      },  /*  36 */
00297     { { 'R', 'b' }, 1.472/BOHR_TO_ANG, 2.648/BOHR_TO_ANG, 85.467,  12, "RUBIDIUM"     },  /*  37 */
00298     { { 'S', 'r' }, 1.12 /BOHR_TO_ANG, 2.02 /BOHR_TO_ANG, 87.62,   12, "STRONTIUM"    },  /*  38 */
00299     { { 'Y', ' ' }, 1.78 /BOHR_TO_ANG, 1.608/BOHR_TO_ANG, 88.9059, 12, "YTTRIUM"      },  /*  39 */
00300     { { 'Z', 'r' }, 1.56 /BOHR_TO_ANG, 1.42 /BOHR_TO_ANG, 91.22,   12, "ZIRCONIUM"    },  /*  40 */
00301     { { 'N', 'b' }, 1.48 /BOHR_TO_ANG, 1.328/BOHR_TO_ANG, 92.9064, 12, "NIOBIUM"      },  /*  41 */
00302     { { 'M', 'o' }, 1.472/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 95.94,   12, "MOLYBDENUM"   },  /*  42 */
00303     { { 'T', 'c' }, 1.352/BOHR_TO_ANG, 1.8  /BOHR_TO_ANG, 98.9062, 12, "TECHNETIUM"   },  /*  43 */
00304     { { 'R', 'u' }, 1.6  /BOHR_TO_ANG, 2.0  /BOHR_TO_ANG, 101.07,  12, "RUTHENIUM"    },  /*  44  Cov & Vdw was 1.4, 1.2 Ang*/
00305     { { 'R', 'h' }, 1.448/BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 102.9055,12, "RHODIUM"      },  /*  45 */
00306     { { 'P', 'd' }, 1.5  /BOHR_TO_ANG, 1.44 /BOHR_TO_ANG, 106.4,   12, "PALLADIUM"    },  /*  46 */
00307     { { 'A', 'g' }, 1.592/BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 107.868,  9, "SILVER"       },  /*  47 */
00308     { { 'C', 'd' }, 1.688/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 112.40,  12, "CADMIUM"      },  /*  48 */
00309     { { 'I', 'n' }, 1.632/BOHR_TO_ANG, 1.448/BOHR_TO_ANG, 114.82,  12, "INDIUM"       },  /*  49 */
00310     { { 'S', 'n' }, 1.46 /BOHR_TO_ANG, 1.668/BOHR_TO_ANG, 118.69,  12, "TIN",         },  /*  50 */
00311     { { 'S', 'b' }, 1.46 /BOHR_TO_ANG, 1.12 /BOHR_TO_ANG, 121.75,  12, "ANTIMONY"     },  /*  51 */
00312     { { 'T', 'e' }, 1.472/BOHR_TO_ANG, 1.26 /BOHR_TO_ANG, 127.60,  12, "TELLURIUM"    },  /*  52 */
00313     { { 'I', ' ' }, 1.4  /BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 126.9045,11, "IODINE"       },  /*  53 */
00314     { { 'X', 'e' }, 1.7  /BOHR_TO_ANG, 2.1  /BOHR_TO_ANG, 131.30,  12, "XENON"        },  /*  54 */
00315     { { 'C', 's' }, 1.672/BOHR_TO_ANG, 3.008/BOHR_TO_ANG, 132.9054,12, "CAESIUM"      },  /*  55 */
00316     { { 'B', 'a' }, 1.34 /BOHR_TO_ANG, 2.408/BOHR_TO_ANG, 137.34,   8, "BARIUM"       },  /*  56 */
00317     { { 'L', 'a' }, 1.872/BOHR_TO_ANG, 1.828/BOHR_TO_ANG, 138.9055,12, "LANTHANUM"    },  /*  57 */
00318     { { 'C', 'e' }, 1.832/BOHR_TO_ANG, 1.86 /BOHR_TO_ANG, 140.12,  12, "CERIUM"       },  /*  58 */
00319     { { 'P', 'r' }, 1.82 /BOHR_TO_ANG, 1.62 /BOHR_TO_ANG, 140.9077,12, "PRASEODYMIUM" },  /*  59 */
00320     { { 'N', 'd' }, 1.808/BOHR_TO_ANG, 1.788/BOHR_TO_ANG, 144.24,  12, "NEODYMIUM"    },  /*  60 */
00321     { { 'P', 'm' }, 1.8  /BOHR_TO_ANG, 1.76 /BOHR_TO_ANG, 145.0,   12, "PROMETHIUM"   },  /*  61 */
00322     { { 'S', 'm' }, 1.8  /BOHR_TO_ANG, 1.74 /BOHR_TO_ANG, 150.4,   12, "SAMARIUM"     },  /*  62 */
00323     { { 'E', 'u' }, 1.992/BOHR_TO_ANG, 1.96 /BOHR_TO_ANG, 151.96,  12, "EUROPIUM"     },  /*  63 */
00324     { { 'G', 'd' }, 1.792/BOHR_TO_ANG, 1.688/BOHR_TO_ANG, 157.25,  12, "GADOLINIUM"   },  /*  64 */
00325     { { 'T', 'b' }, 1.76 /BOHR_TO_ANG, 1.66 /BOHR_TO_ANG, 158.9254,12, "TERBIUM"      },  /*  65 */
00326     { { 'D', 'y' }, 1.752/BOHR_TO_ANG, 1.628/BOHR_TO_ANG, 162.50,  12, "DYSPROSIUM"   },  /*  66 */
00327     { { 'H', 'o' }, 1.74 /BOHR_TO_ANG, 1.608/BOHR_TO_ANG, 164.9304,12, "HOLMIUM"      },  /*  67 */
00328     { { 'E', 'r' }, 1.728/BOHR_TO_ANG, 1.588/BOHR_TO_ANG, 167.26,  12, "ERBIUM"       },  /*  68 */
00329     { { 'T', 'm' }, 1.72 /BOHR_TO_ANG, 1.568/BOHR_TO_ANG, 168.9342,12, "THULIUM"      },  /*  69 */
00330     { { 'Y', 'b' }, 1.94 /BOHR_TO_ANG, 1.54 /BOHR_TO_ANG, 173.04,  12, "YTTERBIUM"    },  /*  70 */
00331     { { 'L', 'u' }, 1.72 /BOHR_TO_ANG, 1.528/BOHR_TO_ANG, 174.97,  12, "LUTETIUM"     },  /*  71 */
00332     { { 'H', 'f' }, 1.568/BOHR_TO_ANG, 1.4  /BOHR_TO_ANG, 178.49,  12, "HAFNIUM"      },  /*  72 */
00333     { { 'T', 'a' }, 1.432/BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 280.947, 12, "TANTALUM"     },  /*  73 */
00334     { { 'W', ' ' }, 1.368/BOHR_TO_ANG, 1.26 /BOHR_TO_ANG, 183.85,  12, "TUNGSTEN"     },  /*  74 */
00335     { { 'R', 'e' }, 1.352/BOHR_TO_ANG, 1.3  /BOHR_TO_ANG, 186.2,   12, "RHENIUM"      },  /*  75 */
00336     { { 'O', 's' }, 1.368/BOHR_TO_ANG, 1.58 /BOHR_TO_ANG, 190.2,   12, "OSMIUM"       },  /*  76 */
00337     { { 'I', 'r' }, 1.32 /BOHR_TO_ANG, 1.22 /BOHR_TO_ANG, 192.22,  12, "IRIDIUM"      },  /*  77 */
00338     { { 'P', 't' }, 1.5  /BOHR_TO_ANG, 1.548/BOHR_TO_ANG, 195.09,  12, "PLATINUM"     },  /*  78 */
00339     { { 'A', 'u' }, 1.5  /BOHR_TO_ANG, 1.448/BOHR_TO_ANG, 196.9665, 6, "GOLD"         },  /*  79 */
00340     { { 'H', 'g' }, 1.7  /BOHR_TO_ANG, 1.98 /BOHR_TO_ANG, 200.59,  12, "MERCURY"      },  /*  80 */
00341     { { 'T', 'l' }, 1.552/BOHR_TO_ANG, 1.708/BOHR_TO_ANG, 204.37,  12, "THALLIUM"     },  /*  81 */
00342     { { 'P', 'b' }, 1.54 /BOHR_TO_ANG, 2.16 /BOHR_TO_ANG, 207.200, 12, "LEAD"         },  /*  82 */
00343     { { 'B', 'i' }, 1.54 /BOHR_TO_ANG, 1.728/BOHR_TO_ANG, 208.9808,12, "BISMUTH"      },  /*  83 */
00344     { { 'P', 'o' }, 1.68 /BOHR_TO_ANG, 1.208/BOHR_TO_ANG, 209.0,   12, "POLONIUM"     },  /*  84 */
00345     { { 'A', 't' }, 1.208/BOHR_TO_ANG, 1.12 /BOHR_TO_ANG, 210.0,   12, "ASTATINE"     },  /*  85 */
00346     { { 'R', 'n' }, 1.9  /BOHR_TO_ANG, 2.3  /BOHR_TO_ANG, 222.0,   12, "RADON"        },  /*  86 */
00347     { { 'F', 'r' }, 1.8  /BOHR_TO_ANG, 3.24 /BOHR_TO_ANG, 223.0,   12, "FRANCIUM"     },  /*  87 */
00348     { { 'R', 'a' }, 1.432/BOHR_TO_ANG, 2.568/BOHR_TO_ANG, 226.0254,12, "RADIUM"       },  /*  88 */
00349     { { 'A', 'c' }, 1.18 /BOHR_TO_ANG, 2.12 /BOHR_TO_ANG, 227.00,  12, "ACTINIUM"     },  /*  89 */
00350     { { 'T', 'h' }, 1.02 /BOHR_TO_ANG, 1.84 /BOHR_TO_ANG, 232.0381,12, "THORIUM"      },  /*  90 */
00351     { { 'P', 'a' }, 0.888/BOHR_TO_ANG, 1.6  /BOHR_TO_ANG, 231.0359,12, "PROTACTINIUM" },  /*  91 */
00352     { { 'U', ' ' }, 0.968/BOHR_TO_ANG, 1.748/BOHR_TO_ANG, 238.029, 12, "URANIUM"      },  /*  92 */
00353     { { 'N', 'p' }, 0.952/BOHR_TO_ANG, 1.708/BOHR_TO_ANG, 237.0482,12, "NEPTUNIUM"    },  /*  93 */
00354     { { 'P', 'u' }, 0.928/BOHR_TO_ANG, 1.668/BOHR_TO_ANG, 244.0,   12, "PLUTONIUM"    },  /*  94 */
00355     { { 'A', 'm' }, 0.92 /BOHR_TO_ANG, 1.66 /BOHR_TO_ANG, 243.0,   12, "AMERICIUM"    },  /*  95 */
00356     { { 'C', 'm' }, 0.912/BOHR_TO_ANG, 1.648/BOHR_TO_ANG, 247.0,   12, "CURIUM"       },  /*  96 */
00357     { { 'B', 'k' }, 0.9  /BOHR_TO_ANG, 1.64 /BOHR_TO_ANG, 247.0,   12, "BERKELIUM"    },  /*  97 */
00358     { { 'C', 'f' }, 0.888/BOHR_TO_ANG, 1.628/BOHR_TO_ANG, 251.0,   12, "CALIFORNIUM"  },  /*  98 */
00359     { { 'E', 's' }, 0.88 /BOHR_TO_ANG, 1.62 /BOHR_TO_ANG, 254.0,   12, "EINSTEINIUM"  },  /*  99 */
00360     { { 'F', 'm' }, 0.872/BOHR_TO_ANG, 1.608/BOHR_TO_ANG, 257.0,   12, "FERMIUM"      },  /* 100 */
00361     { { 'M', 'd' }, 0.86 /BOHR_TO_ANG, 1.6  /BOHR_TO_ANG, 258.0,   12, "MENDELEVIUM"  },  /* 101 */
00362     { { 'N', 'o' }, 0.848/BOHR_TO_ANG, 1.588/BOHR_TO_ANG, 259.0,   12, "NOBELIUM"     },  /* 102 */
00363     { { 'L', 'r' }, 0.84 /BOHR_TO_ANG, 1.58 /BOHR_TO_ANG, 260.0,   12, "LAWRENCIUM"   }   /* 103 */ /* Lw? */
00364         };
00365 
00366 #else
00367 
00368 extern ElemStruct ElementArr[MAXELEMNO];
00369 
00370 #endif
00371 
00372 
00373 #endif /* !HAATOM_H */
00374 

Generated on Tue Feb 17 02:03:04 2004 for harlem by doxygen 1.3.6