AMBER Archive (2009)

Subject: [AMBER] Computing an Hessian matrix using NAB

From: Brut Marie (
Date: Mon Oct 12 2009 - 17:12:44 CDT


I am using NAB to compute an Hessian matrix with gb=1.
I first minimized my structure (with conjgrad and newton functions). Until
here, no problem. Then I thought I could use mme2 alone to get the
Hessian matrix, using the command :

float mme2( float x[], float g[], float h[], float mass[], int iter );

In my case, the input is:
molecule mol;
float x[2670], g[2670], h[7128900], m[890], fret;
file hessian;

// pdb reading, memory allocation
mol = getpdb_prm( "A_ambermin_GB.pdb", "leaprc.ff03", "", 0 );

// MM initialization
mm_options( "cut=12., rgbmax=12. ntpr=1, gb=1" );
mme_init( mol, NULL, "::Z", x, NULL);
setxyz_from_mol( mol, NULL, x );

// Conjugate gradient minimization
conjgrad(x, 3*mol.natoms, fret, mme, 0.001, 0.001, 2000 );

// Newton-Raphson minimization
mm_options( "ntpr=50, ntpr_md=1, nchk=5, nchk2=5" );
newton( x, 3*mol.natoms, fret, mme, mme2, 0.00000001, 0.0, 1 );

mme2( x, g, h, m, 1 );

But I get the following error message:
 warning: passing argument 5 of ‘mme2’ from incompatible pointer type
 error: too few arguments to function ‘mme2’

My question is how can I use properly mme2, and what is the best method to
extract the hessian matrix ?



AMBER mailing list