The new 2022 Flownex release is here! Lots of great enhancements to take your simulations to the next level highlighted below. Download the new release here!
New Non-Iterative Transient Solver
A new non-iterative transient solver has been implemented in Flownex®. Compared to the customary iterative solver, the non-iterative transient solver increases solve speed substantially during transient events by eliminating the need to iterate within time steps. This becomes very advantageous for networks of all sizes, but especially where large systems need to be modelled over a prolonged time span.
The user can switch between the iterative transient solver and the non-iterative transient solver via the dropdown provided in the Transient solver settings category on the Flow Solver input dialogue. For easy access, a direct toggle between the solvers was added as a tab to the Home ribbon as well.
The non-iterative transient solver retains the implicit pressure-velocity coupling in use for the iterative solver, thereby maximizing numerical stability in typical flow systems. Since the pressure-flow solution is not iterated with respect to the enthalpy solution, the method may be classified as semi-implicit.
Instead of using successive iteration with underrelaxation to obtain a converged solution, all governing equations are fully linearized with respect to the primary variables as well as the temporal variable, using exact and accurate gradients and derivatives without any relaxation. For this reason, all inputs within the Convergence, Relaxation Parameter as well as the Iterations categories become redundant when using the non-iterative transient solver option.
The capability to create a mixture of fluids has been expanded to create mixtures of mixtures for all fluid types, with the exception of two-phase fluids. When a fluid mixture is created, the user now has the option to select more than one liquid and more than one gas when creating mixtures for each of those phases. The below figure shows a Gas and Liquid Mixture, where the user can create a liquid mixture and a gas mixture that consists of multiple liquids and gases within the liquid-gas mixture.
Mixing rules for transport properties are applied to the individual phases separately and in the case of a liquid-gas mixture, additional liquid-gas mixing rules are applied when determining the transport properties of the liquid-gas mixture-of-mixtures.
To use the new capability a mixture is configured in the Fluid mixture specification dialog. The remaining user interface experience has not changed. Mixture mass fraction boundary conditions are specified as before, with the list of fluid components expanded to include all of the components of the mixture.
Similarly, the result property displays the fluid component mass fraction results for the expanded mixture of mixtures, as seen in Figure 5.
As phase transitions in two-phase fluids are significantly impacted by the presence of other two-phase fluids, the new mixture capability does not currently include the possibility to create a mixture of two-phase fluids. It is however possible to create a Two-Phase Fluid and Gas Mixture where a mixture of gasses can be specified with a single two-phase fluid, as seen in Figure 6.
The Flownex® ROM (Reduced Order Model) Builder generates a multi-platform enabled FMU (Functional Mock-up Unit) containing a Neural Network that was trained on sensitivity analysis data. The user is guided from specifying the input and result properties, creating sample data in a sensitivity analysis, specifying the Neural Network hyperparameters, evaluating the trained Neural Network to exporting the FMU ROM using one convenient dialog. The ROM Builder Configuration dialog can be seen in the image below:
The capability has been added to record graphs and the screen synchronized with transient solving. The video recording options are added to the properties of each graph. When “Record graph as video” is set to “Yes”, a new video is recorded for each transient run. From the Video Recorder task properties (under Solvers), Flownex® can be configured to record the whole screen.
Two Phase Heat Transfer
The two-phase fluid generator has been updated to include Steiner and Taborek normalized coefficients and includes an updated radiation model specification. In previous versions the Steiner and Taborek normalized coefficients were effectively hardcoded and were only available for a limited number of two-phase fluids. These coefficients have now been moved to the two-phase fluid data files and the fluid generator therefore required updating to allow the user to provide the appropriate values for generated fluids. The latest two-phase data file format also provides for the selection of the radiation participation model to be used for the generated fluid.
USER INTERFACE FRAMEWORK
Higher resolution (4K) compatibility has been added to the Graphical User Interface.
The capability to specify a Ramp action has been added. When a Ramp action is created, the user can specify the duration and final value for the action rather than the coefficients for a straight line.
- The mils unit has been added that is used for vibration.
- Added the capability for a user to reset the unit of a property to the current selected unit system default. This option is available on the context menu on a property, as seen below.
- Added a property to change point symbols to be solid or hollow.
- Added a ThinCross symbol type.
- Grouping line items with the same unit group onto one Y-axis is now possible. The “Display multiple Y-Axis” property has been replaced with ”Axes displayed” property.
COMPONENT CHARACTERISTIC GRAPHS
- An option to view all Angles on Compressor Component Characteristic Graph has been added.
- Angles are now available to be checked/unchecked from the graph legend.
- All four dimension’s values of the chart are displayed in the chart tooltip.
- Only plotting the closest lines functionality is still available by setting a new property: “Show closest background lines” to “Yes”. Property is below “Background lines”.
- By default, all lines with check boxes will be displayed for new graphs and graphs from older projects.
- The Script component has been updated such that the “Initialise” function is called only once before Steady State and “Cleanup” is called once after Steady State. This is done if any or all of the options are active for Before, During and After Steady State. Previously it was called multiple times during Steady State if more than one of the options were active.
- The Iterative Script’s “Initialise” and “Cleanup” functions now works similar to a normal Script and is called before and after every steady state and called before and after every transient.
- The font of the code editor was changed to a monotype font in order for spacing to align better.
- A repository was added that allows for easy sharing of values between scripts. The repository of values can also be loaded and saved as needed.
- The repository is used in the following manner:
- To add or change a value:
- The repository is used in the following manner:
- To access a value from a different script:
double val = IPS.Scripting.SharedValueRepository.GetDoubleValue(“MyVal”);
- The repository supports the following functions:
- void AddOrUpdateDoubleValue(string Name, double Value);
- void AddOrUpdateIntegerValue(string Name, int Value);
- void AddOrUpdateBooleanValue(string Name, bool Value);
- void AddOrUpdateStringValue(string Name, string Value);
- void AddOrUpdateValue(string Name, System::Object^ Value);
- double GetDoubleValue(string Name);
- int GetIntegerValue(string Name);
- bool GetBooleanValue(string Name);
- string GetStringValue(string Name);
- System::Object^ GetValue(string Name);
- bool HasValue(string Name);
- void SaveRepository(string FileName);
- void LoadRepository(string FileName);
- An application setting has been added so that new pages have the viewport in the middle of the page. This setting is false by default.
- Added an application wide setting: “Turn snap before run on by default”. This option is false by default, but a user can make it true, then it will be on for all new projects.
- Added a default import mapping that imports components other than only pipes as applicable.
DATA TRANSFER LINKS
- Implemented bi-directional data transfer capability for Data Transfer Links. The user can drag and drop from the left or the right side of the Data Transfer Link Setup dialog. The direction of the transfer is indicated by the arrows. Bi-directional transfers show arrows at both sides, as seen below.
- The letters F and C are displayed on a Data Transfer Link when a factor (F) or constant (C) is used.
FLOW PATH GRAPHS
- Added the ability to plot Flow Path Graphs along the Rotating Annular Gap length and length increments of the Rotating Channel.
TWO PHASE PRESSURE LOSS
- Added output for Lockhart-Martinelli two-phase pressure loss calculations and the parameters that are used in its calculation as results.
- Reynolds and Prandtl Number results have been added to convective subdivision element results.
- Errors have been implemented to prevent Composite Heat Transfer element to Composite Heat Transfer element connection via a solid Node with non-adiabatic boundary conditions, since these are non-physical configurations.
- Added an option to Relap simulation to save every transient step’s output file.
- Fixed the problem where the minor edits were deleted in Relap files.
- Allow users to add additional inputs or outputs to the Flow solver coupling. This is especially useful to extract additional results from the Relap simulation.
- Flownex® logs many of the user actions now to a file. This log is useful to keep track of what was changed in a project and when.
- The command log files are located in the project folder in the sub folder CmdRec\Logs.
- Each new Flownex® session starts a new log with the date and time of the session. The user, operating system and computer name are recorded at the top of each file.
- The following user actions are recorded to the file:
- Interaction with the drawing canvas (e.g. adding, deleting, selecting components).
- Interaction with pages (opening, closing, selecting pages).
- Interaction with snaps (saving, loading).
- Setting component inputs.
- Solving commands (solve steady state, transient, stopping etc.).
- Exported Flownex® FMUs now launch a separate console that communicates with the Flownex® instance that is launched. This is done to enable the FMU binary to be unloaded by the master simulator. The binary was previously locked until the master simulator process shuts down due to the CLR being loaded as part of the binary. All CLR code is now loaded in the separate console process.
- The locked binary gave a warning or error when the FMU was unloaded, even though the FMU functioned correctly.
- The NIST fluid importer was updated to list all the available fluids and mixtures in NIST.
- Fixed the bug where Result Layers did not update during transient in 3D view.
- Result Layers are now updated after a Snap is loaded.
- Fixed absolute value usage in Result Layers.
- Changed mass flow, volume flow and velocity built in Result Layers to use absolute values.
- Fixed the bug where state of the PID was not saved to Snaps.
- Fixed the problem when pressing the Cancel button when changing settings for the drawing texts, the operation was not fully cancelled.
- Fixed bug where Snaps were not correctly loaded for Excel component if an editor wasn’t opened previously or network wasn’t solved previously.
- Fixed the bug where the Solving On/Off state was not saved with the project. This meant that the user had to turn it off again every time the user opened a project.
- Fixed a bug where an exception in the user interface was sometimes shown when using the API. This happened when using the API with a network with open graphs.
- Added tooltip results for all Junction component types.
POSITIVE DISPLACEMENT PUMP
- Fixed the unit for NPSH in the characteristic chart.
EXCESS FLOW VALVE
- Added tooltip results for the Excess Flow Valve.
- Fixed the error where a user could connect multiple views of a node or element to a fiber that should only allow a single connection. This caused an error in the solver that was not very descriptive and hard to trace.
WARNINGS AND ERRORS
- Updated MATRIX_NOT_POSITIVE_DEFINITE error to also show the Node related to the error.
- Added a warning when a large non-normalized energy residual is detected at a node and the energy equations may not have converged.
- Implemented Total power result and Transient Fix power option correctly for the Neutronics Script.
- Initialisation was not correctly called for the Neutronics Script and a Cleanup function has been added.
- If Mass source fraction is disabled after being specified, the mass fraction did not reset to 1 and 0, as with the normal mass fraction specification.
- Fixed the problem where a Data Transfer Link could write and change the temperature of a Boundary Condition even if the option to specify temperature is not turned on.
- Addressed Conduction results that went out of sync when changing from upstream Convection results to Conduction element results after an increment other than 1 is selected for the upstream Convection results.
TWO PHASE FLOW HEAT TRANSFER
- The Steiner and Taborek reference coefficients are now specified in the two-phase fluid specification file and are no longer hard coded. Approximations have been provided for Flownex® fluids that are not featured in the original Steiner and Taborek paper, and a warning is issued.
- The heat flux at the critical heat flux conditions is used when the wall temperature commensurate with the critical heat flux that is calculated. Previously the current heat flux result was used in the wall temperature calculation.
- Updated the Groeneveld critical heat flux and film boiling lookup tables to the latest versions.
- The Validation Runner was renamed to Verification Runner. The Verification Runner is now included in the Nuclear module and uses the normal Nuclear license and does not require a separate license anymore.
- Fixed the problem where actions wrongly set integer values at the start of an action. The initial value of the integer property was always added as an offset. This was reported as a multiplexer problem but is a general problem.