[−][src]Crate kalast
kalast
kalast is a thermophysical modelling engine for binary systems of asteroids.
Using kalast
You will need the last stable build of the rust compiler and the official package manager: cargo.
Simply add the following to your Cargo.toml
file:
[dependencies] kalast = "0.1"
Most useful functionalities of kalast are grouped in the root module kalast::
.
However, the recommended way to use nalgebra is to import types and traits explicitly, and call free-functions using the na:: prefix:
use kalast::{BasicProperties, Body, Time, World, ASTRONAUMICAL_UNIT, DAY, HOUR, V3}; use std::path::Path; fn main() { // Create a simulation time that lasts 50 days with 30 seconds steps let time = Time::new(50. * DAY, 30.); // Instanciate a celestial body named 'Dimorphos', at a distance of 1 AU from // the Sun, from a 3D object shape model localted at 'rsc/obj/dimorphos.obj', // with a complete set of ground physical properties. let mut body = Body::new( "Dimorphos", // name V3::new(0., 1., 0.) * ASTRONAUMICAL_UNIT, // distance to Sun Path::new("rsc/obj/dimorphos.obj"), // 3D object path BasicProperties { // ground physical properties rotation_period: 11.92 * HOUR, revolution_period: 11.92 * HOUR, obliquity: 0., thermal_inertia: 500., density: 2146., heat_capacity: 600., albedo: 0.07, emissivity: 0.9, } .into_all(time.time_step()), // this converts the struct `BasicProperties` into // `Properties` (which is the actual last argument type of the body constructor) // by considering the time step to optimize some ground parameters ); body.set_faces_mask_equator(); // only computes temperatures for equator let mut world = World::new(time, body); // define the world of the simulation world.start(); // run the simulation world.save(Path::new("rsc/temperatures/dimorphos.txt")); // save the temperatures to a file }
Features
kalast is meant for binary system of asteroids surface thermophysical modelling. The physics of this engine includes these features:
- custom shape model
- celestial body revolution
- compute surface temperatures from solar flux
- ground 1D heat transfert conduction
- celestial body mask view (example only equator)
- TODO: mutual heating from primary/moon
- TODO: self heating
- TODO: mutual occultations
- TODO: shadowing
Re-exports
pub use crate::base::*; |
pub use crate::toolbox::*; |
Modules
base | The main features of kalast are implemented in |
toolbox | The module |
Traits
SuperScalar |
|
Type Definitions
V3 |
|
V3X |
|
VX |
|