How to set the convergence criteria

K. Yamamoto
K. Yamamoto Altair Community Member
edited September 30 in Community Q&A

Hi, experts.

In the echo file, there are the following items for convergence criteria settings, but what value does the "standard" setting refer to? Specifically, where is the value that corresponds to Standard set? Can it be set in HyperWorks CFD?

Also, in HyperWorks CFD, what kind of parameter convergence is being checked by the "Convergence tolerance" in Flow>Physics>Settings>Solver controls>Termination criteria? Does the value set here correspond to the above "standard"?

CONVERGENCE_CHECK_PARAMETERS {
    pressure_residual_check = standard ;
    pressure_solution_increment_check = looser_by_10 ;
    velocity_residual_check = standard ;
    velocity_solution_increment_check = looser_by_10 ;
    viscoelastic_stress_residual_check = looser_by_10 ;
    viscoelastic_stress_solution_increment_check = looser_by_10 ;
    temperature_residual_check = standard ;
    temperature_solution_increment_check = looser_by_10 ;
    radiation_residual_check = standard ;
    radiation_solution_increment_check = looser_by_10 ;
    species_residual_check = standard ;
    species_solution_increment_check = looser_by_10 ;
    field_residual_check = standard ;
    field_solution_increment_check = looser_by_10 ;
    phasefield_residual_check = standard ;
    phasefield_solution_increment_check = looser_by_10 ;
    levelset_residual_check = looser_by_10 ;
    levelset_solution_increment_check = looser_by_100 ;
    redistancing_residual_check = looser_by_100 ;
    redistancing_solution_increment_check = looser_by_100 ;
    turbulence_residual_check = looser_by_10 ;
    turbulence_solution_increment_check = looser_by_100 ;
    transition_residual_check = looser_by_100 ;
    transition_solution_increment_check = looser_by_1000 ;
    mesh_displacement_residual_check = looser_by_10 ;
    mesh_displacement_solution_increment_check = looser_by_100 ;
    topology_pressure_residual_check = standard ;
    topology_pressure_solution_increment_check = looser_by_10 ;
    topology_velocity_residual_check = standard ;
    topology_velocity_solution_increment_check = looser_by_10 ;
}

Answers

  • acupro
    acupro
    Altair Employee
    edited September 25

    This is the page for the CONVERGENCE_CHECK_PARAMTERS command:

    https://help.altair.com/hwcfdsolvers/acusolve/topics/acusolve/convergence_check_parameters_acusolve_com_ref.htm

    Yes - standard means the value specified as convergence tolerance.

    Residual ratio is the global measure of how well the solution matches the equations being solved.  Solution ratio is the global measure of how much the solution is changing from step to step or stagger iteration to stagger iteration.

  • K. Yamamoto
    K. Yamamoto Altair Community Member
    edited September 27

    This is the page for the CONVERGENCE_CHECK_PARAMTERS command:

    https://help.altair.com/hwcfdsolvers/acusolve/topics/acusolve/convergence_check_parameters_acusolve_com_ref.htm

    Yes - standard means the value specified as convergence tolerance.

    Residual ratio is the global measure of how well the solution matches the equations being solved.  Solution ratio is the global measure of how much the solution is changing from step to step or stagger iteration to stagger iteration.

    Thank you for your reply. I have some question about the convergence test.

    (1)
    In transient mode, I believe that convergence is tested at each time step, but when the convergence test value is set to 10^-6, why is the calculation not conducted immediately after the start of calculation until residual ratio become below the convergence test value, as the attached image shows?

    (2)
    I don't understand the role of "maximum stagger iterations". Is it the number of calculation iterations until resisual ratio falls below the convergence test value? Will the larger "maximum stagger iterations" be, the easier the residual ratio will converge?

    (3)
    In transient mode, you can set the time step size and final time, but how does this differ from the "Transient maximum steps"? In other words, what is the role of the "transient maximum steps"?
    Does the transient maximum step have any relationship to ease of convergence?

    Thank you.

  • acupro
    acupro
    Altair Employee
    edited September 27

    Thank you for your reply. I have some question about the convergence test.

    (1)
    In transient mode, I believe that convergence is tested at each time step, but when the convergence test value is set to 10^-6, why is the calculation not conducted immediately after the start of calculation until residual ratio become below the convergence test value, as the attached image shows?

    (2)
    I don't understand the role of "maximum stagger iterations". Is it the number of calculation iterations until resisual ratio falls below the convergence test value? Will the larger "maximum stagger iterations" be, the easier the residual ratio will converge?

    (3)
    In transient mode, you can set the time step size and final time, but how does this differ from the "Transient maximum steps"? In other words, what is the role of the "transient maximum steps"?
    Does the transient maximum step have any relationship to ease of convergence?

    Thank you.

    When running transient, we perform multiple passes through the equations to reach convergence for that time step.  These are the stagger iterations.  Think of each time step as a mini steady-state calculation.  When plotting residual or solution ratio, you can choose initial (values after the first stagger iteration / pass through equations), final (values after the final stagger iteration of the time step), or all (values from each stagger iteration within the time step).  Plotting the final values is typically most useful, but you can watch convergence within the time step by plotting All.

    Typically there is no need to go below convergence tolerance 1.e-3 (the default).  Maybe to 1.e-4 as a sensitivity study on convergence level.

    You can stop the simulation by maximum number of time steps, or by final time, or specify both - and the job stops whichever is reached first.

  • K. Yamamoto
    K. Yamamoto Altair Community Member
    edited September 28

    When running transient, we perform multiple passes through the equations to reach convergence for that time step.  These are the stagger iterations.  Think of each time step as a mini steady-state calculation.  When plotting residual or solution ratio, you can choose initial (values after the first stagger iteration / pass through equations), final (values after the final stagger iteration of the time step), or all (values from each stagger iteration within the time step).  Plotting the final values is typically most useful, but you can watch convergence within the time step by plotting All.

    Typically there is no need to go below convergence tolerance 1.e-3 (the default).  Maybe to 1.e-4 as a sensitivity study on convergence level.

    You can stop the simulation by maximum number of time steps, or by final time, or specify both - and the job stops whichever is reached first.

    Thank you for your reply.

    (1)

    The manual says that this option is ignored if maximum stagger iteration=0. Specifically, does this mean that because the maximum iterations is not specified, the calculations are repeated infinitely until the residual ratio falls below the convergence criteria?

     

    (2)

    In the answer to the following URL in the Altair community, there is a statement "Generally 1e-3 for AcuSolve is similar to 1e-5/1e-6 for some other CFD solvers.", but does this mean that the definition of residual ratio is different between HyperWorks and other CFD software? Please tell me specifically how it differs. (For example, is the residual ratio displayed as a percentage in HyperWorks?)

    https://community.altair.com/community/ja?id=community_question&sys_id=94532f23db17ad10cfd5f6a4e2961960

    Thank you.

     

  • acupro
    acupro
    Altair Employee
    edited September 30

    Thank you for your reply.

    (1)

    The manual says that this option is ignored if maximum stagger iteration=0. Specifically, does this mean that because the maximum iterations is not specified, the calculations are repeated infinitely until the residual ratio falls below the convergence criteria?

     

    (2)

    In the answer to the following URL in the Altair community, there is a statement "Generally 1e-3 for AcuSolve is similar to 1e-5/1e-6 for some other CFD solvers.", but does this mean that the definition of residual ratio is different between HyperWorks and other CFD software? Please tell me specifically how it differs. (For example, is the residual ratio displayed as a percentage in HyperWorks?)

    https://community.altair.com/community/ja?id=community_question&sys_id=94532f23db17ad10cfd5f6a4e2961960

    Thank you.

     

    1)  If 0 is specified, the default is used, which is 2.  (But if auto-time-increment is active, the default is 4.)  From the Command Reference Manual:

    https://help.altair.com/hwcfdsolvers/acusolve/topics/acusolve/auto_solution_strategy_acusolve_com_ref.htm

    max_stagger_iterations or max_stg_iters (integer) >=0 [=0]Maximum number of stagger iterations before advancing to the next time step. If zero, this option is determined internally. If set to zero, AcuSolve internally sets the max_stagger_iterations to two when auto_time_increment is off. When auto_time_increment is on, a value of four is used. This option is only used when solving transient analysis.

    2)  The basic understanding is that AcuSolve computes the denominator (the normalizing factor) at each time step, where other solvers typically compute that at the start and keep if constant throughout the simulation.  (That behavior in other solvers may have changed in the meantime, but that's the basis for the statement.)