-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'fastsim-2' of github.com:NREL/fastsim into fastsim-2
- Loading branch information
Showing
5 changed files
with
105 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,19 +4,24 @@ | |
|
||
|
||
# Description | ||
This is the python/rust flavor of [NREL's FASTSim<sup>TM</sup>](https://www.nrel.gov/transportation/fastsim.html), which is based on the original Excel implementation. Effort will be made to keep the core methodology between this software and the Excel flavor in line with one another. | ||
|
||
This is the python/rust flavor of [NREL's FASTSim<sup>TM</sup>](https://www.nrel.gov/transportation/fastsim.html), which is based on the original Excel implementation. Effort will be made to keep the core methodology between this software and the Excel flavor in line with one another. | ||
|
||
All classes and methods are self-documented. | ||
|
||
# Installation | ||
|
||
## Python | ||
## Python | ||
|
||
Set up and activate a python environment (compatible with Python 3.8 - 3.10; we recommend Python 3.10) with the following steps. | ||
### [Anaconda](https://www.anaconda.com/) | ||
|
||
### [Anaconda](https://www.anaconda.com/) | ||
|
||
1. Create: `conda create -n fastsim python=3.10` | ||
1. Activate: `conda activate fastsim` | ||
|
||
### [venv](https://docs.python.org/3/library/venv.html) | ||
|
||
There is some variation based on your Operating System: | ||
|
||
- PowerShell (windows): | ||
|
@@ -32,10 +37,13 @@ There is some variation based on your Operating System: | |
1. Activate: `fastsim-venv/Scripts/activate.bat` | ||
|
||
## FASTSim | ||
|
||
### Via PyPI | ||
|
||
In an active Python environment created above, run `pip install fastsim`. | ||
|
||
### Building from Scratch | ||
|
||
Developers might want to install the code in place so that FASTSim files can be editable (the `-e` flag for pip provides this behavior). This option can be handy since FASTSim will be installed in place from the installation location and any updates will be propagated each time FASTSim is freshly imported. To do this, you'll need to have the [Rust toolchain](https://www.rust-lang.org/tools/install) installed. | ||
|
||
- Option 1: run `sh build_and_test.sh` in root folder. | ||
|
@@ -46,19 +54,23 @@ Developers might want to install the code in place so that FASTSim files can be | |
1. Run `pytest -v python/fastsim/tests/` | ||
|
||
# Usage | ||
To see and run examples, navigate to `./python/fastsim/demos` and run the various *demo.py files to see fastsim use cases. There are other examples in fastsim/tests. | ||
|
||
To see and run examples, navigate to `./python/fastsim/demos` and run the various *demo.py files to see fastsim use cases. There are other examples in fastsim/tests. | ||
|
||
# Adding FASTSim as a Depency in Rust | ||
|
||
## Via GitHub | ||
|
||
Add this line: | ||
`fastsim-core = { git = "https://github.nrel.gov/MBAP/fastsim", branch = "rust-port" }` | ||
to your Cargo.toml file, modifying the `branch` key as appropriate. | ||
|
||
## Via Cargo | ||
|
||
This has not been implemented yet. | ||
|
||
# List of Abbreviations | ||
|
||
cur = current time step | ||
prev = previous time step | ||
cyc = drive cycle | ||
|
@@ -85,12 +97,14 @@ in = component input | |
out = component output | ||
|
||
# Known Issues | ||
|
||
Rust versions of classes have limited Language Server Protocol integration, and we are actively working on fixing this. | ||
|
||
# Release Notes | ||
|
||
2.1.1 -- license changed to Apache 2.0, default cycle grade and road type to zero if not provided, defaults to regenerative braking parameters, optional documentation fields now generated in Rust | ||
2.1.0 -- release and installation improvements, RustVehicle init cleanup, calibration improvements | ||
2.0.11 - 2.0.22 -- PyPI fixes. Also, Rust version is now >100x faster than Python version. | ||
2.0.11 - 2.0.22 -- PyPI fixes. Also, Rust version is now >100x faster than Python version. | ||
2.0.10 -- logging fixes, proc macro reorganization, some CAVs performance fixes | ||
2.0.9 -- support for mac ARM/RISC architecture | ||
2.0.8 -- performance improvements | ||
|
@@ -118,24 +132,25 @@ Rust versions of classes have limited Language Server Protocol integration, and | |
1.0.4 -- bug fix with custom engine curve | ||
1.0.3 -- bug fixes, faster testing | ||
1.0.2 -- forced type np.float64 on vehicle mass attributes | ||
1.0.1 -- Added `vehYear` attribute to vehicle and other minor changes. | ||
1.0.0 -- Implemented unittest package. Fixed energy audit calculations to be based on achieved speed. Updated this file. Improved documentation. Vehicle can be instantiated as dict. | ||
0.1.5 -- Updated to be compatible with ADOPT | ||
0.1.4 -- Bug fix: `mcEffMap` is now robust to having zero as first element | ||
0.1.3 -- Bug fix: `fastsim.vehicle.Vehicle` method `set_init_calcs` no longer overrides `fcEffMap`. | ||
0.1.2 -- Fixes os-dependency of xlwings by not running stuff that needs xlwings. Improvements in functional test. Refinment utomated typying of jitclass objects. | ||
0.1.1 -- Now includes label fuel economy and/or battery kW-hr/mi values that match excel and test for benchmarking against Excel values and CPU time. | ||
1.0.1 -- Added `vehYear` attribute to vehicle and other minor changes. | ||
1.0.0 -- Implemented unittest package. Fixed energy audit calculations to be based on achieved speed. Updated this file. Improved documentation. Vehicle can be instantiated as dict. | ||
0.1.5 -- Updated to be compatible with ADOPT | ||
0.1.4 -- Bug fix: `mcEffMap` is now robust to having zero as first element | ||
0.1.3 -- Bug fix: `fastsim.vehicle.Vehicle` method `set_init_calcs` no longer overrides `fcEffMap`. | ||
0.1.2 -- Fixes os-dependency of xlwings by not running stuff that needs xlwings. Improvements in functional test. Refinment utomated typying of jitclass objects. | ||
0.1.1 -- Now includes label fuel economy and/or battery kW-hr/mi values that match excel and test for benchmarking against Excel values and CPU time. | ||
|
||
# Contributors | ||
Chad Baker -- [email protected] | ||
Aaron Brooker -- [email protected] | ||
Kyle Carow -- [email protected] | ||
Jeffrey Gonder -- [email protected] | ||
Jacob Holden -- [email protected] | ||
Jinghu Hu -- [email protected] | ||
Jason Lustbader -- [email protected] | ||
Sean Lopp -- [email protected] | ||
Matthew Moniot -- [email protected] | ||
Grant Payne -- [email protected] | ||
Laurie Ramroth -- [email protected] | ||
Eric Wood -- [email protected] | ||
|
||
Chad Baker -- <[email protected]> | ||
Aaron Brooker -- <[email protected]> | ||
Kyle Carow -- <[email protected]> | ||
Jeffrey Gonder -- <[email protected]> | ||
Jacob Holden -- <[email protected]> | ||
Jinghu Hu -- <[email protected]> | ||
Jason Lustbader -- <[email protected]> | ||
Sean Lopp -- <[email protected]> | ||
Matthew Moniot -- <[email protected]> | ||
Grant Payne -- <[email protected]> | ||
Laurie Ramroth -- <[email protected]> | ||
Eric Wood -- <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,8 @@ | ||
# build and test with local version of `fastsim-proc-macros` | ||
echo "Testing rust" && \ | ||
(cd rust/fastsim-core/ && cargo test) && \ | ||
(cd rust/fastsim-cli/ && cargo test) && \ | ||
pip install -qe ".[dev]" && \ | ||
echo "Running python tests" && \ | ||
pytest -v python/fastsim/tests/ && \ | ||
echo "Verifying that demos run" && \ | ||
pytest -v python/fastsim/demos/ && \ | ||
echo "Complete success!" | ||
echo "Testing rust" && | ||
(cd rust && cargo test) && | ||
pip install -qe ".[dev]" && | ||
echo "Running python tests" && | ||
pytest -v python/fastsim/tests/ && | ||
echo "Verifying that demos run" && | ||
pytest -v python/fastsim/demos/ && | ||
echo "Complete success!" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.