Actual source code: grid1d.c
1: #ifdef PETSC_RCS_HEADER
2: static char vcid[] = "$Id: grid1d.c,v 1.31 2000/07/16 23:20:01 knepley Exp $";
3: #endif
5: /* Implements 1d triangular grids */
6: #include "petscts.h"
7: #include "gsolver.h"
8: #include "src/grid/gridimpl.h" /*I "grid.h" I*/
9: #include "src/mesh/impls/triangular/triimpl.h"
10: #include "src/grid/impls/triangular/2d/grid2d.h"
11: #include "src/grid/impls/triangular/2d/elemvec2d.h"
12: #include "src/grid/impls/triangular/2d/varorder2d.h"
13: #include "src/gvec/impls/triangular/2d/gvec2d.h"
14: #include "src/gvec/impls/triangular/2d/gmat2d.h"
16: static struct _GridOps GOps = {GridSetUp_Triangular_2D,
17: GridSetupBoundary_Triangular_2D,
18: GridSetupConstraints_Triangular_2D,
19: GridSetupGhostScatter_Triangular_2D,
20: PETSC_NULL/* GridSetFromOptions */,
21: PETSC_NULL/* GridDuplicate */,
22: PETSC_NULL/* GridReform */,
23: PETSC_NULL/* GridCopy */,
24: GridDestroy_Triangular_2D,
25: GridView_Triangular_2D,
26: GridGetBoundaryStart_Triangular_2D,
27: GridGetBoundaryNext_Triangular_2D,
28: GridReformMesh_Triangular_2D,
29: GridCreateGMat_Triangular_2D,
30: GridCreateVarOrdering_Triangular_2D,
31: GridCreateLocalVarOrdering_Triangular_2D,
32: GridCreateVarScatter_Triangular_2D,
33: GridVarOrderingConstrain_Triangular_2D,
34: GridCalcElementVecIndices_Triangular_2D,
35: GridCalcElementMatIndices_Triangular_2D,
36: PETSC_NULL/* GridCalcBoundaryElementVecIndices_Triangular_1D */,
37: PETSC_NULL/* GridCalcBoundaryElementMatIndices_Triangular_1D */,
38: GridProjectElementVec_Triangular_2D,
39: GVecGetLocalGVec_Triangular_2D,
40: GVecRestoreLocalGVec_Triangular_2D,
41: 0,/* GVecGetWorkGVec */
42: 0,/* GVecRestoreWorkGVec */
43: GVecGlobalToLocal_Triangular_2D,
44: GVecLocalToGlobal_Triangular_2D,
45: PETSC_NULL/* GVecView_Triangular_1D */,
46: GridCreateRestriction_Triangular_2D,
47: GVecEvaluateFunction_Triangular_2D,
48: PETSC_NULL/* GVecEvaluateFunctionBoundary_Triangular_1D */,
49: GVecEvaluateFunctionCollective_Triangular_2D,
50: GVecEvaluateFunctionGalerkin_Triangular_2D,
51: GVecEvaluateFunctionGalerkinCollective_Triangular_2D,
52: PETSC_NULL/* GVecEvaluateBoundaryFunctionGalerkin_Triangular_1D */,
53: PETSC_NULL/* GVecEvaluateBoundaryFunctionGalerkinCollective_Triangular_1D */,
54: GVecEvaluateOperatorGalerkin_Triangular_2D,
55: GVecEvaluateNonlinearOperatorGalerkin_Triangular_2D,
56: GVecEvaluateSystemMatrix_Triangular_2D,
57: GVecEvaluateSystemMatrixDiagonal_Triangular_2D,
58: GMatView_Triangular_2D,
59: GMatEvaluateOperatorGalerkin_Triangular_2D,
60: GMatEvaluateALEOperatorGalerkin_Triangular_2D,
61: GMatEvaluateALEConstrainedOperatorGalerkin_Triangular_2D,
62: PETSC_NULL/* GMatEvaluateBoundaryOperatorGalerkin_Triangular_1D */,
63: GridEvaluateRhs_Triangular_2D,
64: GridEvaluateSystemMatrix_Triangular_2D};
66: EXTERN_C_BEGIN
67: int GridCreate_Triangular_1D(Grid grid) {
71: PetscMemcpy(grid->ops, &GOps, sizeof(struct _GridOps));
72: /* General grid description */
73: grid->dim = 1;
74: grid->data = PETSC_NULL;
75: return(0);
76: }
77: EXTERN_C_END