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 1735 by tim, Fri Nov 12 17:40:03 2004 UTC vs.
Revision 1770 by tim, Tue Nov 23 17:53:43 2004 UTC

# Line 37 | Line 37
37   #define MK_STR(s) # s
38   #define STR_DEFINE(t, s) t = MK_STR(s)
39  
40 + #include <string>
41   #include <utilities>
42  
42 #include "utils/Tuple.hpp"
43 #include "types/ShapeAtomType.hpp"
43   #include "io/basic_ifstrstream.hpp"
44   #include "utils/TypeContainer.hpp"
45 + #include "types/AtomType.hpp"
46 + #include "types/BondType.hpp"
47 + #include "types/BendType.hpp"
48 + #include "types/TorsionType.hpp"
49  
50   namespace oopse {
51  
# Line 62 | Line 65 | class ForceField{
65              hasVariant_ = true;
66              variant_ = variant;
67          }
68 <        virtual void readParams() = 0;  
68 >        
69 >        virtual void parse(const std::string& filename) = 0;  
70  
71          AtomType* getAtomType(const std::string &at);
72          BondType* getBondType(const std::string &at1, const std::string &at2);
# Line 71 | Line 75 | class ForceField{
75          TorsionType* getTorsionType(const std::string &at1, const std::string &at2,
76                                            const std::string &at3, const std::string &at4);
77  
78 +        BondType* getExactBondType(const std::string &at1, const std::string &at2);
79 +        BendType* getExactBendType(const std::string &at1, const std::string &at2,
80 +                                    const std::string &at3);
81 +        TorsionType* getExactTorsionType(const std::string &at1, const std::string &at2,
82 +                                          const std::string &at3, const std::string &at4);
83 +
84 +
85 +        //avoid make virtual function public
86 +        //Herb Sutter and Andrei Alexandrescu, C++ coding Standards, Addision-Wesley
87          virtual double getRcutFromAtomType(AtomType* at);
88  
89          std::string getWildCard() {
# Line 83 | Line 96 | class ForceField{
96  
97      protected:
98          
99 <        void addAtomType(const std::string &at, AtomType* atomType);
100 <        void addBondType(const std::string &at1, const std::string &at2, BondType* bondType);
101 <        void addBendType(const std::string &at1, const std::string &at2,
99 >        bool addAtomType(const std::string &at, AtomType* atomType);
100 >        bool addBondType(const std::string &at1, const std::string &at2, BondType* bondType);
101 >        bool addBendType(const std::string &at1, const std::string &at2,
102                                      const std::string &at3, BendType* bendType);
103 <        void addTorsionType(const std::string &at1, const std::string &at2,
103 >        bool addTorsionType(const std::string &at1, const std::string &at2,
104                                            const std::string &at3, const std::string &at4, TorsionType* torsionType);
105  
106 +        ifstrstream* openForceFieldFile(const std::string& filename);
107 +
108 +        unsigned int getNAtomType() {
109 +            return atomTypeCont_.size();
110 +        }
111 +        
112      private:  
113          std::string ffPath_;
95        ifstrstream forceFile_;
114          bool hasVariant_;
115          std::string variant_;
116  
# Line 107 | Line 125 | class ForceField{
125          BondTypeContainer bondTypeCont_;
126          BendTypeContainer bendTypeCont_;
127          TorsionTypeContainer torsionTypeCont_;
128 +
129 +        SectionParserManager
130   };
131  
112 typedef GenericFactory<ForceField> ForceFieldFactory;
132  
133   }//end namespace oopse
134   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines