Dear All, I need to hack mdrun in rather complex way and need some help from people, who understand Gromacs internals really well. My problem is the following. Each N MD steps I want to pass current coordinates and forces to custom function, which transforms them in a certain way (doesn't matter how at this point). Then I want to pass modified forces and coordinates back and continue simulation. Currently I got stuck with domain decomposition stuff. I figured out how to collect data on master node and pass it to my function. However, I have no idea how to distribute it back to all nodes correctly after modification. Here is my additional code in md.c so far:
... /* ######## END FIRST UPDATE STEP ############## */ /* ######## If doing VV, we now have v(dt) ###### */ /* ################## START TRAJECTORY OUTPUT ################# */ /* Some preparations goes here */ ... /* Collecting data*/ if (DOMAINDECOMP(cr)) { /*We need to collect x and f only*/ dd_collect_vec(cr->dd,state_local,state_local->x,state_global->x); dd_collect_vec(cr->dd,state_local,f_local,f_global); } if (MASTER(cr)) { printf("Collected %d atoms at step: %d\n",top_global->natoms,step); /* Actually pass data */ pass_to(top_global->natoms, t, state_global->x, f_global); ... /* Processing data here */ ... /* Get data back */ pass_from(state_global->x, f_global); } ... if (DOMAINDECOMP(cr)){ /* Here I have to redistribute it back and I'm totally stuck :( */ } The problem is that functions like dd_distribute_vector(...) are only used deep inside domain decomposition code and they use some data structures, which are not exposed in .h files. Any hints are deeply appreciated! Regards, Semen
-- gmx-users mailing list gmx-users@gromacs.org http://lists.gromacs.org/mailman/listinfo/gmx-users Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting! Please don't post (un)subscribe requests to the list. Use the www interface or send it to gmx-users-requ...@gromacs.org. Can't post? Read http://www.gromacs.org/Support/Mailing_Lists