xref: /honee/include/dm-utils.h (revision b7e55d06bb6fafd71b3f7697469004ca9a584781)
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