16ca0f394SUmesh Unnikrishnan // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 26ca0f394SUmesh Unnikrishnan // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 36ca0f394SUmesh Unnikrishnan // 46ca0f394SUmesh Unnikrishnan // SPDX-License-Identifier: BSD-2-Clause 56ca0f394SUmesh Unnikrishnan // 66ca0f394SUmesh Unnikrishnan // This file is part of CEED: http://github.com/ceed 76ca0f394SUmesh Unnikrishnan 8*17b5e52fSSebastian Grimberg #ifndef CEED_SYCL_GEN_HPP 9*17b5e52fSSebastian Grimberg #define CEED_SYCL_GEN_HPP 106ca0f394SUmesh Unnikrishnan 116ca0f394SUmesh Unnikrishnan #include <ceed/backend.h> 126ca0f394SUmesh Unnikrishnan #include <ceed/ceed.h> 136ca0f394SUmesh Unnikrishnan #include <sycl/sycl.hpp> 146ca0f394SUmesh Unnikrishnan 156ca0f394SUmesh Unnikrishnan #include "../sycl/ceed-sycl-common.hpp" 166ca0f394SUmesh Unnikrishnan #include "../sycl/ceed-sycl-compile.hpp" 176ca0f394SUmesh Unnikrishnan 186ca0f394SUmesh Unnikrishnan typedef struct { 196ca0f394SUmesh Unnikrishnan CeedInt dim; 206ca0f394SUmesh Unnikrishnan CeedInt Q_1d; 216ca0f394SUmesh Unnikrishnan CeedInt max_P_1d; 226ca0f394SUmesh Unnikrishnan SyclModule_t *sycl_module; 236ca0f394SUmesh Unnikrishnan sycl::kernel *op; 246ca0f394SUmesh Unnikrishnan FieldsInt_Sycl *indices; 256ca0f394SUmesh Unnikrishnan Fields_Sycl *fields; 266ca0f394SUmesh Unnikrishnan Fields_Sycl *B; 276ca0f394SUmesh Unnikrishnan Fields_Sycl *G; 286ca0f394SUmesh Unnikrishnan CeedScalar *W; 296ca0f394SUmesh Unnikrishnan } CeedOperator_Sycl_gen; 306ca0f394SUmesh Unnikrishnan 316ca0f394SUmesh Unnikrishnan typedef struct { 326ca0f394SUmesh Unnikrishnan char *q_function_name; 336ca0f394SUmesh Unnikrishnan char *q_function_source; 346ca0f394SUmesh Unnikrishnan void *d_c; 356ca0f394SUmesh Unnikrishnan } CeedQFunction_Sycl_gen; 366ca0f394SUmesh Unnikrishnan 376ca0f394SUmesh Unnikrishnan CEED_INTERN int CeedQFunctionCreate_Sycl_gen(CeedQFunction qf); 386ca0f394SUmesh Unnikrishnan 396ca0f394SUmesh Unnikrishnan CEED_INTERN int CeedOperatorCreate_Sycl_gen(CeedOperator op); 406ca0f394SUmesh Unnikrishnan 41*17b5e52fSSebastian Grimberg #endif // CEED_SYCL_GEN_HPP 42