[gmx-users] (no subject)

Nguyen Hoang Phuong phuong at theochem.uni-frankfurt.de
Thu Jul 18 13:22:33 CEST 2002


Dear All,

I use the nmrun program to obtain the Hessian (stored in the file
hessian.mtx). I use my program to diagonalize this matrix and I got the
negative value of the eigenvalues (the program g_nmeig does the
diagonalization and gives the positive value of the eigenvalues, the
absolute values are the same in both cases). I look at the source of the
program  g_nmeig (in g_nmeig.c) and I saw the lines:

/*open Hessian matrix and read first 'line' */

  natoms=read_first_x(&status,ftp2fn(efMTX,NFILE,fnm),&t,&x,box);
  ndim=natoms*DIM;

  fprintf(stderr,"Dimensionality of matrix: %d\n",ndim);

  /* store two dimensional Hessian matrix in one dimensional array
   * to facilitate communication with fortran */

  snew(hess,ndim*ndim);

  snew(eigv,ndim);

  for (i=0; (i<natoms); i++) {
    for (j=0; (j<DIM); j++) {
      hess[i*DIM+j]=0.0-x[i][j];    /              
    }
  }

  /* read in rest of Hessian */

  for (i=1; (i<ndim); i++) {
    if (read_next_x(status,&t,natoms,x,box)) {
      for (j=0; (j<natoms); j++) {
        for (k=0; (k<DIM); k++) {
          hess[i*ndim+j*DIM+k]=0.0-x[j][k];
        }
      }
    }
  
As I understood, the array elements x[i][j] computed by the nmrun and
stored in the hessian.mtx are not really the matrix element of the
Hessian, but they should be -x[i][j]. If this is the case, then my results
are as same as those computed by g_nmeig. I'm wondering about this and
can anyone correct me? Thanks in advance.

Regards,

Phuong










More information about the gromacs.org_gmx-users mailing list