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