TIME_INTEGRATION

Specifies the predictor multi-corrector time integration parameters.

Type

AcuSolve Command

Syntax

TIME_INTEGRATION {parameters}

Qualifier

This command has no qualifier.

Parameters

predictor (enumerated) [=same_v]
Predictor strategy.
same_v
Same velocity predictor.
zero_a
Zero acceleration predictor.
time_integration_order or order (enumerated) [=first]
Time-accurate order of the time stepping algorithm.
first
First-order time accurate (Implicit Euler).
second
Second-order time accurate.
high_frequency_damping_factor or damp_fct (real) >=0 <=1 [=1]
High frequency damping factor of the second-order time marching algorithm.
pressure_damping_type (enumerated) [=max]
Controls high frequency pressure damping in the pressure (continuity) equation. Used with time_integration_order=second. For transient compressible flow simulations, this value should be set to match.
max
Sets high_frequency_damping_factor=1.
match
Same damping as in other equations (that is uses the value specified by high_frequency_damping_factor).
lumped_mass_factor or lump_fct (real) >=0 <=1 [=1]
Fraction of the mass matrix that consists of the lumped mass matrix. The remaining fraction consists of the consistent mass matrix.
initialize_acceleration or init_accel (boolean) [=off]
Flag specifying whether or not to initialize the acceleration before the first time step. Used with time_integration_order=second.
initialize_stokes or init_stokes (boolean) [=off]
Flag to improve initialization of the Navier-Stokes equations by solving the Stokes equation before proceeding to the first time step.
initialize_turbulence or init_turb (boolean) [=off]
Flag to generate initial conditions for the turbulence equations before proceeding to the first time step.
initialize_levelset or init_lvset (boolean) [=on]
Flag to initialize the level set field by solving the level set redistancing equation on the user prescribed initial conditions. Used only when performing a multi field simulation that utilizes the level set transport model.

Description

This command specifies the predictor multi-corrector parameters of the time integration algorithm.

AcuSolve uses a semi-discrete formulation for the solution of flow problems. The Galerkin/Least-Squares (GLS) finite element method is used to discretize the differential equations in space and the generalized-alpha method is used to advance the solution in time.

The generalized-alpha method is a linear multi-step algorithm which uses "velocity" and "acceleration" like terms at time steps n and n+1, when solving first-order differential equations. Predictor multi-corrector algorithms are then applied on top of the generalized-alpha method to handle solutions of the nonlinear problem.

Two types of predictors are available. The same_v predictor sets the initial velocity (and equivalently the initial temperature, species, and so on) of time step n+1 to the final values of time step n. The initial acceleration (and equivalently the initial time derivatives of temperature, species, and so on) of time step n+1 is computed such that the generalized- alpha difference equation is satisfied. This predictor is very stable, hence typically used.

The zero_a predictor, on the other hand, sets the initial acceleration of time step n+1 to zero and computes the initial velocity of time step n+1 to satisfy the generalized-alpha difference equation. This predictor may yield faster nonlinear convergence within each time step; however, it is less stable and therefore rarely used.

The generalized-alpha method has a number of parameters that control the stability and accuracy of the time integration. These parameters are internally set given the values of time_integration_order and high_frequency_damping_factor.

For steady-state problems, the first-order algorithm is typically used:
TIME_INTEGRATION {
   predictor                   = same_v
   time_integration_order      = first
   lumped_mass_factor          = 1
}

This algorithm is equivalent to the implicit Euler time marching method. This scheme is first-order accurate and unconditionally stable for linear problems.

For transient problems, the second-order algorithm is typically used. With this algorithm you can control the amount of high frequency damping through high_frequency_damping_factor. The highest amount of damping is given by:
TIME_INTEGRATION {
   predictor                       = same_v
   time_integration_order          = second
   high_frequency_damping_factor   = 1
   lumped_mass_factor              = 1
}

This algorithm is equivalent to Gear's method, which is second-order time-accurate, yet unconditionally stable for linear problems. This algorithm has a high degree of stability and still maintains second-order time accuracy.

Alternatively, the command for the mid-point rule (Trapezoidal for linear problems) may be given by:
TIME_INTEGRATION {
   predictor                       = same_v
   time_integration_order          = second
   high_frequency_damping_factor   = 0
   lumped_mass_factor              = 1
}

This method is second-order time-accurate, but neutrally stable for linear problems. For nonlinear problems, which are typically solved by AcuSolve, this algorithm may lead to instabilities. To retain nonlinear stability, values greater than 0.2 are recommended for high_frequency_damping_factor.

For the special case of non-zero isothermal compressibility (see the DENSITY_MODEL command) combined with second-order time integration, the pressure (continuity) equation often requires more high-frequency damping than the other equations. Specifying max for pressure_damping_type sets the high_frequency_damping_factor to the highest value allowed (one) for the pressure equation only.

The lumped_mass_factor parameter specifies the fraction of the mass matrix that is made up of the lumped mass matrix. The remaining is made up of the consistent mass matrix. This same fraction is also used in the residual of the inertia terms of all equations. Lumped mass matrices are typically more stable and have faster linear and nonlinear convergence behavior. However, consistent mass matrices are typically more accurate in time. If tight time accuracy is desired, a lumped_mass_factor of zero or nearly zero may be used.

When solving transient problems, where the accuracy of the initial conditions is crucial, the acceleration (and equivalent fields) must satisfy the generalized-alpha equation at the first time step. If initialize_acceleration is turned on, a pseudo time step is solved before the first time step, in order to initialize the acceleration fields. This step is performed only for problems with second-order time integration and only when starting from time zero. Restart problems are assumed to have consistent acceleration.

Initialization of the flow variables for all kinds of Navier-Stokes problems can also be improved by turning on initialize_stokes. When this option is turned on, AcuSolve will solve the Stokes equations to generate the initial conditions for the full Navier-Stokes solve. Additionally, the initial conditions for the turbulence equations can be improved by turning the initialize_turbulence option on. When this option is activated, algebraic relationships based on simplifications to the turbulence model are used to provide initial conditions for the turbulence model equations. Note that this option is only valid when used with the Spalart-Allmaras, SST, k-omega, BSL k-omega, k-epsilon, realizable k-epsilon, RNG k-epsilon, DES and SST-DES turbulence models. The most drastic impact of this option is typically seen when using the k-omega and k-epsilon based models for steady state simulations. It is often seen to reduce the number of time steps required to achieve a converged solution. Note that this option also initializes the transition variables in the case of a simulation that includes a transition model.

To improve the behavior of multi field simulations using the level set transport model, the initialize_levelset option can be activated. This option solves the level set redistancing equation on the user specified level set field to produce better initialization of the variable.