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

Comparing trunk/OOPSE-4/src/types/CharmmTorsionType.hpp (file contents):
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC vs.
Revision 2448 by tim, Wed Nov 16 23:10:02 2005 UTC

# Line 54 | Line 54 | namespace oopse {
54   #include <vector>
55  
56   #include "types/TorsionType.hpp"
57 + #include "types/PolynomialTorsionType.hpp"
58   namespace oopse {
59  
60    struct CharmmTorsionParameter {
# Line 62 | Line 63 | namespace oopse {
63      double delta;
64    };
65  
66 <  class SamePeriodicityFunctor {
66 >  class LessThanPeriodicityFunctor {
67    public:
68 <    SamePeriodicityFunctor(int n) : n_(n) {}
69 <    bool operator()(CharmmTorsionParameter p) {
69 <      return p.n == n_;
68 >    bool operator()(const CharmmTorsionParameter& p1, const CharmmTorsionParameter& p2) {
69 >      return p1.n < p2.n;
70      }
71        
72  private:
73    int n_;
71    };
72    /**
73     * @class CharmmTorsionType CharmmTorsionType.hpp "types/CharmmTorsionType.hpp"
74     */
75    class CharmmTorsionType : public TorsionType{
76    public:
77 +    CharmmTorsionType(std::vector<CharmmTorsionParameter>& parameters);
78 +            
79 +    virtual void calcForce(double cosPhi, double& V, double& dVdCosPhi) { torsionType_->calcForce(cosPhi, V, dVdCosPhi);}
80  
81 <    void setCharmmTorsionParameter(CharmmTorsionParameter param) {
82 <
83 <      assert(param.n >= 0 && param.n < 6);
84 <
85 <      std::vector<CharmmTorsionParameter>::iterator i ;
86 <      i = std::find_if(parameter_.begin(), parameter_.end(), SamePeriodicityFunctor(param.n));
87 <
88 <      if (i != parameter_.end()) {
89 <        std::cerr << "a parameter set with " << param.n <<" is already there" << std::endl;
90 <      } else {
91 <        parameter_.push_back(param);
92 <      }            
93 <    }
94 <
95 <    void setCharmmTorsionParameter(double kchi, int n, double delta) {
96 <      CharmmTorsionParameter param;
97 <      param.kchi = kchi;
98 <      param.n = n;
99 <      param.delta = delta;
100 <      setCharmmTorsionParameter(param);
101 <    }
102 <        
103 <    virtual void calcForce(double cosPhi, double sinPhi, double& V, double& dVdPhi);
104 <
105 <  private:
106 <    std::vector<CharmmTorsionParameter> parameter_;
81 >  private:    
82 >    PolynomialTorsionType* torsionType_;
83    };
84    
85   } //end namespace oopse

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines