This project defines the gravitational potential of a polyhedron asteroid. It implements the method derived by Werner and Scheeres.
- Exterior gravitation of a polyhedron derived and compared with harmonic and mascon gravitation representations of asteroid 4769 Castalia
- The gravitational potential of a homogeneous polyhedron or don't cut corners
- CMake > 3.12
- Eigen > 3.3.5
- CGAL > 4.12-1
- Boost > 1.68
-
Install dependencies on MacOS
brew install cgal cmake libomp
or for linux
bash ./utilities/build_cmake.sh bash ./utilities/build_boost.sh bash ./utilities/build_cgal.sh bash ./utilities/build_eigen.sh
-
Update the submodules
git submodule update --init --recursive
-
LibIGL setup (sometimes)
CMake doesn't search for matlab in libigl
Might need to edit
extern/libigl/shared/cmake/libigl.cmake
-
SCHEERES, DJ, KHUSHALANI, B y WERNER, Robert A. "Estimating asteroid density distributions from shape and gravity information". Planetary and Space Science. 2000
-
WERNER, Robert A. "The Gravitational Potential of a Homogeneous Polyhedron or Don't Cut Corners". Celestial Mechanics and Dynamical Astronomy. 1994
-
WERNER, Robert A. "Spherical Harmonic Coefficients for the Potential of a Constant-density Polyhedron". Computers & Geosciences. 1997, vol 23
-
WERNER, Robert A y SCHEERES, Daniel J. "Exterior Gravitation of a Polyhedron Derived and Compared with Harmonic and Mascon Gravitation Representations of Asteroid 4769 Castalia". Celestial Mechanics and Dynamical Astronomy. 1996, vol 65
- Remove dependency on libigl
- Bundle CGAL requirements with app (similar to how igl works)
- Remove boost dependency (probably easy)
- Analytical verification of potential https://arxiv.org/pdf/1206.3857.pdf
/ The attracting shape is a cube of dimensions 1 x 1 x 1 m of density rho = 1e6 kg/m^3
// The analytic potential and acceleration at (1,2,3) (m) in the shape model's barycentric frame is computed
// Assumes that G = 6.67408e-11 m^3 / (kg * s ^2)
// Queried point for pgm validation
arma::vec p4 = {1, 2, 3};
arma::vec acc_true = {
-1.273782722739791e-06,
-2.548008881415967e-06,
-3.823026510474731e-06
};
double pot_true = 0.26726619638669064 * arma::datum::G * density;