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 PetscErrorCode ierr; 10c4762a1bSJed Brown PetscInt m = 10; 11c4762a1bSJed Brown IS perm; 12c4762a1bSJed Brown PetscMPIInt size; 13c4762a1bSJed Brown PetscBool issbaij; 14c4762a1bSJed Brown 15c4762a1bSJed Brown ierr = PetscInitialize(&argc,&argv,(char*) 0,help);if (ierr) return ierr; 16*5f80ce2aSJacob Faibussowitsch CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); 17c4762a1bSJed Brown 18*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatCreate(PETSC_COMM_WORLD,&A)); 19*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,m,m)); 20*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetFromOptions(A)); 21*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetUp(A)); 22*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY)); 23*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY)); 24c4762a1bSJed Brown 25*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatShift(A,1.0)); 26c4762a1bSJed Brown 27*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscObjectTypeCompare((PetscObject)A,MATSEQSBAIJ,&issbaij)); 28c4762a1bSJed Brown if (size == 1 && !issbaij) { 29*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatGetFactor(A,MATSOLVERPETSC,MAT_FACTOR_LU,&F)); 30*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatFactorInfoInitialize(&info)); 31*5f80ce2aSJacob Faibussowitsch CHKERRQ(ISCreateStride(PETSC_COMM_SELF,m,0,1,&perm)); 32*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatLUFactorSymbolic(F,A,perm,perm,&info)); 33*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatLUFactorNumeric(F,A,&info)); 34*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&F)); 35*5f80ce2aSJacob Faibussowitsch CHKERRQ(ISDestroy(&perm)); 36c4762a1bSJed Brown } 37*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&A)); 38c4762a1bSJed Brown ierr = PetscFinalize(); 39c4762a1bSJed Brown return ierr; 40c4762a1bSJed Brown } 41c4762a1bSJed Brown 42c4762a1bSJed Brown /*TEST 43c4762a1bSJed Brown 44c4762a1bSJed Brown test: 45dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 46c4762a1bSJed Brown args: -info 47c4762a1bSJed Brown filter: grep malloc | sort -b 48c4762a1bSJed Brown 49c4762a1bSJed Brown test: 50c4762a1bSJed Brown suffix: 2 51c4762a1bSJed Brown nsize: 2 52dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 53c4762a1bSJed Brown args: -info ex182info 54c4762a1bSJed Brown filter: grep -h malloc "ex182info.0" | sort -b 55c4762a1bSJed Brown 56c4762a1bSJed Brown test: 57c4762a1bSJed Brown suffix: 3 58dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 59c4762a1bSJed Brown args: -info -mat_type baij 60c4762a1bSJed Brown filter: grep malloc | sort -b 61c4762a1bSJed Brown 62c4762a1bSJed Brown test: 63c4762a1bSJed Brown suffix: 4 64c4762a1bSJed Brown nsize: 2 65dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 66c4762a1bSJed Brown args: -info ex182info -mat_type baij 67c4762a1bSJed Brown filter: grep -h malloc "ex182info.1" | sort -b 68c4762a1bSJed Brown 69c4762a1bSJed Brown test: 70c4762a1bSJed Brown suffix: 5 71dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 72c4762a1bSJed Brown args: -info -mat_type sbaij 73c4762a1bSJed Brown filter: grep malloc | sort -b 74c4762a1bSJed Brown 75c4762a1bSJed Brown test: 76c4762a1bSJed Brown suffix: 6 77c4762a1bSJed Brown nsize: 2 78dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 79c4762a1bSJed Brown args: -info ex182info -mat_type sbaij 80c4762a1bSJed Brown filter: grep -h malloc "ex182info.0" | sort -b 81c4762a1bSJed Brown 82c20d7725SJed Brown test: 83c20d7725SJed Brown suffix: 7 84c20d7725SJed Brown nsize: 1 85dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 86c20d7725SJed Brown args: -info ex182info 87c20d7725SJed Brown filter: grep -h malloc "ex182info.0" | grep -v Running | sort -b 88c20d7725SJed Brown 89c20d7725SJed Brown test: 90c20d7725SJed Brown suffix: 8 91c20d7725SJed Brown nsize: 2 92dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 93c20d7725SJed Brown args: -info ex182info:mat 94c20d7725SJed Brown filter: grep -h malloc "ex182info.1" | sort -b 95c20d7725SJed Brown 96c20d7725SJed Brown test: 97c20d7725SJed Brown suffix: 9 98c20d7725SJed Brown nsize: 1 99dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 100c20d7725SJed Brown args: -info ex182info:sys 101d6837840SMatthew G. Knepley filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.0" | sort -b 102c20d7725SJed Brown 103c20d7725SJed Brown test: 104c20d7725SJed Brown suffix: 10 105c20d7725SJed Brown nsize: 1 106dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 107c20d7725SJed Brown args: -info :~sys 108c20d7725SJed Brown filter: grep -h malloc | sort -b 109c20d7725SJed Brown 110c20d7725SJed Brown test: 111c20d7725SJed Brown suffix: 11 112c20d7725SJed Brown nsize: 2 113dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 114c20d7725SJed Brown args: -info :~sys,mat 115c20d7725SJed Brown filter: sort -b 116c20d7725SJed Brown 117c20d7725SJed Brown test: 118c20d7725SJed Brown suffix: 12 119c20d7725SJed Brown nsize: 2 120dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 121c20d7725SJed Brown args: -info ex182info:sys,mat 122d6837840SMatthew G. Knepley filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.1" | sort -b 123c20d7725SJed Brown 124c20d7725SJed Brown test: 125c20d7725SJed Brown suffix: 13 126c20d7725SJed Brown nsize: 2 127dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 128c20d7725SJed Brown args: -info ex182info:mat:~self 129c20d7725SJed Brown filter: grep -h "ex182info.1" | sort -b 130c20d7725SJed Brown 131c20d7725SJed Brown test: 132c20d7725SJed Brown suffix: 14 133c20d7725SJed Brown nsize: 2 134dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 135c20d7725SJed Brown args: -info ex182info::~self 136aba4c478SBarry Smith filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap "ex182info.1" | sort -b 137c20d7725SJed Brown 138c20d7725SJed Brown test: 139c20d7725SJed Brown suffix: 15 140c20d7725SJed Brown nsize: 2 141dfd57a17SPierre Jolivet requires: defined(PETSC_USE_INFO) 142c20d7725SJed Brown args: -info ex182info::self 143d6837840SMatthew G. Knepley filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.1" | sort -b 144c20d7725SJed Brown 145c4762a1bSJed Brown TEST*/ 146