xref: /libCEED/examples/petsc/include/areaproblemdata.h (revision d4cc18453651bd0f94c1a2e078b2646a92dafdcc)
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 area examples
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/area/areacube.h"
17e83e87a5Sjeremylt #include "../qfunctions/area/areasphere.h"
18e83e87a5Sjeremylt 
19e83e87a5Sjeremylt // -----------------------------------------------------------------------------
20e83e87a5Sjeremylt // Problem Option Data
21e83e87a5Sjeremylt // -----------------------------------------------------------------------------
22e83e87a5Sjeremylt 
23e83e87a5Sjeremylt // Problem options
242b730f8bSJeremy L Thompson typedef enum { CUBE = 0, SPHERE = 1 } ProblemType;
25e83e87a5Sjeremylt 
269b072555Sjeremylt static BPData problem_options[6] = {
272b730f8bSJeremy L Thompson     [CUBE] =
282b730f8bSJeremy L Thompson         {
299b072555Sjeremylt                 .num_comp_x    = 3,
309b072555Sjeremylt                 .num_comp_u    = 1,
319b072555Sjeremylt                 .topo_dim      = 2,
329b072555Sjeremylt                 .q_data_size   = 1,
339b072555Sjeremylt                 .q_extra       = 1,
349b072555Sjeremylt                 .setup_geo     = SetupMassGeoCube,
35e83e87a5Sjeremylt                 .apply         = Mass,
369b072555Sjeremylt                 .setup_geo_loc = SetupMassGeoCube_loc,
379b072555Sjeremylt                 .apply_loc     = Mass_loc,
389b072555Sjeremylt                 .in_mode       = CEED_EVAL_INTERP,
399b072555Sjeremylt                 .out_mode      = CEED_EVAL_INTERP,
409b072555Sjeremylt                 .q_mode        = CEED_GAUSS,
419b072555Sjeremylt                 .enforce_bc    = PETSC_FALSE,
42e83e87a5Sjeremylt                 },
43e83e87a5Sjeremylt     [SPHERE] = {
449b072555Sjeremylt                 .num_comp_x    = 3,
459b072555Sjeremylt                 .num_comp_u    = 1,
469b072555Sjeremylt                 .topo_dim      = 2,
479b072555Sjeremylt                 .q_data_size   = 1,
489b072555Sjeremylt                 .q_extra       = 1,
499b072555Sjeremylt                 .setup_geo     = SetupMassGeoSphere,
50e83e87a5Sjeremylt                 .apply         = Mass,
519b072555Sjeremylt                 .setup_geo_loc = SetupMassGeoSphere_loc,
529b072555Sjeremylt                 .apply_loc     = Mass_loc,
539b072555Sjeremylt                 .in_mode       = CEED_EVAL_INTERP,
549b072555Sjeremylt                 .out_mode      = CEED_EVAL_INTERP,
559b072555Sjeremylt                 .q_mode        = CEED_GAUSS,
569b072555Sjeremylt                 .enforce_bc    = PETSC_FALSE,
57e83e87a5Sjeremylt                 }
58e83e87a5Sjeremylt };
59