|
FhSim
3.1.0
Marine systems simulation
|
FhSim is a software tool and API for describing and simulating dynamic systems in the time domain. Systems are formulated as ordinary differential equations (ODEs), and FhSim provides multiple integration routines, optional 3D visualisation, and a plugin architecture for reusable simulation models called SimObjects.
A simulation is defined in terms of SimObjects, their parameters and interconnections. SimObjects are compiled into shared libraries and loaded at runtime. The simulation scenario — which objects to use, how they connect, and how the integrator runs — is described in an XML input file.
| I want to… | Start here |
|---|---|
| Install FhSim and see it produce a result | Quick start — five minutes, self-contained |
| Run a model somebody else wrote | Running simulations, then Available model libraries |
| Write my own scenario XML against an existing model library | The FhSim input file |
| Know what units a number in the XML is in | Units and coordinate conventions |
| Write a new SimObject in C++ | Setup developer environment, then Create a new SimObject |
| Call FhSim from my own program | Running FhSim from your own software |
| Fix an error message | Troubleshooting and Runtime errors and diagnostics |
| Upgrade a model from FhSim 2.x | Migrating to FhSim 3.0 |
FhVis and an installed model library. Everything under Getting started, Running simulations and The FhSim input file works from an installer installation alone.0070 — FhSimUI segfaults after it reports a failed render system initialisation
0119 — A stop request is not polled for a step that produced no data
0147 — The NetworkRoundTrip tests bind fixed TCP ports and collide when two runs overlap
0148 — -o is ignored without a word for a Replay or Network provider without OBSERVERS
0072 — A Debug build with visualization leaves about 148 GB of test FMUs in its build folder
0074 — RK45_i gains energy in an under-resolved contact where v2 did not
0113 — An empty `` is exported as a Real parameter with no values
0115 — The FMU exporter reads `Size_<port>` with `std::stoi`, so `Size_y="2x"` reads 2
0167 — An FMU does not tell the master that a model asked to stop
0152 — AcceptedStep and the diagnostics read the last solver iterate under SUNDIALS
0174 — BackwardEuler_i has no switch to a numeric Jacobian
0175 — The self-connection check misses other users of the model Jacobian