xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision 51d50b591dd93a8ae376a17a79659a99c85c5407)
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