[gmx-users] Break down of total energy
Mark Abraham
mark.abraham at anu.edu.au
Sat May 22 02:26:01 CEST 2010
----- Original Message -----
From: Moeed <lecielll at googlemail.com>
Date: Saturday, May 22, 2010 4:51
Subject: [gmx-users] Break down of total energy
To: gmx-users at gromacs.org
> Hello Justin,
>
> As for exclusions, in the manual I see 1-4 interactions refer to carbon atoms on the backbone. I do not know if it makes sense if I enter a number more than 5 (hexane has only 6 carbons), However, I did so and I changed nrexcl from default value of 3 to 19 ( to exlude all interactions between all C and H atoms!) but I got the following message after grompp em step:
nrexcl works differently from your assumption. Read the example in 5.7.1
> checking input for internal consistency...
> Opening library file /chem_soft/gromacs/share/gromacs/top/ffoplsaa.itp
> Opening library file /chem_soft/gromacs/share/gromacs/top/ffoplsaanb.itp
> Opening library file /chem_soft/gromacs/share/gromacs/top/ffoplsaabon.itp
>
Generated 332520 of the 332520 non-bonded parameter combinations
> Generating 1-4 interactions: fudge = 0.5
> Generated 332520 of the 332520 1-4 parameter combinations
> Excluding 19 bonded neighbours molecule type 'Hexane'
See above. You don't want 19 bonded neighbours excluded.
>
> -------------------------------------------------------
> Program grompp, VERSION 4.0.7
> Source code file: smalloc.c, line: 147
>
> Fatal error:
> Not enough memory. Failed to calloc 78089438 elements of size 8 for s
>
(called from file topexcl.c, line 161)
> -------------------------------------------------------
Yep. The memory requirements of a naive implementation suitable for normal cases of excluded bonded neighbours grows rapidly. Your case is normal enough if you do it right, however.
> I also tried another approach (although I am almost sure this is not the proper way of excluding ALL interactions as in this way I think I am excluding atom 1 and all other atoms only!) and added exclusions directive as you see below in top file
Like I've suggested previously, read 5.4. You will need 19 lines.
> ; Include forcefield parameters
> #include "ffoplsaa.itp"
>
> [ moleculetype ]
> ; Name nrexcl
> Hexane 3
>
> [ atoms ]
> ; nr type resnr residue atom cgnr charge mass typeB chargeB massB
>
1 opls_157 1 HEX C1 1 -0.18 12.011 ; qtot -0.18
> 2 opls_140 1 HEX H11 1 0.06 1.008 ; qtot -0.12
> 3 opls_140 1 HEX H12 1 0.06 1.008 ; qtot -0.06
>
4 opls_140 1 HEX H13 1 0.06 1.008 ; qtot 0
> 5 opls_158 1 HEX C2 2 -0.12 12.011 ; qtot -0.12
> 6 opls_140 1 HEX H21 2 0.06 1.008 ; qtot -0.06
>
7 opls_140 1 HEX H22 2 0.06 1.008 ; qtot 0
> 8 opls_158 1 HEX C3 3 -0.12 12.011 ; qtot -0.12
> 9 opls_140 1 HEX H31 3 0.06 1.008 ; qtot -0.06
>
10 opls_140 1 HEX H32 3 0.06 1.008 ; qtot 0
> 11 opls_158 1 HEX C4 4 -0.12 12.011 ; qtot -0.12
> 12 opls_140 1 HEX H41 4 0.06 1.008 ; qtot -0.06
>
13 opls_140 1 HEX H42 4 0.06 1.008 ; qtot 0
> 14 opls_158 1 HEX C5 5 -0.12 12.011 ; qtot -0.12
> 15 opls_140 1 HEX H51 5 0.06 1.008 ; qtot -0.06
>
16 opls_140 1 HEX H52 5 0.06 1.008 ; qtot 0
> 17 opls_157 1 HEX C6 6 -0.18 12.011 ; qtot -0.18
> 18 opls_140 1 HEX H61 6 0.06 1.008 ; qtot -0.12
>
19 opls_140 1 HEX H62 6 0.06 1.008 ; qtot -0.06
> 20 opls_140 1 HEX H63 6 0.06 1.008 ; qtot 0
>
> [ bonds ]
> ; ai aj funct c0 c1 c2 c3
>
1 2 1
> 1 3 1
> 1 4 1
> 1 5 1
> 5 6 1
> 5 7 1
> 5 8 1
> 8 9 1
> 8 10 1
> 8 11 1
> 11 12 1
>
11 13 1
> 11 14 1
> 14 15 1
> 14 16 1
> 14 17 1
> 17 18 1
> 17 19 1
> 17 20 1
>
> [ pairs ]
> ; ai aj funct c0 c1 c2 c3
>
1 9 1
> 1 10 1
> 1 11 1
> 2 6 1
> 2 7 1
> 2 8 1
> 3 6 1
> 3 7 1
> 3 8 1
> 4 6 1
> 4 7 1
>
4 8 1
> 5 12 1
> 5 13 1
> 5 14 1
> 6 9 1
> 6 10 1
> 6 11 1
> 7 9 1
> 7 10 1
> 7 11 1
> 8 15 1
>
8 16 1
> 8 17 1
> 9 12 1
> 9 13 1
> 9 14 1
> 10 12 1
> 10 13 1
> 10 14 1
> 11 18 1
> 11 19 1
> 11 20 1
>
12 15 1
> 12 16 1
> 12 17 1
> 13 15 1
> 13 16 1
> 13 17 1
> 15 18 1
> 15 19 1
> 15 20 1
> 16 18 1
> 16 19 1
>
16 20 1
>
> [ angles ]
> ; ai aj ak funct c0 c1 c2 c3
> 2 1 3 1
> 2 1 4 1
> 2 1 5 1
> 3 1 4 1
>
3 1 5 1
> 4 1 5 1
> 1 5 6 1
> 1 5 7 1
> 1 5 8 1
> 6 5 7 1
> 6 5 8 1
> 7 5 8 1
>
5 8 9 1
> 5 8 10 1
> 5 8 11 1
> 9 8 10 1
> 9 8 11 1
> 10 8 11 1
> 8 11 12 1
> 8 11 13 1
>
8 11 14 1
> 12 11 13 1
> 12 11 14 1
> 13 11 14 1
> 11 14 15 1
> 11 14 16 1
> 11 14 17 1
> 15 14 16 1
>
15 14 17 1
> 16 14 17 1
> 14 17 18 1
> 14 17 19 1
> 14 17 20 1
> 18 17 19 1
> 18 17 20 1
> 19 17 20 1
>
> [ dihedrals ]
> ; ai aj ak al funct c0 c1 c2 c3 c4 c5
> 2 1 5 6 3
> 2 1 5 7 3
> 2 1 5 8 3
>
3 1 5 6 3
> 3 1 5 7 3
> 3 1 5 8 3
> 4 1 5 6 3
> 4 1 5 7 3
> 4 1 5 8 3
> 1 5 8 9 3
>
1 5 8 10 3
> 1 5 8 11 3
> 6 5 8 9 3
> 6 5 8 10 3
> 6 5 8 11 3
> 7 5 8 9 3
> 7 5 8 10 3
>
7 5 8 11 3
> 5 8 11 12 3
> 5 8 11 13 3
> 5 8 11 14 3
> 9 8 11 12 3
> 9 8 11 13 3
> 9 8 11 14 3
>
10 8 11 12 3
> 10 8 11 13 3
> 10 8 11 14 3
> 8 11 14 15 3
> 8 11 14 16 3
> 8 11 14 17 3
> 12 11 14 15 3
>
12 11 14 16 3
> 12 11 14 17 3
> 13 11 14 15 3
> 13 11 14 16 3
> 13 11 14 17 3
> 11 14 17 18 3
> 11 14 17 19 3
>
11 14 17 20 3
> 15 14 17 18 3
> 15 14 17 19 3
> 15 14 17 20 3
> 16 14 17 18 3
> 16 14 17 19 3
> 16 14 17 20 3
>
> ; Include Position restraint file
> ;#ifdef POSRES
> ;#include "posre.itp"
> ;#endif
>
> ; Include water topology
> ;#include "spc.itp"
>
> ;#ifdef POSRES_WATER
> ; Position restraint for each water oxygen
>
;[ position_restraints ]
> ; i funct fcx fcy fcz
> ; 1 1 1000 1000 1000
> ;#endif
>
> ; Include generic topology for ions
> ;#include "ions.itp"
>
> [ exclusions ]
>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
This is a dangerous place to put this [exclusions] directive, though it works at the moment. Those #include files have other [moleculetype] directives. If you uncomment them, this topology won't work. Put directives related to the same [moleculetype] next to each other!
> [ system ]
> ; Name
> Hexane
>
> [ molecules ]
> ; Compound #mols
> Hexane 125
>
> *************************************************
>
>
> Then I used the following comamnds:
>
> grompp -f em -c Hexane-Stack125.gro -p Hexane-Stack125-nrexcl19.top -o Hexane-Stack125_em >& output.grompp_em
>
>
> mdrun -s Hexane-Stack125_em -o Hexane-Stack125_em -c Hexane-Stack125_b4pr -v >& output.mdrun_em
>
>
> grompp -f md13 -c Hexane-Stack125_b4pr -p Hexane-Stack125-nrexcl19.top -o Hexane-Stack125_md >& output.grompp_md
Redirecting your stdout to a file doesn't excuse you from having to read it! You're having problems, so go and read the output!
> mdrun -rerun Hexane-Stack125_md.tpr.trr
>
>
> -------------------------------------------------------
>
Program mdrun, VERSION 4.0.7
> Source code file: gmxfio.c, line: 737
>
> Can not open file:
> topol.tpr
>
>
> **********************************************************************************************
...because it doesn't exist. Go and find out why grompp didn't create it! :-)
>
>
> Do I need to do this as:
>
>
[exclusions]
>
1 2
>
1 3
>
1 4
>
...
>
1 20
>
2 3
>
3 4
>
.
>
.
>
3 20
>
.
>
>
.
>
>
> since this involves tedious work I would like you to help me with first approach (nrexcl in moleculetype) and let me know what wrong is..
No. Your "tedious" approach works, but you can do it in 19 lines, per the explanation in 5.4, and either is faster than waiting for email replies :-)
Mark
More information about the gromacs.org_gmx-users
mailing list