// Copyright (c) 2017-2022, 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 #ifndef _ceed_cuda_gen_h #define _ceed_cuda_gen_h #include #include #include #include "../cuda/ceed-cuda-common.h" typedef struct { const CeedScalar *in[CEED_FIELD_MAX]; CeedScalar *out[CEED_FIELD_MAX]; } CudaFields; typedef struct { CeedInt *in[CEED_FIELD_MAX]; CeedInt *out[CEED_FIELD_MAX]; } CudaFieldsInt; typedef struct { CeedInt dim; CeedInt Q1d; CeedInt maxP1d; CUmodule module; CUfunction op; CudaFieldsInt indices; CudaFields fields; CudaFields B; CudaFields G; CeedScalar *W; } CeedOperator_Cuda_gen; typedef struct { char *qFunctionName; char *qFunctionSource; void *d_c; } CeedQFunction_Cuda_gen; CEED_INTERN int CeedQFunctionCreate_Cuda_gen(CeedQFunction qf); CEED_INTERN int CeedOperatorCreate_Cuda_gen(CeedOperator op); #endif // _ceed_cuda_gen_h