xref: /libCEED/julia/LibCEED.jl/src/generated/libceed_bindings.jl (revision b2e3f8ecbfa285d0f4ffde9b24c57cc13f0319fb)
1using CEnum
2
3#! format: off
4
5
6const CeedInt = Int32
7
8const CeedSize = Cptrdiff_t
9
10@cenum CeedScalarType::UInt32 begin
11    CEED_SCALAR_FP32 = 0
12    CEED_SCALAR_FP64 = 1
13end
14
15@cenum CeedErrorType::Int32 begin
16    CEED_ERROR_SUCCESS = 0
17    CEED_ERROR_MINOR = 1
18    CEED_ERROR_DIMENSION = 2
19    CEED_ERROR_INCOMPLETE = 3
20    CEED_ERROR_INCOMPATIBLE = 4
21    CEED_ERROR_ACCESS = 5
22    CEED_ERROR_MAJOR = -1
23    CEED_ERROR_BACKEND = -2
24    CEED_ERROR_UNSUPPORTED = -3
25end
26
27@cenum CeedMemType::UInt32 begin
28    CEED_MEM_HOST = 0
29    CEED_MEM_DEVICE = 1
30end
31
32@cenum CeedCopyMode::UInt32 begin
33    CEED_COPY_VALUES = 0
34    CEED_USE_POINTER = 1
35    CEED_OWN_POINTER = 2
36end
37
38@cenum CeedNormType::UInt32 begin
39    CEED_NORM_1 = 0
40    CEED_NORM_2 = 1
41    CEED_NORM_MAX = 2
42end
43
44@cenum CeedTransposeMode::UInt32 begin
45    CEED_NOTRANSPOSE = 0
46    CEED_TRANSPOSE = 1
47end
48
49@cenum CeedEvalMode::UInt32 begin
50    CEED_EVAL_NONE = 0
51    CEED_EVAL_INTERP = 1
52    CEED_EVAL_GRAD = 2
53    CEED_EVAL_DIV = 4
54    CEED_EVAL_CURL = 8
55    CEED_EVAL_WEIGHT = 16
56end
57
58@cenum CeedQuadMode::UInt32 begin
59    CEED_GAUSS = 0
60    CEED_GAUSS_LOBATTO = 1
61end
62
63@cenum CeedElemTopology::UInt32 begin
64    CEED_TOPOLOGY_LINE = 65536
65    CEED_TOPOLOGY_TRIANGLE = 131073
66    CEED_TOPOLOGY_QUAD = 131074
67    CEED_TOPOLOGY_TET = 196611
68    CEED_TOPOLOGY_PYRAMID = 196612
69    CEED_TOPOLOGY_PRISM = 196613
70    CEED_TOPOLOGY_HEX = 196614
71end
72
73@cenum CeedContextFieldType::UInt32 begin
74    CEED_CONTEXT_FIELD_DOUBLE = 1
75    CEED_CONTEXT_FIELD_INT32 = 2
76end
77
78mutable struct Ceed_private end
79
80const Ceed = Ptr{Ceed_private}
81
82mutable struct CeedRequest_private end
83
84const CeedRequest = Ptr{CeedRequest_private}
85
86mutable struct CeedVector_private end
87
88const CeedVector = Ptr{CeedVector_private}
89
90mutable struct CeedElemRestriction_private end
91
92const CeedElemRestriction = Ptr{CeedElemRestriction_private}
93
94mutable struct CeedBasis_private end
95
96const CeedBasis = Ptr{CeedBasis_private}
97
98mutable struct CeedQFunctionField_private end
99
100const CeedQFunctionField = Ptr{CeedQFunctionField_private}
101
102mutable struct CeedQFunction_private end
103
104const CeedQFunction = Ptr{CeedQFunction_private}
105
106mutable struct CeedOperatorField_private end
107
108const CeedOperatorField = Ptr{CeedOperatorField_private}
109
110mutable struct CeedQFunctionContext_private end
111
112const CeedQFunctionContext = Ptr{CeedQFunctionContext_private}
113
114mutable struct CeedContextFieldLabel_private end
115
116const CeedContextFieldLabel = Ptr{CeedContextFieldLabel_private}
117
118mutable struct CeedOperator_private end
119
120const CeedOperator = Ptr{CeedOperator_private}
121
122function CeedRegistryGetList(n, resources, array)
123    ccall((:CeedRegistryGetList, libceed), Cint, (Ptr{Csize_t}, Ptr{Ptr{Ptr{Cchar}}}, Ptr{Ptr{CeedInt}}), n, resources, array)
124end
125
126function CeedInit(resource, ceed)
127    ccall((:CeedInit, libceed), Cint, (Ptr{Cchar}, Ptr{Ceed}), resource, ceed)
128end
129
130function CeedReferenceCopy(ceed, ceed_copy)
131    ccall((:CeedReferenceCopy, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, ceed_copy)
132end
133
134function CeedGetResource(ceed, resource)
135    ccall((:CeedGetResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource)
136end
137
138function CeedIsDeterministic(ceed, is_deterministic)
139    ccall((:CeedIsDeterministic, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_deterministic)
140end
141
142function CeedAddJitSourceRoot(ceed, jit_source_root)
143    ccall((:CeedAddJitSourceRoot, libceed), Cint, (Ceed, Ptr{Cchar}), ceed, jit_source_root)
144end
145
146function CeedView(ceed, stream)
147    ccall((:CeedView, libceed), Cint, (Ceed, Ptr{Libc.FILE}), ceed, stream)
148end
149
150function CeedDestroy(ceed)
151    ccall((:CeedDestroy, libceed), Cint, (Ptr{Ceed},), ceed)
152end
153
154# typedef int ( * CeedErrorHandler ) ( Ceed , const char * , int , const char * , int , const char * , va_list * )
155const CeedErrorHandler = Ptr{Cvoid}
156
157function CeedSetErrorHandler(ceed, eh)
158    ccall((:CeedSetErrorHandler, libceed), Cint, (Ceed, CeedErrorHandler), ceed, eh)
159end
160
161function CeedGetErrorMessage(arg1, err_msg)
162    ccall((:CeedGetErrorMessage, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), arg1, err_msg)
163end
164
165function CeedResetErrorMessage(arg1, err_msg)
166    ccall((:CeedResetErrorMessage, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), arg1, err_msg)
167end
168
169function CeedGetVersion(major, minor, patch, release)
170    ccall((:CeedGetVersion, libceed), Cint, (Ptr{Cint}, Ptr{Cint}, Ptr{Cint}, Ptr{Bool}), major, minor, patch, release)
171end
172
173function CeedGetScalarType(scalar_type)
174    ccall((:CeedGetScalarType, libceed), Cint, (Ptr{CeedScalarType},), scalar_type)
175end
176
177function CeedGetPreferredMemType(ceed, type)
178    ccall((:CeedGetPreferredMemType, libceed), Cint, (Ceed, Ptr{CeedMemType}), ceed, type)
179end
180
181function CeedVectorCreate(ceed, len, vec)
182    ccall((:CeedVectorCreate, libceed), Cint, (Ceed, CeedSize, Ptr{CeedVector}), ceed, len, vec)
183end
184
185function CeedVectorReferenceCopy(vec, vec_copy)
186    ccall((:CeedVectorReferenceCopy, libceed), Cint, (CeedVector, Ptr{CeedVector}), vec, vec_copy)
187end
188
189function CeedVectorCopy(vec, vec_copy)
190    ccall((:CeedVectorCopy, libceed), Cint, (CeedVector, CeedVector), vec, vec_copy)
191end
192
193function CeedVectorSetArray(vec, mem_type, copy_mode, array)
194    ccall((:CeedVectorSetArray, libceed), Cint, (CeedVector, CeedMemType, CeedCopyMode, Ptr{CeedScalar}), vec, mem_type, copy_mode, array)
195end
196
197function CeedVectorSetValue(vec, value)
198    ccall((:CeedVectorSetValue, libceed), Cint, (CeedVector, CeedScalar), vec, value)
199end
200
201function CeedVectorSyncArray(vec, mem_type)
202    ccall((:CeedVectorSyncArray, libceed), Cint, (CeedVector, CeedMemType), vec, mem_type)
203end
204
205function CeedVectorTakeArray(vec, mem_type, array)
206    ccall((:CeedVectorTakeArray, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
207end
208
209function CeedVectorGetArray(vec, mem_type, array)
210    ccall((:CeedVectorGetArray, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
211end
212
213function CeedVectorGetArrayRead(vec, mem_type, array)
214    ccall((:CeedVectorGetArrayRead, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
215end
216
217function CeedVectorGetArrayWrite(vec, mem_type, array)
218    ccall((:CeedVectorGetArrayWrite, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array)
219end
220
221function CeedVectorRestoreArray(vec, array)
222    ccall((:CeedVectorRestoreArray, libceed), Cint, (CeedVector, Ptr{Ptr{CeedScalar}}), vec, array)
223end
224
225function CeedVectorRestoreArrayRead(vec, array)
226    ccall((:CeedVectorRestoreArrayRead, libceed), Cint, (CeedVector, Ptr{Ptr{CeedScalar}}), vec, array)
227end
228
229function CeedVectorNorm(vec, type, norm)
230    ccall((:CeedVectorNorm, libceed), Cint, (CeedVector, CeedNormType, Ptr{CeedScalar}), vec, type, norm)
231end
232
233function CeedVectorScale(x, alpha)
234    ccall((:CeedVectorScale, libceed), Cint, (CeedVector, CeedScalar), x, alpha)
235end
236
237function CeedVectorAXPY(y, alpha, x)
238    ccall((:CeedVectorAXPY, libceed), Cint, (CeedVector, CeedScalar, CeedVector), y, alpha, x)
239end
240
241function CeedVectorAXPBY(y, alpha, beta, x)
242    ccall((:CeedVectorAXPBY, libceed), Cint, (CeedVector, CeedScalar, CeedScalar, CeedVector), y, alpha, beta, x)
243end
244
245function CeedVectorPointwiseMult(w, x, y)
246    ccall((:CeedVectorPointwiseMult, libceed), Cint, (CeedVector, CeedVector, CeedVector), w, x, y)
247end
248
249function CeedVectorReciprocal(vec)
250    ccall((:CeedVectorReciprocal, libceed), Cint, (CeedVector,), vec)
251end
252
253function CeedVectorViewRange(vec, start, stop, step, fp_fmt, stream)
254    ccall((:CeedVectorViewRange, libceed), Cint, (CeedVector, CeedSize, CeedSize, CeedInt, Ptr{Cchar}, Ptr{Libc.FILE}), vec, start, stop, step, fp_fmt, stream)
255end
256
257function CeedVectorView(vec, fp_fmt, stream)
258    ccall((:CeedVectorView, libceed), Cint, (CeedVector, Ptr{Cchar}, Ptr{Libc.FILE}), vec, fp_fmt, stream)
259end
260
261function CeedVectorGetCeed(vec, ceed)
262    ccall((:CeedVectorGetCeed, libceed), Cint, (CeedVector, Ptr{Ceed}), vec, ceed)
263end
264
265function CeedVectorGetLength(vec, length)
266    ccall((:CeedVectorGetLength, libceed), Cint, (CeedVector, Ptr{CeedSize}), vec, length)
267end
268
269function CeedVectorDestroy(vec)
270    ccall((:CeedVectorDestroy, libceed), Cint, (Ptr{CeedVector},), vec)
271end
272
273function CeedRequestWait(req)
274    ccall((:CeedRequestWait, libceed), Cint, (Ptr{CeedRequest},), req)
275end
276
277function CeedElemRestrictionCreate(ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
278    ccall((:CeedElemRestrictionCreate, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
279end
280
281function CeedElemRestrictionCreateOriented(ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, orient, rstr)
282    ccall((:CeedElemRestrictionCreateOriented, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{Bool}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, orient, rstr)
283end
284
285function CeedElemRestrictionCreateStrided(ceed, num_elem, elem_size, num_comp, l_size, strides, rstr)
286    ccall((:CeedElemRestrictionCreateStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedSize, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, l_size, strides, rstr)
287end
288
289function CeedElemRestrictionCreateBlocked(ceed, num_elem, elem_size, blk_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
290    ccall((:CeedElemRestrictionCreateBlocked, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, blk_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr)
291end
292
293function CeedElemRestrictionCreateBlockedStrided(ceed, num_elem, elem_size, blk_size, num_comp, l_size, strides, rstr)
294    ccall((:CeedElemRestrictionCreateBlockedStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, blk_size, num_comp, l_size, strides, rstr)
295end
296
297function CeedElemRestrictionReferenceCopy(rstr, rstr_copy)
298    ccall((:CeedElemRestrictionReferenceCopy, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, rstr_copy)
299end
300
301function CeedElemRestrictionCreateVector(rstr, lvec, evec)
302    ccall((:CeedElemRestrictionCreateVector, libceed), Cint, (CeedElemRestriction, Ptr{CeedVector}, Ptr{CeedVector}), rstr, lvec, evec)
303end
304
305function CeedElemRestrictionApply(rstr, t_mode, u, ru, request)
306    ccall((:CeedElemRestrictionApply, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, t_mode, u, ru, request)
307end
308
309function CeedElemRestrictionApplyBlock(rstr, block, t_mode, u, ru, request)
310    ccall((:CeedElemRestrictionApplyBlock, libceed), Cint, (CeedElemRestriction, CeedInt, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, block, t_mode, u, ru, request)
311end
312
313function CeedElemRestrictionGetCeed(rstr, ceed)
314    ccall((:CeedElemRestrictionGetCeed, libceed), Cint, (CeedElemRestriction, Ptr{Ceed}), rstr, ceed)
315end
316
317function CeedElemRestrictionGetCompStride(rstr, comp_stride)
318    ccall((:CeedElemRestrictionGetCompStride, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, comp_stride)
319end
320
321function CeedElemRestrictionGetNumElements(rstr, num_elem)
322    ccall((:CeedElemRestrictionGetNumElements, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_elem)
323end
324
325function CeedElemRestrictionGetElementSize(rstr, elem_size)
326    ccall((:CeedElemRestrictionGetElementSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, elem_size)
327end
328
329function CeedElemRestrictionGetLVectorSize(rstr, l_size)
330    ccall((:CeedElemRestrictionGetLVectorSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedSize}), rstr, l_size)
331end
332
333function CeedElemRestrictionGetNumComponents(rstr, num_comp)
334    ccall((:CeedElemRestrictionGetNumComponents, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_comp)
335end
336
337function CeedElemRestrictionGetNumBlocks(rstr, num_blk)
338    ccall((:CeedElemRestrictionGetNumBlocks, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_blk)
339end
340
341function CeedElemRestrictionGetBlockSize(rstr, blk_size)
342    ccall((:CeedElemRestrictionGetBlockSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, blk_size)
343end
344
345function CeedElemRestrictionGetMultiplicity(rstr, mult)
346    ccall((:CeedElemRestrictionGetMultiplicity, libceed), Cint, (CeedElemRestriction, CeedVector), rstr, mult)
347end
348
349function CeedElemRestrictionView(rstr, stream)
350    ccall((:CeedElemRestrictionView, libceed), Cint, (CeedElemRestriction, Ptr{Libc.FILE}), rstr, stream)
351end
352
353function CeedElemRestrictionDestroy(rstr)
354    ccall((:CeedElemRestrictionDestroy, libceed), Cint, (Ptr{CeedElemRestriction},), rstr)
355end
356
357function CeedBasisCreateTensorH1Lagrange(ceed, dim, num_comp, P, Q, quad_mode, basis)
358    ccall((:CeedBasisCreateTensorH1Lagrange, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedQuadMode, Ptr{CeedBasis}), ceed, dim, num_comp, P, Q, quad_mode, basis)
359end
360
361function CeedBasisCreateTensorH1(ceed, dim, num_comp, P_1d, Q_1d, interp_1d, grad_1d, q_ref_1d, q_weight_1d, basis)
362    ccall((:CeedBasisCreateTensorH1, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedBasis}), ceed, dim, num_comp, P_1d, Q_1d, interp_1d, grad_1d, q_ref_1d, q_weight_1d, basis)
363end
364
365function CeedBasisCreateH1(ceed, topo, num_comp, num_nodes, nqpts, interp, grad, q_ref, q_weights, basis)
366    ccall((:CeedBasisCreateH1, libceed), Cint, (Ceed, CeedElemTopology, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedBasis}), ceed, topo, num_comp, num_nodes, nqpts, interp, grad, q_ref, q_weights, basis)
367end
368
369function CeedBasisCreateHdiv(ceed, topo, num_comp, num_nodes, nqpts, interp, div, q_ref, q_weights, basis)
370    ccall((:CeedBasisCreateHdiv, libceed), Cint, (Ceed, CeedElemTopology, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedBasis}), ceed, topo, num_comp, num_nodes, nqpts, interp, div, q_ref, q_weights, basis)
371end
372
373function CeedBasisCreateHcurl(ceed, topo, num_comp, num_nodes, nqpts, interp, curl, q_ref, q_weights, basis)
374    ccall((:CeedBasisCreateHcurl, libceed), Cint, (Ceed, CeedElemTopology, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedBasis}), ceed, topo, num_comp, num_nodes, nqpts, interp, curl, q_ref, q_weights, basis)
375end
376
377function CeedBasisCreateProjection(basis_from, basis_to, basis_project)
378    ccall((:CeedBasisCreateProjection, libceed), Cint, (CeedBasis, CeedBasis, Ptr{CeedBasis}), basis_from, basis_to, basis_project)
379end
380
381function CeedBasisReferenceCopy(basis, basis_copy)
382    ccall((:CeedBasisReferenceCopy, libceed), Cint, (CeedBasis, Ptr{CeedBasis}), basis, basis_copy)
383end
384
385function CeedBasisView(basis, stream)
386    ccall((:CeedBasisView, libceed), Cint, (CeedBasis, Ptr{Libc.FILE}), basis, stream)
387end
388
389function CeedBasisApply(basis, num_elem, t_mode, eval_mode, u, v)
390    ccall((:CeedBasisApply, libceed), Cint, (CeedBasis, CeedInt, CeedTransposeMode, CeedEvalMode, CeedVector, CeedVector), basis, num_elem, t_mode, eval_mode, u, v)
391end
392
393function CeedBasisGetCeed(basis, ceed)
394    ccall((:CeedBasisGetCeed, libceed), Cint, (CeedBasis, Ptr{Ceed}), basis, ceed)
395end
396
397function CeedBasisGetDimension(basis, dim)
398    ccall((:CeedBasisGetDimension, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, dim)
399end
400
401function CeedBasisGetTopology(basis, topo)
402    ccall((:CeedBasisGetTopology, libceed), Cint, (CeedBasis, Ptr{CeedElemTopology}), basis, topo)
403end
404
405function CeedBasisGetNumComponents(basis, num_comp)
406    ccall((:CeedBasisGetNumComponents, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, num_comp)
407end
408
409function CeedBasisGetNumNodes(basis, P)
410    ccall((:CeedBasisGetNumNodes, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P)
411end
412
413function CeedBasisGetNumNodes1D(basis, P_1d)
414    ccall((:CeedBasisGetNumNodes1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P_1d)
415end
416
417function CeedBasisGetNumQuadraturePoints(basis, Q)
418    ccall((:CeedBasisGetNumQuadraturePoints, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q)
419end
420
421function CeedBasisGetNumQuadraturePoints1D(basis, Q_1d)
422    ccall((:CeedBasisGetNumQuadraturePoints1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q_1d)
423end
424
425function CeedBasisGetQRef(basis, q_ref)
426    ccall((:CeedBasisGetQRef, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_ref)
427end
428
429function CeedBasisGetQWeights(basis, q_weights)
430    ccall((:CeedBasisGetQWeights, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_weights)
431end
432
433function CeedBasisGetInterp(basis, interp)
434    ccall((:CeedBasisGetInterp, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp)
435end
436
437function CeedBasisGetInterp1D(basis, interp_1d)
438    ccall((:CeedBasisGetInterp1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp_1d)
439end
440
441function CeedBasisGetGrad(basis, grad)
442    ccall((:CeedBasisGetGrad, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad)
443end
444
445function CeedBasisGetGrad1D(basis, grad_1d)
446    ccall((:CeedBasisGetGrad1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad_1d)
447end
448
449function CeedBasisGetDiv(basis, div)
450    ccall((:CeedBasisGetDiv, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, div)
451end
452
453function CeedBasisGetCurl(basis, curl)
454    ccall((:CeedBasisGetCurl, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, curl)
455end
456
457function CeedBasisDestroy(basis)
458    ccall((:CeedBasisDestroy, libceed), Cint, (Ptr{CeedBasis},), basis)
459end
460
461function CeedGaussQuadrature(Q, q_ref_1d, q_weight_1d)
462    ccall((:CeedGaussQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d)
463end
464
465function CeedLobattoQuadrature(Q, q_ref_1d, q_weight_1d)
466    ccall((:CeedLobattoQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d)
467end
468
469# typedef int ( * CeedQFunctionUser ) ( void * ctx , const CeedInt Q , const CeedScalar * const * in , CeedScalar * const * out )
470const CeedQFunctionUser = Ptr{Cvoid}
471
472function CeedQFunctionCreateInterior(ceed, vec_length, f, source, qf)
473    ccall((:CeedQFunctionCreateInterior, libceed), Cint, (Ceed, CeedInt, CeedQFunctionUser, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, vec_length, f, source, qf)
474end
475
476function CeedQFunctionCreateInteriorByName(ceed, name, qf)
477    ccall((:CeedQFunctionCreateInteriorByName, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, name, qf)
478end
479
480function CeedQFunctionCreateIdentity(ceed, size, in_mode, out_mode, qf)
481    ccall((:CeedQFunctionCreateIdentity, libceed), Cint, (Ceed, CeedInt, CeedEvalMode, CeedEvalMode, Ptr{CeedQFunction}), ceed, size, in_mode, out_mode, qf)
482end
483
484function CeedQFunctionReferenceCopy(qf, qf_copy)
485    ccall((:CeedQFunctionReferenceCopy, libceed), Cint, (CeedQFunction, Ptr{CeedQFunction}), qf, qf_copy)
486end
487
488function CeedQFunctionAddInput(qf, field_name, size, eval_mode)
489    ccall((:CeedQFunctionAddInput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode)
490end
491
492function CeedQFunctionAddOutput(qf, field_name, size, eval_mode)
493    ccall((:CeedQFunctionAddOutput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode)
494end
495
496function CeedQFunctionGetFields(qf, num_input_fields, input_fields, num_output_fields, output_fields)
497    ccall((:CeedQFunctionGetFields, libceed), Cint, (CeedQFunction, Ptr{CeedInt}, Ptr{Ptr{CeedQFunctionField}}, Ptr{CeedInt}, Ptr{Ptr{CeedQFunctionField}}), qf, num_input_fields, input_fields, num_output_fields, output_fields)
498end
499
500function CeedQFunctionSetContext(qf, ctx)
501    ccall((:CeedQFunctionSetContext, libceed), Cint, (CeedQFunction, CeedQFunctionContext), qf, ctx)
502end
503
504function CeedQFunctionSetContextWritable(qf, is_writable)
505    ccall((:CeedQFunctionSetContextWritable, libceed), Cint, (CeedQFunction, Bool), qf, is_writable)
506end
507
508function CeedQFunctionSetUserFlopsEstimate(qf, flops)
509    ccall((:CeedQFunctionSetUserFlopsEstimate, libceed), Cint, (CeedQFunction, CeedSize), qf, flops)
510end
511
512function CeedQFunctionView(qf, stream)
513    ccall((:CeedQFunctionView, libceed), Cint, (CeedQFunction, Ptr{Libc.FILE}), qf, stream)
514end
515
516function CeedQFunctionGetCeed(qf, ceed)
517    ccall((:CeedQFunctionGetCeed, libceed), Cint, (CeedQFunction, Ptr{Ceed}), qf, ceed)
518end
519
520function CeedQFunctionApply(qf, Q, u, v)
521    ccall((:CeedQFunctionApply, libceed), Cint, (CeedQFunction, CeedInt, Ptr{CeedVector}, Ptr{CeedVector}), qf, Q, u, v)
522end
523
524function CeedQFunctionDestroy(qf)
525    ccall((:CeedQFunctionDestroy, libceed), Cint, (Ptr{CeedQFunction},), qf)
526end
527
528function CeedQFunctionFieldGetName(qf_field, field_name)
529    ccall((:CeedQFunctionFieldGetName, libceed), Cint, (CeedQFunctionField, Ptr{Ptr{Cchar}}), qf_field, field_name)
530end
531
532function CeedQFunctionFieldGetSize(qf_field, size)
533    ccall((:CeedQFunctionFieldGetSize, libceed), Cint, (CeedQFunctionField, Ptr{CeedInt}), qf_field, size)
534end
535
536function CeedQFunctionFieldGetEvalMode(qf_field, eval_mode)
537    ccall((:CeedQFunctionFieldGetEvalMode, libceed), Cint, (CeedQFunctionField, Ptr{CeedEvalMode}), qf_field, eval_mode)
538end
539
540# typedef int ( * CeedQFunctionContextDataDestroyUser ) ( void * data )
541const CeedQFunctionContextDataDestroyUser = Ptr{Cvoid}
542
543function CeedQFunctionContextCreate(ceed, ctx)
544    ccall((:CeedQFunctionContextCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionContext}), ceed, ctx)
545end
546
547function CeedQFunctionContextReferenceCopy(ctx, ctx_copy)
548    ccall((:CeedQFunctionContextReferenceCopy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedQFunctionContext}), ctx, ctx_copy)
549end
550
551function CeedQFunctionContextSetData(ctx, mem_type, copy_mode, size, data)
552    ccall((:CeedQFunctionContextSetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, CeedCopyMode, Csize_t, Ptr{Cvoid}), ctx, mem_type, copy_mode, size, data)
553end
554
555function CeedQFunctionContextTakeData(ctx, mem_type, data)
556    ccall((:CeedQFunctionContextTakeData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data)
557end
558
559function CeedQFunctionContextGetData(ctx, mem_type, data)
560    ccall((:CeedQFunctionContextGetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data)
561end
562
563function CeedQFunctionContextGetDataRead(ctx, mem_type, data)
564    ccall((:CeedQFunctionContextGetDataRead, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data)
565end
566
567function CeedQFunctionContextRestoreData(ctx, data)
568    ccall((:CeedQFunctionContextRestoreData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
569end
570
571function CeedQFunctionContextRestoreDataRead(ctx, data)
572    ccall((:CeedQFunctionContextRestoreDataRead, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
573end
574
575function CeedQFunctionContextRegisterDouble(ctx, field_name, field_offset, num_values, field_description)
576    ccall((:CeedQFunctionContextRegisterDouble, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Csize_t, Csize_t, Ptr{Cchar}), ctx, field_name, field_offset, num_values, field_description)
577end
578
579function CeedQFunctionContextRegisterInt32(ctx, field_name, field_offset, num_values, field_description)
580    ccall((:CeedQFunctionContextRegisterInt32, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Csize_t, Csize_t, Ptr{Cchar}), ctx, field_name, field_offset, num_values, field_description)
581end
582
583function CeedQFunctionContextGetAllFieldLabels(ctx, field_labels, num_fields)
584    ccall((:CeedQFunctionContextGetAllFieldLabels, libceed), Cint, (CeedQFunctionContext, Ptr{Ptr{CeedContextFieldLabel}}, Ptr{CeedInt}), ctx, field_labels, num_fields)
585end
586
587function CeedContextFieldLabelGetDescription(label, field_name, field_description, num_values, field_type)
588    ccall((:CeedContextFieldLabelGetDescription, libceed), Cint, (CeedContextFieldLabel, Ptr{Ptr{Cchar}}, Ptr{Ptr{Cchar}}, Ptr{Csize_t}, Ptr{CeedContextFieldType}), label, field_name, field_description, num_values, field_type)
589end
590
591function CeedQFunctionContextGetContextSize(ctx, ctx_size)
592    ccall((:CeedQFunctionContextGetContextSize, libceed), Cint, (CeedQFunctionContext, Ptr{Csize_t}), ctx, ctx_size)
593end
594
595function CeedQFunctionContextView(ctx, stream)
596    ccall((:CeedQFunctionContextView, libceed), Cint, (CeedQFunctionContext, Ptr{Libc.FILE}), ctx, stream)
597end
598
599function CeedQFunctionContextSetDataDestroy(ctx, f_mem_type, f)
600    ccall((:CeedQFunctionContextSetDataDestroy, libceed), Cint, (CeedQFunctionContext, CeedMemType, CeedQFunctionContextDataDestroyUser), ctx, f_mem_type, f)
601end
602
603function CeedQFunctionContextDestroy(ctx)
604    ccall((:CeedQFunctionContextDestroy, libceed), Cint, (Ptr{CeedQFunctionContext},), ctx)
605end
606
607function CeedOperatorCreate(ceed, qf, dqf, dqfT, op)
608    ccall((:CeedOperatorCreate, libceed), Cint, (Ceed, CeedQFunction, CeedQFunction, CeedQFunction, Ptr{CeedOperator}), ceed, qf, dqf, dqfT, op)
609end
610
611function CeedCompositeOperatorCreate(ceed, op)
612    ccall((:CeedCompositeOperatorCreate, libceed), Cint, (Ceed, Ptr{CeedOperator}), ceed, op)
613end
614
615function CeedOperatorReferenceCopy(op, op_copy)
616    ccall((:CeedOperatorReferenceCopy, libceed), Cint, (CeedOperator, Ptr{CeedOperator}), op, op_copy)
617end
618
619function CeedOperatorSetField(op, field_name, r, b, v)
620    ccall((:CeedOperatorSetField, libceed), Cint, (CeedOperator, Ptr{Cchar}, CeedElemRestriction, CeedBasis, CeedVector), op, field_name, r, b, v)
621end
622
623function CeedOperatorGetFields(op, num_input_fields, input_fields, num_output_fields, output_fields)
624    ccall((:CeedOperatorGetFields, libceed), Cint, (CeedOperator, Ptr{CeedInt}, Ptr{Ptr{CeedOperatorField}}, Ptr{CeedInt}, Ptr{Ptr{CeedOperatorField}}), op, num_input_fields, input_fields, num_output_fields, output_fields)
625end
626
627function CeedCompositeOperatorAddSub(composite_op, sub_op)
628    ccall((:CeedCompositeOperatorAddSub, libceed), Cint, (CeedOperator, CeedOperator), composite_op, sub_op)
629end
630
631function CeedCompositeOperatorGetNumSub(op, num_suboperators)
632    ccall((:CeedCompositeOperatorGetNumSub, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_suboperators)
633end
634
635function CeedCompositeOperatorGetSubList(op, sub_operators)
636    ccall((:CeedCompositeOperatorGetSubList, libceed), Cint, (CeedOperator, Ptr{Ptr{CeedOperator}}), op, sub_operators)
637end
638
639function CeedOperatorCheckReady(op)
640    ccall((:CeedOperatorCheckReady, libceed), Cint, (CeedOperator,), op)
641end
642
643function CeedOperatorGetActiveVectorLengths(op, input_size, output_size)
644    ccall((:CeedOperatorGetActiveVectorLengths, libceed), Cint, (CeedOperator, Ptr{CeedSize}, Ptr{CeedSize}), op, input_size, output_size)
645end
646
647function CeedOperatorSetQFunctionAssemblyReuse(op, reuse_assembly_data)
648    ccall((:CeedOperatorSetQFunctionAssemblyReuse, libceed), Cint, (CeedOperator, Bool), op, reuse_assembly_data)
649end
650
651function CeedOperatorSetQFunctionAssemblyDataUpdateNeeded(op, needs_data_update)
652    ccall((:CeedOperatorSetQFunctionAssemblyDataUpdateNeeded, libceed), Cint, (CeedOperator, Bool), op, needs_data_update)
653end
654
655function CeedOperatorLinearAssembleQFunction(op, assembled, rstr, request)
656    ccall((:CeedOperatorLinearAssembleQFunction, libceed), Cint, (CeedOperator, Ptr{CeedVector}, Ptr{CeedElemRestriction}, Ptr{CeedRequest}), op, assembled, rstr, request)
657end
658
659function CeedOperatorLinearAssembleQFunctionBuildOrUpdate(op, assembled, rstr, request)
660    ccall((:CeedOperatorLinearAssembleQFunctionBuildOrUpdate, libceed), Cint, (CeedOperator, Ptr{CeedVector}, Ptr{CeedElemRestriction}, Ptr{CeedRequest}), op, assembled, rstr, request)
661end
662
663function CeedOperatorLinearAssembleDiagonal(op, assembled, request)
664    ccall((:CeedOperatorLinearAssembleDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
665end
666
667function CeedOperatorLinearAssembleAddDiagonal(op, assembled, request)
668    ccall((:CeedOperatorLinearAssembleAddDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
669end
670
671function CeedOperatorLinearAssemblePointBlockDiagonal(op, assembled, request)
672    ccall((:CeedOperatorLinearAssemblePointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
673end
674
675function CeedOperatorLinearAssembleAddPointBlockDiagonal(op, assembled, request)
676    ccall((:CeedOperatorLinearAssembleAddPointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request)
677end
678
679function CeedOperatorLinearAssembleSymbolic(op, num_entries, rows, cols)
680    ccall((:CeedOperatorLinearAssembleSymbolic, libceed), Cint, (CeedOperator, Ptr{CeedSize}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{CeedInt}}), op, num_entries, rows, cols)
681end
682
683function CeedOperatorLinearAssemble(op, values)
684    ccall((:CeedOperatorLinearAssemble, libceed), Cint, (CeedOperator, CeedVector), op, values)
685end
686
687function CeedCompositeOperatorGetMultiplicity(op, num_skip_indices, skip_indices, mult)
688    ccall((:CeedCompositeOperatorGetMultiplicity, libceed), Cint, (CeedOperator, CeedInt, Ptr{CeedInt}, CeedVector), op, num_skip_indices, skip_indices, mult)
689end
690
691function CeedOperatorMultigridLevelCreate(op_fine, p_mult_fine, rstr_coarse, basis_coarse, op_coarse, op_prolong, op_restrict)
692    ccall((:CeedOperatorMultigridLevelCreate, libceed), Cint, (CeedOperator, CeedVector, CeedElemRestriction, CeedBasis, Ptr{CeedOperator}, Ptr{CeedOperator}, Ptr{CeedOperator}), op_fine, p_mult_fine, rstr_coarse, basis_coarse, op_coarse, op_prolong, op_restrict)
693end
694
695function CeedOperatorMultigridLevelCreateTensorH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
696    ccall((:CeedOperatorMultigridLevelCreateTensorH1, libceed), Cint, (CeedOperator, CeedVector, CeedElemRestriction, CeedBasis, Ptr{CeedScalar}, Ptr{CeedOperator}, Ptr{CeedOperator}, Ptr{CeedOperator}), op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
697end
698
699function CeedOperatorMultigridLevelCreateH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
700    ccall((:CeedOperatorMultigridLevelCreateH1, libceed), Cint, (CeedOperator, CeedVector, CeedElemRestriction, CeedBasis, Ptr{CeedScalar}, Ptr{CeedOperator}, Ptr{CeedOperator}, Ptr{CeedOperator}), op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict)
701end
702
703function CeedOperatorCreateFDMElementInverse(op, fdm_inv, request)
704    ccall((:CeedOperatorCreateFDMElementInverse, libceed), Cint, (CeedOperator, Ptr{CeedOperator}, Ptr{CeedRequest}), op, fdm_inv, request)
705end
706
707function CeedOperatorSetNumQuadraturePoints(op, num_qpts)
708    ccall((:CeedOperatorSetNumQuadraturePoints, libceed), Cint, (CeedOperator, CeedInt), op, num_qpts)
709end
710
711function CeedOperatorSetName(op, name)
712    ccall((:CeedOperatorSetName, libceed), Cint, (CeedOperator, Ptr{Cchar}), op, name)
713end
714
715function CeedOperatorView(op, stream)
716    ccall((:CeedOperatorView, libceed), Cint, (CeedOperator, Ptr{Libc.FILE}), op, stream)
717end
718
719function CeedOperatorGetCeed(op, ceed)
720    ccall((:CeedOperatorGetCeed, libceed), Cint, (CeedOperator, Ptr{Ceed}), op, ceed)
721end
722
723function CeedOperatorGetNumElements(op, num_elem)
724    ccall((:CeedOperatorGetNumElements, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_elem)
725end
726
727function CeedOperatorGetNumQuadraturePoints(op, num_qpts)
728    ccall((:CeedOperatorGetNumQuadraturePoints, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_qpts)
729end
730
731function CeedOperatorGetFlopsEstimate(op, flops)
732    ccall((:CeedOperatorGetFlopsEstimate, libceed), Cint, (CeedOperator, Ptr{CeedSize}), op, flops)
733end
734
735function CeedOperatorGetContext(op, ctx)
736    ccall((:CeedOperatorGetContext, libceed), Cint, (CeedOperator, Ptr{CeedQFunctionContext}), op, ctx)
737end
738
739function CeedOperatorGetContextFieldLabel(op, field_name, field_label)
740    ccall((:CeedOperatorGetContextFieldLabel, libceed), Cint, (CeedOperator, Ptr{Cchar}, Ptr{CeedContextFieldLabel}), op, field_name, field_label)
741end
742
743function CeedOperatorSetContextDouble(op, field_label, values)
744    ccall((:CeedOperatorSetContextDouble, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Cdouble}), op, field_label, values)
745end
746
747function CeedOperatorGetContextDoubleRead(op, field_label, num_values, values)
748    ccall((:CeedOperatorGetContextDoubleRead, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cdouble}}), op, field_label, num_values, values)
749end
750
751function CeedOperatorRestoreContextDoubleRead(op, field_label, values)
752    ccall((:CeedOperatorRestoreContextDoubleRead, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Ptr{Cdouble}}), op, field_label, values)
753end
754
755function CeedOperatorSetContextInt32(op, field_label, values)
756    ccall((:CeedOperatorSetContextInt32, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Cint}), op, field_label, values)
757end
758
759function CeedOperatorGetContextInt32Read(op, field_label, num_values, values)
760    ccall((:CeedOperatorGetContextInt32Read, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cint}}), op, field_label, num_values, values)
761end
762
763function CeedOperatorRestoreContextInt32Read(op, field_label, values)
764    ccall((:CeedOperatorRestoreContextInt32Read, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Ptr{Cint}}), op, field_label, values)
765end
766
767function CeedOperatorApply(op, in, out, request)
768    ccall((:CeedOperatorApply, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request)
769end
770
771function CeedOperatorApplyAdd(op, in, out, request)
772    ccall((:CeedOperatorApplyAdd, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request)
773end
774
775function CeedOperatorDestroy(op)
776    ccall((:CeedOperatorDestroy, libceed), Cint, (Ptr{CeedOperator},), op)
777end
778
779function CeedOperatorGetFieldByName(op, field_name, op_field)
780    ccall((:CeedOperatorGetFieldByName, libceed), Cint, (CeedOperator, Ptr{Cchar}, Ptr{CeedOperatorField}), op, field_name, op_field)
781end
782
783function CeedOperatorFieldGetName(op_field, field_name)
784    ccall((:CeedOperatorFieldGetName, libceed), Cint, (CeedOperatorField, Ptr{Ptr{Cchar}}), op_field, field_name)
785end
786
787function CeedOperatorFieldGetElemRestriction(op_field, rstr)
788    ccall((:CeedOperatorFieldGetElemRestriction, libceed), Cint, (CeedOperatorField, Ptr{CeedElemRestriction}), op_field, rstr)
789end
790
791function CeedOperatorFieldGetBasis(op_field, basis)
792    ccall((:CeedOperatorFieldGetBasis, libceed), Cint, (CeedOperatorField, Ptr{CeedBasis}), op_field, basis)
793end
794
795function CeedOperatorFieldGetVector(op_field, vec)
796    ccall((:CeedOperatorFieldGetVector, libceed), Cint, (CeedOperatorField, Ptr{CeedVector}), op_field, vec)
797end
798
799function CeedIntPow(base, power)
800    ccall((:CeedIntPow, libceed), CeedInt, (CeedInt, CeedInt), base, power)
801end
802
803function CeedIntMin(a, b)
804    ccall((:CeedIntMin, libceed), CeedInt, (CeedInt, CeedInt), a, b)
805end
806
807function CeedIntMax(a, b)
808    ccall((:CeedIntMax, libceed), CeedInt, (CeedInt, CeedInt), a, b)
809end
810
811function CeedRegisterAll()
812    ccall((:CeedRegisterAll, libceed), Cint, ())
813end
814
815function CeedQFunctionRegisterAll()
816    ccall((:CeedQFunctionRegisterAll, libceed), Cint, ())
817end
818
819function CeedQFunctionSetCUDAUserFunction(qf, f)
820    ccall((:CeedQFunctionSetCUDAUserFunction, libceed), Cint, (CeedQFunction, Cint), qf, f)
821end
822
823function CeedDebugFlag(ceed)
824    ccall((:CeedDebugFlag, libceed), Bool, (Ceed,), ceed)
825end
826
827function CeedDebugFlagEnv()
828    ccall((:CeedDebugFlagEnv, libceed), Bool, ())
829end
830
831function CeedMallocArray(n, unit, p)
832    ccall((:CeedMallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p)
833end
834
835function CeedCallocArray(n, unit, p)
836    ccall((:CeedCallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p)
837end
838
839function CeedReallocArray(n, unit, p)
840    ccall((:CeedReallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p)
841end
842
843mutable struct CeedTensorContract_private end
844
845const CeedTensorContract = Ptr{CeedTensorContract_private}
846
847mutable struct CeedQFunctionAssemblyData_private end
848
849const CeedQFunctionAssemblyData = Ptr{CeedQFunctionAssemblyData_private}
850
851mutable struct CeedOperatorAssemblyData_private end
852
853const CeedOperatorAssemblyData = Ptr{CeedOperatorAssemblyData_private}
854
855function CeedStringAllocCopy(source, copy)
856    ccall((:CeedStringAllocCopy, libceed), Cint, (Ptr{Cchar}, Ptr{Ptr{Cchar}}), source, copy)
857end
858
859function CeedFree(p)
860    ccall((:CeedFree, libceed), Cint, (Ptr{Cvoid},), p)
861end
862
863function CeedRegister(prefix, init, priority)
864    ccall((:CeedRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority)
865end
866
867function CeedRegisterImpl(prefix, init, priority)
868    ccall((:CeedRegisterImpl, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority)
869end
870
871function CeedIsDebug(ceed, is_debug)
872    ccall((:CeedIsDebug, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_debug)
873end
874
875function CeedGetParent(ceed, parent)
876    ccall((:CeedGetParent, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent)
877end
878
879function CeedGetDelegate(ceed, delegate)
880    ccall((:CeedGetDelegate, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, delegate)
881end
882
883function CeedSetDelegate(ceed, delegate)
884    ccall((:CeedSetDelegate, libceed), Cint, (Ceed, Ceed), ceed, delegate)
885end
886
887function CeedGetObjectDelegate(ceed, delegate, obj_name)
888    ccall((:CeedGetObjectDelegate, libceed), Cint, (Ceed, Ptr{Ceed}, Ptr{Cchar}), ceed, delegate, obj_name)
889end
890
891function CeedSetObjectDelegate(ceed, delegate, obj_name)
892    ccall((:CeedSetObjectDelegate, libceed), Cint, (Ceed, Ceed, Ptr{Cchar}), ceed, delegate, obj_name)
893end
894
895function CeedGetOperatorFallbackResource(ceed, resource)
896    ccall((:CeedGetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource)
897end
898
899function CeedGetOperatorFallbackCeed(ceed, fallback_ceed)
900    ccall((:CeedGetOperatorFallbackCeed, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, fallback_ceed)
901end
902
903function CeedSetOperatorFallbackResource(ceed, resource)
904    ccall((:CeedSetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Cchar}), ceed, resource)
905end
906
907function CeedGetOperatorFallbackParentCeed(ceed, parent)
908    ccall((:CeedGetOperatorFallbackParentCeed, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent)
909end
910
911function CeedSetDeterministic(ceed, is_deterministic)
912    ccall((:CeedSetDeterministic, libceed), Cint, (Ceed, Bool), ceed, is_deterministic)
913end
914
915function CeedSetBackendFunction(ceed, type, object, func_name, f)
916    ccall((:CeedSetBackendFunction, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cvoid}, Ptr{Cchar}, Ptr{Cvoid}), ceed, type, object, func_name, f)
917end
918
919function CeedGetData(ceed, data)
920    ccall((:CeedGetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data)
921end
922
923function CeedSetData(ceed, data)
924    ccall((:CeedSetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data)
925end
926
927function CeedReference(ceed)
928    ccall((:CeedReference, libceed), Cint, (Ceed,), ceed)
929end
930
931function CeedVectorHasValidArray(vec, has_valid_array)
932    ccall((:CeedVectorHasValidArray, libceed), Cint, (CeedVector, Ptr{Bool}), vec, has_valid_array)
933end
934
935function CeedVectorHasBorrowedArrayOfType(vec, mem_type, has_borrowed_array_of_type)
936    ccall((:CeedVectorHasBorrowedArrayOfType, libceed), Cint, (CeedVector, CeedMemType, Ptr{Bool}), vec, mem_type, has_borrowed_array_of_type)
937end
938
939function CeedVectorGetState(vec, state)
940    ccall((:CeedVectorGetState, libceed), Cint, (CeedVector, Ptr{UInt64}), vec, state)
941end
942
943function CeedVectorAddReference(vec)
944    ccall((:CeedVectorAddReference, libceed), Cint, (CeedVector,), vec)
945end
946
947function CeedVectorGetData(vec, data)
948    ccall((:CeedVectorGetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data)
949end
950
951function CeedVectorSetData(vec, data)
952    ccall((:CeedVectorSetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data)
953end
954
955function CeedVectorReference(vec)
956    ccall((:CeedVectorReference, libceed), Cint, (CeedVector,), vec)
957end
958
959function CeedElemRestrictionGetStrides(rstr, strides)
960    ccall((:CeedElemRestrictionGetStrides, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, strides)
961end
962
963function CeedElemRestrictionGetOffsets(rstr, mem_type, offsets)
964    ccall((:CeedElemRestrictionGetOffsets, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt}}), rstr, mem_type, offsets)
965end
966
967function CeedElemRestrictionRestoreOffsets(rstr, offsets)
968    ccall((:CeedElemRestrictionRestoreOffsets, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt}}), rstr, offsets)
969end
970
971function CeedElemRestrictionIsStrided(rstr, is_strided)
972    ccall((:CeedElemRestrictionIsStrided, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_strided)
973end
974
975function CeedElemRestrictionIsOriented(rstr, is_oriented)
976    ccall((:CeedElemRestrictionIsOriented, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_oriented)
977end
978
979function CeedElemRestrictionHasBackendStrides(rstr, has_backend_strides)
980    ccall((:CeedElemRestrictionHasBackendStrides, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, has_backend_strides)
981end
982
983function CeedElemRestrictionGetELayout(rstr, layout)
984    ccall((:CeedElemRestrictionGetELayout, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, layout)
985end
986
987function CeedElemRestrictionSetELayout(rstr, layout)
988    ccall((:CeedElemRestrictionSetELayout, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, layout)
989end
990
991function CeedElemRestrictionGetData(rstr, data)
992    ccall((:CeedElemRestrictionGetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data)
993end
994
995function CeedElemRestrictionSetData(rstr, data)
996    ccall((:CeedElemRestrictionSetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data)
997end
998
999function CeedElemRestrictionReference(rstr)
1000    ccall((:CeedElemRestrictionReference, libceed), Cint, (CeedElemRestriction,), rstr)
1001end
1002
1003function CeedElemRestrictionGetFlopsEstimate(rstr, t_mode, flops)
1004    ccall((:CeedElemRestrictionGetFlopsEstimate, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, Ptr{CeedSize}), rstr, t_mode, flops)
1005end
1006
1007@cenum CeedFESpace::UInt32 begin
1008    CEED_FE_SPACE_H1 = 1
1009    CEED_FE_SPACE_HDIV = 2
1010    CEED_FE_SPACE_HCURL = 3
1011end
1012
1013function CeedBasisGetCollocatedGrad(basis, colo_grad_1d)
1014    ccall((:CeedBasisGetCollocatedGrad, libceed), Cint, (CeedBasis, Ptr{CeedScalar}), basis, colo_grad_1d)
1015end
1016
1017function CeedBasisIsTensor(basis, is_tensor)
1018    ccall((:CeedBasisIsTensor, libceed), Cint, (CeedBasis, Ptr{Bool}), basis, is_tensor)
1019end
1020
1021function CeedBasisGetData(basis, data)
1022    ccall((:CeedBasisGetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data)
1023end
1024
1025function CeedBasisSetData(basis, data)
1026    ccall((:CeedBasisSetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data)
1027end
1028
1029function CeedBasisReference(basis)
1030    ccall((:CeedBasisReference, libceed), Cint, (CeedBasis,), basis)
1031end
1032
1033function CeedBasisGetNumQuadratureComponents(basis, eval_mode, q_comp)
1034    ccall((:CeedBasisGetNumQuadratureComponents, libceed), Cint, (CeedBasis, CeedEvalMode, Ptr{CeedInt}), basis, eval_mode, q_comp)
1035end
1036
1037function CeedBasisGetFlopsEstimate(basis, t_mode, eval_mode, flops)
1038    ccall((:CeedBasisGetFlopsEstimate, libceed), Cint, (CeedBasis, CeedTransposeMode, CeedEvalMode, Ptr{CeedSize}), basis, t_mode, eval_mode, flops)
1039end
1040
1041function CeedBasisGetFESpace(basis, fe_space)
1042    ccall((:CeedBasisGetFESpace, libceed), Cint, (CeedBasis, Ptr{CeedFESpace}), basis, fe_space)
1043end
1044
1045function CeedBasisGetTopologyDimension(topo, dim)
1046    ccall((:CeedBasisGetTopologyDimension, libceed), Cint, (CeedElemTopology, Ptr{CeedInt}), topo, dim)
1047end
1048
1049function CeedBasisGetTensorContract(basis, contract)
1050    ccall((:CeedBasisGetTensorContract, libceed), Cint, (CeedBasis, Ptr{CeedTensorContract}), basis, contract)
1051end
1052
1053function CeedBasisSetTensorContract(basis, contract)
1054    ccall((:CeedBasisSetTensorContract, libceed), Cint, (CeedBasis, CeedTensorContract), basis, contract)
1055end
1056
1057function CeedTensorContractCreate(ceed, basis, contract)
1058    ccall((:CeedTensorContractCreate, libceed), Cint, (Ceed, CeedBasis, Ptr{CeedTensorContract}), ceed, basis, contract)
1059end
1060
1061function CeedTensorContractApply(contract, A, B, C, J, t, t_mode, Add, u, v)
1062    ccall((:CeedTensorContractApply, libceed), Cint, (CeedTensorContract, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, CeedTransposeMode, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), contract, A, B, C, J, t, t_mode, Add, u, v)
1063end
1064
1065function CeedTensorContractStridedApply(contract, A, B, C, D, J, t, t_mode, add, u, v)
1066    ccall((:CeedTensorContractStridedApply, libceed), Cint, (CeedTensorContract, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedScalar}, CeedTransposeMode, CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), contract, A, B, C, D, J, t, t_mode, add, u, v)
1067end
1068
1069function CeedTensorContractGetCeed(contract, ceed)
1070    ccall((:CeedTensorContractGetCeed, libceed), Cint, (CeedTensorContract, Ptr{Ceed}), contract, ceed)
1071end
1072
1073function CeedTensorContractGetData(contract, data)
1074    ccall((:CeedTensorContractGetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data)
1075end
1076
1077function CeedTensorContractSetData(contract, data)
1078    ccall((:CeedTensorContractSetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data)
1079end
1080
1081function CeedTensorContractReference(contract)
1082    ccall((:CeedTensorContractReference, libceed), Cint, (CeedTensorContract,), contract)
1083end
1084
1085function CeedTensorContractDestroy(contract)
1086    ccall((:CeedTensorContractDestroy, libceed), Cint, (Ptr{CeedTensorContract},), contract)
1087end
1088
1089function CeedQFunctionRegister(arg1, arg2, arg3, arg4, init)
1090    ccall((:CeedQFunctionRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cchar}, CeedInt, CeedQFunctionUser, Ptr{Cvoid}), arg1, arg2, arg3, arg4, init)
1091end
1092
1093function CeedQFunctionSetFortranStatus(qf, status)
1094    ccall((:CeedQFunctionSetFortranStatus, libceed), Cint, (CeedQFunction, Bool), qf, status)
1095end
1096
1097function CeedQFunctionGetVectorLength(qf, vec_length)
1098    ccall((:CeedQFunctionGetVectorLength, libceed), Cint, (CeedQFunction, Ptr{CeedInt}), qf, vec_length)
1099end
1100
1101function CeedQFunctionGetNumArgs(qf, num_input_fields, num_output_fields)
1102    ccall((:CeedQFunctionGetNumArgs, libceed), Cint, (CeedQFunction, Ptr{CeedInt}, Ptr{CeedInt}), qf, num_input_fields, num_output_fields)
1103end
1104
1105function CeedQFunctionGetKernelName(qf, kernel_name)
1106    ccall((:CeedQFunctionGetKernelName, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, kernel_name)
1107end
1108
1109function CeedQFunctionGetSourcePath(qf, source_path)
1110    ccall((:CeedQFunctionGetSourcePath, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source_path)
1111end
1112
1113function CeedQFunctionLoadSourceToBuffer(qf, source_buffer)
1114    ccall((:CeedQFunctionLoadSourceToBuffer, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source_buffer)
1115end
1116
1117function CeedQFunctionGetUserFunction(qf, f)
1118    ccall((:CeedQFunctionGetUserFunction, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionUser}), qf, f)
1119end
1120
1121function CeedQFunctionGetContext(qf, ctx)
1122    ccall((:CeedQFunctionGetContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx)
1123end
1124
1125function CeedQFunctionGetContextData(qf, mem_type, data)
1126    ccall((:CeedQFunctionGetContextData, libceed), Cint, (CeedQFunction, CeedMemType, Ptr{Cvoid}), qf, mem_type, data)
1127end
1128
1129function CeedQFunctionRestoreContextData(qf, data)
1130    ccall((:CeedQFunctionRestoreContextData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data)
1131end
1132
1133function CeedQFunctionGetInnerContext(qf, ctx)
1134    ccall((:CeedQFunctionGetInnerContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx)
1135end
1136
1137function CeedQFunctionGetInnerContextData(qf, mem_type, data)
1138    ccall((:CeedQFunctionGetInnerContextData, libceed), Cint, (CeedQFunction, CeedMemType, Ptr{Cvoid}), qf, mem_type, data)
1139end
1140
1141function CeedQFunctionRestoreInnerContextData(qf, data)
1142    ccall((:CeedQFunctionRestoreInnerContextData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data)
1143end
1144
1145function CeedQFunctionIsIdentity(qf, is_identity)
1146    ccall((:CeedQFunctionIsIdentity, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_identity)
1147end
1148
1149function CeedQFunctionIsContextWritable(qf, is_writable)
1150    ccall((:CeedQFunctionIsContextWritable, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_writable)
1151end
1152
1153function CeedQFunctionGetData(qf, data)
1154    ccall((:CeedQFunctionGetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data)
1155end
1156
1157function CeedQFunctionSetData(qf, data)
1158    ccall((:CeedQFunctionSetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data)
1159end
1160
1161function CeedQFunctionReference(qf)
1162    ccall((:CeedQFunctionReference, libceed), Cint, (CeedQFunction,), qf)
1163end
1164
1165function CeedQFunctionGetFlopsEstimate(qf, flops)
1166    ccall((:CeedQFunctionGetFlopsEstimate, libceed), Cint, (CeedQFunction, Ptr{CeedSize}), qf, flops)
1167end
1168
1169function CeedQFunctionContextGetCeed(ctx, ceed)
1170    ccall((:CeedQFunctionContextGetCeed, libceed), Cint, (CeedQFunctionContext, Ptr{Ceed}), ctx, ceed)
1171end
1172
1173function CeedQFunctionContextHasValidData(ctx, has_valid_data)
1174    ccall((:CeedQFunctionContextHasValidData, libceed), Cint, (CeedQFunctionContext, Ptr{Bool}), ctx, has_valid_data)
1175end
1176
1177function CeedQFunctionContextHasBorrowedDataOfType(ctx, mem_type, has_borrowed_data_of_type)
1178    ccall((:CeedQFunctionContextHasBorrowedDataOfType, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Bool}), ctx, mem_type, has_borrowed_data_of_type)
1179end
1180
1181function CeedQFunctionContextGetState(ctx, state)
1182    ccall((:CeedQFunctionContextGetState, libceed), Cint, (CeedQFunctionContext, Ptr{UInt64}), ctx, state)
1183end
1184
1185function CeedQFunctionContextGetBackendData(ctx, data)
1186    ccall((:CeedQFunctionContextGetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
1187end
1188
1189function CeedQFunctionContextSetBackendData(ctx, data)
1190    ccall((:CeedQFunctionContextSetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data)
1191end
1192
1193function CeedQFunctionContextGetFieldLabel(ctx, field_name, field_label)
1194    ccall((:CeedQFunctionContextGetFieldLabel, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Ptr{CeedContextFieldLabel}), ctx, field_name, field_label)
1195end
1196
1197function CeedQFunctionContextSetGeneric(ctx, field_label, field_type, value)
1198    ccall((:CeedQFunctionContextSetGeneric, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Cvoid}), ctx, field_label, field_type, value)
1199end
1200
1201function CeedQFunctionContextGetGenericRead(ctx, field_label, field_type, num_values, value)
1202    ccall((:CeedQFunctionContextGetGenericRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Csize_t}, Ptr{Cvoid}), ctx, field_label, field_type, num_values, value)
1203end
1204
1205function CeedQFunctionContextRestoreGenericRead(ctx, field_label, field_type, value)
1206    ccall((:CeedQFunctionContextRestoreGenericRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Cvoid}), ctx, field_label, field_type, value)
1207end
1208
1209function CeedQFunctionContextSetDouble(ctx, field_label, values)
1210    ccall((:CeedQFunctionContextSetDouble, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Cdouble}), ctx, field_label, values)
1211end
1212
1213function CeedQFunctionContextGetDoubleRead(ctx, field_label, num_values, values)
1214    ccall((:CeedQFunctionContextGetDoubleRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cdouble}}), ctx, field_label, num_values, values)
1215end
1216
1217function CeedQFunctionContextRestoreDoubleRead(ctx, field_label, values)
1218    ccall((:CeedQFunctionContextRestoreDoubleRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Ptr{Cdouble}}), ctx, field_label, values)
1219end
1220
1221function CeedQFunctionContextSetInt32(ctx, field_label, values)
1222    ccall((:CeedQFunctionContextSetInt32, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Cint}), ctx, field_label, values)
1223end
1224
1225function CeedQFunctionContextGetInt32Read(ctx, field_label, num_values, values)
1226    ccall((:CeedQFunctionContextGetInt32Read, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cint}}), ctx, field_label, num_values, values)
1227end
1228
1229function CeedQFunctionContextRestoreInt32Read(ctx, field_label, values)
1230    ccall((:CeedQFunctionContextRestoreInt32Read, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Ptr{Cint}}), ctx, field_label, values)
1231end
1232
1233function CeedQFunctionContextGetDataDestroy(ctx, f_mem_type, f)
1234    ccall((:CeedQFunctionContextGetDataDestroy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedMemType}, Ptr{CeedQFunctionContextDataDestroyUser}), ctx, f_mem_type, f)
1235end
1236
1237function CeedQFunctionContextReference(ctx)
1238    ccall((:CeedQFunctionContextReference, libceed), Cint, (CeedQFunctionContext,), ctx)
1239end
1240
1241function CeedQFunctionAssemblyDataCreate(ceed, data)
1242    ccall((:CeedQFunctionAssemblyDataCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionAssemblyData}), ceed, data)
1243end
1244
1245function CeedQFunctionAssemblyDataReference(data)
1246    ccall((:CeedQFunctionAssemblyDataReference, libceed), Cint, (CeedQFunctionAssemblyData,), data)
1247end
1248
1249function CeedQFunctionAssemblyDataSetReuse(data, reuse_assembly_data)
1250    ccall((:CeedQFunctionAssemblyDataSetReuse, libceed), Cint, (CeedQFunctionAssemblyData, Bool), data, reuse_assembly_data)
1251end
1252
1253function CeedQFunctionAssemblyDataSetUpdateNeeded(data, needs_data_update)
1254    ccall((:CeedQFunctionAssemblyDataSetUpdateNeeded, libceed), Cint, (CeedQFunctionAssemblyData, Bool), data, needs_data_update)
1255end
1256
1257function CeedQFunctionAssemblyDataIsUpdateNeeded(data, is_update_needed)
1258    ccall((:CeedQFunctionAssemblyDataIsUpdateNeeded, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{Bool}), data, is_update_needed)
1259end
1260
1261function CeedQFunctionAssemblyDataReferenceCopy(data, data_copy)
1262    ccall((:CeedQFunctionAssemblyDataReferenceCopy, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{CeedQFunctionAssemblyData}), data, data_copy)
1263end
1264
1265function CeedQFunctionAssemblyDataIsSetup(data, is_setup)
1266    ccall((:CeedQFunctionAssemblyDataIsSetup, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{Bool}), data, is_setup)
1267end
1268
1269function CeedQFunctionAssemblyDataSetObjects(data, vec, rstr)
1270    ccall((:CeedQFunctionAssemblyDataSetObjects, libceed), Cint, (CeedQFunctionAssemblyData, CeedVector, CeedElemRestriction), data, vec, rstr)
1271end
1272
1273function CeedQFunctionAssemblyDataGetObjects(data, vec, rstr)
1274    ccall((:CeedQFunctionAssemblyDataGetObjects, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{CeedVector}, Ptr{CeedElemRestriction}), data, vec, rstr)
1275end
1276
1277function CeedQFunctionAssemblyDataDestroy(data)
1278    ccall((:CeedQFunctionAssemblyDataDestroy, libceed), Cint, (Ptr{CeedQFunctionAssemblyData},), data)
1279end
1280
1281function CeedOperatorAssemblyDataCreate(ceed, op, data)
1282    ccall((:CeedOperatorAssemblyDataCreate, libceed), Cint, (Ceed, CeedOperator, Ptr{CeedOperatorAssemblyData}), ceed, op, data)
1283end
1284
1285function CeedOperatorAssemblyDataGetEvalModes(data, num_active_bases, num_eval_modes_in, eval_modes_in, eval_mode_offsets_in, num_eval_modes_out, eval_modes_out, eval_mode_offsets_out, num_output_components)
1286    ccall((:CeedOperatorAssemblyDataGetEvalModes, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{Ptr{CeedEvalMode}}}, Ptr{Ptr{Ptr{CeedSize}}}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{Ptr{CeedEvalMode}}}, Ptr{Ptr{Ptr{CeedSize}}}, Ptr{CeedSize}), data, num_active_bases, num_eval_modes_in, eval_modes_in, eval_mode_offsets_in, num_eval_modes_out, eval_modes_out, eval_mode_offsets_out, num_output_components)
1287end
1288
1289function CeedOperatorAssemblyDataGetBases(data, num_active_bases, active_bases, assembled_bases_in, assembled_bases_out)
1290    ccall((:CeedOperatorAssemblyDataGetBases, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedBasis}}, Ptr{Ptr{Ptr{CeedScalar}}}, Ptr{Ptr{Ptr{CeedScalar}}}), data, num_active_bases, active_bases, assembled_bases_in, assembled_bases_out)
1291end
1292
1293function CeedOperatorAssemblyDataGetElemRestrictions(data, num_active_elem_rstrs, active_elem_rstrs)
1294    ccall((:CeedOperatorAssemblyDataGetElemRestrictions, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedElemRestriction}}), data, num_active_elem_rstrs, active_elem_rstrs)
1295end
1296
1297function CeedOperatorAssemblyDataDestroy(data)
1298    ccall((:CeedOperatorAssemblyDataDestroy, libceed), Cint, (Ptr{CeedOperatorAssemblyData},), data)
1299end
1300
1301function CeedOperatorGetOperatorAssemblyData(op, data)
1302    ccall((:CeedOperatorGetOperatorAssemblyData, libceed), Cint, (CeedOperator, Ptr{CeedOperatorAssemblyData}), op, data)
1303end
1304
1305function CeedOperatorGetActiveBasis(op, active_basis)
1306    ccall((:CeedOperatorGetActiveBasis, libceed), Cint, (CeedOperator, Ptr{CeedBasis}), op, active_basis)
1307end
1308
1309function CeedOperatorGetActiveElemRestriction(op, active_rstr)
1310    ccall((:CeedOperatorGetActiveElemRestriction, libceed), Cint, (CeedOperator, Ptr{CeedElemRestriction}), op, active_rstr)
1311end
1312
1313function CeedOperatorGetNumArgs(op, num_args)
1314    ccall((:CeedOperatorGetNumArgs, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_args)
1315end
1316
1317function CeedOperatorIsSetupDone(op, is_setup_done)
1318    ccall((:CeedOperatorIsSetupDone, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_setup_done)
1319end
1320
1321function CeedOperatorGetQFunction(op, qf)
1322    ccall((:CeedOperatorGetQFunction, libceed), Cint, (CeedOperator, Ptr{CeedQFunction}), op, qf)
1323end
1324
1325function CeedOperatorIsComposite(op, is_composite)
1326    ccall((:CeedOperatorIsComposite, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_composite)
1327end
1328
1329function CeedOperatorGetData(op, data)
1330    ccall((:CeedOperatorGetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data)
1331end
1332
1333function CeedOperatorSetData(op, data)
1334    ccall((:CeedOperatorSetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data)
1335end
1336
1337function CeedOperatorReference(op)
1338    ccall((:CeedOperatorReference, libceed), Cint, (CeedOperator,), op)
1339end
1340
1341function CeedOperatorSetSetupDone(op)
1342    ccall((:CeedOperatorSetSetupDone, libceed), Cint, (CeedOperator,), op)
1343end
1344
1345function CeedMatrixMatrixMultiply(ceed, mat_A, mat_B, mat_C, m, n, kk)
1346    ccall((:CeedMatrixMatrixMultiply, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt, CeedInt), ceed, mat_A, mat_B, mat_C, m, n, kk)
1347end
1348
1349function CeedQRFactorization(ceed, mat, tau, m, n)
1350    ccall((:CeedQRFactorization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt), ceed, mat, tau, m, n)
1351end
1352
1353function CeedHouseholderApplyQ(mat_A, mat_Q, tau, t_mode, m, n, k, row, col)
1354    ccall((:CeedHouseholderApplyQ, libceed), Cint, (Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedTransposeMode, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt), mat_A, mat_Q, tau, t_mode, m, n, k, row, col)
1355end
1356
1357function CeedSymmetricSchurDecomposition(ceed, mat, lambda, n)
1358    ccall((:CeedSymmetricSchurDecomposition, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat, lambda, n)
1359end
1360
1361function CeedSimultaneousDiagonalization(ceed, mat_A, mat_B, x, lambda, n)
1362    ccall((:CeedSimultaneousDiagonalization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat_A, mat_B, x, lambda, n)
1363end
1364
1365# Skipping MacroDefinition: CEED_EXTERN extern CEED_VISIBILITY ( default )
1366
1367# Skipping MacroDefinition: CEED_QFUNCTION_HELPER_ATTR CEED_QFUNCTION_ATTR __attribute__ ( ( always_inline ) )
1368
1369# Skipping MacroDefinition: CEED_QFUNCTION_HELPER CEED_QFUNCTION_HELPER_ATTR static inline
1370
1371const CeedInt_FMT = "d"
1372
1373const CEED_VERSION_MAJOR = 0
1374
1375const CEED_VERSION_MINOR = 11
1376
1377const CEED_VERSION_PATCH = 0
1378
1379const CEED_VERSION_RELEASE = false
1380
1381# Skipping MacroDefinition: CEED_INTERN extern CEED_VISIBILITY ( hidden )
1382
1383# Skipping MacroDefinition: CEED_UNUSED __attribute__ ( ( unused ) )
1384
1385const CEED_MAX_RESOURCE_LEN = 1024
1386
1387const CEED_MAX_BACKEND_PRIORITY = UINT_MAX
1388
1389const CEED_COMPOSITE_MAX = 16
1390
1391const CEED_FIELD_MAX = 16
1392
1393# Skipping MacroDefinition: CeedPragmaOptimizeOff _Pragma ( "clang optimize off" )
1394
1395# Skipping MacroDefinition: CeedPragmaOptimizeOn _Pragma ( "clang optimize on" )
1396
1397const CEED_DEBUG_COLOR_NONE = 255
1398