[gmx-developers] Writing the electric field (and its gradient) on particular atoms during an MD simulation

Erik Lindahl lindahl at cbr.su.se
Wed Apr 16 13:06:39 CEST 2008


Hi,

On Apr 16, 2008, at 3:04 AM, Mark Abraham wrote:

> John Chodera wrote:
>
>> Mark suggests looking at the .c files in
>> src/gmxlib/nonbonded/nb_kernel/, but I admit that all of these look
>> like gibberish to me.  Is there some sort of guide to the  
>> construction
>> of these nonbonded kernels, and what all these variable names mean?
>
> Yes and no. The nb_kernelxxx_c.c files are auto-generated by the  
> mk_nb*c group of files in the same directory, so the authoritative  
> source is there. You can get comments in these output files by re- 
> running mk_nb with the -comment flag (see -h flag for help). The xxx  
> values indicate various options one might choose for the inner loop  
> evaluations. There are comments at the head of each nb_kernelxxx_c.c  
> file that describe these options. Pick one of the files that seem  
> useful (e.g. xxx == 100 is probably a good idea) and read over the  
> commented version.

Right. The problem is that while the modifications are  
straightforward, they would have to go inside the single most executed  
loop in the entire program, so it would kill your performance - both  
because of extra calculations, and because you're not using SSE  
kernels anymore.

However, if you modify the C kernels to calculate it, it should be  
easy to only call this version every N steps, and use the SSE kernels  
by default.

Cheers,

Erik




More information about the gromacs.org_gmx-developers mailing list