1# libCEED: the CEED API Library 2 3## Code for Efficient Extensible Discretization 4 5This repository contains an initial low-level API library for the efficient 6high-order discretization methods developed by the ECP co-design [Center for 7Efficient Exascale Discretizations (CEED)](http://ceed.exascaleproject.org). 8While our focus is on high-order finite elements, the approach is mostly 9algebraic and thus applicable to other discretizations in factored form, see the 10[API documentation](doc/README.md). 11 12One of the challenges with high-order methods is that a global sparse matrix is 13no longer a good representation of a high-order linear operator, both with 14respect to the FLOPs needed for its evaluation, as well as the memory transfer 15needed for a matvec. Thus, high-order methods require a new "format" that still 16represents a linear (or more generally non-linear) operator, but not through a 17sparse matrix. 18 19The goal of libCEED is to propose such a format, as well as supporting 20implementations and data structures, that enable efficient operator evaluation 21on a variety of computational device types (CPUs, GPUs, etc.). This new operator 22description is based on algebraically [factored form](doc/README.md), that is 23easy to incorporate in a wide variety of applications, without significant 24refactoring of their own discretization infrastructure. 25 26The repository is part of the [CEED software 27suite](http://ceed.exascaleproject.org/software/), a collection of software 28benchmarks, miniapps, libraries and APIs for efficient exascale discretizations 29based on high-order finite element and spectral element methods. See 30http://github.com/ceed for more information and source code availability. 31 32The CEED research is supported by the [Exascale Computing Project](https://exascaleproject.org/exascale-computing-project) 33(17-SC-20-SC), a collaborative effort of two U.S. Department of Energy 34organizations (Office of Science and the National Nuclear Security 35Administration) responsible for the planning and preparation of a 36[capable exascale ecosystem](https://exascaleproject.org/what-is-exascale), 37including software, applications, hardware, advanced system engineering and early 38testbed platforms, in support of the nation’s exascale computing imperative. 39 40For more details on the CEED API see http://ceed.exascaleproject.org/ceed-code/. 41 42## Building 43 44The CEED library, `libceed`, is a C99 library with no external dependencies. 45It can be built using 46 47 make 48 49## Testing 50 51The test suite produces [TAP](https://testanything.org) output and is run by: 52 53 make test 54 55 56## Contact 57 58You can reach the libCEED team by emailing [ceed-users@llnl.gov](mailto:ceed-users@llnl.gov) 59or by leaving a comment in the [issue tracker](https://github.com/CEED/libCEED/issues). 60 61## Copyright 62 63The following copyright applies to each file in the CEED software suite, unless 64otherwise stated in the file: 65 66> Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at the 67> Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights reserved. 68 69See files LICENSE and NOTICE for details. 70