Lines Matching refs:C

1 using LibCEED.C, Printf, UnsafeArrays
2 using LibCEED.C: CeedInt, CeedScalar
109 el_nodes = zeros(C.CeedInt, num_elem*nnodes)
130 rstr = Ref{C.CeedElemRestriction}()
131 C.CeedElemRestrictionCreate(
138 C.CEED_MEM_HOST,
139 C.CEED_COPY_VALUES,
144 rstr_i = Ref{C.CeedElemRestriction}()
145 err = C.CeedElemRestrictionCreateStrided(
151 C.CEED_STRIDES_BACKEND[],
166 coords_ref = Ref{Ptr{C.CeedScalar}}()
167 C.CeedVectorGetArray(mesh_coords[], C.CEED_MEM_HOST, coords_ref)
170 nodes = zeros(C.CeedScalar, p + 1)
172 C.CeedLobattoQuadrature(p + 1, nodes, C_NULL) # nodes are in [-1,1]
182 C.CeedVectorRestoreArray(mesh_coords[], coords_ref)
186 coords_ref = Ref{Ptr{C.CeedScalar}}()
187 C.CeedVectorGetArray(mesh_coords[], C.CEED_MEM_HOST, coords_ref)
211 C.CeedVectorRestoreArray(mesh_coords[], coords_ref)
221 ceed = Ref{C.Ceed}()
222 C.CeedInit(ceed_spec, ceed)
224 mesh_basis = Ref{C.CeedBasis}()
225 sol_basis = Ref{C.CeedBasis}()
226 C.CeedBasisCreateTensorH1Lagrange(
232 C.CEED_GAUSS,
235 C.CeedBasisCreateTensorH1Lagrange(
241 C.CEED_GAUSS,
265 # Create a C.CeedVector with the mesh coordinates.
266 mesh_coords = Ref{C.CeedVector}()
267 C.CeedVectorCreate(ceed[], mesh_size, mesh_coords)
274 build_qfunc = Ref{C.CeedQFunction}()
277 qf_ctx = Ref{C.CeedQFunctionContext}()
278 C.CeedQFunctionContextCreate(ceed[], qf_ctx)
279 C.CeedQFunctionContextSetData(
281 C.CEED_MEM_HOST,
282 C.CEED_USE_POINTER,
290 C.CeedInt,
291 (Ptr{Cvoid}, C.CeedInt, Ptr{Ptr{C.CeedScalar}}, Ptr{Ptr{C.CeedScalar}})
294 C.CeedQFunctionCreateInterior(ceed[], 1, qf_build_mass, "julia", build_qfunc)
295 C.CeedQFunctionAddInput(build_qfunc[], "dx", ncompx*dim, C.CEED_EVAL_GRAD)
296 C.CeedQFunctionAddInput(build_qfunc[], "weights", 1, C.CEED_EVAL_WEIGHT)
297 C.CeedQFunctionAddOutput(build_qfunc[], "qdata", 1, C.CEED_EVAL_NONE)
298 C.CeedQFunctionSetContext(build_qfunc[], qf_ctx[])
302 C.CeedQFunctionCreateInteriorByName(ceed[], name, build_qfunc)
306 build_oper = Ref{C.CeedOperator}()
307 C.CeedOperatorCreate(
310 C.CEED_QFUNCTION_NONE[],
311 C.CEED_QFUNCTION_NONE[],
314 C.CeedOperatorSetField(
319 C.CEED_VECTOR_ACTIVE[],
321 C.CeedOperatorSetField(
324 C.CEED_ELEMRESTRICTION_NONE[],
326 C.CEED_VECTOR_NONE[],
328 C.CeedOperatorSetField(
332 C.CEED_BASIS_NONE[],
333 C.CEED_VECTOR_ACTIVE[],
337 qdata = Ref{C.CeedVector}()
340 C.CeedVectorCreate(ceed[], num_elem*elem_qpts, qdata)
344 GC.@preserve build_ctx C.CeedOperatorApply(
348 C.CEED_REQUEST_IMMEDIATE[],
353 apply_qfunc = Ref{C.CeedQFunction}()
357 C.CeedInt,
358 (Ptr{Cvoid}, C.CeedInt, Ptr{Ptr{C.CeedScalar}}, Ptr{Ptr{C.CeedScalar}})
361 C.CeedQFunctionCreateInterior(ceed[], 1, qf_apply_mass, "julia", apply_qfunc)
362 C.CeedQFunctionAddInput(apply_qfunc[], "u", 1, C.CEED_EVAL_INTERP)
363 C.CeedQFunctionAddInput(apply_qfunc[], "qdata", 1, C.CEED_EVAL_NONE)
364 C.CeedQFunctionAddOutput(apply_qfunc[], "v", 1, C.CEED_EVAL_INTERP)
367 C.CeedQFunctionCreateInteriorByName(ceed[], "MassApply", apply_qfunc)
371 oper = Ref{C.CeedOperator}()
372 C.CeedOperatorCreate(
375 C.CEED_QFUNCTION_NONE[],
376 C.CEED_QFUNCTION_NONE[],
379 C.CeedOperatorSetField(oper[], "u", sol_rstr[], sol_basis[], C.CEED_VECTOR_ACTIVE[])
380 C.CeedOperatorSetField(oper[], "qdata", sol_rstr_i[], C.CEED_BASIS_NONE[], qdata[])
381 C.CeedOperatorSetField(oper[], "v", sol_rstr[], sol_basis[], C.CEED_VECTOR_ACTIVE[])
387 u = Ref{C.CeedVector}()
388 v = Ref{C.CeedVector}()
389 C.CeedVectorCreate(ceed[], sol_size, u)
390 C.CeedVectorCreate(ceed[], sol_size, v)
393 C.CeedVectorSetValue(u[], 1.0)
396 C.CeedOperatorApply(oper[], u[], v[], C.CEED_REQUEST_IMMEDIATE[])
399 v_host_ref = Ref{Ptr{C.CeedScalar}}()
400 C.CeedVectorGetArrayRead(v[], C.CEED_MEM_HOST, v_host_ref)
403 C.CeedVectorRestoreArrayRead(v[], v_host_ref)
411 C.CeedVectorDestroy(u)
412 C.CeedVectorDestroy(v)
413 C.CeedVectorDestroy(qdata)
414 C.CeedVectorDestroy(mesh_coords)
415 C.CeedOperatorDestroy(oper)
416 C.CeedQFunctionDestroy(apply_qfunc)
417 C.CeedOperatorDestroy(build_oper)
418 C.CeedQFunctionDestroy(build_qfunc)
419 C.CeedElemRestrictionDestroy(sol_rstr)
420 C.CeedElemRestrictionDestroy(mesh_rstr)
421 C.CeedElemRestrictionDestroy(sol_rstr_i)
422 C.CeedBasisDestroy(sol_basis)
423 C.CeedBasisDestroy(mesh_basis)
424 C.CeedDestroy(ceed)