/usr/lib/petscdir/3.4.2/include/petsc-private/meshimpl.h is in libpetsc3.4.2-dev 3.4.2.dfsg1-8.1+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #if !defined(_MESHIMPL_H)
#define _MESHIMPL_H
#include <petscmat.h> /*I "petscmat.h" I*/
#include <petscdmmesh.h> /*I "petscdmmesh.h" I*/
#include "petsc-private/dmimpl.h"
typedef struct Sieve_Label *SieveLabel;
struct Sieve_Label {
char *name; /* Label name */
PetscInt numStrata; /* Number of integer values */
PetscInt *stratumValues; /* Value of each stratum */
PetscInt *stratumOffsets; /* Offset of each stratum */
PetscInt *stratumSizes; /* Size of each stratum */
PetscInt *points; /* Points for each stratum, sorted after setup */
SieveLabel next; /* Linked list */
};
typedef struct {
ALE::Obj<PETSC_MESH_TYPE> m;
PetscSection defaultSection;
VecScatter globalScatter;
DMMeshLocalFunction1 lf;
DMMeshLocalJacobian1 lj;
/*-------- NEW_MESH_IMPL -------------*/
PetscBool useNewImpl;
PetscInt dim; /* Topological mesh dimension */
PetscSF sf; /* SF for parallel point overlap */
/* Sieve */
PetscSection coneSection; /* Layout of cones (inedges for DAG) */
PetscInt maxConeSize; /* Cached for fast lookup */
PetscInt *cones; /* Cone for each point */
PetscInt *coneOrientations; /* TODO */
PetscSection supportSection; /* Layout of cones (inedges for DAG) */
PetscInt maxSupportSize; /* Cached for fast lookup */
PetscInt *supports; /* Cone for each point */
PetscSection coordSection; /* Layout for coordinates */
Vec coordinates; /* Coordinate values */
PetscInt *meetTmpA, *meetTmpB; /* Work space for meet operation */
PetscInt *joinTmpA, *joinTmpB; /* Work space for join operation */
PetscInt *closureTmpA, *closureTmpB; /* Work space for closure operation */
/* Labels */
SieveLabel labels; /* Linked list of labels */
} DM_Mesh;
typedef struct {
ALE::Obj<ALE::CartesianMesh> m;
} DM_Cartesian;
typedef struct _SectionRealOps *SectionRealOps;
struct _SectionRealOps {
PetscErrorCode (*view)(SectionReal,PetscViewer);
PetscErrorCode (*restrictClosure)(SectionReal,int,PetscScalar**);
PetscErrorCode (*update)(SectionReal,int,const PetscScalar*,InsertMode);
};
struct _p_SectionReal {
PETSCHEADER(struct _SectionRealOps);
ALE::Obj<PETSC_MESH_TYPE::real_section_type> s;
ALE::Obj<PETSC_MESH_TYPE> b;
};
PETSC_EXTERN PetscClassId SECTIONREAL_CLASSID;
PETSC_EXTERN PetscLogEvent SectionReal_View;
typedef struct _SectionIntOps *SectionIntOps;
struct _SectionIntOps {
PetscErrorCode (*view)(SectionInt,PetscViewer);
PetscErrorCode (*restrictClosure)(SectionInt,int,PetscInt**);
PetscErrorCode (*update)(SectionInt,int,const PetscInt*,InsertMode);
};
struct _p_SectionInt {
PETSCHEADER(struct _SectionIntOps);
ALE::Obj<PETSC_MESH_TYPE::int_section_type> s;
ALE::Obj<PETSC_MESH_TYPE> b;
};
PETSC_EXTERN PetscClassId SECTIONINT_CLASSID;
PETSC_EXTERN PetscLogEvent SectionInt_View;
#endif /* _MESHIMPL_H */
|