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