# fmi-sim
[](https://github.com/jondo2010/rust-fmi)
[](https://crates.io/crates/fmi-sim)
[](https://docs.rs/fmi-sim)
[](https://github.com/jondo2010/rust-fmi/actions?query=branch%3Amain)
A pure-Rust FMI simulator framework. This crate is a work-in-progress.
## Scope
The purpose of `fmi-sim` is to simulate a single `FMI 2.0` or `FMI 3.0` FMU in ME/CS/SE modes as a way to drive testing and API completeness of the `rust-fmi` crates. The simulation algorithms are heavily inspired by those in [fmusim](https://github.com/modelica/Reference-FMUs/tree/main/fmusim).
## Running
```bash
➜ cargo run -p fmi-sim -- --help
Finished dev [unoptimized + debuginfo] target(s) in 0.08s
Running `target/debug/fmi-sim --help`
Error: A pure Rust FMI simulator
Usage: fmi-sim [OPTIONS] --model
Commands:
model-exchange Perform a ModelExchange simulation
co-simulation Perform a CoSimulation simulation
help Print this message or the help of the given subcommand(s)
Options:
--model The FMU model to read
-i, --input-file Name of the CSV file name with input data
-o, --output-file Simulation result output CSV file name. Default is to use standard output
-c Separator to be used in CSV input/output [default: ,]
-m Mangle variable names to avoid quoting (needed for some CSV importing applications, but not according to the CrossCheck rules)
-h, --help Print help
-V, --version Print version
```
## License
Licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or )
* MIT license
([LICENSE-MIT](LICENSE-MIT) or )
at your option.
## Contribution
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.