![logo image]

kalast

Thermophysical model for binary systems of asteroids


Demo

![asciicast image]

In action

Single asteroid surface temperatures computations:

```rust use kalast::{Body, Properties, Time, World, ASTRONAUMICAL_UNIT, HOUR, TAU, V3}; use std::path::Path;

fn main() { // Instanciate a celestial body named 'Dimorphos', at a distance of 1.664 AU from // the Sun, from a 3D object shape model located at 'rsc/obj/dimorphos.obj', // with a complete set of ground physical properties. let mut body = Body::new( "Dimorphos", V3::new(0.0, 1.0, 0.0) * ASTRONAUMICALUNIT * 1.664, Path::new("rsc/obj/dimorphos.obj"), Properties::new( 11.92 * HOUR, // rotation period 11.92 * HOUR, // revolution period 162.0 * TAU / 360.0, // obliquity 500.0, // thermal inertia 2146.0, // density 600.0, // heat capacity 0.07, // albedo 0.9, // emissivity ), ); body.setfacesmaskequator(); // only computes temperatures for equator

// Create a simulation time that lasts 50 revolution period of the body with 30 seconds steps.
// The residual 0.75 period is for the last frame to be at noon (max temperature peek at
// longitude=0°, according to this initial bodies setup).
let time = Time::new(50.75 * body.properties.revolution_period(), 30.0);

let mut world = World::new(time, body, None); // define the world of the simulation
world.start(); // run the simulation
world.save(Path::new("rsc/temperatures/dimorphos_equator.txt")); // save the temperatures to a file

} ```

Build source

```sh

build as a release

./compile.sh -r

run

./kalast ```

TODO


License

Licensed under the Apache License, Version 2.0.