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