44 |
|
#include "utils/NumericConstant.hpp" |
45 |
|
#include "math/ChebyshevPolynomials.hpp" |
46 |
|
namespace oopse { |
47 |
< |
CharmmTorsionType::CharmmTorsionType(std::vector<CharmmTorsionParameter>& parameters) { |
47 |
> |
CharmmTorsionType::CharmmTorsionType(std::vector<CharmmTorsionParameter>& parameters) { |
48 |
|
std::vector<CharmmTorsionParameter>::iterator i; |
49 |
< |
i = std::max_element(parameters.begin(), parameters.end(), LessThanPeriodicityFunctor()); |
49 |
> |
i = std::max_element(parameters.begin(), parameters.end(), |
50 |
> |
LessThanPeriodicityFunctor()); |
51 |
|
if (i != parameters.end()) { |
52 |
< |
int maxPower = i->n; |
53 |
< |
ChebyshevT T(maxPower); |
54 |
< |
ChebyshevU U(maxPower); |
52 |
> |
int maxPower = i->n; |
53 |
> |
ChebyshevT T(maxPower); |
54 |
> |
ChebyshevU U(maxPower); |
55 |
> |
|
56 |
> |
// convert parameters of charmm type torsion into |
57 |
> |
// PolynomialTorsion's parameters |
58 |
|
|
59 |
< |
// convert parameters of charmm type torsion into PolynomialTorsion's parameters |
60 |
< |
DoublePolynomial finalPolynomial; |
61 |
< |
for (i = parameters.begin(); i != parameters.end(); ++i) { |
62 |
< |
DoublePolynomial cosTerm = T.getChebyshevPolynomial(i->n); |
63 |
< |
cosTerm *= cos(i->delta) * i->kchi; |
64 |
< |
DoublePolynomial sinTerm = U.getChebyshevPolynomial(i->n); |
65 |
< |
sinTerm *= -sin(i->delta) * i->kchi; |
66 |
< |
finalPolynomial = cosTerm + sinTerm; |
67 |
< |
finalPolynomial += i->kchi; |
68 |
< |
} |
65 |
< |
torsionType_->setPolynomial(finalPolynomial); |
59 |
> |
DoublePolynomial finalPolynomial; |
60 |
> |
for (i = parameters.begin(); i != parameters.end(); ++i) { |
61 |
> |
DoublePolynomial cosTerm = T.getChebyshevPolynomial(i->n); |
62 |
> |
cosTerm *= cos(i->delta) * i->kchi; |
63 |
> |
DoublePolynomial sinTerm = U.getChebyshevPolynomial(i->n); |
64 |
> |
sinTerm *= -sin(i->delta) * i->kchi; |
65 |
> |
finalPolynomial = cosTerm + sinTerm; |
66 |
> |
finalPolynomial += i->kchi; |
67 |
> |
} |
68 |
> |
torsionType_->setPolynomial(finalPolynomial); |
69 |
|
} |
70 |
< |
} |
68 |
< |
|
70 |
> |
} |
71 |
|
} //end namespace oopse |