Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/criogenox/c_cpp-version_fastsim_algo_railway
C++ version of Kalker's FastSim algorithm, essential for railway dynamics simulations || GTest included according to the author's original data provided.
https://github.com/criogenox/c_cpp-version_fastsim_algo_railway
dynamic-analysis dynamical-systems railway simulations
Last synced: about 1 month ago
JSON representation
C++ version of Kalker's FastSim algorithm, essential for railway dynamics simulations || GTest included according to the author's original data provided.
- Host: GitHub
- URL: https://github.com/criogenox/c_cpp-version_fastsim_algo_railway
- Owner: criogenox
- License: mit
- Created: 2024-06-18T01:18:10.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-06-23T21:38:20.000Z (6 months ago)
- Last Synced: 2024-06-23T22:37:37.408Z (6 months ago)
- Topics: dynamic-analysis, dynamical-systems, railway, simulations
- Language: C++
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![LinkedIn][linkedin-shield]][linkedin-url]
## About the project
> `C++` version of Kalker's FastSim algorithm, designed for simulating rolling contact dynamics based on the simplified theory. Despite the time elapsed since its development, it efficiently calculates the forces acting on the contact patch, providing valuable insights for engineering simulations.`Why this repo?:`
- In order to provide a C++ version of a helpful contact algorithm, that regardless of being a classic simulation code, no one shares it.
:muscle: don't let anyone get you down :muscle:
## Built With
### Additional info
> Google Test (gtest) C++ testing framework to carry out and handled correctly well-structured checks ensuring the code results reliability.
`Parameterized Tests:`
- It runs multiple test cases with a vector of doubles input as checking data, provided by the work's author.
- It uses ASSERT_NEAR macro to compare floating-point results with a specified tolerance.
`Setup and Teardown:`
- A method was implemented to perform any necessary initialization before running the first test, and to improve the measure of time of execution.`Benchmarking:`
- It includes timing functionality to measure the computation time for each test case.`Error Handling:`
- The parameterized implementation ensures the execution of the complete tests set, even in the event of an invalid test result.
> CMake configuration: added several targets for a specific role, enabling better management of source files, libraries, and testing processes.`TARGET_SRC`
- It compiles the entire source code of the project into an executable.`TARGET_LIB`
- It creates a static library from the specified source files.
- Its functionality testing is done by linking to the main program as entry point.
`TARGET_TEST`
- It compiles the test files, enabling the run of unit tests according to the author's checking data.
- It executes linked against the GoogleTest libraries (gtest_main, gmock_main) and the TARGET_LIB.
## Output view sample
Test's full output: execution time, test tagging, and detailed results (especially when it fails)
## License
Distributed under the MIT License. See [LICENSE.txt][license-url] for more information.
[linkedin-shield]: https://user-images.githubusercontent.com/53323058/230575198-fa1acbf4-8f82-4d8e-b245-3979276bc240.png
[linkedin-url]: https://www.linkedin.com/in/criogenox/
[license-url]: https://github.com/criogenox/C_Cpp-version_FastSim_Algo_Railway/tree/master?tab=MIT-1-ov-file