Process Integration and Design Optimization

Process Integration and Design Optimization

Data management and subsequent insertion of variables/responses

    • jan-henrik.rieger
      Subscriber

      Hi, I am fairly new to working with OptiSLang. I am trying to optimise the GEKO parameters so that the Nusselt number plots best match the measurements. To do this I have several different cases/velocities. My plan is to copy the most relevant systems/nodes. My main problem at the moment is that I am trying several different objective functions such as MSE/MSA and weighted versions. Is there a smart way to integrate new objective functions into already calculated sensitivity and AMOP nodes, or do I have to recalculate both nodes every time I want to try a new objective function. I have tried to set the text input and fluent node to ‘read only mode’, but this still seems to cause errors, especially with the AMOP. These can be seen in the images. I would be grateful for a good tip on how best to deal with this.
      Greetings Jan-Henrik

    • Veit Bayer
      Ansys Employee

      Dear Jan-Henrik,

      there are quite a few options to study different objectives before going into the optimization. The first step is to do a Sensitivity analysis and get a good metamodel for all relevant responses. So your workflow, to start with Sensitivity and refine the model by AMOP's smart sampling (I recommend local search) is perfectly allright. 

      • In the postprocessing app, you pull the "Parametrization" window into the tableau, go to the tab "Criteria" and add whatever you want. Then click apply. Use all plotting options (Anthill, Cloud and Parallel coordinates plots) to see how the new criteria behave. This is the simplest and recommended way to study different objective and constraint formulations. You can extract good start value(s) for the subsequent optimization, too.
      • This way does not interfer with the optiSLang workflow and will not call the solver.
      • Note that MOP does not create metamodels for criteria, only responses. Neither it is possible to create a MOP for such new variables generated as above in the postprocessing.

      But there is more about it:

      • If you missed to extract a solver response, you can edit the ETK node only, eventually extract a new response from the solver files or create one in the Variables tab. 
      • For a simple sampling (Sensitivity), no extra solver calls are launched. For AMOP, the behaviour is more complex, due to its iterative nature. 
        • If you edit only the ETK in the AMOP system, Start designs imported from Sensitivity don't match anymore: they will be re-calculated. 
        • It might be the same behaviour if AMOP is set to local search. 
      • You may also drag the Reevaluation wizard onto the last system. It will set the input and solver nodes to read-only, as you did, and you again have the option to edit the ETK node. The system will iterate over the design directories without additional solver calls. But it operates only on the design directory of the current system. Means, if AMOP imports e.g. 100 start designs and begins to compute design #101, Reevaluate will also start with #101.

      I hope with the above recommendations you are able to prepare a sucessful and efficient optimization.

      Best regards,

      Veit

    • jan-henrik.rieger
      Subscriber

      Hello Veit,

      Thank you very much, this is very helpful information. I am also struggling with another problem. As I said, I have several different cases/velocities that I want to optimise. So I am building a separate system for each case with text input, Fluent solver and ETK. Due to Fluent licence restrictions, I cannot calculate all cases in parallel. Is there a way to put the calculation of unfinished systems in a project in a ‘queue’, so that e.g. ‘Sensitivity H50mm u46ms’ only starts to calculate when ‘Sensitivity H50mm u32ms’ has been successfully calculated (assuming both have not yet been calculated). Or do I always have to start the individual systems manually one after the other? I have read that you can select the parallel processes under "%APPDATA%\Ansys\optiSLang -> IM_DegreeOfParallelism", but I am unsure whether this will lead to my desired goal. Currently the value is set to IM_DegreeOfParallelism = -1.

      Greetings

      Jan-Henrik

    • Veit Bayer
      Ansys Employee

      Hi Jan-Henrik,

      The IM_DegreeOfParallelism setting would allow you to launch more parallel solver calls (I don't go into detail here), what you obviously don't want. 

      It seems that the two cases are to identified independent from each others, correct? If you want to run both cases subsequently, but with just one click, it is easy to chain the two Sensitivity systems. Go to the "connect nodes" icon   or right-click anywhere in the white space, then select the first and second Sensitivity as sender and receiver, connect the slots OSucces and enabled state just by dragging. 

      Note that the second system will start only when the first was successful.

      Cheers,

      Veit

    • jan-henrik.rieger
      Subscriber

      Thats exaclty what I needed. Thanks a lot for your helpful answers.

      Greetings

      Jan-Henrik

    • jan-henrik.rieger
      Subscriber

      Hello, I hope it's okay if I continue my questions in this thread. If not, I will repost them as a new topic, as this may also be of interest to other readers.

      Thanks to your help, I have completed my sensitivity and AMOP calculations for the GEKO parameters. I now have a lot of data for GEKO parameters for discrete velocity u, that after AMOP or further optimisation, delivers a minimum error (MSE) compared to my experiment. As a small reminder, I want to use optiSlang to minimise the error of Nusselt curves between simulation and experiment.

      However, I am now wondering whether it is possible to combine the individual (AMOP)-metamodels that I have for each velocity into a single overall metamodel. In principle, I am looking for f(C_SEP, C_NW, ... , u) -> min(MSE) but do not know how this would be possible using OptiSLang. I hope this would allow one to obtain statements about an optimal parameter set for any velocity u from the combined metamodel. 

      Is there any further information/tutorials for this, or a helpful answer? Thank you in advance.

      Greetings

      Jan-Henrik

    • Veit Bayer
      Ansys Employee

      Hi Jan-Henrik,

      I need you to confirm: the different velocities are the u32ms and u46ms for which you created two metamodels independently, as shown in your screenshot of July 15, correct? 

      When you now want to consume both metamodels within one workflow, you can do this easily by two MOP Solver nodes in parallel, as sketched below:

      Make sure that the responses have unique names (you can edit them in the Responses field of the MOP Solver node). Also, observe your parameters. If one MOP Solver node needs the parameters a and b, the other one b an c, the parametric system (Optimizer) has to provide all the three. If a parameter is not used by one node (e.g., c in the first, a in the second node), it is just ignored. But for your identification task, each parameter must be used anywhere. 

      I hope I got you right, please come back otherwise. Regards,

      Veit

       

       

    • jan-henrik.rieger
      Subscriber

      Hi Veit,

      Yes, exactly, as in the previous screenshot, I calculated the sensitivity and AMOP for different velocities (7 velocities between 18 and 87 m/s).

      The parameters, responses and objectives are the same for each case/system and would then probably have to be renamed/indivualised if they are connected in parallel with the other MOPs as in your screenshot.

      My question is whether it is possible to merge the individual MOPs to obtain a MOP that ‘contains’ the continuous velocity range of 18–87 m/s. In order to obtain information about a minimal error even for the areas between my discrete data points.

      Greetings

      Jan-Henrik

    • Veit Bayer
      Ansys Employee

      Hi,

      there is no way to merge different metamodels into one. 

      One option which you probably do not want to do, is to do a new sampling / MOP where you introduce velocity as another parameter, instead of having this in so many independent systems. But this means repeating all simulations.

      So the only idea I have, is to pool all the simulation data and then create a new MOP from these. You have to be sure that all simulations are consistent, i.e. same CAE model, solver settings, results exractions and postprocessing, registered responses etc - all compatible. Use e.g. Excel to pool all data together, where you introduce velocity as additional column and enter the values. Again: you are responsible yourself for data consistency and correctness, no checks by optiSLang! 

      When done, you can use the Excel Addin / Export to optiSLang function,  which opens a postprocessing app with all the data. You can create a new metamodel within the postprocessing. Probably you will have a big heap of data, so consider using DIM-GP or DFFN models. 

      Regards,

      Veit

    • jan-henrik.rieger
      Subscriber

      All right, thanks a lot. I'll look into the different options.

Viewing 9 reply threads
  • You must be logged in to reply to this topic.