ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-3.0/src/UseTheForce/ForceField.hpp
(Generate patch)

Comparing branches/new_design/OOPSE-3.0/src/UseTheForce/ForceField.hpp (file contents):
Revision 1760 by tim, Fri Nov 19 20:23:26 2004 UTC vs.
Revision 1807 by tim, Tue Nov 30 22:43:51 2004 UTC

# Line 38 | Line 38
38   #define STR_DEFINE(t, s) t = MK_STR(s)
39  
40   #include <string>
41 < #include <utilities>
41 > #include <utility>
42  
43   #include "io/basic_ifstrstream.hpp"
44   #include "utils/TypeContainer.hpp"
# Line 50 | Line 50 | namespace oopse {
50   namespace oopse {
51  
52   /**
53 < * @class ForceFiled ForceField.hpp ''UseTheForce/ForceField.hpp"
53 > * @class ForceField ForceField.hpp ''UseTheForce/ForceField.hpp"
54   * @brief
55   */
56   class ForceField{
57  
58      public:
59  
60 +        typedef TypeContainer<AtomType, 1> AtomTypeContainer;
61 +        typedef TypeContainer<BondType, 2> BondTypeContainer;
62 +        typedef TypeContainer<BendType, 3> BendTypeContainer;
63 +        typedef TypeContainer<TorsionType, 4> TorsionTypeContainer;
64 +        
65          ForceField();
66  
67 <        virtual ~ForceFields(){}
67 >        virtual ~ForceField(){}
68  
69 <        void setVariant(const std::string &variant) {
70 <            hasVariant_ = true;
66 <            variant_ = variant;
69 >        std::string getForceFieldFileName() {
70 >            return forceFieldFileName_;
71          }
72 +
73 +        void setForceFieldFileName(const std::string& filename) {
74 +            forceFieldFileName_ = filename;
75 +        }
76          
77          virtual void parse(const std::string& filename) = 0;  
78  
# Line 75 | Line 83 | class ForceField{
83          TorsionType* getTorsionType(const std::string &at1, const std::string &at2,
84                                            const std::string &at3, const std::string &at4);
85  
86 +        BondType* getExactBondType(const std::string &at1, const std::string &at2);
87 +        BendType* getExactBendType(const std::string &at1, const std::string &at2,
88 +                                    const std::string &at3);
89 +        TorsionType* getExactTorsionType(const std::string &at1, const std::string &at2,
90 +                                          const std::string &at3, const std::string &at4);
91 +
92 +
93          //avoid make virtual function public
94          //Herb Sutter and Andrei Alexandrescu, C++ coding Standards, Addision-Wesley
95          virtual double getRcutFromAtomType(AtomType* at);
# Line 87 | Line 102 | class ForceField{
102              wildCardAtomTypeName_ = wildCard;
103          }
104  
105 <    protected:
105 >
106 >        unsigned int getNAtomType() {
107 >            return atomTypeCont_.size();
108 >        }
109          
110          bool addAtomType(const std::string &at, AtomType* atomType);
111 +
112          bool addBondType(const std::string &at1, const std::string &at2, BondType* bondType);
113 +
114          bool addBendType(const std::string &at1, const std::string &at2,
115                                      const std::string &at3, BendType* bendType);
116 +
117          bool addTorsionType(const std::string &at1, const std::string &at2,
118                                            const std::string &at3, const std::string &at4, TorsionType* torsionType);
119  
120          ifstrstream* openForceFieldFile(const std::string& filename);
121  
122 <        unsigned int getNAtomType() {
123 <            return atomTypeCont_.size();
124 <        }
122 >    protected:
123 >
124 >        AtomTypeContainer atomTypeCont_;    
125 >        BondTypeContainer bondTypeCont_;
126 >        BendTypeContainer bendTypeCont_;
127 >        TorsionTypeContainer torsionTypeCont_;
128          
129      private:  
130          std::string ffPath_;
107        bool hasVariant_;
108        std::string variant_;
131  
132          std::string wildCardAtomTypeName_;
133  
134 <        typedef TypeContainer<AtomType, 1> AtomTypeContainer;
113 <        typedef TypeContainer<BondType, 2> BondTypeContainer;
114 <        typedef TypeContainer<BendType, 3> BendTypeContainer;
115 <        typedef TypeContainer<TorsionType, 4> TorsionTypeContainer;
116 <
117 <        AtomTypeContainer atomTypeCont_;    
118 <        BondTypeContainer bondTypeCont_;
119 <        BendTypeContainer bendTypeCont_;
120 <        TorsionTypeContainer torsionTypeCont_;
134 >        std::string forceFieldFileName_;
135   };
136  
137  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines