Quasi-Newton Stabilization Algorithm

System Coupling offers the Quasi-Newton solution stabilization and acceleration method, which is based on the Interface Quasi-Newton – Inverse Least Squares (IQN-ILS) [1] algorithm. The Quasi-Newton method can be used to address convergence issues in two-way System Coupling simulations, which can otherwise occur in the following contexts:

Thermal Analysis:
  • For transfers of Temperature and Heat Rate quantity types, convergence instabilities may develop if the participant sending heat rate has a thermal resistance of the same order as, or smaller than, the participant sending temperature. Usually, a fluid region sends heat rate to a solid region, so this may occur if the fluid region has a small thickness or large conductivity relative to the solid region.

  • Transferring Heat Transfer Coefficient and Convection Reference Temperature quantity types (if supported by the participants) may be more robust than transferring Heat Rate and Temperature quantity types, but with two drawbacks:

    • the transfer is non-conservative, and

    • convergence can be very slow, particularly with fine meshes (for example, if the CFD mesh has a small y+).

FSI Simulations:
  • For transfers of Force and Incremental Displacement quantity types, reaching convergence can be challenging if the physics are strongly coupled — that is, a small change in the fluid force leads to a significant change in deformation or vice versa. This is particularly common when the solid body is slender or if the solid density is comparable to or smaller than the fluid density, leading to significant added mass effect.

  • Participant solution stabilization may improve stability in this situation but may also require problem-dependent tuning.

The Quasi-Newton stabilization method improves convergence in these situations by applying an approximate Newton iteration to the coupling interface data. The inverse Jacobian-vector products associated with the residual of the interface data is approximated using a least squares model, as explained in [1].

Thermal-Electric Simulations:

For transfers of Loss (Heat Rate Density) and Temperature, convergence can be difficult in some scenarios such as a core loss which has a negative dependence on temperature.

Bibliography

[1] Joris Degroote, Robby Haelterman, Sebastiaan Annerel, Peter Bruggeman, and Jan Vierendeels. Performance of partitioned procedures in fluid-structure interaction. Computers and Structures 88: 446-457, 2010. DOI=http://dx.doi.org/10.1016/j.compstruc.2009.12.006

Using Quasi-Newton Stabilization

Quasi-Newton stabilization is activated by setting AnalysisControl.GlobalStabilization.Option to Quasi-Newton. With this setting, the software will choose which data transfers to stabilize automatically. In most cases, the default selections are appropriate.

If you are using System Coupling's GUI or CLI and it is necessary to override the defaults for individual data transfers, you can set Stabilization.Option to None or Quasi-Newton, rather than the default ProgramControlled option.

For more information, see Available Stabilization Settings.

Changing Stabilization Settings in the GUI

To change Quasi-Newton stabilization settings in the System Coupling GUI, perform the steps described in the following sections:

Activating/Configuring Global Stabilization in the GUI

To activate and configure global stabilization in the GUI, perform the following steps:

  1. In the Outline tree's Setup branch, expand Analysis Control.

  2. Click Global Stabilization.

    The global Option setting is shown below in the Properties pane. By default, it is set to None, indicating that global stabilization is inactive.

  3. For the Option setting, select Quasi-Newton.

    Global stabilization is activated and additional settings are shown below.

  4. Optionally, you can enter new values for the Initial Relaxation Factor and/or Maximum Retained Time Step settings.

When applicable, the Messages tab shows validation details, informational messages, and recommendations for optimizing stabilization settings.

Activating Local Stabilization in the GUI

To activate local stabilization in the GUI, perform the following steps:

  1. Activate global stabilization, as described in Activating/Configuring Global Stabilization in the GUI.

  2. In the Outline tree's Setup branch, expand Coupling Interface | Interface-<#> | Data Transfer | <DataTransferName>.

  3. Click Stabilization.

    The local Option setting is shown below in the Properties pane. By default, it is set to Program Controlled, indicating that System Coupling determines whether stabilization is applied to the parent data transfer.

  4. For the Option setting, select one of the other available values:

    • None

    • Quasi-Newton

When stabilization is activated for a data transfer, it is controlled by the global Initial Relaxation Factor and Maximum Retained Time Step settings.

When applicable, the Messages tab shows validation details, informational messages, and recommendations for optimizing stabilization settings.

Changing Stabilization Settings in the CLI

To change Quasi-Newton stabilization settings in System Coupling's CLI, perform the steps described in the following sections.

Activating/Configuring Global Stabilization in the CLI

To activate and configure global stabilization in the CLI, perform the following steps:

  1. To activate global stabilization, set the global Option setting to Quasi-Newton.

    
    >>> DatamodelRoot().AnalysisControl.GlobalStabilization.Option = 'Quasi-Newton'
    
    
  2. Optionally, you can change the values for the InitialRelaxationFactor and/or MaximumRetainedTimeSteps settings.

    
    >>> sc.GlobalStabilization.MaximumRetainedTimeSteps = 2
    >>> sc.GlobalStabilization.InitialRelaxationFactor = 0.05
    
    
Activating Local Stabilization in the CLI

To activate local stabilization in the CLI, perform the following steps:

  1. Activate global stabilization, as described in Activating/Configuring Global Stabilization in the CLI.

  2. By default, the local Option setting is set to ProgramControlled, indicating that System Coupling determines whether stabilization is applied to the parent data transfer.

    To activate local stabilization, set Option to Quasi-Newton.

    
    >>> DatamodelRoot().CouplingInterface[Interface-<#>']
    .DataTransfer['<TargetVariableDisplayName>-<#>'].Stabilization.Option = 'Quasi-Newton'
    
    

    When stabilization is activated for a data transfer, it is controlled by the global InitialRelaxationFactor and MaximumRetainedTimeStep settings.

Enabling Stabilization for System Coupling in Workbench

To enable Quasi-Newton stabilization in Workbench, enable the GlobalStabilization expert setting.

System Coupling in Workbench supports only default global stabilization settings.

For more detailed information, see Expert Settings.

Available Stabilization Settings

The following data model settings control the application of solution stabilization:

Global Stabilization Settings

Global stabilization is controlled by AnalysisControl.GlobalStabilization.Option, which can take the following values:

  • None (default value)

    Global stabilization is not active.

  • Quasi-Newton

    Global stabilization is active. Whether a data transfer is included in the global stabilization is determined by the transfer's local stabilization option, as described below.

    When global stabilization is active, the following additional controls are also available:

    • InitialRelaxationFactor: Specifies the under-relaxation factor to be applied during the startup iteration (that is, before the Quasi-Newton algorithm starts modifying the data transfers) to ensure divergence does not occur during startup.

      Accepts real values 0.0 ≤ x ≤ 1.0. Default value is 0.01.

      The default relaxation factor is quite heavy. If the risk of immediate divergence is low, then you can often achieve faster convergence by increasing this value.

    • MaximumRetainedTimeSteps: Available for transient analyses. Specifies the maximum number of previous time steps to be retained in the Quasi-Newton history.

      Accepts integer values greater than or equal to than 1. Default value is 1.

      The optimal value is problem-dependent. Some cases may achieve faster convergence by increasing the value (for example, to 5).

Local Stabilization Option

Available only for coupled analyses run in System Coupling's GUI or CLI.

Local stabilization is controlled per-transfer by the CouplingInterface.DataTransfer.Stabilization.Option setting, which becomes available when global stabilization is activated. This setting can take the following values:

  • ProgramControlled (default value)

    The software chooses whether to include this data transfer in the global stabilization algorithm based on the physics and data transfer type.

  • None

    Stabilization is not applied to the data transfer.

  • Quasi-Newton

    Stabilization is applied to this data transfer.


Note:  It is possible for multiple data transfers to be selected for stabilization, if there are multiple coupling interfaces, or if there are multiple data transfers on a single interface. Note that it is inappropriate to stabilize multiple transfers if those transfers are in opposite directions. For example, it is inappropriate to stabilize both Force and Displacement in an FSI calculation, or both Temperature and Heat Flow in a thermal calculation.


Quasi-Newton Recommendations

When applying the Quasi-Newton method, consider the following recommendations to ensure optimal stabilization:

  • In most cases, you should activate stabilization by setting GlobalStabilization to Quasi-Newton and leaving the Stabilization | Option settings for the individual transfers set to ProgramControlled.

    Full details are shown in System Coupling's transcript or by issuing the PrintSetup() command in the CLI or the GUI's Command Console.

  • If you wish to force stabilization to be active for a data transfer not selected by the ProgramControlled option, then you may do so and leave other data transfers set to ProgramControlled. The ProgramControlled algorithm will avoid invalid combinations.

  • Care is required if you manually select Quasi-Newton for multiple individual transfers, as it is easy to select invalid combinations. (For example, it is inappropriate to stabilize both Temperature and Heat Rate in a thermal analysis, or Force and Incremental Displacement in an FSI analysis.)

  • For a thermal analysis, Ansys recommends that you transfer Temperature and Heat Rate quantity types (not Heat Transfer Coefficient and Convection Reference Temperature), since these are conservative and usually converge faster when combined with stabilization.

  • Strongly coupled FSI simulations may not converge deeply enough if the number of coupling iterations is too small. The default maximum number of coupling iterations per time step in a transient analysis is five. A larger value of 10 or 20 is recommended for such situations.

  • Quasi-Newton stabilization should generally not be combined with ramping, relaxation, or participant stabilization.

  • Quasi-Newton stabilization may not be effective if a participant solver does not converge deeply enough. This situation arises most frequently for CFD participants when the CFD solver is restricted to a small number of CFD iterations per coupling iteration. The number of required CFD iterations depends on the case and CFD solver settings (for example, with Fluent, the coupled solver typically converges better than segregated algorithms), but in general, at least 20 CFD iterations per coupling iteration are recommended.

Quasi-Newton Limitations

Currently, the Quasi-Newton algorithm has the following limitation:

  • Quasi-Newton data from previous steps are not restarted when the value of the MaximumRetainedIterations setting is greater than 1. This may change the convergence history, compared to a solution which is not restarted, but will not affect the converged result.

  • Use of Quasi-Newton with point cloud regions is a beta feature.