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