xref: /libCEED/julia/LibCEED.jl/src/C.jl (revision 701e0cfd97ae4af0841d3c14197dc3138b3e8e2f)
144554ea0SWill Pazner# Low-level C API for libCEED
244554ea0SWill Pazner
344554ea0SWill Paznermodule C
444554ea0SWill Pazner
580a9ef05SNatalie Beamsusing Libdl, libCEED_jll, Preferences
680a9ef05SNatalie Beamsusing libCEED_jll: libceed, libceed_handle
744554ea0SWill Pazner
880a9ef05SNatalie Beamsconst CeedScalar =
980a9ef05SNatalie Beams    @load_preference("CeedScalar", "Float64") == "Float64" ? Float64 : Float32
10ec672a92SWill Paznerconst UINT_MAX = typemax(Cuint)
11ec672a92SWill Paznerinclude(joinpath(@__DIR__, "generated", "libceed_bindings.jl"))
1244554ea0SWill Pazner
1344554ea0SWill Paznerconst CEED_STRIDES_BACKEND = Ref{Ptr{CeedInt}}()
14356036faSJeremy L Thompsonconst CEED_BASIS_NONE = Ref{CeedBasis}()
1544554ea0SWill Paznerconst CEED_VECTOR_ACTIVE = Ref{CeedVector}()
1644554ea0SWill Paznerconst CEED_VECTOR_NONE = Ref{CeedVector}()
1744554ea0SWill Paznerconst CEED_ELEMRESTRICTION_NONE = Ref{CeedElemRestriction}()
1844554ea0SWill Paznerconst CEED_QFUNCTION_NONE = Ref{CeedQFunction}()
1944554ea0SWill Paznerconst CEED_REQUEST_IMMEDIATE = Ref{CeedRequest}()
2044554ea0SWill Paznerconst CEED_REQUEST_ORDERED = Ref{CeedRequest}()
2144554ea0SWill Pazner
2244554ea0SWill Paznerfunction __init__()
2344554ea0SWill Pazner    # some global variables
2444554ea0SWill Pazner    CEED_STRIDES_BACKEND[] = cglobal((:CEED_STRIDES_BACKEND, libceed))
25*a36217cbSJeremy L Thompson    CEED_BASIS_NONE[] = unsafe_load(cglobal((:CEED_BASIS_NONE, libceed), CeedBasis))
2644554ea0SWill Pazner    CEED_VECTOR_ACTIVE[] = unsafe_load(cglobal((:CEED_VECTOR_ACTIVE, libceed), CeedVector))
2744554ea0SWill Pazner    CEED_VECTOR_NONE[] = unsafe_load(cglobal((:CEED_VECTOR_NONE, libceed), CeedVector))
2844554ea0SWill Pazner    CEED_ELEMRESTRICTION_NONE[] =
2944554ea0SWill Pazner        unsafe_load(cglobal((:CEED_ELEMRESTRICTION_NONE, libceed), CeedElemRestriction))
3044554ea0SWill Pazner    CEED_QFUNCTION_NONE[] =
3144554ea0SWill Pazner        unsafe_load(cglobal((:CEED_QFUNCTION_NONE, libceed), CeedQFunction))
3244554ea0SWill Pazner    CEED_REQUEST_IMMEDIATE[] =
3344554ea0SWill Pazner        unsafe_load(cglobal((:CEED_REQUEST_IMMEDIATE, libceed), Ptr{CeedRequest}))
3444554ea0SWill Pazner    CEED_REQUEST_ORDERED[] =
3544554ea0SWill Pazner        unsafe_load(cglobal((:CEED_REQUEST_ORDERED, libceed), Ptr{CeedRequest}))
3644554ea0SWill Paznerend
3744554ea0SWill Pazner
3844554ea0SWill Paznerend # module
39