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

Comparing trunk/OOPSE-4/src/UseTheForce/ForceField.hpp (file contents):
Revision 2172 by tim, Tue Apr 12 18:30:37 2005 UTC vs.
Revision 2461 by gezelter, Mon Nov 21 22:59:02 2005 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# Line 39 | Line 39
39   * such damages.
40   */
41  
42 < /**
43 <  * @file ForceField.hpp
44 <  * @author tlin
45 <  * @date 11/04/2004
46 <  * @time 22:51am
47 <  * @version 1.0
48 <  */
42 > /**
43 > * @file ForceField.hpp
44 > * @author tlin
45 > * @date 11/04/2004
46 > * @time 22:51am
47 > * @version 1.0
48 > */
49    
50   #ifndef USETHEFORCE_FORCEFIELD_HPP
51   #define USETHEFORCE_FORCEFIELD_HPP
52  
53 < #define MK_STR(s) # s
54 < #define STR_DEFINE(t, s) t = MK_STR(s)
55 <
53 > #include "config.h"
54   #include <string>
55   #include <utility>
56  
57   #include "io/basic_ifstrstream.hpp"
58 + #include "io/ForceFieldOptions.hpp"
59   #include "utils/TypeContainer.hpp"
60   #include "types/AtomType.hpp"
61   #include "types/BondType.hpp"
# Line 65 | Line 64 | namespace oopse {
64  
65   namespace oopse {
66  
67 < /**
68 < * @class ForceField ForceField.hpp ''UseTheForce/ForceField.hpp"
69 < * @brief
70 < */
71 < class ForceField{
67 >  /**
68 >   * @class ForceField ForceField.hpp ''UseTheForce/ForceField.hpp"
69 >   * @brief
70 >   */
71 >  class ForceField{
72  
73 <    public:
73 >  public:
74  
75 <        typedef TypeContainer<AtomType, 1> AtomTypeContainer;
76 <        typedef TypeContainer<BondType, 2> BondTypeContainer;
77 <        typedef TypeContainer<BendType, 3> BendTypeContainer;
78 <        typedef TypeContainer<TorsionType, 4> TorsionTypeContainer;
75 >    typedef TypeContainer<AtomType, 1> AtomTypeContainer;
76 >    typedef TypeContainer<BondType, 2> BondTypeContainer;
77 >    typedef TypeContainer<BendType, 3> BendTypeContainer;
78 >    typedef TypeContainer<TorsionType, 4> TorsionTypeContainer;
79          
80 <        ForceField();
80 >    ForceField();
81  
82 <        virtual ~ForceField();
82 >    virtual ~ForceField();
83  
84 <        std::string getForceFieldFileName() {
85 <            return forceFieldFileName_;
86 <        }
84 >    std::string getForceFieldFileName() {
85 >      return forceFieldFileName_;
86 >    }
87  
88 <        void setForceFieldFileName(const std::string& filename) {
89 <            forceFieldFileName_ = filename;
90 <        }
88 >    void setForceFieldFileName(const std::string& filename) {
89 >      forceFieldFileName_ = filename;
90 >    }
91          
92 <        virtual void parse(const std::string& filename) = 0;  
92 >    virtual void parse(const std::string& filename) = 0;  
93  
94 <        AtomType* getAtomType(const std::string &at);
95 <        BondType* getBondType(const std::string &at1, const std::string &at2);
96 <        BendType* getBendType(const std::string &at1, const std::string &at2,
97 <                                    const std::string &at3);
98 <        TorsionType* getTorsionType(const std::string &at1, const std::string &at2,
99 <                                          const std::string &at3, const std::string &at4);
94 >    AtomType* getAtomType(const std::string &at);
95 >    BondType* getBondType(const std::string &at1, const std::string &at2);
96 >    BendType* getBendType(const std::string &at1, const std::string &at2,
97 >                          const std::string &at3);
98 >    TorsionType* getTorsionType(const std::string &at1, const std::string &at2,
99 >                                const std::string &at3, const std::string &at4);
100  
101 <        BondType* getExactBondType(const std::string &at1, const std::string &at2);
102 <        BendType* getExactBendType(const std::string &at1, const std::string &at2,
103 <                                    const std::string &at3);
104 <        TorsionType* getExactTorsionType(const std::string &at1, const std::string &at2,
105 <                                          const std::string &at3, const std::string &at4);
101 >    BondType* getExactBondType(const std::string &at1, const std::string &at2);
102 >    BendType* getExactBendType(const std::string &at1, const std::string &at2,
103 >                               const std::string &at3);
104 >    TorsionType* getExactTorsionType(const std::string &at1,
105 >                                     const std::string &at2,
106 >                                     const std::string &at3,
107 >                                     const std::string &at4);
108  
109  
110 <        //avoid make virtual function public
111 <        //Herb Sutter and Andrei Alexandrescu, C++ coding Standards, Addision-Wesley
112 <        virtual double getRcutFromAtomType(AtomType* at);
110 >    //avoid make virtual function public
111 >    //Herb Sutter and Andrei Alexandrescu, C++ coding Standards, Addision-Wesley
112 >    virtual double getRcutFromAtomType(AtomType* at);
113  
114 <        std::string getWildCard() {
115 <            return wildCardAtomTypeName_;
116 <        }
114 >    std::string getWildCard() {
115 >      return wildCardAtomTypeName_;
116 >    }
117  
118 <        void setWildCard(const std::string& wildCard) {
119 <            wildCardAtomTypeName_ = wildCard;
120 <        }
118 >    void setWildCard(const std::string& wildCard) {
119 >      wildCardAtomTypeName_ = wildCard;
120 >    }
121  
122  
123 <        unsigned int getNAtomType() {
124 <            return atomTypeCont_.size();
125 <        }
123 >    unsigned int getNAtomType() {
124 >      return atomTypeCont_.size();
125 >    }
126          
127 <        bool addAtomType(const std::string &at, AtomType* atomType);
127 >    bool addAtomType(const std::string &at, AtomType* atomType);
128  
129 <        bool addBondType(const std::string &at1, const std::string &at2, BondType* bondType);
129 >    bool addBondType(const std::string &at1, const std::string &at2,
130 >                     BondType* bondType);
131  
132 <        bool addBendType(const std::string &at1, const std::string &at2,
133 <                                    const std::string &at3, BendType* bendType);
132 >    bool addBendType(const std::string &at1, const std::string &at2,
133 >                     const std::string &at3, BendType* bendType);
134  
135 <        bool addTorsionType(const std::string &at1, const std::string &at2,
136 <                                          const std::string &at3, const std::string &at4, TorsionType* torsionType);
135 >    bool addTorsionType(const std::string &at1, const std::string &at2,
136 >                        const std::string &at3, const std::string &at4, TorsionType* torsionType);
137  
138 <        ifstrstream* openForceFieldFile(const std::string& filename);
138 >    ifstrstream* openForceFieldFile(const std::string& filename);
139  
140 <    protected:
140 >    ForceFieldOptions& getForceFieldOptions() {return forceFieldOptions_;}
141 >  protected:
142  
143 <        AtomTypeContainer atomTypeCont_;    
144 <        BondTypeContainer bondTypeCont_;
145 <        BendTypeContainer bendTypeCont_;
146 <        TorsionTypeContainer torsionTypeCont_;
147 <        
148 <    private:  
149 <        std::string ffPath_;
143 >    AtomTypeContainer atomTypeCont_;    
144 >    BondTypeContainer bondTypeCont_;
145 >    BendTypeContainer bendTypeCont_;
146 >    TorsionTypeContainer torsionTypeCont_;
147 >    ForceFieldOptions forceFieldOptions_;
148 >    
149 >  private:  
150 >    std::string ffPath_;
151  
152 <        std::string wildCardAtomTypeName_;
152 >    std::string wildCardAtomTypeName_;
153  
154 <        std::string forceFieldFileName_;
155 < };
154 >    std::string forceFieldFileName_;
155 >  };
156  
157  
158   }//end namespace oopse

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines