-
Notifications
You must be signed in to change notification settings - Fork 9
PetscDriverFiedlerTestFiles
For Petsc testing with driver_fiedler the following files are available.
File names containing "complex" are for complex scalars, with "double" are for real scalars.
File names containinng "64" are for 64bit integers, otherwise they are for 32bit integers.
It is important to match the files to the Petsc configuration for scalar and integer size.
The file formats are different for each combination.
The graph Laplacian L has been first created in MATLAB from the 256x256 gray-scale picture using the MATLAB code http://eslab.bu.edu/software/graphanalysis/graphanalysisDEMOS.html
These files are setup via some Matlab programs in the PETSc socket interface to Matlab; PetscBinaryRead.m
and PetscBinaryWrite.m
. These programs read and write Matlab matrices and vectors to files formatted for Petsc. The version from Petsc only supports double. We have modified these programs to also support complex and 64bit integers. Our versions are included in the Google source directory ../blopex_petsc
along with PetscWriteReadExample.m
to illustrate how to use them.
Developer Notes: These files were original to ver 1.0 of Blopex. They were uploaded to Matlab and used to create the complex and 64bit versions, without changing the actual values.
L-matrix 65536x65536 graph laplacian of 256x256 lattice with edge weights from 0 to 4.
Run driver_fiedler, e.g., with -matrix L-matrix-double.petsc
Smallest eigenvalue is zero with constant eigenvector.
Use constant eigenvector as a constraint.
Eigenvalue lambda Residual
3.24059222840027e-06 9.35410996347492e-07
9.46022776819983e-06 2.32669917432429e-07
2.01381014910642e-05 3.06346512297800e-07
DL-matrix 65536x65536 diagonal matrix. This is diagonals of L-matrix.
Run driver_fiedler with -matrix L-matrix-double.petsc -mass_matrix DL-matrix-double.petsc to get the eigenpairs of the normalized graph Laplacian inv(DL)L.
Developer Notes: These files are new to ver 1.1 of Blopex. They were created in Matlab and downloaded to unix. They are hermition postitive definite, sparse, with randomly generated values. These are the only files with imaginary values. They do not have a constant eigenvector and driver_fiedler should be run with option "no_con"; otherwise solution of eigenvalues is to about 1e-3 at which point they stagnate there and do not improve. test_complex1 40x40 134 nz hpd random
Eigenvalue lambda Residual
9.31610207578953e-01 6.96955369464395e-07
9.43228356410202e-01 9.67561486865887e-07
9.45843781717145e-01 9.05928218002553e-07
test_complex2 1000x1000 50786 nz hpd random
Eigenvalue lambda Residual
5.83754860883465e-01 9.47692074183951e-07
5.92733440713132e-01 9.30055866146296e-07
5.95423063672527e-01 8.89839810686321e-07
test_complex3 1000x1000 10876 nz hpd random
Eigenvalue lambda Residual
9.61904495051511e+01 7.59173881115497e-07
9.62288325907204e+01 8.48299651119655e-07
9.62817871735585e+01 9.43808423633657e-07}}}```