[gmx-developers] Computing prot pot ener in the gmx code
David van der Spoel
spoel at xray.bmc.uu.se
Thu Jan 12 18:56:17 CET 2006
pascal.baillod at epfl.ch wrote:
> Hello,
>
> I thank you very much for your reply, David and Yang! May I ask you some more
> details?
>
>
>
>>Add one more item after F_NRE
>>This is one trick so that you just need to change the memory allocation
>>in md.c to snew(ener,F_NRE+x); x is 1 for this case. If you put new
>>energy part before F_NRE
>
>
> 2) ..would this new energy part be F-EPOTprot (as re-used in my new routine
> sum_epotPROT below)? Should I first define it, as you suggest, in idef.h, as:
>
> typedef atom_id t_iatom;
>
> /* this MUST correspond to the
> t_interaction_function[F_NRE] in gmxlib/ifunc.c */
> enum {
> F_BONDS,
> /* ......... a list of other contributrions*/
> F_DVDL,
> F_DVDLKIN,
> F_NRE, /* This number is for the total number of energies */
> F-EPOTprot /* MY NEW CONTRIBUTION, after F_NRE */
Put it before F_NRE.
> };
>
>
> 3) Are the indexes in my proposed routine sum_epotPROT (copied here below)
> correct? Is the final summing loop still correct?
>
> 4) Finally, do you know how I could include any missing PME terms? David was
> mentioning some, contained in another file and from which I should also derive
> a protein specific contribution..
>
> 5) Are there any workshops on the gromacs code and development issues, or any
> other way or reference to get familiar with the routines, data structures and
> variables?
>
> Thank you very much for your help!
>
> Regards,
>
> Pascal
>
>
>
> ---------- my adapted routine sum_epotPROT (added to tgroup.c) -----------
>
>
> void sum_epotPROT(t_grpopts *opts,t_groups *grps,real epot[])
> {
> int i;
>
> /* Accumulate energies */
> epot[F_COUL_SR][0] = sum_v(grps->estat.nn,grps->estat.ee[egCOULSR][0]);
> epot[F_COUL_SR][1] = sum_v(grps->estat.nn,grps->estat.ee[egCOULSR][1]);
> epot[F_COUL_SR][2] = sum_v(grps->estat.nn,grps->estat.ee[egCOULSR][2]);
Epot is a one dimensional array
> epot[F_LJ][0] = sum_v(grps->estat.nn,grps->estat.ee[egLJSR][0]);
> epot[F_LJ][1] = sum_v(grps->estat.nn,grps->estat.ee[egLJSR][1]);
> epot[F_LJ][2] = sum_v(grps->estat.nn,grps->estat.ee[egLJSR][2]);
> epot[F_LJ14][0] = sum_v(grps->estat.nn,grps->estat.ee[egLJ14][0]);
> epot[F_LJ14][1] = sum_v(grps->estat.nn,grps->estat.ee[egLJ14][1]);
> epot[F_LJ14][2] = sum_v(grps->estat.nn,grps->estat.ee[egLJ14][2]);
> epot[F_COUL14][0] = sum_v(grps->estat.nn,grps->estat.ee[egCOUL14][0]);
> epot[F_COUL14][1] = sum_v(grps->estat.nn,grps->estat.ee[egCOUL14][1]);
> epot[F_COUL14][2] = sum_v(grps->estat.nn,grps->estat.ee[egCOUL14][2]);
> epot[F_COUL_LR][0] += sum_v(grps->estat.nn,grps->estat.ee[egCOULLR][0]);
> epot[F_COUL_LR][1] += sum_v(grps->estat.nn,grps->estat.ee[egCOULLR][1]);
> epot[F_COUL_LR][2] += sum_v(grps->estat.nn,grps->estat.ee[egCOULLR][2]);
> epot[F_LJ_LR][0] += sum_v(grps->estat.nn,grps->estat.ee[egLJLR][0]);
> epot[F_LJ_LR][1] += sum_v(grps->estat.nn,grps->estat.ee[egLJLR][1]);
> epot[F_LJ_LR][2] += sum_v(grps->estat.nn,grps->estat.ee[egLJLR][2]);
> /* lattice part of LR doesnt belong to any group
> * and has been added earlier
> */
> epot[F_BHAM][0] = sum_v(grps->estat.nn,grps->estat.ee[egBHAMSR][0]);
> epot[F_BHAM][1] = sum_v(grps->estat.nn,grps->estat.ee[egBHAMSR][1]);
> epot[F_BHAM][2] = sum_v(grps->estat.nn,grps->estat.ee[egBHAMSR][2]);
> epot[F_BHAM_LR][0] = sum_v(grps->estat.nn,grps->estat.ee[egBHAMLR][0]);
> epot[F_BHAM_LR][1] = sum_v(grps->estat.nn,grps->estat.ee[egBHAMLR][1]);
> epot[F_BHAM_LR][2] = sum_v(grps->estat.nn,grps->estat.ee[egBHAMLR][2]);
>
> epot[F_EPOTprot] = 0;
> for(i=0; (i<F_EPOTprot); i++)
> if (i != F_DISRESVIOL && i != F_ORIRESDEV && i !=
> F_DIHRESVIOL)
> epot[F_EPOTprot] += epot[i][0];
> epot[F_EPOTprot] += epot[i][1];
> epot[F_EPOTprot] += epot[i][2];
> }
>
> *******************************************************************************
> Pascal Baillod (PhD student)
> *******************************************************************************
> Swiss Federal Institute of Technology EPFL Tel: +41-(0)21-693-0322
> Institute of Chemical Sciences and Engineering , Fax: +41-(0)21-693-0320
> Laboratory of Computational Chemistry and Biochemistry pascal.baillod at epfl.ch
> Room BCH 4121, Avenue Forel, http://lcbcpc21.epfl.ch
> CH-1015 Lausanne
> *******************************************************************************
> _______________________________________________
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-developers-request at gromacs.org.
--
David.
________________________________________________________________________
David van der Spoel, PhD, Assoc. Prof., Molecular Biophysics group,
Dept. of Cell and Molecular Biology, Uppsala University.
Husargatan 3, Box 596, 75124 Uppsala, Sweden
phone: 46 18 471 4205 fax: 46 18 511 755
spoel at xray.bmc.uu.se spoel at gromacs.org http://xray.bmc.uu.se/~spoel
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
More information about the gromacs.org_gmx-developers
mailing list