46 |
|
#include "math/SquareMatrix3.hpp" |
47 |
|
#include "math/DynamicRectMatrix.hpp" |
48 |
|
#include "primitives/Molecule.hpp" |
49 |
< |
#include "applications/hydrodynamics/MoleculeShape.hpp" |
49 |
> |
#include "applications/hydrodynamics/StuntDoubleShape.hpp" |
50 |
|
#include "utils/any.hpp" |
51 |
|
namespace oopse { |
52 |
|
struct HydrodynamicProps { |
53 |
|
Vector3d diffCenter; |
54 |
< |
Mat3x3d transDiff; |
55 |
< |
Mat3x3d rotDiff; |
56 |
< |
Mat3x3d transRotDiff; |
54 |
> |
Mat3x3d Ddtt; |
55 |
> |
Mat3x3d Ddtr; |
56 |
> |
Mat3x3d Ddrr; |
57 |
> |
Mat3x3d Xidtt; |
58 |
> |
Mat3x3d Xidrt; |
59 |
> |
Mat3x3d Xidtr; |
60 |
> |
Mat3x3d Xidrr; |
61 |
|
}; |
62 |
|
|
63 |
|
struct BeadParam { |
70 |
|
|
71 |
|
class HydrodynamicsModel { |
72 |
|
public: |
73 |
< |
HydrodynamicsModel(Molecule* mol, const DynamicProperty& extraParams) : mol_(mol) {} |
74 |
< |
bool calcHydrodyanmicsProps(double eta); |
73 |
> |
HydrodynamicsModel(StuntDouble* sd, const DynamicProperty& extraParams); |
74 |
> |
bool calcHydrodyanmicsProps(); |
75 |
|
|
76 |
|
Vector3d getDiffCenter(); |
77 |
|
Mat3x3d getTransDiff(); |
80 |
|
void writeBeads(std::ostream& os); |
81 |
|
void writeDiffCenterAndDiffTensor(std::ostream& os); |
82 |
|
protected: |
83 |
< |
Molecule* mol_; |
83 |
> |
StuntDouble* sd_; |
84 |
|
private: |
85 |
|
virtual bool createBeads(std::vector<BeadParam>& beads) = 0; |
86 |
|
|
87 |
< |
|
87 |
> |
void calcResistanceTensor(); |
88 |
> |
void calcDiffusionTensor(); |
89 |
|
HydrodynamicProps props_; |
90 |
|
std::vector<BeadParam> beads_; |
91 |
+ |
double viscosity_; |
92 |
+ |
double temperature_; |
93 |
|
|
94 |
|
}; |
95 |
|
|