UptimAI is a technology start-up company focused on software development and data analysis in engineering.
Data analysis in engineering:
UptimAI algorithm is based on our unique evolution of the HDMR (High Dimensional Model Representation) method. This model consists of a set of independent so-called increment functions. Each increment function is treated independently, i.e. for each increment function is created an independent model. These increments are additive, so their sum together with the nominal solution gives the model of output values.
The nominal solution represents the standard deterministic solution. Combination of inputs for this solution are usually set as the assumed most common values from ranges of possible input values
They represent the increment of one variable to the nominal solution considering only the influence of the given variable cleared of all other effects. Models with only first-order increments have no interactions of input parameters and can be easily understood and optimised.
Prediction of the model‘s behaviour can also be well predicted when first-order increments are those most influential according to the sensitivity analysis
They represent the increment of an interaction of two input variables to the nominal solution considering only the interaction influence of given variables cleared of all other effects. A model with second-order increments becomes more complex as software assistance is needed to visualize and analyze its behaviour.
Interactions of input variables tend to affect extreme values of outputs and increase the variance of results
They represent the increment of an interaction of three or more input variables to the nominal solution, clearing all other effects. Models with higher-order increments are too complicated to be processed without specialized software.
Higher-order interactions usually affect the variance of results strongly and special attention to extreme values
Total Increment Functions are the sum of all lower-order increment functions of all input variables involved in an interaction. Each total increment is independent and represents total increment to the nominal solution of its input variables.They are very useful for visualization of high-dimensional spaces, and , in general, can be summed to get better design. However, their addition does not give the direct output function.
Different distribution shapes can be created using the Input Preprocessor tool and then stored into the XDis.txt file. The distribution works as a weight function: the code samples mainly the regions with large values of the probability density function and uncertainty quantification is propagated with the application of the samples from Xdis.txt file. However, the core solver starts to sample the domain uniformly when it finds the function is complicated
Type of input distribution is chosen according to its real-world purpose – material characteristics or manufacturing tolerances (normal distribution), designed geometry (uniform), environmental conditions (Weibull distribution for wind speed, etc.), …
To run the uncertainty propagation correctly, there is a set of general rules and recommendations to be followed:
The Core Solver itself can be started via the GUI or just simply in the console.First, the Core Solver has to be coupled with the “black-box” (CFD, FEM, in-house code) by the coupling script (bash for Linux systems, batch for Windows), a set of commands controlling the exchange of data between these two codesFile with input combinations generated by the Core Solver and the expected file with outputs from the “black-box” are plain text files with sets of comma-separated values (DataToProcess.txt and DataProcessOut.txt)
Set of input combinations to be processed with the coupled program. Each row represents one input combination consisting of comma-separated values of input variables Maximum expected precision of inputs is 8 digits
Set of results of the output evaluation. Each row represents a set of output corresponding to one line of inputs in the DataToProcess.txt file. Each column represents one type of output (the Core Solver processes one output at a time, others are used to feed the database *_it.json and they can be processed later)
Its main purpose is to interconnect the Core Solver with the “black box” code. It passes a matrix of input data to the “black box” and receive the matrix of outputs in the proper format.Bash/Batch file “organizes” how the coupled program is started, for example parallelization is defined here. There is no mandatory form for this script.
Core Solver Setup program includes the feature for coupling script creation (this can be used as it is or serve as a baseline for your own coupling environments).
During the uncertainty propagation process, all results from each iteration are saved into the dedicated *.json file specified in the Core Solver Setup. Since the Core Solver is dealing with one output at the time, results of other outputs are stored here for the next run!The iterative file can be edited with caution in the Post Process tool to correct results from unconverged solutions, import additional sets of result or even whole new output column.The iterative file is checked in each iteration of the Core Solver to find if it is corrupted – in such case the Core Solver exits and the file needs to be fixed manually or replaced.Storing of a iterative file is done after the coupling script is processed – if the coupling script crashes before it is finished, the results are not stored in the iterative file!
Iterative file is the most important file, it holds all the simulation results and with it all the outputs can be restored without re-running of simulations.
The Core Solver checks results if they have a correct number form, otherwise, the result is replaced with the Nan value and the solver tries to use an interpolated value instead. However, when the interpolation is not possible (for example if the sample is in a boundary), the Core Solver raises an error and exits!
Solving outputs of a problem in a different order may lead to slightly different convergence process, which is due to the priority of samples already stored in the database of the iterative *.json file. Variances in the process you may note:
Sets the general level of the desired accuracy of the mathematical model. It represents the threshold of change in mean value or variance of results between two iterations
It is rigidly set for the first iteration of each increment function, however, the residual scheme can adaptively adjust the preset accuracy to obtain the right convergence and the correct model, depending on the currently solved problem
Keep in mind that the algorithm allways selects the important variables and their increments, however, those with too low sensitivity can be neglected based on the defined residual valueSome general recommendations for the global residual value were assumed according to extensive testing on various benchmark cases:-
The domain is covered with a few samples according to a specific scheme, other sample positions are based on function values and response at these points.
The prediction scheme works with increment functions, which are natively zero at the nominal solution. This is the basic property of the increment function:
One can easily deduce from an integral part that the increment function is always getting larger, further the sample is positioned from the nominal solution. Moreover, they are getting larger according to their influence (sensitivity). Therefore, the algorithm always selects important increment functions/variables. However, increment functions/variables with low importance do not have to be selected. Therefore, the algorithm is designed with a safe margin and such that it can happen that increment functionswith low importance are selected.
Computes the residual which decides if the increment gets neglected.The scheme defines the strategy how is the residual evaluated
From empirical evidence is known that mostly low-order increment functions play an important role in high dimensional spaces. Higher orders are necessary to reach correct function approximation under the given threshold and to catch all detailsHigher-order increment functions are tested during the final steps of the adaptive UQ process and if they are found, the Core Solver can lower the residual settings temporarily to ensure the final result is correctIn some cases, due to practical reasons, is convenient to restrict the order of increment functions (for example if user‘s main interest is in the sensitivity analysis only).
Limiting the increment order may shorten the computational time significantly, but evaluation of model precision needs to follow
For certain problems, limit to the order of increment function may cause a huge bias in results. In general, problems with a large number of inputs are less sensitive to the increment function order, the residual value becomes more important
Usually, setting maximum increment order to 3 creates a fair compromise between the precision and number of computation. If the result consists of a large number of higher-order increments, consider increasing the limitFor problems with a large number of inputs try to lower the global residual when only a few inputs are identified as influential
Some features of the core solver need to be turned on separately to take action. They often give an additional tunning to the simulation process but could be suitable for more experienced users
The case study used for giving some examples of results evaluation is the aerodynamic study of an airfoil (case study from the Tutorial II).
This case consists on the estimation of aerodynamic characteristics of a wing section (airfoil) based on its geometry, using the panel method to emulate the software used for numerical simulations in engineering
In the following section, results of the glide ratio of the airfoil are used mostly, marked also as the Output 1 (O1). Other outputs are coefficient of pitching moment for maximal glide ratio – Output 2 (O2) and minimal drag coefficient – Output 3 (O3).
Variance sensitivity is the common approach to evaluate the sensitivity of results to uncertainties in results, but:
Represents the influence of variable on the mean value and is very useful for optimization purposes. Variables with a large influence on the mean should be optimized for better performance
Visualization of results helps to understand the physical phenomena behind the problem. To see the relation between increment functions for sole input variables and increment functions of their interactions, use the Total Increment method
Higher order increment functions are often those more influentialBy examining shapes of increment function you can understand the physical phenomena behind the solved problemEspecially in a case of FEM or CFD solution, always go through increment functions to see irregular points – you can also reveal an inconsistency in results suggesting convergence failure of the simulation
Preliminary statistical optimization tool which identifies ranges of input values leading to preferable/avoidable resultsGives quick insight into ways how to change the design to obtain a specific series of results – it provides optimization of regions instead of single points
Since some input variables represent outer conditions with mostly unavoidable uncertainty, these cannot be used for the optimization. This first case shows the influence of the Reynolds number to optimized results of the minimum drag coefficient.
This second case shows how to look for input regions leading to maximizing of results in Output 1 and minimizing results of Output 3
There is no preference region below the input value of 0.4 for Output 1
Regions of preference are not overlapping for both outputs
For this third case it is shown how to look for input regions leading to maximizing of results in Output 1 and avoiding extremities in results of Output 2
What is the expensive function?
The expensive function, also called the black-box function, processes given inputs and provides the desired output of interest. Usually has the form of a script computing the output directly or calling other necessary programs involved (like FEM or CFD solvers, custom in-house software etc.). It is coupled with the Core Solver via the batch script.
What should the batch script contain?
The only mandatory part of the batch script is the command running the expensive function. The example script seen on slide 34 is also able to prepare inputs from the DataToProcess.txt file and write the expensive function output into the DataProcessOut.txt file. This input/output manipulation does not have to be a part of the batch script in case the expansive function is able to read/write this files on its own.
What if the coupled program does not work properly?
The UptimAI Core Solver waits all the time until the coupled software generates the DataProcessOut.txt file. There is no deadline for the coupled software to do so, thus, in case of any failure, the program can be started again while the UptimAI tool still awaits the output file.
Situations, where the output file is filled with NaN values, are detected automatically. The UptimAI Core Solver interpolates output values from available samples when possible. However, outputs resulting from input combinations involving coordinates of the nominal solution or edges of the computational domain must be computed properly. When there is no chance to deal with error values, the Core Solver will stop with an alert.
If the whole process of uncertainty propagation ends prematurely for any reason (e.g. power shortage, users decision, …), there is the iterative storage .json file containing the present progress which can be restored / reviewed. Therefore, there is no need to solve the output values of previously investigated input combinations and increase the wall-clock-time of the uncertainty propagation excessively.
Why it is not possible to set domain‘s boundaries freely?
It is mandatory for boundaries of the computational domain to be a part of the input distribution. Therefore, boundaries suggested by the Input Preprocessor are minimum and maximum values of each input distribution. Range of each input distribution can be cropped by the user but cannot be extended. When reducing the range of a discrete input distribution, at least three unique values of the distribution have to remain.
All buttons and controls are covered by the text form of the sensitivity analysis!
Maximize the program window as much as possible, save the data, and leave the text form mode of the sensitivity analysis tool.
Increment functions of higher order are labelled with numbers only, e.g. dF1.2. Is there any legend to these?
Any time you move the mouse pointer over the label of an increment function, a frame with a description of variables involved will appear in the bottom left corner of the window.
How to set input values of the nominal sample?
Increment values are differences of the function output value from the output value of the nominal sample. Input values (or coordinates) of the nominal sample must be within the range of each input variable and not to be equal to its boundaries. It is recommended for the nominal sample to have inputs close to the mean value of the variable‘s input distribution. Nominal sample too far away from variable means may lead to increased interpolation errors on edges of the computational domain. Therefore, if there is a user-defined value of the nominal sample more than 10% of variable‘s range far from the mean value, an alert is raised to inform the user that a special caution will be needed when processing results.
For input variables having a symmetrical input distribution, extra caution is required. When their output function is expected to be of symmetrical shape also, it is highly recommended not to set their nominal value exactly to the location of the mean value of the corresponding input distribution! A typical example can be an angular position of the crankshaft, wave phase, etc.
What if the Core Solver cannot be started via the UptimAI Main Interface program?
When clicking the Run Core Solver button does not start the terminal window with the Core Solver, the most common reason for this behaviour is local firewall settings preventing the terminal to be run by other software. For this reason, it is possible to run each program of the UptimAI package separately. First, start the cmd window manually using your user rights. Then, the Core Solver can be started as described in Uncertainty propagation section of this document.
Why is the generated batch file not working for my project?
Automatic generation of the batch script under the user-defined name works with the example Function.bat file. It is identic as the one from page 34 of this document. The Core Solver Setup tool copies this example file under the new name into the project folder. Because of the individuality of each solved task, it is yet not possible to create a direct link to the expensive function with such a simple program as the Core Solver Setup. But the presented example file can give you an idea of how to create the link between programs.
In general, UptimAI software requires connection to a program which is able to load the DataToProcess.txt file and provide the DataProcessOut.txt file. Many users prefer to build own infrastructure in their „native“ programming language. In that case, the BATCH script only runs this code and does not process input and output files on its own. The use of absolute paths is necessary for a correct operation of the batch file.In general, UptimAI software requires connection to a program which is able to load the DataToProcess.txt file and provide the DataProcessOut.txt file. Many users prefer to build own infrastructure in their „native“ programming language. In that case, the BATCH script only runs this code and does not process input and output files on its own. The use of absolute paths is necessary for a correct operation of the batch file.
Why the Core Solver can’t read the DataProcessOut.txt file when it’s ready?
The formatting of the DataProcessOut.txt is strict, the output values have to be comma separated values and number of lines has to be the same as for the DataToProcess.txt file. On some systems, eventual surplus blank spaces around commas, or especially those hidden ones at the end of lines may cause troubles. Also, make sure if there is the end of line character for the last line as well.
[ Placeholder content for popup link ]
WordPress Download Manager - Best Download Management Plugin