1*b7c563b6SJeremy L Thompson #ifndef libceed_petsc_examples_bps_problem_data_h 2*b7c563b6SJeremy L Thompson #define libceed_petsc_examples_bps_problem_data_h 3e83e87a5Sjeremylt 4e83e87a5Sjeremylt #include <ceed.h> 5e83e87a5Sjeremylt #include <petsc.h> 6e83e87a5Sjeremylt #include "../include/bcfunctions.h" 7e83e87a5Sjeremylt #include "../include/structs.h" 8e83e87a5Sjeremylt #include "../qfunctions/bps/bp1.h" 9e83e87a5Sjeremylt #include "../qfunctions/bps/bp2.h" 10e83e87a5Sjeremylt #include "../qfunctions/bps/bp3.h" 11e83e87a5Sjeremylt #include "../qfunctions/bps/bp4.h" 12e83e87a5Sjeremylt #include "../qfunctions/bps/common.h" 13e83e87a5Sjeremylt 14e83e87a5Sjeremylt // ----------------------------------------------------------------------------- 15e83e87a5Sjeremylt // BP Option Data 16e83e87a5Sjeremylt // ----------------------------------------------------------------------------- 17e83e87a5Sjeremylt 18e83e87a5Sjeremylt // BP options 19e83e87a5Sjeremylt typedef enum { 20e83e87a5Sjeremylt CEED_BP1 = 0, CEED_BP2 = 1, CEED_BP3 = 2, 21e83e87a5Sjeremylt CEED_BP4 = 3, CEED_BP5 = 4, CEED_BP6 = 5 229b072555Sjeremylt } BPType; 23e83e87a5Sjeremylt 249b072555Sjeremylt BPData bp_options[6] = { 25e83e87a5Sjeremylt [CEED_BP1] = { 269b072555Sjeremylt .num_comp_u = 1, 279b072555Sjeremylt .num_comp_x = 3, 289b072555Sjeremylt .topo_dim = 3, 299b072555Sjeremylt .q_data_size = 1, 309b072555Sjeremylt .q_extra = 1, 319b072555Sjeremylt .setup_geo = SetupMassGeo, 329b072555Sjeremylt .setup_rhs = SetupMassRhs, 33e83e87a5Sjeremylt .apply = Mass, 34e83e87a5Sjeremylt .error = Error, 359b072555Sjeremylt .setup_geo_loc = SetupMassGeo_loc, 369b072555Sjeremylt .setup_rhs_loc = SetupMassRhs_loc, 379b072555Sjeremylt .apply_loc = Mass_loc, 389b072555Sjeremylt .error_loc = Error_loc, 399b072555Sjeremylt .in_mode = CEED_EVAL_INTERP, 409b072555Sjeremylt .out_mode = CEED_EVAL_INTERP, 419b072555Sjeremylt .q_mode = CEED_GAUSS, 429b072555Sjeremylt .enforce_bc = PETSC_FALSE, 439b072555Sjeremylt .bc_func = BCsMass 44e83e87a5Sjeremylt }, 45e83e87a5Sjeremylt [CEED_BP2] = { 469b072555Sjeremylt .num_comp_u = 3, 479b072555Sjeremylt .num_comp_x = 3, 489b072555Sjeremylt .topo_dim = 3, 499b072555Sjeremylt .q_data_size = 1, 509b072555Sjeremylt .q_extra = 1, 519b072555Sjeremylt .setup_geo = SetupMassGeo, 529b072555Sjeremylt .setup_rhs = SetupMassRhs3, 53e83e87a5Sjeremylt .apply = Mass3, 54e83e87a5Sjeremylt .error = Error3, 559b072555Sjeremylt .setup_geo_loc = SetupMassGeo_loc, 569b072555Sjeremylt .setup_rhs_loc = SetupMassRhs3_loc, 579b072555Sjeremylt .apply_loc = Mass3_loc, 589b072555Sjeremylt .error_loc = Error3_loc, 599b072555Sjeremylt .in_mode = CEED_EVAL_INTERP, 609b072555Sjeremylt .out_mode = CEED_EVAL_INTERP, 619b072555Sjeremylt .q_mode = CEED_GAUSS, 629b072555Sjeremylt .enforce_bc = PETSC_FALSE, 639b072555Sjeremylt .bc_func = BCsMass 64e83e87a5Sjeremylt }, 65e83e87a5Sjeremylt [CEED_BP3] = { 669b072555Sjeremylt .num_comp_u = 1, 679b072555Sjeremylt .num_comp_x = 3, 689b072555Sjeremylt .topo_dim = 3, 699b072555Sjeremylt .q_data_size = 7, 709b072555Sjeremylt .q_extra = 1, 719b072555Sjeremylt .setup_geo = SetupDiffGeo, 729b072555Sjeremylt .setup_rhs = SetupDiffRhs, 73e83e87a5Sjeremylt .apply = Diff, 74e83e87a5Sjeremylt .error = Error, 759b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 769b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs_loc, 779b072555Sjeremylt .apply_loc = Diff_loc, 789b072555Sjeremylt .error_loc = Error_loc, 799b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 809b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 819b072555Sjeremylt .q_mode = CEED_GAUSS, 829b072555Sjeremylt .enforce_bc = PETSC_TRUE, 839b072555Sjeremylt .bc_func = BCsDiff 84e83e87a5Sjeremylt }, 85e83e87a5Sjeremylt [CEED_BP4] = { 869b072555Sjeremylt .num_comp_u = 3, 879b072555Sjeremylt .num_comp_x = 3, 889b072555Sjeremylt .topo_dim = 3, 899b072555Sjeremylt .q_data_size = 7, 909b072555Sjeremylt .q_extra = 1, 919b072555Sjeremylt .setup_geo = SetupDiffGeo, 929b072555Sjeremylt .setup_rhs = SetupDiffRhs3, 93e83e87a5Sjeremylt .apply = Diff3, 94e83e87a5Sjeremylt .error = Error3, 959b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 969b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs3_loc, 979b072555Sjeremylt .apply_loc = Diff3_loc, 989b072555Sjeremylt .error_loc = Error3_loc, 999b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 1009b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 1019b072555Sjeremylt .q_mode = CEED_GAUSS, 1029b072555Sjeremylt .enforce_bc = PETSC_TRUE, 1039b072555Sjeremylt .bc_func = BCsDiff 104e83e87a5Sjeremylt }, 105e83e87a5Sjeremylt [CEED_BP5] = { 1069b072555Sjeremylt .num_comp_u = 1, 1079b072555Sjeremylt .num_comp_x = 3, 1089b072555Sjeremylt .topo_dim = 3, 1099b072555Sjeremylt .q_data_size = 7, 1109b072555Sjeremylt .q_extra = 0, 1119b072555Sjeremylt .setup_geo = SetupDiffGeo, 1129b072555Sjeremylt .setup_rhs = SetupDiffRhs, 113e83e87a5Sjeremylt .apply = Diff, 114e83e87a5Sjeremylt .error = Error, 1159b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 1169b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs_loc, 1179b072555Sjeremylt .apply_loc = Diff_loc, 1189b072555Sjeremylt .error_loc = Error_loc, 1199b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 1209b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 1219b072555Sjeremylt .q_mode = CEED_GAUSS_LOBATTO, 1229b072555Sjeremylt .enforce_bc = PETSC_TRUE, 1239b072555Sjeremylt .bc_func = BCsDiff 124e83e87a5Sjeremylt }, 125e83e87a5Sjeremylt [CEED_BP6] = { 1269b072555Sjeremylt .num_comp_u = 3, 1279b072555Sjeremylt .num_comp_x = 3, 1289b072555Sjeremylt .topo_dim = 3, 1299b072555Sjeremylt .q_data_size = 7, 1309b072555Sjeremylt .q_extra = 0, 1319b072555Sjeremylt .setup_geo = SetupDiffGeo, 1329b072555Sjeremylt .setup_rhs = SetupDiffRhs3, 133e83e87a5Sjeremylt .apply = Diff3, 134e83e87a5Sjeremylt .error = Error3, 1359b072555Sjeremylt .setup_geo_loc = SetupDiffGeo_loc, 1369b072555Sjeremylt .setup_rhs_loc = SetupDiffRhs3_loc, 1379b072555Sjeremylt .apply_loc = Diff3_loc, 1389b072555Sjeremylt .error_loc = Error3_loc, 1399b072555Sjeremylt .in_mode = CEED_EVAL_GRAD, 1409b072555Sjeremylt .out_mode = CEED_EVAL_GRAD, 1419b072555Sjeremylt .q_mode = CEED_GAUSS_LOBATTO, 1429b072555Sjeremylt .enforce_bc = PETSC_TRUE, 1439b072555Sjeremylt .bc_func = BCsDiff 144e83e87a5Sjeremylt } 145e83e87a5Sjeremylt }; 146e83e87a5Sjeremylt 147*b7c563b6SJeremy L Thompson #endif // libceed_petsc_examples_bps_problem_data_h 148