1 // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3 // 4 // SPDX-License-Identifier: BSD-2-Clause 5 // 6 // This file is part of CEED: http://github.com/ceed 7 8 /// @file 9 /// Problem data for BPs 10 11 #ifndef libceed_petsc_examples_bps_problem_data_h 12 #define libceed_petsc_examples_bps_problem_data_h 13 14 #include <ceed.h> 15 #include <petsc.h> 16 17 #include "../include/structs.h" 18 #include "../qfunctions/bps/bp1.h" 19 #include "../qfunctions/bps/bp2.h" 20 #include "../qfunctions/bps/bp3.h" 21 #include "../qfunctions/bps/bp4.h" 22 #include "../qfunctions/bps/common.h" 23 24 // ----------------------------------------------------------------------------- 25 // BP Option Data 26 // ----------------------------------------------------------------------------- 27 28 BPData bp_options[6] = { 29 [CEED_BP1] = {.num_comp_u = 1, 30 .num_comp_x = 3, 31 .topo_dim = 3, 32 .q_data_size = 1, 33 .q_extra = 1, 34 .setup_geo = SetupMassGeo, 35 .setup_rhs = SetupMassRhs, 36 .apply = Mass, 37 .error = Error, 38 .setup_geo_loc = SetupMassGeo_loc, 39 .setup_rhs_loc = SetupMassRhs_loc, 40 .apply_loc = Mass_loc, 41 .error_loc = Error_loc, 42 .in_mode = CEED_EVAL_INTERP, 43 .out_mode = CEED_EVAL_INTERP, 44 .q_mode = CEED_GAUSS, 45 .enforce_bc = PETSC_FALSE}, 46 [CEED_BP2] = {.num_comp_u = 3, 47 .num_comp_x = 3, 48 .topo_dim = 3, 49 .q_data_size = 1, 50 .q_extra = 1, 51 .setup_geo = SetupMassGeo, 52 .setup_rhs = SetupMassRhs3, 53 .apply = Mass3, 54 .error = Error3, 55 .setup_geo_loc = SetupMassGeo_loc, 56 .setup_rhs_loc = SetupMassRhs3_loc, 57 .apply_loc = Mass3_loc, 58 .error_loc = Error3_loc, 59 .in_mode = CEED_EVAL_INTERP, 60 .out_mode = CEED_EVAL_INTERP, 61 .q_mode = CEED_GAUSS, 62 .enforce_bc = PETSC_FALSE}, 63 [CEED_BP3] = {.num_comp_u = 1, 64 .num_comp_x = 3, 65 .topo_dim = 3, 66 .q_data_size = 7, 67 .q_extra = 1, 68 .setup_geo = SetupDiffGeo, 69 .setup_rhs = SetupDiffRhs, 70 .apply = Diff, 71 .error = Error, 72 .setup_geo_loc = SetupDiffGeo_loc, 73 .setup_rhs_loc = SetupDiffRhs_loc, 74 .apply_loc = Diff_loc, 75 .error_loc = Error_loc, 76 .in_mode = CEED_EVAL_GRAD, 77 .out_mode = CEED_EVAL_GRAD, 78 .q_mode = CEED_GAUSS, 79 .enforce_bc = PETSC_TRUE }, 80 [CEED_BP4] = {.num_comp_u = 3, 81 .num_comp_x = 3, 82 .topo_dim = 3, 83 .q_data_size = 7, 84 .q_extra = 1, 85 .setup_geo = SetupDiffGeo, 86 .setup_rhs = SetupDiffRhs3, 87 .apply = Diff3, 88 .error = Error3, 89 .setup_geo_loc = SetupDiffGeo_loc, 90 .setup_rhs_loc = SetupDiffRhs3_loc, 91 .apply_loc = Diff3_loc, 92 .error_loc = Error3_loc, 93 .in_mode = CEED_EVAL_GRAD, 94 .out_mode = CEED_EVAL_GRAD, 95 .q_mode = CEED_GAUSS, 96 .enforce_bc = PETSC_TRUE }, 97 [CEED_BP5] = {.num_comp_u = 1, 98 .num_comp_x = 3, 99 .topo_dim = 3, 100 .q_data_size = 7, 101 .q_extra = 0, 102 .setup_geo = SetupDiffGeo, 103 .setup_rhs = SetupDiffRhs, 104 .apply = Diff, 105 .error = Error, 106 .setup_geo_loc = SetupDiffGeo_loc, 107 .setup_rhs_loc = SetupDiffRhs_loc, 108 .apply_loc = Diff_loc, 109 .error_loc = Error_loc, 110 .in_mode = CEED_EVAL_GRAD, 111 .out_mode = CEED_EVAL_GRAD, 112 .q_mode = CEED_GAUSS_LOBATTO, 113 .enforce_bc = PETSC_TRUE }, 114 [CEED_BP6] = {.num_comp_u = 3, 115 .num_comp_x = 3, 116 .topo_dim = 3, 117 .q_data_size = 7, 118 .q_extra = 0, 119 .setup_geo = SetupDiffGeo, 120 .setup_rhs = SetupDiffRhs3, 121 .apply = Diff3, 122 .error = Error3, 123 .setup_geo_loc = SetupDiffGeo_loc, 124 .setup_rhs_loc = SetupDiffRhs3_loc, 125 .apply_loc = Diff3_loc, 126 .error_loc = Error3_loc, 127 .in_mode = CEED_EVAL_GRAD, 128 .out_mode = CEED_EVAL_GRAD, 129 .q_mode = CEED_GAUSS_LOBATTO, 130 .enforce_bc = PETSC_TRUE } 131 }; 132 133 #endif // libceed_petsc_examples_bps_problem_data_h 134