Lines Matching +full:- +full:- +full:exit +full:- +full:code
1 // Copyright (c) 2017-2026, Lawrence Livermore National Security, LLC and other CEED contributors.
2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
4 // SPDX-License-Identifier: BSD-2-Clause
8 #include <ceed-impl.h>
20 /// ----------------------------------------------------------------------------
22 /// ----------------------------------------------------------------------------
33 @return An error code: 0 - success, otherwise - failure
47 if (qf->source_path) { in CeedQFunctionCreateFallback()
48 size_t path_len = strlen(qf->source_path), name_len = strlen(qf->kernel_name); in CeedQFunctionCreateFallback()
51 memcpy(source_path_with_name, qf->source_path, path_len); in CeedQFunctionCreateFallback()
53 memcpy(&source_path_with_name[path_len + 1], qf->kernel_name, name_len); in CeedQFunctionCreateFallback()
54 } else if (qf->user_source) { in CeedQFunctionCreateFallback()
55 CeedCall(CeedStringAllocCopy(qf->user_source, &source_path_with_name)); in CeedQFunctionCreateFallback()
101 @return An error code: 0 - success, otherwise - failure
111 if (op->op_fallback) return CEED_ERROR_SUCCESS; in CeedOperatorCreateFallback()
142 CeedCall(CeedQFunctionCreateFallback(ceed_fallback, op->qf, &qf_fallback)); in CeedOperatorCreateFallback()
143 CeedCall(CeedQFunctionCreateFallback(ceed_fallback, op->dqf, &dqf_fallback)); in CeedOperatorCreateFallback()
144 CeedCall(CeedQFunctionCreateFallback(ceed_fallback, op->dqfT, &dqfT_fallback)); in CeedOperatorCreateFallback()
187 CeedCall(CeedQFunctionAssemblyDataReferenceCopy(data, &op_fallback->qf_assembled)); in CeedOperatorCreateFallback()
194 CeedCall(CeedOperatorSetName(op_fallback, op->name)); in CeedOperatorCreateFallback()
196 // Note: No ref-counting here so we don't get caught in a reference loop. in CeedOperatorCreateFallback()
198 op->op_fallback = op_fallback; in CeedOperatorCreateFallback()
199 op_fallback->op_fallback_parent = op; in CeedOperatorCreateFallback()
208 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED…
212 @return An error code: 0 - success, otherwise - failure
393 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED…
397 @return An error code: 0 - success, otherwise - failure
415 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED…
419 @return An error code: 0 - success, otherwise - failure
441 @brief Build nonzero pattern for non-composite CeedOperator`.
450 @return An error code: 0 - success, otherwise - failure
561 …Note: If the value of `assembled` or `rstr` passed to this function are non-`NULL` , then it is as…
568 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQ…
570 @return An error code: 0 - success, otherwise - failure
584 if (op_fallback_parent && use_parent && op_fallback_parent->LinearAssembleQFunctionUpdate) { in CeedOperatorLinearAssembleQFunctionBuildOrUpdate_Core()
585 // -- Backend version for op fallback parent is faster, if it exists in CeedOperatorLinearAssembleQFunctionBuildOrUpdate_Core()
587 LinearAssembleQFunctionUpdate = op_fallback_parent->LinearAssembleQFunctionUpdate; in CeedOperatorLinearAssembleQFunctionBuildOrUpdate_Core()
589 } else if (op->LinearAssembleQFunctionUpdate) { in CeedOperatorLinearAssembleQFunctionBuildOrUpdate_Core()
590 // -- Backend version for op in CeedOperatorLinearAssembleQFunctionBuildOrUpdate_Core()
591 LinearAssembleQFunctionUpdate = op->LinearAssembleQFunctionUpdate; in CeedOperatorLinearAssembleQFunctionBuildOrUpdate_Core()
641 …Note: If the value of `assembled` or `rstr` passed to this function are non-`NULL` , then it is as…
647 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
649 @return An error code: 0 - success, otherwise - failure
659 @brief Assemble nonzero entries for non-composite `CeedOperator`.
667 @return An error code: 0 - success, otherwise - failure
677 // Early exit for empty operator in CeedOperatorAssembleSingle()
685 if (op->LinearAssembleSingle) { in CeedOperatorAssembleSingle()
687 CeedCall(op->LinearAssembleSingle(op, offset, values)); in CeedOperatorAssembleSingle()
792 // We store B_mat_in, B_mat_out, BTD, elem_mat in row-major order in CeedOperatorAssembleSingle()
841 const double orient = elem_orients[i] ? -1.0 : 1.0; in CeedOperatorAssembleSingle()
855 … (i > 0 ? elem_mat_b[(i - 1) * elem_size_in + j] * elem_curl_orients[3 * i - 1] : 0.0) + in CeedOperatorAssembleSingle()
856 …(i < elem_size_out - 1 ? elem_mat_b[(i + 1) * elem_size_in + j] * elem_curl_orients[3 * i + 3] : 0… in CeedOperatorAssembleSingle()
865 elem_mat[i * elem_size_in + j] *= elem_orients[j] ? -1.0 : 1.0; in CeedOperatorAssembleSingle()
876 … (j > 0 ? elem_mat_b[i * elem_size_in + j - 1] * elem_curl_orients[3 * j - 1] : 0.0) + in CeedOperatorAssembleSingle()
877 …(j < elem_size_in - 1 ? elem_mat_b[i * elem_size_in + j + 1] * elem_curl_orients[3 * j + 3] : 0.0); in CeedOperatorAssembleSingle()
924 @return An error code: 0 - success, otherwise - failure
965 @return An error code: 0 - success, otherwise - failure
996 …@brief Common code for creating a multigrid coarse `CeedOperator` and level transfer `CeedOperator…
999 …@param[in] p_mult_fine L-vector multiplicity in parallel gather/scatter, or `NULL` if not creati…
1007 @return An error code: 0 - success, otherwise - failure
1036 … CeedCall(CeedOperatorCreateAtPoints(ceed, op_fine->qf, op_fine->dqf, op_fine->dqfT, op_coarse)); in CeedOperatorMultigridLevelCreateSingle_Core()
1042 CeedCall(CeedOperatorCreate(ceed, op_fine->qf, op_fine->dqf, op_fine->dqfT, op_coarse)); in CeedOperatorMultigridLevelCreateSingle_Core()
1046 // -- Clone input fields in CeedOperatorMultigridLevelCreateSingle_Core()
1069 // -- Clone output fields in CeedOperatorMultigridLevelCreateSingle_Core()
1093 // -- Clone QFunctionAssemblyData in CeedOperatorMultigridLevelCreateSingle_Core()
1098 CeedCall(CeedQFunctionAssemblyDataReferenceCopy(fine_data, &(*op_coarse)->qf_assembled)); in CeedOperatorMultigridLevelCreateSingle_Core()
1115 // Create multiplicity multi-component l-vector in CeedOperatorMultigridLevelCreateSingle_Core()
1128 …r_mult = num_comp > 1 && (dim < 3 || num_comp - 1 > (3 * (pow(p, dim - 1) - pow(p, dim - 2)) + 1) … in CeedOperatorMultigridLevelCreateSingle_Core()
1132 // Create multiplicity single component e-vector in CeedOperatorMultigridLevelCreateSingle_Core()
1152 // Clean-up in CeedOperatorMultigridLevelCreateSingle_Core()
1162 // Clean-up in CeedOperatorMultigridLevelCreateSingle_Core()
1169 bool has_name = op_fine->name; in CeedOperatorMultigridLevelCreateSingle_Core()
1170 size_t name_len = op_fine->name ? strlen(op_fine->name) : 0; in CeedOperatorMultigridLevelCreateSingle_Core()
1171 CeedCall(CeedOperatorSetName(*op_coarse, op_fine->name)); in CeedOperatorMultigridLevelCreateSingle_Core()
1175 "Prolongation or restriction operator creation requires coarse-to-fine basis"); in CeedOperatorMultigridLevelCreateSingle_Core()
1207 …sprintf(restriction_name, "restriction%s%s", has_name ? " for " : "", has_name ? op_fine->name : "… in CeedOperatorMultigridLevelCreateSingle_Core()
1245 …sprintf(prolongation_name, "prolongation%s%s", has_name ? " for " : "", has_name ? op_fine->name :… in CeedOperatorMultigridLevelCreateSingle_Core()
1280 @return An error code: 0 - success, otherwise - failure
1294 // -- Laplacian in CeedBuildMassLaplace()
1303 CeedScalar perturbation = dim > 2 ? 1e-6 : 1e-4; in CeedBuildMassLaplace()
1311 /// ----------------------------------------------------------------------------
1313 /// ----------------------------------------------------------------------------
1357 @return An error code: 0 - success, otherwise - failure
1399 @return An error code: 0 - success, otherwise - failure
1404 if (!op->qf_assembled) { in CeedOperatorGetQFunctionAssemblyData()
1408 op->qf_assembled = data; in CeedOperatorGetQFunctionAssemblyData()
1410 *data = op->qf_assembled; in CeedOperatorGetQFunctionAssemblyData()
1420 @return An error code: 0 - success, otherwise - failure
1426 (*data)->ref_count = 1; in CeedQFunctionAssemblyDataCreate()
1427 CeedCall(CeedReferenceCopy(ceed, &(*data)->ceed)); in CeedQFunctionAssemblyDataCreate()
1436 @return An error code: 0 - success, otherwise - failure
1441 data->ref_count++; in CeedQFunctionAssemblyDataReference()
1446 @brief Set re-use of `CeedQFunctionAssemblyData`
1449 @param[in] reuse_data Boolean flag indicating data re-use
1451 @return An error code: 0 - success, otherwise - failure
1456 data->reuse_data = reuse_data; in CeedQFunctionAssemblyDataSetReuse()
1457 data->needs_data_update = true; in CeedQFunctionAssemblyDataSetReuse()
1467 @return An error code: 0 - success, otherwise - failure
1472 data->needs_data_update = needs_data_update; in CeedQFunctionAssemblyDataSetUpdateNeeded()
1480 @param[out] is_update_needed Boolean flag indicating if re-assembly is required
1482 @return An error code: 0 - success, otherwise - failure
1487 *is_update_needed = !data->reuse_data || data->needs_data_update; in CeedQFunctionAssemblyDataIsUpdateNeeded()
1496 …Note: If the value of ` *data_copy` passed to this function is non-`NULL` , then it is assumed tha…
1502 @return An error code: 0 - success, otherwise - failure
1519 @return An error code: 0 - success, otherwise - failure
1524 *is_setup = data->is_setup; in CeedQFunctionAssemblyDataIsSetup()
1535 @return An error code: 0 - success, otherwise - failure
1540 CeedCall(CeedVectorReferenceCopy(vec, &data->vec)); in CeedQFunctionAssemblyDataSetObjects()
1541 CeedCall(CeedElemRestrictionReferenceCopy(rstr, &data->rstr)); in CeedQFunctionAssemblyDataSetObjects()
1543 data->is_setup = true; in CeedQFunctionAssemblyDataSetObjects()
1554 @return An error code: 0 - success, otherwise - failure
1559 …CeedCheck(data->is_setup, data->ceed, CEED_ERROR_INCOMPLETE, "Internal objects not set; must call … in CeedQFunctionAssemblyDataGetObjects()
1561 CeedCall(CeedVectorReferenceCopy(data->vec, vec)); in CeedQFunctionAssemblyDataGetObjects()
1562 CeedCall(CeedElemRestrictionReferenceCopy(data->rstr, rstr)); in CeedQFunctionAssemblyDataGetObjects()
1571 @return An error code: 0 - success, otherwise - failure
1576 if (!*data || --(*data)->ref_count > 0) { in CeedQFunctionAssemblyDataDestroy()
1580 CeedCall(CeedDestroy(&(*data)->ceed)); in CeedQFunctionAssemblyDataDestroy()
1581 CeedCall(CeedVectorDestroy(&(*data)->vec)); in CeedQFunctionAssemblyDataDestroy()
1582 CeedCall(CeedElemRestrictionDestroy(&(*data)->rstr)); in CeedQFunctionAssemblyDataDestroy()
1594 @return An error code: 0 - success, otherwise - failure
1599 if (!op->op_assembled) { in CeedOperatorGetOperatorAssemblyData()
1603 op->op_assembled = data; in CeedOperatorGetOperatorAssemblyData()
1605 *data = op->op_assembled; in CeedOperatorGetOperatorAssemblyData()
1623 @return An error code: 0 - success, otherwise - failure
1638 …CEED_ERROR_INCOMPATIBLE, "Can only create CeedOperator assembly data for non-composite operators."… in CeedOperatorAssemblyDataCreate()
1642 CeedCall(CeedReferenceCopy(ceed, &(*data)->ceed)); in CeedOperatorAssemblyDataCreate()
1655 CeedInt index = -1, num_comp, q_comp; in CeedOperatorAssemblyDataCreate()
1664 if ((*data)->active_bases_in[i] == basis_in) index = i; in CeedOperatorAssemblyDataCreate()
1666 if (index == -1) { in CeedOperatorAssemblyDataCreate()
1670 CeedCall(CeedRealloc(num_active_bases_in + 1, &(*data)->active_bases_in)); in CeedOperatorAssemblyDataCreate()
1671 (*data)->active_bases_in[num_active_bases_in] = NULL; in CeedOperatorAssemblyDataCreate()
1672 CeedCall(CeedBasisReferenceCopy(basis_in, &(*data)->active_bases_in[num_active_bases_in])); in CeedOperatorAssemblyDataCreate()
1673 CeedCall(CeedRealloc(num_active_bases_in + 1, &(*data)->active_elem_rstrs_in)); in CeedOperatorAssemblyDataCreate()
1674 (*data)->active_elem_rstrs_in[num_active_bases_in] = NULL; in CeedOperatorAssemblyDataCreate()
1676 …CeedCall(CeedElemRestrictionReferenceCopy(elem_rstr_in, &(*data)->active_elem_rstrs_in[num_active_… in CeedOperatorAssemblyDataCreate()
1684 CeedCall(CeedRealloc(num_active_bases_in + 1, &(*data)->assembled_bases_in)); in CeedOperatorAssemblyDataCreate()
1685 (*data)->assembled_bases_in[index] = NULL; in CeedOperatorAssemblyDataCreate()
1713 CeedInt index = -1, num_comp, q_comp; in CeedOperatorAssemblyDataCreate()
1722 if ((*data)->active_bases_out[i] == basis_out) index = i; in CeedOperatorAssemblyDataCreate()
1724 if (index == -1) { in CeedOperatorAssemblyDataCreate()
1728 CeedCall(CeedRealloc(num_active_bases_out + 1, &(*data)->active_bases_out)); in CeedOperatorAssemblyDataCreate()
1729 (*data)->active_bases_out[num_active_bases_out] = NULL; in CeedOperatorAssemblyDataCreate()
1730 … CeedCall(CeedBasisReferenceCopy(basis_out, &(*data)->active_bases_out[num_active_bases_out])); in CeedOperatorAssemblyDataCreate()
1731 CeedCall(CeedRealloc(num_active_bases_out + 1, &(*data)->active_elem_rstrs_out)); in CeedOperatorAssemblyDataCreate()
1732 (*data)->active_elem_rstrs_out[num_active_bases_out] = NULL; in CeedOperatorAssemblyDataCreate()
1734 …CeedCall(CeedElemRestrictionReferenceCopy(elem_rstr_out, &(*data)->active_elem_rstrs_out[num_activ… in CeedOperatorAssemblyDataCreate()
1742 CeedCall(CeedRealloc(num_active_bases_out + 1, &(*data)->assembled_bases_out)); in CeedOperatorAssemblyDataCreate()
1743 (*data)->assembled_bases_out[index] = NULL; in CeedOperatorAssemblyDataCreate()
1762 (*data)->num_active_bases_in = num_active_bases_in; in CeedOperatorAssemblyDataCreate()
1763 (*data)->num_eval_modes_in = num_eval_modes_in; in CeedOperatorAssemblyDataCreate()
1764 (*data)->eval_modes_in = eval_modes_in; in CeedOperatorAssemblyDataCreate()
1765 (*data)->eval_mode_offsets_in = eval_mode_offsets_in; in CeedOperatorAssemblyDataCreate()
1766 (*data)->num_active_bases_out = num_active_bases_out; in CeedOperatorAssemblyDataCreate()
1767 (*data)->num_eval_modes_out = num_eval_modes_out; in CeedOperatorAssemblyDataCreate()
1768 (*data)->eval_modes_out = eval_modes_out; in CeedOperatorAssemblyDataCreate()
1769 (*data)->eval_mode_offsets_out = eval_mode_offsets_out; in CeedOperatorAssemblyDataCreate()
1770 (*data)->num_output_components = offset; in CeedOperatorAssemblyDataCreate()
1791 @return An error code: 0 - success, otherwise - failure
1799 if (num_active_bases_in) *num_active_bases_in = data->num_active_bases_in; in CeedOperatorAssemblyDataGetEvalModes()
1800 if (num_eval_modes_in) *num_eval_modes_in = data->num_eval_modes_in; in CeedOperatorAssemblyDataGetEvalModes()
1801 if (eval_modes_in) *eval_modes_in = (const CeedEvalMode **)data->eval_modes_in; in CeedOperatorAssemblyDataGetEvalModes()
1802 if (eval_mode_offsets_in) *eval_mode_offsets_in = data->eval_mode_offsets_in; in CeedOperatorAssemblyDataGetEvalModes()
1803 if (num_active_bases_out) *num_active_bases_out = data->num_active_bases_out; in CeedOperatorAssemblyDataGetEvalModes()
1804 if (num_eval_modes_out) *num_eval_modes_out = data->num_eval_modes_out; in CeedOperatorAssemblyDataGetEvalModes()
1805 if (eval_modes_out) *eval_modes_out = (const CeedEvalMode **)data->eval_modes_out; in CeedOperatorAssemblyDataGetEvalModes()
1806 if (eval_mode_offsets_out) *eval_mode_offsets_out = data->eval_mode_offsets_out; in CeedOperatorAssemblyDataGetEvalModes()
1807 if (num_output_components) *num_output_components = data->num_output_components; in CeedOperatorAssemblyDataGetEvalModes()
1824 @return An error code: 0 - success, otherwise - failure
1832 if (assembled_bases_in && !data->assembled_bases_in[0]) { in CeedOperatorAssemblyDataGetBases()
1835 …if (data->active_bases_in[0] == CEED_BASIS_NONE) CeedCall(CeedElemRestrictionGetElementSize(data->… in CeedOperatorAssemblyDataGetBases()
1836 else CeedCall(CeedBasisGetNumQuadraturePoints(data->active_bases_in[0], &num_qpts)); in CeedOperatorAssemblyDataGetBases()
1837 for (CeedInt b = 0; b < data->num_active_bases_in; b++) { in CeedOperatorAssemblyDataGetBases()
1842 CeedCall(CeedElemRestrictionGetElementSize(data->active_elem_rstrs_in[b], &num_nodes)); in CeedOperatorAssemblyDataGetBases()
1843 CeedCall(CeedCalloc(num_qpts * num_nodes * data->num_eval_modes_in[b], &B_in)); in CeedOperatorAssemblyDataGetBases()
1845 for (CeedInt i = 0; i < data->num_eval_modes_in[b]; i++) { in CeedOperatorAssemblyDataGetBases()
1846 has_eval_none = has_eval_none || (data->eval_modes_in[b][i] == CEED_EVAL_NONE); in CeedOperatorAssemblyDataGetBases()
1860 for (CeedInt e_in = 0; e_in < data->num_eval_modes_in[b]; e_in++) { in CeedOperatorAssemblyDataGetBases()
1861 const CeedInt qq = data->num_eval_modes_in[b] * q; in CeedOperatorAssemblyDataGetBases()
1864 …CeedCall(CeedOperatorGetBasisPointer(data->active_bases_in[b], data->eval_modes_in[b][e_in], ident… in CeedOperatorAssemblyDataGetBases()
1865 …CeedCall(CeedBasisGetNumQuadratureComponents(data->active_bases_in[b], data->eval_modes_in[b][e_in… in CeedOperatorAssemblyDataGetBases()
1867 if (e_in == 0 || data->eval_modes_in[b][e_in] != eval_mode_in_prev) d_in = 0; in CeedOperatorAssemblyDataGetBases()
1870 eval_mode_in_prev = data->eval_modes_in[b][e_in]; in CeedOperatorAssemblyDataGetBases()
1876 data->assembled_bases_in[b] = B_in; in CeedOperatorAssemblyDataGetBases()
1880 if (assembled_bases_out && !data->assembled_bases_out[0]) { in CeedOperatorAssemblyDataGetBases()
1883 …if (data->active_bases_out[0] == CEED_BASIS_NONE) CeedCall(CeedElemRestrictionGetElementSize(data-… in CeedOperatorAssemblyDataGetBases()
1884 else CeedCall(CeedBasisGetNumQuadraturePoints(data->active_bases_out[0], &num_qpts)); in CeedOperatorAssemblyDataGetBases()
1885 for (CeedInt b = 0; b < data->num_active_bases_out; b++) { in CeedOperatorAssemblyDataGetBases()
1890 CeedCall(CeedElemRestrictionGetElementSize(data->active_elem_rstrs_out[b], &num_nodes)); in CeedOperatorAssemblyDataGetBases()
1891 CeedCall(CeedCalloc(num_qpts * num_nodes * data->num_eval_modes_out[b], &B_out)); in CeedOperatorAssemblyDataGetBases()
1893 for (CeedInt i = 0; i < data->num_eval_modes_out[b]; i++) { in CeedOperatorAssemblyDataGetBases()
1894 has_eval_none = has_eval_none || (data->eval_modes_out[b][i] == CEED_EVAL_NONE); in CeedOperatorAssemblyDataGetBases()
1908 for (CeedInt e_out = 0; e_out < data->num_eval_modes_out[b]; e_out++) { in CeedOperatorAssemblyDataGetBases()
1909 const CeedInt qq = data->num_eval_modes_out[b] * q; in CeedOperatorAssemblyDataGetBases()
1912 …CeedCall(CeedOperatorGetBasisPointer(data->active_bases_out[b], data->eval_modes_out[b][e_out], id… in CeedOperatorAssemblyDataGetBases()
1913 …CeedCall(CeedBasisGetNumQuadratureComponents(data->active_bases_out[b], data->eval_modes_out[b][e_… in CeedOperatorAssemblyDataGetBases()
1915 if (e_out == 0 || data->eval_modes_out[b][e_out] != eval_mode_out_prev) d_out = 0; in CeedOperatorAssemblyDataGetBases()
1918 eval_mode_out_prev = data->eval_modes_out[b][e_out]; in CeedOperatorAssemblyDataGetBases()
1924 data->assembled_bases_out[b] = B_out; in CeedOperatorAssemblyDataGetBases()
1929 if (num_active_bases_in) *num_active_bases_in = data->num_active_bases_in; in CeedOperatorAssemblyDataGetBases()
1930 if (active_bases_in) *active_bases_in = data->active_bases_in; in CeedOperatorAssemblyDataGetBases()
1931 if (assembled_bases_in) *assembled_bases_in = (const CeedScalar **)data->assembled_bases_in; in CeedOperatorAssemblyDataGetBases()
1932 if (num_active_bases_out) *num_active_bases_out = data->num_active_bases_out; in CeedOperatorAssemblyDataGetBases()
1933 if (active_bases_out) *active_bases_out = data->active_bases_out; in CeedOperatorAssemblyDataGetBases()
1934 if (assembled_bases_out) *assembled_bases_out = (const CeedScalar **)data->assembled_bases_out; in CeedOperatorAssemblyDataGetBases()
1949 @return An error code: 0 - success, otherwise - failure
1956 if (num_active_elem_rstrs_in) *num_active_elem_rstrs_in = data->num_active_bases_in; in CeedOperatorAssemblyDataGetElemRestrictions()
1957 if (active_elem_rstrs_in) *active_elem_rstrs_in = data->active_elem_rstrs_in; in CeedOperatorAssemblyDataGetElemRestrictions()
1958 if (num_active_elem_rstrs_out) *num_active_elem_rstrs_out = data->num_active_bases_out; in CeedOperatorAssemblyDataGetElemRestrictions()
1959 if (active_elem_rstrs_out) *active_elem_rstrs_out = data->active_elem_rstrs_out; in CeedOperatorAssemblyDataGetElemRestrictions()
1968 @return An error code: 0 - success, otherwise - failure
1977 CeedCall(CeedDestroy(&(*data)->ceed)); in CeedOperatorAssemblyDataDestroy()
1978 for (CeedInt b = 0; b < (*data)->num_active_bases_in; b++) { in CeedOperatorAssemblyDataDestroy()
1979 CeedCall(CeedBasisDestroy(&(*data)->active_bases_in[b])); in CeedOperatorAssemblyDataDestroy()
1980 CeedCall(CeedElemRestrictionDestroy(&(*data)->active_elem_rstrs_in[b])); in CeedOperatorAssemblyDataDestroy()
1981 CeedCall(CeedFree(&(*data)->eval_modes_in[b])); in CeedOperatorAssemblyDataDestroy()
1982 CeedCall(CeedFree(&(*data)->eval_mode_offsets_in[b])); in CeedOperatorAssemblyDataDestroy()
1983 CeedCall(CeedFree(&(*data)->assembled_bases_in[b])); in CeedOperatorAssemblyDataDestroy()
1985 for (CeedInt b = 0; b < (*data)->num_active_bases_out; b++) { in CeedOperatorAssemblyDataDestroy()
1986 CeedCall(CeedBasisDestroy(&(*data)->active_bases_out[b])); in CeedOperatorAssemblyDataDestroy()
1987 CeedCall(CeedElemRestrictionDestroy(&(*data)->active_elem_rstrs_out[b])); in CeedOperatorAssemblyDataDestroy()
1988 CeedCall(CeedFree(&(*data)->eval_modes_out[b])); in CeedOperatorAssemblyDataDestroy()
1989 CeedCall(CeedFree(&(*data)->eval_mode_offsets_out[b])); in CeedOperatorAssemblyDataDestroy()
1990 CeedCall(CeedFree(&(*data)->assembled_bases_out[b])); in CeedOperatorAssemblyDataDestroy()
1992 CeedCall(CeedFree(&(*data)->active_bases_in)); in CeedOperatorAssemblyDataDestroy()
1993 CeedCall(CeedFree(&(*data)->active_bases_out)); in CeedOperatorAssemblyDataDestroy()
1994 CeedCall(CeedFree(&(*data)->active_elem_rstrs_in)); in CeedOperatorAssemblyDataDestroy()
1995 CeedCall(CeedFree(&(*data)->active_elem_rstrs_out)); in CeedOperatorAssemblyDataDestroy()
1996 CeedCall(CeedFree(&(*data)->num_eval_modes_in)); in CeedOperatorAssemblyDataDestroy()
1997 CeedCall(CeedFree(&(*data)->num_eval_modes_out)); in CeedOperatorAssemblyDataDestroy()
1998 CeedCall(CeedFree(&(*data)->eval_modes_in)); in CeedOperatorAssemblyDataDestroy()
1999 CeedCall(CeedFree(&(*data)->eval_modes_out)); in CeedOperatorAssemblyDataDestroy()
2000 CeedCall(CeedFree(&(*data)->eval_mode_offsets_in)); in CeedOperatorAssemblyDataDestroy()
2001 CeedCall(CeedFree(&(*data)->eval_mode_offsets_out)); in CeedOperatorAssemblyDataDestroy()
2002 CeedCall(CeedFree(&(*data)->assembled_bases_in)); in CeedOperatorAssemblyDataDestroy()
2003 CeedCall(CeedFree(&(*data)->assembled_bases_out)); in CeedOperatorAssemblyDataDestroy()
2015 @return An error code: 0 - success, otherwise - failure
2021 if (!op->op_fallback) CeedCall(CeedOperatorCreateFallback(op)); in CeedOperatorGetFallback()
2022 if (op->op_fallback) { in CeedOperatorGetFallback()
2037 CeedDebug256(ceed, CEED_DEBUG_COLOR_SUCCESS, "---------- CeedOperator Fallback ----------\n"); in CeedOperatorGetFallback()
2039 resource, op, resource_fallback, op->op_fallback, op_name); in CeedOperatorGetFallback()
2044 *op_fallback = op->op_fallback; in CeedOperatorGetFallback()
2054 @return An error code: 0 - success, otherwise - failure
2059 *parent = op->op_fallback_parent ? op->op_fallback_parent : NULL; in CeedOperatorGetFallbackParent()
2069 @return An error code: 0 - success, otherwise - failure
2075 …if (op->op_fallback_parent) CeedCall(CeedReferenceCopy(CeedOperatorReturnCeed(op->op_fallback_pare… in CeedOperatorGetFallbackParentCeed()
2082 /// ----------------------------------------------------------------------------
2084 /// ----------------------------------------------------------------------------
2092 …, num_input_fields, num_output_fields, num_quad_points]` and contains column-major matrices repres…
2102 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
2104 @return An error code: 0 - success, otherwise - failure
2111 if (op->LinearAssembleQFunction) { in CeedOperatorLinearAssembleQFunction()
2113 CeedCall(op->LinearAssembleQFunction(op, assembled, rstr, request)); in CeedOperatorLinearAssembleQFunction()
2133 …Note: If the value of `assembled` or `rstr` passed to this function are non-`NULL` , then it is as…
2139 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
2141 @return An error code: 0 - success, otherwise - failure
2154 …Note: Currently only non-composite `CeedOperator` with a single field and composite `CeedOperator`…
2160 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
2162 @return An error code: 0 - success, otherwise - failure
2176 // Early exit for empty operator in CeedOperatorLinearAssembleDiagonal()
2184 if (op->LinearAssembleDiagonal) { in CeedOperatorLinearAssembleDiagonal()
2186 CeedCall(op->LinearAssembleDiagonal(op, assembled, request)); in CeedOperatorLinearAssembleDiagonal()
2188 } else if (op->LinearAssembleAddDiagonal) { in CeedOperatorLinearAssembleDiagonal()
2191 CeedCall(op->LinearAssembleAddDiagonal(op, assembled, request)); in CeedOperatorLinearAssembleDiagonal()
2220 …Note: Currently only non-composite `CeedOperator` with a single field and composite `CeedOperator`…
2226 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
2228 @return An error code: 0 - success, otherwise - failure
2242 // Early exit for empty operator in CeedOperatorLinearAssembleAddDiagonal()
2250 if (op->LinearAssembleAddDiagonal) { in CeedOperatorLinearAssembleAddDiagonal()
2252 CeedCall(op->LinearAssembleAddDiagonal(op, assembled, request)); in CeedOperatorLinearAssembleAddDiagonal()
2275 @brief Fully assemble the point-block diagonal pattern of a linear `CeedOperator`.
2283 This will generally be slow unless your operator is low-order.
2383 …Note: Currently only non-composite `CeedOperator` with a single field and composite `CeedOperator`…
2388 …tor` to store assembled `CeedOperator` point block diagonal, provided in row-major form with an `n…
2391 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
2393 @return An error code: 0 - success, otherwise - failure
2407 // Early exit for empty operator in CeedOperatorLinearAssemblePointBlockDiagonal()
2415 if (op->LinearAssemblePointBlockDiagonal) { in CeedOperatorLinearAssemblePointBlockDiagonal()
2417 CeedCall(op->LinearAssemblePointBlockDiagonal(op, assembled, request)); in CeedOperatorLinearAssemblePointBlockDiagonal()
2419 } else if (op->LinearAssembleAddPointBlockDiagonal) { in CeedOperatorLinearAssemblePointBlockDiagonal()
2446 …Note: Currently only non-composite `CeedOperator` with a single field and composite `CeedOperator`…
2451 …ector` to store assembled CeedOperator point block diagonal, provided in row-major form with an `n…
2454 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQU…
2456 @return An error code: 0 - success, otherwise - failure
2470 // Early exit for empty operator in CeedOperatorLinearAssembleAddPointBlockDiagonal()
2478 if (op->LinearAssembleAddPointBlockDiagonal) { in CeedOperatorLinearAssembleAddPointBlockDiagonal()
2480 CeedCall(op->LinearAssembleAddPointBlockDiagonal(op, assembled, request)); in CeedOperatorLinearAssembleAddPointBlockDiagonal()
2511 This will generally be slow unless your operator is low-order.
2531 if (op->LinearAssembleSymbolic) { in CeedOperatorLinearAssembleSymbolic()
2533 CeedCall(op->LinearAssembleSymbolic(op, num_entries, rows, cols)); in CeedOperatorLinearAssembleSymbolic()
2578 This will generally be slow unless your operator is low-order.
2596 // Early exit for empty operator in CeedOperatorLinearAssemble()
2604 if (op->LinearAssemble) { in CeedOperatorLinearAssemble()
2606 CeedCall(op->LinearAssemble(op, values)); in CeedOperatorLinearAssemble()
2619 } else if (op->LinearAssembleSingle) { in CeedOperatorLinearAssemble()
2635 // Default to interface version if non-composite and no fallback in CeedOperatorLinearAssemble()
2642 @brief Get the multiplicity of nodes across sub-operators in a composite `CeedOperator`.
2647 @param[in] num_skip_indices Number of sub-operators to skip
2648 @param[in] skip_indices Array of indices of sub-operators to skip
2651 @return An error code: 0 - success, otherwise - failure
2687 // -- Check for suboperator to skip in CeedOperatorCompositeGetMultiplicity()
2692 // -- Sub operator multiplicity in CeedOperatorCompositeGetMultiplicity()
2701 // ---- Flag every node present in the current suboperator in CeedOperatorCompositeGetMultiplicity()
2721 …@param[in] p_mult_fine L-vector multiplicity in parallel gather/scatter, or `NULL` if not creati…
2728 @return An error code: 0 - success, otherwise - failure
2747 // Core code in CeedOperatorMultigridLevelCreate()
2759 …@param[in] p_mult_fine L-vector multiplicity in parallel gather/scatter, or `NULL` if not creat…
2767 @return An error code: 0 - success, otherwise - failure
2797 … "Prolongation or restriction operator creation requires coarse-to-fine interpolation matrix"); in CeedOperatorMultigridLevelCreateTensorH1()
2813 // Core code in CeedOperatorMultigridLevelCreateTensorH1()
2821 …dOperator` and level transfer `CeedOperator` for a `CeedOperator` with a non-tensor basis for the …
2826 …@param[in] p_mult_fine L-vector multiplicity in parallel gather/scatter, or `NULL` if not creat…
2834 @return An error code: 0 - success, otherwise - failure
2862 … "Prolongation or restriction operator creation requires coarse-to-fine interpolation matrix"); in CeedOperatorMultigridLevelCreateH1()
2878 // Core code in CeedOperatorMultigridLevelCreateH1()
2891 The `CeedOperator` must be linear and non-composite.
2898 …@param[in] request Address of @ref CeedRequest for non-blocking completion, else @ref CEED_REQUES…
2900 @return An error code: 0 - success, otherwise - failure
2920 if (op->CreateFDMElementInverse) { in CeedOperatorCreateFDMElementInverse()
2922 CeedCall(op->CreateFDMElementInverse(op, fdm_inv, request)); in CeedOperatorCreateFDMElementInverse()
2976 // -- Build matrices in CeedOperatorCreateFDMElementInverse()
2982 // -- Diagonalize in CeedOperatorCreateFDMElementInverse()
3069 // -- Basis in CeedOperatorCreateFDMElementInverse()
3084 // -- Restriction in CeedOperatorCreateFDMElementInverse()
3091 // -- QFunction in CeedOperatorCreateFDMElementInverse()
3098 // -- QFunction context in CeedOperatorCreateFDMElementInverse()
3110 // -- Operator in CeedOperatorCreateFDMElementInverse()