August+2012+Merge+Notes

Click here to return to top level Jetstream Merge Notes page.

__Changes to Jetstream input parameters__
Effective this merge, several input parameters will be changing. A new derived type was introduced for the solver to remove explicit dependence on Diablo parameters and to give more flexibility of the solvers from the input file. Original comments of JE Hicken in pKISlib states that "This module is designed to be as independent as possible from the flow solver and optimizer", and so these changes are considered to reflect the author's original intentions. The set of parameters are applied to both the startup (approximate Newton) and Newton (Inexact Newton) phase, so some parameters are now phase dependent that previously were not. Also note that the default values have not changed. Here is a list of changes that were made: Note that the 'solver' option is new; it was previously not possible to select the solver from the input file. The option 'fgmrs' is consistent with previous implementation of PTC (diablo% nk_global = 1). The default for parameter continuation (diablo% nk_global = 2, 3, or 4), however, used the GCROT/FGMRES solver, so if you were running said cases, you will have to add "diablo% strtup% solver = 'gcrot'" and "diablo% newton% solver = 'gcrot'" to your input files if you want the results to be consistent.
 * Old Value || New value (startup) || New value (Newton) || Default value ||
 * diablo% krylv_size || diablo% strtup% krylv_size || diablo% newton% krylv_size || 40 ||
 * diablo% krylv_max || diablo% strtup% krylv_max || diablo% newton% krylv_max || 40 ||
 * diablo% gcrot_k || diablo% strtup% gcrot_k || diablo% newton% gcrot_k || 1 ||
 * diablo% strtup_prec || diablo% strtup% prec ||= --- || 'schur' ||
 * diablo% newton_prec ||= --- || diablo% newton% prec || 'schur' ||
 * diablo% strtup_matv || diablo% strtup% matvec ||= --- || 'apprx' ||
 * diablo%newton_matv ||= --- || diablo% newton% matvec || 'frcht' ||
 * diablo% strtup_tol || diablo% strtup% rel_lin_tol ||= --- || 1.d-1 ||
 * diablo% newton_tol ||= --- || diablo% newton% rel_lin_tol || 1.d-2 ||
 * = --- || diablo% strtup% solver || diablo% newton% solver || 'fgmrs' ||

__Expected changes in results files__
-The order of the calculations was altered for the inherent-scaling and auto-scaling, resulting in different rounding error in the residual of __turbulent__ flow solves. -The displayed residual in DBC "vanilla" now represents what the authors of this code call the "perturbed" residual rather than the Euler/NS/RANS residual, as it was previously. Also, it is normalized by an appropriate scaling of lambda. This does not affect the performance in any way, it only changes what is displayed in the .his file. -Some pretty titles have been added to the .his file. -Print statements that were previously written to a terminal screen are now written to a file with extension .scr -Cleaned up debugging print statements written to .scr - e.g. 'syncWrite' print statements used to track progress of code execution thru subroutines. These print statements can be turned on again by setting the input parameter JTSTRM%VERBOSE = .true.

__Changes to common subroutines__
-Writing to the .his file was moved from the residual calculation to a new routine in IO_Mod so that we are not forced to write to the file every time we calculate the residual.

__New features__
-Turbulent scaling subroutines have been modified to include an option to remove scaling. This way, changes made to the turbulent scaling are automatically accounted for in the removal as well. -There an option to unscale the preconditioner, in case you want to apply new scaling to the preconditioner without recalculating it. -Frechet matvecs is now generalized to all systems of the form Ax=b, where A does not need to be the Jacobian of b. This feature is currently only supported when using convex homotopy method, but can easily be generalized if someone else has use for this. -GCROT and FGMRES routines now have the option to benefit from an initial guess for the cost of one extra matvec. -New flags introduced to track whether turbulent scaling has been performed, to reduce the chance of double-scaling, or applying scaling in the wrong order. -There is a new feature to calculate the error at globalization as a post-processing step, available to all globalization methods. -Multipoint optimization capability has been implemented by Tom Reist. Additional operating conditions to be used in the calculation of a composite objective function may be added in the OPPTS namelist in the input parameter file. See Jetstream Test Suite case 031 for an example of an input parameter file.