From: Berk Hess Date: Thu, 26 Apr 2012 15:40:34 +0000 (+0200) Subject: Merge release-4-5-patches into release-4-6 X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=6b2e8ac3396fc39c263ec922688ff1068f9cbf22;p=alexxy%2Fgromacs.git Merge release-4-5-patches into release-4-6 Change-Id: Id1c62a482c6c3467704cc9b657b53f7df493b7ba --- 6b2e8ac3396fc39c263ec922688ff1068f9cbf22 diff --cc CMakeLists.txt index 0218f6d73b,8fd987745f..b4af587c31 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@@ -305,7 -347,7 +305,8 @@@ check_function_exists(fsyn check_function_exists(_fileno HAVE__FILENO) check_function_exists(fileno HAVE_FILENO) check_function_exists(_commit HAVE__COMMIT) + check_function_exists(lstat HAVE_LSTAT) +check_function_exists(sigaction HAVE_SIGACTION) include(CheckLibraryExists) check_library_exists(m sqrt "" HAVE_LIBM) diff --cc share/html/online/mdp_opt.html index 3dcad45bd4,170cf9478d..bf9057abd7 --- a/share/html/online/mdp_opt.html +++ b/share/html/online/mdp_opt.html @@@ -503,17 -504,22 +504,17 @@@ might try 0.15 nm. When running in para parallelizes better than the FFT, so try decreasing grid dimensions while increasing interpolation. -
PPPM
-
Particle-Particle Particle-Mesh algorithm for long range -electrostatic interactions. -Use for example rlist=0.9, rcoulomb=0.9. -The grid dimensions are controlled by fourierspacing. -Reasonable grid spacing for PPPM is 0.05-0.1 nm. -See Shift for the details of the particle-particle potential. -
-NOTE: PPPM is not functional in the current version, but we plan to implement -PPPM through a small modification of the PME code.
+
P3M-AD
+
Particle-Particle Particle-Mesh algorithm with analytical derivative +for for long range electrostatic interactions. The method and code +is identical to SPME, except that the influence function is optimized +for the grid. This gives a slight increase in accuracy.
-
Reaction-Field
+
Reaction-Field electrostaticsreaction-field electrostatics
Reaction field with Coulomb cut-off rcoulomb, where rcoulombrlist. -The dielectric constant beyond the cut-off is epsilon_rf. -The dielectric constant can be set to infinity by setting epsilon_rf=0.
+The dielectric constant beyond the cut-off is epsilon-rf. +The dielectric constant can be set to infinity by setting epsilon-rf=0.
Generalized-Reaction-Field
Generalized reaction field with Coulomb cut-off rcoulomb, @@@ -721,13 -727,14 +722,14 @@@ energy group pairs

Ewald

fourierspacing: (0.12) [nm]
-
The maximum grid spacing for the FFT grid when using PME or P3M. - For ordinary Ewald the spacing times the box dimensions determines the - highest magnitude to use in each direction. In all cases - each direction can be overridden by entering a non-zero value for - fourier-n[xyz]. +
For ordinary Ewald, the ratio of the box dimensions and the spacing + determines a lower bound for the number of wave vectors to use in each -(signed) direction. For PME and PPPM, that ratio determines a lower bound ++(signed) direction. For PME and P3M, that ratio determines a lower bound + for the number of Fourier-space grid points that will be used along that + axis. In all cases, the number for each direction can be overridden by + entering a non-zero value for fourier_n[xyz]. For optimizing the relative load of the particle-particle interactions - and the mesh part of PME it is useful to know that + and the mesh part of PME, it is useful to know that the accuracy of the electrostatics remains nearly constant when the Coulomb cut-off and the PME grid spacing are scaled by the same factor.
@@@ -1287,46 -1294,49 +1289,49 @@@ The force constant is then (1 - lambda)
disre:
no
-
no distance restraints (ignore distance - restraint information in topology file)
+
ignore distance restraint information in topology file
simple
-
simple (per-molecule) distance restraints, - ensemble averaging can be performed with mdrun -multi - where the environment variable GMX_DISRE_ENSEMBLE_SIZE sets the number - of systems within each ensemble (usually equal to the mdrun -multi value)
+
simple (per-molecule) distance restraints.
ensemble
-
distance restraints over an ensemble of molecules in one simulation box, - should only be used for special cases, such as dimers - (this option is not fuctional in the current version of GROMACS)
+
distance restraints over an ensemble of molecules in one + simulation box. Normally, one would perform ensemble averaging over + multiple subsystems, each in a separate box, using mdrun -multi;s + upply topol0.tpr, topol1.tpr, ... with different + coordinates and/or velocities. + The environment variable GMX_DISRE_ENSEMBLE_SIZE sets the number + of systems within each ensemble (usually equal to the mdrun -multi value).
+
-
disre_weighting:
+
disre-weighting:
+
equal (default)
+
divide the restraint force equally over all atom pairs in the restraint
conservative
the forces are the derivative of the restraint potential, - this results in an r-7 weighting of the atom pairs
-
equal
-
divide the restraint force equally over all atom pairs in the restraint
+ this results in an r-7 weighting of the atom pairs. -The forces are conservative when disre_tau is zero.
++The forces are conservative when disre-tau is zero. -
disre_mixed:
+
disre-mixed:
no
the violation used in the calculation of the restraint force is the - time averaged violation
+ time-averaged violation
yes
the violation used in the calculation of the restraint force is the - square root of the time averaged violation times the instantaneous violation
+ square root of the product of the time-averaged violation and the instantaneous violation -
disre_fc: (1000) [kJ mol-1 nm-2]
+
disre-fc: (1000) [kJ mol-1 nm-2]
force constant for distance restraints, which is multiplied by a - (possibly) different factor for each restraint
+ (possibly) different factor for each restraint given in the fac + column of the interaction in the topology file. -
disre_tau: (0) [ps]
+
disre-tau: (0) [ps]
-
time constant for distance restraints running average
+
time constant for distance restraints running average. A value of zero turns off time averaging.
nstdisreout: (100) [steps]
-
frequency to write the running time averaged and instantaneous distances - of all atom pairs involved in restraints to the energy file +
period between steps when the running time-averaged and instantaneous distances + of all atom pairs involved in restraints are written to the energy file (can make the energy file very large)
@@@ -1339,27 -1348,30 +1343,30 @@@
use orientation restraints, ensemble averaging can be performed with mdrun -multi
-
orire_fc: (0) [kJ mol]
+
orire-fc: (0) [kJ mol]
force constant for orientation restraints, which is multiplied by a - (possibly) different factor for each restraint, can be set to zero to + (possibly) different weight factor for each restraint, can be set to zero to obtain the orientations from a free simulation
-
orire_tau: (0) [ps]
+
orire-tau: (0) [ps]
-
time constant for orientation restraints running average
+
time constant for orientation restraints running average. A value of zero turns off time averaging.
-
orire_fitgrp:
+
orire-fitgrp:
-
fit group for orientation restraining, for a protein backbone is a good +
fit group for orientation restraining. This group of atoms is used + to determine the rotation R of the system with respect to the + reference orientation. The reference orientation is the starting + conformation of the first subsystem. For a protein, backbone is a reasonable choice
nstorireout: (100) [steps]
-
frequency to write the running time averaged and instantaneous orientations - for all restraints and the molecular order tensor to the energy file +
period between steps when the running time-averaged and instantaneous orientations + for all restraints, and the molecular order tensor are written to the energy file (can make the energy file very large)


-

Free energy calculations

+

Free energy calculationsfree energy calculations

-
free_energy:
+
free-energy:
no
Only use topology A.
@@@ -1442,10 -1454,10 +1449,10 @@@ the molecule definition in the topology


-

Non-equilibrium MD

+

Non-equilibrium MDnon-equilibrium MD

-
acc_grps:
+
acc-grps:
groups for constant acceleration (e.g.: Protein Sol) all atoms in groups Protein and Sol will experience constant acceleration as specified in the accelerate line
@@@ -1494,12 -1506,12 +1501,12 @@@ or a liquid.


-

Electric fields

+

Electric fieldselectric field

-
E_x ; E_y ; E_z:
+
E-x ; E-y ; E-z:
If you want to use an electric field in a direction, enter 3 numbers -after the appropriate E_*, the first number: the number of cosines, +after the appropriate E-*, the first number: the number of cosines, only 1 is implemented (with frequency 0) so enter 1, the second number: the strength of the electric field in V nm-1, diff --cc src/gmxlib/checkpoint.c index 718a2ab03c,0f7c8c71f0..a22263dac0 --- a/src/gmxlib/checkpoint.c +++ b/src/gmxlib/checkpoint.c @@@ -1773,7 -1746,11 +1774,11 @@@ static void read_checkpoint(const char /* lock log file */ if (i==0) { + /* Note that there are systems where the lock operation + * will succeed, but a second process can also lock the file. + * We should probably try to detect this. + */ -#if !((defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64) && !defined __CYGWIN__ && !defined __CYGWIN32__) +#ifndef GMX_NATIVE_WINDOWS if (fcntl(fileno(gmx_fio_getfp(chksum_file)), F_SETLK, &fl) ==-1) #else diff --cc src/gmxlib/shift_util.c index c4cee2257c,176077a36e..449e4d6fcf --- a/src/gmxlib/shift_util.c +++ b/src/gmxlib/shift_util.c @@@ -49,9 -49,12 +49,11 @@@ #include "writeps.h" #include "macros.h" #include "xvgr.h" -#include "pppm.h" #include "gmxfio.h" + #ifdef GMX_THREADS #include "thread_mpi.h" + #endif #define p2(x) ((x)*(x)) #define p3(x) ((x)*(x)*(x)) diff --cc src/gmxlib/tpxio.c index 8d7d3f953d,59fed9f420..c640bb5dac --- a/src/gmxlib/tpxio.c +++ b/src/gmxlib/tpxio.c @@@ -2538,12 -2394,8 +2538,12 @@@ gmx_bool read_tps_conf(const char *infi } else { get_stx_coordnum(infile,&natoms); - init_t_atoms(&top->atoms,natoms,FALSE); + init_t_atoms(&top->atoms,natoms,(fn2ftp(infile) == efPDB)); - bXNULL = (x == NULL); + if (x == NULL) + { + snew(x,1); + bXNULL = TRUE; + } snew(*x,natoms); if (v) snew(*v,natoms); diff --cc src/mdlib/shellfc.c index 3295cffbf0,638f2b2bdd..5b6fa615b4 --- a/src/mdlib/shellfc.c +++ b/src/mdlib/shellfc.c @@@ -362,9 -361,8 +362,9 @@@ gmx_shellfc_t init_shell_flexcon(FILE * shell[nsi].k += ffparams->iparams[type].cubic.kb; break; case F_POLARIZATION: + case F_ANHARM_POL: - if (qS != atom[aS].qB) - gmx_fatal(FARGS,"polarize can not be used with qA != qB"); + if (!gmx_within_tol(qS, atom[aS].qB, GMX_REAL_EPS*10)) + gmx_fatal(FARGS,"polarize can not be used with qA(%e) != qB(%e) for atom %d of molecule block %d", qS, atom[aS].qB, aS+1, mb+1); shell[nsi].k += sqr(qS)*ONE_4PI_EPS0/ ffparams->iparams[type].polarize.alpha; break;