potential1210.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: potential1210.h,v 1.18 2005/12/23 17:01:54 amoll Exp $
00005 //
00006  
00007 #ifndef BALL_MOLMEC_PARAMETER_POTENTIAL1210_H
00008 #define BALL_MOLMEC_PARAMETER_POTENTIAL1210_H
00009 
00010 #ifndef BALL_FORMAT_PARAMETERSECTION_H
00011 # include <BALL/FORMAT/parameterSection.h>
00012 #endif
00013 
00014 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
00015 # include <BALL/MOLMEC/PARAMETER/atomTypes.h>
00016 #endif
00017 
00018 namespace BALL 
00019 {
00027   class BALL_EXPORT Potential1210 
00028     : public ParameterSection
00029   {
00030     public:
00031 
00032     enum 
00033     {
00034       UNKNOWN
00035     };
00036 
00037     struct BALL_EXPORT Values 
00038     {
00039       float A;
00040       float B;
00041     };
00042 
00043     struct BALL_EXPORT Data
00044     {
00045       Atom*   atom1;
00046       Atom*   atom2;
00047       Values  values;
00048     };
00049 
00050 
00054 
00057     Potential1210() ;
00058 
00061     Potential1210(const Potential1210& pot1210) ;
00062 
00065     virtual ~Potential1210() ;
00066     
00069     virtual void clear() ;
00070 
00072 
00075 
00081     virtual bool extractSection(ForceFieldParameters& parameters, 
00082         const String& section_name) ;
00083 
00085     virtual bool extractSection(Parameters& parameters, 
00086         const String& section_name) ;
00087 
00090     bool hasParameters(Atom::Type I, Atom::Type J) const ;
00091     
00094     Potential1210::Values getParameters
00095       (Atom::Type I, Atom::Type J) const ;
00096     
00101     bool assignParameters
00102       (Potential1210::Values& parameters, 
00103        Atom::Type I, Atom::Type J) const ;
00104 
00106 
00109 
00112     const Potential1210& operator = (const Potential1210& pot1210) ;
00113 
00115 
00118 
00121     bool operator == (const Potential1210& pot1210) const ;
00122 
00124 
00125     protected:
00126 
00127     Size                  number_of_atom_types_;
00128 
00129     std::vector<float>    A_;
00130     
00131     std::vector<float>    B_;
00132 
00133     std::vector<bool>     is_defined_;
00134       
00135     std::vector<String>   names_;
00136   };
00137 } // namespace BALL
00138 
00139 #endif // BALL_MOLMEC_PARAMETER_POTENTIAL1210_H