1using CEnum 2 3#! format: off 4 5 6const CeedInt = Int32 7 8@cenum CeedScalarType::UInt32 begin 9 CEED_SCALAR_FP32 = 0 10 CEED_SCALAR_FP64 = 1 11end 12 13mutable struct Ceed_private end 14 15const Ceed = Ptr{Ceed_private} 16 17mutable struct CeedRequest_private end 18 19const CeedRequest = Ptr{CeedRequest_private} 20 21mutable struct CeedVector_private end 22 23const CeedVector = Ptr{CeedVector_private} 24 25mutable struct CeedElemRestriction_private end 26 27const CeedElemRestriction = Ptr{CeedElemRestriction_private} 28 29mutable struct CeedBasis_private end 30 31const CeedBasis = Ptr{CeedBasis_private} 32 33mutable struct CeedQFunction_private end 34 35const CeedQFunction = Ptr{CeedQFunction_private} 36 37mutable struct CeedQFunctionContext_private end 38 39const CeedQFunctionContext = Ptr{CeedQFunctionContext_private} 40 41mutable struct CeedOperator_private end 42 43const CeedOperator = Ptr{CeedOperator_private} 44 45function CeedRegistryGetList(n, resources, array) 46 ccall((:CeedRegistryGetList, libceed), Cint, (Ptr{Csize_t}, Ptr{Ptr{Ptr{Cchar}}}, Ptr{Ptr{CeedInt}}), n, resources, array) 47end 48 49function CeedInit(resource, ceed) 50 ccall((:CeedInit, libceed), Cint, (Ptr{Cchar}, Ptr{Ceed}), resource, ceed) 51end 52 53function CeedReferenceCopy(ceed, ceed_copy) 54 ccall((:CeedReferenceCopy, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, ceed_copy) 55end 56 57function CeedGetResource(ceed, resource) 58 ccall((:CeedGetResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource) 59end 60 61function CeedIsDeterministic(ceed, is_deterministic) 62 ccall((:CeedIsDeterministic, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_deterministic) 63end 64 65function CeedView(ceed, stream) 66 ccall((:CeedView, libceed), Cint, (Ceed, Ptr{Libc.FILE}), ceed, stream) 67end 68 69function CeedDestroy(ceed) 70 ccall((:CeedDestroy, libceed), Cint, (Ptr{Ceed},), ceed) 71end 72 73# automatic type deduction for variadic arguments may not be what you want, please use with caution 74@generated function CeedErrorImpl(arg1, arg2, arg3, arg4, arg5, arg6, va_list...) 75 :(@ccall(libceed.CeedErrorImpl(arg1::Ceed, arg2::Ptr{Cchar}, arg3::Cint, arg4::Ptr{Cchar}, arg5::Cint, arg6::Ptr{Cchar}; $(to_c_type_pairs(va_list)...))::Cint)) 76 end 77 78# typedef int ( * CeedErrorHandler ) ( Ceed , const char * , int , const char * , int , const char * , va_list * ) 79const CeedErrorHandler = Ptr{Cvoid} 80 81function CeedSetErrorHandler(ceed, eh) 82 ccall((:CeedSetErrorHandler, libceed), Cint, (Ceed, CeedErrorHandler), ceed, eh) 83end 84 85function CeedGetErrorMessage(arg1, err_msg) 86 ccall((:CeedGetErrorMessage, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), arg1, err_msg) 87end 88 89function CeedResetErrorMessage(arg1, err_msg) 90 ccall((:CeedResetErrorMessage, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), arg1, err_msg) 91end 92 93function CeedGetVersion(major, minor, patch, release) 94 ccall((:CeedGetVersion, libceed), Cint, (Ptr{Cint}, Ptr{Cint}, Ptr{Cint}, Ptr{Bool}), major, minor, patch, release) 95end 96 97function CeedGetScalarType(scalar_type) 98 ccall((:CeedGetScalarType, libceed), Cint, (Ptr{CeedScalarType},), scalar_type) 99end 100 101@cenum CeedErrorType::Int32 begin 102 CEED_ERROR_SUCCESS = 0 103 CEED_ERROR_MINOR = 1 104 CEED_ERROR_DIMENSION = 2 105 CEED_ERROR_INCOMPLETE = 3 106 CEED_ERROR_INCOMPATIBLE = 4 107 CEED_ERROR_ACCESS = 5 108 CEED_ERROR_MAJOR = -1 109 CEED_ERROR_BACKEND = -2 110 CEED_ERROR_UNSUPPORTED = -3 111end 112 113@cenum CeedMemType::UInt32 begin 114 CEED_MEM_HOST = 0 115 CEED_MEM_DEVICE = 1 116end 117 118function CeedGetPreferredMemType(ceed, type) 119 ccall((:CeedGetPreferredMemType, libceed), Cint, (Ceed, Ptr{CeedMemType}), ceed, type) 120end 121 122@cenum CeedCopyMode::UInt32 begin 123 CEED_COPY_VALUES = 0 124 CEED_USE_POINTER = 1 125 CEED_OWN_POINTER = 2 126end 127 128@cenum CeedNormType::UInt32 begin 129 CEED_NORM_1 = 0 130 CEED_NORM_2 = 1 131 CEED_NORM_MAX = 2 132end 133 134function CeedVectorCreate(ceed, len, vec) 135 ccall((:CeedVectorCreate, libceed), Cint, (Ceed, CeedInt, Ptr{CeedVector}), ceed, len, vec) 136end 137 138function CeedVectorReferenceCopy(vec, vec_copy) 139 ccall((:CeedVectorReferenceCopy, libceed), Cint, (CeedVector, Ptr{CeedVector}), vec, vec_copy) 140end 141 142function CeedVectorSetArray(vec, mem_type, copy_mode, array) 143 ccall((:CeedVectorSetArray, libceed), Cint, (CeedVector, CeedMemType, CeedCopyMode, Ptr{CeedScalar}), vec, mem_type, copy_mode, array) 144end 145 146function CeedVectorSetValue(vec, value) 147 ccall((:CeedVectorSetValue, libceed), Cint, (CeedVector, CeedScalar), vec, value) 148end 149 150function CeedVectorSyncArray(vec, mem_type) 151 ccall((:CeedVectorSyncArray, libceed), Cint, (CeedVector, CeedMemType), vec, mem_type) 152end 153 154function CeedVectorTakeArray(vec, mem_type, array) 155 ccall((:CeedVectorTakeArray, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array) 156end 157 158function CeedVectorGetArray(vec, mem_type, array) 159 ccall((:CeedVectorGetArray, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array) 160end 161 162function CeedVectorGetArrayRead(vec, mem_type, array) 163 ccall((:CeedVectorGetArrayRead, libceed), Cint, (CeedVector, CeedMemType, Ptr{Ptr{CeedScalar}}), vec, mem_type, array) 164end 165 166function CeedVectorRestoreArray(vec, array) 167 ccall((:CeedVectorRestoreArray, libceed), Cint, (CeedVector, Ptr{Ptr{CeedScalar}}), vec, array) 168end 169 170function CeedVectorRestoreArrayRead(vec, array) 171 ccall((:CeedVectorRestoreArrayRead, libceed), Cint, (CeedVector, Ptr{Ptr{CeedScalar}}), vec, array) 172end 173 174function CeedVectorNorm(vec, type, norm) 175 ccall((:CeedVectorNorm, libceed), Cint, (CeedVector, CeedNormType, Ptr{CeedScalar}), vec, type, norm) 176end 177 178function CeedVectorScale(x, alpha) 179 ccall((:CeedVectorScale, libceed), Cint, (CeedVector, CeedScalar), x, alpha) 180end 181 182function CeedVectorAXPY(y, alpha, x) 183 ccall((:CeedVectorAXPY, libceed), Cint, (CeedVector, CeedScalar, CeedVector), y, alpha, x) 184end 185 186function CeedVectorPointwiseMult(w, x, y) 187 ccall((:CeedVectorPointwiseMult, libceed), Cint, (CeedVector, CeedVector, CeedVector), w, x, y) 188end 189 190function CeedVectorReciprocal(vec) 191 ccall((:CeedVectorReciprocal, libceed), Cint, (CeedVector,), vec) 192end 193 194function CeedVectorView(vec, fp_fmt, stream) 195 ccall((:CeedVectorView, libceed), Cint, (CeedVector, Ptr{Cchar}, Ptr{Libc.FILE}), vec, fp_fmt, stream) 196end 197 198function CeedVectorGetLength(vec, length) 199 ccall((:CeedVectorGetLength, libceed), Cint, (CeedVector, Ptr{CeedInt}), vec, length) 200end 201 202function CeedVectorDestroy(vec) 203 ccall((:CeedVectorDestroy, libceed), Cint, (Ptr{CeedVector},), vec) 204end 205 206function CeedRequestWait(req) 207 ccall((:CeedRequestWait, libceed), Cint, (Ptr{CeedRequest},), req) 208end 209 210@cenum CeedTransposeMode::UInt32 begin 211 CEED_NOTRANSPOSE = 0 212 CEED_TRANSPOSE = 1 213end 214 215function CeedElemRestrictionCreate(ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr) 216 ccall((:CeedElemRestrictionCreate, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedMemType, CeedCopyMode, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr) 217end 218 219function CeedElemRestrictionCreateStrided(ceed, num_elem, elem_size, num_comp, l_size, strides, rstr) 220 ccall((:CeedElemRestrictionCreateStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, num_comp, l_size, strides, rstr) 221end 222 223function CeedElemRestrictionCreateBlocked(ceed, num_elem, elem_size, blk_size, num_comp, comp_stride, l_size, mem_type, copy_mode, offsets, rstr) 224 ccall((:CeedElemRestrictionCreateBlocked, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, 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) 225end 226 227function CeedElemRestrictionCreateBlockedStrided(ceed, num_elem, elem_size, blk_size, num_comp, l_size, strides, rstr) 228 ccall((:CeedElemRestrictionCreateBlockedStrided, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt, Ptr{CeedInt}, Ptr{CeedElemRestriction}), ceed, num_elem, elem_size, blk_size, num_comp, l_size, strides, rstr) 229end 230 231function CeedElemRestrictionReferenceCopy(rstr, rstr_copy) 232 ccall((:CeedElemRestrictionReferenceCopy, libceed), Cint, (CeedElemRestriction, Ptr{CeedElemRestriction}), rstr, rstr_copy) 233end 234 235function CeedElemRestrictionCreateVector(rstr, lvec, evec) 236 ccall((:CeedElemRestrictionCreateVector, libceed), Cint, (CeedElemRestriction, Ptr{CeedVector}, Ptr{CeedVector}), rstr, lvec, evec) 237end 238 239function CeedElemRestrictionApply(rstr, t_mode, u, ru, request) 240 ccall((:CeedElemRestrictionApply, libceed), Cint, (CeedElemRestriction, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, t_mode, u, ru, request) 241end 242 243function CeedElemRestrictionApplyBlock(rstr, block, t_mode, u, ru, request) 244 ccall((:CeedElemRestrictionApplyBlock, libceed), Cint, (CeedElemRestriction, CeedInt, CeedTransposeMode, CeedVector, CeedVector, Ptr{CeedRequest}), rstr, block, t_mode, u, ru, request) 245end 246 247function CeedElemRestrictionGetCompStride(rstr, comp_stride) 248 ccall((:CeedElemRestrictionGetCompStride, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, comp_stride) 249end 250 251function CeedElemRestrictionGetNumElements(rstr, num_elem) 252 ccall((:CeedElemRestrictionGetNumElements, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_elem) 253end 254 255function CeedElemRestrictionGetElementSize(rstr, elem_size) 256 ccall((:CeedElemRestrictionGetElementSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, elem_size) 257end 258 259function CeedElemRestrictionGetLVectorSize(rstr, l_size) 260 ccall((:CeedElemRestrictionGetLVectorSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, l_size) 261end 262 263function CeedElemRestrictionGetNumComponents(rstr, num_comp) 264 ccall((:CeedElemRestrictionGetNumComponents, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_comp) 265end 266 267function CeedElemRestrictionGetNumBlocks(rstr, num_blk) 268 ccall((:CeedElemRestrictionGetNumBlocks, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, num_blk) 269end 270 271function CeedElemRestrictionGetBlockSize(rstr, blk_size) 272 ccall((:CeedElemRestrictionGetBlockSize, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, blk_size) 273end 274 275function CeedElemRestrictionGetMultiplicity(rstr, mult) 276 ccall((:CeedElemRestrictionGetMultiplicity, libceed), Cint, (CeedElemRestriction, CeedVector), rstr, mult) 277end 278 279function CeedElemRestrictionView(rstr, stream) 280 ccall((:CeedElemRestrictionView, libceed), Cint, (CeedElemRestriction, Ptr{Libc.FILE}), rstr, stream) 281end 282 283function CeedElemRestrictionDestroy(rstr) 284 ccall((:CeedElemRestrictionDestroy, libceed), Cint, (Ptr{CeedElemRestriction},), rstr) 285end 286 287@cenum CeedEvalMode::UInt32 begin 288 CEED_EVAL_NONE = 0 289 CEED_EVAL_INTERP = 1 290 CEED_EVAL_GRAD = 2 291 CEED_EVAL_DIV = 4 292 CEED_EVAL_CURL = 8 293 CEED_EVAL_WEIGHT = 16 294end 295 296@cenum CeedQuadMode::UInt32 begin 297 CEED_GAUSS = 0 298 CEED_GAUSS_LOBATTO = 1 299end 300 301@cenum CeedElemTopology::UInt32 begin 302 CEED_LINE = 65536 303 CEED_TRIANGLE = 131073 304 CEED_QUAD = 131074 305 CEED_TET = 196611 306 CEED_PYRAMID = 196612 307 CEED_PRISM = 196613 308 CEED_HEX = 196614 309end 310 311function CeedBasisCreateTensorH1Lagrange(ceed, dim, num_comp, P, Q, quad_mode, basis) 312 ccall((:CeedBasisCreateTensorH1Lagrange, libceed), Cint, (Ceed, CeedInt, CeedInt, CeedInt, CeedInt, CeedQuadMode, Ptr{CeedBasis}), ceed, dim, num_comp, P, Q, quad_mode, basis) 313end 314 315function CeedBasisCreateTensorH1(ceed, dim, num_comp, P_1d, Q_1d, interp_1d, grad_1d, q_ref_1d, q_weight_1d, basis) 316 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) 317end 318 319function CeedBasisCreateH1(ceed, topo, num_comp, num_nodes, nqpts, interp, grad, q_ref, q_weights, basis) 320 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) 321end 322 323function CeedBasisReferenceCopy(basis, basis_copy) 324 ccall((:CeedBasisReferenceCopy, libceed), Cint, (CeedBasis, Ptr{CeedBasis}), basis, basis_copy) 325end 326 327function CeedBasisView(basis, stream) 328 ccall((:CeedBasisView, libceed), Cint, (CeedBasis, Ptr{Libc.FILE}), basis, stream) 329end 330 331function CeedBasisApply(basis, num_elem, t_mode, eval_mode, u, v) 332 ccall((:CeedBasisApply, libceed), Cint, (CeedBasis, CeedInt, CeedTransposeMode, CeedEvalMode, CeedVector, CeedVector), basis, num_elem, t_mode, eval_mode, u, v) 333end 334 335function CeedBasisGetDimension(basis, dim) 336 ccall((:CeedBasisGetDimension, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, dim) 337end 338 339function CeedBasisGetTopology(basis, topo) 340 ccall((:CeedBasisGetTopology, libceed), Cint, (CeedBasis, Ptr{CeedElemTopology}), basis, topo) 341end 342 343function CeedBasisGetNumComponents(basis, num_comp) 344 ccall((:CeedBasisGetNumComponents, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, num_comp) 345end 346 347function CeedBasisGetNumNodes(basis, P) 348 ccall((:CeedBasisGetNumNodes, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P) 349end 350 351function CeedBasisGetNumNodes1D(basis, P_1d) 352 ccall((:CeedBasisGetNumNodes1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, P_1d) 353end 354 355function CeedBasisGetNumQuadraturePoints(basis, Q) 356 ccall((:CeedBasisGetNumQuadraturePoints, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q) 357end 358 359function CeedBasisGetNumQuadraturePoints1D(basis, Q_1d) 360 ccall((:CeedBasisGetNumQuadraturePoints1D, libceed), Cint, (CeedBasis, Ptr{CeedInt}), basis, Q_1d) 361end 362 363function CeedBasisGetQRef(basis, q_ref) 364 ccall((:CeedBasisGetQRef, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_ref) 365end 366 367function CeedBasisGetQWeights(basis, q_weights) 368 ccall((:CeedBasisGetQWeights, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, q_weights) 369end 370 371function CeedBasisGetInterp(basis, interp) 372 ccall((:CeedBasisGetInterp, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp) 373end 374 375function CeedBasisGetInterp1D(basis, interp_1d) 376 ccall((:CeedBasisGetInterp1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, interp_1d) 377end 378 379function CeedBasisGetGrad(basis, grad) 380 ccall((:CeedBasisGetGrad, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad) 381end 382 383function CeedBasisGetGrad1D(basis, grad_1d) 384 ccall((:CeedBasisGetGrad1D, libceed), Cint, (CeedBasis, Ptr{Ptr{CeedScalar}}), basis, grad_1d) 385end 386 387function CeedBasisDestroy(basis) 388 ccall((:CeedBasisDestroy, libceed), Cint, (Ptr{CeedBasis},), basis) 389end 390 391function CeedGaussQuadrature(Q, q_ref_1d, q_weight_1d) 392 ccall((:CeedGaussQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d) 393end 394 395function CeedLobattoQuadrature(Q, q_ref_1d, q_weight_1d) 396 ccall((:CeedLobattoQuadrature, libceed), Cint, (CeedInt, Ptr{CeedScalar}, Ptr{CeedScalar}), Q, q_ref_1d, q_weight_1d) 397end 398 399function CeedQRFactorization(ceed, mat, tau, m, n) 400 ccall((:CeedQRFactorization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt), ceed, mat, tau, m, n) 401end 402 403function CeedSymmetricSchurDecomposition(ceed, mat, lambda, n) 404 ccall((:CeedSymmetricSchurDecomposition, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat, lambda, n) 405end 406 407function CeedSimultaneousDiagonalization(ceed, mat_A, mat_B, x, lambda, n) 408 ccall((:CeedSimultaneousDiagonalization, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt), ceed, mat_A, mat_B, x, lambda, n) 409end 410 411# typedef int ( * CeedQFunctionUser ) ( void * ctx , const CeedInt Q , const CeedScalar * const * in , CeedScalar * const * out ) 412const CeedQFunctionUser = Ptr{Cvoid} 413 414function CeedQFunctionCreateInterior(ceed, vec_length, f, source, qf) 415 ccall((:CeedQFunctionCreateInterior, libceed), Cint, (Ceed, CeedInt, CeedQFunctionUser, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, vec_length, f, source, qf) 416end 417 418function CeedQFunctionCreateInteriorByName(ceed, name, qf) 419 ccall((:CeedQFunctionCreateInteriorByName, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{CeedQFunction}), ceed, name, qf) 420end 421 422function CeedQFunctionCreateIdentity(ceed, size, in_mode, out_mode, qf) 423 ccall((:CeedQFunctionCreateIdentity, libceed), Cint, (Ceed, CeedInt, CeedEvalMode, CeedEvalMode, Ptr{CeedQFunction}), ceed, size, in_mode, out_mode, qf) 424end 425 426function CeedQFunctionReferenceCopy(qf, qf_copy) 427 ccall((:CeedQFunctionReferenceCopy, libceed), Cint, (CeedQFunction, Ptr{CeedQFunction}), qf, qf_copy) 428end 429 430function CeedQFunctionAddInput(qf, field_name, size, eval_mode) 431 ccall((:CeedQFunctionAddInput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode) 432end 433 434function CeedQFunctionAddOutput(qf, field_name, size, eval_mode) 435 ccall((:CeedQFunctionAddOutput, libceed), Cint, (CeedQFunction, Ptr{Cchar}, CeedInt, CeedEvalMode), qf, field_name, size, eval_mode) 436end 437 438function CeedQFunctionSetContext(qf, ctx) 439 ccall((:CeedQFunctionSetContext, libceed), Cint, (CeedQFunction, CeedQFunctionContext), qf, ctx) 440end 441 442function CeedQFunctionView(qf, stream) 443 ccall((:CeedQFunctionView, libceed), Cint, (CeedQFunction, Ptr{Libc.FILE}), qf, stream) 444end 445 446function CeedQFunctionApply(qf, Q, u, v) 447 ccall((:CeedQFunctionApply, libceed), Cint, (CeedQFunction, CeedInt, Ptr{CeedVector}, Ptr{CeedVector}), qf, Q, u, v) 448end 449 450function CeedQFunctionDestroy(qf) 451 ccall((:CeedQFunctionDestroy, libceed), Cint, (Ptr{CeedQFunction},), qf) 452end 453 454function CeedQFunctionContextCreate(ceed, ctx) 455 ccall((:CeedQFunctionContextCreate, libceed), Cint, (Ceed, Ptr{CeedQFunctionContext}), ceed, ctx) 456end 457 458function CeedQFunctionContextReferenceCopy(ctx, ctx_copy) 459 ccall((:CeedQFunctionContextReferenceCopy, libceed), Cint, (CeedQFunctionContext, Ptr{CeedQFunctionContext}), ctx, ctx_copy) 460end 461 462function CeedQFunctionContextSetData(ctx, mem_type, copy_mode, size, data) 463 ccall((:CeedQFunctionContextSetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, CeedCopyMode, Csize_t, Ptr{Cvoid}), ctx, mem_type, copy_mode, size, data) 464end 465 466function CeedQFunctionContextTakeData(ctx, mem_type, data) 467 ccall((:CeedQFunctionContextTakeData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data) 468end 469 470function CeedQFunctionContextGetData(ctx, mem_type, data) 471 ccall((:CeedQFunctionContextGetData, libceed), Cint, (CeedQFunctionContext, CeedMemType, Ptr{Cvoid}), ctx, mem_type, data) 472end 473 474function CeedQFunctionContextRestoreData(ctx, data) 475 ccall((:CeedQFunctionContextRestoreData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 476end 477 478function CeedQFunctionContextGetContextSize(ctx, ctx_size) 479 ccall((:CeedQFunctionContextGetContextSize, libceed), Cint, (CeedQFunctionContext, Ptr{Csize_t}), ctx, ctx_size) 480end 481 482function CeedQFunctionContextView(ctx, stream) 483 ccall((:CeedQFunctionContextView, libceed), Cint, (CeedQFunctionContext, Ptr{Libc.FILE}), ctx, stream) 484end 485 486function CeedQFunctionContextDestroy(ctx) 487 ccall((:CeedQFunctionContextDestroy, libceed), Cint, (Ptr{CeedQFunctionContext},), ctx) 488end 489 490function CeedOperatorCreate(ceed, qf, dqf, dqfT, op) 491 ccall((:CeedOperatorCreate, libceed), Cint, (Ceed, CeedQFunction, CeedQFunction, CeedQFunction, Ptr{CeedOperator}), ceed, qf, dqf, dqfT, op) 492end 493 494function CeedCompositeOperatorCreate(ceed, op) 495 ccall((:CeedCompositeOperatorCreate, libceed), Cint, (Ceed, Ptr{CeedOperator}), ceed, op) 496end 497 498function CeedOperatorReferenceCopy(op, op_copy) 499 ccall((:CeedOperatorReferenceCopy, libceed), Cint, (CeedOperator, Ptr{CeedOperator}), op, op_copy) 500end 501 502function CeedOperatorSetField(op, field_name, r, b, v) 503 ccall((:CeedOperatorSetField, libceed), Cint, (CeedOperator, Ptr{Cchar}, CeedElemRestriction, CeedBasis, CeedVector), op, field_name, r, b, v) 504end 505 506function CeedCompositeOperatorAddSub(composite_op, sub_op) 507 ccall((:CeedCompositeOperatorAddSub, libceed), Cint, (CeedOperator, CeedOperator), composite_op, sub_op) 508end 509 510function CeedOperatorLinearAssembleQFunction(op, assembled, rstr, request) 511 ccall((:CeedOperatorLinearAssembleQFunction, libceed), Cint, (CeedOperator, Ptr{CeedVector}, Ptr{CeedElemRestriction}, Ptr{CeedRequest}), op, assembled, rstr, request) 512end 513 514function CeedOperatorLinearAssembleDiagonal(op, assembled, request) 515 ccall((:CeedOperatorLinearAssembleDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 516end 517 518function CeedOperatorLinearAssembleAddDiagonal(op, assembled, request) 519 ccall((:CeedOperatorLinearAssembleAddDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 520end 521 522function CeedOperatorLinearAssemblePointBlockDiagonal(op, assembled, request) 523 ccall((:CeedOperatorLinearAssemblePointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 524end 525 526function CeedOperatorLinearAssembleAddPointBlockDiagonal(op, assembled, request) 527 ccall((:CeedOperatorLinearAssembleAddPointBlockDiagonal, libceed), Cint, (CeedOperator, CeedVector, Ptr{CeedRequest}), op, assembled, request) 528end 529 530function CeedOperatorLinearAssembleSymbolic(op, num_entries, rows, cols) 531 ccall((:CeedOperatorLinearAssembleSymbolic, libceed), Cint, (CeedOperator, Ptr{CeedInt}, Ptr{Ptr{CeedInt}}, Ptr{Ptr{CeedInt}}), op, num_entries, rows, cols) 532end 533 534function CeedOperatorLinearAssemble(op, values) 535 ccall((:CeedOperatorLinearAssemble, libceed), Cint, (CeedOperator, CeedVector), op, values) 536end 537 538function CeedOperatorMultigridLevelCreate(op_fine, p_mult_fine, rstr_coarse, basis_coarse, op_coarse, op_prolong, op_restrict) 539 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) 540end 541 542function CeedOperatorMultigridLevelCreateTensorH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict) 543 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) 544end 545 546function CeedOperatorMultigridLevelCreateH1(op_fine, p_mult_fine, rstr_coarse, basis_coarse, interp_c_to_f, op_coarse, op_prolong, op_restrict) 547 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) 548end 549 550function CeedOperatorCreateFDMElementInverse(op, fdm_inv, request) 551 ccall((:CeedOperatorCreateFDMElementInverse, libceed), Cint, (CeedOperator, Ptr{CeedOperator}, Ptr{CeedRequest}), op, fdm_inv, request) 552end 553 554function CeedOperatorSetNumQuadraturePoints(op, num_qpts) 555 ccall((:CeedOperatorSetNumQuadraturePoints, libceed), Cint, (CeedOperator, CeedInt), op, num_qpts) 556end 557 558function CeedOperatorView(op, stream) 559 ccall((:CeedOperatorView, libceed), Cint, (CeedOperator, Ptr{Libc.FILE}), op, stream) 560end 561 562function CeedOperatorApply(op, in, out, request) 563 ccall((:CeedOperatorApply, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request) 564end 565 566function CeedOperatorApplyAdd(op, in, out, request) 567 ccall((:CeedOperatorApplyAdd, libceed), Cint, (CeedOperator, CeedVector, CeedVector, Ptr{CeedRequest}), op, in, out, request) 568end 569 570function CeedOperatorDestroy(op) 571 ccall((:CeedOperatorDestroy, libceed), Cint, (Ptr{CeedOperator},), op) 572end 573 574function CeedIntPow(base, power) 575 ccall((:CeedIntPow, libceed), CeedInt, (CeedInt, CeedInt), base, power) 576end 577 578function CeedIntMin(a, b) 579 ccall((:CeedIntMin, libceed), CeedInt, (CeedInt, CeedInt), a, b) 580end 581 582function CeedIntMax(a, b) 583 ccall((:CeedIntMax, libceed), CeedInt, (CeedInt, CeedInt), a, b) 584end 585 586function CeedRegisterAll() 587 ccall((:CeedRegisterAll, libceed), Cint, ()) 588end 589 590function CeedQFunctionRegisterAll() 591 ccall((:CeedQFunctionRegisterAll, libceed), Cint, ()) 592end 593 594function CeedQFunctionSetCUDAUserFunction(qf, f) 595 ccall((:CeedQFunctionSetCUDAUserFunction, libceed), Cint, (CeedQFunction, Cint), qf, f) 596end 597 598# automatic type deduction for variadic arguments may not be what you want, please use with caution 599@generated function CeedDebugImpl(arg1, arg2, va_list...) 600 :(@ccall(libceed.CeedDebugImpl(arg1::Ceed, arg2::Ptr{Cchar}; $(to_c_type_pairs(va_list)...))::Cvoid)) 601 end 602 603# automatic type deduction for variadic arguments may not be what you want, please use with caution 604@generated function CeedDebugImpl256(arg1, arg2, arg3, va_list...) 605 :(@ccall(libceed.CeedDebugImpl256(arg1::Ceed, arg2::Cuchar, arg3::Ptr{Cchar}; $(to_c_type_pairs(va_list)...))::Cvoid)) 606 end 607 608mutable struct CeedTensorContract_private end 609 610const CeedTensorContract = Ptr{CeedTensorContract_private} 611 612function CeedMallocArray(n, unit, p) 613 ccall((:CeedMallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 614end 615 616function CeedCallocArray(n, unit, p) 617 ccall((:CeedCallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 618end 619 620function CeedReallocArray(n, unit, p) 621 ccall((:CeedReallocArray, libceed), Cint, (Csize_t, Csize_t, Ptr{Cvoid}), n, unit, p) 622end 623 624function CeedFree(p) 625 ccall((:CeedFree, libceed), Cint, (Ptr{Cvoid},), p) 626end 627 628mutable struct CeedQFunctionField_private end 629 630const CeedQFunctionField = Ptr{CeedQFunctionField_private} 631 632mutable struct CeedOperatorField_private end 633 634const CeedOperatorField = Ptr{CeedOperatorField_private} 635 636function CeedRegister(prefix, init, priority) 637 ccall((:CeedRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cvoid}, Cuint), prefix, init, priority) 638end 639 640function CeedIsDebug(ceed, is_debug) 641 ccall((:CeedIsDebug, libceed), Cint, (Ceed, Ptr{Bool}), ceed, is_debug) 642end 643 644function CeedGetParent(ceed, parent) 645 ccall((:CeedGetParent, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent) 646end 647 648function CeedGetDelegate(ceed, delegate) 649 ccall((:CeedGetDelegate, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, delegate) 650end 651 652function CeedSetDelegate(ceed, delegate) 653 ccall((:CeedSetDelegate, libceed), Cint, (Ceed, Ceed), ceed, delegate) 654end 655 656function CeedGetObjectDelegate(ceed, delegate, obj_name) 657 ccall((:CeedGetObjectDelegate, libceed), Cint, (Ceed, Ptr{Ceed}, Ptr{Cchar}), ceed, delegate, obj_name) 658end 659 660function CeedSetObjectDelegate(ceed, delegate, obj_name) 661 ccall((:CeedSetObjectDelegate, libceed), Cint, (Ceed, Ceed, Ptr{Cchar}), ceed, delegate, obj_name) 662end 663 664function CeedOperatorCheckReady(op) 665 ccall((:CeedOperatorCheckReady, libceed), Cint, (CeedOperator,), op) 666end 667 668function CeedOperatorGetActiveBasis(op, active_basis) 669 ccall((:CeedOperatorGetActiveBasis, libceed), Cint, (CeedOperator, Ptr{CeedBasis}), op, active_basis) 670end 671 672function CeedOperatorGetActiveElemRestriction(op, active_rstr) 673 ccall((:CeedOperatorGetActiveElemRestriction, libceed), Cint, (CeedOperator, Ptr{CeedElemRestriction}), op, active_rstr) 674end 675 676function CeedGetOperatorFallbackResource(ceed, resource) 677 ccall((:CeedGetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Ptr{Cchar}}), ceed, resource) 678end 679 680function CeedSetOperatorFallbackResource(ceed, resource) 681 ccall((:CeedSetOperatorFallbackResource, libceed), Cint, (Ceed, Ptr{Cchar}), ceed, resource) 682end 683 684function CeedGetOperatorFallbackParentCeed(ceed, parent) 685 ccall((:CeedGetOperatorFallbackParentCeed, libceed), Cint, (Ceed, Ptr{Ceed}), ceed, parent) 686end 687 688function CeedSetDeterministic(ceed, is_deterministic) 689 ccall((:CeedSetDeterministic, libceed), Cint, (Ceed, Bool), ceed, is_deterministic) 690end 691 692function CeedSetBackendFunction(ceed, type, object, func_name, f) 693 ccall((:CeedSetBackendFunction, libceed), Cint, (Ceed, Ptr{Cchar}, Ptr{Cvoid}, Ptr{Cchar}, Ptr{Cvoid}), ceed, type, object, func_name, f) 694end 695 696function CeedGetData(ceed, data) 697 ccall((:CeedGetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data) 698end 699 700function CeedSetData(ceed, data) 701 ccall((:CeedSetData, libceed), Cint, (Ceed, Ptr{Cvoid}), ceed, data) 702end 703 704function CeedReference(ceed) 705 ccall((:CeedReference, libceed), Cint, (Ceed,), ceed) 706end 707 708function CeedVectorGetCeed(vec, ceed) 709 ccall((:CeedVectorGetCeed, libceed), Cint, (CeedVector, Ptr{Ceed}), vec, ceed) 710end 711 712function CeedVectorGetState(vec, state) 713 ccall((:CeedVectorGetState, libceed), Cint, (CeedVector, Ptr{UInt64}), vec, state) 714end 715 716function CeedVectorAddReference(vec) 717 ccall((:CeedVectorAddReference, libceed), Cint, (CeedVector,), vec) 718end 719 720function CeedVectorGetData(vec, data) 721 ccall((:CeedVectorGetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data) 722end 723 724function CeedVectorSetData(vec, data) 725 ccall((:CeedVectorSetData, libceed), Cint, (CeedVector, Ptr{Cvoid}), vec, data) 726end 727 728function CeedVectorReference(vec) 729 ccall((:CeedVectorReference, libceed), Cint, (CeedVector,), vec) 730end 731 732function CeedElemRestrictionGetCeed(rstr, ceed) 733 ccall((:CeedElemRestrictionGetCeed, libceed), Cint, (CeedElemRestriction, Ptr{Ceed}), rstr, ceed) 734end 735 736function CeedElemRestrictionGetStrides(rstr, strides) 737 ccall((:CeedElemRestrictionGetStrides, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, strides) 738end 739 740function CeedElemRestrictionGetOffsets(rstr, mem_type, offsets) 741 ccall((:CeedElemRestrictionGetOffsets, libceed), Cint, (CeedElemRestriction, CeedMemType, Ptr{Ptr{CeedInt}}), rstr, mem_type, offsets) 742end 743 744function CeedElemRestrictionRestoreOffsets(rstr, offsets) 745 ccall((:CeedElemRestrictionRestoreOffsets, libceed), Cint, (CeedElemRestriction, Ptr{Ptr{CeedInt}}), rstr, offsets) 746end 747 748function CeedElemRestrictionIsStrided(rstr, is_strided) 749 ccall((:CeedElemRestrictionIsStrided, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, is_strided) 750end 751 752function CeedElemRestrictionHasBackendStrides(rstr, has_backend_strides) 753 ccall((:CeedElemRestrictionHasBackendStrides, libceed), Cint, (CeedElemRestriction, Ptr{Bool}), rstr, has_backend_strides) 754end 755 756function CeedElemRestrictionGetELayout(rstr, layout) 757 ccall((:CeedElemRestrictionGetELayout, libceed), Cint, (CeedElemRestriction, Ptr{NTuple{3, CeedInt}}), rstr, layout) 758end 759 760function CeedElemRestrictionSetELayout(rstr, layout) 761 ccall((:CeedElemRestrictionSetELayout, libceed), Cint, (CeedElemRestriction, Ptr{CeedInt}), rstr, layout) 762end 763 764function CeedElemRestrictionGetData(rstr, data) 765 ccall((:CeedElemRestrictionGetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data) 766end 767 768function CeedElemRestrictionSetData(rstr, data) 769 ccall((:CeedElemRestrictionSetData, libceed), Cint, (CeedElemRestriction, Ptr{Cvoid}), rstr, data) 770end 771 772function CeedElemRestrictionReference(rstr) 773 ccall((:CeedElemRestrictionReference, libceed), Cint, (CeedElemRestriction,), rstr) 774end 775 776function CeedBasisGetCollocatedGrad(basis, colo_grad_1d) 777 ccall((:CeedBasisGetCollocatedGrad, libceed), Cint, (CeedBasis, Ptr{CeedScalar}), basis, colo_grad_1d) 778end 779 780function CeedHouseholderApplyQ(A, Q, tau, t_mode, m, n, k, row, col) 781 ccall((:CeedHouseholderApplyQ, libceed), Cint, (Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedTransposeMode, CeedInt, CeedInt, CeedInt, CeedInt, CeedInt), A, Q, tau, t_mode, m, n, k, row, col) 782end 783 784function CeedBasisGetCeed(basis, ceed) 785 ccall((:CeedBasisGetCeed, libceed), Cint, (CeedBasis, Ptr{Ceed}), basis, ceed) 786end 787 788function CeedBasisIsTensor(basis, is_tensor) 789 ccall((:CeedBasisIsTensor, libceed), Cint, (CeedBasis, Ptr{Bool}), basis, is_tensor) 790end 791 792function CeedBasisGetData(basis, data) 793 ccall((:CeedBasisGetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data) 794end 795 796function CeedBasisSetData(basis, data) 797 ccall((:CeedBasisSetData, libceed), Cint, (CeedBasis, Ptr{Cvoid}), basis, data) 798end 799 800function CeedBasisReference(basis) 801 ccall((:CeedBasisReference, libceed), Cint, (CeedBasis,), basis) 802end 803 804function CeedBasisGetTopologyDimension(topo, dim) 805 ccall((:CeedBasisGetTopologyDimension, libceed), Cint, (CeedElemTopology, Ptr{CeedInt}), topo, dim) 806end 807 808function CeedBasisGetTensorContract(basis, contract) 809 ccall((:CeedBasisGetTensorContract, libceed), Cint, (CeedBasis, Ptr{CeedTensorContract}), basis, contract) 810end 811 812function CeedBasisSetTensorContract(basis, contract) 813 ccall((:CeedBasisSetTensorContract, libceed), Cint, (CeedBasis, CeedTensorContract), basis, contract) 814end 815 816function CeedTensorContractCreate(ceed, basis, contract) 817 ccall((:CeedTensorContractCreate, libceed), Cint, (Ceed, CeedBasis, Ptr{CeedTensorContract}), ceed, basis, contract) 818end 819 820function CeedTensorContractApply(contract, A, B, C, J, t, t_mode, Add, u, v) 821 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) 822end 823 824function CeedTensorContractGetCeed(contract, ceed) 825 ccall((:CeedTensorContractGetCeed, libceed), Cint, (CeedTensorContract, Ptr{Ceed}), contract, ceed) 826end 827 828function CeedTensorContractGetData(contract, data) 829 ccall((:CeedTensorContractGetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data) 830end 831 832function CeedTensorContractSetData(contract, data) 833 ccall((:CeedTensorContractSetData, libceed), Cint, (CeedTensorContract, Ptr{Cvoid}), contract, data) 834end 835 836function CeedTensorContractReference(contract) 837 ccall((:CeedTensorContractReference, libceed), Cint, (CeedTensorContract,), contract) 838end 839 840function CeedTensorContractDestroy(contract) 841 ccall((:CeedTensorContractDestroy, libceed), Cint, (Ptr{CeedTensorContract},), contract) 842end 843 844function CeedQFunctionRegister(arg1, arg2, arg3, arg4, init) 845 ccall((:CeedQFunctionRegister, libceed), Cint, (Ptr{Cchar}, Ptr{Cchar}, CeedInt, CeedQFunctionUser, Ptr{Cvoid}), arg1, arg2, arg3, arg4, init) 846end 847 848function CeedQFunctionSetFortranStatus(qf, status) 849 ccall((:CeedQFunctionSetFortranStatus, libceed), Cint, (CeedQFunction, Bool), qf, status) 850end 851 852function CeedQFunctionGetCeed(qf, ceed) 853 ccall((:CeedQFunctionGetCeed, libceed), Cint, (CeedQFunction, Ptr{Ceed}), qf, ceed) 854end 855 856function CeedQFunctionGetVectorLength(qf, vec_length) 857 ccall((:CeedQFunctionGetVectorLength, libceed), Cint, (CeedQFunction, Ptr{CeedInt}), qf, vec_length) 858end 859 860function CeedQFunctionGetNumArgs(qf, num_input_fields, num_output_fields) 861 ccall((:CeedQFunctionGetNumArgs, libceed), Cint, (CeedQFunction, Ptr{CeedInt}, Ptr{CeedInt}), qf, num_input_fields, num_output_fields) 862end 863 864function CeedQFunctionGetSourcePath(qf, source) 865 ccall((:CeedQFunctionGetSourcePath, libceed), Cint, (CeedQFunction, Ptr{Ptr{Cchar}}), qf, source) 866end 867 868function CeedQFunctionGetUserFunction(qf, f) 869 ccall((:CeedQFunctionGetUserFunction, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionUser}), qf, f) 870end 871 872function CeedQFunctionGetContext(qf, ctx) 873 ccall((:CeedQFunctionGetContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx) 874end 875 876function CeedQFunctionGetInnerContext(qf, ctx) 877 ccall((:CeedQFunctionGetInnerContext, libceed), Cint, (CeedQFunction, Ptr{CeedQFunctionContext}), qf, ctx) 878end 879 880function CeedQFunctionIsIdentity(qf, is_identity) 881 ccall((:CeedQFunctionIsIdentity, libceed), Cint, (CeedQFunction, Ptr{Bool}), qf, is_identity) 882end 883 884function CeedQFunctionGetData(qf, data) 885 ccall((:CeedQFunctionGetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 886end 887 888function CeedQFunctionSetData(qf, data) 889 ccall((:CeedQFunctionSetData, libceed), Cint, (CeedQFunction, Ptr{Cvoid}), qf, data) 890end 891 892function CeedQFunctionReference(qf) 893 ccall((:CeedQFunctionReference, libceed), Cint, (CeedQFunction,), qf) 894end 895 896function CeedQFunctionGetFields(qf, input_fields, output_fields) 897 ccall((:CeedQFunctionGetFields, libceed), Cint, (CeedQFunction, Ptr{Ptr{CeedQFunctionField}}, Ptr{Ptr{CeedQFunctionField}}), qf, input_fields, output_fields) 898end 899 900function CeedQFunctionFieldGetName(qf_field, field_name) 901 ccall((:CeedQFunctionFieldGetName, libceed), Cint, (CeedQFunctionField, Ptr{Ptr{Cchar}}), qf_field, field_name) 902end 903 904function CeedQFunctionFieldGetSize(qf_field, size) 905 ccall((:CeedQFunctionFieldGetSize, libceed), Cint, (CeedQFunctionField, Ptr{CeedInt}), qf_field, size) 906end 907 908function CeedQFunctionFieldGetEvalMode(qf_field, eval_mode) 909 ccall((:CeedQFunctionFieldGetEvalMode, libceed), Cint, (CeedQFunctionField, Ptr{CeedEvalMode}), qf_field, eval_mode) 910end 911 912function CeedQFunctionContextGetCeed(cxt, ceed) 913 ccall((:CeedQFunctionContextGetCeed, libceed), Cint, (CeedQFunctionContext, Ptr{Ceed}), cxt, ceed) 914end 915 916function CeedQFunctionContextGetState(ctx, state) 917 ccall((:CeedQFunctionContextGetState, libceed), Cint, (CeedQFunctionContext, Ptr{UInt64}), ctx, state) 918end 919 920function CeedQFunctionContextGetBackendData(ctx, data) 921 ccall((:CeedQFunctionContextGetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 922end 923 924function CeedQFunctionContextSetBackendData(ctx, data) 925 ccall((:CeedQFunctionContextSetBackendData, libceed), Cint, (CeedQFunctionContext, Ptr{Cvoid}), ctx, data) 926end 927 928function CeedQFunctionContextReference(ctx) 929 ccall((:CeedQFunctionContextReference, libceed), Cint, (CeedQFunctionContext,), ctx) 930end 931 932function CeedOperatorGetCeed(op, ceed) 933 ccall((:CeedOperatorGetCeed, libceed), Cint, (CeedOperator, Ptr{Ceed}), op, ceed) 934end 935 936function CeedOperatorGetNumElements(op, num_elem) 937 ccall((:CeedOperatorGetNumElements, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_elem) 938end 939 940function CeedOperatorGetNumQuadraturePoints(op, num_qpts) 941 ccall((:CeedOperatorGetNumQuadraturePoints, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_qpts) 942end 943 944function CeedOperatorGetNumArgs(op, num_args) 945 ccall((:CeedOperatorGetNumArgs, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_args) 946end 947 948function CeedOperatorIsSetupDone(op, is_setup_done) 949 ccall((:CeedOperatorIsSetupDone, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_setup_done) 950end 951 952function CeedOperatorGetQFunction(op, qf) 953 ccall((:CeedOperatorGetQFunction, libceed), Cint, (CeedOperator, Ptr{CeedQFunction}), op, qf) 954end 955 956function CeedOperatorIsComposite(op, is_composite) 957 ccall((:CeedOperatorIsComposite, libceed), Cint, (CeedOperator, Ptr{Bool}), op, is_composite) 958end 959 960function CeedOperatorGetNumSub(op, num_suboperators) 961 ccall((:CeedOperatorGetNumSub, libceed), Cint, (CeedOperator, Ptr{CeedInt}), op, num_suboperators) 962end 963 964function CeedOperatorGetSubList(op, sub_operators) 965 ccall((:CeedOperatorGetSubList, libceed), Cint, (CeedOperator, Ptr{Ptr{CeedOperator}}), op, sub_operators) 966end 967 968function CeedOperatorGetData(op, data) 969 ccall((:CeedOperatorGetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data) 970end 971 972function CeedOperatorSetData(op, data) 973 ccall((:CeedOperatorSetData, libceed), Cint, (CeedOperator, Ptr{Cvoid}), op, data) 974end 975 976function CeedOperatorReference(op) 977 ccall((:CeedOperatorReference, libceed), Cint, (CeedOperator,), op) 978end 979 980function CeedOperatorSetSetupDone(op) 981 ccall((:CeedOperatorSetSetupDone, libceed), Cint, (CeedOperator,), op) 982end 983 984function CeedOperatorGetFields(op, input_fields, output_fields) 985 ccall((:CeedOperatorGetFields, libceed), Cint, (CeedOperator, Ptr{Ptr{CeedOperatorField}}, Ptr{Ptr{CeedOperatorField}}), op, input_fields, output_fields) 986end 987 988function CeedOperatorFieldGetElemRestriction(op_field, rstr) 989 ccall((:CeedOperatorFieldGetElemRestriction, libceed), Cint, (CeedOperatorField, Ptr{CeedElemRestriction}), op_field, rstr) 990end 991 992function CeedOperatorFieldGetBasis(op_field, basis) 993 ccall((:CeedOperatorFieldGetBasis, libceed), Cint, (CeedOperatorField, Ptr{CeedBasis}), op_field, basis) 994end 995 996function CeedOperatorFieldGetVector(op_field, vec) 997 ccall((:CeedOperatorFieldGetVector, libceed), Cint, (CeedOperatorField, Ptr{CeedVector}), op_field, vec) 998end 999 1000function CeedMatrixMultiply(ceed, mat_A, mat_B, mat_C, m, n, kk) 1001 ccall((:CeedMatrixMultiply, libceed), Cint, (Ceed, Ptr{CeedScalar}, Ptr{CeedScalar}, Ptr{CeedScalar}, CeedInt, CeedInt, CeedInt), ceed, mat_A, mat_B, mat_C, m, n, kk) 1002end 1003 1004# Skipping MacroDefinition: CEED_EXTERN extern 1005 1006# Skipping MacroDefinition: CEED_QFUNCTION_HELPER static inline 1007 1008const CEED_VERSION_MAJOR = 0 1009 1010const CEED_VERSION_MINOR = 9 1011 1012const CEED_VERSION_PATCH = 0 1013 1014const CEED_VERSION_RELEASE = false 1015 1016# Skipping MacroDefinition: CEED_INTERN CEED_EXTERN __attribute__ ( ( visibility ( "hidden" ) ) ) 1017 1018# Skipping MacroDefinition: CEED_UNUSED __attribute__ ( ( unused ) ) 1019 1020const CEED_MAX_RESOURCE_LEN = 1024 1021 1022const CEED_MAX_BACKEND_PRIORITY = UINT_MAX 1023 1024const CEED_COMPOSITE_MAX = 16 1025 1026# Skipping MacroDefinition: CeedPragmaOptimizeOff _Pragma ( "clang optimize off" ) 1027 1028# Skipping MacroDefinition: CeedPragmaOptimizeOn _Pragma ( "clang optimize on" ) 1029 1030const CEED_DEBUG_COLOR = 0 1031