resolve M-Star Resolver

When running a simulation, the resolution required to fully resolve the system and achieve a converged result is often unknown. One common approach is to perform a grid sensitivity study, in which the resolution is manually adjusted and multiple simulations are executed. A selected parameter or metric is monitored to verify that the result no longer changes with increasing resolution. M-Star Resolver automates this process. The resolver is configured to monitor the output of a global variable. Convergence is evaluated at the end of each run, and if the result has not yet converged, a new simulation is automatically executed at a finer resolution. Execution stops once the global variable has converged.

How to use

1. Create your case in M-Star Pre

  • Prepare your .msb file.

  • Set the Resolution in your .msb file to be the coarsest setting you want to use. This setting is used as a starting point for the auto-resolver.

2. Define a global variable for convergence

If you have not done so already, define a new global variable that will be used for convergence. See Global Variables for more information. For example, you could setup a global variable to be equal to the power number of the moving body.

It is usually recommended to apply a time filter to the global variable. Depending on how they are set up, they can show some noise due to the inherit nature of transient simulations. Use the filtering capability on the global variable value at runtime in order to use a more stable value in your convergence criteria.

3. Save your work and start M-Star Resolver

In the Solve dropdown menu in M-Star Pre, click “Run Auto-Resolver”. Note that auto-resolver works with the original .msb file, so no files are exported at this time. The auto-resolver will open up, prepopulate with your M-Star File name, and show you the working directory. The working directory is placed in the same folder as the .msb file and named using the .msb file itself.

4. Set up the Auto-Resolver

If this is the first time running the auto resolver, click Setup. Select the GPUs you want to use for processing. Note that one simulation is run at a time, so the GPUs selected will be used to run a single simulation at a time. Click OK to close the Settings form.

  • Click the Converge On dropdown box and select the global variable you defined in step 2.

  • The Relative Tolerance is taken between the last two cases run. So a value of 0.10 means that the auto-resolver will stop when the last two results are within 10% of each other.

  • The Refinement Ratio is the factor that is multiplied to your resolution for each successive case. Note that using small values ~1.1 can result in the auto-resolver stopping too early. Larger values of 1.5-2.0 are recommended in practice.

5. Click Run

Click Run. As simulations are completed they will show up in the list.

How it Works

When a simulation is run, a few different things might happen:

  • Simulation runs normally: In this case the convergence criteria is checked, and if the current error is greater than the defined Relative Tolerance, a new simulation is spawned after applying the refinement ratio.

  • Simulation diverges: Sometimes the time step is too large. The auto-resolver reacts to this situation by spawning a new simulation with a lower Courant number (no adjustment to spatial resolution).

  • Simulation shows warning signs of divergence: Sometimes the solver show warnings that indicate the time step is too large. If too many of these warnings are received, the auto-resolver intervenes by terminating the simulation early and lowering the time step.