[gmx-developers] domain decomposition issue

francesco oteri francesco.oteri at gmail.com
Tue Aug 14 21:46:17 CEST 2012


Dear gromacs users and developers,
I have a question related to domain decomposition:

I have to tun multiple simulation and every step
1) In the sim X the state of simY (and simY need state from sim X)
2) getting the potential energy
3) continuing



right now I am testing the point1. In particular I exchange the state
between simulation X and Y two times:
the first time this permit at simulation X to get the state of Y ( and
vicecersa) while the second exchange
restore the original situatation.

I inserted the following code between lines

   if ((repl_ex_nst > 0) && (step > 0) && !bLastStep &&
            do_per_step(step,repl_ex_nst))
        {

and

bExchanged = replica_exchange(fplog, cr, repl_ex, state_global,
enerd->term, state,step,t);


//Performing the first exchange
  if (DOMAINDECOMP(cr))
        {
  dd_collect_state(cr->dd,state,state_global);

 if (MASTER(cr))
        {
          exchange_state(cr->ms, Y, state_global);
       }

  if (DOMAINDECOMP(cr))
    {
           dd_partition_system(fplog,step,cr,TRUE,1,

state_global,top_global,ir,
                                                  state,NULL,mdatoms,top,fr,
                                                  vsite,shellfc,constr,
                                                 nrnb,wcycle,FALSE);

    }

//Now every node should have its part of the Y simulation
//Getting potential energy



//Performing the second exchange
if (MASTER(cr))
  {
    exchange_state(cr->ms, Y, state_global);  // I don't need to  call
because nothing changed state_global  dd_collect_state
  }

  if (DOMAINDECOMP(cr))
    {
           dd_partition_system(fplog,step,cr,TRUE,1,

state_global,top_global,ir,
                                                  state,NULL,mdatoms,top,fr,
                                                  vsite,shellfc,constr,
                                                 nrnb,wcycle,FALSE);

    }

//Now state Y is back to simulation Y


The problem is that this simple code gives me problem, in particular it
gives LINCS problem
in do_force the step after my code is executed.

Since forcing bNS=TRUE solves the problem, I guess there is some issue with
neighbor list updating
but I dont understand why.

I observed that in, after the last dd_partition_system, syste->natoms had
an other value compared with the value
it has at the before my code is executed.

What is my error?

Thank you in advance,



                                    Francesco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20120814/6b332b98/attachment.html>


More information about the gromacs.org_gmx-developers mailing list