#model #ode #modelica

bin+lib fmi-sim

A pure Rust FMI simulator

2 releases

new 0.1.1 Oct 30, 2024
0.1.0 Apr 16, 2024

#944 in Science

MIT/Apache

265KB
5.5K SLoC

fmi-sim

github crates.io docs.rs build status

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.

Running

 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 <MODEL> <COMMAND>

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 <MODEL>              The FMU model to read
  -i, --input-file <INPUT_FILE>    Name of the CSV file name with input data
  -o, --output-file <OUTPUT_FILE>  Simulation result output CSV file name. Default is to use standard output
  -c <SEPARATOR>                   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

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.

Dependencies

~31–45MB
~598K SLoC