Low-level C interface

The low-level interface (provided in the LibCEED.C module) is in one-to-one correspondence with the C libCEED iterface, and is automatically generated (with some minor manual modifications) using the Julia package Clang.jl. The code used to generate bindings is available in generate_bindings.jl.

With the low-level interface, the user is responsible for freeing all allocated memory (calling the appropriate Ceed*Destroy functions). This interface is not type-safe, and calling functions with the wrong arguments can cause libCEED to crash.

It is generally recommended for users to use the Julia interface exported from the LibCEED module, unless other specific low-level functionality is required.