Lines Matching refs:impl
213 CeedOperator_Opt *impl; in CeedOperatorSetup_Opt() local
221 CeedCallBackend(CeedOperatorGetData(op, &impl)); in CeedOperatorSetup_Opt()
224 CeedCallBackend(CeedQFunctionIsIdentity(qf, &impl->is_identity_qf)); in CeedOperatorSetup_Opt()
230 CeedCallBackend(CeedCalloc(num_input_fields + num_output_fields, &impl->block_rstr)); in CeedOperatorSetup_Opt()
231 CeedCallBackend(CeedCalloc(num_input_fields + num_output_fields, &impl->e_vecs_full)); in CeedOperatorSetup_Opt()
233 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->skip_rstr_in)); in CeedOperatorSetup_Opt()
234 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->skip_rstr_out)); in CeedOperatorSetup_Opt()
235 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->apply_add_basis_out)); in CeedOperatorSetup_Opt()
236 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->input_states)); in CeedOperatorSetup_Opt()
237 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->e_vecs_in)); in CeedOperatorSetup_Opt()
238 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->e_vecs_out)); in CeedOperatorSetup_Opt()
239 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->q_vecs_in)); in CeedOperatorSetup_Opt()
240 CeedCallBackend(CeedCalloc(CEED_FIELD_MAX, &impl->q_vecs_out)); in CeedOperatorSetup_Opt()
242 impl->num_inputs = num_input_fields; in CeedOperatorSetup_Opt()
243 impl->num_outputs = num_output_fields; in CeedOperatorSetup_Opt()
247 …end(CeedOperatorSetupFields_Opt(qf, op, true, impl->skip_rstr_in, NULL, block_size, impl->block_rs… in CeedOperatorSetup_Opt()
248 … impl->e_vecs_in, impl->q_vecs_in, 0, num_input_fields, Q)); in CeedOperatorSetup_Opt()
250 …(CeedOperatorSetupFields_Opt(qf, op, false, impl->skip_rstr_out, impl->apply_add_basis_out, block_… in CeedOperatorSetup_Opt()
251 … impl->e_vecs_full, impl->e_vecs_out, impl->q_vecs_out, num_input_fields, num_output_fields, Q)); in CeedOperatorSetup_Opt()
254 if (impl->is_identity_qf) { in CeedOperatorSetup_Opt()
263 impl->is_identity_rstr_op = true; in CeedOperatorSetup_Opt()
265 CeedCallBackend(CeedVectorReferenceCopy(impl->q_vecs_in[0], &impl->q_vecs_out[0])); in CeedOperatorSetup_Opt()
278 … CeedVector in_vec, CeedScalar *e_data[2 * CEED_FIELD_MAX], CeedOperator_Opt *impl, in CeedOperatorSetupInputs_Opt() argument
294 if (state != impl->input_states[i] && impl->block_rstr[i] && !impl->skip_rstr_in[i]) { in CeedOperatorSetupInputs_Opt()
295 …CeedCallBackend(CeedElemRestrictionApply(impl->block_rstr[i], CEED_NOTRANSPOSE, vec, impl->e_vecs_… in CeedOperatorSetupInputs_Opt()
297 impl->input_states[i] = state; in CeedOperatorSetupInputs_Opt()
299 …CeedCallBackend(CeedVectorGetArrayRead(impl->e_vecs_full[i], CEED_MEM_HOST, (const CeedScalar **)&… in CeedOperatorSetupInputs_Opt()
303 …CeedCallBackend(CeedVectorGetArrayRead(impl->e_vecs_in[i], CEED_MEM_HOST, (const CeedScalar **)&e_… in CeedOperatorSetupInputs_Opt()
304 …CeedCallBackend(CeedVectorSetArray(impl->q_vecs_in[i], CEED_MEM_HOST, CEED_USE_POINTER, e_data[i])… in CeedOperatorSetupInputs_Opt()
305 … CeedCallBackend(CeedVectorRestoreArrayRead(impl->e_vecs_in[i], (const CeedScalar **)&e_data[i])); in CeedOperatorSetupInputs_Opt()
319 … CeedScalar *e_data[2 * CEED_FIELD_MAX], CeedOperator_Opt *impl, CeedRequest *request) { in CeedOperatorInputBasis_Opt() argument
341 if (is_active && impl->block_rstr[i]) { in CeedOperatorInputBasis_Opt()
342 …dCallBackend(CeedElemRestrictionApplyBlock(impl->block_rstr[i], e / block_size, CEED_NOTRANSPOSE, … in CeedOperatorInputBasis_Opt()
348 …CeedCallBackend(CeedVectorSetArray(impl->q_vecs_in[i], CEED_MEM_HOST, CEED_USE_POINTER, &e_data[i]… in CeedOperatorInputBasis_Opt()
358 …CeedCallBackend(CeedVectorSetArray(impl->e_vecs_in[i], CEED_MEM_HOST, CEED_USE_POINTER, &e_data[i]… in CeedOperatorInputBasis_Opt()
360 …(CeedBasisApply(basis, block_size, CEED_NOTRANSPOSE, eval_mode, impl->e_vecs_in[i], impl->q_vecs_i… in CeedOperatorInputBasis_Opt()
375 …bool *skip_rstr, CeedOperator op, CeedVector out_vec, CeedOperator_Opt *impl, CeedRequest *request… in CeedOperatorOutputBasis_Opt() argument
394 …CeedBasisApplyAdd(basis, block_size, CEED_TRANSPOSE, eval_mode, impl->q_vecs_out[i], impl->e_vecs_… in CeedOperatorOutputBasis_Opt()
396 …nd(CeedBasisApply(basis, block_size, CEED_TRANSPOSE, eval_mode, impl->q_vecs_out[i], impl->e_vecs_… in CeedOperatorOutputBasis_Opt()
413 …Backend(CeedElemRestrictionApplyBlock(impl->block_rstr[i + impl->num_inputs], e / block_size, CEED… in CeedOperatorOutputBasis_Opt()
424 … CeedScalar *e_data[2 * CEED_FIELD_MAX], CeedOperator_Opt *impl) { in CeedOperatorRestoreInputs_Opt() argument
432 …CeedCallBackend(CeedVectorRestoreArrayRead(impl->e_vecs_full[i], (const CeedScalar **)&e_data[i])); in CeedOperatorRestoreInputs_Opt()
451 CeedOperator_Opt *impl; in CeedOperatorApplyAdd_Opt() local
459 CeedCallBackend(CeedOperatorGetData(op, &impl)); in CeedOperatorApplyAdd_Opt()
465 if (impl->is_identity_rstr_op) { in CeedOperatorApplyAdd_Opt()
467 …CeedCallBackend(CeedElemRestrictionApplyBlock(impl->block_rstr[0], b, CEED_NOTRANSPOSE, in_vec, im… in CeedOperatorApplyAdd_Opt()
468 …CeedCallBackend(CeedElemRestrictionApplyBlock(impl->block_rstr[1], b, CEED_TRANSPOSE, impl->e_vecs… in CeedOperatorApplyAdd_Opt()
479 …etupInputs_Opt(num_input_fields, qf_input_fields, op_input_fields, in_vec, e_data, impl, request)); in CeedOperatorApplyAdd_Opt()
487 …CeedCallBackend(CeedVectorGetArrayWrite(impl->e_vecs_out[i], CEED_MEM_HOST, &e_data[i + num_input_… in CeedOperatorApplyAdd_Opt()
488 …CeedCallBackend(CeedVectorSetArray(impl->q_vecs_out[i], CEED_MEM_HOST, CEED_USE_POINTER, e_data[i … in CeedOperatorApplyAdd_Opt()
489 CeedCallBackend(CeedVectorRestoreArray(impl->e_vecs_out[i], &e_data[i + num_input_fields])); in CeedOperatorApplyAdd_Opt()
496 …(e, Q, qf_input_fields, op_input_fields, num_input_fields, block_size, in_vec, false, e_data, impl, in CeedOperatorApplyAdd_Opt()
500 if (!impl->is_identity_qf) { in CeedOperatorApplyAdd_Opt()
501 CeedCallBackend(CeedQFunctionApply(qf, Q * block_size, impl->q_vecs_in, impl->q_vecs_out)); in CeedOperatorApplyAdd_Opt()
506 … impl->apply_add_basis_out, impl->skip_rstr_out, op, out_vec, impl, request)); in CeedOperatorApplyAdd_Opt()
510 …d(CeedOperatorRestoreInputs_Opt(num_input_fields, qf_input_fields, op_input_fields, e_data, impl)); in CeedOperatorApplyAdd_Opt()
527 CeedOperator_Opt *impl; in CeedOperatorLinearAssembleQFunctionCore_Opt() local
531 CeedCallBackend(CeedOperatorGetData(op, &impl)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
532 qf_size_in = impl->qf_size_in; in CeedOperatorLinearAssembleQFunctionCore_Opt()
533 qf_size_out = impl->qf_size_out; in CeedOperatorLinearAssembleQFunctionCore_Opt()
542 CeedVector l_vec = impl->qf_l_vec; in CeedOperatorLinearAssembleQFunctionCore_Opt()
543 CeedElemRestriction block_rstr = impl->qf_block_rstr; in CeedOperatorLinearAssembleQFunctionCore_Opt()
549 …CeedCheck(!impl->is_identity_rstr_op, ceed, CEED_ERROR_BACKEND, "Assembling restriction only opera… in CeedOperatorLinearAssembleQFunctionCore_Opt()
552 …rSetupInputs_Opt(num_input_fields, qf_input_fields, op_input_fields, NULL, e_data, impl, request)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
564 CeedCallBackend(CeedVectorSetValue(impl->q_vecs_in[i], 0.0)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
570 impl->qf_size_in = qf_size_in; in CeedOperatorLinearAssembleQFunctionCore_Opt()
588 impl->qf_size_out = qf_size_out; in CeedOperatorLinearAssembleQFunctionCore_Opt()
597 impl->qf_l_vec = l_vec; in CeedOperatorLinearAssembleQFunctionCore_Opt()
606 impl->qf_block_rstr = block_rstr; in CeedOperatorLinearAssembleQFunctionCore_Opt()
627 …Opt(e, Q, qf_input_fields, op_input_fields, num_input_fields, block_size, NULL, true, e_data, impl, in CeedOperatorLinearAssembleQFunctionCore_Opt()
647 CeedCallBackend(CeedVectorGetArray(impl->q_vecs_in[i], CEED_MEM_HOST, &array)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
649 CeedCallBackend(CeedVectorRestoreArray(impl->q_vecs_in[i], &array)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
652 if (!impl->is_identity_qf) { in CeedOperatorLinearAssembleQFunctionCore_Opt()
662 …CeedCallBackend(CeedVectorSetArray(impl->q_vecs_out[out], CEED_MEM_HOST, CEED_USE_POINTER, l_vec_a… in CeedOperatorLinearAssembleQFunctionCore_Opt()
669 … CeedCallBackend(CeedQFunctionApply(qf, Q * block_size, impl->q_vecs_in, impl->q_vecs_out)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
676 CeedCallBackend(CeedVectorGetArrayRead(impl->q_vecs_out[0], CEED_MEM_HOST, &array)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
678 CeedCallBackend(CeedVectorRestoreArrayRead(impl->q_vecs_out[0], &array)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
685 CeedCallBackend(CeedVectorGetArray(impl->q_vecs_in[i], CEED_MEM_HOST, &array)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
687 CeedCallBackend(CeedVectorRestoreArray(impl->q_vecs_in[i], &array)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
693 if (!impl->is_identity_qf) { in CeedOperatorLinearAssembleQFunctionCore_Opt()
700 CeedCallBackend(CeedVectorTakeArray(impl->q_vecs_out[out], CEED_MEM_HOST, NULL)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
717 if (vec == CEED_VECTOR_ACTIVE) CeedCallBackend(CeedVectorSetValue(impl->q_vecs_out[out], 0.0)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
722 …d(CeedOperatorRestoreInputs_Opt(num_input_fields, qf_input_fields, op_input_fields, e_data, impl)); in CeedOperatorLinearAssembleQFunctionCore_Opt()
746 CeedOperator_Opt *impl; in CeedOperatorDestroy_Opt() local
748 CeedCallBackend(CeedOperatorGetData(op, &impl)); in CeedOperatorDestroy_Opt()
749 for (CeedInt i = 0; i < impl->num_inputs + impl->num_outputs; i++) { in CeedOperatorDestroy_Opt()
750 CeedCallBackend(CeedElemRestrictionDestroy(&impl->block_rstr[i])); in CeedOperatorDestroy_Opt()
751 CeedCallBackend(CeedVectorDestroy(&impl->e_vecs_full[i])); in CeedOperatorDestroy_Opt()
753 CeedCallBackend(CeedFree(&impl->block_rstr)); in CeedOperatorDestroy_Opt()
754 CeedCallBackend(CeedFree(&impl->e_vecs_full)); in CeedOperatorDestroy_Opt()
755 CeedCallBackend(CeedFree(&impl->input_states)); in CeedOperatorDestroy_Opt()
756 CeedCallBackend(CeedFree(&impl->skip_rstr_in)); in CeedOperatorDestroy_Opt()
757 CeedCallBackend(CeedFree(&impl->skip_rstr_out)); in CeedOperatorDestroy_Opt()
758 CeedCallBackend(CeedFree(&impl->apply_add_basis_out)); in CeedOperatorDestroy_Opt()
760 for (CeedInt i = 0; i < impl->num_inputs; i++) { in CeedOperatorDestroy_Opt()
761 CeedCallBackend(CeedVectorDestroy(&impl->e_vecs_in[i])); in CeedOperatorDestroy_Opt()
762 CeedCallBackend(CeedVectorDestroy(&impl->q_vecs_in[i])); in CeedOperatorDestroy_Opt()
764 CeedCallBackend(CeedFree(&impl->e_vecs_in)); in CeedOperatorDestroy_Opt()
765 CeedCallBackend(CeedFree(&impl->q_vecs_in)); in CeedOperatorDestroy_Opt()
767 for (CeedInt i = 0; i < impl->num_outputs; i++) { in CeedOperatorDestroy_Opt()
768 CeedCallBackend(CeedVectorDestroy(&impl->e_vecs_out[i])); in CeedOperatorDestroy_Opt()
769 CeedCallBackend(CeedVectorDestroy(&impl->q_vecs_out[i])); in CeedOperatorDestroy_Opt()
771 CeedCallBackend(CeedFree(&impl->e_vecs_out)); in CeedOperatorDestroy_Opt()
772 CeedCallBackend(CeedFree(&impl->q_vecs_out)); in CeedOperatorDestroy_Opt()
775 CeedCallBackend(CeedVectorDestroy(&impl->qf_l_vec)); in CeedOperatorDestroy_Opt()
776 CeedCallBackend(CeedElemRestrictionDestroy(&impl->qf_block_rstr)); in CeedOperatorDestroy_Opt()
778 CeedCallBackend(CeedFree(&impl)); in CeedOperatorDestroy_Opt()
788 CeedOperator_Opt *impl; in CeedOperatorCreate_Opt() local
794 CeedCallBackend(CeedCalloc(1, &impl)); in CeedOperatorCreate_Opt()
795 CeedCallBackend(CeedOperatorSetData(op, impl)); in CeedOperatorCreate_Opt()