History log of /libCEED/rust/libceed-sys/c-src/gallery/scale/ceed-scale.c (Results 26 – 27 of 27)
Revision Date Author Comments
# 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 ...


# 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 ...


12