Skip to content

Astroshaper/AsteroidThermoPhysicalModels.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThermoPhysicalModeling.jl

Stable Dev Build Status codecov Aqua QA

Julia-based toolkit for dynamical simulations of planets and small solar system bodies.

Installation

using Pkg
Pkg.add(url="https://github.com/Astroshaper/ThermoPhysicalModeling.jl")
using ThermoPhysicalModeling

You can update the module and run tests as follows.

Pkg.update("ThermoPhysicalModeling")
Pkg.test("ThermoPhysicalModeling")

Orbital dynamics

You can simulate orbital evolution of planets and small bodies under gravity interaction and various perturbations. As for the orbital integrators, you can choose from Euler, leapfrog, 4th-degree Hermite methods (Note that my implementation of the Hermite method is being verified). Thermophysical perturbation on orbital motion of an asteroid, that is, Yarkovsky effect will be implemented.

Example

Orbital calculation of the solar system. The gravity of 8 planets and Pluto are considered.

Themophysical modeling

Based on orbit, spin, and 3-D shape, you can calculate the distribution of the surface temperature on an asteroid. The temperature distribution can be used to calculate the non-gravitational perturbations on its orbital and rotational motion (Yarkovsky and YORP effects, respectively).

Available format for shape model

  • Wavefront OBJ format (*.obj)

Thermophysics included

  • 1-dimensional heat diffusion in depth direction
  • Self-shadowing: Local shadows casted by topography
  • Self-heating: Re-absorption of scatterd and radiated photons by surrounding facets. Only sigle scattering is implemented.

Thermophysics to be implemted

  • Surface roughness (smaller than facets of the shape model)

Example

Distribution of surface temperature on asteroid Ryugu. The color map ranges from 200 to 400 K.

Thermophysics_Ryugu

Gravity calculation for asteoids

You can calculate the precise gravity field of an irregularly shaped body, based on the constant-density polyhedron method (Werner & Scheeres, 1997).

Example

Distribution of dynamical elevation on asteroid Itokawa. The color map ranges from -25 to 55 m.

Gravity_Itokawa

Start to play

Let's visualize a shape model of asteroid Ryugu. Please downlad a Ryugu model from ThermoPhysicalModeling/test/ryugu_test.obj.

using ThermoPhysicalModeling

shapepath = "ryugu_test.obj"  # Path to the shape model
shape = Shape(shapepath; scale=1000, find_visible_facets=true)

draw(shape)
# draw(shape, data=:radius)                     # Radius of each surface facet
# draw(shape; data=:illumination, r̂☉=[1,0,0.])  # Illumination when the Sun is in the direction of r̂☉

start_to_play