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 CeedOperatorSetNumQuadraturePoints(op, num_qpts) 738 ccall((:CeedOperatorSetNumQuadraturePoints, libceed), Cint, (CeedOperator, CeedInt), op, num_qpts) 739end 740 741function CeedOperatorSetName(op, name) 742 ccall((:CeedOperatorSetName, libceed), Cint, (CeedOperator, Ptr{Cchar}), op, name) 743end 744 745function CeedOperatorView(op, stream) 746 ccall((:CeedOperatorView, libceed), Cint, (CeedOperator, Ptr{Libc.FILE}), op, stream) 747end 748 749function CeedOperatorGetCeed(op, ceed) 750 ccall((:CeedOperatorGetCeed, libceed), Cint, (CeedOperator, Ptr{Ceed}), op, ceed) 751end 752 753function CeedOperatorGetNumElements(op, num_elem) 754 ccall((:CeedOperatorGetNumElements, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_elem) 755end 756 757function CeedOperatorGetNumQuadraturePoints(op, num_qpts) 758 ccall((:CeedOperatorGetNumQuadraturePoints, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_qpts) 759end 760 761function CeedOperatorGetFlopsEstimate(op, flops) 762 ccall((:CeedOperatorGetFlopsEstimate, libceed), Cint, (CeedOperator, Ptr{CeedSize}), op, flops) 763end 764 765function CeedOperatorGetContext(op, ctx) 766 ccall((:CeedOperatorGetContext, libceed), Cint, (CeedOperator, Ptr{CeedQFunctionContext}), op, ctx) 767end 768 769function CeedOperatorGetContextFieldLabel(op, field_name, field_label) 770 ccall((:CeedOperatorGetContextFieldLabel, libceed), Cint, (CeedOperator, Ptr{Cchar}, Ptr{CeedContextFieldLabel}), op, field_name, field_label) 771end 772 773function CeedOperatorSetContextDouble(op, field_label, values) 774 ccall((:CeedOperatorSetContextDouble, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Cdouble}), op, field_label, values) 775end 776 777function CeedOperatorGetContextDoubleRead(op, field_label, num_values, values) 778 ccall((:CeedOperatorGetContextDoubleRead, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cdouble}}), op, field_label, num_values, values) 779end 780 781function CeedOperatorRestoreContextDoubleRead(op, field_label, values) 782 ccall((:CeedOperatorRestoreContextDoubleRead, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Ptr{Cdouble}}), op, field_label, values) 783end 784 785function CeedOperatorSetContextInt32(op, field_label, values) 786 ccall((:CeedOperatorSetContextInt32, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Cint}), op, field_label, values) 787end 788 789function CeedOperatorGetContextInt32Read(op, field_label, num_values, values) 790 ccall((:CeedOperatorGetContextInt32Read, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cint}}), op, field_label, num_values, values) 791end 792 793function CeedOperatorRestoreContextInt32Read(op, field_label, values) 794 ccall((:CeedOperatorRestoreContextInt32Read, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Ptr{Cint}}), op, field_label, values) 795end 796 797function CeedOperatorApply(op, in, out, request) 798 ccall((:CeedOperatorApply, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request) 799end 800 801function CeedOperatorApplyAdd(op, in, out, request) 802 ccall((:CeedOperatorApplyAdd, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request) 803end 804 805function CeedOperatorDestroy(op) 806 ccall((:CeedOperatorDestroy, libceed), Cint, (Ptr{CeedOperator},), op) 807end 808 809function CeedOperatorGetFieldByName(op, field_name, op_field) 810 ccall((:CeedOperatorGetFieldByName, libceed), Cint, (CeedOperator, Ptr{Cchar}, Ptr{CeedOperatorField}), op, field_name, op_field) 811end 812 813function CeedOperatorFieldGetName(op_field, field_name) 814 ccall((:CeedOperatorFieldGetName, libceed), Cint, (CeedOperatorField, Ptr{Ptr{Cchar}}), op_field, field_name) 815end 816 817function CeedOperatorFieldGetElemRestriction(op_field, rstr) 818 ccall((:CeedOperatorFieldGetElemRestriction, libceed), Cint, (CeedOperatorField, Ptr{CeedElemRestriction}), op_field, rstr) 819end 820 821function CeedOperatorFieldGetBasis(op_field, basis) 822 ccall((:CeedOperatorFieldGetBasis, libceed), Cint, (CeedOperatorField, Ptr{CeedBasis}), op_field, basis) 823end 824 825function CeedOperatorFieldGetVector(op_field, vec) 826 ccall((:CeedOperatorFieldGetVector, libceed), Cint, (CeedOperatorField, Ptr{CeedVector}), op_field, vec) 827end 828 829function CeedIntPow(base, power) 830 ccall((:CeedIntPow, libceed), CeedInt, (CeedInt, CeedInt), base, power) 831end 832 833function CeedIntMin(a, b) 834 ccall((:CeedIntMin, libceed), CeedInt, (CeedInt, CeedInt), a, b) 835end 836 837function CeedIntMax(a, b) 838 ccall((:CeedIntMax, libceed), CeedInt, (CeedInt, CeedInt), a, b) 839end 840 841function CeedRegisterAll() 842 ccall((:CeedRegisterAll, libceed), Cint, ()) 843end 844 845function CeedQFunctionRegisterAll() 846 ccall((:CeedQFunctionRegisterAll, libceed), Cint, ()) 847end 848 849function CeedQFunctionSetCUDAUserFunction(qf, f) 850 ccall((:CeedQFunctionSetCUDAUserFunction, libceed), Cint, (CeedQFunction, Cint), qf, f) 851end 852 853function CeedDebugFlag(ceed) 854 ccall((:CeedDebugFlag, libceed), Bool, (Ceed,), ceed) 855end 856 857function CeedDebugFlagEnv() 858 ccall((:CeedDebugFlagEnv, libceed), Bool, ()) 859end 860 861function CeedMallocArray(n, unit, p) 862 ccall((:CeedMallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 863end 864 865function CeedCallocArray(n, unit, p) 866 ccall((:CeedCallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 867end 868 869function CeedReallocArray(n, unit, p) 870 ccall((:CeedReallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 871end 872 873@cenum CeedDebugColor::UInt32 begin 874 CEED_DEBUG_COLOR_SUCCESS = 108 875 CEED_DEBUG_COLOR_WARNING = 208 876 CEED_DEBUG_COLOR_ERROR = 196 877 CEED_DEBUG_COLOR_NONE = 255 878end 879 880mutable struct CeedTensorContract_private end 881 882const CeedTensorContract = Ptr{CeedTensorContract_private} 883 884mutable struct CeedQFunctionAssemblyData_private end 885 886const CeedQFunctionAssemblyData = Ptr{CeedQFunctionAssemblyData_private} 887 888mutable struct CeedOperatorAssemblyData_private end 889 890const CeedOperatorAssemblyData = Ptr{CeedOperatorAssemblyData_private} 891 892function CeedStringAllocCopy(source, copy) 893 ccall((:CeedStringAllocCopy, libceed), Cint, (Ptr{Cchar}, Ptr{Ptr{Cchar}}), source, copy) 894end 895 896function CeedFree(p) 897 ccall((:CeedFree, libceed), Cint, (Ptr{Cvoid},), p) 898end 899 900function CeedRegister(prefix, init, priority) 901 ccall((:CeedRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority) 902end 903 904function CeedRegisterImpl(prefix, init, priority) 905 ccall((:CeedRegisterImpl, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority) 906end 907 908function CeedIsDebug(ceed, is_debug) 909 ccall((:CeedIsDebug, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_debug) 910end 911 912function CeedGetResourceRoot(ceed, resource, delineator, resource_root) 913 ccall((:CeedGetResourceRoot, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cchar}, Ptr{Ptr{Cchar}}), ceed, resource, delineator, resource_root) 914end 915 916function CeedGetParent(ceed, parent) 917 ccall((:CeedGetParent, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent) 918end 919 920function CeedGetDelegate(ceed, delegate) 921 ccall((:CeedGetDelegate, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, delegate) 922end 923 924function CeedSetDelegate(ceed, delegate) 925 ccall((:CeedSetDelegate, libceed), Cint, (Ceed, Ceed), ceed, delegate) 926end 927 928function CeedGetObjectDelegate(ceed, delegate, obj_name) 929 ccall((:CeedGetObjectDelegate, libceed), Cint, (Ceed, Ptr{Ceed}, Ptr{Cchar}), ceed, delegate, obj_name) 930end 931 932function CeedSetObjectDelegate(ceed, delegate, obj_name) 933 ccall((:CeedSetObjectDelegate, libceed), Cint, (Ceed, Ceed, Ptr{Cchar}), ceed, delegate, obj_name) 934end 935 936function CeedGetOperatorFallbackResource(ceed, resource) 937 ccall((:CeedGetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource) 938end 939 940function CeedGetOperatorFallbackCeed(ceed, fallback_ceed) 941 ccall((:CeedGetOperatorFallbackCeed, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, fallback_ceed) 942end 943 944function CeedSetOperatorFallbackResource(ceed, resource) 945 ccall((:CeedSetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Cchar}), ceed, resource) 946end 947 948function CeedSetDeterministic(ceed, is_deterministic) 949 ccall((:CeedSetDeterministic, libceed), Cint, (Ceed, Bool), ceed, is_deterministic) 950end 951 952function CeedSetBackendFunction(ceed, type, object, func_name, f) 953 ccall((:CeedSetBackendFunction, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cvoid}, Ptr{Cchar}, Ptr{Cvoid}), ceed, type, object, func_name, f) 954end 955 956function CeedGetData(ceed, data) 957 ccall((:CeedGetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data) 958end 959 960function CeedSetData(ceed, data) 961 ccall((:CeedSetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data) 962end 963 964function CeedReference(ceed) 965 ccall((:CeedReference, libceed), Cint, (Ceed,), ceed) 966end 967 968function CeedVectorHasValidArray(vec, has_valid_array) 969 ccall((:CeedVectorHasValidArray, libceed), Cint, (CeedVector, Ptr{Bool}), vec, has_valid_array) 970end 971 972function CeedVectorHasBorrowedArrayOfType(vec, mem_type, has_borrowed_array_of_type) 973 ccall((:CeedVectorHasBorrowedArrayOfType, libceed), Cint, (CeedVector, CeedMemType, Ptr{Bool}), vec, mem_type, has_borrowed_array_of_type) 974end 975 976function CeedVectorGetState(vec, state) 977 ccall((:CeedVectorGetState, libceed), Cint, (CeedVector, Ptr{UInt64}), vec, state) 978end 979 980function CeedVectorGetData(vec, data) 981 ccall((:CeedVectorGetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data) 982end 983 984function CeedVectorSetData(vec, data) 985 ccall((:CeedVectorSetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data) 986end 987 988function CeedVectorReference(vec) 989 ccall((:CeedVectorReference, libceed), Cint, (CeedVector,), vec) 990end 991 992@cenum CeedRestrictionType::UInt32 begin 993 CEED_RESTRICTION_STANDARD = 1 994 CEED_RESTRICTION_ORIENTED = 2 995 CEED_RESTRICTION_CURL_ORIENTED = 3 996 CEED_RESTRICTION_STRIDED = 4 997end 998 999function CeedElemRestrictionGetType(rstr, rstr_type) 1000 ccall((:CeedElemRestrictionGetType, libceed), Cint, (CeedElemRestriction, Ptr{CeedRestrictionType}), rstr, rstr_type) 1001end 1002 1003function CeedElemRestrictionIsStrided(rstr, is_strided) 1004 ccall((:CeedElemRestrictionIsStrided, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_strided) 1005end 1006 1007function CeedElemRestrictionGetStrides(rstr, strides) 1008 ccall((:CeedElemRestrictionGetStrides, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, strides) 1009end 1010 1011function CeedElemRestrictionHasBackendStrides(rstr, has_backend_strides) 1012 ccall((:CeedElemRestrictionHasBackendStrides, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, has_backend_strides) 1013end 1014 1015function CeedElemRestrictionGetOffsets(rstr, mem_type, offsets) 1016 ccall((:CeedElemRestrictionGetOffsets, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt}}), rstr, mem_type, offsets) 1017end 1018 1019function CeedElemRestrictionRestoreOffsets(rstr, offsets) 1020 ccall((:CeedElemRestrictionRestoreOffsets, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt}}), rstr, offsets) 1021end 1022 1023function CeedElemRestrictionGetOrientations(rstr, mem_type, orients) 1024 ccall((:CeedElemRestrictionGetOrientations, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{Bool}}), rstr, mem_type, orients) 1025end 1026 1027function CeedElemRestrictionRestoreOrientations(rstr, orients) 1028 ccall((:CeedElemRestrictionRestoreOrientations, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{Bool}}), rstr, orients) 1029end 1030 1031function CeedElemRestrictionGetCurlOrientations(rstr, mem_type, curl_orients) 1032 ccall((:CeedElemRestrictionGetCurlOrientations, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt8}}), rstr, mem_type, curl_orients) 1033end 1034 1035function CeedElemRestrictionRestoreCurlOrientations(rstr, curl_orients) 1036 ccall((:CeedElemRestrictionRestoreCurlOrientations, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt8}}), rstr, curl_orients) 1037end 1038 1039function CeedElemRestrictionGetELayout(rstr, layout) 1040 ccall((:CeedElemRestrictionGetELayout, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, layout) 1041end 1042 1043function CeedElemRestrictionSetELayout(rstr, layout) 1044 ccall((:CeedElemRestrictionSetELayout, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, layout) 1045end 1046 1047function CeedElemRestrictionGetData(rstr, data) 1048 ccall((:CeedElemRestrictionGetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data) 1049end 1050 1051function CeedElemRestrictionSetData(rstr, data) 1052 ccall((:CeedElemRestrictionSetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data) 1053end 1054 1055function CeedElemRestrictionReference(rstr) 1056 ccall((:CeedElemRestrictionReference, libceed), Cint, (CeedElemRestriction,), rstr) 1057end 1058 1059function CeedElemRestrictionGetFlopsEstimate(rstr, t_mode, flops) 1060 ccall((:CeedElemRestrictionGetFlopsEstimate, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, Ptr{CeedSize}), rstr, t_mode, flops) 1061end 1062 1063@cenum CeedFESpace::UInt32 begin 1064 CEED_FE_SPACE_H1 = 1 1065 CEED_FE_SPACE_HDIV = 2 1066 CEED_FE_SPACE_HCURL = 3 1067end 1068 1069function CeedBasisGetCollocatedGrad(basis, colo_grad_1d) 1070 ccall((:CeedBasisGetCollocatedGrad, libceed), Cint, (CeedBasis, Ptr{CeedScalar}), basis, colo_grad_1d) 1071end 1072 1073function CeedBasisIsTensor(basis, is_tensor) 1074 ccall((:CeedBasisIsTensor, libceed), Cint, (CeedBasis, Ptr{Bool}), basis, is_tensor) 1075end 1076 1077function CeedBasisGetData(basis, data) 1078 ccall((:CeedBasisGetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data) 1079end 1080 1081function CeedBasisSetData(basis, data) 1082 ccall((:CeedBasisSetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data) 1083end 1084 1085function CeedBasisReference(basis) 1086 ccall((:CeedBasisReference, libceed), Cint, (CeedBasis,), basis) 1087end 1088 1089function CeedBasisGetNumQuadratureComponents(basis, eval_mode, q_comp) 1090 ccall((:CeedBasisGetNumQuadratureComponents, libceed), Cint, (CeedBasis, CeedEvalMode, Ptr{CeedInt}), basis, eval_mode, q_comp) 1091end 1092 1093function CeedBasisGetFlopsEstimate(basis, t_mode, eval_mode, flops) 1094 ccall((:CeedBasisGetFlopsEstimate, libceed), Cint, (CeedBasis, CeedTransposeMode, CeedEvalMode, Ptr{CeedSize}), basis, t_mode, eval_mode, flops) 1095end 1096 1097function CeedBasisGetFESpace(basis, fe_space) 1098 ccall((:CeedBasisGetFESpace, libceed), Cint, (CeedBasis, Ptr{CeedFESpace}), basis, fe_space) 1099end 1100 1101function CeedBasisGetTopologyDimension(topo, dim) 1102 ccall((:CeedBasisGetTopologyDimension, libceed), Cint, (CeedElemTopology, Ptr{CeedInt}), topo, dim) 1103end 1104 1105function CeedBasisGetTensorContract(basis, contract) 1106 ccall((:CeedBasisGetTensorContract, libceed), Cint, (CeedBasis, Ptr{CeedTensorContract}), basis, contract) 1107end 1108 1109function CeedBasisSetTensorContract(basis, contract) 1110 ccall((:CeedBasisSetTensorContract, libceed), Cint, (CeedBasis, CeedTensorContract), basis, contract) 1111end 1112 1113function CeedTensorContractCreate(ceed, basis, contract) 1114 ccall((:CeedTensorContractCreate, libceed), Cint, (Ceed, CeedBasis, Ptr{CeedTensorContract}), ceed, basis, contract) 1115end 1116 1117function CeedTensorContractApply(contract, A, B, C, J, t, t_mode, Add, u, v) 1118 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) 1119end 1120 1121function CeedTensorContractStridedApply(contract, A, B, C, D, J, t, t_mode, add, u, v) 1122 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) 1123end 1124 1125function CeedTensorContractGetCeed(contract, ceed) 1126 ccall((:CeedTensorContractGetCeed, libceed), Cint, (CeedTensorContract, Ptr{Ceed}), contract, ceed) 1127end 1128 1129function CeedTensorContractGetData(contract, data) 1130 ccall((:CeedTensorContractGetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data) 1131end 1132 1133function CeedTensorContractSetData(contract, data) 1134 ccall((:CeedTensorContractSetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data) 1135end 1136 1137function CeedTensorContractReference(contract) 1138 ccall((:CeedTensorContractReference, libceed), Cint, (CeedTensorContract,), contract) 1139end 1140 1141function CeedTensorContractDestroy(contract) 1142 ccall((:CeedTensorContractDestroy, libceed), Cint, (Ptr{CeedTensorContract},), contract) 1143end 1144 1145function CeedQFunctionRegister(name, source, vec_length, f, init) 1146 ccall((:CeedQFunctionRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cchar}, CeedInt, CeedQFunctionUser, Ptr{Cvoid}), name, source, vec_length, f, init) 1147end 1148 1149function CeedQFunctionSetFortranStatus(qf, status) 1150 ccall((:CeedQFunctionSetFortranStatus, libceed), Cint, (CeedQFunction, Bool), qf, status) 1151end 1152 1153function CeedQFunctionGetVectorLength(qf, vec_length) 1154 ccall((:CeedQFunctionGetVectorLength, libceed), Cint, (CeedQFunction, Ptr{CeedInt}), qf, vec_length) 1155end 1156 1157function CeedQFunctionGetNumArgs(qf, num_input_fields, num_output_fields) 1158 ccall((:CeedQFunctionGetNumArgs, libceed), Cint, (CeedQFunction, Ptr{CeedInt}, Ptr{CeedInt}), qf, num_input_fields, num_output_fields) 1159end 1160 1161function CeedQFunctionGetKernelName(qf, kernel_name) 1162 ccall((:CeedQFunctionGetKernelName, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, kernel_name) 1163end 1164 1165function CeedQFunctionGetSourcePath(qf, source_path) 1166 ccall((:CeedQFunctionGetSourcePath, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source_path) 1167end 1168 1169function CeedQFunctionLoadSourceToBuffer(qf, source_buffer) 1170 ccall((:CeedQFunctionLoadSourceToBuffer, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source_buffer) 1171end 1172 1173function CeedQFunctionGetUserFunction(qf, f) 1174 ccall((:CeedQFunctionGetUserFunction, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionUser}), qf, f) 1175end 1176 1177function CeedQFunctionGetContext(qf, ctx) 1178 ccall((:CeedQFunctionGetContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx) 1179end 1180 1181function CeedQFunctionGetContextData(qf, mem_type, data) 1182 ccall((:CeedQFunctionGetContextData, libceed), Cint, (CeedQFunction, CeedMemType, Ptr{Cvoid}), qf, mem_type, data) 1183end 1184 1185function CeedQFunctionRestoreContextData(qf, data) 1186 ccall((:CeedQFunctionRestoreContextData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1187end 1188 1189function CeedQFunctionGetInnerContext(qf, ctx) 1190 ccall((:CeedQFunctionGetInnerContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx) 1191end 1192 1193function CeedQFunctionGetInnerContextData(qf, mem_type, data) 1194 ccall((:CeedQFunctionGetInnerContextData, libceed), Cint, (CeedQFunction, CeedMemType, Ptr{Cvoid}), qf, mem_type, data) 1195end 1196 1197function CeedQFunctionRestoreInnerContextData(qf, data) 1198 ccall((:CeedQFunctionRestoreInnerContextData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1199end 1200 1201function CeedQFunctionIsIdentity(qf, is_identity) 1202 ccall((:CeedQFunctionIsIdentity, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_identity) 1203end 1204 1205function CeedQFunctionIsContextWritable(qf, is_writable) 1206 ccall((:CeedQFunctionIsContextWritable, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_writable) 1207end 1208 1209function CeedQFunctionGetData(qf, data) 1210 ccall((:CeedQFunctionGetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1211end 1212 1213function CeedQFunctionSetData(qf, data) 1214 ccall((:CeedQFunctionSetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1215end 1216 1217function CeedQFunctionReference(qf) 1218 ccall((:CeedQFunctionReference, libceed), Cint, (CeedQFunction,), qf) 1219end 1220 1221function CeedQFunctionGetFlopsEstimate(qf, flops) 1222 ccall((:CeedQFunctionGetFlopsEstimate, libceed), Cint, (CeedQFunction, Ptr{CeedSize}), qf, flops) 1223end 1224 1225function CeedQFunctionContextGetCeed(ctx, ceed) 1226 ccall((:CeedQFunctionContextGetCeed, libceed), Cint, (CeedQFunctionContext, Ptr{Ceed}), ctx, ceed) 1227end 1228 1229function CeedQFunctionContextHasValidData(ctx, has_valid_data) 1230 ccall((:CeedQFunctionContextHasValidData, libceed), Cint, (CeedQFunctionContext, Ptr{Bool}), ctx, has_valid_data) 1231end 1232 1233function CeedQFunctionContextHasBorrowedDataOfType(ctx, mem_type, has_borrowed_data_of_type) 1234 ccall((:CeedQFunctionContextHasBorrowedDataOfType, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Bool}), ctx, mem_type, has_borrowed_data_of_type) 1235end 1236 1237function CeedQFunctionContextGetState(ctx, state) 1238 ccall((:CeedQFunctionContextGetState, libceed), Cint, (CeedQFunctionContext, Ptr{UInt64}), ctx, state) 1239end 1240 1241function CeedQFunctionContextGetBackendData(ctx, data) 1242 ccall((:CeedQFunctionContextGetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 1243end 1244 1245function CeedQFunctionContextSetBackendData(ctx, data) 1246 ccall((:CeedQFunctionContextSetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 1247end 1248 1249function CeedQFunctionContextGetFieldLabel(ctx, field_name, field_label) 1250 ccall((:CeedQFunctionContextGetFieldLabel, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Ptr{CeedContextFieldLabel}), ctx, field_name, field_label) 1251end 1252 1253function CeedQFunctionContextSetGeneric(ctx, field_label, field_type, value) 1254 ccall((:CeedQFunctionContextSetGeneric, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Cvoid}), ctx, field_label, field_type, value) 1255end 1256 1257function CeedQFunctionContextGetGenericRead(ctx, field_label, field_type, num_values, value) 1258 ccall((:CeedQFunctionContextGetGenericRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Csize_t}, Ptr{Cvoid}), ctx, field_label, field_type, num_values, value) 1259end 1260 1261function CeedQFunctionContextRestoreGenericRead(ctx, field_label, field_type, value) 1262 ccall((:CeedQFunctionContextRestoreGenericRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Cvoid}), ctx, field_label, field_type, value) 1263end 1264 1265function CeedQFunctionContextSetDouble(ctx, field_label, values) 1266 ccall((:CeedQFunctionContextSetDouble, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Cdouble}), ctx, field_label, values) 1267end 1268 1269function CeedQFunctionContextGetDoubleRead(ctx, field_label, num_values, values) 1270 ccall((:CeedQFunctionContextGetDoubleRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cdouble}}), ctx, field_label, num_values, values) 1271end 1272 1273function CeedQFunctionContextRestoreDoubleRead(ctx, field_label, values) 1274 ccall((:CeedQFunctionContextRestoreDoubleRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Ptr{Cdouble}}), ctx, field_label, values) 1275end 1276 1277function CeedQFunctionContextSetInt32(ctx, field_label, values) 1278 ccall((:CeedQFunctionContextSetInt32, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Cint}), ctx, field_label, values) 1279end 1280 1281function CeedQFunctionContextGetInt32Read(ctx, field_label, num_values, values) 1282 ccall((:CeedQFunctionContextGetInt32Read, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cint}}), ctx, field_label, num_values, values) 1283end 1284 1285function CeedQFunctionContextRestoreInt32Read(ctx, field_label, values) 1286 ccall((:CeedQFunctionContextRestoreInt32Read, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Ptr{Cint}}), ctx, field_label, values) 1287end 1288 1289function CeedQFunctionContextGetDataDestroy(ctx, f_mem_type, f) 1290 ccall((:CeedQFunctionContextGetDataDestroy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedMemType}, Ptr{CeedQFunctionContextDataDestroyUser}), ctx, f_mem_type, f) 1291end 1292 1293function CeedQFunctionContextReference(ctx) 1294 ccall((:CeedQFunctionContextReference, libceed), Cint, (CeedQFunctionContext,), ctx) 1295end 1296 1297function CeedQFunctionAssemblyDataCreate(ceed, data) 1298 ccall((:CeedQFunctionAssemblyDataCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionAssemblyData}), ceed, data) 1299end 1300 1301function CeedQFunctionAssemblyDataReference(data) 1302 ccall((:CeedQFunctionAssemblyDataReference, libceed), Cint, (CeedQFunctionAssemblyData,), data) 1303end 1304 1305function CeedQFunctionAssemblyDataSetReuse(data, reuse_assembly_data) 1306 ccall((:CeedQFunctionAssemblyDataSetReuse, libceed), Cint, (CeedQFunctionAssemblyData, Bool), data, reuse_assembly_data) 1307end 1308 1309function CeedQFunctionAssemblyDataSetUpdateNeeded(data, needs_data_update) 1310 ccall((:CeedQFunctionAssemblyDataSetUpdateNeeded, libceed), Cint, (CeedQFunctionAssemblyData, Bool), data, needs_data_update) 1311end 1312 1313function CeedQFunctionAssemblyDataIsUpdateNeeded(data, is_update_needed) 1314 ccall((:CeedQFunctionAssemblyDataIsUpdateNeeded, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{Bool}), data, is_update_needed) 1315end 1316 1317function CeedQFunctionAssemblyDataReferenceCopy(data, data_copy) 1318 ccall((:CeedQFunctionAssemblyDataReferenceCopy, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{CeedQFunctionAssemblyData}), data, data_copy) 1319end 1320 1321function CeedQFunctionAssemblyDataIsSetup(data, is_setup) 1322 ccall((:CeedQFunctionAssemblyDataIsSetup, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{Bool}), data, is_setup) 1323end 1324 1325function CeedQFunctionAssemblyDataSetObjects(data, vec, rstr) 1326 ccall((:CeedQFunctionAssemblyDataSetObjects, libceed), Cint, (CeedQFunctionAssemblyData, CeedVector, CeedElemRestriction), data, vec, rstr) 1327end 1328 1329function CeedQFunctionAssemblyDataGetObjects(data, vec, rstr) 1330 ccall((:CeedQFunctionAssemblyDataGetObjects, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{CeedVector}, Ptr{CeedElemRestriction}), data, vec, rstr) 1331end 1332 1333function CeedQFunctionAssemblyDataDestroy(data) 1334 ccall((:CeedQFunctionAssemblyDataDestroy, libceed), Cint, (Ptr{CeedQFunctionAssemblyData},), data) 1335end 1336 1337function CeedOperatorAssemblyDataCreate(ceed, op, data) 1338 ccall((:CeedOperatorAssemblyDataCreate, libceed), Cint, (Ceed, CeedOperator, Ptr{CeedOperatorAssemblyData}), ceed, op, data) 1339end 1340 1341function 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) 1342 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) 1343end 1344 1345function CeedOperatorAssemblyDataGetBases(data, num_active_bases, active_bases, assembled_bases_in, assembled_bases_out) 1346 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) 1347end 1348 1349function CeedOperatorAssemblyDataGetElemRestrictions(data, num_active_elem_rstrs, active_elem_rstrs) 1350 ccall((:CeedOperatorAssemblyDataGetElemRestrictions, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedElemRestriction}}), data, num_active_elem_rstrs, active_elem_rstrs) 1351end 1352 1353function CeedOperatorAssemblyDataDestroy(data) 1354 ccall((:CeedOperatorAssemblyDataDestroy, libceed), Cint, (Ptr{CeedOperatorAssemblyData},), data) 1355end 1356 1357function CeedOperatorGetOperatorAssemblyData(op, data) 1358 ccall((:CeedOperatorGetOperatorAssemblyData, libceed), Cint, (CeedOperator, Ptr{CeedOperatorAssemblyData}), op, data) 1359end 1360 1361function CeedOperatorGetActiveBasis(op, active_basis) 1362 ccall((:CeedOperatorGetActiveBasis, libceed), Cint, (CeedOperator, Ptr{CeedBasis}), op, active_basis) 1363end 1364 1365function CeedOperatorGetActiveElemRestriction(op, active_rstr) 1366 ccall((:CeedOperatorGetActiveElemRestriction, libceed), Cint, (CeedOperator, Ptr{CeedElemRestriction}), op, active_rstr) 1367end 1368 1369function CeedOperatorGetNumArgs(op, num_args) 1370 ccall((:CeedOperatorGetNumArgs, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_args) 1371end 1372 1373function CeedOperatorIsSetupDone(op, is_setup_done) 1374 ccall((:CeedOperatorIsSetupDone, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_setup_done) 1375end 1376 1377function CeedOperatorGetQFunction(op, qf) 1378 ccall((:CeedOperatorGetQFunction, libceed), Cint, (CeedOperator, Ptr{CeedQFunction}), op, qf) 1379end 1380 1381function CeedOperatorIsComposite(op, is_composite) 1382 ccall((:CeedOperatorIsComposite, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_composite) 1383end 1384 1385function CeedOperatorGetData(op, data) 1386 ccall((:CeedOperatorGetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data) 1387end 1388 1389function CeedOperatorSetData(op, data) 1390 ccall((:CeedOperatorSetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data) 1391end 1392 1393function CeedOperatorReference(op) 1394 ccall((:CeedOperatorReference, libceed), Cint, (CeedOperator,), op) 1395end 1396 1397function CeedOperatorSetSetupDone(op) 1398 ccall((:CeedOperatorSetSetupDone, libceed), Cint, (CeedOperator,), op) 1399end 1400 1401function CeedMatrixMatrixMultiply(ceed, mat_A, mat_B, mat_C, m, n, kk) 1402 ccall((:CeedMatrixMatrixMultiply, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt, CeedInt), ceed, mat_A, mat_B, mat_C, m, n, kk) 1403end 1404 1405function CeedQRFactorization(ceed, mat, tau, m, n) 1406 ccall((:CeedQRFactorization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt), ceed, mat, tau, m, n) 1407end 1408 1409function CeedHouseholderApplyQ(mat_A, mat_Q, tau, t_mode, m, n, k, row, col) 1410 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) 1411end 1412 1413function CeedSymmetricSchurDecomposition(ceed, mat, lambda, n) 1414 ccall((:CeedSymmetricSchurDecomposition, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat, lambda, n) 1415end 1416 1417function CeedSimultaneousDiagonalization(ceed, mat_A, mat_B, x, lambda, n) 1418 ccall((:CeedSimultaneousDiagonalization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat_A, mat_B, x, lambda, n) 1419end 1420 1421# Skipping MacroDefinition: CEED_EXTERN extern CEED_VISIBILITY ( default ) 1422 1423# Skipping MacroDefinition: CEED_QFUNCTION_HELPER_ATTR CEED_QFUNCTION_ATTR __attribute__ ( ( always_inline ) ) 1424 1425# Skipping MacroDefinition: CEED_QFUNCTION_HELPER CEED_QFUNCTION_HELPER_ATTR static inline 1426 1427const CeedInt_FMT = "d" 1428 1429const CeedSize_FMT = "td" 1430 1431const CeedInt8_FMT = "d" 1432 1433const CEED_VERSION_MAJOR = 0 1434 1435const CEED_VERSION_MINOR = 11 1436 1437const CEED_VERSION_PATCH = 0 1438 1439const CEED_VERSION_RELEASE = false 1440 1441# Skipping MacroDefinition: CEED_INTERN extern CEED_VISIBILITY ( hidden ) 1442 1443# Skipping MacroDefinition: CEED_UNUSED __attribute__ ( ( unused ) ) 1444 1445const CEED_MAX_RESOURCE_LEN = 1024 1446 1447const CEED_MAX_BACKEND_PRIORITY = UINT_MAX 1448 1449const CEED_COMPOSITE_MAX = 16 1450 1451const CEED_FIELD_MAX = 16 1452 1453# Skipping MacroDefinition: CeedPragmaOptimizeOff _Pragma ( "clang optimize off" ) 1454 1455# Skipping MacroDefinition: CeedPragmaOptimizeOn _Pragma ( "clang optimize on" ) 1456