33 |
|
#ifndef TYPES_POLYNOMIALBONDTYPE_HPP |
34 |
|
#define TYPES_POLYNOMIALBONDTYPE_HPP |
35 |
|
|
36 |
– |
namespace oopse { |
36 |
|
|
37 |
|
#include "math/Polynomial.hpp" |
38 |
|
#include "types/BondType.hpp" |
39 |
+ |
|
40 |
+ |
namespace oopse { |
41 |
+ |
|
42 |
|
/** |
43 |
|
* @class PolynomialBondType PolynomialBondType.hpp "types/PolynomialBondType.hpp" |
44 |
|
* @todo documentation |
46 |
|
class PolynomialBondType : public BondType{ |
47 |
|
|
48 |
|
public: |
49 |
< |
PolynomialBondType() {} |
48 |
< |
PolynomialBondType(double r0, const std::vector<int>& power, |
49 |
< |
const std::vector<double>& coeff) : BondType(r0){ |
50 |
< |
} |
49 |
> |
PolynomialBondType(double r0) : BondType(r0) {} |
50 |
|
|
51 |
|
void setCoefficient(int power, double coefficient) { |
52 |
|
polynomial_.setCoefficient(power, coefficient); |
71 |
|
}; |
72 |
|
|
73 |
|
std::ostream& operator <<(std::ostream& os, PolynomialBondType& pbt) { |
74 |
< |
typename DoublePolynomial::PolynomialIterator i; |
74 |
> |
typename DoublePolynomial::const_iterator i; |
75 |
|
|
76 |
|
i = pbt.polynomial_.begin(); |
77 |
|
|
78 |
|
if (i == pbt.polynomial_.end()) { |
79 |
< |
os << "This Polynomial contains nothing" << std::endl; |
79 |
> |
os << "This PolynomialBondType contains nothing" << std::endl; |
80 |
|
return os; |
81 |
|
} |
82 |
|
|
83 |
< |
os << "This Polynomial contains below terms:" << std::endl; |
83 |
> |
os << "This PolynomialBondType contains below terms:" << std::endl; |
84 |
|
|
85 |
|
while(true){ |
86 |
|
os << i->second << "*" << "(r - " << pbt.getEquilibriumBondLength() << ")" << "^" << i->first; |