xref: /libCEED/examples/petsc/include/bpsproblemdata.h (revision 9ba83ac0e4b1fca39d6fa6737a318a9f0cbc172d)
1*9ba83ac0SJeremy L Thompson // Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors.
298285ab4SZach Atkins // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
398285ab4SZach Atkins //
498285ab4SZach Atkins // SPDX-License-Identifier: BSD-2-Clause
598285ab4SZach Atkins //
698285ab4SZach Atkins // This file is part of CEED:  http://github.com/ceed
798285ab4SZach Atkins 
898285ab4SZach Atkins /// @file
998285ab4SZach Atkins /// Problem data for BPs
1024a65d3dSJeremy L Thompson #pragma once
11e83e87a5Sjeremylt 
12e83e87a5Sjeremylt #include <ceed.h>
13e83e87a5Sjeremylt #include <petsc.h>
142b730f8bSJeremy L Thompson 
15e83e87a5Sjeremylt #include "../include/structs.h"
16e83e87a5Sjeremylt #include "../qfunctions/bps/bp1.h"
173c11f1fcSJeremy L Thompson #include "../qfunctions/bps/bp13.h"
18e83e87a5Sjeremylt #include "../qfunctions/bps/bp2.h"
193c11f1fcSJeremy L Thompson #include "../qfunctions/bps/bp24.h"
20e83e87a5Sjeremylt #include "../qfunctions/bps/bp3.h"
21e83e87a5Sjeremylt #include "../qfunctions/bps/bp4.h"
22e83e87a5Sjeremylt #include "../qfunctions/bps/common.h"
23e83e87a5Sjeremylt 
24e83e87a5Sjeremylt // -----------------------------------------------------------------------------
25e83e87a5Sjeremylt // BP Option Data
26e83e87a5Sjeremylt // -----------------------------------------------------------------------------
27e83e87a5Sjeremylt 
28725737e8SJeremy L Thompson BPData bp_options[10] = {
292b730f8bSJeremy L Thompson     [CEED_BP1]  = {.num_comp_u    = 1,
309b072555Sjeremylt                    .num_comp_x    = 3,
319b072555Sjeremylt                    .topo_dim      = 3,
329b072555Sjeremylt                    .q_data_size   = 1,
339b072555Sjeremylt                    .q_extra       = 1,
349b072555Sjeremylt                    .setup_geo     = SetupMassGeo,
359b072555Sjeremylt                    .setup_rhs     = SetupMassRhs,
36e83e87a5Sjeremylt                    .apply         = Mass,
37e83e87a5Sjeremylt                    .error         = Error,
389b072555Sjeremylt                    .setup_geo_loc = SetupMassGeo_loc,
399b072555Sjeremylt                    .setup_rhs_loc = SetupMassRhs_loc,
409b072555Sjeremylt                    .apply_loc     = Mass_loc,
419b072555Sjeremylt                    .error_loc     = Error_loc,
429b072555Sjeremylt                    .in_mode       = CEED_EVAL_INTERP,
439b072555Sjeremylt                    .out_mode      = CEED_EVAL_INTERP,
449b072555Sjeremylt                    .q_mode        = CEED_GAUSS,
452b730f8bSJeremy L Thompson                    .enforce_bc    = PETSC_FALSE},
462b730f8bSJeremy L Thompson     [CEED_BP2]  = {.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,
622b730f8bSJeremy L Thompson                    .enforce_bc    = PETSC_FALSE},
632b730f8bSJeremy L Thompson     [CEED_BP3]  = {.num_comp_u    = 1,
649b072555Sjeremylt                    .num_comp_x    = 3,
659b072555Sjeremylt                    .topo_dim      = 3,
669b072555Sjeremylt                    .q_data_size   = 7,
679b072555Sjeremylt                    .q_extra       = 1,
689b072555Sjeremylt                    .setup_geo     = SetupDiffGeo,
699b072555Sjeremylt                    .setup_rhs     = SetupDiffRhs,
70e83e87a5Sjeremylt                    .apply         = Diff,
71e83e87a5Sjeremylt                    .error         = Error,
729b072555Sjeremylt                    .setup_geo_loc = SetupDiffGeo_loc,
739b072555Sjeremylt                    .setup_rhs_loc = SetupDiffRhs_loc,
749b072555Sjeremylt                    .apply_loc     = Diff_loc,
759b072555Sjeremylt                    .error_loc     = Error_loc,
769b072555Sjeremylt                    .in_mode       = CEED_EVAL_GRAD,
779b072555Sjeremylt                    .out_mode      = CEED_EVAL_GRAD,
789b072555Sjeremylt                    .q_mode        = CEED_GAUSS,
792b730f8bSJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
802b730f8bSJeremy L Thompson     [CEED_BP4]  = {.num_comp_u    = 3,
819b072555Sjeremylt                    .num_comp_x    = 3,
829b072555Sjeremylt                    .topo_dim      = 3,
839b072555Sjeremylt                    .q_data_size   = 7,
849b072555Sjeremylt                    .q_extra       = 1,
859b072555Sjeremylt                    .setup_geo     = SetupDiffGeo,
869b072555Sjeremylt                    .setup_rhs     = SetupDiffRhs3,
87e83e87a5Sjeremylt                    .apply         = Diff3,
88e83e87a5Sjeremylt                    .error         = Error3,
899b072555Sjeremylt                    .setup_geo_loc = SetupDiffGeo_loc,
909b072555Sjeremylt                    .setup_rhs_loc = SetupDiffRhs3_loc,
919b072555Sjeremylt                    .apply_loc     = Diff3_loc,
929b072555Sjeremylt                    .error_loc     = Error3_loc,
939b072555Sjeremylt                    .in_mode       = CEED_EVAL_GRAD,
949b072555Sjeremylt                    .out_mode      = CEED_EVAL_GRAD,
959b072555Sjeremylt                    .q_mode        = CEED_GAUSS,
962b730f8bSJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
972b730f8bSJeremy L Thompson     [CEED_BP5]  = {.num_comp_u    = 1,
989b072555Sjeremylt                    .num_comp_x    = 3,
999b072555Sjeremylt                    .topo_dim      = 3,
1009b072555Sjeremylt                    .q_data_size   = 7,
1019b072555Sjeremylt                    .q_extra       = 0,
1029b072555Sjeremylt                    .setup_geo     = SetupDiffGeo,
1039b072555Sjeremylt                    .setup_rhs     = SetupDiffRhs,
104e83e87a5Sjeremylt                    .apply         = Diff,
105e83e87a5Sjeremylt                    .error         = Error,
1069b072555Sjeremylt                    .setup_geo_loc = SetupDiffGeo_loc,
1079b072555Sjeremylt                    .setup_rhs_loc = SetupDiffRhs_loc,
1089b072555Sjeremylt                    .apply_loc     = Diff_loc,
1099b072555Sjeremylt                    .error_loc     = Error_loc,
1109b072555Sjeremylt                    .in_mode       = CEED_EVAL_GRAD,
1119b072555Sjeremylt                    .out_mode      = CEED_EVAL_GRAD,
1129b072555Sjeremylt                    .q_mode        = CEED_GAUSS_LOBATTO,
1132b730f8bSJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
1142b730f8bSJeremy L Thompson     [CEED_BP6]  = {.num_comp_u    = 3,
1159b072555Sjeremylt                    .num_comp_x    = 3,
1169b072555Sjeremylt                    .topo_dim      = 3,
1179b072555Sjeremylt                    .q_data_size   = 7,
1189b072555Sjeremylt                    .q_extra       = 0,
1199b072555Sjeremylt                    .setup_geo     = SetupDiffGeo,
1209b072555Sjeremylt                    .setup_rhs     = SetupDiffRhs3,
121e83e87a5Sjeremylt                    .apply         = Diff3,
122e83e87a5Sjeremylt                    .error         = Error3,
1239b072555Sjeremylt                    .setup_geo_loc = SetupDiffGeo_loc,
1249b072555Sjeremylt                    .setup_rhs_loc = SetupDiffRhs3_loc,
1259b072555Sjeremylt                    .apply_loc     = Diff3_loc,
1269b072555Sjeremylt                    .error_loc     = Error3_loc,
1279b072555Sjeremylt                    .in_mode       = CEED_EVAL_GRAD,
1289b072555Sjeremylt                    .out_mode      = CEED_EVAL_GRAD,
1299b072555Sjeremylt                    .q_mode        = CEED_GAUSS_LOBATTO,
1303c11f1fcSJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
1313c11f1fcSJeremy L Thompson     [CEED_BP13] = {.num_comp_u    = 1,
1323c11f1fcSJeremy L Thompson                    .num_comp_x    = 3,
1333c11f1fcSJeremy L Thompson                    .topo_dim      = 3,
1343c11f1fcSJeremy L Thompson                    .q_data_size   = 7,
1353c11f1fcSJeremy L Thompson                    .q_extra       = 1,
1363c11f1fcSJeremy L Thompson                    .setup_geo     = SetupDiffGeo,
1373c11f1fcSJeremy L Thompson                    .setup_rhs     = SetupMassDiffRhs,
1383c11f1fcSJeremy L Thompson                    .apply         = MassDiff,
1393c11f1fcSJeremy L Thompson                    .error         = Error,
1403c11f1fcSJeremy L Thompson                    .setup_geo_loc = SetupDiffGeo_loc,
1413c11f1fcSJeremy L Thompson                    .setup_rhs_loc = SetupMassDiffRhs_loc,
1423c11f1fcSJeremy L Thompson                    .apply_loc     = MassDiff_loc,
1433c11f1fcSJeremy L Thompson                    .error_loc     = Error_loc,
1443c11f1fcSJeremy L Thompson                    .in_mode       = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
1453c11f1fcSJeremy L Thompson                    .out_mode      = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
1463c11f1fcSJeremy L Thompson                    .q_mode        = CEED_GAUSS,
1473c11f1fcSJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
1483c11f1fcSJeremy L Thompson     [CEED_BP24] = {.num_comp_u    = 3,
1493c11f1fcSJeremy L Thompson                    .num_comp_x    = 3,
1503c11f1fcSJeremy L Thompson                    .topo_dim      = 3,
1513c11f1fcSJeremy L Thompson                    .q_data_size   = 7,
1523c11f1fcSJeremy L Thompson                    .q_extra       = 1,
1533c11f1fcSJeremy L Thompson                    .setup_geo     = SetupDiffGeo,
1543c11f1fcSJeremy L Thompson                    .setup_rhs     = SetupMassDiffRhs3,
1553c11f1fcSJeremy L Thompson                    .apply         = MassDiff3,
1563c11f1fcSJeremy L Thompson                    .error         = Error3,
1573c11f1fcSJeremy L Thompson                    .setup_geo_loc = SetupDiffGeo_loc,
1583c11f1fcSJeremy L Thompson                    .setup_rhs_loc = SetupMassDiffRhs3_loc,
1593c11f1fcSJeremy L Thompson                    .apply_loc     = MassDiff3_loc,
1603c11f1fcSJeremy L Thompson                    .error_loc     = Error3_loc,
1613c11f1fcSJeremy L Thompson                    .in_mode       = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
1623c11f1fcSJeremy L Thompson                    .out_mode      = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
1633c11f1fcSJeremy L Thompson                    .q_mode        = CEED_GAUSS,
1643c11f1fcSJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
165725737e8SJeremy L Thompson     [CEED_BP15] = {.num_comp_u    = 1,
166725737e8SJeremy L Thompson                    .num_comp_x    = 3,
167725737e8SJeremy L Thompson                    .topo_dim      = 3,
168725737e8SJeremy L Thompson                    .q_data_size   = 7,
169725737e8SJeremy L Thompson                    .q_extra       = 0,
170725737e8SJeremy L Thompson                    .setup_geo     = SetupDiffGeo,
171725737e8SJeremy L Thompson                    .setup_rhs     = SetupMassDiffRhs,
172725737e8SJeremy L Thompson                    .apply         = MassDiff,
173725737e8SJeremy L Thompson                    .error         = Error,
174725737e8SJeremy L Thompson                    .setup_geo_loc = SetupDiffGeo_loc,
175725737e8SJeremy L Thompson                    .setup_rhs_loc = SetupMassDiffRhs_loc,
176725737e8SJeremy L Thompson                    .apply_loc     = MassDiff_loc,
177725737e8SJeremy L Thompson                    .error_loc     = Error_loc,
178725737e8SJeremy L Thompson                    .in_mode       = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
179725737e8SJeremy L Thompson                    .out_mode      = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
180725737e8SJeremy L Thompson                    .q_mode        = CEED_GAUSS_LOBATTO,
181725737e8SJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
182725737e8SJeremy L Thompson     [CEED_BP26] = {.num_comp_u    = 3,
183725737e8SJeremy L Thompson                    .num_comp_x    = 3,
184725737e8SJeremy L Thompson                    .topo_dim      = 3,
185725737e8SJeremy L Thompson                    .q_data_size   = 7,
186725737e8SJeremy L Thompson                    .q_extra       = 0,
187725737e8SJeremy L Thompson                    .setup_geo     = SetupDiffGeo,
188725737e8SJeremy L Thompson                    .setup_rhs     = SetupMassDiffRhs3,
189725737e8SJeremy L Thompson                    .apply         = MassDiff3,
190725737e8SJeremy L Thompson                    .error         = Error3,
191725737e8SJeremy L Thompson                    .setup_geo_loc = SetupDiffGeo_loc,
192725737e8SJeremy L Thompson                    .setup_rhs_loc = SetupMassDiffRhs3_loc,
193725737e8SJeremy L Thompson                    .apply_loc     = MassDiff3_loc,
194725737e8SJeremy L Thompson                    .error_loc     = Error3_loc,
195725737e8SJeremy L Thompson                    .in_mode       = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
196725737e8SJeremy L Thompson                    .out_mode      = CEED_EVAL_INTERP + CEED_EVAL_GRAD,
197725737e8SJeremy L Thompson                    .q_mode        = CEED_GAUSS_LOBATTO,
198725737e8SJeremy L Thompson                    .enforce_bc    = PETSC_TRUE },
199e83e87a5Sjeremylt };
200