1c4762a1bSJed Brown static char help[] = "Tests using MatShift() to create a constant diagonal matrix\n\n"; 2c4762a1bSJed Brown 3c4762a1bSJed Brown #include <petscmat.h> 4c4762a1bSJed Brown 5c4762a1bSJed Brown int main(int argc,char **argv) 6c4762a1bSJed Brown { 7c4762a1bSJed Brown Mat A,F; 8c4762a1bSJed Brown MatFactorInfo info; 9c4762a1bSJed Brown PetscInt m = 10; 10c4762a1bSJed Brown IS perm; 11c4762a1bSJed Brown PetscMPIInt size; 12c4762a1bSJed Brown PetscBool issbaij; 13c4762a1bSJed Brown 14*b122ec5aSJacob Faibussowitsch CHKERRQ(PetscInitialize(&argc,&argv,(char*) 0,help)); 155f80ce2aSJacob Faibussowitsch CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); 16c4762a1bSJed Brown 175f80ce2aSJacob Faibussowitsch CHKERRQ(MatCreate(PETSC_COMM_WORLD,&A)); 185f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,m,m)); 195f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetFromOptions(A)); 205f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetUp(A)); 215f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY)); 225f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY)); 23c4762a1bSJed Brown 245f80ce2aSJacob Faibussowitsch CHKERRQ(MatShift(A,1.0)); 25c4762a1bSJed Brown 265f80ce2aSJacob Faibussowitsch CHKERRQ(PetscObjectTypeCompare((PetscObject)A,MATSEQSBAIJ,&issbaij)); 27c4762a1bSJed Brown if (size == 1 && !issbaij) { 285f80ce2aSJacob Faibussowitsch CHKERRQ(MatGetFactor(A,MATSOLVERPETSC,MAT_FACTOR_LU,&F)); 295f80ce2aSJacob Faibussowitsch CHKERRQ(MatFactorInfoInitialize(&info)); 305f80ce2aSJacob Faibussowitsch CHKERRQ(ISCreateStride(PETSC_COMM_SELF,m,0,1,&perm)); 315f80ce2aSJacob Faibussowitsch CHKERRQ(MatLUFactorSymbolic(F,A,perm,perm,&info)); 325f80ce2aSJacob Faibussowitsch CHKERRQ(MatLUFactorNumeric(F,A,&info)); 335f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&F)); 345f80ce2aSJacob Faibussowitsch CHKERRQ(ISDestroy(&perm)); 35c4762a1bSJed Brown } 365f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&A)); 37*b122ec5aSJacob Faibussowitsch CHKERRQ(PetscFinalize()); 38*b122ec5aSJacob Faibussowitsch return 0; 39c4762a1bSJed Brown } 40c4762a1bSJed Brown 41c4762a1bSJed Brown /*TEST 42c4762a1bSJed Brown 43c4762a1bSJed Brown test: 44dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 45c4762a1bSJed Brown args: -info 46c4762a1bSJed Brown filter: grep malloc | sort -b 47c4762a1bSJed Brown 48c4762a1bSJed Brown test: 49c4762a1bSJed Brown suffix: 2 50c4762a1bSJed Brown nsize: 2 51dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 52c4762a1bSJed Brown args: -info ex182info 53c4762a1bSJed Brown filter: grep -h malloc "ex182info.0" | sort -b 54c4762a1bSJed Brown 55c4762a1bSJed Brown test: 56c4762a1bSJed Brown suffix: 3 57dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 58c4762a1bSJed Brown args: -info -mat_type baij 59c4762a1bSJed Brown filter: grep malloc | sort -b 60c4762a1bSJed Brown 61c4762a1bSJed Brown test: 62c4762a1bSJed Brown suffix: 4 63c4762a1bSJed Brown nsize: 2 64dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 65c4762a1bSJed Brown args: -info ex182info -mat_type baij 66c4762a1bSJed Brown filter: grep -h malloc "ex182info.1" | sort -b 67c4762a1bSJed Brown 68c4762a1bSJed Brown test: 69c4762a1bSJed Brown suffix: 5 70dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 71c4762a1bSJed Brown args: -info -mat_type sbaij 72c4762a1bSJed Brown filter: grep malloc | sort -b 73c4762a1bSJed Brown 74c4762a1bSJed Brown test: 75c4762a1bSJed Brown suffix: 6 76c4762a1bSJed Brown nsize: 2 77dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 78c4762a1bSJed Brown args: -info ex182info -mat_type sbaij 79c4762a1bSJed Brown filter: grep -h malloc "ex182info.0" | sort -b 80c4762a1bSJed Brown 81c20d7725SJed Brown test: 82c20d7725SJed Brown suffix: 7 83c20d7725SJed Brown nsize: 1 84dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 85c20d7725SJed Brown args: -info ex182info 86c20d7725SJed Brown filter: grep -h malloc "ex182info.0" | grep -v Running | sort -b 87c20d7725SJed Brown 88c20d7725SJed Brown test: 89c20d7725SJed Brown suffix: 8 90c20d7725SJed Brown nsize: 2 91dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 92c20d7725SJed Brown args: -info ex182info:mat 93c20d7725SJed Brown filter: grep -h malloc "ex182info.1" | sort -b 94c20d7725SJed Brown 95c20d7725SJed Brown test: 96c20d7725SJed Brown suffix: 9 97c20d7725SJed Brown nsize: 1 98dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 99c20d7725SJed Brown args: -info ex182info:sys 100d6837840SMatthew G. Knepley filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.0" | sort -b 101c20d7725SJed Brown 102c20d7725SJed Brown test: 103c20d7725SJed Brown suffix: 10 104c20d7725SJed Brown nsize: 1 105dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 106c20d7725SJed Brown args: -info :~sys 107c20d7725SJed Brown filter: grep -h malloc | sort -b 108c20d7725SJed Brown 109c20d7725SJed Brown test: 110c20d7725SJed Brown suffix: 11 111c20d7725SJed Brown nsize: 2 112dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 113c20d7725SJed Brown args: -info :~sys,mat 114c20d7725SJed Brown filter: sort -b 115c20d7725SJed Brown 116c20d7725SJed Brown test: 117c20d7725SJed Brown suffix: 12 118c20d7725SJed Brown nsize: 2 119dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 120c20d7725SJed Brown args: -info ex182info:sys,mat 121d6837840SMatthew G. Knepley filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.1" | sort -b 122c20d7725SJed Brown 123c20d7725SJed Brown test: 124c20d7725SJed Brown suffix: 13 125c20d7725SJed Brown nsize: 2 126dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 127c20d7725SJed Brown args: -info ex182info:mat:~self 128c20d7725SJed Brown filter: grep -h "ex182info.1" | sort -b 129c20d7725SJed Brown 130c20d7725SJed Brown test: 131c20d7725SJed Brown suffix: 14 132c20d7725SJed Brown nsize: 2 133dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 134c20d7725SJed Brown args: -info ex182info::~self 135aba4c478SBarry Smith filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap "ex182info.1" | sort -b 136c20d7725SJed Brown 137c20d7725SJed Brown test: 138c20d7725SJed Brown suffix: 15 139c20d7725SJed Brown nsize: 2 140dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 141c20d7725SJed Brown args: -info ex182info::self 142d6837840SMatthew G. Knepley filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.1" | sort -b 143c20d7725SJed Brown 144c4762a1bSJed Brown TEST*/ 145