// Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors. // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. // // SPDX-License-Identifier: BSD-2-Clause // // This file is part of CEED: http://github.com/ceed /// @file /// Problem data for BPs #pragma once #include #include #include "../include/structs.h" #include "../qfunctions/bps/bp1.h" #include "../qfunctions/bps/bp13.h" #include "../qfunctions/bps/bp2.h" #include "../qfunctions/bps/bp24.h" #include "../qfunctions/bps/bp3.h" #include "../qfunctions/bps/bp4.h" #include "../qfunctions/bps/common.h" // ----------------------------------------------------------------------------- // BP Option Data // ----------------------------------------------------------------------------- BPData bp_options[10] = { [CEED_BP1] = {.num_comp_u = 1, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 1, .q_extra = 1, .setup_geo = SetupMassGeo, .setup_rhs = SetupMassRhs, .apply = Mass, .error = Error, .setup_geo_loc = SetupMassGeo_loc, .setup_rhs_loc = SetupMassRhs_loc, .apply_loc = Mass_loc, .error_loc = Error_loc, .in_mode = CEED_EVAL_INTERP, .out_mode = CEED_EVAL_INTERP, .q_mode = CEED_GAUSS, .enforce_bc = PETSC_FALSE}, [CEED_BP2] = {.num_comp_u = 3, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 1, .q_extra = 1, .setup_geo = SetupMassGeo, .setup_rhs = SetupMassRhs3, .apply = Mass3, .error = Error3, .setup_geo_loc = SetupMassGeo_loc, .setup_rhs_loc = SetupMassRhs3_loc, .apply_loc = Mass3_loc, .error_loc = Error3_loc, .in_mode = CEED_EVAL_INTERP, .out_mode = CEED_EVAL_INTERP, .q_mode = CEED_GAUSS, .enforce_bc = PETSC_FALSE}, [CEED_BP3] = {.num_comp_u = 1, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 1, .setup_geo = SetupDiffGeo, .setup_rhs = SetupDiffRhs, .apply = Diff, .error = Error, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupDiffRhs_loc, .apply_loc = Diff_loc, .error_loc = Error_loc, .in_mode = CEED_EVAL_GRAD, .out_mode = CEED_EVAL_GRAD, .q_mode = CEED_GAUSS, .enforce_bc = PETSC_TRUE }, [CEED_BP4] = {.num_comp_u = 3, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 1, .setup_geo = SetupDiffGeo, .setup_rhs = SetupDiffRhs3, .apply = Diff3, .error = Error3, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupDiffRhs3_loc, .apply_loc = Diff3_loc, .error_loc = Error3_loc, .in_mode = CEED_EVAL_GRAD, .out_mode = CEED_EVAL_GRAD, .q_mode = CEED_GAUSS, .enforce_bc = PETSC_TRUE }, [CEED_BP5] = {.num_comp_u = 1, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 0, .setup_geo = SetupDiffGeo, .setup_rhs = SetupDiffRhs, .apply = Diff, .error = Error, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupDiffRhs_loc, .apply_loc = Diff_loc, .error_loc = Error_loc, .in_mode = CEED_EVAL_GRAD, .out_mode = CEED_EVAL_GRAD, .q_mode = CEED_GAUSS_LOBATTO, .enforce_bc = PETSC_TRUE }, [CEED_BP6] = {.num_comp_u = 3, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 0, .setup_geo = SetupDiffGeo, .setup_rhs = SetupDiffRhs3, .apply = Diff3, .error = Error3, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupDiffRhs3_loc, .apply_loc = Diff3_loc, .error_loc = Error3_loc, .in_mode = CEED_EVAL_GRAD, .out_mode = CEED_EVAL_GRAD, .q_mode = CEED_GAUSS_LOBATTO, .enforce_bc = PETSC_TRUE }, [CEED_BP13] = {.num_comp_u = 1, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 1, .setup_geo = SetupDiffGeo, .setup_rhs = SetupMassDiffRhs, .apply = MassDiff, .error = Error, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupMassDiffRhs_loc, .apply_loc = MassDiff_loc, .error_loc = Error_loc, .in_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .out_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .q_mode = CEED_GAUSS, .enforce_bc = PETSC_TRUE }, [CEED_BP24] = {.num_comp_u = 3, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 1, .setup_geo = SetupDiffGeo, .setup_rhs = SetupMassDiffRhs3, .apply = MassDiff3, .error = Error3, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupMassDiffRhs3_loc, .apply_loc = MassDiff3_loc, .error_loc = Error3_loc, .in_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .out_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .q_mode = CEED_GAUSS, .enforce_bc = PETSC_TRUE }, [CEED_BP15] = {.num_comp_u = 1, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 0, .setup_geo = SetupDiffGeo, .setup_rhs = SetupMassDiffRhs, .apply = MassDiff, .error = Error, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupMassDiffRhs_loc, .apply_loc = MassDiff_loc, .error_loc = Error_loc, .in_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .out_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .q_mode = CEED_GAUSS_LOBATTO, .enforce_bc = PETSC_TRUE }, [CEED_BP26] = {.num_comp_u = 3, .num_comp_x = 3, .topo_dim = 3, .q_data_size = 7, .q_extra = 0, .setup_geo = SetupDiffGeo, .setup_rhs = SetupMassDiffRhs3, .apply = MassDiff3, .error = Error3, .setup_geo_loc = SetupDiffGeo_loc, .setup_rhs_loc = SetupMassDiffRhs3_loc, .apply_loc = MassDiff3_loc, .error_loc = Error3_loc, .in_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .out_mode = CEED_EVAL_INTERP + CEED_EVAL_GRAD, .q_mode = CEED_GAUSS_LOBATTO, .enforce_bc = PETSC_TRUE }, };