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