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 CeedElemRestrictionCreateAtPoints(ceed, num_elem, num_points, num_comp, l_size, mem_type, copy_mode, offsets, rstr) 300 ccall((:CeedElemRestrictionCreateAtPoints, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, num_points, num_comp, l_size, mem_type, copy_mode, offsets, rstr) 301end 302 303function CeedElemRestrictionCreateBlocked(ceed, num_elem, elem_size, block_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr) 304 ccall((:CeedElemRestrictionCreateBlocked, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, block_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr) 305end 306 307function CeedElemRestrictionCreateBlockedOriented(ceed, num_elem, elem_size, block_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, orients, rstr) 308 ccall((:CeedElemRestrictionCreateBlockedOriented, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{Bool}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, block_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, orients, rstr) 309end 310 311function CeedElemRestrictionCreateBlockedCurlOriented(ceed, num_elem, elem_size, block_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, curl_orients, rstr) 312 ccall((:CeedElemRestrictionCreateBlockedCurlOriented, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedInt8}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, block_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, curl_orients, rstr) 313end 314 315function CeedElemRestrictionCreateBlockedStrided(ceed, num_elem, elem_size, block_size, num_comp, l_size, strides, rstr) 316 ccall((:CeedElemRestrictionCreateBlockedStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedSize, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, block_size, num_comp, l_size, strides, rstr) 317end 318 319function CeedElemRestrictionCreateUnsignedCopy(rstr, rstr_unsigned) 320 ccall((:CeedElemRestrictionCreateUnsignedCopy, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, rstr_unsigned) 321end 322 323function CeedElemRestrictionCreateUnorientedCopy(rstr, rstr_unoriented) 324 ccall((:CeedElemRestrictionCreateUnorientedCopy, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, rstr_unoriented) 325end 326 327function CeedElemRestrictionReferenceCopy(rstr, rstr_copy) 328 ccall((:CeedElemRestrictionReferenceCopy, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, rstr_copy) 329end 330 331function CeedElemRestrictionCreateVector(rstr, lvec, evec) 332 ccall((:CeedElemRestrictionCreateVector, libceed), Cint, (CeedElemRestriction, Ptr{CeedVector}, Ptr{CeedVector}), rstr, lvec, evec) 333end 334 335function CeedElemRestrictionApply(rstr, t_mode, u, ru, request) 336 ccall((:CeedElemRestrictionApply, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, t_mode, u, ru, request) 337end 338 339function CeedElemRestrictionApplyAtPointsInElement(rstr, elem, t_mode, u, ru, request) 340 ccall((:CeedElemRestrictionApplyAtPointsInElement, libceed), Cint, (CeedElemRestriction, CeedInt, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, elem, t_mode, u, ru, request) 341end 342 343function CeedElemRestrictionApplyBlock(rstr, block, t_mode, u, ru, request) 344 ccall((:CeedElemRestrictionApplyBlock, libceed), Cint, (CeedElemRestriction, CeedInt, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, block, t_mode, u, ru, request) 345end 346 347function CeedElemRestrictionGetCeed(rstr, ceed) 348 ccall((:CeedElemRestrictionGetCeed, libceed), Cint, (CeedElemRestriction, Ptr{Ceed}), rstr, ceed) 349end 350 351function CeedElemRestrictionGetCompStride(rstr, comp_stride) 352 ccall((:CeedElemRestrictionGetCompStride, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, comp_stride) 353end 354 355function CeedElemRestrictionGetNumElements(rstr, num_elem) 356 ccall((:CeedElemRestrictionGetNumElements, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_elem) 357end 358 359function CeedElemRestrictionGetElementSize(rstr, elem_size) 360 ccall((:CeedElemRestrictionGetElementSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, elem_size) 361end 362 363function CeedElemRestrictionGetNumPoints(rstr, num_points) 364 ccall((:CeedElemRestrictionGetNumPoints, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_points) 365end 366 367function CeedElemRestrictionGetNumPointsInElement(rstr, elem, num_points) 368 ccall((:CeedElemRestrictionGetNumPointsInElement, libceed), Cint, (CeedElemRestriction, CeedInt, Ptr{CeedInt}), rstr, elem, num_points) 369end 370 371function CeedElemRestrictionGetMaxPointsInElement(rstr, max_points) 372 ccall((:CeedElemRestrictionGetMaxPointsInElement, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, max_points) 373end 374 375function CeedElemRestrictionGetLVectorSize(rstr, l_size) 376 ccall((:CeedElemRestrictionGetLVectorSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedSize}), rstr, l_size) 377end 378 379function CeedElemRestrictionGetNumComponents(rstr, num_comp) 380 ccall((:CeedElemRestrictionGetNumComponents, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_comp) 381end 382 383function CeedElemRestrictionGetNumBlocks(rstr, num_block) 384 ccall((:CeedElemRestrictionGetNumBlocks, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_block) 385end 386 387function CeedElemRestrictionGetBlockSize(rstr, block_size) 388 ccall((:CeedElemRestrictionGetBlockSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, block_size) 389end 390 391function CeedElemRestrictionGetMultiplicity(rstr, mult) 392 ccall((:CeedElemRestrictionGetMultiplicity, libceed), Cint, (CeedElemRestriction, CeedVector), rstr, mult) 393end 394 395function CeedElemRestrictionView(rstr, stream) 396 ccall((:CeedElemRestrictionView, libceed), Cint, (CeedElemRestriction, Ptr{Libc.FILE}), rstr, stream) 397end 398 399function CeedElemRestrictionDestroy(rstr) 400 ccall((:CeedElemRestrictionDestroy, libceed), Cint, (Ptr{CeedElemRestriction},), rstr) 401end 402 403function CeedBasisCreateTensorH1Lagrange(ceed, dim, num_comp, P, Q, quad_mode, basis) 404 ccall((:CeedBasisCreateTensorH1Lagrange, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedQuadMode, Ptr{CeedBasis}), ceed, dim, num_comp, P, Q, quad_mode, basis) 405end 406 407function CeedBasisCreateTensorH1(ceed, dim, num_comp, P_1d, Q_1d, interp_1d, grad_1d, q_ref_1d, q_weight_1d, basis) 408 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) 409end 410 411function CeedBasisCreateH1(ceed, topo, num_comp, num_nodes, nqpts, interp, grad, q_ref, q_weights, basis) 412 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) 413end 414 415function CeedBasisCreateHdiv(ceed, topo, num_comp, num_nodes, nqpts, interp, div, q_ref, q_weights, basis) 416 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) 417end 418 419function CeedBasisCreateHcurl(ceed, topo, num_comp, num_nodes, nqpts, interp, curl, q_ref, q_weights, basis) 420 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) 421end 422 423function CeedBasisCreateProjection(basis_from, basis_to, basis_project) 424 ccall((:CeedBasisCreateProjection, libceed), Cint, (CeedBasis, CeedBasis, Ptr{CeedBasis}), basis_from, basis_to, basis_project) 425end 426 427function CeedBasisReferenceCopy(basis, basis_copy) 428 ccall((:CeedBasisReferenceCopy, libceed), Cint, (CeedBasis, Ptr{CeedBasis}), basis, basis_copy) 429end 430 431function CeedBasisView(basis, stream) 432 ccall((:CeedBasisView, libceed), Cint, (CeedBasis, Ptr{Libc.FILE}), basis, stream) 433end 434 435function CeedBasisApply(basis, num_elem, t_mode, eval_mode, u, v) 436 ccall((:CeedBasisApply, libceed), Cint, (CeedBasis, CeedInt, CeedTransposeMode, CeedEvalMode, CeedVector, CeedVector), basis, num_elem, t_mode, eval_mode, u, v) 437end 438 439function CeedBasisApplyAtPoints(basis, num_points, t_mode, eval_mode, x_ref, u, v) 440 ccall((:CeedBasisApplyAtPoints, libceed), Cint, (CeedBasis, CeedInt, CeedTransposeMode, CeedEvalMode, CeedVector, CeedVector, CeedVector), basis, num_points, t_mode, eval_mode, x_ref, u, v) 441end 442 443function CeedBasisGetCeed(basis, ceed) 444 ccall((:CeedBasisGetCeed, libceed), Cint, (CeedBasis, Ptr{Ceed}), basis, ceed) 445end 446 447function CeedBasisGetDimension(basis, dim) 448 ccall((:CeedBasisGetDimension, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, dim) 449end 450 451function CeedBasisGetTopology(basis, topo) 452 ccall((:CeedBasisGetTopology, libceed), Cint, (CeedBasis, Ptr{CeedElemTopology}), basis, topo) 453end 454 455function CeedBasisGetNumComponents(basis, num_comp) 456 ccall((:CeedBasisGetNumComponents, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, num_comp) 457end 458 459function CeedBasisGetNumNodes(basis, P) 460 ccall((:CeedBasisGetNumNodes, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P) 461end 462 463function CeedBasisGetNumNodes1D(basis, P_1d) 464 ccall((:CeedBasisGetNumNodes1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P_1d) 465end 466 467function CeedBasisGetNumQuadraturePoints(basis, Q) 468 ccall((:CeedBasisGetNumQuadraturePoints, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q) 469end 470 471function CeedBasisGetNumQuadraturePoints1D(basis, Q_1d) 472 ccall((:CeedBasisGetNumQuadraturePoints1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q_1d) 473end 474 475function CeedBasisGetQRef(basis, q_ref) 476 ccall((:CeedBasisGetQRef, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_ref) 477end 478 479function CeedBasisGetQWeights(basis, q_weights) 480 ccall((:CeedBasisGetQWeights, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_weights) 481end 482 483function CeedBasisGetInterp(basis, interp) 484 ccall((:CeedBasisGetInterp, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp) 485end 486 487function CeedBasisGetInterp1D(basis, interp_1d) 488 ccall((:CeedBasisGetInterp1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp_1d) 489end 490 491function CeedBasisGetGrad(basis, grad) 492 ccall((:CeedBasisGetGrad, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad) 493end 494 495function CeedBasisGetGrad1D(basis, grad_1d) 496 ccall((:CeedBasisGetGrad1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad_1d) 497end 498 499function CeedBasisGetDiv(basis, div) 500 ccall((:CeedBasisGetDiv, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, div) 501end 502 503function CeedBasisGetCurl(basis, curl) 504 ccall((:CeedBasisGetCurl, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, curl) 505end 506 507function CeedBasisDestroy(basis) 508 ccall((:CeedBasisDestroy, libceed), Cint, (Ptr{CeedBasis},), basis) 509end 510 511function CeedGaussQuadrature(Q, q_ref_1d, q_weight_1d) 512 ccall((:CeedGaussQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d) 513end 514 515function CeedLobattoQuadrature(Q, q_ref_1d, q_weight_1d) 516 ccall((:CeedLobattoQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d) 517end 518 519# typedef int ( * CeedQFunctionUser ) ( void * ctx , const CeedInt Q , const CeedScalar * const * in , CeedScalar * const * out ) 520const CeedQFunctionUser = Ptr{Cvoid} 521 522function CeedQFunctionCreateInterior(ceed, vec_length, f, source, qf) 523 ccall((:CeedQFunctionCreateInterior, libceed), Cint, (Ceed, CeedInt, CeedQFunctionUser, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, vec_length, f, source, qf) 524end 525 526function CeedQFunctionCreateInteriorByName(ceed, name, qf) 527 ccall((:CeedQFunctionCreateInteriorByName, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, name, qf) 528end 529 530function CeedQFunctionCreateIdentity(ceed, size, in_mode, out_mode, qf) 531 ccall((:CeedQFunctionCreateIdentity, libceed), Cint, (Ceed, CeedInt, CeedEvalMode, CeedEvalMode, Ptr{CeedQFunction}), ceed, size, in_mode, out_mode, qf) 532end 533 534function CeedQFunctionReferenceCopy(qf, qf_copy) 535 ccall((:CeedQFunctionReferenceCopy, libceed), Cint, (CeedQFunction, Ptr{CeedQFunction}), qf, qf_copy) 536end 537 538function CeedQFunctionAddInput(qf, field_name, size, eval_mode) 539 ccall((:CeedQFunctionAddInput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode) 540end 541 542function CeedQFunctionAddOutput(qf, field_name, size, eval_mode) 543 ccall((:CeedQFunctionAddOutput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode) 544end 545 546function CeedQFunctionGetFields(qf, num_input_fields, input_fields, num_output_fields, output_fields) 547 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) 548end 549 550function CeedQFunctionSetContext(qf, ctx) 551 ccall((:CeedQFunctionSetContext, libceed), Cint, (CeedQFunction, CeedQFunctionContext), qf, ctx) 552end 553 554function CeedQFunctionSetContextWritable(qf, is_writable) 555 ccall((:CeedQFunctionSetContextWritable, libceed), Cint, (CeedQFunction, Bool), qf, is_writable) 556end 557 558function CeedQFunctionSetUserFlopsEstimate(qf, flops) 559 ccall((:CeedQFunctionSetUserFlopsEstimate, libceed), Cint, (CeedQFunction, CeedSize), qf, flops) 560end 561 562function CeedQFunctionView(qf, stream) 563 ccall((:CeedQFunctionView, libceed), Cint, (CeedQFunction, Ptr{Libc.FILE}), qf, stream) 564end 565 566function CeedQFunctionGetCeed(qf, ceed) 567 ccall((:CeedQFunctionGetCeed, libceed), Cint, (CeedQFunction, Ptr{Ceed}), qf, ceed) 568end 569 570function CeedQFunctionApply(qf, Q, u, v) 571 ccall((:CeedQFunctionApply, libceed), Cint, (CeedQFunction, CeedInt, Ptr{CeedVector}, Ptr{CeedVector}), qf, Q, u, v) 572end 573 574function CeedQFunctionDestroy(qf) 575 ccall((:CeedQFunctionDestroy, libceed), Cint, (Ptr{CeedQFunction},), qf) 576end 577 578function CeedQFunctionFieldGetName(qf_field, field_name) 579 ccall((:CeedQFunctionFieldGetName, libceed), Cint, (CeedQFunctionField, Ptr{Ptr{Cchar}}), qf_field, field_name) 580end 581 582function CeedQFunctionFieldGetSize(qf_field, size) 583 ccall((:CeedQFunctionFieldGetSize, libceed), Cint, (CeedQFunctionField, Ptr{CeedInt}), qf_field, size) 584end 585 586function CeedQFunctionFieldGetEvalMode(qf_field, eval_mode) 587 ccall((:CeedQFunctionFieldGetEvalMode, libceed), Cint, (CeedQFunctionField, Ptr{CeedEvalMode}), qf_field, eval_mode) 588end 589 590# typedef int ( * CeedQFunctionContextDataDestroyUser ) ( void * data ) 591const CeedQFunctionContextDataDestroyUser = Ptr{Cvoid} 592 593function CeedQFunctionContextCreate(ceed, ctx) 594 ccall((:CeedQFunctionContextCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionContext}), ceed, ctx) 595end 596 597function CeedQFunctionContextReferenceCopy(ctx, ctx_copy) 598 ccall((:CeedQFunctionContextReferenceCopy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedQFunctionContext}), ctx, ctx_copy) 599end 600 601function CeedQFunctionContextSetData(ctx, mem_type, copy_mode, size, data) 602 ccall((:CeedQFunctionContextSetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, CeedCopyMode, Csize_t, Ptr{Cvoid}), ctx, mem_type, copy_mode, size, data) 603end 604 605function CeedQFunctionContextTakeData(ctx, mem_type, data) 606 ccall((:CeedQFunctionContextTakeData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data) 607end 608 609function CeedQFunctionContextGetData(ctx, mem_type, data) 610 ccall((:CeedQFunctionContextGetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data) 611end 612 613function CeedQFunctionContextGetDataRead(ctx, mem_type, data) 614 ccall((:CeedQFunctionContextGetDataRead, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data) 615end 616 617function CeedQFunctionContextRestoreData(ctx, data) 618 ccall((:CeedQFunctionContextRestoreData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 619end 620 621function CeedQFunctionContextRestoreDataRead(ctx, data) 622 ccall((:CeedQFunctionContextRestoreDataRead, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 623end 624 625function CeedQFunctionContextRegisterDouble(ctx, field_name, field_offset, num_values, field_description) 626 ccall((:CeedQFunctionContextRegisterDouble, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Csize_t, Csize_t, Ptr{Cchar}), ctx, field_name, field_offset, num_values, field_description) 627end 628 629function CeedQFunctionContextRegisterInt32(ctx, field_name, field_offset, num_values, field_description) 630 ccall((:CeedQFunctionContextRegisterInt32, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Csize_t, Csize_t, Ptr{Cchar}), ctx, field_name, field_offset, num_values, field_description) 631end 632 633function CeedQFunctionContextGetAllFieldLabels(ctx, field_labels, num_fields) 634 ccall((:CeedQFunctionContextGetAllFieldLabels, libceed), Cint, (CeedQFunctionContext, Ptr{Ptr{CeedContextFieldLabel}}, Ptr{CeedInt}), ctx, field_labels, num_fields) 635end 636 637function CeedContextFieldLabelGetDescription(label, field_name, field_offset, num_values, field_description, field_type) 638 ccall((:CeedContextFieldLabelGetDescription, libceed), Cint, (CeedContextFieldLabel, Ptr{Ptr{Cchar}}, Ptr{Csize_t}, Ptr{Csize_t}, Ptr{Ptr{Cchar}}, Ptr{CeedContextFieldType}), label, field_name, field_offset, num_values, field_description, field_type) 639end 640 641function CeedQFunctionContextGetContextSize(ctx, ctx_size) 642 ccall((:CeedQFunctionContextGetContextSize, libceed), Cint, (CeedQFunctionContext, Ptr{Csize_t}), ctx, ctx_size) 643end 644 645function CeedQFunctionContextView(ctx, stream) 646 ccall((:CeedQFunctionContextView, libceed), Cint, (CeedQFunctionContext, Ptr{Libc.FILE}), ctx, stream) 647end 648 649function CeedQFunctionContextSetDataDestroy(ctx, f_mem_type, f) 650 ccall((:CeedQFunctionContextSetDataDestroy, libceed), Cint, (CeedQFunctionContext, CeedMemType, CeedQFunctionContextDataDestroyUser), ctx, f_mem_type, f) 651end 652 653function CeedQFunctionContextDestroy(ctx) 654 ccall((:CeedQFunctionContextDestroy, libceed), Cint, (Ptr{CeedQFunctionContext},), ctx) 655end 656 657function CeedOperatorCreate(ceed, qf, dqf, dqfT, op) 658 ccall((:CeedOperatorCreate, libceed), Cint, (Ceed, CeedQFunction, CeedQFunction, CeedQFunction, Ptr{CeedOperator}), ceed, qf, dqf, dqfT, op) 659end 660 661function CeedCompositeOperatorCreate(ceed, op) 662 ccall((:CeedCompositeOperatorCreate, libceed), Cint, (Ceed, Ptr{CeedOperator}), ceed, op) 663end 664 665function CeedOperatorReferenceCopy(op, op_copy) 666 ccall((:CeedOperatorReferenceCopy, libceed), Cint, (CeedOperator, Ptr{CeedOperator}), op, op_copy) 667end 668 669function CeedOperatorSetField(op, field_name, r, b, v) 670 ccall((:CeedOperatorSetField, libceed), Cint, (CeedOperator, Ptr{Cchar}, CeedElemRestriction, CeedBasis, CeedVector), op, field_name, r, b, v) 671end 672 673function CeedOperatorGetFields(op, num_input_fields, input_fields, num_output_fields, output_fields) 674 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) 675end 676 677function CeedCompositeOperatorAddSub(composite_op, sub_op) 678 ccall((:CeedCompositeOperatorAddSub, libceed), Cint, (CeedOperator, CeedOperator), composite_op, sub_op) 679end 680 681function CeedCompositeOperatorGetNumSub(op, num_suboperators) 682 ccall((:CeedCompositeOperatorGetNumSub, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_suboperators) 683end 684 685function CeedCompositeOperatorGetSubList(op, sub_operators) 686 ccall((:CeedCompositeOperatorGetSubList, libceed), Cint, (CeedOperator, Ptr{Ptr{CeedOperator}}), op, sub_operators) 687end 688 689function CeedOperatorCheckReady(op) 690 ccall((:CeedOperatorCheckReady, libceed), Cint, (CeedOperator,), op) 691end 692 693function CeedOperatorGetActiveVectorLengths(op, input_size, output_size) 694 ccall((:CeedOperatorGetActiveVectorLengths, libceed), Cint, (CeedOperator, Ptr{CeedSize}, Ptr{CeedSize}), op, input_size, output_size) 695end 696 697function CeedOperatorSetQFunctionAssemblyReuse(op, reuse_assembly_data) 698 ccall((:CeedOperatorSetQFunctionAssemblyReuse, libceed), Cint, (CeedOperator, Bool), op, reuse_assembly_data) 699end 700 701function CeedOperatorSetQFunctionAssemblyDataUpdateNeeded(op, needs_data_update) 702 ccall((:CeedOperatorSetQFunctionAssemblyDataUpdateNeeded, libceed), Cint, (CeedOperator, Bool), op, needs_data_update) 703end 704 705function CeedOperatorLinearAssembleQFunction(op, assembled, rstr, request) 706 ccall((:CeedOperatorLinearAssembleQFunction, libceed), Cint, (CeedOperator, Ptr{CeedVector}, Ptr{CeedElemRestriction}, Ptr{CeedRequest}), op, assembled, rstr, request) 707end 708 709function CeedOperatorLinearAssembleQFunctionBuildOrUpdate(op, assembled, rstr, request) 710 ccall((:CeedOperatorLinearAssembleQFunctionBuildOrUpdate, libceed), Cint, (CeedOperator, Ptr{CeedVector}, Ptr{CeedElemRestriction}, Ptr{CeedRequest}), op, assembled, rstr, request) 711end 712 713function CeedOperatorLinearAssembleDiagonal(op, assembled, request) 714 ccall((:CeedOperatorLinearAssembleDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 715end 716 717function CeedOperatorLinearAssembleAddDiagonal(op, assembled, request) 718 ccall((:CeedOperatorLinearAssembleAddDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 719end 720 721function CeedOperatorLinearAssemblePointBlockDiagonal(op, assembled, request) 722 ccall((:CeedOperatorLinearAssemblePointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 723end 724 725function CeedOperatorLinearAssembleAddPointBlockDiagonal(op, assembled, request) 726 ccall((:CeedOperatorLinearAssembleAddPointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 727end 728 729function CeedOperatorLinearAssemblePointBlockDiagonalSymbolic(op, num_entries, rows, cols) 730 ccall((:CeedOperatorLinearAssemblePointBlockDiagonalSymbolic, libceed), Cint, (CeedOperator, Ptr{CeedSize}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{CeedInt}}), op, num_entries, rows, cols) 731end 732 733function CeedOperatorLinearAssembleSymbolic(op, num_entries, rows, cols) 734 ccall((:CeedOperatorLinearAssembleSymbolic, libceed), Cint, (CeedOperator, Ptr{CeedSize}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{CeedInt}}), op, num_entries, rows, cols) 735end 736 737function CeedOperatorLinearAssemble(op, values) 738 ccall((:CeedOperatorLinearAssemble, libceed), Cint, (CeedOperator, CeedVector), op, values) 739end 740 741function CeedCompositeOperatorGetMultiplicity(op, num_skip_indices, skip_indices, mult) 742 ccall((:CeedCompositeOperatorGetMultiplicity, libceed), Cint, (CeedOperator, CeedInt, Ptr{CeedInt}, CeedVector), op, num_skip_indices, skip_indices, mult) 743end 744 745function CeedOperatorMultigridLevelCreate(op_fine, p_mult_fine, rstr_coarse, basis_coarse, op_coarse, op_prolong, op_restrict) 746 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) 747end 748 749function CeedOperatorMultigridLevelCreateTensorH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict) 750 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) 751end 752 753function CeedOperatorMultigridLevelCreateH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict) 754 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) 755end 756 757function CeedOperatorCreateFDMElementInverse(op, fdm_inv, request) 758 ccall((:CeedOperatorCreateFDMElementInverse, libceed), Cint, (CeedOperator, Ptr{CeedOperator}, Ptr{CeedRequest}), op, fdm_inv, request) 759end 760 761function CeedOperatorSetName(op, name) 762 ccall((:CeedOperatorSetName, libceed), Cint, (CeedOperator, Ptr{Cchar}), op, name) 763end 764 765function CeedOperatorView(op, stream) 766 ccall((:CeedOperatorView, libceed), Cint, (CeedOperator, Ptr{Libc.FILE}), op, stream) 767end 768 769function CeedOperatorGetCeed(op, ceed) 770 ccall((:CeedOperatorGetCeed, libceed), Cint, (CeedOperator, Ptr{Ceed}), op, ceed) 771end 772 773function CeedOperatorGetNumElements(op, num_elem) 774 ccall((:CeedOperatorGetNumElements, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_elem) 775end 776 777function CeedOperatorGetNumQuadraturePoints(op, num_qpts) 778 ccall((:CeedOperatorGetNumQuadraturePoints, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_qpts) 779end 780 781function CeedOperatorGetFlopsEstimate(op, flops) 782 ccall((:CeedOperatorGetFlopsEstimate, libceed), Cint, (CeedOperator, Ptr{CeedSize}), op, flops) 783end 784 785function CeedOperatorGetContext(op, ctx) 786 ccall((:CeedOperatorGetContext, libceed), Cint, (CeedOperator, Ptr{CeedQFunctionContext}), op, ctx) 787end 788 789function CeedOperatorGetContextFieldLabel(op, field_name, field_label) 790 ccall((:CeedOperatorGetContextFieldLabel, libceed), Cint, (CeedOperator, Ptr{Cchar}, Ptr{CeedContextFieldLabel}), op, field_name, field_label) 791end 792 793function CeedOperatorSetContextDouble(op, field_label, values) 794 ccall((:CeedOperatorSetContextDouble, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Cdouble}), op, field_label, values) 795end 796 797function CeedOperatorGetContextDoubleRead(op, field_label, num_values, values) 798 ccall((:CeedOperatorGetContextDoubleRead, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cdouble}}), op, field_label, num_values, values) 799end 800 801function CeedOperatorRestoreContextDoubleRead(op, field_label, values) 802 ccall((:CeedOperatorRestoreContextDoubleRead, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Ptr{Cdouble}}), op, field_label, values) 803end 804 805function CeedOperatorSetContextInt32(op, field_label, values) 806 ccall((:CeedOperatorSetContextInt32, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Cint}), op, field_label, values) 807end 808 809function CeedOperatorGetContextInt32Read(op, field_label, num_values, values) 810 ccall((:CeedOperatorGetContextInt32Read, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cint}}), op, field_label, num_values, values) 811end 812 813function CeedOperatorRestoreContextInt32Read(op, field_label, values) 814 ccall((:CeedOperatorRestoreContextInt32Read, libceed), Cint, (CeedOperator, CeedContextFieldLabel, Ptr{Ptr{Cint}}), op, field_label, values) 815end 816 817function CeedOperatorApply(op, in, out, request) 818 ccall((:CeedOperatorApply, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request) 819end 820 821function CeedOperatorApplyAdd(op, in, out, request) 822 ccall((:CeedOperatorApplyAdd, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request) 823end 824 825function CeedOperatorDestroy(op) 826 ccall((:CeedOperatorDestroy, libceed), Cint, (Ptr{CeedOperator},), op) 827end 828 829function CeedOperatorGetFieldByName(op, field_name, op_field) 830 ccall((:CeedOperatorGetFieldByName, libceed), Cint, (CeedOperator, Ptr{Cchar}, Ptr{CeedOperatorField}), op, field_name, op_field) 831end 832 833function CeedOperatorFieldGetName(op_field, field_name) 834 ccall((:CeedOperatorFieldGetName, libceed), Cint, (CeedOperatorField, Ptr{Ptr{Cchar}}), op_field, field_name) 835end 836 837function CeedOperatorFieldGetElemRestriction(op_field, rstr) 838 ccall((:CeedOperatorFieldGetElemRestriction, libceed), Cint, (CeedOperatorField, Ptr{CeedElemRestriction}), op_field, rstr) 839end 840 841function CeedOperatorFieldGetBasis(op_field, basis) 842 ccall((:CeedOperatorFieldGetBasis, libceed), Cint, (CeedOperatorField, Ptr{CeedBasis}), op_field, basis) 843end 844 845function CeedOperatorFieldGetVector(op_field, vec) 846 ccall((:CeedOperatorFieldGetVector, libceed), Cint, (CeedOperatorField, Ptr{CeedVector}), op_field, vec) 847end 848 849function CeedIntPow(base, power) 850 ccall((:CeedIntPow, libceed), CeedInt, (CeedInt, CeedInt), base, power) 851end 852 853function CeedIntMin(a, b) 854 ccall((:CeedIntMin, libceed), CeedInt, (CeedInt, CeedInt), a, b) 855end 856 857function CeedIntMax(a, b) 858 ccall((:CeedIntMax, libceed), CeedInt, (CeedInt, CeedInt), a, b) 859end 860 861function CeedRegisterAll() 862 ccall((:CeedRegisterAll, libceed), Cint, ()) 863end 864 865function CeedQFunctionRegisterAll() 866 ccall((:CeedQFunctionRegisterAll, libceed), Cint, ()) 867end 868 869function CeedQFunctionSetCUDAUserFunction(qf, f) 870 ccall((:CeedQFunctionSetCUDAUserFunction, libceed), Cint, (CeedQFunction, Cint), qf, f) 871end 872 873function CeedDebugFlag(ceed) 874 ccall((:CeedDebugFlag, libceed), Bool, (Ceed,), ceed) 875end 876 877function CeedDebugFlagEnv() 878 ccall((:CeedDebugFlagEnv, libceed), Bool, ()) 879end 880 881function CeedMallocArray(n, unit, p) 882 ccall((:CeedMallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 883end 884 885function CeedCallocArray(n, unit, p) 886 ccall((:CeedCallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 887end 888 889function CeedReallocArray(n, unit, p) 890 ccall((:CeedReallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 891end 892 893@cenum CeedDebugColor::UInt32 begin 894 CEED_DEBUG_COLOR_SUCCESS = 108 895 CEED_DEBUG_COLOR_WARNING = 208 896 CEED_DEBUG_COLOR_ERROR = 196 897 CEED_DEBUG_COLOR_NONE = 255 898end 899 900mutable struct CeedTensorContract_private end 901 902const CeedTensorContract = Ptr{CeedTensorContract_private} 903 904mutable struct CeedQFunctionAssemblyData_private end 905 906const CeedQFunctionAssemblyData = Ptr{CeedQFunctionAssemblyData_private} 907 908mutable struct CeedOperatorAssemblyData_private end 909 910const CeedOperatorAssemblyData = Ptr{CeedOperatorAssemblyData_private} 911 912function CeedStringAllocCopy(source, copy) 913 ccall((:CeedStringAllocCopy, libceed), Cint, (Ptr{Cchar}, Ptr{Ptr{Cchar}}), source, copy) 914end 915 916function CeedFree(p) 917 ccall((:CeedFree, libceed), Cint, (Ptr{Cvoid},), p) 918end 919 920function CeedRegister(prefix, init, priority) 921 ccall((:CeedRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority) 922end 923 924function CeedRegisterImpl(prefix, init, priority) 925 ccall((:CeedRegisterImpl, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority) 926end 927 928function CeedIsDebug(ceed, is_debug) 929 ccall((:CeedIsDebug, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_debug) 930end 931 932function CeedGetResourceRoot(ceed, resource, delineator, resource_root) 933 ccall((:CeedGetResourceRoot, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cchar}, Ptr{Ptr{Cchar}}), ceed, resource, delineator, resource_root) 934end 935 936function CeedGetParent(ceed, parent) 937 ccall((:CeedGetParent, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent) 938end 939 940function CeedGetDelegate(ceed, delegate) 941 ccall((:CeedGetDelegate, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, delegate) 942end 943 944function CeedSetDelegate(ceed, delegate) 945 ccall((:CeedSetDelegate, libceed), Cint, (Ceed, Ceed), ceed, delegate) 946end 947 948function CeedGetObjectDelegate(ceed, delegate, obj_name) 949 ccall((:CeedGetObjectDelegate, libceed), Cint, (Ceed, Ptr{Ceed}, Ptr{Cchar}), ceed, delegate, obj_name) 950end 951 952function CeedSetObjectDelegate(ceed, delegate, obj_name) 953 ccall((:CeedSetObjectDelegate, libceed), Cint, (Ceed, Ceed, Ptr{Cchar}), ceed, delegate, obj_name) 954end 955 956function CeedGetOperatorFallbackResource(ceed, resource) 957 ccall((:CeedGetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource) 958end 959 960function CeedGetOperatorFallbackCeed(ceed, fallback_ceed) 961 ccall((:CeedGetOperatorFallbackCeed, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, fallback_ceed) 962end 963 964function CeedSetOperatorFallbackResource(ceed, resource) 965 ccall((:CeedSetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Cchar}), ceed, resource) 966end 967 968function CeedSetDeterministic(ceed, is_deterministic) 969 ccall((:CeedSetDeterministic, libceed), Cint, (Ceed, Bool), ceed, is_deterministic) 970end 971 972function CeedSetBackendFunction(ceed, type, object, func_name, f) 973 ccall((:CeedSetBackendFunction, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cvoid}, Ptr{Cchar}, Ptr{Cvoid}), ceed, type, object, func_name, f) 974end 975 976function CeedGetData(ceed, data) 977 ccall((:CeedGetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data) 978end 979 980function CeedSetData(ceed, data) 981 ccall((:CeedSetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data) 982end 983 984function CeedReference(ceed) 985 ccall((:CeedReference, libceed), Cint, (Ceed,), ceed) 986end 987 988function CeedVectorHasValidArray(vec, has_valid_array) 989 ccall((:CeedVectorHasValidArray, libceed), Cint, (CeedVector, Ptr{Bool}), vec, has_valid_array) 990end 991 992function CeedVectorHasBorrowedArrayOfType(vec, mem_type, has_borrowed_array_of_type) 993 ccall((:CeedVectorHasBorrowedArrayOfType, libceed), Cint, (CeedVector, CeedMemType, Ptr{Bool}), vec, mem_type, has_borrowed_array_of_type) 994end 995 996function CeedVectorGetState(vec, state) 997 ccall((:CeedVectorGetState, libceed), Cint, (CeedVector, Ptr{UInt64}), vec, state) 998end 999 1000function CeedVectorGetData(vec, data) 1001 ccall((:CeedVectorGetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data) 1002end 1003 1004function CeedVectorSetData(vec, data) 1005 ccall((:CeedVectorSetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data) 1006end 1007 1008function CeedVectorReference(vec) 1009 ccall((:CeedVectorReference, libceed), Cint, (CeedVector,), vec) 1010end 1011 1012@cenum CeedRestrictionType::UInt32 begin 1013 CEED_RESTRICTION_STANDARD = 1 1014 CEED_RESTRICTION_ORIENTED = 2 1015 CEED_RESTRICTION_CURL_ORIENTED = 3 1016 CEED_RESTRICTION_STRIDED = 4 1017 CEED_RESTRICTION_POINTS = 5 1018end 1019 1020function CeedElemRestrictionGetType(rstr, rstr_type) 1021 ccall((:CeedElemRestrictionGetType, libceed), Cint, (CeedElemRestriction, Ptr{CeedRestrictionType}), rstr, rstr_type) 1022end 1023 1024function CeedElemRestrictionIsStrided(rstr, is_strided) 1025 ccall((:CeedElemRestrictionIsStrided, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_strided) 1026end 1027 1028function CeedElemRestrictionIsPoints(rstr, is_points) 1029 ccall((:CeedElemRestrictionIsPoints, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_points) 1030end 1031 1032function CeedElemRestrictionGetStrides(rstr, strides) 1033 ccall((:CeedElemRestrictionGetStrides, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, strides) 1034end 1035 1036function CeedElemRestrictionHasBackendStrides(rstr, has_backend_strides) 1037 ccall((:CeedElemRestrictionHasBackendStrides, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, has_backend_strides) 1038end 1039 1040function CeedElemRestrictionGetOffsets(rstr, mem_type, offsets) 1041 ccall((:CeedElemRestrictionGetOffsets, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt}}), rstr, mem_type, offsets) 1042end 1043 1044function CeedElemRestrictionRestoreOffsets(rstr, offsets) 1045 ccall((:CeedElemRestrictionRestoreOffsets, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt}}), rstr, offsets) 1046end 1047 1048function CeedElemRestrictionGetOrientations(rstr, mem_type, orients) 1049 ccall((:CeedElemRestrictionGetOrientations, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{Bool}}), rstr, mem_type, orients) 1050end 1051 1052function CeedElemRestrictionRestoreOrientations(rstr, orients) 1053 ccall((:CeedElemRestrictionRestoreOrientations, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{Bool}}), rstr, orients) 1054end 1055 1056function CeedElemRestrictionGetCurlOrientations(rstr, mem_type, curl_orients) 1057 ccall((:CeedElemRestrictionGetCurlOrientations, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt8}}), rstr, mem_type, curl_orients) 1058end 1059 1060function CeedElemRestrictionRestoreCurlOrientations(rstr, curl_orients) 1061 ccall((:CeedElemRestrictionRestoreCurlOrientations, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt8}}), rstr, curl_orients) 1062end 1063 1064function CeedElemRestrictionGetELayout(rstr, layout) 1065 ccall((:CeedElemRestrictionGetELayout, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, layout) 1066end 1067 1068function CeedElemRestrictionSetELayout(rstr, layout) 1069 ccall((:CeedElemRestrictionSetELayout, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, layout) 1070end 1071 1072function CeedElemRestrictionGetData(rstr, data) 1073 ccall((:CeedElemRestrictionGetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data) 1074end 1075 1076function CeedElemRestrictionSetData(rstr, data) 1077 ccall((:CeedElemRestrictionSetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data) 1078end 1079 1080function CeedElemRestrictionReference(rstr) 1081 ccall((:CeedElemRestrictionReference, libceed), Cint, (CeedElemRestriction,), rstr) 1082end 1083 1084function CeedElemRestrictionGetFlopsEstimate(rstr, t_mode, flops) 1085 ccall((:CeedElemRestrictionGetFlopsEstimate, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, Ptr{CeedSize}), rstr, t_mode, flops) 1086end 1087 1088@cenum CeedFESpace::UInt32 begin 1089 CEED_FE_SPACE_H1 = 1 1090 CEED_FE_SPACE_HDIV = 2 1091 CEED_FE_SPACE_HCURL = 3 1092end 1093 1094function CeedBasisGetCollocatedGrad(basis, colo_grad_1d) 1095 ccall((:CeedBasisGetCollocatedGrad, libceed), Cint, (CeedBasis, Ptr{CeedScalar}), basis, colo_grad_1d) 1096end 1097 1098function CeedBasisIsTensor(basis, is_tensor) 1099 ccall((:CeedBasisIsTensor, libceed), Cint, (CeedBasis, Ptr{Bool}), basis, is_tensor) 1100end 1101 1102function CeedBasisGetData(basis, data) 1103 ccall((:CeedBasisGetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data) 1104end 1105 1106function CeedBasisSetData(basis, data) 1107 ccall((:CeedBasisSetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data) 1108end 1109 1110function CeedBasisReference(basis) 1111 ccall((:CeedBasisReference, libceed), Cint, (CeedBasis,), basis) 1112end 1113 1114function CeedBasisGetNumQuadratureComponents(basis, eval_mode, q_comp) 1115 ccall((:CeedBasisGetNumQuadratureComponents, libceed), Cint, (CeedBasis, CeedEvalMode, Ptr{CeedInt}), basis, eval_mode, q_comp) 1116end 1117 1118function CeedBasisGetFlopsEstimate(basis, t_mode, eval_mode, flops) 1119 ccall((:CeedBasisGetFlopsEstimate, libceed), Cint, (CeedBasis, CeedTransposeMode, CeedEvalMode, Ptr{CeedSize}), basis, t_mode, eval_mode, flops) 1120end 1121 1122function CeedBasisGetFESpace(basis, fe_space) 1123 ccall((:CeedBasisGetFESpace, libceed), Cint, (CeedBasis, Ptr{CeedFESpace}), basis, fe_space) 1124end 1125 1126function CeedBasisGetTopologyDimension(topo, dim) 1127 ccall((:CeedBasisGetTopologyDimension, libceed), Cint, (CeedElemTopology, Ptr{CeedInt}), topo, dim) 1128end 1129 1130function CeedBasisGetTensorContract(basis, contract) 1131 ccall((:CeedBasisGetTensorContract, libceed), Cint, (CeedBasis, Ptr{CeedTensorContract}), basis, contract) 1132end 1133 1134function CeedBasisSetTensorContract(basis, contract) 1135 ccall((:CeedBasisSetTensorContract, libceed), Cint, (CeedBasis, CeedTensorContract), basis, contract) 1136end 1137 1138function CeedTensorContractCreate(ceed, contract) 1139 ccall((:CeedTensorContractCreate, libceed), Cint, (Ceed, Ptr{CeedTensorContract}), ceed, contract) 1140end 1141 1142function CeedTensorContractApply(contract, A, B, C, J, t, t_mode, Add, u, v) 1143 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) 1144end 1145 1146function CeedTensorContractStridedApply(contract, A, B, C, D, J, t, t_mode, add, u, v) 1147 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) 1148end 1149 1150function CeedTensorContractGetCeed(contract, ceed) 1151 ccall((:CeedTensorContractGetCeed, libceed), Cint, (CeedTensorContract, Ptr{Ceed}), contract, ceed) 1152end 1153 1154function CeedTensorContractGetData(contract, data) 1155 ccall((:CeedTensorContractGetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data) 1156end 1157 1158function CeedTensorContractSetData(contract, data) 1159 ccall((:CeedTensorContractSetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data) 1160end 1161 1162function CeedTensorContractReference(contract) 1163 ccall((:CeedTensorContractReference, libceed), Cint, (CeedTensorContract,), contract) 1164end 1165 1166function CeedTensorContractReferenceCopy(tensor, tensor_copy) 1167 ccall((:CeedTensorContractReferenceCopy, libceed), Cint, (CeedTensorContract, Ptr{CeedTensorContract}), tensor, tensor_copy) 1168end 1169 1170function CeedTensorContractDestroy(contract) 1171 ccall((:CeedTensorContractDestroy, libceed), Cint, (Ptr{CeedTensorContract},), contract) 1172end 1173 1174function CeedQFunctionRegister(name, source, vec_length, f, init) 1175 ccall((:CeedQFunctionRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cchar}, CeedInt, CeedQFunctionUser, Ptr{Cvoid}), name, source, vec_length, f, init) 1176end 1177 1178function CeedQFunctionSetFortranStatus(qf, status) 1179 ccall((:CeedQFunctionSetFortranStatus, libceed), Cint, (CeedQFunction, Bool), qf, status) 1180end 1181 1182function CeedQFunctionGetVectorLength(qf, vec_length) 1183 ccall((:CeedQFunctionGetVectorLength, libceed), Cint, (CeedQFunction, Ptr{CeedInt}), qf, vec_length) 1184end 1185 1186function CeedQFunctionGetNumArgs(qf, num_input_fields, num_output_fields) 1187 ccall((:CeedQFunctionGetNumArgs, libceed), Cint, (CeedQFunction, Ptr{CeedInt}, Ptr{CeedInt}), qf, num_input_fields, num_output_fields) 1188end 1189 1190function CeedQFunctionGetKernelName(qf, kernel_name) 1191 ccall((:CeedQFunctionGetKernelName, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, kernel_name) 1192end 1193 1194function CeedQFunctionGetSourcePath(qf, source_path) 1195 ccall((:CeedQFunctionGetSourcePath, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source_path) 1196end 1197 1198function CeedQFunctionLoadSourceToBuffer(qf, source_buffer) 1199 ccall((:CeedQFunctionLoadSourceToBuffer, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source_buffer) 1200end 1201 1202function CeedQFunctionGetUserFunction(qf, f) 1203 ccall((:CeedQFunctionGetUserFunction, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionUser}), qf, f) 1204end 1205 1206function CeedQFunctionGetContext(qf, ctx) 1207 ccall((:CeedQFunctionGetContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx) 1208end 1209 1210function CeedQFunctionGetContextData(qf, mem_type, data) 1211 ccall((:CeedQFunctionGetContextData, libceed), Cint, (CeedQFunction, CeedMemType, Ptr{Cvoid}), qf, mem_type, data) 1212end 1213 1214function CeedQFunctionRestoreContextData(qf, data) 1215 ccall((:CeedQFunctionRestoreContextData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1216end 1217 1218function CeedQFunctionGetInnerContext(qf, ctx) 1219 ccall((:CeedQFunctionGetInnerContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx) 1220end 1221 1222function CeedQFunctionGetInnerContextData(qf, mem_type, data) 1223 ccall((:CeedQFunctionGetInnerContextData, libceed), Cint, (CeedQFunction, CeedMemType, Ptr{Cvoid}), qf, mem_type, data) 1224end 1225 1226function CeedQFunctionRestoreInnerContextData(qf, data) 1227 ccall((:CeedQFunctionRestoreInnerContextData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1228end 1229 1230function CeedQFunctionIsIdentity(qf, is_identity) 1231 ccall((:CeedQFunctionIsIdentity, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_identity) 1232end 1233 1234function CeedQFunctionIsContextWritable(qf, is_writable) 1235 ccall((:CeedQFunctionIsContextWritable, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_writable) 1236end 1237 1238function CeedQFunctionGetData(qf, data) 1239 ccall((:CeedQFunctionGetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1240end 1241 1242function CeedQFunctionSetData(qf, data) 1243 ccall((:CeedQFunctionSetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 1244end 1245 1246function CeedQFunctionReference(qf) 1247 ccall((:CeedQFunctionReference, libceed), Cint, (CeedQFunction,), qf) 1248end 1249 1250function CeedQFunctionGetFlopsEstimate(qf, flops) 1251 ccall((:CeedQFunctionGetFlopsEstimate, libceed), Cint, (CeedQFunction, Ptr{CeedSize}), qf, flops) 1252end 1253 1254function CeedQFunctionContextGetCeed(ctx, ceed) 1255 ccall((:CeedQFunctionContextGetCeed, libceed), Cint, (CeedQFunctionContext, Ptr{Ceed}), ctx, ceed) 1256end 1257 1258function CeedQFunctionContextHasValidData(ctx, has_valid_data) 1259 ccall((:CeedQFunctionContextHasValidData, libceed), Cint, (CeedQFunctionContext, Ptr{Bool}), ctx, has_valid_data) 1260end 1261 1262function CeedQFunctionContextHasBorrowedDataOfType(ctx, mem_type, has_borrowed_data_of_type) 1263 ccall((:CeedQFunctionContextHasBorrowedDataOfType, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Bool}), ctx, mem_type, has_borrowed_data_of_type) 1264end 1265 1266function CeedQFunctionContextGetState(ctx, state) 1267 ccall((:CeedQFunctionContextGetState, libceed), Cint, (CeedQFunctionContext, Ptr{UInt64}), ctx, state) 1268end 1269 1270function CeedQFunctionContextGetBackendData(ctx, data) 1271 ccall((:CeedQFunctionContextGetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 1272end 1273 1274function CeedQFunctionContextSetBackendData(ctx, data) 1275 ccall((:CeedQFunctionContextSetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 1276end 1277 1278function CeedQFunctionContextGetFieldLabel(ctx, field_name, field_label) 1279 ccall((:CeedQFunctionContextGetFieldLabel, libceed), Cint, (CeedQFunctionContext, Ptr{Cchar}, Ptr{CeedContextFieldLabel}), ctx, field_name, field_label) 1280end 1281 1282function CeedQFunctionContextSetGeneric(ctx, field_label, field_type, value) 1283 ccall((:CeedQFunctionContextSetGeneric, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Cvoid}), ctx, field_label, field_type, value) 1284end 1285 1286function CeedQFunctionContextGetGenericRead(ctx, field_label, field_type, num_values, value) 1287 ccall((:CeedQFunctionContextGetGenericRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Csize_t}, Ptr{Cvoid}), ctx, field_label, field_type, num_values, value) 1288end 1289 1290function CeedQFunctionContextRestoreGenericRead(ctx, field_label, field_type, value) 1291 ccall((:CeedQFunctionContextRestoreGenericRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, CeedContextFieldType, Ptr{Cvoid}), ctx, field_label, field_type, value) 1292end 1293 1294function CeedQFunctionContextSetDouble(ctx, field_label, values) 1295 ccall((:CeedQFunctionContextSetDouble, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Cdouble}), ctx, field_label, values) 1296end 1297 1298function CeedQFunctionContextGetDoubleRead(ctx, field_label, num_values, values) 1299 ccall((:CeedQFunctionContextGetDoubleRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cdouble}}), ctx, field_label, num_values, values) 1300end 1301 1302function CeedQFunctionContextRestoreDoubleRead(ctx, field_label, values) 1303 ccall((:CeedQFunctionContextRestoreDoubleRead, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Ptr{Cdouble}}), ctx, field_label, values) 1304end 1305 1306function CeedQFunctionContextSetInt32(ctx, field_label, values) 1307 ccall((:CeedQFunctionContextSetInt32, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Cint}), ctx, field_label, values) 1308end 1309 1310function CeedQFunctionContextGetInt32Read(ctx, field_label, num_values, values) 1311 ccall((:CeedQFunctionContextGetInt32Read, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Csize_t}, Ptr{Ptr{Cint}}), ctx, field_label, num_values, values) 1312end 1313 1314function CeedQFunctionContextRestoreInt32Read(ctx, field_label, values) 1315 ccall((:CeedQFunctionContextRestoreInt32Read, libceed), Cint, (CeedQFunctionContext, CeedContextFieldLabel, Ptr{Ptr{Cint}}), ctx, field_label, values) 1316end 1317 1318function CeedQFunctionContextGetDataDestroy(ctx, f_mem_type, f) 1319 ccall((:CeedQFunctionContextGetDataDestroy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedMemType}, Ptr{CeedQFunctionContextDataDestroyUser}), ctx, f_mem_type, f) 1320end 1321 1322function CeedQFunctionContextReference(ctx) 1323 ccall((:CeedQFunctionContextReference, libceed), Cint, (CeedQFunctionContext,), ctx) 1324end 1325 1326function CeedOperatorCreateActivePointBlockRestriction(rstr, pointblock_rstr) 1327 ccall((:CeedOperatorCreateActivePointBlockRestriction, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, pointblock_rstr) 1328end 1329 1330function CeedQFunctionAssemblyDataCreate(ceed, data) 1331 ccall((:CeedQFunctionAssemblyDataCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionAssemblyData}), ceed, data) 1332end 1333 1334function CeedQFunctionAssemblyDataReference(data) 1335 ccall((:CeedQFunctionAssemblyDataReference, libceed), Cint, (CeedQFunctionAssemblyData,), data) 1336end 1337 1338function CeedQFunctionAssemblyDataSetReuse(data, reuse_assembly_data) 1339 ccall((:CeedQFunctionAssemblyDataSetReuse, libceed), Cint, (CeedQFunctionAssemblyData, Bool), data, reuse_assembly_data) 1340end 1341 1342function CeedQFunctionAssemblyDataSetUpdateNeeded(data, needs_data_update) 1343 ccall((:CeedQFunctionAssemblyDataSetUpdateNeeded, libceed), Cint, (CeedQFunctionAssemblyData, Bool), data, needs_data_update) 1344end 1345 1346function CeedQFunctionAssemblyDataIsUpdateNeeded(data, is_update_needed) 1347 ccall((:CeedQFunctionAssemblyDataIsUpdateNeeded, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{Bool}), data, is_update_needed) 1348end 1349 1350function CeedQFunctionAssemblyDataReferenceCopy(data, data_copy) 1351 ccall((:CeedQFunctionAssemblyDataReferenceCopy, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{CeedQFunctionAssemblyData}), data, data_copy) 1352end 1353 1354function CeedQFunctionAssemblyDataIsSetup(data, is_setup) 1355 ccall((:CeedQFunctionAssemblyDataIsSetup, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{Bool}), data, is_setup) 1356end 1357 1358function CeedQFunctionAssemblyDataSetObjects(data, vec, rstr) 1359 ccall((:CeedQFunctionAssemblyDataSetObjects, libceed), Cint, (CeedQFunctionAssemblyData, CeedVector, CeedElemRestriction), data, vec, rstr) 1360end 1361 1362function CeedQFunctionAssemblyDataGetObjects(data, vec, rstr) 1363 ccall((:CeedQFunctionAssemblyDataGetObjects, libceed), Cint, (CeedQFunctionAssemblyData, Ptr{CeedVector}, Ptr{CeedElemRestriction}), data, vec, rstr) 1364end 1365 1366function CeedQFunctionAssemblyDataDestroy(data) 1367 ccall((:CeedQFunctionAssemblyDataDestroy, libceed), Cint, (Ptr{CeedQFunctionAssemblyData},), data) 1368end 1369 1370function CeedOperatorAssemblyDataCreate(ceed, op, data) 1371 ccall((:CeedOperatorAssemblyDataCreate, libceed), Cint, (Ceed, CeedOperator, Ptr{CeedOperatorAssemblyData}), ceed, op, data) 1372end 1373 1374function CeedOperatorAssemblyDataGetEvalModes(data, num_active_bases_in, num_eval_modes_in, eval_modes_in, eval_mode_offsets_in, num_active_bases_out, num_eval_modes_out, eval_modes_out, eval_mode_offsets_out, num_output_components) 1375 ccall((:CeedOperatorAssemblyDataGetEvalModes, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{Ptr{CeedEvalMode}}}, Ptr{Ptr{Ptr{CeedSize}}}, Ptr{CeedInt}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{Ptr{CeedEvalMode}}}, Ptr{Ptr{Ptr{CeedSize}}}, Ptr{CeedSize}), data, num_active_bases_in, num_eval_modes_in, eval_modes_in, eval_mode_offsets_in, num_active_bases_out, num_eval_modes_out, eval_modes_out, eval_mode_offsets_out, num_output_components) 1376end 1377 1378function CeedOperatorAssemblyDataGetBases(data, num_active_bases_in, active_bases_in, assembled_bases_in, num_active_bases_out, active_bases_out, assembled_bases_out) 1379 ccall((:CeedOperatorAssemblyDataGetBases, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedBasis}}, Ptr{Ptr{Ptr{CeedScalar}}}, Ptr{CeedInt}, Ptr{Ptr{CeedBasis}}, Ptr{Ptr{Ptr{CeedScalar}}}), data, num_active_bases_in, active_bases_in, assembled_bases_in, num_active_bases_out, active_bases_out, assembled_bases_out) 1380end 1381 1382function CeedOperatorAssemblyDataGetElemRestrictions(data, num_active_elem_rstrs_in, active_elem_rstrs_in, num_active_elem_rstrs_out, active_elem_rstrs_out) 1383 ccall((:CeedOperatorAssemblyDataGetElemRestrictions, libceed), Cint, (CeedOperatorAssemblyData, Ptr{CeedInt}, Ptr{Ptr{CeedElemRestriction}}, Ptr{CeedInt}, Ptr{Ptr{CeedElemRestriction}}), data, num_active_elem_rstrs_in, active_elem_rstrs_in, num_active_elem_rstrs_out, active_elem_rstrs_out) 1384end 1385 1386function CeedOperatorAssemblyDataDestroy(data) 1387 ccall((:CeedOperatorAssemblyDataDestroy, libceed), Cint, (Ptr{CeedOperatorAssemblyData},), data) 1388end 1389 1390function CeedOperatorGetOperatorAssemblyData(op, data) 1391 ccall((:CeedOperatorGetOperatorAssemblyData, libceed), Cint, (CeedOperator, Ptr{CeedOperatorAssemblyData}), op, data) 1392end 1393 1394function CeedOperatorGetActiveBasis(op, active_basis) 1395 ccall((:CeedOperatorGetActiveBasis, libceed), Cint, (CeedOperator, Ptr{CeedBasis}), op, active_basis) 1396end 1397 1398function CeedOperatorGetActiveBases(op, active_input_basis, active_output_basis) 1399 ccall((:CeedOperatorGetActiveBases, libceed), Cint, (CeedOperator, Ptr{CeedBasis}, Ptr{CeedBasis}), op, active_input_basis, active_output_basis) 1400end 1401 1402function CeedOperatorGetActiveElemRestriction(op, active_rstr) 1403 ccall((:CeedOperatorGetActiveElemRestriction, libceed), Cint, (CeedOperator, Ptr{CeedElemRestriction}), op, active_rstr) 1404end 1405 1406function CeedOperatorGetActiveElemRestrictions(op, active_input_rstr, active_output_rstr) 1407 ccall((:CeedOperatorGetActiveElemRestrictions, libceed), Cint, (CeedOperator, Ptr{CeedElemRestriction}, Ptr{CeedElemRestriction}), op, active_input_rstr, active_output_rstr) 1408end 1409 1410function CeedOperatorGetNumArgs(op, num_args) 1411 ccall((:CeedOperatorGetNumArgs, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_args) 1412end 1413 1414function CeedOperatorIsSetupDone(op, is_setup_done) 1415 ccall((:CeedOperatorIsSetupDone, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_setup_done) 1416end 1417 1418function CeedOperatorGetQFunction(op, qf) 1419 ccall((:CeedOperatorGetQFunction, libceed), Cint, (CeedOperator, Ptr{CeedQFunction}), op, qf) 1420end 1421 1422function CeedOperatorIsComposite(op, is_composite) 1423 ccall((:CeedOperatorIsComposite, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_composite) 1424end 1425 1426function CeedOperatorGetData(op, data) 1427 ccall((:CeedOperatorGetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data) 1428end 1429 1430function CeedOperatorSetData(op, data) 1431 ccall((:CeedOperatorSetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data) 1432end 1433 1434function CeedOperatorReference(op) 1435 ccall((:CeedOperatorReference, libceed), Cint, (CeedOperator,), op) 1436end 1437 1438function CeedOperatorGetFallback(op, op_fallback) 1439 ccall((:CeedOperatorGetFallback, libceed), Cint, (CeedOperator, Ptr{CeedOperator}), op, op_fallback) 1440end 1441 1442function CeedOperatorGetFallbackParent(op, parent) 1443 ccall((:CeedOperatorGetFallbackParent, libceed), Cint, (CeedOperator, Ptr{CeedOperator}), op, parent) 1444end 1445 1446function CeedOperatorGetFallbackParentCeed(op, parent) 1447 ccall((:CeedOperatorGetFallbackParentCeed, libceed), Cint, (CeedOperator, Ptr{Ceed}), op, parent) 1448end 1449 1450function CeedOperatorSetSetupDone(op) 1451 ccall((:CeedOperatorSetSetupDone, libceed), Cint, (CeedOperator,), op) 1452end 1453 1454function CeedMatrixMatrixMultiply(ceed, mat_A, mat_B, mat_C, m, n, kk) 1455 ccall((:CeedMatrixMatrixMultiply, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt, CeedInt), ceed, mat_A, mat_B, mat_C, m, n, kk) 1456end 1457 1458function CeedQRFactorization(ceed, mat, tau, m, n) 1459 ccall((:CeedQRFactorization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt), ceed, mat, tau, m, n) 1460end 1461 1462function CeedHouseholderApplyQ(mat_A, mat_Q, tau, t_mode, m, n, k, row, col) 1463 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) 1464end 1465 1466function CeedSymmetricSchurDecomposition(ceed, mat, lambda, n) 1467 ccall((:CeedSymmetricSchurDecomposition, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat, lambda, n) 1468end 1469 1470function CeedSimultaneousDiagonalization(ceed, mat_A, mat_B, x, lambda, n) 1471 ccall((:CeedSimultaneousDiagonalization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat_A, mat_B, x, lambda, n) 1472end 1473 1474# Skipping MacroDefinition: CEED_EXTERN extern CEED_VISIBILITY ( default ) 1475 1476# Skipping MacroDefinition: CEED_QFUNCTION_HELPER_ATTR CEED_QFUNCTION_ATTR __attribute__ ( ( always_inline ) ) 1477 1478# Skipping MacroDefinition: CEED_QFUNCTION_HELPER CEED_QFUNCTION_HELPER_ATTR static inline 1479 1480const CeedInt_FMT = "d" 1481 1482const CeedSize_FMT = "td" 1483 1484const CeedInt8_FMT = "d" 1485 1486const CEED_VERSION_MAJOR = 0 1487 1488const CEED_VERSION_MINOR = 12 1489 1490const CEED_VERSION_PATCH = 0 1491 1492const CEED_VERSION_RELEASE = true 1493 1494# Skipping MacroDefinition: CEED_INTERN extern CEED_VISIBILITY ( hidden ) 1495 1496# Skipping MacroDefinition: CEED_UNUSED __attribute__ ( ( unused ) ) 1497 1498const CEED_MAX_RESOURCE_LEN = 1024 1499 1500const CEED_MAX_BACKEND_PRIORITY = UINT_MAX 1501 1502const CEED_COMPOSITE_MAX = 16 1503 1504const CEED_FIELD_MAX = 16 1505 1506# Skipping MacroDefinition: CeedPragmaOptimizeOff _Pragma ( "clang optimize off" ) 1507 1508# Skipping MacroDefinition: CeedPragmaOptimizeOn _Pragma ( "clang optimize on" ) 1509