[−][src]Crate kalast
kalast
Thermophysical model 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.6"
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::{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) * ASTRONAUMICAL_UNIT * 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.set_faces_mask_equator(); // 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 }
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
Explore
If your want to explore the documentation, you can visite these pages:
Object3D
: parse 3D object file and compute atributes of faces (centers, normals, ...)Body
: the representation for a celestial bodyProperties
: all the properties to characterise a bodyWorld
: the simulation manager
Re-exports
pub use crate::base::*; |
pub use crate::toolbox::*; |
Modules
base | Base features. |
toolbox | Collection of generic functions for math, physics, matrix operations, or for the usage of other crates. |
Traits
SuperScalar | Trait that extends |
Type Definitions
Matrix10xX | Type alias for |
MatrixSlice10x1 | Type alias for |
MatrixSliceMut10x1 | Type alias for |
V3 | Type alias for |
V3X | Type alias for |
VX | Type alias for |