xref: /libCEED/julia/LibCEED.jl/README.md (revision 186a14806ccbe2f950aab4a7a630e17f904c09ce)
144554ea0SWill Pazner# LibCEED.jl: Julia Interface for [libCEED](https://github.com/CEED/libCEED)
244554ea0SWill Pazner
36f5dc8baSWill PaznerPlease see the [LibCEED.jl
46f5dc8baSWill Paznerdocumentation](http://ceed.exascaleproject.org/libCEED-julia-docs/dev/) for
56f5dc8baSWill Paznerusage and API documentation.
66f5dc8baSWill Pazner
744554ea0SWill Pazner## Installation
844554ea0SWill Pazner
96f5dc8baSWill PaznerThe LibCEED.jl package can be installed with Julia's package manager by running
106f5dc8baSWill Pazner`] add LibCEED`. This will automatically install a pre-built binary of the
116f5dc8baSWill PaznerlibCEED library. If you require features of a specific build of libCEED (e.g.
126f5dc8baSWill PaznerCUDA/GPU support, specific compiler flags, etc.) then you should compile your
136f5dc8baSWill Paznerown version of the libCEED library, and configure LibCEED.jl to use this binary
14cbdd7b68SWill Pazneras described in the [Configuring LibCEED.jl](#configuring-libceedjl) section.
1544554ea0SWill Pazner
166f5dc8baSWill Pazner**Warning:** the pre-built libCEED binaries do not support CUDA backends
176f5dc8baSWill Pazner
186f5dc8baSWill PaznerThe pre-built binaries automatically installed by LibCEED.jl (through the
196f5dc8baSWill Pazner[libCEED_jll](https://juliahub.com/ui/Packages/libCEED_jll/LB2fn) package) are
206f5dc8baSWill Paznernot built with CUDA support. If you want to run libCEED on the GPU, you will
216f5dc8baSWill Paznerhave to build libCEED from source and configure LibCEED.jl as described in the
22cbdd7b68SWill Pazner[Configuring LibCEED.jl](#configuring-libceedjl) section.
236f5dc8baSWill Pazner
246f5dc8baSWill Pazner### Configuring LibCEED.jl
256f5dc8baSWill Pazner
266f5dc8baSWill PaznerBy default, LibCEED.jl will use the pre-built libCEED binaries provided by the
276f5dc8baSWill Pazner[libCEED_jll](https://juliahub.com/ui/Packages/libCEED_jll/LB2fn) package. If
286f5dc8baSWill Pazneryou wish to use a different libCEED binary (e.g. one built from source),
29*186a1480SWill PaznerLibCEED.jl can be configured using Julia's _preferences_ mechanism. Note that
30*186a1480SWill Paznerthis preference will be set for the currently active Julia environment, and can
31*186a1480SWill Paznerbe different between different environments. The Julia session must be restarted
32*186a1480SWill Paznerfor changes to take effect.
336f5dc8baSWill Pazner
3444554ea0SWill Pazner```julia
35*186a1480SWill Paznerjulia> using LibCEED
36*186a1480SWill Paznerjulia> set_libceed_path!("/path/to/libceed.so")
37*186a1480SWill Pazner[ Info: Setting the libCEED library path to /path/to/libceed.so.
38*186a1480SWill Pazner[ Info: Restart the Julia session for changes to take effect.
3944554ea0SWill Pazner```
40*186a1480SWill Pazner
41*186a1480SWill PaznerSee [Preferences.jl](https://github.com/JuliaPackaging/Preferences.jl) for more
42*186a1480SWill Paznerinformation.
43