Lines Matching refs:qf
38 int (*init)(Ceed ceed, const char *name, CeedQFunction qf);
155 static int CeedQFunctionView_Object(CeedObject qf, FILE *stream) { in CeedQFunctionView_Object() argument
156 CeedCall(CeedQFunctionView((CeedQFunction)qf, stream)); in CeedQFunctionView_Object()
169 static int CeedQFunctionDestroy_Object(CeedObject *qf) { in CeedQFunctionDestroy_Object() argument
170 CeedCall(CeedQFunctionDestroy((CeedQFunction *)qf)); in CeedQFunctionDestroy_Object()
184 int CeedQFunctionSetFortranStatus(CeedQFunction qf, bool status) { in CeedQFunctionSetFortranStatus() argument
185 qf->is_fortran = status; in CeedQFunctionSetFortranStatus()
207 int CeedQFunctionGetVectorLength(CeedQFunction qf, CeedInt *vec_length) { in CeedQFunctionGetVectorLength() argument
208 *vec_length = qf->vec_length; in CeedQFunctionGetVectorLength()
223 int CeedQFunctionGetNumArgs(CeedQFunction qf, CeedInt *num_input, CeedInt *num_output) { in CeedQFunctionGetNumArgs() argument
224 if (num_input) *num_input = qf->num_input_fields; in CeedQFunctionGetNumArgs()
225 if (num_output) *num_output = qf->num_output_fields; in CeedQFunctionGetNumArgs()
240 int CeedQFunctionGetName(CeedQFunction qf, const char **name) { in CeedQFunctionGetName() argument
241 if (qf->is_gallery) { in CeedQFunctionGetName()
242 *name = qf->gallery_name; in CeedQFunctionGetName()
244 CeedCall(CeedQFunctionGetKernelName(qf, name)); in CeedQFunctionGetName()
259 int CeedQFunctionGetKernelName(CeedQFunction qf, const char **kernel_name) { in CeedQFunctionGetKernelName() argument
260 if (!qf->kernel_name) { in CeedQFunctionGetKernelName()
263 if (qf->user_source) { in CeedQFunctionGetKernelName()
264 const char *kernel_name = strrchr(qf->user_source, ':') + 1; in CeedQFunctionGetKernelName()
272 qf->kernel_name = kernel_name_copy; in CeedQFunctionGetKernelName()
275 *kernel_name = qf->kernel_name; in CeedQFunctionGetKernelName()
289 int CeedQFunctionGetSourcePath(CeedQFunction qf, const char **source_path) { in CeedQFunctionGetSourcePath() argument
290 if (!qf->source_path && qf->user_source) { in CeedQFunctionGetSourcePath()
295 const char *kernel_name = strrchr(qf->user_source, ':') + 1; in CeedQFunctionGetSourcePath()
298 CeedCall(CeedQFunctionGetCeed(qf, &ceed)); in CeedQFunctionGetSourcePath()
299 CeedCall(CeedCheckFilePath(ceed, qf->user_source, &is_absolute_path)); in CeedQFunctionGetSourcePath()
301 absolute_path = (char *)qf->user_source; in CeedQFunctionGetSourcePath()
303 CeedCall(CeedGetJitAbsolutePath(ceed, qf->user_source, &absolute_path)); in CeedQFunctionGetSourcePath()
311 qf->source_path = source_path_copy; in CeedQFunctionGetSourcePath()
316 *source_path = (char *)qf->source_path; in CeedQFunctionGetSourcePath()
338 int CeedQFunctionLoadSourceToBuffer(CeedQFunction qf, const char **source_buffer) { in CeedQFunctionLoadSourceToBuffer() argument
341 CeedCall(CeedQFunctionGetSourcePath(qf, &source_path)); in CeedQFunctionLoadSourceToBuffer()
347 CeedCall(CeedQFunctionGetCeed(qf, &ceed)); in CeedQFunctionLoadSourceToBuffer()
365 int CeedQFunctionGetUserFunction(CeedQFunction qf, CeedQFunctionUser *f) { in CeedQFunctionGetUserFunction() argument
366 *f = qf->function; in CeedQFunctionGetUserFunction()
382 int CeedQFunctionGetContext(CeedQFunction qf, CeedQFunctionContext *ctx) { in CeedQFunctionGetContext() argument
384 if (qf->ctx) CeedCall(CeedQFunctionContextReferenceCopy(qf->ctx, ctx)); in CeedQFunctionGetContext()
400 int CeedQFunctionGetContextData(CeedQFunction qf, CeedMemType mem_type, void *data) { in CeedQFunctionGetContextData() argument
404 CeedCall(CeedQFunctionGetContext(qf, &ctx)); in CeedQFunctionGetContextData()
406 CeedCall(CeedQFunctionIsContextWritable(qf, &is_writable)); in CeedQFunctionGetContextData()
429 int CeedQFunctionRestoreContextData(CeedQFunction qf, void *data) { in CeedQFunctionRestoreContextData() argument
433 CeedCall(CeedQFunctionGetContext(qf, &ctx)); in CeedQFunctionRestoreContextData()
435 CeedCall(CeedQFunctionIsContextWritable(qf, &is_writable)); in CeedQFunctionRestoreContextData()
457 int CeedQFunctionGetInnerContext(CeedQFunction qf, CeedQFunctionContext *ctx) { in CeedQFunctionGetInnerContext() argument
460 CeedCall(CeedQFunctionGetContext(qf, &qf_ctx)); in CeedQFunctionGetInnerContext()
461 if (qf->is_fortran) { in CeedQFunctionGetInnerContext()
486 int CeedQFunctionGetInnerContextData(CeedQFunction qf, CeedMemType mem_type, void *data) { in CeedQFunctionGetInnerContextData() argument
490 CeedCall(CeedQFunctionGetInnerContext(qf, &ctx)); in CeedQFunctionGetInnerContextData()
492 CeedCall(CeedQFunctionIsContextWritable(qf, &is_writable)); in CeedQFunctionGetInnerContextData()
514 int CeedQFunctionRestoreInnerContextData(CeedQFunction qf, void *data) { in CeedQFunctionRestoreInnerContextData() argument
518 CeedCall(CeedQFunctionGetInnerContext(qf, &ctx)); in CeedQFunctionRestoreInnerContextData()
520 CeedCall(CeedQFunctionIsContextWritable(qf, &is_writable)); in CeedQFunctionRestoreInnerContextData()
541 int CeedQFunctionIsIdentity(CeedQFunction qf, bool *is_identity) { in CeedQFunctionIsIdentity() argument
542 *is_identity = qf->is_identity; in CeedQFunctionIsIdentity()
556 int CeedQFunctionIsContextWritable(CeedQFunction qf, bool *is_writable) { in CeedQFunctionIsContextWritable() argument
557 *is_writable = qf->is_context_writable; in CeedQFunctionIsContextWritable()
571 int CeedQFunctionGetData(CeedQFunction qf, void *data) { in CeedQFunctionGetData() argument
572 *(void **)data = qf->data; in CeedQFunctionGetData()
586 int CeedQFunctionSetData(CeedQFunction qf, void *data) { in CeedQFunctionSetData() argument
587 qf->data = data; in CeedQFunctionSetData()
601 int CeedQFunctionIsImmutable(CeedQFunction qf, bool *is_immutable) { in CeedQFunctionIsImmutable() argument
602 *is_immutable = qf->is_immutable; in CeedQFunctionIsImmutable()
615 int CeedQFunctionSetImmutable(CeedQFunction qf) { in CeedQFunctionSetImmutable() argument
616 qf->is_immutable = true; in CeedQFunctionSetImmutable()
629 int CeedQFunctionReference(CeedQFunction qf) { in CeedQFunctionReference() argument
630 CeedCall(CeedObjectReference((CeedObject)qf)); in CeedQFunctionReference()
642 int CeedQFunctionGetFlopsEstimate(CeedQFunction qf, CeedSize *flops) { in CeedQFunctionGetFlopsEstimate() argument
643 *flops = qf->user_flop_estimate; in CeedQFunctionGetFlopsEstimate()
677 …terior(Ceed ceed, CeedInt vec_length, CeedQFunctionUser f, const char *source, CeedQFunction *qf) { in CeedQFunctionCreateInterior() argument
685 CeedCall(CeedQFunctionCreateInterior(delegate, vec_length, f, source, qf)); in CeedQFunctionCreateInterior()
693 CeedCall(CeedCalloc(1, qf)); in CeedQFunctionCreateInterior()
694 …CeedCall(CeedObjectCreate(ceed, CeedQFunctionView_Object, CeedQFunctionDestroy_Object, &(*qf)->obj… in CeedQFunctionCreateInterior()
695 (*qf)->vec_length = vec_length; in CeedQFunctionCreateInterior()
696 (*qf)->is_identity = false; in CeedQFunctionCreateInterior()
697 (*qf)->is_context_writable = true; in CeedQFunctionCreateInterior()
698 (*qf)->function = f; in CeedQFunctionCreateInterior()
699 (*qf)->user_flop_estimate = -1; in CeedQFunctionCreateInterior()
705 (*qf)->user_source = user_source_copy; in CeedQFunctionCreateInterior()
707 CeedCall(CeedCalloc(CEED_FIELD_MAX, &(*qf)->input_fields)); in CeedQFunctionCreateInterior()
708 CeedCall(CeedCalloc(CEED_FIELD_MAX, &(*qf)->output_fields)); in CeedQFunctionCreateInterior()
709 CeedCall(ceed->QFunctionCreate(*qf)); in CeedQFunctionCreateInterior()
724 int CeedQFunctionCreateInteriorByName(Ceed ceed, const char *name, CeedQFunction *qf) { in CeedQFunctionCreateInteriorByName() argument
744 gallery_qfunctions[match_index].source, qf)); in CeedQFunctionCreateInteriorByName()
747 CeedCall(gallery_qfunctions[match_index].init(ceed, name, *qf)); in CeedQFunctionCreateInteriorByName()
750 CeedCall(CeedStringAllocCopy(name, (char **)&(*qf)->gallery_name)); in CeedQFunctionCreateInteriorByName()
751 (*qf)->is_gallery = true; in CeedQFunctionCreateInteriorByName()
772 …Identity(Ceed ceed, CeedInt size, CeedEvalMode in_mode, CeedEvalMode out_mode, CeedQFunction *qf) { in CeedQFunctionCreateIdentity() argument
776 CeedCall(CeedQFunctionCreateInteriorByName(ceed, "Identity", qf)); in CeedQFunctionCreateIdentity()
777 CeedCall(CeedQFunctionAddInput(*qf, "input", size, in_mode)); in CeedQFunctionCreateIdentity()
778 CeedCall(CeedQFunctionAddOutput(*qf, "output", size, out_mode)); in CeedQFunctionCreateIdentity()
780 (*qf)->is_identity = true; in CeedQFunctionCreateIdentity()
782 CeedCall(CeedQFunctionGetContext(*qf, &ctx)); in CeedQFunctionCreateIdentity()
804 int CeedQFunctionReferenceCopy(CeedQFunction qf, CeedQFunction *qf_copy) { in CeedQFunctionReferenceCopy() argument
805 CeedCall(CeedQFunctionReference(qf)); in CeedQFunctionReferenceCopy()
807 *qf_copy = qf; in CeedQFunctionReferenceCopy()
834 int CeedQFunctionAddInput(CeedQFunction qf, const char *field_name, CeedInt size, CeedEvalMode eval… in CeedQFunctionAddInput() argument
837 CeedCall(CeedQFunctionIsImmutable(qf, &is_immutable)); in CeedQFunctionAddInput()
838 …CeedCheck(!is_immutable, CeedQFunctionReturnCeed(qf), CEED_ERROR_MAJOR, "QFunction cannot be chang… in CeedQFunctionAddInput()
839 …CeedCheck(eval_mode != CEED_EVAL_WEIGHT || size == 1, CeedQFunctionReturnCeed(qf), CEED_ERROR_DIME… in CeedQFunctionAddInput()
840 for (CeedInt i = 0; i < qf->num_input_fields; i++) { in CeedQFunctionAddInput()
841 …CeedCheck(strcmp(field_name, qf->input_fields[i]->field_name), CeedQFunctionReturnCeed(qf), CEED_E… in CeedQFunctionAddInput()
844 for (CeedInt i = 0; i < qf->num_output_fields; i++) { in CeedQFunctionAddInput()
845 …CeedCheck(strcmp(field_name, qf->output_fields[i]->field_name), CeedQFunctionReturnCeed(qf), CEED_… in CeedQFunctionAddInput()
848 …CeedCall(CeedQFunctionFieldSet(&qf->input_fields[qf->num_input_fields], field_name, size, eval_mod… in CeedQFunctionAddInput()
849 qf->num_input_fields++; in CeedQFunctionAddInput()
876 int CeedQFunctionAddOutput(CeedQFunction qf, const char *field_name, CeedInt size, CeedEvalMode eva… in CeedQFunctionAddOutput() argument
879 CeedCall(CeedQFunctionIsImmutable(qf, &is_immutable)); in CeedQFunctionAddOutput()
880 …CeedCheck(!is_immutable, CeedQFunctionReturnCeed(qf), CEED_ERROR_MAJOR, "CeedQFunction cannot be c… in CeedQFunctionAddOutput()
881 CeedCheck(eval_mode != CEED_EVAL_WEIGHT, CeedQFunctionReturnCeed(qf), CEED_ERROR_DIMENSION, in CeedQFunctionAddOutput()
883 for (CeedInt i = 0; i < qf->num_input_fields; i++) { in CeedQFunctionAddOutput()
884 …CeedCheck(strcmp(field_name, qf->input_fields[i]->field_name), CeedQFunctionReturnCeed(qf), CEED_E… in CeedQFunctionAddOutput()
887 for (CeedInt i = 0; i < qf->num_output_fields; i++) { in CeedQFunctionAddOutput()
888 …CeedCheck(strcmp(field_name, qf->output_fields[i]->field_name), CeedQFunctionReturnCeed(qf), CEED_… in CeedQFunctionAddOutput()
891 …CeedCall(CeedQFunctionFieldSet(&qf->output_fields[qf->num_output_fields], field_name, size, eval_m… in CeedQFunctionAddOutput()
892 qf->num_output_fields++; in CeedQFunctionAddOutput()
911 int CeedQFunctionGetFields(CeedQFunction qf, CeedInt *num_input_fields, CeedQFunctionField **input_… in CeedQFunctionGetFields() argument
913 CeedCall(CeedQFunctionSetImmutable(qf)); in CeedQFunctionGetFields()
914 if (num_input_fields) *num_input_fields = qf->num_input_fields; in CeedQFunctionGetFields()
915 if (input_fields) *input_fields = qf->input_fields; in CeedQFunctionGetFields()
916 if (num_output_fields) *num_output_fields = qf->num_output_fields; in CeedQFunctionGetFields()
917 if (output_fields) *output_fields = qf->output_fields; in CeedQFunctionGetFields()
997 int CeedQFunctionSetContext(CeedQFunction qf, CeedQFunctionContext ctx) { in CeedQFunctionSetContext() argument
998 CeedCall(CeedQFunctionContextDestroy(&qf->ctx)); in CeedQFunctionSetContext()
999 qf->ctx = ctx; in CeedQFunctionSetContext()
1023 int CeedQFunctionSetContextWritable(CeedQFunction qf, bool is_writable) { in CeedQFunctionSetContextWritable() argument
1024 qf->is_context_writable = is_writable; in CeedQFunctionSetContextWritable()
1036 int CeedQFunctionSetUserFlopsEstimate(CeedQFunction qf, CeedSize flops) { in CeedQFunctionSetUserFlopsEstimate() argument
1037 …CeedCheck(flops >= 0, CeedQFunctionReturnCeed(qf), CEED_ERROR_INCOMPATIBLE, "Must set non-negative… in CeedQFunctionSetUserFlopsEstimate()
1038 qf->user_flop_estimate = flops; in CeedQFunctionSetUserFlopsEstimate()
1052 int CeedQFunctionSetNumViewTabs(CeedQFunction qf, CeedInt num_tabs) { in CeedQFunctionSetNumViewTabs() argument
1053 CeedCall(CeedObjectSetNumViewTabs((CeedObject)qf, num_tabs)); in CeedQFunctionSetNumViewTabs()
1067 int CeedQFunctionGetNumViewTabs(CeedQFunction qf, CeedInt *num_tabs) { in CeedQFunctionGetNumViewTabs() argument
1068 CeedCall(CeedObjectGetNumViewTabs((CeedObject)qf, num_tabs)); in CeedQFunctionGetNumViewTabs()
1082 int CeedQFunctionView(CeedQFunction qf, FILE *stream) { in CeedQFunctionView() argument
1089 CeedCall(CeedQFunctionGetNumViewTabs(qf, &num_tabs)); in CeedQFunctionView()
1094 CeedCall(CeedQFunctionGetName(qf, &name)); in CeedQFunctionView()
1095 fprintf(stream, "%s%sCeedQFunction - %s\n", tabs, qf->is_gallery ? "Gallery " : "User ", name); in CeedQFunctionView()
1097 …fprintf(stream, "%s %" CeedInt_FMT " input field%s:\n", tabs, qf->num_input_fields, qf->num_input… in CeedQFunctionView()
1098 for (CeedInt i = 0; i < qf->num_input_fields; i++) { in CeedQFunctionView()
1099 CeedCall(CeedQFunctionFieldView(qf->input_fields[i], i, 1, tabs, stream)); in CeedQFunctionView()
1102 …fprintf(stream, "%s %" CeedInt_FMT " output field%s:\n", tabs, qf->num_output_fields, qf->num_out… in CeedQFunctionView()
1103 for (CeedInt i = 0; i < qf->num_output_fields; i++) { in CeedQFunctionView()
1104 CeedCall(CeedQFunctionFieldView(qf->output_fields[i], i, 0, tabs, stream)); in CeedQFunctionView()
1120 int CeedQFunctionGetCeed(CeedQFunction qf, Ceed *ceed) { in CeedQFunctionGetCeed() argument
1121 CeedCall(CeedObjectGetCeed((CeedObject)qf, ceed)); in CeedQFunctionGetCeed()
1134 Ceed CeedQFunctionReturnCeed(CeedQFunction qf) { return CeedObjectReturnCeed((CeedObject)qf); } in CeedQFunctionReturnCeed() argument
1150 int CeedQFunctionApply(CeedQFunction qf, CeedInt Q, CeedVector *u, CeedVector *v) { in CeedQFunctionApply() argument
1153 …CeedCheck(qf->Apply, CeedQFunctionReturnCeed(qf), CEED_ERROR_UNSUPPORTED, "Backend does not suppor… in CeedQFunctionApply()
1154 CeedCall(CeedQFunctionGetVectorLength(qf, &vec_length)); in CeedQFunctionApply()
1155 CeedCheck(Q % vec_length == 0, CeedQFunctionReturnCeed(qf), CEED_ERROR_DIMENSION, in CeedQFunctionApply()
1156 …ber of quadrature points %" CeedInt_FMT " must be a multiple of %" CeedInt_FMT, Q, qf->vec_length); in CeedQFunctionApply()
1157 CeedCall(CeedQFunctionSetImmutable(qf)); in CeedQFunctionApply()
1158 CeedCall(qf->Apply(qf, Q, u, v)); in CeedQFunctionApply()
1171 int CeedQFunctionDestroy(CeedQFunction *qf) { in CeedQFunctionDestroy() argument
1172 if (!*qf || CeedObjectDereference((CeedObject)*qf) > 0) { in CeedQFunctionDestroy()
1173 *qf = NULL; in CeedQFunctionDestroy()
1177 if ((*qf)->Destroy) { in CeedQFunctionDestroy()
1178 CeedCall((*qf)->Destroy(*qf)); in CeedQFunctionDestroy()
1181 for (CeedInt i = 0; i < (*qf)->num_input_fields; i++) { in CeedQFunctionDestroy()
1182 CeedCall(CeedFree(&(*(*qf)->input_fields[i]).field_name)); in CeedQFunctionDestroy()
1183 CeedCall(CeedFree(&(*qf)->input_fields[i])); in CeedQFunctionDestroy()
1185 for (CeedInt i = 0; i < (*qf)->num_output_fields; i++) { in CeedQFunctionDestroy()
1186 CeedCall(CeedFree(&(*(*qf)->output_fields[i]).field_name)); in CeedQFunctionDestroy()
1187 CeedCall(CeedFree(&(*qf)->output_fields[i])); in CeedQFunctionDestroy()
1189 CeedCall(CeedFree(&(*qf)->input_fields)); in CeedQFunctionDestroy()
1190 CeedCall(CeedFree(&(*qf)->output_fields)); in CeedQFunctionDestroy()
1193 CeedCall(CeedQFunctionContextDestroy(&(*qf)->ctx)); in CeedQFunctionDestroy()
1195 CeedCall(CeedFree(&(*qf)->user_source)); in CeedQFunctionDestroy()
1196 CeedCall(CeedFree(&(*qf)->source_path)); in CeedQFunctionDestroy()
1197 CeedCall(CeedFree(&(*qf)->gallery_name)); in CeedQFunctionDestroy()
1198 CeedCall(CeedFree(&(*qf)->kernel_name)); in CeedQFunctionDestroy()
1199 CeedCall(CeedObjectDestroy_Private(&(*qf)->obj)); in CeedQFunctionDestroy()
1200 CeedCall(CeedFree(qf)); in CeedQFunctionDestroy()