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