1ec9796c4SHansol Suh static char help[] = "This example demonstrates the use of different performance portable backends in user-defined callbacks in Tao.\n"; 2ec9796c4SHansol Suh 3ec9796c4SHansol Suh #include "rosenbrock4.h" 4ec9796c4SHansol Suh main(int argc,char ** argv)5ec9796c4SHansol Suhint main(int argc, char **argv) 6ec9796c4SHansol Suh { 7ec9796c4SHansol Suh PetscFunctionBeginUser; 8c8025a54SPierre Jolivet PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 9ec9796c4SHansol Suh PetscCall(RosenbrockMain()); 10ec9796c4SHansol Suh PetscCall(PetscFinalize()); 11ec9796c4SHansol Suh return 0; 12ec9796c4SHansol Suh } 13ec9796c4SHansol Suh 14ec9796c4SHansol Suh /*TEST 15ec9796c4SHansol Suh 16ec9796c4SHansol Suh build: 17ec9796c4SHansol Suh requires: !complex !__float128 !single !defined(PETSC_USE_64BIT_INDICES) 18ec9796c4SHansol Suh 19ec9796c4SHansol Suh test: 20ec9796c4SHansol Suh suffix: 1 21ec9796c4SHansol Suh nsize: {{1 2 3}} 22ec9796c4SHansol Suh args: -tao_monitor_short -tao_type nls -tao_gatol 1.e-4 23ec9796c4SHansol Suh output_file: output/rosenbrock1_1.out 24ec9796c4SHansol Suh 25ec9796c4SHansol Suh test: 26ec9796c4SHansol Suh suffix: 2 27ec9796c4SHansol Suh args: -tao_monitor_short -tao_type lmvm -tao_gatol 1.e-3 28ec9796c4SHansol Suh output_file: output/rosenbrock1_2.out 29ec9796c4SHansol Suh 30ec9796c4SHansol Suh test: 31ec9796c4SHansol Suh suffix: 3 32ec9796c4SHansol Suh args: -tao_monitor_short -tao_type ntr -tao_gatol 1.e-4 33ec9796c4SHansol Suh output_file: output/rosenbrock1_3.out 34ec9796c4SHansol Suh 35ec9796c4SHansol Suh test: 36ec9796c4SHansol Suh suffix: 4 37ec9796c4SHansol Suh args: -tao_monitor_short -tao_type ntr -tao_mf_hessian -tao_ntr_pc_type none -tao_gatol 1.e-4 38ec9796c4SHansol Suh output_file: output/rosenbrock1_4.out 39ec9796c4SHansol Suh 40ec9796c4SHansol Suh test: 41ec9796c4SHansol Suh suffix: 5 42ec9796c4SHansol Suh args: -tao_monitor_short -tao_type bntr -tao_gatol 1.e-4 43ec9796c4SHansol Suh output_file: output/rosenbrock1_5.out 44ec9796c4SHansol Suh 45ec9796c4SHansol Suh test: 46ec9796c4SHansol Suh suffix: 6 47ec9796c4SHansol Suh args: -tao_monitor_short -tao_type bntl -tao_gatol 1.e-4 48ec9796c4SHansol Suh output_file: output/rosenbrock1_6.out 49ec9796c4SHansol Suh 50ec9796c4SHansol Suh test: 51ec9796c4SHansol Suh suffix: 7 52ec9796c4SHansol Suh args: -tao_monitor_short -tao_type bnls -tao_gatol 1.e-4 53ec9796c4SHansol Suh output_file: output/rosenbrock1_7.out 54ec9796c4SHansol Suh 55ec9796c4SHansol Suh test: 56ec9796c4SHansol Suh suffix: 8 57*a336c150SZach Atkins args: -tao_monitor_short -tao_type bntr -tao_bnk_max_cg_its 3 -tao_gatol 1.e-4 -tao_bnk_cg_tao_monitor_short 58ec9796c4SHansol Suh output_file: output/rosenbrock1_8.out 59ec9796c4SHansol Suh 60ec9796c4SHansol Suh test: 61ec9796c4SHansol Suh suffix: 9 62*a336c150SZach Atkins args: -tao_monitor_short -tao_type bntl -tao_bnk_max_cg_its 3 -tao_gatol 1.e-4 -tao_bnk_cg_tao_monitor_short 63ec9796c4SHansol Suh output_file: output/rosenbrock1_9.out 64ec9796c4SHansol Suh 65ec9796c4SHansol Suh test: 66ec9796c4SHansol Suh suffix: 10 67*a336c150SZach Atkins args: -tao_monitor_short -tao_type bnls -tao_bnk_max_cg_its 3 -tao_gatol 1.e-4 -tao_bnk_cg_tao_monitor_short 68ec9796c4SHansol Suh output_file: output/rosenbrock1_10.out 69ec9796c4SHansol Suh 70ec9796c4SHansol Suh test: 71ec9796c4SHansol Suh suffix: 11 72ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmbroyden 73ec9796c4SHansol Suh output_file: output/rosenbrock1_11.out 74ec9796c4SHansol Suh 75ec9796c4SHansol Suh test: 76ec9796c4SHansol Suh suffix: 12 77ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmbadbroyden 78ec9796c4SHansol Suh output_file: output/rosenbrock1_12.out 79ec9796c4SHansol Suh 80ec9796c4SHansol Suh test: 81ec9796c4SHansol Suh suffix: 13 82ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmsymbroyden 83ec9796c4SHansol Suh output_file: output/rosenbrock1_13.out 84ec9796c4SHansol Suh 85ec9796c4SHansol Suh test: 86ec9796c4SHansol Suh suffix: 14 87ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmbfgs 88ec9796c4SHansol Suh output_file: output/rosenbrock1_14.out 89ec9796c4SHansol Suh 90ec9796c4SHansol Suh test: 91ec9796c4SHansol Suh suffix: 15 92ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmdfp 93ec9796c4SHansol Suh output_file: output/rosenbrock1_15.out 94ec9796c4SHansol Suh 95ec9796c4SHansol Suh test: 96ec9796c4SHansol Suh suffix: 16 97ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmsr1 98ec9796c4SHansol Suh output_file: output/rosenbrock1_16.out 99ec9796c4SHansol Suh 100ec9796c4SHansol Suh test: 101ec9796c4SHansol Suh suffix: 17 102ec9796c4SHansol Suh args: -tao_monitor_short -tao_gatol 1e-4 -tao_type bqnls 103ec9796c4SHansol Suh output_file: output/rosenbrock1_17.out 104ec9796c4SHansol Suh 105ec9796c4SHansol Suh test: 106ec9796c4SHansol Suh suffix: 18 107ec9796c4SHansol Suh args: -tao_monitor_short -tao_gatol 1e-4 -tao_type blmvm 108ec9796c4SHansol Suh output_file: output/rosenbrock1_18.out 109ec9796c4SHansol Suh 110ec9796c4SHansol Suh test: 111ec9796c4SHansol Suh suffix: 19 112ec9796c4SHansol Suh args: -tao_monitor_short -tao_gatol 1e-4 -tao_type bqnktr -tao_bqnk_mat_type lmvmsr1 113ec9796c4SHansol Suh output_file: output/rosenbrock1_19.out 114ec9796c4SHansol Suh 115ec9796c4SHansol Suh test: 116ec9796c4SHansol Suh suffix: 20 117ec9796c4SHansol Suh args: -tao_monitor -tao_gatol 1e-4 -tao_type blmvm -tao_ls_monitor 118ec9796c4SHansol Suh output_file: output/rosenbrock1_20.out 119ec9796c4SHansol Suh 120ec9796c4SHansol Suh test: 121ec9796c4SHansol Suh suffix: 21 122ec9796c4SHansol Suh args: -test_lmvm -tao_type bqnktr -tao_max_it 10 -tao_bqnk_mat_type lmvmsymbadbroyden 123ec9796c4SHansol Suh output_file: output/rosenbrock1_21.out 124ec9796c4SHansol Suh 125ec9796c4SHansol Suh test: 126ec9796c4SHansol Suh suffix: 22 127ec9796c4SHansol Suh args: -tao_max_it 1 -tao_converged_reason 128ec9796c4SHansol Suh output_file: output/rosenbrock1_22.out 129ec9796c4SHansol Suh 130ec9796c4SHansol Suh test: 131ec9796c4SHansol Suh suffix: 23 132ec9796c4SHansol Suh args: -tao_max_funcs 0 -tao_converged_reason 133ec9796c4SHansol Suh output_file: output/rosenbrock1_23.out 134ec9796c4SHansol Suh 135ec9796c4SHansol Suh test: 136ec9796c4SHansol Suh suffix: 24 137ec9796c4SHansol Suh args: -tao_gatol 10 -tao_converged_reason 138ec9796c4SHansol Suh output_file: output/rosenbrock1_24.out 139ec9796c4SHansol Suh 140ec9796c4SHansol Suh test: 141ec9796c4SHansol Suh suffix: 25 142ec9796c4SHansol Suh args: -tao_grtol 10 -tao_converged_reason 143ec9796c4SHansol Suh output_file: output/rosenbrock1_25.out 144ec9796c4SHansol Suh 145ec9796c4SHansol Suh test: 146ec9796c4SHansol Suh suffix: 26 147ec9796c4SHansol Suh args: -tao_gttol 10 -tao_converged_reason 148ec9796c4SHansol Suh output_file: output/rosenbrock1_26.out 149ec9796c4SHansol Suh 150ec9796c4SHansol Suh test: 151ec9796c4SHansol Suh suffix: 27 152ec9796c4SHansol Suh args: -tao_steptol 10 -tao_converged_reason 153ec9796c4SHansol Suh output_file: output/rosenbrock1_27.out 154ec9796c4SHansol Suh 155ec9796c4SHansol Suh test: 156ec9796c4SHansol Suh suffix: 28 157ec9796c4SHansol Suh args: -tao_fmin 10 -tao_converged_reason 158ec9796c4SHansol Suh output_file: output/rosenbrock1_28.out 159ec9796c4SHansol Suh 160ec9796c4SHansol Suh test: 161ec9796c4SHansol Suh suffix: test_dbfgs 162ec9796c4SHansol Suh nsize: {{1 2 3}} 163ec9796c4SHansol Suh output_file: output/rosenbrock1_14.out 1647833cfa3SHansol Suh args: -n 10 -tao_type bqnktr -test_lmvm -tao_max_it 10 -tao_bqnk_mat_type lmvmdbfgs -tao_bqnk_mat_lmvm_scale_type none -tao_bqnk_mat_lbfgs_type {{inplace reorder}} -tao_bqnk_mat_lbfgs_recursive {{0 1}} 165ec9796c4SHansol Suh 166ec9796c4SHansol Suh test: 167ec9796c4SHansol Suh suffix: test_ddfp 168ec9796c4SHansol Suh nsize: {{1 2 3}} 169ec9796c4SHansol Suh output_file: output/rosenbrock1_14.out 1707833cfa3SHansol Suh args: -n 10 -tao_type bqnktr -test_lmvm -tao_max_it 10 -tao_bqnk_mat_type lmvmddfp -tao_bqnk_mat_lmvm_scale_type none -tao_bqnk_mat_ldfp_type {{inplace reorder}} -tao_bqnk_mat_ldfp_recursive {{0 1}} 171ec9796c4SHansol Suh 172ec9796c4SHansol Suh test: 173ec9796c4SHansol Suh suffix: test_dqn_1 174ec9796c4SHansol Suh nsize: 1 175ec9796c4SHansol Suh output_file: output/rosenbrock1_29.out 176ec9796c4SHansol Suh args: -n 10 -tao_type bqnktr -test_lmvm -tao_max_it 10 -tao_bqnk_mat_type lmvmdqn -tao_bqnk_mat_lmvm_scale_type none -tao_bqnk_mat_lqn_type {{inplace reorder}} 177ec9796c4SHansol Suh 178ec9796c4SHansol Suh test: 179ec9796c4SHansol Suh suffix: test_dqn_2 180ec9796c4SHansol Suh nsize: 2 181ec9796c4SHansol Suh output_file: output/rosenbrock1_30.out 182ec9796c4SHansol Suh args: -n 10 -tao_type bqnktr -test_lmvm -tao_max_it 10 -tao_bqnk_mat_type lmvmdqn -tao_bqnk_mat_lmvm_scale_type none -tao_bqnk_mat_lqn_type {{inplace reorder}} 183ec9796c4SHansol Suh 184ec9796c4SHansol Suh test: 185ec9796c4SHansol Suh suffix: test_dqn_3 186ec9796c4SHansol Suh nsize: 3 187ec9796c4SHansol Suh output_file: output/rosenbrock1_31.out 188ec9796c4SHansol Suh args: -n 10 -tao_type bqnktr -test_lmvm -tao_max_it 10 -tao_bqnk_mat_type lmvmdqn -tao_bqnk_mat_lmvm_scale_type none -tao_bqnk_mat_lqn_type {{inplace reorder}} 189ec9796c4SHansol Suh 190ec9796c4SHansol Suh test: 191ec9796c4SHansol Suh suffix: test_dqn_diag 192ec9796c4SHansol Suh output_file: output/rosenbrock1_32.out 193ec9796c4SHansol Suh args: -n 10 -tao_type bqnktr -test_lmvm -tao_max_it 10 -tao_bqnk_mat_type lmvmdqn -tao_bqnk_mat_lmvm_scale_type diagonal -tao_bqnk_mat_lqn_type {{inplace reorder}} 194ec9796c4SHansol Suh 195ec9796c4SHansol Suh # test with a large update rejection tolerance to test that portion of code 196ec9796c4SHansol Suh test: 197ec9796c4SHansol Suh suffix: bfgs_rejects 198ec9796c4SHansol Suh output_file: output/rosenbrock4_bfgs_rejects.out 19909fb3ddcSToby Isaac args: -tao_monitor_short -tao_gatol 1e-4 -tao_type blmvm -tao_view -n 10 -bs 10 -alpha 8.0 -tao_blmvm_mat_lmvm_eps 1.2 -tao_blmvm_mat_type lmvmbfgs -tao_blmvm_mat_lmvm_scale_type scalar -tao_blmvm_mat_lmvm_mult_algorithm {{recursive dense}} 200ec9796c4SHansol Suh 201ec9796c4SHansol Suh test: 202ec9796c4SHansol Suh suffix: dbfgs_rejects 203ec9796c4SHansol Suh output_file: output/rosenbrock4_dbfgs_rejects.out 204ec9796c4SHansol Suh args: -tao_monitor_short -tao_gatol 1e-4 -tao_type blmvm -tao_view -n 10 -bs 10 -alpha 8.0 -tao_blmvm_mat_lmvm_eps 0.01 -tao_blmvm_mat_type lmvmdbfgs -tao_blmvm_mat_lmvm_scale_type scalar 205ec9796c4SHansol Suh 206ec9796c4SHansol Suh TEST*/ 207