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;

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

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

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

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

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

 30:   MatMultHermitianTranspose(AHT, y, x);

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

 40: /*TEST

 42:    test:

 44: TEST*/