xref: /libCEED/julia/LibCEED.jl/README.md (revision 3f21f6b10abeb5d85d3454ea5cd38498737dc88a)
1# LibCEED.jl: Julia Interface for [libCEED](https://github.com/CEED/libCEED)
2
3Please see the [LibCEED.jl
4documentation](http://ceed.exascaleproject.org/libCEED-julia-docs/dev/) for
5usage and API documentation.
6
7## Installation
8
9The LibCEED.jl package can be installed with Julia's package manager by running
10`] add LibCEED`. This will automatically install a pre-built binary of the
11libCEED library. If you require features of a specific build of libCEED (e.g.
12CUDA/GPU support, specific compiler flags, etc.) then you should compile your
13own version of the libCEED library, and configure LibCEED.jl to use this binary
14as described in the [Configuring LibCEED.jl](#configuring-libceedjl) section.
15
16**Warning:** the pre-built libCEED binaries do not support CUDA backends
17
18The pre-built binaries automatically installed by LibCEED.jl (through the
19[libCEED_jll](https://juliahub.com/ui/Packages/libCEED_jll/LB2fn) package) are
20not built with CUDA support. If you want to run libCEED on the GPU, you will
21have to build libCEED from source and configure LibCEED.jl as described in the
22[Configuring LibCEED.jl](#configuring-libceedjl) section.
23
24### Configuring LibCEED.jl
25
26By default, LibCEED.jl will use the pre-built libCEED binaries provided by the
27[libCEED_jll](https://juliahub.com/ui/Packages/libCEED_jll/LB2fn) package. If
28you wish to use a different libCEED binary (e.g. one built from source),
29LibCEED.jl can be configured using Julia's _preferences_ mechanism. Note that
30this preference will be set for the currently active Julia environment, and can
31be different between different environments. The Julia session must be restarted
32for changes to take effect.
33
34```julia
35julia> using LibCEED
36julia> set_libceed_path!("/path/to/libceed.so")
37[ Info: Setting the libCEED library path to /path/to/libceed.so.
38[ Info: Restart the Julia session for changes to take effect.
39```
40
41See [Preferences.jl](https://github.com/JuliaPackaging/Preferences.jl) for more
42information.
43