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