A crate for 3-D and 4-D vector and matrix algebra, conceived for use in physics simulations. Builds out from a basic ThreeVec struct including most commonly used operations built in. Includes physics constants, 3 and 4-D vectors and matrices and many associated operations, collections, histograms, and output trees, which are serialized in json or MessagePack.
Beginning work on a new lib crate to make simulations (such as the example) more strait forward. Look forward to that in the coming months.
Check it out here!
If you have any ideas for functionality for the Feed trait, please open an issue on github.
Added Feed trait and FeedTree type for mutable data feeds.
Updated organization of source files.
Fixed Warnings in example and fixed deprecated code in LightSpeedError
Added LightSpeedError type for beta()
Added a compact json format to Serialization as to_jsonc()
, which is array intensive, instead to object intensive. Also added binary Serialization to MessagePack using the rmp crate as to_msg()
. The format is like jsonc, not json. The on disk savings of jsonc over json can be ~20%, and the savings for msg over json can be ~63%.
Now includes example of a many body simulation "universeina_box" use cargo run --example universe_in_a_box
This could take several seconds.
Branches can now be extracted from Trees, but this is not an ideal process. Trees should still be seen as containers for output only.
All physics constants are exported in the top in SI units. To retrieve them in Planck or natural units call calcify::Consts::planck() or calcify::Consts::natural().
FourMat::lambda() has been replaced by fn boost(initial: FourVec, v: ThreeVec). The math has been changed.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.