Actual source code: ex182.c

petsc-3.13.6 2020-09-29
Report Typos and Errors
  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;
 10:   PetscInt       m = 10;
 11:   IS             perm;
 12:   PetscMPIInt    size;
 13:   PetscBool      issbaij;

 15:   PetscInitialize(&argc,&argv,(char*) 0,help);if (ierr) return ierr;
 16:   MPI_Comm_size(PETSC_COMM_WORLD,&size);

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

 25:   MatShift(A,1.0);

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

 42: /*TEST

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

145: TEST*/