| d1d35e2f | 09-Apr-2021 |
jeremylt <thompson.jeremy.luke@gmail.com> |
style - updating C variable style |
| 240131ba | 08-Apr-2021 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
header - update minor version in header definition (#732) |
| 22e44211 | 07-Apr-2021 |
jeremylt <thompson.jeremy.luke@gmail.com> |
interface - add help option for CeedInit and function to access arrays of resources + priorities |
| ec3da8bc | 26-Mar-2021 |
Jed Brown <jed@jedbrown.org> |
Install install backend headers under include/ceed/
This makes it possible to distribute source plugins that provide additional backends. It's also used in MFEM, perhaps temporarily.
Deprecate ceed
Install install backend headers under include/ceed/
This makes it possible to distribute source plugins that provide additional backends. It's also used in MFEM, perhaps temporarily.
Deprecate ceed-backend.h, which was not previously installed, but some users accessed it from an in-place build.
Also install CUDA and HIP headers that allow users to provide CUfunction and hipFunction_t.
Co-authored-by: Jeremy L. Thompson <jeremy.thompson@colorado.edu> Requested-by: Andrew T. Barker <barker29@llnl.gov>
show more ...
|
| e1e9e29d | 28-Mar-2021 |
Jed Brown <jed@jedbrown.org> |
Stricter field checking and better error messages
Add CEED_ERROR_INCOMPATIBLE because CEED_ERROR_MINOR is not very descriptive.
operator - minor error for CEED_EVAL_WEIGHT + non-trivial restriction
Stricter field checking and better error messages
Add CEED_ERROR_INCOMPATIBLE because CEED_ERROR_MINOR is not very descriptive.
operator - minor error for CEED_EVAL_WEIGHT + non-trivial restriction
Co-authored-by: Jeremy L. Thompson <jeremy.thompson@colorado.edu>
show more ...
|
| e2f04181 | 31-Mar-2021 |
Andrew T. Barker <barker29@llnl.gov> |
Full assembly of CeedOperator (#712)
* Add CeedOperatorLinearFullAssemble() to explicitly assemble a CeedOperator
The output format is a stream of (row, column, value) triples, which client
code
Full assembly of CeedOperator (#712)
* Add CeedOperatorLinearFullAssemble() to explicitly assemble a CeedOperator
The output format is a stream of (row, column, value) triples, which client
code can use to assemble a sparse matrix by adding the values in the
appropriate places.
* Add full assembly test for triangular mesh, t563-operator.c, which is analogous to t536-operator.c
* assembly: change interface to separate nonzero structure from values
* assembly: add potential backends for CeedOperatorLinearAssemble, CeedOperatorLinearAssemblySymbolic
* assembly: use CeedMatrixMultiply() instead of hand-rolled duplicated code
This also involves switching some arrays from column-major ordering to
row-major ordering.
* Remove CeedMatrixMultiply from ceed-impl.h because it is already in ceed-backend.h
* assembly: modify use of fallback resource
* operator - use new error codes in full assembly
* style - minor
* operator - switch default fallback to none
* operator - fix fallback for full assembly
* operator - fix fallback usage
* operator - fix fallback for digonal assembly
* avx - revert bug
* avx - revert bug
Co-authored-by: jeremylt <thompson.jeremy.luke@gmail.com>
show more ...
|
| e15f9bd0 | 20-Mar-2021 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
Error Handling Improvement [fix #696] (#691)
* Operator - add operator/qfunction field compatibility checks
* QFunction - do not allow adding fields to QFunction in use with an operator
* Exam
Error Handling Improvement [fix #696] (#691)
* Operator - add operator/qfunction field compatibility checks
* QFunction - do not allow adding fields to QFunction in use with an operator
* Examples - add some extra exclusion markers in ceed example
* error - add error enum
* error - update error enum names and numbering
* error - use CEED_ERROR_BACKEND in all backend errors
* error - begin classifying interface errors
* error - update backends to use CEED_ERROR_SUCCESS and CeedChkBackend
* error - use new errors in gallery
* error - add some unsaved modifications
* error - improve documentation
* error - define CEED_ERROR_SUCCESS in GPU JiT; we really should have a common header to pipe defines to the JiT code
* error - more error code editing
* error - fix error string
* operator - fix setting field qpts
* basis - add input/output dimension error checking
* python - move basis utility methods to ceed object, no basis required or used
* python - force exit with negative error code
* make style-py
* rust - initial work to add error handling logic
* rust - add ceed.resource method
* rust - add results for methods that may fail
* rust - also format doctests
* minor - drop unused CeedChk()
* error - rename terminal/nonterminal to major/minor
* rust - set ErrorStore as default errorhandler
* python - revert error handing change for python
* python - use success error code from C bindings
* error - only upgrade error code in backend if positive
show more ...
|
| e24eaa76 | 20-Mar-2021 |
Jed Brown <jed@jedbrown.org> |
Merge branch 'jed/ceed-version' [PR #698]
* jed/ceed-version: Add version macros and CeedGetVersion() [fix #697] |
| 1070991d | 24-Jan-2021 |
Jed Brown <jed@jedbrown.org> |
Add version macros and CeedGetVersion() [fix #697]
Requested-by: Freddie Witherden <freddie@witherden.org> |
| 3d576824 | 29-Jan-2021 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
headers - clearify includes to not rely on transitive includes (#701)
* headers - clearify includes to not rely on transitive includes
* style - add header recommendations from 'include-what-you-
headers - clearify includes to not rely on transitive includes (#701)
* headers - clearify includes to not rely on transitive includes
* style - add header recommendations from 'include-what-you-use'
* style - apply 'include-what-you-use' changes to CUDA backends
* style - 'include-what-you-use' for hip backends
* style - drop ceed.h includes in gallery qf source
* docs - add dev notes for header files
* style - header style and alphabetize
show more ...
|
| ded9b81d | 12-Jan-2021 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
Rust - add examples (#683)
* Rust - initial version of ex1
Example - move closure
Co-authored-by: Jed Brown <jed@jedbrown.org>
typo fix
Co-authored-by: Jed Brown <jed@jedbrown.org>
mi
Rust - add examples (#683)
* Rust - initial version of ex1
Example - move closure
Co-authored-by: Jed Brown <jed@jedbrown.org>
typo fix
Co-authored-by: Jed Brown <jed@jedbrown.org>
minor tidying
order -> degree
drop operator applicaiton messages
* rust: make top-level workspace and use libceed from path
This allows a single "cargo test" from the top level.
* rust: add version-sync (to help us remember when we publish a crate)
* examples - consistency update
* Rust - add Cargo.lock to top level gitignore
* rust - refactor example to add tests
* Rust - test and style from workspace
* Rust - update year in header
* Rust - add error values to Error, switch to String
* Rust - add input validation in check
* Rust - format volume output in example
* Rust - update example help output
* Rust - example tests rename to simplify
* Rust - split example 1 into 3 parts
* rust: std::sync::Once for CeedRegisterAll()
* Promote CeedRegisterAll() and CeedQFunctionRegisterAll() to User
* Guard calls to CeedInit() to avoid races in parallel testing
* Examples - update rust example to new builder syntax
* Examples - add rust ex2
* Rust - add CEED_STRIDES_BACKEND
* Examples - drop unused restriction in ceed ex2
* Rust - minor documentation update
* Rust - adopt convention of 'dimension-like' values all using usize; reduces casting
* Actions - add Rust code coverage
* Rust - fix usize conversion
* Rust - update casting between i32(C interface) and usize(Rust interface)
* Actions - include Rust doctests
* Actions - Rust doctest coverange only avaliable in nightly
* Rust - drop explict typing of values passed to C get* functions
* Rust - modify version numbers tests, cargo-tarpaulin and cargo have different calling paths in tests
* cargo fmt
* Examples - add separate Rust example quiet mode
* Actions - rustfmt not always avaliable on nightly
* Rust - simplify version tests
* Actions - add a few notes
* CodeCov - try adding gallery to 'fixes'
* CodeCov - drop some codecov noise in examples
* Examples - test all combinations in ex1/ex2
* Rust - test 3d examples without quiet flag
* Actions - use gcc-10 for compatibility in gcov reports
* Examples - test gallery in 1/2/3d in Rust ex
* Gitlab - also report gcov version
* JUnit - adjust indentation
* Gitlab - make it easier to find complier info in logs
* Tests - fix minor styling strangeness in t002
* Actions - only upload rust coverage
* Actions - exclude non-rust files from rust coverage
* Cov - exclude weak symbols code, not useful cov info
* Examples - clean up options creation for tests in Rust examples
* Examples - simplify tolerance for testing Rust examples
* cargo fmt
* Examples - another match
* Examples - common Rust example code in shared local crate
Co-authored-by: Jed Brown <jed@jedbrown.org>
show more ...
|
| 1d013790 | 14-Dec-2020 |
Jed Brown <jed@jedbrown.org> |
Add static library (libceed.a) [resolve #670]
We no longer use __attribute__((constructor)) to register backends and gallery implementations because we can't ensure that the symbols are linked into
Add static library (libceed.a) [resolve #670]
We no longer use __attribute__((constructor)) to register backends and gallery implementations because we can't ensure that the symbols are linked into applications that link the static library. We've switched to creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are called automatically by the library, and call weak symbols to register all the backend/gallery implementations. This strategy was partly motivated by not wanting to have preprocessor macros describing what is available, and the associated need to recompile rather than just relink when those macros change.
So we now have backends/ceed-backend-list.h that declares all the backends wrapped in a macro. It is included by backends/ceed-backend-weak.c to create weak definitions of all the backends. In the makefile, we sort so this comes last when linking a shared or static library, and thus these weak symbols will only be picked up if they were not defined by the actual backend source files. The same header is included (with different macro wrapping) in interface/ceed-register.c, where CeedRegisterAll() is defined.
To add a new backend, one must do essentially the same registration strategy as in the past, plus add one line to the common ceed-backend-list.h.
show more ...
|
| a52c4238 | 15-Dec-2020 |
nbeams <246972+nbeams@users.noreply.github.com> |
add CEED_UNUSED to avoid warnings for hipblas error checking |
| f9982c62 | 29-Sep-2020 |
Will Pazner <will.e.p@gmail.com> |
Use pointer to va_list in error handler
va_list is implementation defined, so a pointer works better with FFI. |
| fbe71546 | 22-Sep-2020 |
jeremylt <thompson.jeremy.luke@gmail.com> |
Hash - update ceed-khash header guard |
| 4edbd5c4 | 22-Sep-2020 |
jeremylt <thompson.jeremy.luke@gmail.com> |
Make - install hashing headers, used in MFEM |
| af7ca75e | 17-Sep-2020 |
jeremylt <thompson.jeremy.luke@gmail.com> |
QFunction - compile cuda/hip only functions separately |
| 8c84ac63 | 21-Aug-2020 |
jeremylt <thompson.jeremy.luke@gmail.com> |
QF - add interface to set device user function |
| 842fdfc9 | 14-Aug-2020 |
jeremylt <thompson.jeremy.luke@gmail.com> |
Hash - simplify multi key equality check |
| a541914d | 14-Aug-2020 |
jeremylt <thompson.jeremy.luke@gmail.com> |
Hash - add additional hash key lengths |
| 777ff853 | 14-Aug-2020 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
QFunction Context Data Object (#596)
* Ctx - create context object for QFunction context data
* Context - rename UserContext -> QFunctionContext
* Ctx - add lcov markers
* Ctx - fix leak in
QFunction Context Data Object (#596)
* Ctx - create context object for QFunction context data
* Context - rename UserContext -> QFunctionContext
* Ctx - add lcov markers
* Ctx - fix leak in identity QFunctions
* Hip/Cuda - rename sync functions for vector/context
* Tests - lcov marker update
* QFunction - drop unused function
* Python - fix copy-paste errors
* Ctx - update notes for Fortran usage
* Fortran - drop unneeded cast
Co-authored-by: Jed Brown <jed@jedbrown.org>
* Interface - use void* for SetData interfaces
* Make - use call quiet for NVCC
* Interface - use void* for GetData interfaces
* Make - add quiet call option for examples
* Makefile - create common makefile to reduce duplication/complexity in example makefiles
Co-authored-by: Jed Brown <jed@jedbrown.org>
show more ...
|
| d99fa3c5 | 28-Jul-2020 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
Op - add interface for multigrid level creation (#579)
* Op - add interface for multigrid level creation
* Op - add implementation for OperatorMultigridLevelCreate
* make style
* make tidy
Op - add interface for multigrid level creation (#579)
* Op - add interface for multigrid level creation
* Op - add implementation for OperatorMultigridLevelCreate
* make style
* make tidy
* Op - add test t550, fix errors
* Tests - add Fortran version of t550
* Tests - add t511 for testing tensor basis multigrid level setup
* make style and tidy
* Tests - fix t55* memory leaks
* Tests - add t552 for non-tensor basis multigrid levels
* CUDA - use CeedIntMax in shared CUDA backend
* Tests - add OCCA test exception for t55*
* Op - add lvector global prolongation multiplicity, simplifies user interface
* Solids - convert example to new interface
* make style
* Tests - convert t550 to multicomponent
* Solids - drop unused ceed_fine
* Python - add new multigrid level interface
* Python - fix operator wrap, use ceed python obj rather than ceed pointer
* Gallery - update comment slightly
* Tests - remove accidental duplicate test
* Multigrid - add size=2 case as well
* Operator - drop unneeded inline
* QFunction - simplify context ownership to match vector
* make style
* Python - update multigrid function signature
* Operator - refactor prolong/restrict qfunctions as scaling qfunctions
* Vector - add testing for reciprocal and add to Fortran/Python interfaces
* CUDA - add VectorReciprocal on device
* Gallery - drop specalized versions for 'Scale', wil fix performance hit later
* Hip - add vector reciprocal
* Operator - add more flexible prologation basis creation interface
* Vec - make sure data is set for VectorReciprocal
* Tests - drop ncomp for t550/1 so kernel is not too large for Magma backend
* Tests - add missing lcov markers
* make style
* Travis - allow ARM job to fail
* Travis - fix intel install
* Travis - try different install dir name for inteloneapi
* Travis - add ifort, ipp packages
* Tests - add missing lcov marker
show more ...
|
| 477729cf | 18-Jul-2020 |
Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com> |
Ceed - add message storing error handler (#587)
* Ceed - add message storing error handler
* Python - use CeedErrorStore and CeedGetErrorMessage to pass messages from C to Python
* make style
Ceed - add message storing error handler (#587)
* Ceed - add message storing error handler
* Python - use CeedErrorStore and CeedGetErrorMessage to pass messages from C to Python
* make style
* make tidy
* Python - add comment about cffi and vargs
* Ceed - add 'store' as possible env option for CEED_ERROR_HANDLER
* Python - and error handling for creation of ceed context
* Ceed - statically allocate error message array
* Ceed - simplify error message copying and guard against buffer overflow
* Tests - fix small t005 python bug
* Tests - fix small leak in t005
* Ceed - small fix in setting error handler from env
* Tests - add missing lcov markers
show more ...
|
| 6a6c615b | 30-Jun-2020 |
Jeremy L Thompson <thompson.jeremy.luke@gmail.com> |
Vec - add CeedVectorTakeArray |
| fc6bbced | 25-Jun-2020 |
Jeremy L Thompson <thompson.jeremy.luke@gmail.com> |
Cov - drop debug code from code coverage and run make tidy |