1a4963045SJacob Faibussowitsch #pragma once 2dbe77d9eSMatthew G. Knepley 3*ce78bad3SBarry Smith /* MANSEC = DM */ 4ac09b921SBarry Smith /* SUBMANSEC = FE */ 5ac09b921SBarry Smith 6dbe77d9eSMatthew G. Knepley /*S 7dbe77d9eSMatthew G. Knepley PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element 8dbe77d9eSMatthew G. Knepley 9a4ce7ad1SMatthew G. Knepley Level: beginner 10dbe77d9eSMatthew G. Knepley 11b24fb147SBarry Smith .seealso: `PetscFECreate()`, `PetscSpace`, `PetscDualSpace`, `PetscSpaceCreate()`, `PetscDualSpaceCreate()`, `PetscFESetType()`, `PetscFEType` 12dbe77d9eSMatthew G. Knepley S*/ 13dbe77d9eSMatthew G. Knepley typedef struct _p_PetscFE *PetscFE; 14dbe77d9eSMatthew G. Knepley 15b7e05686SMatthew G. Knepley /*MC 169c3cf19fSMatthew G. Knepley PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix 17b7e05686SMatthew G. Knepley 18a4ce7ad1SMatthew G. Knepley Level: beginner 19b7e05686SMatthew G. Knepley 20db781477SPatrick Sanan .seealso: `PetscFEIntegrateJacobian()` 21b7e05686SMatthew G. Knepley M*/ 229371c9d4SSatish Balay typedef enum { 239371c9d4SSatish Balay PETSCFE_JACOBIAN, 249371c9d4SSatish Balay PETSCFE_JACOBIAN_PRE, 259371c9d4SSatish Balay PETSCFE_JACOBIAN_DYN 269371c9d4SSatish Balay } PetscFEJacobianType; 2741fc7085SMatthew G. Knepley 2841fc7085SMatthew G. Knepley /*E 2941fc7085SMatthew G. Knepley PetscFEGeomMode - Describes the type of geometry being encoded. 3041fc7085SMatthew G. Knepley 3141fc7085SMatthew G. Knepley Values: 3241fc7085SMatthew G. Knepley + `PETSC_FEGEOM_BASIC` - These are normal dim-cells, with dim == dE, and only bulk data is stored. 3341fc7085SMatthew G. Knepley . `PETSC_FEGEOM_EMBEDDED` - These are dim-cells embedded in a higher dimension, as an embedded manifold, where dim < dE and only bulk data is stored. 3441fc7085SMatthew G. Knepley . `PETSC_FEGEOM_BOUNDARY` - These are dim-cells on the boundary of a dE-mesh, so that dim < dE, and both bulk and s = 1 face data are stored. 3541fc7085SMatthew G. Knepley - `PETSC_FEGEOM_COHESIVE` - These are dim-cells in the interior of a dE-mesh, so that dim < dE, and both bulk and s = 2 face data are stored. 3641fc7085SMatthew G. Knepley 3741fc7085SMatthew G. Knepley Level: beginner 3841fc7085SMatthew G. Knepley 3941fc7085SMatthew G. Knepley Note: 4041fc7085SMatthew G. Knepley .vb 4141fc7085SMatthew G. Knepley dim - The topological dimension and reference coordinate dimension 4241fc7085SMatthew G. Knepley dE - The real coordinate dimension 4341fc7085SMatthew G. Knepley s - The number of supporting cells for a face 4441fc7085SMatthew G. Knepley .ve 4541fc7085SMatthew G. Knepley 4641fc7085SMatthew G. Knepley .seealso: [](ch_dmbase), `PetscFEGeom`, `DM`, `DMPLEX`, `PetscFEGeomCreate()` 4741fc7085SMatthew G. Knepley E*/ 4841fc7085SMatthew G. Knepley typedef enum { 4941fc7085SMatthew G. Knepley PETSC_FEGEOM_BASIC, 5041fc7085SMatthew G. Knepley PETSC_FEGEOM_EMBEDDED, 5141fc7085SMatthew G. Knepley PETSC_FEGEOM_BOUNDARY, 5241fc7085SMatthew G. Knepley PETSC_FEGEOM_COHESIVE 5341fc7085SMatthew G. Knepley } PetscFEGeomMode; 54