Actual source code: bddcstructs.h

petsc-dev 2014-02-02
Report Typos and Errors
4: #include <petscksp.h> 5: #include <petscbt.h> 7: /* Structure for local graph partitioning */ 8: struct _PCBDDCGraph { 9: ISLocalToGlobalMapping l2gmap; 10: PetscInt nvtxs; 11: PetscBT touched; 12: PetscInt *count; 13: PetscInt **neighbours_set; 14: PetscInt *subset; 15: PetscInt *which_dof; 16: PetscInt *cptr; 17: PetscInt *queue; 18: PetscInt *special_dof; 19: PetscInt *subset_ncc; 20: PetscInt *mirrors; 21: PetscInt **mirrors_set; 22: PetscInt ncc; 23: PetscInt n_subsets; 24: PetscInt custom_minimal_size; 25: PetscInt nvtxs_csr; 26: PetscInt *xadj; 27: PetscInt *adjncy; 28: }; 29: typedef struct _PCBDDCGraph *PCBDDCGraph; 31: /* Structure for deluxe scaling */ 32: struct _PCBDDCDeluxeScaling { 33: /* vertex scaling */ 34: PetscInt n_simple; 35: PetscInt* idx_simple_B; 36: /* sequential problems */ 37: VecScatter seq_scctx; 38: Vec seq_work1; 39: Vec seq_work2; 40: Mat seq_mat; 41: KSP seq_ksp; 42: /* parallel problems */ 43: PetscInt par_colors; 44: VecScatter* par_scctx_s; 45: VecScatter* par_scctx_p; 46: Vec* par_vec; 47: KSP* par_ksp; 48: PetscSubcomm* par_subcomm; 49: /* work vectors for local Schur complement */ 50: Vec work1_D; 51: Vec work2_D; 52: Vec work1_B; 53: Vec work2_B; 54: }; 55: typedef struct _PCBDDCDeluxeScaling *PCBDDCDeluxeScaling; 57: /* inexact solvers with nullspace correction */ 58: struct _NullSpaceCorrection_ctx { 59: Mat basis_mat; 60: Mat Kbasis_mat; 61: Mat Lbasis_mat; 62: PC local_pc; 63: Vec work_small_1; 64: Vec work_small_2; 65: Vec work_full_1; 66: Vec work_full_2; 67: }; 68: typedef struct _NullSpaceCorrection_ctx *NullSpaceCorrection_ctx; 70: /* feti-dp mat */ 71: struct _FETIDPMat_ctx { 72: PetscInt n_lambda; 73: Vec lambda_local; 74: Vec temp_solution_B; 75: Vec temp_solution_D; 76: Mat B_delta; 77: Mat B_Ddelta; 78: VecScatter l2g_lambda; 79: PC pc; 80: }; 81: typedef struct _FETIDPMat_ctx *FETIDPMat_ctx; 83: /* feti-dp dirichlet preconditioner */ 84: struct _FETIDPPC_ctx { 85: Vec lambda_local; 86: Mat B_Ddelta; 87: VecScatter l2g_lambda; 88: PC pc; 89: }; 90: typedef struct _FETIDPPC_ctx *FETIDPPC_ctx; 92: #endif