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