| 43 |
|
#include "applications/hydrodynamics/HydrodynamicsModel.hpp" |
| 44 |
|
namespace oopse { |
| 45 |
|
|
| 46 |
< |
Ellipsoid::Ellipsoid(Vector3d origin, double radius, double ratio, Mat3x3d rotMat) |
| 47 |
< |
: origin_(origin), a_(radius), b_(radius*ratio), rotMat_(rotMat) { |
| 46 |
> |
Ellipsoid::Ellipsoid(Vector3d origin, double rMajor, double rMinor,Mat3x3d rotMat) |
| 47 |
> |
: origin_(origin), rMajor_(rMajor), rMinor_(rMinor), rotMat_(rotMat) { |
| 48 |
|
|
| 49 |
|
} |
| 50 |
|
bool Ellipsoid::isInterior(Vector3d pos) { |
| 51 |
|
Vector3d r = pos - origin_; |
| 52 |
|
Vector3d rbody = rotMat_ * r; |
| 53 |
< |
double xovera = rbody[0]/a_; |
| 54 |
< |
double yovera = rbody[1]/a_; |
| 55 |
< |
double zoverb = rbody[2]/b_; |
| 53 |
> |
double xovera = rbody[0]/rMajor_; |
| 54 |
> |
double yovera = rbody[1]/rMajor_; |
| 55 |
> |
double zoverb = rbody[2]/rMinor_; |
| 56 |
|
|
| 57 |
|
bool result; |
| 58 |
|
if (xovera*xovera + yovera*yovera + zoverb*zoverb < 1) |
| 68 |
|
|
| 69 |
|
std::pair<Vector3d, Vector3d> boundary; |
| 70 |
|
//make a cubic box |
| 71 |
< |
double rad = a_ > b_ ? a_ : b_; |
| 71 |
> |
double rad = rMajor_ > rMinor_ ? rMajor_ : rMinor_; |
| 72 |
|
Vector3d r(rad, rad, rad); |
| 73 |
|
boundary.first = origin_ - r; |
| 74 |
|
boundary.second = origin_ + r; |