The DIABLO namelist is the primary source of parameters used in the nonlinear solver. Most of these parameters can be used on their default settings. However, there are a few essential lines that need to be added to any input file:
diablo%istream and diablo%iground need to be set appropriately depending on the mesh (see below for description). Most of our meshes are set up consistently with the default values, but there may be exceptions, expecially for 2D cases.
The dissipation parameters need to be set up appropriately depending on the case. If you are sure that your case is subsonic, consider setting the dissipation coefficients to the following:
DIABLO% P_SWITCH = .false.,
DIABLO% DIS2(1) = 0.0d0, DIABLO% DIS4(1) = 4.d-2,
DIABLO% DIS2(2) = 0.0d0, DIABLO% DIS4(2) = 4.d-2,
DIABLO% DIS2(3) = 0.0d0, DIABLO% DIS4(3) = 4.d-2,
DIABLO% Vl = 0.025d0, DIABLO% Vn = 0.025d0,
SAT_%Vl = 0.025d0, SAT_%Vn = 0.025d0
Otherwise, if you are running anything that might have a shock in it:
DIABLO% P_SWITCH = .true.,
DIABLO% DIS2(1) = 1.0d0, DIABLO% DIS4(1) = 2.d-2,
DIABLO% DIS2(2) = 1.0d0, DIABLO% DIS4(2) = 2.d-2,
DIABLO% DIS2(3) = 1.0d0, DIABLO% DIS4(3) = 2.d-2,
DIABLO% Vl = 0.025d0, DIABLO% Vn = 0.25d0,
SAT_%Vl = 0.025d0, SAT_%Vn = 0.25d0
diablo%dt_min needs to be set to the same value as diablo%a.
diablo%nk_strtup should be set to 2.
We typically use diablo%nk_time = 7, which is different from the default.
Recommended that diablo%updat_frq be set between 1 and 3 (default is 5).
Turbulent flow solves
Set diablo%viscous = .true., diablo%turbulnt = .true.
Set diablo%qcr = .true. for regions with high recirculation, for example cases with high AoA. Turning this on for other cases doesn't hurt accuracy, but will increase the CPU time.
Generally should use the most accurate off-wall distance calculation diablo%d_type for analysis, though this is not currently (June 18, 2014) supported for optimization since it is not linearized. Also note that if the file mindist.dat is present then the value in this file will be used to get the off-wall distance, possibly to use the same value all the time in optimization so that it does not need to be linearized. However, if you are setting up a new turbulent case by simply copying an old one, make sure to delete this file since it will probably have the wrong off-wall distance for your case.
Click here to return to main Jetstream Input Parameters page.
Basic Setup
DIABLO%istream
Description: Coordinate direction of streamwise flow. Parameter Type: Integer Range of Acceptable values: [1,3] (inclusive interval) Default Value: 1
DIABLO%iground
Description: Coordinate direction of verical direction. Parameter Type: Integer Range of Acceptable values: [1,3] Default Value: 3
DIABLO%restart
Description: Is this a restart? Parameter Type: Logical Default Value: .false. User Notes: Requires a results.q file to be present from a previous flow solve on th same mesh. Also, set diablo%use_frstrm to .false..
DIABLO%use_frstrm
Description: Use freestream to initialize the flow field? Parameter Type: Logical Default Value: .false. User Notes: Used with diablo%restart.
Non-Linear Solver Options
DIABLO%nk_global
Description: Globalization strategy (for values 0, -1, and -2, refer to the HOM input parameters for homotopy continuation options) Parameter Type: Integer Range of Acceptable values: [-2, 4] Default Value: 1 User Notes:
Description: Type of startup for pseudo-transient Parameter Type: Integer Range of Acceptable values: [1,2] Default Value: 1 User Notes:
1 --> Inexact Newton startup
2 --> Approximate Newton (globalization phase) startup
Note that the default value will actually skip the globalization phase and put you directly into Newton's method.
DIABLO%rel_tol
Description: Relative tolerance for which to consider the flow solve converged. Parameter Type: Real Range of Acceptable values: [1.d-8.1.d-14] Default Value: 1.d-10 User Notes: diablo%nk_global > 0 only. Usually, 1.d-10 to 1.d-12 for Euler and 1.d-12 to 1.d-14 for RANS. Use values in the smaller end for optimization cases.
DIABLO%abs_tol
Description: Absolute residual norm for which to consider the flow solve converged. Parameter Type: Real Range of Acceptable values: [1.d-9,1.d-15] Default Value: 1 User Notes: diablo%nk_global > 0 only. Usually, 1.d-11 to 1.d-13 for Euler and 1.d-13 to 1.d-15 for RANS. Use values in the smaller end for optimization cases.
DIABLO%nk_its
Description: Maximum number of Newton-Krylov Iterations Parameter Type: Integer Range of Acceptable values: [1, large] Default Value: 20
DIABLO%updat_frq
Description: The number of iterations between preconditioner, ilu, and time step updates. Startup phase only. Parameter Type: Integer Range of Acceptable values: [1, large] Default Value: 5 User Notes: Default value is not recommended. Generally, we don't go higher than 3. If in doubt, set it to 1.
Description: Physicality constraint options. This applies additional damping if the nonlinear solution update decreases the physical flow variable too much. Parameter Type:PCality Default Values:
diablo% pcality% on = .false.
diablo% pcality% maxits = 5
diablo% pcality% damp = 0.9d0
diablo% pcality% rho_mafd = 0.1d0
diablo% pcality% e_mafd = 0.1d0
Dissipation
DIABLO%idmodel
Description: Select artificial dissipation model to use in flow solver. Parameter Type: Integer Range of Acceptable values: 1,2 Default Value: 1 User Notes:
1 = Scalar dissipation
2 = Matrix dissipation
Other options present for unsteady flow solves. Consult P. Boom for details.
DIABLO%dis2
Description: The three (j,k,m) components of the 2nd-difference (1st-order) dissipation coefficients Parameter Type: real(3) Range of Acceptable values: [0, ~2) Default Value: 1.d0 User Notes: This should be set to 0 if the pressure switch is turned off. Otherwise, set to 1 or higher if more dissipation is desired.
DIABLO%dis4
Description: The three (j,k,m) components of the 4th-difference (3rd order) dissipation coefficients Parameter Type: real(3) Range of Acceptable values: (0,~0.1) Default Value: 2.d-2 User Notes: Usually we reduce the value when turning the pressure switch on.
DIABLO%prec_dlf
Description: Preconditioner lumping factor for the dissipation coefficients. This is Parameter Type: real Range of Acceptable values: [4,15] Default Value: 6 User Notes: See Sydney Dias' thesis, where he performed some investigation of this parameter for the Euler equations (I think he used about 7-10?). In Michal Osusky's thesis, he found that 10-12 works best for RANS cases.
DIABLO%p_switch
Description: Controls usage of the pressure switch to activate 2nd difference artificial dissipation. Parameter Type: Logical Default Value: false User Notes: This is used for shock capturing, and is generally accompanied by several other parameter changes. Ssee the notes at the top of this wiki page.
Pseudo-Transient (PTC)
DIABLO%nk_time
Description: Sets how the reference time step is calculated Parameter Type: Integer Range of Acceptable values: {[0, 11], 17} Default Value: 4 User Notes:
*Some of these entries need to be edited by someone who knows more about them.
0 --> Infinite time step (full NK)
1 -->
2 -->
3 -->
4 -->
5 -->
6 -->
7 --> Update formula from Jason Hicken's thesis (This is what we normally use). The formula is AB^n, where n is the iteration coutn, but is only updated when the preconditioner is updated (see diablo%ilu_updat_frq).
8 --> Special case used for flow around sphere
9 --> dt = 1E10
10 --> Time step selection from David Kam' s thesis
11 --> I don't know, something about turbulence
17 --> Special case that can go back to the approximate Newton phase if needed in some RANS cases.
DIABLO%dt_min
Description: Minimum reference time step size. Usually, set to the same value as diablo%a. Parameter Type: Real Range of Acceptable values: See diablo%a below. Default Value: 1.d3 User Notes: If not changed from the default value, this will cause major convergence problems.
DIABLO%a
Description: The value of A used in diablo%nk_time = 7. This determines the initial time step. Make sure to also set dt_min to this value. Parameter Type: Real Range of Acceptable values: Usually between 0.5 and 0.01 for Euler, 0.01 and 0.0001 for RANS. Default Value: 0.5 User Notes: For RANS cases, the value should be adjusted based on the off-wall spacing, where smaller values are typically used for smaller off-wall spacing.
DIABLO%b
Description: The value of B used in diablo%nk_time = 7. This affects how aggressively the time step is updated. This is also used with the parameter update in SAT-based continuation (nk_global=2). Parameter Type: Real Range of Acceptable values: Usually between 1.2 and 1.8 for Euler, 1.1 and 1.3 for RANS. Default Value: 1.2 User Notes: For RANS cases, the value should be adjusted based on the off-wall spacing, where smaller values are typically used for smaller off-wall spacing.
DIABLO%alpha
Description: Parameter used in the time term in the Newton phase. Parameter Type: Real Range of Acceptable values: (0,large) Default Value: 1000 User Notes: There is generally not much reason to change this.
DIABLO%beta
Description: Parameter used in the time term in the Newton phase. This is also use for the parameter update for DBC (nk_global = 3) according to the formula lambda = min(diablo% lambda_drop*lambda, diablo% lambda*resid_dropdiablo% beta). Parameter Type:Real Range of Acceptable values:(0, large) Default Value:1 User Notes: There is generally not much reason to change this for PTC. For DBC, try diablo% beta = 2.
Old Homotopy (diablo% nk_global > 1)
DIABLO%pc_its
Description: Maximum number of predictor-corrector iterations Parameter Type: Integer Range of Acceptable values: [2, large] Default Value: 20
DIABLO%lambda
Description: Initial value of the continuation parameter lambda. Parameter Type: Real Range of Acceptable values: (0,large) Default Value: 1
DIABLO%lambda_drop
Description: Aggressiveness with which to update lambda. Smaller values are more aggressive. Parameter Type: Real Range of Acceptable values: (0,lambda) Default Value: 0.5
Preconditioner Options
DIABLO%ilu_opt
Description: ILU fill methodology. Parameter Type: Character Range of Acceptable values: 'iluk', 'ilut' Default Value: 'iluk'
DIABLO%strtup_ilut
Description: Options for ILUT in the startup phase. Only active if diablo%ilu_opt = 'ilut'. Parameter Type:ilut_opts Default Values:
diablo% strtup_ilut% droptol = 1.d-4
diablo% strtup_ilut% adpfactor = 0.d0
diablo% strtup_ilut% lev_fil = 10
diablo% strtup_ilut% bnorm = 2
diablo% strtup_ilut% pivoting = .false.
diablo% strtup_ilut% diagcomp = .false.
diablo% strtup_ilut% rowave = .false.
DIABLO%newton_ilut
Description: Options for ILUT in the Newton phase. Only active if diablo%ilu_opt = 'ilut'. Parameter Type:ilut_opts Default Values:
diablo% newton_ilut% droptol = 1.d-4
diablo% newton_ilut% adpfactor = 0.d0
diablo% newton_ilut% lev_fil = 10
diablo% newton_ilut% bnorm = 2
diablo% newton_ilut% pivoting = .false.
diablo% newton_ilut% diagcomp = .false.
diablo% newton_ilut% rowave = .false.
DIABLO%lev_fil
Description: Fill level used for the preconditioner. Only active if diablo%ilu_opt = 'iluk'. Parameter Type: Integer Range of Acceptable values: [1, large] Default Value: 1 User Notes:
Using higher fill results in larger ILU factorization time and memory cost but faster linear solver time. Here are some parameters that were found to be efficient:
Euler flow: 1 or 2 (Dias)
Laminar: 2 or 3 (Osusky)
RANS: 3 or 4 (Osusky)
It has also been found that finer grids benefit more from this higher fill, especially for RANS flow. This is most likely due to the migration of the eigenvalues towards the imaginary axis as the mesh is refined, reducing the matrix definiteness. As definiteness decreases, so does the relative size of the initial ILU(p) fill elements, making low fill levels less effective in such cases.
DIABLO%app_lev_fil
Description: Fill level for approximate Newton phase. Only active if diablo%ilu_opt = 'iluk'. Parameter Type: Integer Range of Acceptable values: [1, 5] Default Value: 1 User Notes:
The linear solver is better-conditioned during startup and generally does not require as high fill as in the inexact Newton phase.
Euler flow: 0 or 1 (Dias)
Laminar: 2 (Osusky)
RANS: 2 or 3 (Osusky)
DIABLO%updat_frq
Description: Nonlinear iterations between updates of the preconditioner and time step during the approximate Newton phase. Parameter Type: Integer Range of Acceptable values: [1,5] Default Value: 5 User Notes: Preconditioner is updated every iteration during inexact Newton phase
DIABLO%schur_its
Description: Maximum number of approximate Schur iterations. Parameter Type: Integer Range of Acceptable values: [1, large] Default Value: 5
DIABLO%schur_tol
Description: Tolerance used by the Schur complement method. Parameter Type: real Range of Acceptable values: (0,1) Default Value: 1.d-2
Description: Normalize all rows before sending to linear solver? Note that this will replace other row scaling. Parameter Type: Logical Default Value: .false. User Notes:
The result of this scaling is that the linear solver will be better conditioned but the nonlinear updates will be less effective. When turning this on, it is best to also reduce diablo%b (since more time steps will need to be taken) and it may also be more efficient to reduce the preconditioner fill level. This has an even greater effect for RANS cases since it completely changes the order of magnitude of the residual; the tolerances to use (especially diablo%drop_tol) should be closer to Euler parameters when using this scaling for RANS.
DIABLO%col_norm
Description: Normalize all columns before sending to linear solver? Note that this will replace other column scaling. If diablo%row_norm is also on, the row normalization will be applied before the column scaling vector is calculated so that only the columns are "truly" normalized. Parameter Type: Logical Default Value: .false. User Notes:
Column scaling is normally only applied for RANS equations. It seems to have very little effect for Euler solves.
DIABLO%linsolve_info
Description: Outputs additional info during linear solve. Parameter Type: Logical Default Value: .true.
Viscous (Laminar/Turbulent)
DIABLO%viscous
Description: This toggles the viscous terms. Parameter Type: Logical Default Value: .false.
User Notes: Without turning on the diablo%turbulnt or diablo%unsteady flags, this will result in a laminar flow solve. For laminar flow, Reynolds numbers higher than about 1.d3 will be pretty unstable and convergence should not be expected.
DIABLO%viscross
Description: Turns on the cross-derivative terms for the viscous terms. Parameter Type: Logical Default Value: .false. User Notes: Reduces cost and accuracy.
DIABLO%visc_true_ave
Description: Determines whether true averaging is used for the viscous terms Parameter Type: Logical Default Value: .true.
DIABLO%constVis
Description: Sutherland's law linearization Parameter Type: Logical Default Value: .true.
DIABLO%visc_srf_sat
Description: Selects which type of viscous surface SAT to use. Parameter Type: Integer Range of Acceptable values: [1,5] Default Value: 1
User Notes:
1 --> Zero temperature gradient
2 --> Zero pressure and density graident
3 --> Isothermal temperature based on freestream
4 --> Modification of case 2
5 --> Alternate formulation of adiabatic condition, where the temperature gradient is enforced through a flux SAT
DIABLO%visc_bnd2
Description: Turns on the second order SAT boundary stencil for the viscous terms Parameter Type: Logical Default Value: .true.
DIABLO%ff_mu_friction
Description: Use farfield viscosity in friction force calculation? Parameter Type: Logical Default Value: .true.
RANS
See Michal Osusky's thesis for more information on our RANS implementation
DIABLO%turbulnt
Description: Turns on RANS. Note that DIABLO% VISCOUS has to be true as well. Parameter Type: Logical Default Value: .false. User Notes: Make sure diablo%viscous is also .true.
DIABLO%t_nut_ff
Description: Farfield value of the turbulent variable nu_t. Parameter Type: real Default Value: 3.d0
DIABLO%sa_jscale
Description: The main effect of turning this on is that a factor of J^-1 is included in the Jacobian in the SA model inside the derivative similar to the mean flow equations in conservative form. Otherwise, the J^-1 factor is still applied after the residual is calculated. However, there are other effects too, since the ordering of operations carried out in the inherent scaling and auto-scaling are effected, generally resulting in poorer performance for diablo%nk_global>0 cases. This also results in slight discrepancy (usually <0.1%) in final CL and CD values. Parameter Type: Logical Default Value: .false. User notes:
Recommended value for diablo%nk_global >0 is .false.
Currently (Aug 2013), diablo%nk_global = 0 cases wiil automatically set this value to .true.. The next merge will support both values, and performance seems to not be significantly affected by the value.
DIABLO%trip_type
Description: Transition enforcement for SA turbulence model. Parameter Type: Integer Default Value: 0
DIABLO%sa_diss
Description: Type of dissipation to use for the SA turbulence model Parameter Type: Integer Default Value: 0
DIABLO%t_trip1
Description: Turn on the ft1 trip term in the SA model? Parameter Type: Logical Default Value: .false. User notes: Requires a special input file called grid.trip. See the appendix of Michal Osusky's thesis for an example.
DIABLO%t_trip2
Description: Turn on the ft2 trip term in the SA model? Parameter Type: Logical Default Value: .true.
DIABLO%qcr
Description: Turn on QCR correction for RANS flow solves Parameter Type: Logical Default Value: .false.
DIABLO%d_type
Description: Off-wall distance calculation used in the product/destruction terms of the SA model Parameter Type: Integer Default Value: 0
0 --> Uses distance to nearest surface node
1 --> Uses normal distance to the surface
2 --> More accurate (but more expensive) version of 1
See MO's DPW5 paper to see the effects.
DIABLO%t_output
Description: Output turbulent data? This will produce an additional results.tinfo file that contains additional turbulent data, such as trimming locations. Parameter Type: Logical Default Value: .false.
Unsteady
DIABLO%unsteady
Description: This flag toggles unsteady (time-accurate) flow solves. Parameter Type: Logical Default Value: .false.
Table of Contents
DIABLO% P_SWITCH = .false.,
DIABLO% DIS2(1) = 0.0d0, DIABLO% DIS4(1) = 4.d-2,
DIABLO% DIS2(2) = 0.0d0, DIABLO% DIS4(2) = 4.d-2,
DIABLO% DIS2(3) = 0.0d0, DIABLO% DIS4(3) = 4.d-2,
DIABLO% Vl = 0.025d0, DIABLO% Vn = 0.025d0,
SAT_%Vl = 0.025d0, SAT_%Vn = 0.025d0
Otherwise, if you are running anything that might have a shock in it:
DIABLO% P_SWITCH = .true.,
DIABLO% DIS2(1) = 1.0d0, DIABLO% DIS4(1) = 2.d-2,
DIABLO% DIS2(2) = 1.0d0, DIABLO% DIS4(2) = 2.d-2,
DIABLO% DIS2(3) = 1.0d0, DIABLO% DIS4(3) = 2.d-2,
DIABLO% Vl = 0.025d0, DIABLO% Vn = 0.25d0,
SAT_%Vl = 0.025d0, SAT_%Vn = 0.25d0
Turbulent flow solves
diablo%a = 0.001, diablo%b =1.3, diablo%dt_min = 0.001, diablo%dtop_tol = 1.d-4.
Click here to return to main Jetstream Input Parameters page.
Basic Setup
DIABLO%istream
Description: Coordinate direction of streamwise flow.Parameter Type: Integer
Range of Acceptable values: [1,3] (inclusive interval)
Default Value: 1
DIABLO%iground
Description: Coordinate direction of verical direction.Parameter Type: Integer
Range of Acceptable values: [1,3]
Default Value: 3
DIABLO%restart
Description: Is this a restart?Parameter Type: Logical
Default Value: .false.
User Notes: Requires a results.q file to be present from a previous flow solve on th same mesh. Also, set diablo%use_frstrm to .false..
DIABLO%use_frstrm
Description: Use freestream to initialize the flow field?Parameter Type: Logical
Default Value: .false.
User Notes: Used with diablo%restart.
Non-Linear Solver Options
DIABLO%nk_global
Description: Globalization strategy (for values 0, -1, and -2, refer to the HOM input parameters for homotopy continuation options)Parameter Type: Integer
Range of Acceptable values: [-2, 4]
Default Value: 1
User Notes:
-2 --> Convex/global homotopy continuation (explicit monolithic algorithm)
-1 --> Convex/global homotopy continuation (monolithic algorithm)
0 --> Convex/global homotopy continuation (predictor-corrector algorithm)
1 --> Pseudo-transient
2 --> SAT continuation
3 --> Dissipation continuation
4 --> Source term continuation
DIABLO%nk_strtup
Description: Type of startup for pseudo-transientParameter Type: Integer
Range of Acceptable values: [1,2]
Default Value: 1
User Notes:
1 --> Inexact Newton startup
2 --> Approximate Newton (globalization phase) startup
Note that the default value will actually skip the globalization phase and put you directly into Newton's method.
DIABLO%rel_tol
Description: Relative tolerance for which to consider the flow solve converged.Parameter Type: Real
Range of Acceptable values: [1.d-8.1.d-14]
Default Value: 1.d-10
User Notes: diablo%nk_global > 0 only. Usually, 1.d-10 to 1.d-12 for Euler and 1.d-12 to 1.d-14 for RANS. Use values in the smaller end for optimization cases.
DIABLO%abs_tol
Description: Absolute residual norm for which to consider the flow solve converged.Parameter Type: Real
Range of Acceptable values: [1.d-9,1.d-15]
Default Value: 1
User Notes: diablo%nk_global > 0 only. Usually, 1.d-11 to 1.d-13 for Euler and 1.d-13 to 1.d-15 for RANS. Use values in the smaller end for optimization cases.
DIABLO%nk_its
Description: Maximum number of Newton-Krylov IterationsParameter Type: Integer
Range of Acceptable values: [1, large]
Default Value: 20
DIABLO%updat_frq
Description: The number of iterations between preconditioner, ilu, and time step updates. Startup phase only.Parameter Type: Integer
Range of Acceptable values: [1, large]
Default Value: 5
User Notes: Default value is not recommended. Generally, we don't go higher than 3. If in doubt, set it to 1.
DIABLO%strtup_ls
Description: Line search method for startup phase.Parameter Type: PTCLineSearch
Default Values:
diablo% strtup_ls% on = .false.
diablo% strtup_ls% steady = .true.
diablo% strtup_ls% dt_red_fac(1) = 7.5d-1
diablo% strtup_ls% dt_red_fac(2) = 7.5d-1
diablo% strtup_ls% eta_in = 1.d0
diablo% strtup_ls% eta_min = 7.5d-1
diablo% strtup_ls% damp = 0.9d0
diablo% strtup_ls% rfac_tol = 1.d0
DIABLO%newton_ls
Description: Line search method for startup phase.Parameter Type: LineSearch
Default Values:
diablo% newton_ls% on = .false.
diablo% newton_ls% eta_in = 1.d0
diablo% newton_ls% eta_min = 7.5d-1
diablo% newton_ls% damp = 0.9d0
diablo% newton_ls% rfac_tol = 1.d0
DIABLO%pcality
Description: Physicality constraint options. This applies additional damping if the nonlinear solution update decreases the physical flow variable too much.Parameter Type: PCality
Default Values:
diablo% pcality% on = .false.
diablo% pcality% maxits = 5
diablo% pcality% damp = 0.9d0
diablo% pcality% rho_mafd = 0.1d0
diablo% pcality% e_mafd = 0.1d0
Dissipation
DIABLO%idmodel
Description: Select artificial dissipation model to use in flow solver.Parameter Type: Integer
Range of Acceptable values: 1,2
Default Value: 1
User Notes:
1 = Scalar dissipation
2 = Matrix dissipation
Other options present for unsteady flow solves. Consult P. Boom for details.
DIABLO%dis2
Description: The three (j,k,m) components of the 2nd-difference (1st-order) dissipation coefficientsParameter Type: real(3)
Range of Acceptable values: [0, ~2)
Default Value: 1.d0
User Notes: This should be set to 0 if the pressure switch is turned off. Otherwise, set to 1 or higher if more dissipation is desired.
DIABLO%dis4
Description: The three (j,k,m) components of the 4th-difference (3rd order) dissipation coefficientsParameter Type: real(3)
Range of Acceptable values: (0,~0.1)
Default Value: 2.d-2
User Notes: Usually we reduce the value when turning the pressure switch on.
DIABLO%prec_dlf
Description: Preconditioner lumping factor for the dissipation coefficients. This isParameter Type: real
Range of Acceptable values: [4,15]
Default Value: 6
User Notes: See Sydney Dias' thesis, where he performed some investigation of this parameter for the Euler equations (I think he used about 7-10?). In Michal Osusky's thesis, he found that 10-12 works best for RANS cases.
DIABLO%p_switch
Description: Controls usage of the pressure switch to activate 2nd difference artificial dissipation.Parameter Type: Logical
Default Value: false
User Notes: This is used for shock capturing, and is generally accompanied by several other parameter changes. Ssee the notes at the top of this wiki page.
Pseudo-Transient (PTC)
DIABLO%nk_time
Description: Sets how the reference time step is calculatedParameter Type: Integer
Range of Acceptable values: {[0, 11], 17}
Default Value: 4
User Notes:
*Some of these entries need to be edited by someone who knows more about them.
0 --> Infinite time step (full NK)
1 -->
2 -->
3 -->
4 -->
5 -->
6 -->
7 --> Update formula from Jason Hicken's thesis (This is what we normally use). The formula is AB^n, where n is the iteration coutn, but is only updated when the preconditioner is updated (see diablo%ilu_updat_frq).
8 --> Special case used for flow around sphere
9 --> dt = 1E10
10 --> Time step selection from David Kam' s thesis
11 --> I don't know, something about turbulence
17 --> Special case that can go back to the approximate Newton phase if needed in some RANS cases.
DIABLO%dt_min
Description: Minimum reference time step size. Usually, set to the same value as diablo%a.Parameter Type: Real
Range of Acceptable values: See diablo%a below.
Default Value: 1.d3
User Notes: If not changed from the default value, this will cause major convergence problems.
DIABLO%a
Description: The value of A used in diablo%nk_time = 7. This determines the initial time step. Make sure to also set dt_min to this value.Parameter Type: Real
Range of Acceptable values: Usually between 0.5 and 0.01 for Euler, 0.01 and 0.0001 for RANS.
Default Value: 0.5
User Notes: For RANS cases, the value should be adjusted based on the off-wall spacing, where smaller values are typically used for smaller off-wall spacing.
DIABLO%b
Description: The value of B used in diablo%nk_time = 7. This affects how aggressively the time step is updated. This is also used with the parameter update in SAT-based continuation (nk_global=2).Parameter Type: Real
Range of Acceptable values: Usually between 1.2 and 1.8 for Euler, 1.1 and 1.3 for RANS.
Default Value: 1.2
User Notes: For RANS cases, the value should be adjusted based on the off-wall spacing, where smaller values are typically used for smaller off-wall spacing.
DIABLO%alpha
Description: Parameter used in the time term in the Newton phase.Parameter Type: Real
Range of Acceptable values: (0,large)
Default Value: 1000
User Notes: There is generally not much reason to change this.
DIABLO%beta
Description: Parameter used in the time term in the Newton phase. This is also use for the parameter update for DBC (nk_global = 3) according to the formula lambda = min(diablo% lambda_drop*lambda, diablo% lambda*resid_dropdiablo% beta).Parameter Type: Real
Range of Acceptable values: (0, large)
Default Value: 1
User Notes: There is generally not much reason to change this for PTC. For DBC, try diablo% beta = 2.
Old Homotopy (diablo% nk_global > 1)
DIABLO%pc_its
Description: Maximum number of predictor-corrector iterationsParameter Type: Integer
Range of Acceptable values: [2, large]
Default Value: 20
DIABLO%lambda
Description: Initial value of the continuation parameter lambda.Parameter Type: Real
Range of Acceptable values: (0,large)
Default Value: 1
DIABLO%lambda_drop
Description: Aggressiveness with which to update lambda. Smaller values are more aggressive.Parameter Type: Real
Range of Acceptable values: (0,lambda)
Default Value: 0.5
Preconditioner Options
DIABLO%ilu_opt
Description: ILU fill methodology.Parameter Type: Character
Range of Acceptable values: 'iluk', 'ilut'
Default Value: 'iluk'
DIABLO%strtup_ilut
Description: Options for ILUT in the startup phase. Only active if diablo%ilu_opt = 'ilut'.Parameter Type: ilut_opts
Default Values:
diablo% strtup_ilut% droptol = 1.d-4
diablo% strtup_ilut% adpfactor = 0.d0
diablo% strtup_ilut% lev_fil = 10
diablo% strtup_ilut% bnorm = 2
diablo% strtup_ilut% pivoting = .false.
diablo% strtup_ilut% diagcomp = .false.
diablo% strtup_ilut% rowave = .false.
DIABLO%newton_ilut
Description: Options for ILUT in the Newton phase. Only active if diablo%ilu_opt = 'ilut'.Parameter Type: ilut_opts
Default Values:
diablo% newton_ilut% droptol = 1.d-4
diablo% newton_ilut% adpfactor = 0.d0
diablo% newton_ilut% lev_fil = 10
diablo% newton_ilut% bnorm = 2
diablo% newton_ilut% pivoting = .false.
diablo% newton_ilut% diagcomp = .false.
diablo% newton_ilut% rowave = .false.
DIABLO%lev_fil
Description: Fill level used for the preconditioner. Only active if diablo%ilu_opt = 'iluk'.Parameter Type: Integer
Range of Acceptable values: [1, large]
Default Value: 1
User Notes:
Using higher fill results in larger ILU factorization time and memory cost but faster linear solver time. Here are some parameters that were found to be efficient:
- Euler flow: 1 or 2 (Dias)
- Laminar: 2 or 3 (Osusky)
- RANS: 3 or 4 (Osusky)
It has also been found that finer grids benefit more from this higher fill, especially for RANS flow. This is most likely due to the migration of the eigenvalues towards the imaginary axis as the mesh is refined, reducing the matrix definiteness. As definiteness decreases, so does the relative size of the initial ILU(p) fill elements, making low fill levels less effective in such cases.DIABLO%app_lev_fil
Description: Fill level for approximate Newton phase. Only active if diablo%ilu_opt = 'iluk'.Parameter Type: Integer
Range of Acceptable values: [1, 5]
Default Value: 1
User Notes:
The linear solver is better-conditioned during startup and generally does not require as high fill as in the inexact Newton phase.
DIABLO%updat_frq
Description: Nonlinear iterations between updates of the preconditioner and time step during the approximate Newton phase.Parameter Type: Integer
Range of Acceptable values: [1,5]
Default Value: 5
User Notes: Preconditioner is updated every iteration during inexact Newton phase
DIABLO%schur_its
Description: Maximum number of approximate Schur iterations.Parameter Type: Integer
Range of Acceptable values: [1, large]
Default Value: 5
DIABLO%schur_tol
Description: Tolerance used by the Schur complement method.Parameter Type: real
Range of Acceptable values: (0,1)
Default Value: 1.d-2
Linear Solver Options
DIABLO%strtup
Description: Startup (approximate Newton phase) parameters for the linear solver.Parameter Type: LinSolvOpts
Default Values:
diablo% strtup% solver = 'fgmrs'
diablo% strtup% matvec = 'apprx'
diablo% strtup% prec = 'schur'
diablo% strtup% krylv_size = 40
diablo% strtup% krylv_max = 40
diablo% strtup% gcrot_k = 1
diablo% strtup% sol_init = .false.
diablo% strtup% rel_lin_tol = 1.d-1
DIABLO%newton
Description: Startup (approximate Newton phase) parameters for the linear solver.Parameter Type: LinSolvOpts
Default Values:
diablo% newton% solver = 'fgmrs'
diablo% newton% matvec = 'frcht'
diablo% newton% prec = 'schur'
diablo% newton% krylv_size = 40
diablo% newton% krylv_max = 40
diablo% newton% gcrot_k = 1
diablo% newton% sol_init = .false.
diablo% newton% rel_lin_tol = 1.d-2
DIABLO%row_norm
Description: Normalize all rows before sending to linear solver? Note that this will replace other row scaling.Parameter Type: Logical
Default Value: .false.
User Notes:
The result of this scaling is that the linear solver will be better conditioned but the nonlinear updates will be less effective. When turning this on, it is best to also reduce diablo%b (since more time steps will need to be taken) and it may also be more efficient to reduce the preconditioner fill level. This has an even greater effect for RANS cases since it completely changes the order of magnitude of the residual; the tolerances to use (especially diablo%drop_tol) should be closer to Euler parameters when using this scaling for RANS.
DIABLO%col_norm
Description: Normalize all columns before sending to linear solver? Note that this will replace other column scaling. If diablo%row_norm is also on, the row normalization will be applied before the column scaling vector is calculated so that only the columns are "truly" normalized.Parameter Type: Logical
Default Value: .false.
User Notes:
Column scaling is normally only applied for RANS equations. It seems to have very little effect for Euler solves.
DIABLO%linsolve_info
Description: Outputs additional info during linear solve.Parameter Type: Logical
Default Value: .true.
Viscous (Laminar/Turbulent)
DIABLO%viscous
Description: This toggles the viscous terms.Parameter Type: Logical
Default Value: .false.
User Notes: Without turning on the diablo%turbulnt or diablo%unsteady flags, this will result in a laminar flow solve. For laminar flow, Reynolds numbers higher than about 1.d3 will be pretty unstable and convergence should not be expected.
DIABLO%viscross
Description: Turns on the cross-derivative terms for the viscous terms.Parameter Type: Logical
Default Value: .false.
User Notes: Reduces cost and accuracy.
DIABLO%visc_true_ave
Description: Determines whether true averaging is used for the viscous termsParameter Type: Logical
Default Value: .true.
DIABLO%constVis
Description: Sutherland's law linearizationParameter Type: Logical
Default Value: .true.
DIABLO%visc_srf_sat
Description: Selects which type of viscous surface SAT to use.Parameter Type: Integer
Range of Acceptable values: [1,5]
Default Value: 1
User Notes:
1 --> Zero temperature gradient
2 --> Zero pressure and density graident
3 --> Isothermal temperature based on freestream
4 --> Modification of case 2
5 --> Alternate formulation of adiabatic condition, where the temperature gradient is enforced through a flux SAT
DIABLO%visc_bnd2
Description: Turns on the second order SAT boundary stencil for the viscous termsParameter Type: Logical
Default Value: .true.
DIABLO%ff_mu_friction
Description: Use farfield viscosity in friction force calculation?Parameter Type: Logical
Default Value: .true.
RANS
See Michal Osusky's thesis for more information on our RANS implementationDIABLO%turbulnt
Description: Turns on RANS. Note that DIABLO% VISCOUS has to be true as well.Parameter Type: Logical
Default Value: .false.
User Notes: Make sure diablo%viscous is also .true.
DIABLO%t_nut_ff
Description: Farfield value of the turbulent variable nu_t.Parameter Type: real
Default Value: 3.d0
DIABLO%sa_jscale
Description: The main effect of turning this on is that a factor of J^-1 is included in the Jacobian in the SA model inside the derivative similar to the mean flow equations in conservative form. Otherwise, the J^-1 factor is still applied after the residual is calculated. However, there are other effects too, since the ordering of operations carried out in the inherent scaling and auto-scaling are effected, generally resulting in poorer performance for diablo%nk_global>0 cases. This also results in slight discrepancy (usually <0.1%) in final CL and CD values.Parameter Type: Logical
Default Value: .false.
User notes:
Recommended value for diablo%nk_global >0 is .false.
Currently (Aug 2013), diablo%nk_global = 0 cases wiil automatically set this value to .true.. The next merge will support both values, and performance seems to not be significantly affected by the value.
DIABLO%trip_type
Description: Transition enforcement for SA turbulence model.Parameter Type: Integer
Default Value: 0
DIABLO%sa_diss
Description: Type of dissipation to use for the SA turbulence modelParameter Type: Integer
Default Value: 0
DIABLO%t_trip1
Description: Turn on the ft1 trip term in the SA model?Parameter Type: Logical
Default Value: .false.
User notes: Requires a special input file called grid.trip. See the appendix of Michal Osusky's thesis for an example.
DIABLO%t_trip2
Description: Turn on the ft2 trip term in the SA model?Parameter Type: Logical
Default Value: .true.
DIABLO%qcr
Description: Turn on QCR correction for RANS flow solvesParameter Type: Logical
Default Value: .false.
DIABLO%d_type
Description: Off-wall distance calculation used in the product/destruction terms of the SA modelParameter Type: Integer
Default Value: 0
0 --> Uses distance to nearest surface node
1 --> Uses normal distance to the surface
2 --> More accurate (but more expensive) version of 1
See MO's DPW5 paper to see the effects.
DIABLO%t_output
Description: Output turbulent data? This will produce an additional results.tinfo file that contains additional turbulent data, such as trimming locations.Parameter Type: Logical
Default Value: .false.
Unsteady
DIABLO%unsteady
Description: This flag toggles unsteady (time-accurate) flow solves.Parameter Type: Logical
Default Value: .false.
Obsolete
DIABLO%gmres_its_min
DIABLO%nk_pfrz
DIABLO%nk_its_min
DIABLO%col_scale