46 |
|
|
47 |
|
namespace OpenMD { |
48 |
|
|
49 |
< |
HydroProp::HydroProp(){ |
50 |
< |
hasCOR = false; |
51 |
< |
hasXi = false; |
49 |
> |
HydroProp::HydroProp() : hasCOR(false), hasXi(false) { |
50 |
|
} |
51 |
|
|
52 |
< |
HydroProp::HydroProp(Vector3d cor, Mat6x6d Xi, Mat6x6d D) : cor_(cor), Xi_(Xi), D_(D){ |
53 |
< |
hasCOR = true; |
54 |
< |
hasXi = true; |
52 |
> |
HydroProp::HydroProp(Vector3d cor, Mat6x6d Xi, Mat6x6d D) : cor_(cor), |
53 |
> |
Xi_(Xi), D_(D), |
54 |
> |
hasCOR(true), |
55 |
> |
hasXi(true) { |
56 |
|
} |
57 |
|
|
58 |
< |
HydroProp::HydroProp(const std::string frictionLine) { |
58 |
> |
HydroProp::HydroProp(const std::string &frictionLine) : hasCOR(false), |
59 |
> |
hasXi(false) { |
60 |
|
|
61 |
|
StringTokenizer tokenizer(frictionLine); |
62 |
|
if (tokenizer.countTokens() >= 40) { |
65 |
|
cor_[1] = tokenizer.nextTokenAsDouble(); |
66 |
|
cor_[2] = tokenizer.nextTokenAsDouble(); |
67 |
|
|
68 |
+ |
hasCOR = true; |
69 |
+ |
|
70 |
|
Xitt_(0,0) = tokenizer.nextTokenAsDouble(); |
71 |
|
Xitt_(0,1) = tokenizer.nextTokenAsDouble(); |
72 |
|
Xitt_(0,2) = tokenizer.nextTokenAsDouble(); |
112 |
|
Xi_.setSubMatrix(3, 0, Xitr_); |
113 |
|
Xi_.setSubMatrix(3, 3, Xirr_); |
114 |
|
|
115 |
+ |
hasXi = true; |
116 |
+ |
|
117 |
|
CholeskyDecomposition(Xi_, S_); |
118 |
|
|
119 |
|
} |