1*3d8e8822SJeremy L Thompson // Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2*3d8e8822SJeremy L Thompson // All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3ae3cba82Scamierjs // 4*3d8e8822SJeremy L Thompson // SPDX-License-Identifier: BSD-2-Clause 5ae3cba82Scamierjs // 6*3d8e8822SJeremy L Thompson // This file is part of CEED: http://github.com/ceed 7ae3cba82Scamierjs 8ec3da8bcSJed Brown #include <ceed/ceed.h> 9ec3da8bcSJed Brown #include <ceed/backend.h> 103d576824SJeremy L Thompson #include <string.h> 1121617c04Sjeremylt #include "ceed-ref.h" 12ae3cba82Scamierjs 13f10650afSjeremylt //------------------------------------------------------------------------------ 14f10650afSjeremylt // Backend Init 15f10650afSjeremylt //------------------------------------------------------------------------------ 16ae3cba82Scamierjs static int CeedInit_Ref(const char *resource, Ceed ceed) { 17fe2413ffSjeremylt int ierr; 186f7d248dSjeremylt if (strcmp(resource, "/cpu/self") && strcmp(resource, "/cpu/self/ref") 19856142e1Sjeremylt && strcmp(resource, "/cpu/self/ref/serial")) 20c042f62fSJeremy L Thompson // LCOV_EXCL_START 21e15f9bd0SJeremy L Thompson return CeedError(ceed, CEED_ERROR_BACKEND, 22e15f9bd0SJeremy L Thompson "Ref backend cannot use resource: %s", resource); 23c042f62fSJeremy L Thompson // LCOV_EXCL_STOP 24e15f9bd0SJeremy L Thompson ierr = CeedSetDeterministic(ceed, true); CeedChkBackend(ierr); 256f7d248dSjeremylt 26f8902d9eSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "VectorCreate", 27e15f9bd0SJeremy L Thompson CeedVectorCreate_Ref); CeedChkBackend(ierr); 28fe2413ffSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "BasisCreateTensorH1", 29e15f9bd0SJeremy L Thompson CeedBasisCreateTensorH1_Ref); CeedChkBackend(ierr); 30fe2413ffSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "BasisCreateH1", 31e15f9bd0SJeremy L Thompson CeedBasisCreateH1_Ref); CeedChkBackend(ierr); 3250c301a5SRezgar Shakeri ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "BasisCreateHdiv", 3350c301a5SRezgar Shakeri CeedBasisCreateHdiv_Ref); CeedChkBackend(ierr); 342f86a920SJeremy L Thompson ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "TensorContractCreate", 35e15f9bd0SJeremy L Thompson CeedTensorContractCreate_Ref); CeedChkBackend(ierr); 36fe2413ffSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "ElemRestrictionCreate", 37e15f9bd0SJeremy L Thompson CeedElemRestrictionCreate_Ref); CeedChkBackend(ierr); 381dfeef1dSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, 39fc0567d9Srezgarshakeri "ElemRestrictionCreateOriented", 40fc0567d9Srezgarshakeri CeedElemRestrictionCreateOriented_Ref); CeedChkBackend(ierr); 41fc0567d9Srezgarshakeri ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, 421dfeef1dSjeremylt "ElemRestrictionCreateBlocked", 43e15f9bd0SJeremy L Thompson CeedElemRestrictionCreate_Ref); CeedChkBackend(ierr); 44fe2413ffSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "QFunctionCreate", 45e15f9bd0SJeremy L Thompson CeedQFunctionCreate_Ref); CeedChkBackend(ierr); 46777ff853SJeremy L Thompson ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "QFunctionContextCreate", 47e15f9bd0SJeremy L Thompson CeedQFunctionContextCreate_Ref); CeedChkBackend(ierr); 48fe2413ffSjeremylt ierr = CeedSetBackendFunction(ceed, "Ceed", ceed, "OperatorCreate", 49e15f9bd0SJeremy L Thompson CeedOperatorCreate_Ref); CeedChkBackend(ierr); 50e15f9bd0SJeremy L Thompson return CEED_ERROR_SUCCESS; 51ae3cba82Scamierjs } 52ae3cba82Scamierjs 53f10650afSjeremylt //------------------------------------------------------------------------------ 54f10650afSjeremylt // Backend Register 55f10650afSjeremylt //------------------------------------------------------------------------------ 561d013790SJed Brown CEED_INTERN int CeedRegister_Ref(void) { 571d013790SJed Brown return 589ddbf157Sjeremylt //! [Register] 59706bc5e6Sjeremylt CeedRegister("/cpu/self/ref/serial", CeedInit_Ref, 50); 609ddbf157Sjeremylt //! [Register] 61ae3cba82Scamierjs } 62f10650afSjeremylt //------------------------------------------------------------------------------ 63