GitHub repository: Hopsan/hopsan
Description: Hopsan is a free multi-domain system simulation tool developed at the division of Fluid and mechatronic systems at Linköping university.
Topics: c-plus-plus, fmi, hydraulics, simulation-modeling, transmission-line

Release 2.21.1: tag_name: v2.21.1
body: ### Bug Fixes

- DefaultComponentLibrary:
  - Remove external library file for the included ActivityDiagram sub directory
    This prevents compilation error of non-existing external library when the Windows version of Hopsan starts
    The library has been embedded into the default component library
Release 2.21.0: tag_name: v2.21.0
body: ### Important Changes

- From this version onward, 32-bit releases are no longer built by default. If you need a 32-bit version, you will need to build it yourself or ask kindly in the issue tracker.
- This version replaces the FMI import functionality, so instead of compiling a specific FMU wrapper on import, an existing FMIWrapper component shall be used instead. It is available in the default library under the Connectivity category. This means that any model that included a generated FMI component from previous versions will not longer work. You need to replace that generated component with the new FMIWrapper component.

### Enhancements

- Packaging:
  - Hopsan was added to Chocolatey, a package manager for Windows, see https://community.chocolatey.org/packages/hopsan for details
    Note! This package was added by an external contributor and is not directly built by the developers of Hopsan.

- HopsanCore:
  - Added connection-not-required argument to addSystemPort() function. This will only affect hand-coded "subsystem components"
    Default behavior is to require a connection
  - Extend pneumatic node type with density, density wave variable and density characteristic impedance
    This is required for correct computation of temperature and heat flow

- HopsanGenerator:
  - Support inline transformation of Laplace operator
  - FMI: Added FMI 3.0 import and export support
  - FMI: All FMI import is now handled through the FMIWrapper component (instead of regenerating and compiling a custom wrapper every time)
  - FMI: Added fmi4c dependency (FMILibrary is still kept for backwards compatibility)
  - FMI: Harmonized FMI export for 1.0, 2.0 and 3.0 and removed unused template files

- HopsanGUI:
  - Improved find widget behavior when pressing Ctrl-F
  - Home button will now move to beginning of line if there are only spaces before cursor in the text editor
  - Do not add closing parenthesis when it has already been added in  the text editor
  - HCOM: New function ans() returns the answer from the previous computation. Only works for scalars
  - HCOM: New command rpco() which replaces a component by specified type. Replacement type must be specified in component appearance XML
  - HCOM: Support decimal number without decimal part bwfore e in expressions such as in x=14.e-3

### Bug Fixes

- SymHop:
  - Only expand powers for integer exponents in SymHop

- HopsanGUI
  - Fix text editor parenthesis crash
  - Fix text file constant warnings that file has changed on disk, even if it was saved by Hopsan
  - Fix severe delays when saving text files
  - Fix crashes when attempting to view the source of a missing component
  - Fix crash when replacing subtype components with missing component
  - FMU Export would fail on Linux when using deb package installation as the required zip was not in the dependency list
  - Saving XML models and other XML data to Windows network drive share would take an extremely and unreasonably long time, it is now significantly faster
  - Remember original data when saving models with missing components
    This both eliminates the problem of accidentally saving a model with missing components and thereby losing data, and with the backup models being damaged during a failed library recompilation
  - HCOM: Fix undesired abort of script when using if statement without else

### Component Libraries

- The component Q-type ground in the Electric->Sources was actually a C-type ground, it has been renamed
- A new component which is actually a Q-type ground has been added
- Fixed several potential "free of dangling uninitialized pointers" in generated components
  They apparently worked fine when built with GCC, but other compilers may have behaved differently
- Add activity diagram components to the default library
- Replaced old cavitation check i variable Q-type machine with a new check. Essentially, pressures are limited to zero implicitly by first limiting the flows to values required to get positive pressures. This solves problems with very large negative wave variables.
Release 2.20.0: tag_name: v2.20.0
body: ### Enhancements

- HopsanCore
  - Move real-time simulation main loop into HopsanCore (from GUI) resulting in much better performance (animation mode)
  - Temporary files created by lookup components are now deleted on Linux systems when the model is closed
    (On Windows they will remain in the temp directory)

- HopsanGUI
  - Show HTML description in FMIWrapper component (extension library) if available in FMU
  - Replace functionality added to FindWidget for text files
  - Import/export parameter data to/from SSV format
  - Support SSV parameter sets for components (can be specified in component xml)
  - Add 'Energy Density Spectrum', 'Power Density Spectrum' and 'Root Mean Square' of vector to frequency analysis
  - Added "Open model file" option in right-click menu for subsystem components in library widget
  - Hide "Open source code" option for components that have no source code specified
  - Double-clicking on subsystem components opens model file
  - HCOM: Add steady-state identification, function ssi()
  - HCOM: New function: cut()
  - HCOM: Support elseif and nested if-statements
  - Make GUI fall back to empty port icon graphics for unknown node types
    This makes it possibly to register and use custom node types in custom component libraries
    Note! Custom nodes may not yet work in all cases, such as in code generation

- Ops
  - Support for surrogate models in Ops algorithms
    Surrogate models are fast numerical approximations of the objective functions.
    The implementation is based on polynomial response surfaces, as described by: https://doi.org/10.1007/s11081-014-9247-9
    To active surrogate models, add the command surrogatemodel <interval> in the HCOM script.
    The interval setting specifies how many evaluations the surrogate model is used before it is updated.

### Bug Fixes

- HopsanGUI
  - Update default parameters when changing FMU in FMIWrapper component 
  - Ignore file change warning after saving a file. At least on Windows the file would otherwise be reported as modified
  - Loading HMF components as internal subsystems was forgotten when saving the model
  - HCOM: Fix SymHop evaluation of model parameters ending with 'e'
  - HCOM: Fix symhop evaluation of power if variable contains underscore, ex: a_b^2
  - HCOM: Fix hg() (highest generation) function, it did always return 0
  - Fix crash when adding new component to library
  - Ensure that error and warning messages about missing files when loading libraries actually contain the missing path
  - Spectrum/FFT dialog Crashes GUI if simulation was stopped by stop component
    time data was not truncated to actual number of simulated samples
  
- HopsanCore
  - Fix signal component sorting when a ReadMultiPort with multiple connections is present
  
### Component Libraries
  - Standard Component Library: MechanicTranslationalLosslessConnector XML file error
  - Standard Component Library: SignalSteadyStateIdentifier
Release 2.19.1: tag_name: v2.19.1
body: ### Bug Fixes

- HopsanGenerator
  - FMU, S-Function and EXE export all failed to compile due to missing default library source code files
    They were not included due to a bug in packaging in 2.19.0
  - FMI ModelExchange import would not compile due to errors in the template code parameter type handling

- HopsanGUI
  - Energy loss calculation showed wrong value for domain-specific losses, and alternated between runs
    Also clarified added energy text
  - HopsanGUI would crash when a connected input variable port was disabled (removed)
    The checkbox is now disabled for connected ports
Release 2.19.0: tag_name: v2.19.0
body: ### Important Change

The HoLC (Hopsan Library Creator) application has been removed.
Its functionality has been built into HopsanGUI for some time, and can be accessed from the context menu (right-click)
in the library widget.

### Enhancements

- HopsanC:
  - Make it possible to get data vectors by alias name in Python, Julia and Matlab

- HopsanGUI:
  - Make it possible to view XML and source code for default library components by right-clicking in library widget
  - Highlight connected connectors when hovering a component
  - HCOM: Support orphan variables in the chpvx command
  - HCOM: Enables defining and evaluating SymHop expressions
                 Example:
                   ```>> a=expr(sin(x)+y)```
                   ```sin(x)+y```
                   ```>> b=der(a,expr(x))```
                   ```cos(x)```
  - HCOM: Convert SymHop expressions to LaTeX
                  Example:
                   ```>> f=expr((a+b)/(c+d))```
                   ```(a+b)/(c+d)```
                   ```>> latex(f)```
                   ```\dfrac{a+b}{c+d}```
  - Monitor text files in editor tabs for external changes
  - Add "Always visible" setting for GUI components
    Use the context menu (right-click) on a component
  
- HopsanGenerator:
  - Various improvements in Simulink generator
    Hopsan S-functions now also support the "fast restart" option in Simulink
  - Various fixes and improvements to Modelica generator
  - Statically link to MinGW libraries for FMI export on Windows
    Removing dependency to correct version of MinGW DLLs in exported FMUs more 

### Bug Fixes

- HopsanGUI:
  - Use interpolation-based down sampling to reduce vector size
    There was an error in reduceVectorSize function due to integer division
    The fix will affect all frequency analysis plots (spectrum, bode and nyquist)
  - Preserve rotation and flipping of replaced components

### Component Libraries

- Enable end of stroke limitation in all C-type pistons
- Add moment of inertia quantity and make use of it in components
- PID2 component, changed the meaning of the 'de' input signal
  It is now expected to be a derivative input rather then a "error" delta
  If you have models using this component they may need to be updated
- Added markdown descriptions with equations for many commonly used default library components
  Note! Due to the large amount of added documentation, it has not yet been reviewed
  If you find something that looks odd, take a look at the component source code
Release 2.18.0: tag_name: v2.18.0
body: ### Enhancements

- HopsanCore:
  - New "filepath" parameter type (variable class HFilePath). It is basically a string, but will enable a browse dialog button in
    the component properties dialog. File paths will be added relative to the model, if you want absolute paths, you will have to
    copy paste the path into to file path text field (like before)

### Bug Fixes

- HopsanGUI:
  - Due to the random bug described below, starting optimization would instantly freeze the program

- Ops:
  - On the Windows version build with MinGW the random generator would return the same value on each call. It now returns actual random values
  - Due to this random bug, optimization would freeze during initialization (get stuck in an infinite loop)


### Component Libraries

- Various improvements and fixes to the experimental FMI wrapper component (Extension library)
- LookupTable components now use the filepath parameter type to allow browsing for files
Release 2.17.0: tag_name: v2.17.0
body: ### Enhancements

- BuildSystem:
  - CMake build system can now build all Hopsan parts and support for the Microsoft Visual C++ compiler has been added
    Some issues still remain for CMake / MSVC builds, so this is not yet the default build system
    Build instructions have been updated, if you wish to use this build method

- Documentation:
  - Add link to tutorials under the help menu in HopsanGUI. There is now a more in-depth tutorial on the TLM method available.

- HopsanC:
  - List alternatives when querying for illegal port or variable names

- HopsanCore:
  - New "quantity" LeakageCoefficient added with various scale factors
  - Add Component::reconfigure() function that components can overload to reconfigure themselves
    Reconfigure is triggered when a parameter registered with the Component::setReconfigurationParameter(const HString &rName) function
    is changed.

- HopsanGUI:
  - Do not trigger auto complete popup after @
  - Do not auto select auto complete item while typing, user must press Tab, arrow keys or select with mouse
    This avoids the very annoying unintentional auto complete
  - Auto complete now replaces the entire completer prefix, to ensure that case is corrected
    Example: step.out.y -> Step.out.y
  - Fix auto complete not recognizing . in names such as Step.out.y
  - If you invert a plot curve using the curve controls, the setting will be remembered for the next generation
    If you want the invert curve setting to be persistent, check the box in the component properties instead
  - HCOM "edit" command now opens supported files in the Hopsan text editor instead of external editor (which quite often is not found)

- Ops
  - Add elites parameter in genetic algorithm
    The best individuals are always carried over to the next generation without crossover and mutation.
    This helps avoid degradation of solution quality between generations.

### Bug Fixes

- HopsanC:
  - Header file for hopsanc was not included in release
  
- HopsanGUI:
  - Do not clear undo-stack when a connector can not be found
  - Prevent renaming subsystem copy twice
    Fixes invalid name lookup for attached connector in undo
  - Fix hand icon getting stuck (finally after all these years)
  - Fix pasting system ports with connections
    They are no longer lost due to port being renamed
  - Fix enable/disable undo action syncing with changes in systems
  - Fix redo for subsystem paste
  - Process undo items in reverse order
    So that sub-operations are undone in the correct order
  - Fix redo for text widgets
  - Fix model lock-level detection for top-level system
    Prevents changes to model when model is locked
  - Prevent paste while left mouse button is pressed
    It would mess with the positions of the pasted components
  - Maybe fixed crash when simulation is finished, related to progress bar handling
    The problem could not be reproduced reliably (by the developers) so hard to know if it is fixed
  - Remove fade effect on red error flash in terminal, on some systems it would take a long time to fade
    Replaced by 400 ms solid read background
  - Fixed lock axis setting was forgotten when browsing to an empty generation
  - Fix splash screen not including version number and mentioning "development version"

- Ops:
  - Check for minimum number of candidates in DE algorithm, to avoid crash.
    DE algorithm requires four points

### Component Libraries

- Renamed ContainerPort to SystemPort
  Containers (a type of system) were removed from Hopsan several years ago
- Turn off rotation for various signal component icons with symbols
- Added missing unit to leakage parameter for all pump/motor components
  Set the same default value for leakage parameter to 1e-12 for all pump/motor components
- Use consistent default parameter value for density 870 kg/m^3 in the default component library
- New component: Hydraulic differential pressure sensor
- Obsolete CppComponent and ModelicaComponent traces removed (were causing warning messages)
  The HopsanGenerator can generate proper components, so the old wrappers are no longer needed (and they no longer work)
- New component: (Extension library) Experimental FMI wrapper using reconfigure rather then requiring recompilation
Release 2.16.0: tag_name: v2.16.0
body: ### Important Change

To avoid name collision in HDF5 exports, the following names were reserved: Time, time, Frequency and frequency, 
HopsanGUI will attempt to automatically rename such components and system parameter when loading a model,
but HopsanCLI will not, and models must be updated in the GUI first.
To avoid name collision, the new names will have the _INVALID_NAME suffix appended.
You will need to change them manually if you wish.

### Enhancements

- HopsanCLI:
  - Add command-line argument -p or --parallel to enable multi-core simulation from command line.
    Note! Small models do not benefit from multi-core and will in fact run much slower, measure first
    to decide if is useful for your model
  - Unify CSV and HDF5 output code to make them behave the same way
  - HDF5 exporter now uses the --logonly include filter
  - Only export relevant time vectors when --logonly specifies a subset of variables
    Example: If only a subsystem variable is exported, then only the time vector for that system is included
    
- HopsanGUI:
  - Updated QWT so that it works with new Qt versions
  - Make parameter export and import remember last used directory
  
- HopsanGenerator:
  - Update bundled 7z version to 19.00 (Only used on Windows)
    
### Bug Fixes

- HopsanCore:
  - Restore PLO v2 format import to use one less number of data columns

- HopsanCLI:
  - If simulation is aborted, then the entire pre-allocated time vector will no longer be export. Only up to the last actual sample
  
- HopsanGUI:
  - Restore PLO v2 format export to use one less number of data columns (fix import crash)
  - System parameters widget was not updated when importing parameters from file
  - Do not tag model as changed when exporting parameters
  - Allow HCOM sequ command to change Quantity for particular generation or all generations
    Use the all option with care, as it will change the apparent unit on old data (without changing the actual data)
  - After changing quantities from HCOM, the component properties dialogs would not get updated
    They still need to be closed and opened
  - Fix ComponentPropertiesDialog not showing when you double-click (try to open it the first time).
    You were required to open it again, to actually show the dialog, also the model would be frozen in a non-editable state, due to hidden
    opened properties dialogs.
Release 2.15.0: tag_name: v2.15.0
body: ### Enhancements

- New C-API shared library wrapper for Hopsan core with Julia, Matlab and Python language wrapper, see:
  - Scripts/Julia/hopsan.j1
  - Scripts/Matlab/hopsan.m
  - Scripts/Python/hopsan.py

- Update to Qt 5.9.9 and MinGW-w64 5.4.0 on Windows
  If you are building component libraries externally from an IDE, make sure that you use the new compiler (included with Hopsan)

- HopsanCore:
  - Add Kinsol solver (libsundials) for solving algebraic equation systems
    This library source code is bundled with and compiled into HopsanCore

- HopsanCLI:
  - Enable HDF5 export of log variables from HopsanCLI
  - Improved parameter export, with the following changes since previous versions
     * Parameter export no longer prefix the subsystem name twice to system parameters
     * System parameters in the top-level systems are prepended with the reserved name "self"
     This means that old parameter files containing system parameters will no longer import correctly, without manual editing
     However, parameter import was broken anyway, so that should not be a big problem (fixed in this release)
  - Enable filtering --logonly results on individual variables in ports
    The entire port is still logged in memory, but only the desired variables are written to CSV file

- HopsanGUI:

  - The built-in python terminal has been removed, because it never worked well, and caused a lot of maintenance problems
  - Apply icon scale when adding subsystem components
  - Add automatic numbering and referencing of equations in markdown (LaTeX) help documentation.
    Use LABEL=name and EQREF{name} according to the example in:
    exampleComponentLib\HydraulicComponents\MyExampleOrifice.md
  - Display highest generation command in HCOM, adds "dihg" command and "hg()" function

- HopsanGenerator:

  - Use standard Modelica attributes for input and output variables in Modelica importer
  - Complete rewrite of Modelica generator and related functionality
    See the included ModelicaExampleLib


### Bug Fixes

- HopsanCore:
  - Fix compilation issue and stack overflow when using MSVC compiler
  - Fix PLO v2 import bugs (import did not work)

- HopsanCLI:
  - Fixed broken parameter import
  - The command line argument --logonly, did not consider system ports on subsystems

- HopsanGUI:
  - Always reload models before starting a new optimization, this avoids running old models if you make changes between optimization runs
  - Correct tab names and tab indexes after restoring HopsanGUI state, when multiple models and/or text editors were opened
  - Fixed PLO v2 export bugs
  - Fixed markdown help not being shown when markdown file does not include equations
  - Fixed LaTeX rendering of parentheses and brackets in help equations, (Updated to KaTeX 0.12.0)


### Component Libraries

  - Add new component "AeroFlightRecorder" to the "AeroComponents" library
  - Resolves problem in SignalLogger with exponentially increasing simulation time due to appending and reallocating data vector
  - Fix SignalLogger file stream on Windows, so that all values get written
  - Fix incorrect equations in Gas Accumulator (HydraulicAckumulator)
  - Add missing embedded text support to PLOLookupTable
  - Display components (for animation) now has parameters for description, unit, unit scaling, precision, background color and text color
Release 2.14.2: tag_name: v2.14.2
body: ### Bug Fixes

- HopsanGUI:
  - Fixed new bug that prevented system parameters from automatically being copied into new systems when the component using them was copied.
  - Fixed old bug where system parameters of other types then double would never be copied into a new system.
Release 2.14.1: tag_name: v2.14.1
body: ###  Enhancements

- HopsanGUI:
  - Add flat top windowing function to frequency analysis
  - Unset axis lock for the specific axis when changing units or X-axis variable
  - Optimization can now be aborted while evaluating initial candidates

### Bug Fixes

- Packaging:
  - Ubuntu Eoan package no longer depends on libpythonqt-qt5-python3-3 which is not available in the package repository

- HopsanCore:
  - Fix bug in automatic model updater that would incorrectly add self. to constant parameter values if the parameter name and value expression were identical. In this case the intended result would be to use the parent system parameter of the same name
Release 2.14.0: tag_name: v2.14.0
body: ## Important change
This release contains an important change to how parameter referencing is done in start value expressions.
This change affects embedded scripts (numhop) and parameter value expressions. Previously when a named value was used in an expression,
the code first checked it the value was another parameter in the same component, then if one could not be found it checked in the parent
system, and then in the grand parent system, and so on.
This made it impossible to enforce choosing the parent system parameter if a local one of the same name existed.
This new change requires that parameters in the own component are prefixed by "self."
A named value not prefixed by self. is assumed to be part of the parent system, then the grandparent system and so on.
Parameter expression example:  self.a + self.b + a
Would add the local parameters 'a' and 'b', to the parent system parameter also named 'a'
Models saved prior to version 2.14.0 will be auto updated, with the exception for embedded model initialization scripts.
For these scripts a dialog window (and log message) will list the variables that need to be renamed.
Note! There are no changes to how components are implemented in C++, this only affects modeling in HopsanGUI.

### Enhancements

- HopsanCore:
  - Use a more secure temp file generator to avoid security warning when compiling (mkstemp instead of tmpnam)
    If a "system environment temp" directory is not set, temporary files may end up in the Hopsan installation directory, under bin
    This is unlikely but may happen when running Hopsan from automated scripts
  - Make it possible to differentiate between a components own parameters and parameters in the parent or grand parent systems, by
    prefixing self. before parameter names in parameter expressions. For a components own parameters self. is now required.
  - It is no longer necessary (but still possible) to specify .Value (in parameterName.Value) when referring to own parameters such
    as start values in input/output ports
    Example: "2*self.in" instead of "2*self.in.Value"

- HopsanGUI:
  - Add HCOM support for self.Name in expressions using parameter values.
    Note! HCOM will not evaluate parameters in parent systems
    Note! HCOM will still work without 'self.'
    Note! HCOM scripts will not be auto updated
  - Real-time animation can now run at unlimited speed
  - You must now double-click in the workspace to open the quick-component insert dialog
  - Make it possible to use common HCOM math function on vectors (will evaluate per element)
  - Add "Save and Run" button the HCOM script editor
  - It is now possible to change units in Bode plots for magnitude and frequency
  - It is now possible to change unit for custom x-axis data (if a Quantity is set for that data)
  - Add Windowing functions to frequency analysis tools.
    You can choose a time range of the logged data, and apply rectangular or Hann windowing functions
    Rectangular is the same as before (add no additional windowing)

- HopsanGenerator:
  - Export top-level system parameters as FMI parameters in exported FMUs
  - FMI parameter import is now also available for FMI1 (as well as FMI2)
  - Use Makefiles when compiling exported FMUs, this enables parallel compilation which is much faster

- Documentation:
  - Fix user documentation link for frequency analysis
  - Add missing documentation for HCOM script flow control

### Bug Fixes

- HopsanCore:
  - Made parameter and system parameter evaluation behave the same way for all supported parameter types
    This fix is part of the reworked code that introduced self.Name parameter reference

- HopsanGUI:
  - Fixed auto-update to follow redirects (auto update did not work after moving files to GitHub)
  - Fixed crash when opening components with markdown documentation
  - Prevent crash when mixing model and editor tabs (editor tabs will now always open to the right of model tabs)
  - Fixed using referencing system parameter names for int and bool parameter types
  - Fixed evaluation of HCOM round() in expressions like round(x)*y
  - Change Bode plot frequency unit to rad/s, the values were in rad/s but previously the label claimed it was Hz
  - Fixed invalid unit being shown when mixing multiple different Quantities on the x-axis in plots (you should avoid this anyway)
  
- HopsanGenerator:
  - Fix import of parameter values for FMI v1 FMUs
  - Fix loading of FMUs with different file name and FMU name

### Component Libraries

 - New component for logging signals to external file
 - Made angular velocity unit a quantity (so that the unit may be changed) for various
   components where the unit was previously hard-coded
 - Make many signal components replaceable with each other
Release 2.13.0: tag_name: v2.13.0
body: ### Enhancements

- HopsanGUI:
  - Improved library and code generation / development capabilities in HopsanGUI. It is now the preferred choice for library development.
    HoLC is deprecated and will not see further development or updates.
  - Libraries can now include Modelica .mo files (a subset is supported), and the corresponding c++ Hopsan components will be auto generated

### Bug Fixes

- HopsanGUI:
  - Fixed drag-copying with right mouse button
  - Fix bug in arguments check for exec HCOM command
  
- HopsanGenerator:
  - Prevent generating header guards starting with digits (would fail for models whose name starts with a number)
  - Fix model assets export for stand-alone exe-export. Assets will be stored in a directory called modelname-resources
    This directory must accompany the exe file if it is moved.
  - Set better default permission for exported files, rw_rw_rw_ for code and rwxrwxr_x for executable files
  
### Component Libraries

  - Lookup table components now have the option to add internal csv data as a parameter, this makes it easier to quickly create simple lookup tables without having to deal with external files
  - Lookup tables no support reading values from white-space padded columns
    Example:  1.0,  2.0,  3.0
                    10  , 20  , 30  
Version 2.12.0: tag_name: v2.12.0
body: ### Enhancements

- HopsanCore:
  - Added petri net node type

- HopsanGUI:
  - Various text editor improvements
  - Enable saving and loading parameter sets to file (.hpf) for the entire model, sub-systems as well as individual components.
    Right click a component or subsytem to save or load parameter value sets.
    The HCOM sapa and repa commands have also been updated.

- HopsanCLI:
  - Made the --logonly command line argument affect only --resultsFullCSV output.
    --resultsFinalCSV will still include the final values from all ports.
    The purpose of --logonly is to reduce data amount for long simulations or optimizations with multiple iterations, but the --resultsFinalCSV data is not very large and having access to final values for ports that were not logged may be useful.

- HopsanGenerator:
  - Export model to black-box executable

### Bug Fixes

- HopsanCore:
  - Fixed loading of parameter value sets for entire systems (including subsystems)

- HopsanGUI:
  - Fixed wrong XML tag when saving optimization settings

- HopsanGenerator:
  - Format of generationDateAndTime in exported FMU is not valid
  - Unable to recompile libraries when Hopsan installation path contains spaces

### Component Libraries

- Corrected cavitation check for Q-type pumps