Skip to content

Astroshaper/AsteroidThermoPhysicalModels.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AsteroidThermoPhysicalModels.jl

Stable Dev Build Status codecov Aqua QA

AsteroidThermoPhysicalModels.jl is a comprehensive Julia-based toolkit for thermophysical modeling (TPM) of asteroids. It allows you to simulate the temperature distribution of asteroids and predict non-gravitational perturbations on their dynamics (Yarkovsky and YORP effects).

📚 Documentation

For detailed documentation, please visit:

Sample notebooks are available in Astroshaper-examples.

🚀 Installation

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

You can update the package and run tests as follows:

Pkg.update("AsteroidThermoPhysicalModels")
Pkg.test("AsteroidThermoPhysicalModels")

🔍 Features

Thermophysical Processes

  • Heat Conduction: 1-dimensional heat diffusion in depth direction
  • Self-Shadowing: Local shadows cast by topography
  • Self-Heating: Re-absorption of scattered and radiated photons by surrounding facets
  • Binary Systems: Support for mutual shadowing (eclipses) and mutual heating between primary and secondary bodies

Shape Models

  • Supports Wavefront OBJ format (*.obj)

Non-Gravitational Effects

  • Yarkovsky Effect: Orbital perturbation due to asymmetric thermal emission
  • YORP Effect: Rotational perturbation due to asymmetric thermal emission

Coming Soon

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

🌟 Example

Temperature distribution of asteroid Didymos and its satellite Dimorphos:

TPM_Didymos

📖 Basic Usage

using AsteroidThermoPhysicalModels

# Load shape model
shape = load_shape_obj("asteroid_shape.obj"; scale=1000, find_visible_facets=true)

# Set thermal parameters
thermo_params = ThermoParams(
    8.0 * 3600,  # Rotation period [s]
    0.05,        # Thermal skin depth [m]
    200.0,       # Thermal inertia [J m⁻² K⁻¹ s⁻¹/²]
    0.1,         # Reflectance in visible light [-]
    0.0,         # Reflectance in thermal infrared [-]
    0.9,         # Emissivity [-]
    0.5,         # Depth of lower boundary [m]
    0.0125,      # Depth step width [m]
    41           # Number of depth steps
)

# Create and run TPM model
# See documentation for complete examples

📊 Output

The package produces detailed output files including:

  • Surface and subsurface temperature distributions
  • Thermal forces and torques
  • Energy conservation metrics

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.