[gmx-developers] Increase the scope of dd domains

Xingcheng Lin linxingcheng50311 at gmail.com
Fri Aug 28 20:16:33 CEST 2015


Hi Berk,

Yes, I think I was calling that after the coordinate communication. The
place where I code it in is after the command:

   if (bDoForces)
   {
      post_process_forces(fplog, cr, step, nrnb, wcycle,
        top, box, x, f, vir_force, mdatoms, graph, fr, vsite,
        flags);
   }

After that I use a
if(bNS){
      if (DOMAINDECOMP(cr)){

to make sure it is done every neighboring list step.

Is this correct? BTW, I was coding that in gromacs4.6.3 version (this is
for historical reason because I have coded other unrelated things in other
files).

I have checked that the ga2la_get_home in the first loop find all ai atoms,
but the second loop ga2la_get missed some aj atoms. One of the reasons I
guess is because the missing atom pairs are too far apart (but less than 6
angstroms) in Cartesian space from each other, so that even by including
all cells of the home node it still could not find it. That could be a
problem, but I don't know exactly how -dd find this pair partner in its
neighboring cells.

Thank you,
Xingcheng

On Fri, Aug 28, 2015 at 11:28 AM, <
gromacs.org_gmx-developers-request at maillist.sys.kth.se> wrote:

> Send gromacs.org_gmx-developers mailing list submissions to
>         gromacs.org_gmx-developers at maillist.sys.kth.se
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>
> or, via email, send a message with subject or body 'help' to
>         gromacs.org_gmx-developers-request at maillist.sys.kth.se
>
> You can reach the person managing the list at
>         gromacs.org_gmx-developers-owner at maillist.sys.kth.se
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of gromacs.org_gmx-developers digest..."
>
>
> Today's Topics:
>
>    1. Re: dhdl expanded ensemble
>       (Mirabzadeh, Christopher (mira2978 at vandals.uidaho.edu))
>    2. Re: Increase the scope of dd domains (Berk Hess)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 28 Aug 2015 16:17:40 +0000
> From: "Mirabzadeh, Christopher (mira2978 at vandals.uidaho.edu)"
>         <mira2978 at vandals.uidaho.edu>
> To: "gmx-developers at gromacs.org" <gmx-developers at gromacs.org>,
>         "michael.shirts at virginia.edu" <michael.shirts at virginia.edu>
> Subject: Re: [gmx-developers] dhdl expanded ensemble
> Message-ID: <3686D140-78FF-4961-80B0-C13B05A36EF7 at vandals.uidaho.edu>
> Content-Type: text/plain; charset="utf-8"
>
> Thank you! I will look into redmine and I will also look at those
> variables closer.
>
> Thanks,
>
> -ChrisM
>
> Mirabzadeh, Christopher
> Graduate Research Assistant/Physics Instructor
> Department of Physics
> University of Idaho
> Moscow, Id
> (509)339-5647
>
>
>
> > On Aug 28, 2015, at 5:58 AM, Shirts, Michael R. (mrs5pt) <
> mrs5pt at eservices.virginia.edu> wrote:
> >
> > Yeah, apologies, checking 5.1 in the in the debugger for a binding free
> > energy change, then there are some differences between the dhdl output
> > file when nstdhdl = 20, and the terms in the enerd->term dhdl components
> > at step = 10 matched what the output was in the dhdl file when nstdhdl =
> > 10.  So don't rely on that dhdl, since it is missing some terms.
> >
> > In any case, it would be relatively easy to change the existing machinery
> > to force it do the full calculation dhdl calculation every step.  If you
> > wanted to make it very easy, just set nstdhdl = 1, and introduce a new
> > variable that controls the printing of dhdl to the file alone.
> >
> > ~~~~~~~~~~~~
> > Michael Shirts
> > Associate Professor
> > Department of Chemical Engineering
> > University of Virginia
> > michael.shirts at virginia.edu
> > (434) 243-1821
> >
> >
> >
> > On 8/28/15, 3:11 AM, "Berk Hess" <hess at kth.se> wrote:
> >
> >> No. To be more precise dhdl is only (fully) calculated at each step
> >> where free energies are calculated, i.e. every nstdhdl steps.
> >> To find where the final values are stored, it's often easiest to look in
> >> mdebin.c, in this case at line 1244.
> >>
> >> Cheers,
> >>
> >> Berk
> >>
> >> On 2015-08-28 03:52, Shirts, Michael R. (mrs5pt) wrote:
> >>> Dhdl is automatically calculated at every step if free energies are
> >>> calculated. Look in sum_dhdl -- difference components are stored in
> >>> enerd->term.
> >>>
> >>> Unless it's a new development you would rather keep private for now,
> you
> >>> should consider posting the proposed enhancement on redmine.  You would
> >>> likely get some tips about how to do it in a way that could be more
> >>> easily
> >>> included in later gromcs versions.
> >>>
> >>> Best,
> >>> ~~~~~~~~~~~~
> >>> Michael Shirts
> >>> Associate Professor
> >>> Department of Chemical Engineering
> >>> University of Virginia
> >>> michael.shirts at virginia.edu
> >>> (434) 243-1821
> >>>
> >>>
> >>> From:  <Mirabzadeh>, "Christopher   (mira2978 at vandals.uidaho.edu)"
> >>> <mira2978 at vandals.uidaho.edu>
> >>> Reply-To:  "gmx-developers at gromacs.org" <gmx-developers at gromacs.org>
> >>> Date:  Thursday, August 27, 2015 at 12:20 PM
> >>> To:  "gromacs.org_gmx-developers at maillist.sys.kth.se"
> >>> <gromacs.org_gmx-developers at maillist.sys.kth.se>
> >>> Subject:  [gmx-developers]  dhdl expanded ensemble
> >>>
> >>>
> >>>
> >>> Hello,
> >>>
> >>> What I'm trying to do;
> >>>
> >>> I'm attempting to add functionality to expanded ensemble.
> >>>
> >>>
> >>> What I've done so far;
> >>>
> >>> I've added functionality to accept my mdp options and found pre-written
> >>> functions to take advantage of.
> >>>
> >>> Where I'm stuck;
> >>>
> >>> I need the derivative of the Hamiltonian with respect to lambda at
> every
> >>> md step. I'm having a hard time narrowing down this variable. I know
> >>> it's
> >>> calculated and I see in mdebin.c there is a line that says "/* store_dh
> >>> is
> >>> dE */". Is the derivative "store_dhdl[]=enerd->term[F_DVDL]"?
> >>>   Or, is this already being called somewhere in expanded.c that I can
> >>> take
> >>> advantage of, maybe dfhist?
> >>>
> >>> Is the dhdl automatically calculated? Where is it stored? If dhdl isn?t
> >>> being calculated automatically, is there an mdp option or mdrun flag
> >>> that
> >>> I need?
> >>>
> >>> I appreciate any advice that can be offered.
> >>>
> >>>
> >>> -ChrisM
> >>>
> >>> Mirabzadeh, Christopher
> >>> Graduate Research Assistant/Physics Instructor
> >>> Department of Physics
> >>> University of Idaho
> >>> Moscow, Id
> >>> (509)339-5647
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >
> > --
> > Gromacs Developers mailing list
> >
> > * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
> posting!
> >
> > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> >
> > * For (un)subscribe requests visit
> > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> or send a mail to gmx-developers-request at gromacs.org.
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 28 Aug 2015 18:38:25 +0200
> From: Berk Hess <hess at kth.se>
> To: gmx-developers at gromacs.org
> Subject: Re: [gmx-developers] Increase the scope of dd domains
> Message-ID: <55E08E81.2020207 at kth.se>
> Content-Type: text/plain; charset="windows-1252"; Format="flowed"
>
> Hi,
>
> I don't see why your current code doesn't work with 1D DD.
>
> You do call this code after the coordinate communication has been done?
>
> Cheers,
>
> Berk
>
> On 08/28/2015 05:45 PM, Xingcheng Lin wrote:
> > Hi Berk,
> >
> > The 1D dd where I used 2 MPI processes with -dd 1 1 2 can only work if
> > I do not turn on the -dlb yes. It seems the problem will always exist
> > if I have atom pairs separated in two domains.
> >
> > You mentioned I could get all pairs by only looking at home atoms for
> > the i-atoms. Does it mean I can even make the code like this, by
> > changing ga2la_get for aj to ga2la_get_home?
> >
> > // NP is number of tested pairs recorded in an array;
> > // If atom ai is one of the home atoms in a node, we start testing if
> > aj is
> > available by the same node;
> > // rlist = 1.0nm, Coulombtype  =  Cut-off, cutoff-scheme = Verlet,
> ns_type
> > = grid, pbc = xyz;
> >
> > int Npairs = 0;
> > for (i=0; i<NP; ++i)
> > {
> >      int ai = datai[i] ;
> >      int localai;
> >      // Examine if ai it is within the home atoms index;
> >      if (ga2la_get_home(cr->dd->ga2la, ai, &localai))
> >      {
> >         aj = dataj[i] ;
> >         // Examine if aj is available by local node;;
> >         if (ga2la_get_home(cr->dd->ga2la, aj, &localaj))
> >         {
> >            FILE *fp;
> >            fp = fopen("pairs.dat","a");
> >
> >            fprintf(fp, "%d\t%d\n", ai, aj);
> >            fclose(fp);
> >
> >            r_N = 0.6 ;
> >            pbc_dx(&pbc, x[localai], x[localaj], dx) ;
> >            dr2 = iprod( dx, dx ) ;
> >            dr  = sqrt( dr2 ) ;
> >            if (dr < r_N)
> >            {
> >                Npairs += 1;
> >            }
> >         }
> >      }
> >  }
> >
> >
> > On Fri, Aug 28, 2015 at 2:22 AM,
> > <gromacs.org_gmx-developers-request at maillist.sys.kth.se
> > <mailto:gromacs.org_gmx-developers-request at maillist.sys.kth.se>> wrote:
> >
> >     Send gromacs.org_gmx-developers mailing list submissions to
> >     gromacs.org_gmx-developers at maillist.sys.kth.se
> >     <mailto:gromacs.org_gmx-developers at maillist.sys.kth.se>
> >
> >     To subscribe or unsubscribe via the World Wide Web, visit
> >
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> >
> >     or, via email, send a message with subject or body 'help' to
> >     gromacs.org_gmx-developers-request at maillist.sys.kth.se
> >     <mailto:gromacs.org_gmx-developers-request at maillist.sys.kth.se>
> >
> >     You can reach the person managing the list at
> >     gromacs.org_gmx-developers-owner at maillist.sys.kth.se
> >     <mailto:gromacs.org_gmx-developers-owner at maillist.sys.kth.se>
> >
> >     When replying, please edit your Subject line so it is more specific
> >     than "Re: Contents of gromacs.org_gmx-developers digest..."
> >
> >
> >     Today's Topics:
> >
> >        1. Increase the scope of dd domains (Xingcheng Lin)
> >        2. Re: energy group computation (Berk Hess)
> >        3. Re: dhdl expanded ensemble (Berk Hess)
> >        4. Re: Increase the scope of dd domains (Berk Hess)
> >
> >
> >
>  ----------------------------------------------------------------------
> >
> >     Message: 1
> >     Date: Thu, 27 Aug 2015 23:35:30 -0500
> >     From: Xingcheng Lin <linxingcheng50311 at gmail.com
> >     <mailto:linxingcheng50311 at gmail.com>>
> >     To: gromacs.org_gmx-developers at maillist.sys.kth.se
> >     <mailto:gromacs.org_gmx-developers at maillist.sys.kth.se>
> >     Subject: [gmx-developers] Increase the scope of dd domains
> >     Message-ID:
> >
> >     <CAPugp-HQjXb8hYKJO9i-1fMSfpzQxe=qZCOo8tPwPQrFraKEmw at mail.gmail.com
> <mailto:qZCOo8tPwPQrFraKEmw at mail.gmail.com>>
> >     Content-Type: text/plain; charset="utf-8"
> >
> >     Hi,
> >
> >     I am trying to encode a "on the fly" calculation for the number of
> >     atom
> >     pairs within some distance (for example here, 6 angstroms).
> >
> >     The problem happens when doing parallel domain decomposition.
> >     Specifically,
> >     when two particles reside in different domains, gromacs is not able
> to
> >     recognize this pair. I am trying to use ga2la_get_home and
> >     ga2la_get for
> >     calculation, here is the code:
> >
> >     // NP is number of tested pairs recorded in an array;
> >     // If atom ai is one of the home atoms in a node, we start testing
> >     if aj is
> >     available by the same node;
> >     // rlist = 1.0nm, Coulombtype  =  Cut-off, cutoff-scheme = Verlet,
> >     ns_type
> >     = grid, pbc = xyz;
> >
> >     int Npairs = 0;
> >     for (i=0; i<NP; ++i)
> >     {
> >          int ai = datai[i] ;
> >          int localai;
> >          // Examine if ai it is within the home atoms index;
> >          if (ga2la_get_home(cr->dd->ga2la, ai, &localai))
> >          {
> >             aj = dataj[i] ;
> >             // Examine if aj is available by local node;;
> >             if (ga2la_get(cr->dd->ga2la, aj, &localaj, &localcell))
> >             {
> >                FILE *fp;
> >                fp = fopen("pairs.dat","a");
> >
> >                fprintf(fp, "%d\t%d\n", ai, aj);
> >                fclose(fp);
> >
> >                r_N = 0.6 ;
> >                pbc_dx(&pbc, x[localai], x[localaj], dx) ;
> >                dr2 = iprod( dx, dx ) ;
> >                dr  = sqrt( dr2 ) ;
> >                if (dr < r_N)
> >                {
> >                    Npairs += 1;
> >                }
> >             }
> >          }
> >      }
> >
> >     The results show some atom pairs, while atoms less than 6
> >     angstroms apart,
> >     are missing here. I increase rlist, but it doesn't help. Is there
> >     any way
> >     to increase the scope of atoms available in each domain so that
> >     the missing
> >     atoms can be detected?
> >
> >     Or are there any mistakes out of my notice in this code?
> >
> >     Thank you,
> >     Xingcheng
> >     -------------- next part --------------
> >     An HTML attachment was scrubbed...
> >     URL:
> >     <
> http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20150827/208ffc05/attachment.html
> >
> >
> >     ------------------------------
> >
> >     Message: 2
> >     Date: Fri, 28 Aug 2015 09:04:56 +0200
> >     From: Berk Hess <hess at kth.se <mailto:hess at kth.se>>
> >     To: gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
> >     Subject: Re: [gmx-developers] energy group computation
> >     Message-ID: <55E00818.1060601 at kth.se <mailto:55E00818.1060601 at kth.se
> >>
> >     Content-Type: text/plain; charset="windows-1252"; Format="flowed"
> >
> >     Hi,
> >
> >     This is a use, not a development question. Please post such
> >     questions to
> >     gmx-users.
> >
> >     But the quick answer is that although it's technically possible to
> >     calculate this number, this number is useless (and indeed high).
> >
> >     Cheers,
> >
> >     Berk
> >
> >     On 2015-08-27 19:00, ANTHONY C MANSON wrote:
> >     > Hello:
> >     >
> >     > I am trying to estimate the polar solvation energy of a 76 residue
> >     > protein at standard conditions.  I am using the gromacs 4.5.3 dp
> >     release.
> >     > I have set up a simulation with the solvated (using spce water)
> >     protein.
> >     > I have defined two energygrps: Protein SOL in the *.mdp file.
> >     > I have run the simulation and have then run g_energy on the
> >     *.edr file.
> >     > I get the following choices from g_energy:
> >     >
> >     >   1  Bond       2  Angle            3 Proper-Dih.      4
> >     Improper-Dih.
> >     >   5  LJ-14      6  Coulomb-14       7  LJ-(SR)         8
> >     Disper.-corr.
> >     > 9  Coulomb-(SR)    10  Coul.-recip.    11 Potential       12
> >     >  Kinetic-En.
> >     >  13  Total-Energy    14  Temperature     15 Pres.-DC        16
> >     Pressure
> >     >  17  Vir-XX        18  Vir-XY          19 Vir-XZ          20
> Vir-YX
> >     >  21  Vir-YY  22  Vir-YZ          23  Vir-ZX     24  Vir-ZY
> >     >  25  Vir-ZZ          26  Pres-XX         27 Pres-XY   28  Pres-XZ
> >     >  29  Pres-YX         30  Pres-YY   31  Pres-YZ        32  Pres-ZX
> >     >  33  Pres-ZY   34  Pres-ZZ         35 #Surf*SurfTen   36  Mu-X
> >     >  37  Mu-Y              38  Mu-Z
> >     >  39  Coul-SR:Protein-Protein         40 LJ-SR:Protein-Protein
> >     >  41  Coul-14:Protein-Protein             42 LJ-14:Protein-Protein
> >     >  43  Coul-SR:Protein-SOL   44 LJ-SR:Protein-SOL
> >     >  45  Coul-14:Protein-SOL             46 LJ-14:Protein-SOL
> >     >  47  Coul-SR:SOL-SOL     48  LJ-SR:SOL-SOL
> >     >  49  Coul-14:SOL-SOL                     50 LJ-14:SOL-SOL
> >     >  51  T-System
> >     >
> >     > I pick Coul-SR:Protein-SOL as a component of the polar solvation
> >     energy.
> >     > I note that the energy magnitude seems extremely high:
> >     >
> >     > Energy              Average   Err.Est.  RMSD  Tot-Drift
> >     >
> >
>  -------------------------------------------------------------------------------
> >     > Coul-SR:Protein-SOL        -8343.86         46   193.457  -192.93
> >     >  (kJ/mol)
> >     >
> >     > This seems unreasonable to me.  I wanted to understand how mdrun
> >     > was calculating this value.  Perhaps it is accumulating energies
> >     over
> >     > many frames.  What part of the code (force.c ...) handles this
> >     > calculation so I can verify its action.
> >     >
> >     > Also, I tried running g_enemat on this with the following
> >     groups.dat file.
> >     >
> >     > 2
> >     > Protein
> >     > SOL
> >     >
> >     > I use the command:
> >     >
> >     > g_enemat  -f ub_short.edr -e 100
> >     >
> >     > and get:
> >     >
> >     > Opened ub_short.edr as double precision energy file
> >     > Will read groupnames from in! putfile
> >     > Read 2 groups
> >     > group 0WARNING! could not find group (null):Protein-Protein (0,0)in
> >     > energy file
> >     > WARNING! could not find group (null):Protein-SOL (0,1)in energy
> file
> >     > group 1WARNING! could not find group (null):SOL-SOL (1,1)in
> >     energy file
> >     >
> >     > Will select half-matrix of energies with 6 elements
> >     > Read frame: 1000, Time: 100.000e  100.000
> >     > Will build energy half-matrix of 2 groups, 6 elements, over 1001
> >     frames
> >     > Segmentation fault
> >     >
> >     >
> >     > Cheers
> >     > Anthony Manson Ph.D.
> >     >
> >     >
> >
> >     -------------- next part --------------
> >     An HTML attachment was scrubbed...
> >     URL:
> >     <
> http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20150828/17c227f6/attachment-0001.html
> >
> >
> >     ------------------------------
> >
> >     Message: 3
> >     Date: Fri, 28 Aug 2015 09:09:49 +0200
> >     From: Berk Hess <hess at kth.se <mailto:hess at kth.se>>
> >     To: gmx-developers at gromacs.org
> >     <mailto:gmx-developers at gromacs.org>, "michael.shirts at virginia.edu
> >     <mailto:michael.shirts at virginia.edu>"
> >             <michael.shirts at virginia.edu
> >     <mailto:michael.shirts at virginia.edu>>
> >     Subject: Re: [gmx-developers] dhdl expanded ensemble
> >     Message-ID: <55E0093D.2000804 at kth.se <mailto:55E0093D.2000804 at kth.se
> >>
> >     Content-Type: text/plain; charset=windows-1252; format=flowed
> >
> >     No. To be more precise dhdl is only (fully) calculated at each step
> >     where free energies are calculated, i.e. every nstdhdl steps.
> >     To find where the final values are stored, it's often easiest to
> >     look in
> >     mdebin.c, in this case at line 1244.
> >
> >     Cheers,
> >
> >     Berk
> >
> >     On 2015-08-28 03:52, Shirts, Michael R. (mrs5pt) wrote:
> >     > Dhdl is automatically calculated at every step if free energies are
> >     > calculated. Look in sum_dhdl -- difference components are stored in
> >     > enerd->term.
> >     >
> >     > Unless it's a new development you would rather keep private for
> >     now, you
> >     > should consider posting the proposed enhancement on redmine.
> >     You would
> >     > likely get some tips about how to do it in a way that could be
> >     more easily
> >     > included in later gromcs versions.
> >     >
> >     > Best,
> >     > ~~~~~~~~~~~~
> >     > Michael Shirts
> >     > Associate Professor
> >     > Department of Chemical Engineering
> >     > University of Virginia
> >     > michael.shirts at virginia.edu <mailto:michael.shirts at virginia.edu>
> >     > (434) 243-1821 <tel:%28434%29%20243-1821>
> >     >
> >     >
> >     > From:  <Mirabzadeh>, "Christopher   (mira2978 at vandals.uidaho.edu
> >     <mailto:mira2978 at vandals.uidaho.edu>)"
> >     > <mira2978 at vandals.uidaho.edu <mailto:mira2978 at vandals.uidaho.edu>>
> >     > Reply-To:  "gmx-developers at gromacs.org
> >     <mailto:gmx-developers at gromacs.org>" <gmx-developers at gromacs.org
> >     <mailto:gmx-developers at gromacs.org>>
> >     > Date:  Thursday, August 27, 2015 at 12:20 PM
> >     > To:  "gromacs.org_gmx-developers at maillist.sys.kth.se
> >     <mailto:gromacs.org_gmx-developers at maillist.sys.kth.se>"
> >     > <gromacs.org_gmx-developers at maillist.sys.kth.se
> >     <mailto:gromacs.org_gmx-developers at maillist.sys.kth.se>>
> >     > Subject:  [gmx-developers]  dhdl expanded ensemble
> >     >
> >     >
> >     >
> >     > Hello,
> >     >
> >     > What I'm trying to do;
> >     >
> >     > I'm attempting to add functionality to expanded ensemble.
> >     >
> >     >
> >     > What I've done so far;
> >     >
> >     > I've added functionality to accept my mdp options and found
> >     pre-written
> >     > functions to take advantage of.
> >     >
> >     > Where I'm stuck;
> >     >
> >     > I need the derivative of the Hamiltonian with respect to lambda
> >     at every
> >     > md step. I'm having a hard time narrowing down this variable. I
> >     know it's
> >     > calculated and I see in mdebin.c there is a line that says "/*
> >     store_dh is
> >     > dE */". Is the derivative "store_dhdl[]=enerd->term[F_DVDL]"?
> >     >    Or, is this already being called somewhere in expanded.c that
> >     I can take
> >     > advantage of, maybe dfhist?
> >     >
> >     > Is the dhdl automatically calculated? Where is it stored? If
> >     dhdl isn?t
> >     > being calculated automatically, is there an mdp option or mdrun
> >     flag that
> >     > I need?
> >     >
> >     > I appreciate any advice that can be offered.
> >     >
> >     >
> >     > -ChrisM
> >     >
> >     > Mirabzadeh, Christopher
> >     > Graduate Research Assistant/Physics Instructor
> >     > Department of Physics
> >     > University of Idaho
> >     > Moscow, Id
> >     > (509)339-5647 <tel:%28509%29339-5647>
> >     >
> >     >
> >     >
> >     >
> >     >
> >
> >
> >
> >     ------------------------------
> >
> >     Message: 4
> >     Date: Fri, 28 Aug 2015 09:20:44 +0200
> >     From: Berk Hess <hess at kth.se <mailto:hess at kth.se>>
> >     To: gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
> >     Subject: Re: [gmx-developers] Increase the scope of dd domains
> >     Message-ID: <55E00BCC.4040506 at kth.se <mailto:55E00BCC.4040506 at kth.se
> >>
> >     Content-Type: text/plain; charset="windows-1252"; Format="flowed"
> >
> >     Hi,
> >
> >     Gromacs uses a neutral-territory eighth-shell domain decomposition
> >     method. So you can get all pairs by only looking at home-atoms for
> the
> >     i-atoms. You code should work though for 1D decomposition, is that
> >     the case?
> >
> >     To get this to work with 2D or 3D decomposition, you need to replace
> >     ga2la_get_home by ga2la_get and then only consider i-j pairs where
> the
> >     cell values are in the cell pair list given by dd->comm->zones.
> cell_i
> >     should be < zones->nizone and zones->izone[cell_i].j0 <= cell_j <
> >     zones->izone[cell_j].j1 When the DD cells get smaller than the
> cutoff,
> >     you need to use cell % zones->n.
> >
> >     Note that since the ga2la_get calls are expensive, such an approach
> is
> >     only efficient when you have only few atoms / atom pairs.
> >     For improving performance, it can help to first lookup locala and
> cell
> >     for all atoms and store them and then do the pair double loop after
> >     that. And instead of using sqrt, check dr2 < r_N*r_N.
> >
> >     Cheers,
> >
> >     Berk
> >
> >     On 2015-08-28 06:35, Xingcheng Lin wrote:
> >     > Hi,
> >     >
> >     > I am trying to encode a "on the fly" calculation for the number of
> >     > atom pairs within some distance (for example here, 6 angstroms).
> >     >
> >     > The problem happens when doing parallel domain decomposition.
> >     > Specifically, when two particles reside in different domains,
> >     gromacs
> >     > is not able to recognize this pair. I am trying to use
> >     ga2la_get_home
> >     > and ga2la_get for calculation, here is the code:
> >     >
> >     > // NP is number of tested pairs recorded in an array;
> >     > // If atom ai is one of the home atoms in a node, we start
> >     testing if
> >     > aj is available by the same node;
> >     > // rlist = 1.0nm, Coulombtype  =  Cut-off, cutoff-scheme = Verlet,
> >     > ns_type  = grid, pbc = xyz;
> >     >
> >     > int Npairs = 0;
> >     > for (i=0; i<NP; ++i)
> >     > {
> >     >      int ai = datai[i] ;
> >     >      int localai;
> >     >      // Examine if ai it is within the home atoms index;
> >     >      if (ga2la_get_home(cr->dd->ga2la, ai, &localai))
> >     >      {
> >     >         aj = dataj[i] ;
> >     >         // Examine if aj is available by local node;;
> >     >         if (ga2la_get(cr->dd->ga2la, aj, &localaj, &localcell))
> >     >         {
> >     >            FILE *fp;
> >     >            fp = fopen("pairs.dat","a");
> >     >
> >     >            fprintf(fp, "%d\t%d\n", ai, aj);
> >     >            fclose(fp);
> >     >
> >     >            r_N = 0.6 ;
> >     >            pbc_dx(&pbc, x[localai], x[localaj], dx) ;
> >     >            dr2 = iprod( dx, dx ) ;
> >     >            dr  = sqrt( dr2 ) ;
> >     >            if (dr < r_N)
> >     >            {
> >     >                Npairs += 1;
> >     >            }
> >     >         }
> >     >      }
> >     >  }
> >     >
> >     > The results show some atom pairs, while atoms less than 6 angstroms
> >     > apart, are missing here. I increase rlist, but it doesn't help. Is
> >     > there any way to increase the scope of atoms available in each
> >     domain
> >     > so that the missing atoms can be detected?
> >     >
> >     > Or are there any mistakes out of my notice in this code?
> >     >
> >     > Thank you,
> >     > Xingcheng
> >     >
> >     >
> >     >
> >     >
> >
> >     -------------- next part --------------
> >     An HTML attachment was scrubbed...
> >     URL:
> >     <
> http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20150828/682fbb3e/attachment.html
> >
> >
> >     ------------------------------
> >
> >     --
> >     Gromacs Developers mailing list
> >
> >     * Please search the archive at
> >     http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
> >     before posting!
> >
> >     * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> >
> >     * For (un)subscribe requests visit
> >
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> >     or send a mail to gmx-developers-request at gromacs.org
> >     <mailto:gmx-developers-request at gromacs.org>.
> >
> >     End of gromacs.org_gmx-developers Digest, Vol 136, Issue 21
> >     ***********************************************************
> >
> >
> >
> >
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20150828/9bbc372e/attachment.html
> >
>
> ------------------------------
>
> --
> Gromacs Developers mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
> posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> or send a mail to gmx-developers-request at gromacs.org.
>
> End of gromacs.org_gmx-developers Digest, Vol 136, Issue 23
> ***********************************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20150828/3c7d354e/attachment-0001.html>


More information about the gromacs.org_gmx-developers mailing list