xref: /libCEED/interface/ceed-qfunction-register.c (revision 3d8e882215d238700cdceb37404f76ca7fa24eaa)
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.
3*3d8e8822SJeremy L Thompson //
4*3d8e8822SJeremy L Thompson // SPDX-License-Identifier: BSD-2-Clause
5*3d8e8822SJeremy L Thompson //
6*3d8e8822SJeremy L Thompson // This file is part of CEED:  http://github.com/ceed
7*3d8e8822SJeremy L Thompson 
8ec3da8bcSJed Brown #include <ceed/ceed.h>
9ec3da8bcSJed Brown #include <ceed/backend.h>
101d013790SJed Brown 
111d013790SJed Brown static bool register_all_called;
121d013790SJed Brown 
131d013790SJed Brown #define MACRO(name) CEED_INTERN int name(void);
141d013790SJed Brown #include "../gallery/ceed-gallery-list.h"
151d013790SJed Brown #undef MACRO
161d013790SJed Brown 
171d013790SJed Brown /**
181d013790SJed Brown   @brief Register the gallery of preconfigured QFunctions.
191d013790SJed Brown 
201d013790SJed Brown   This is called automatically by CeedQFunctionCreateInteriorByName() and thus normally need not be called by users.
211d013790SJed Brown   Users can call CeedQFunctionRegister() to register additional backends.
221d013790SJed Brown 
231d013790SJed Brown   @return An error code: 0 - success, otherwise - failure
241d013790SJed Brown 
251d013790SJed Brown   @sa CeedQFunctionRegister()
261d013790SJed Brown 
27ded9b81dSJeremy L Thompson   @ref User
281d013790SJed Brown **/
291d013790SJed Brown int CeedQFunctionRegisterAll() {
301d013790SJed Brown   if (register_all_called) return 0;
311d013790SJed Brown   register_all_called = true;
328ccf1006SJeremy L Thompson   CeedDebugEnv256(1, "\n---------- Registering Gallery QFunctions ----------\n");
331d013790SJed Brown #define MACRO(name) CeedChk(name());
341d013790SJed Brown #include "../gallery/ceed-gallery-list.h"
351d013790SJed Brown #undef MACRO
36e15f9bd0SJeremy L Thompson   return CEED_ERROR_SUCCESS;
371d013790SJed Brown }
38