Crate kalast[−][src]
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.7"
Useful functionalities of kalast are grouped in the root module kalast::
.
kalast in action
use kalast::{BinarySystem, Properties, Time, World, ASTRONAUMICAL_UNIT, HOUR, MINUTE, V3, YEAR}; fn main() { let binary_system = BinarySystem::new( "Two spheres", V3::new(1.0, 0.0, 0.0) * ASTRONAUMICAL_UNIT * 1.664, ) .with_primary( "rsc/obj/sphere_light.obj", Properties::new( 1.0 * YEAR, // rotation period 2.7 * HOUR, // revolution period 0.0, // obliquity 100.0, // thermal inertia 2146.0, // density 600.0, // heat capacity 0.1, // albedo 0.9, // emissivity ), ) .with_secondary( "rsc/obj/ellipsoid_light.obj", Properties::new( 11.92 * HOUR, // rotation period 11.92 * HOUR, // revolution period 0.0, // obliquity 162.0 * TAU / 360. 500.0, // thermal inertia 2146.0, // density 600.0, // heat capacity 0.07, // albedo 0.9, // emissivity ), V3::new(-1.0, 0.0, 0.0) * 1e3, // relative position ); binary_system.complete_model(true); binary_system.primary_mut().fixed(true); binary_system.secondary_mut().fixed(true); // Time let time = Time::new( binary_system.secondary().properties.revolution_period() * 50., 30.0 * MINUTE, ); // World let mut world = World::new(time, binary_system); world.start(); world.save("rsc/data/tmp.txt"); println!( "{} {}", world.environment_system.secondary().temperatures().min(), world.environment_system.secondary().temperatures().max() ); }
You can also read other examples.
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)
- mutual heating from primary/moon
- self heating
- TODO: 3D conduction / FEM
- 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 bodyBinarySystem
: the environment system for binary system of asteroidsWorld
: the simulation managerProperties
: all the properties to characterise a body
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 |