37 |
|
namespace oopse { |
38 |
|
|
39 |
|
struct CharmmTorsionParameter { |
40 |
< |
double k; |
40 |
> |
double kchi; |
41 |
|
int n; |
42 |
|
double delta; |
43 |
|
}; |
45 |
|
/** |
46 |
|
* @class CharmmTorsionType CharmmTorsionType.hpp "types/CharmmTorsionType.hpp" |
47 |
|
*/ |
48 |
< |
class CharmmTorsionType{ |
48 |
> |
class CharmmTorsionType : public TorsionType{ |
49 |
|
public: |
50 |
|
CharmmTorsionType(); |
51 |
– |
virtual ~CharmmTorsionType() {} |
51 |
|
|
52 |
+ |
void setCharmmTorsionParameter(CharmmTorsionParameter param) { |
53 |
+ |
|
54 |
+ |
assert(param.n >=0); |
55 |
+ |
|
56 |
+ |
std::vector<CharmmTorsionParameter> i ; |
57 |
+ |
i = std::find(parameter_.begin(), parameter_.end(), ); |
58 |
+ |
|
59 |
+ |
if (i != parameter_.end()) { |
60 |
+ |
std::cerr << "a parameter set with " << param.n <<" is already there" << std::endl; |
61 |
+ |
} else { |
62 |
+ |
parameter_.push_back(param); |
63 |
+ |
} |
64 |
+ |
} |
65 |
+ |
|
66 |
+ |
void setCharmmTorsionParameter(double kchi, int n, double delta) { |
67 |
+ |
CharmmTorsionParameter param; |
68 |
+ |
param.kchi = kchi; |
69 |
+ |
param.n = n; |
70 |
+ |
param.delta = delta; |
71 |
+ |
setCharmmTorsionParameter(param); |
72 |
+ |
} |
73 |
+ |
|
74 |
|
virtual void calcForce(double cosPhi, double sinPhi, double& V, double& dVdPhi); |
75 |
|
|
76 |
|
private: |