Code organization¶
The code is organized in three main products, each in a separate directory:
featomic/
contains the main Rust implementation of all calculators, and the corresponding unit and regression tests;featomic-c-api/
is a Rust crate containing the implementation of the featomic C API;python/
contains the Python interface to featomic, and the corresponding tests
Finally, docs/
contains the documentation for everything related to
featomic.
The main featomic crate¶
Inside the main featomic crate, the following code organization is used:
featomic/benches
: benchmarks of the code on some simple systems;featomic/tests
: regression tests for all calculators;featomic/src/system/
: definition of everything related to systems:UnitCell
, theSystem
trait andSimpleSystem
implementation;featomic/src/calculator.rs
: convenience wrapper around implementations ofCalculatorBase
that setup everything before a calculation;featomic/src/calculators/
: definition of theCalculatorBase
trait and various implementations of this trait;