Actual source code: ex253.c

  1: static char help[] = "Tests MatMultHermitianTranspose() for real numbers.\n\n";
  2: #include <petsc.h>

  4: int main(int argc, char **args)
  5: {
  6:   Mat         A, AHT;
  7:   Vec         x, y;
  8:   PetscRandom rand;

 11:   PetscInitialize(&argc, &args, (char *)0, help);

 13:   MatCreate(PETSC_COMM_WORLD, &A);
 14:   MatSetType(A, MATAIJ);
 15:   MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE, 10, 10);
 16:   MatSetFromOptions(A);
 17:   MatSetUp(A);

 19:   MatSetValue(A, 0, 0, 1.0, INSERT_VALUES);
 20:   MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY);
 21:   MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY);

 23:   MatCreateHermitianTranspose(A, &AHT);
 24:   MatCreateVecs(AHT, &x, &y);

 26:   PetscRandomCreate(PETSC_COMM_WORLD, &rand);
 27:   PetscRandomSetFromOptions(rand);
 28:   VecSetRandom(y, rand);
 29:   PetscRandomDestroy(&rand);

 31:   MatMultHermitianTranspose(AHT, y, x);

 33:   VecDestroy(&x);
 34:   VecDestroy(&y);
 35:   MatDestroy(&A);
 36:   MatDestroy(&AHT);
 37:   PetscFinalize();
 38:   return 0;
 39: }

 41: /*TEST

 43:    test:

 45: TEST*/