xref: /libCEED/interface/ceed-hip.c (revision d310b3d31eeeddd20725517a3a61881a36d919f0)
1 // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors.
2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3 //
4 // SPDX-License-Identifier: BSD-2-Clause
5 //
6 // This file is part of CEED:  http://github.com/ceed
7 
8 #include <ceed-impl.h>
9 #include <ceed/backend.h>
10 #include <ceed/ceed.h>
11 #include <ceed/hip.h>
12 
13 /**
14   @brief Set HIP function pointer to evaluate action at quadrature points
15 
16   @param[in,out] qf CeedQFunction to set device pointer
17   @param[in]     f  Device function pointer to evaluate action at quadrature points
18 
19   @return An error code: 0 - success, otherwise - failure
20 
21   @ref User
22 **/
23 int CeedQFunctionSetHIPUserFunction(CeedQFunction qf, hipFunction_t f) {
24   if (!qf->SetHIPUserFunction) {
25     Ceed ceed;
26     CeedCall(CeedQFunctionGetCeed(qf, &ceed));
27     CeedDebug(ceed, "Backend does not support hipFunction_t pointers for QFunctions.");
28   } else {
29     CeedCall(qf->SetHIPUserFunction(qf, f));
30   }
31   return CEED_ERROR_SUCCESS;
32 }
33