1e83e87a5Sjeremylt // Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at 2e83e87a5Sjeremylt // the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights 3e83e87a5Sjeremylt // reserved. See files LICENSE and NOTICE for details. 4e83e87a5Sjeremylt // 5e83e87a5Sjeremylt // This file is part of CEED, a collection of benchmarks, miniapps, software 6e83e87a5Sjeremylt // libraries and APIs for efficient high-order finite element and spectral 7e83e87a5Sjeremylt // element discretizations for exascale applications. For more information and 8e83e87a5Sjeremylt // source code availability see http://github.com/ceed. 9e83e87a5Sjeremylt // 10e83e87a5Sjeremylt // The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, 11e83e87a5Sjeremylt // a collaborative effort of two U.S. Department of Energy organizations (Office 12e83e87a5Sjeremylt // of Science and the National Nuclear Security Administration) responsible for 13e83e87a5Sjeremylt // the planning and preparation of a capable exascale ecosystem, including 14e83e87a5Sjeremylt // software, applications, hardware, advanced system engineering and early 15e83e87a5Sjeremylt // testbed platforms, in support of the nation's exascale computing imperative. 16e83e87a5Sjeremylt 1748564947Sjeremylt #ifndef bps_h 1848564947Sjeremylt #define bps_h 19e83e87a5Sjeremylt 20e83e87a5Sjeremylt #include "include/bpsproblemdata.h" 21e83e87a5Sjeremylt #include "include/petscmacros.h" 22e83e87a5Sjeremylt #include "include/petscutils.h" 23e83e87a5Sjeremylt #include "include/matops.h" 24e83e87a5Sjeremylt #include "include/structs.h" 25e83e87a5Sjeremylt #include "include/libceedsetup.h" 26e83e87a5Sjeremylt 27e83e87a5Sjeremylt #include <ceed.h> 28e83e87a5Sjeremylt #include <petsc.h> 29e83e87a5Sjeremylt #include <petscdmplex.h> 30e83e87a5Sjeremylt #include <petscfe.h> 31e83e87a5Sjeremylt #include <petscsys.h> 32e83e87a5Sjeremylt #include <stdbool.h> 33e83e87a5Sjeremylt #include <string.h> 34e83e87a5Sjeremylt 35e83e87a5Sjeremylt #if PETSC_VERSION_LT(3,12,0) 36e83e87a5Sjeremylt #ifdef PETSC_HAVE_CUDA 37e83e87a5Sjeremylt #include <petsccuda.h> 38e83e87a5Sjeremylt // Note: With PETSc prior to version 3.12.0, providing the source path to 39e83e87a5Sjeremylt // include 'cublas_v2.h' will be needed to use 'petsccuda.h'. 40e83e87a5Sjeremylt #endif 41e83e87a5Sjeremylt #endif 42e83e87a5Sjeremylt 43e83e87a5Sjeremylt // ----------------------------------------------------------------------------- 44e83e87a5Sjeremylt // Command Line Options 45e83e87a5Sjeremylt // ----------------------------------------------------------------------------- 46e83e87a5Sjeremylt 47e83e87a5Sjeremylt // MemType Options 48*9b072555Sjeremylt static const char *const mem_types[] = {"host","device", "memType", 49e83e87a5Sjeremylt "CEED_MEM_", 0 50e83e87a5Sjeremylt }; 51e83e87a5Sjeremylt 52e83e87a5Sjeremylt // Coarsening options 53e83e87a5Sjeremylt typedef enum { 54e83e87a5Sjeremylt COARSEN_UNIFORM = 0, COARSEN_LOGARITHMIC = 1 55*9b072555Sjeremylt } CoarsenType; 56*9b072555Sjeremylt static const char *const coarsen_types [] = {"uniform", "logarithmic", 57*9b072555Sjeremylt "CoarsenType", "COARSEN", 0 58e83e87a5Sjeremylt }; 59e83e87a5Sjeremylt 60*9b072555Sjeremylt static const char *const bp_types[] = {"bp1", "bp2", "bp3", "bp4", "bp5", "bp6", 61*9b072555Sjeremylt "BPType", "CEED_BP", 0 62e83e87a5Sjeremylt }; 63e83e87a5Sjeremylt 6448564947Sjeremylt #endif // bps_h 65