Yang Ye wrote:
David van der Spoel wrote:
Patricia Soto Becerra wrote:
Hi,
I want to implement the rest algorithm (PNAS, 102, 39, 13749-13754. (2005)). I have been following the discussions in the list of a very similar implementation, particularly:

http://www.gromacs.org/pipermail/gmx-developers/2006-January/001493.html http://www.gromacs.org/pipermail/gmx-developers/2006-January/001494.html

Nevertheless, I get the error message:
______________________________________
Source code file: smalloc.c, line: 113
Fatal error:
calloc for ir->opts.nrdf (nelem=1066665789, elsize=4, file tpxio.c, line 487)
-------------------------------------------------------

I just cannot figure it out... Does anybody have a suggestion on how to solve this?

there must be an inconsistency in your tpr file. Did you try to modify that?
This mistake shall not be derived from the changes I suggested. This is the changes I have made. They are declared to be under GPL.

include/types/idef.h
1. in first enum    add    F_EPOT_NOSOL    after F_NRE

include/tgroup.h
2. extern void sum_epot_nosol(t_grpopts *opts,t_groups *grps,real epot[]);

src/kernel/md.c
3. change snew(ener,F_NRE); to snew(ener,F_NRE+1);
4. replace
sum_epot(&(inputrec->opts),grps,ener);
to
sum_epot_nosol(&(inputrec->opts),grps,ener); /*Fill in F_EPOT_NOSOL*/
5. replace
if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && do_per_step(step,repl_ex_nst)) bExchanged = replica_exchange(log,mcr,repl_ex,state,ener[F_EPOT],step,t);
to
if ((repl_ex_nst > 0) && (step > 0) && !bLastStep && do_per_step(step,repl_ex_nst)) bExchanged = replica_exchange(log,mcr,repl_ex,state,ener[F_EPOT_NOSOL],step,t);

/src/mdlib/tgroup.c
6. add
void sum_epot_nosol(t_grpopts *opts,t_groups *grps,real epot[])
{
 int i;
 sum_epot(opts,grps,epot);
 epot[F_EPOT_NOSOL] = epot[F_EPOT] - \
                      (grps->estat.ee[egCOULSR][grps->estat.nn-1] + \
                       grps->estat.ee[egLJSR][grps->estat.nn-1]   + \
                       grps->estat.ee[egLJ14][grps->estat.nn-1]   + \
                       grps->estat.ee[egCOUL14][grps->estat.nn-1] + \
                       grps->estat.ee[egCOULLR][grps->estat.nn-1] + \
                       grps->estat.ee[egLJLR][grps->estat.nn-1]   + \
                       grps->estat.ee[egBHAMSR][grps->estat.nn-1] + \
                       grps->estat.ee[egBHAMLR][grps->estat.nn-1]);
}

Regards,
Yang Ye

Forgot this: above code takes as granted that last temperature coupling
group is solvent. It doesn't take the caution to check the group's content.

Yang Ye


_______________________________________________
gmx-users mailing list    gmx-users@gromacs.org
http://www.gromacs.org/mailman/listinfo/gmx-users
Please don't post (un)subscribe requests to the list. Use the www interface or send it to [EMAIL PROTECTED]
Can't post? Read http://www.gromacs.org/mailing_lists/users.php

Reply via email to