Actual source code: ex182.c

  1: static char help[] = "Tests using MatShift() to create a constant diagonal matrix\n\n";

  3: #include <petscmat.h>

  5: int main(int argc,char **argv)
  6: {
  7:   Mat            A,F;
  8:   MatFactorInfo  info;
  9:   PetscInt       m = 10;
 10:   IS             perm;
 11:   PetscMPIInt    size;
 12:   PetscBool      issbaij;

 14:   PetscInitialize(&argc,&argv,(char*) 0,help);
 15:   MPI_Comm_size(PETSC_COMM_WORLD,&size);

 17:   MatCreate(PETSC_COMM_WORLD,&A);
 18:   MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,m,m);
 19:   MatSetFromOptions(A);
 20:   MatSetUp(A);
 21:   MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY);
 22:   MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY);

 24:   MatShift(A,1.0);

 26:   PetscObjectTypeCompare((PetscObject)A,MATSEQSBAIJ,&issbaij);
 27:   if (size == 1 && !issbaij) {
 28:     MatGetFactor(A,MATSOLVERPETSC,MAT_FACTOR_LU,&F);
 29:     MatFactorInfoInitialize(&info);
 30:     ISCreateStride(PETSC_COMM_SELF,m,0,1,&perm);
 31:     MatLUFactorSymbolic(F,A,perm,perm,&info);
 32:     MatLUFactorNumeric(F,A,&info);
 33:     MatDestroy(&F);
 34:     ISDestroy(&perm);
 35:   }
 36:   MatDestroy(&A);
 37:   PetscFinalize();
 38:   return 0;
 39: }

 41: /*TEST

 43:    test:
 44:       requires: defined(PETSC_USE_INFO)
 45:       args: -info
 46:       filter: grep malloc | sort -b

 48:    test:
 49:       suffix: 2
 50:       nsize: 2
 51:       requires: defined(PETSC_USE_INFO)
 52:       args: -info ex182info
 53:       filter: grep -h malloc "ex182info.0" | sort -b

 55:    test:
 56:       suffix: 3
 57:       requires: defined(PETSC_USE_INFO)
 58:       args: -info -mat_type baij
 59:       filter: grep malloc | sort -b

 61:    test:
 62:       suffix: 4
 63:       nsize: 2
 64:       requires: defined(PETSC_USE_INFO)
 65:       args: -info ex182info -mat_type baij
 66:       filter: grep -h malloc "ex182info.1" | sort -b

 68:    test:
 69:       suffix: 5
 70:       requires: defined(PETSC_USE_INFO)
 71:       args: -info -mat_type sbaij
 72:       filter: grep malloc | sort  -b

 74:    test:
 75:       suffix: 6
 76:       nsize: 2
 77:       requires: defined(PETSC_USE_INFO)
 78:       args: -info ex182info -mat_type sbaij
 79:       filter: grep -h malloc "ex182info.0" | sort -b

 81:    test:
 82:      suffix: 7
 83:      nsize: 1
 84:      requires: defined(PETSC_USE_INFO)
 85:      args: -info ex182info
 86:      filter: grep -h malloc "ex182info.0" | grep -v Running | sort -b

 88:    test:
 89:      suffix: 8
 90:      nsize: 2
 91:      requires: defined(PETSC_USE_INFO)
 92:      args: -info ex182info:mat
 93:      filter: grep -h malloc "ex182info.1" | sort -b

 95:    test:
 96:      suffix: 9
 97:      nsize: 1
 98:      requires: defined(PETSC_USE_INFO)
 99:      args: -info ex182info:sys
100:      filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.0" | sort -b

102:    test:
103:      suffix: 10
104:      nsize: 1
105:      requires: defined(PETSC_USE_INFO)
106:      args: -info :~sys
107:      filter: grep -h malloc | sort -b

109:    test:
110:      suffix: 11
111:      nsize: 2
112:      requires: defined(PETSC_USE_INFO)
113:      args: -info :~sys,mat
114:      filter: sort -b

116:    test:
117:      suffix: 12
118:      nsize: 2
119:      requires: defined(PETSC_USE_INFO)
120:      args: -info ex182info:sys,mat
121:      filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.1" | sort -b

123:    test:
124:      suffix: 13
125:      nsize: 2
126:      requires: defined(PETSC_USE_INFO)
127:      args: -info ex182info:mat:~self
128:      filter: grep -h "ex182info.1" | sort -b

130:    test:
131:      suffix: 14
132:      nsize: 2
133:      requires: defined(PETSC_USE_INFO)
134:      args: -info ex182info::~self
135:      filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap "ex182info.1" | sort -b

137:    test:
138:      suffix: 15
139:      nsize: 2
140:      requires: defined(PETSC_USE_INFO)
141:      args: -info ex182info::self
142:      filter: grep -h -ve Running -ve MPI_Comm -ve Initialize -ve communicator -ve HostName -ve PetscDetermineInitialFPTrap -ve libpetscbamg "ex182info.1" | sort -b

144: TEST*/