1*b7e55d06SJames Wright // SPDX-FileCopyrightText: Copyright (c) 2017-2025, HONEE contributors. 2*b7e55d06SJames Wright // SPDX-License-Identifier: Apache-2.0 OR BSD-2-Clause 3*b7e55d06SJames Wright #pragma once 4*b7e55d06SJames Wright 5*b7e55d06SJames Wright #include <ceed.h> 6*b7e55d06SJames Wright #include <petsc.h> 7*b7e55d06SJames Wright 8*b7e55d06SJames Wright PetscErrorCode DMPlexCeedElemRestrictionCreate(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt height, PetscInt dm_field, 9*b7e55d06SJames Wright CeedElemRestriction *restriction); 10*b7e55d06SJames Wright PetscErrorCode DMPlexCeedElemRestrictionCoordinateCreate(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt height, 11*b7e55d06SJames Wright CeedElemRestriction *restriction); 12*b7e55d06SJames Wright PetscErrorCode DMPlexCeedElemRestrictionQDataCreate(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt height, 13*b7e55d06SJames Wright PetscInt q_data_size, CeedElemRestriction *restriction); 14*b7e55d06SJames Wright PetscErrorCode DMPlexCeedElemRestrictionCollocatedCreate(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt height, 15*b7e55d06SJames Wright PetscInt q_data_size, CeedElemRestriction *restriction); 16*b7e55d06SJames Wright 17*b7e55d06SJames Wright PetscErrorCode CreateBasisFromPlex(Ceed ceed, DM dm, DMLabel domain_label, CeedInt label_value, CeedInt height, CeedInt dm_field, CeedBasis *basis); 18*b7e55d06SJames Wright PetscErrorCode CreateCoordinateBasisFromPlex(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt height, CeedBasis *basis); 19*b7e55d06SJames Wright PetscErrorCode DMPlexCeedBasisCellToFaceCoordinateCreate(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt face, 20*b7e55d06SJames Wright CeedBasis *basis); 21*b7e55d06SJames Wright PetscErrorCode DMPlexCeedBasisCellToFaceCreate(Ceed ceed, DM dm, DMLabel domain_label, PetscInt label_value, PetscInt face, PetscInt dm_field, 22*b7e55d06SJames Wright CeedBasis *basis); 23*b7e55d06SJames Wright PetscErrorCode DMPlexCreateFaceLabel(DM dm, PetscInt dm_face, char **face_label_name); 24*b7e55d06SJames Wright PetscErrorCode DMLabelCreateGlobalValueArray(DM dm, DMLabel label, PetscInt *num_values, PetscInt **value_array); 25