[gmx-developers] modifing nonbonded interactions
Berk Hess
hessb at mpip-mainz.mpg.de
Thu Oct 23 17:21:15 CEST 2008
Nazish Hoda wrote:
> Hi Berk,
>
> When the solvent is non-uniformly distributed around a molecule (say in a
> poor solvent).
> The dielectric constant in the close vicinity of the molecule is different
> from the far field value.
> This is the physical basis for it. I can not reveal much on an open forum
> regarding the problem.
> Since you have done a similar stuff in the past, I would be happy to discuss
> the problem with
> you one-on-one.
>
I agree with that, although you should speak about dielectric permittivity.
But that the permittivity is different in space, does not mean that you
can simply
determine the electrostatic interaction as 1/eps(r) r.
The real solution of the electrostatic equation is much more complex.
A clear artifact would be that two charges just beyond r1 would interact
only
with eps_far, whereas nearly all the medium in between would have eps_near.
> I don't have a good grasp of the full Gromacs source code.
> Making a user table would require much more effort than what I am doing now.
> I want to make sure that the physics is accurately captured before I put
> such an effort.
>
Making a table file with 7 columns is much simpler than what you are
doing now.
Berk
> Thanks, Nazish.
>
> -----Original Message-----
> From: gmx-developers-bounces at gromacs.org
> [mailto:gmx-developers-bounces at gromacs.org] On Behalf Of Berk Hess
> Sent: Thursday, October 23, 2008 10:13 AM
> To: Discussion list for GROMACS development
> Subject: Re: [gmx-developers] modifing nonbonded interactions
>
> Hi,
>
> I don't agree with distance dependent dielectric constants (constant
> already says it here),
> but many people use it. There is no physical basis for having a distance
> dependence.
>
> Things like this can be done easily in any functional form with user
> tables (as long as they are
> distance dependent and not position dependent.
> You can use two epsilons and integrate the force to get a continuous
> potential.
> But if you make a table, why not directly use tanh (even though I still
> won't agree?
>
> Berk
>
> Nazish Hoda wrote:
>
>> Hi Berk,
>>
>> I am doing the second one. I understand your point. But since this a point
>> discontinuity and
>> the jump is not very huge, integration should not be a problem. More
>> accurate
>> way of doing this is to use a ``tanh'' function. Which I might implement
>> later ?
>>
>> Thanks, Nazish.
>>
>>
>>
>> -----Original Message-----
>> From: gmx-developers-bounces at gromacs.org
>> [mailto:gmx-developers-bounces at gromacs.org] On Behalf Of Berk Hess
>> Sent: Thursday, October 23, 2008 6:47 AM
>> To: Discussion list for GROMACS development
>> Subject: Re: [gmx-developers] modifing nonbonded interactions
>>
>> Hi,
>>
>> I don't understand exactly what you want to do here.
>> I can think of two (and maybe more) options:
>>
>> You want to have a different dieletric permittivity in different parts
>> of space?
>> That requires a complex electrostatics solver that can handle this.
>>
>> r is a distance between particles i and j, in that case you would have a
>> discontinuity
>> in the force at r_1, which is non-physical and causes problems with the
>> integration.
>>
>> Berk
>>
>>
>> Nazish Hoda wrote:
>>
>>
>>> Hi Mark,
>>>
>>> I really appreciate your help.
>>> Let me first describe what I am planning to do.
>>> I want to implement a position dependent dielectric constant:
>>> \epsilon = \epsilon_near r < r_1,
>>> \epsilon = \epsilon_far r > r_1.
>>>
>>> Regarding your suggestions, I now understand that I can force it not
>>> to use the optimized subroutines. Though I did not undertand what
>>> David means that I will be better served by using lookup tables; is he
>>> referring to the numbering scheme for LJ, Coloumbic, and water
>>> optimized functions, and how to use this information to refer to the
>>> correct kernel functions?
>>>
>>> Thanks,
>>> Nazish.
>>>
>>> Quoting Mark Abraham <Mark.Abraham at anu.edu.au>:
>>>
>>>
>>>
>>>> Nazish Hoda wrote:
>>>>
>>>>
>>>>> Thanks for the suggestions.
>>>>> I figured out that some of these subroutines are written in
>>>>> assembly languages, which I have not changed. These are files with
>>>>> extension *.s. I have never done assembly language coding so I am
>>>>> trying to figure this out.
>>>>>
>>>>> These are subroutines in the directory nb_kernel_x86_64_sse and the
>>>>> Readme file says it is SSE assembly language. If anyone has any
>>>>> experience with this or knows about any good and easy to follow
>>>>> reading resource that would
>>>>> be of great help.
>>>>>
>>>>>
>>>> Testing your idea in the C or FORTRAN generic kernels first is almost
>>>> certainly a preferable strategy to learning an assembly language.
>>>>
>>>> There are several ways to force GROMACS not to use these assembly
>>>> optimized routines - as you'd see in gmx_setup_kernels in
>>>> src/gmx/nonbonded.c (per my last email) or by looking at the options
>>>> to "configure".
>>>>
>>>> Also, if you're after useful help, telling people your objective will
>>>> mean you're more likely to get advice in the right direction. Your
>>>> first question pre-supposed that the right approach was to modify a
>>>> generic non-bonded kernel. Already you seem to have learned that the
>>>> assembly ones supersede them under some circumstances, so your first
>>>> assumption was flawed. David suggested that you might be better
>>>> served by using lookup tables if you're trying to modify the form of
>>>> the nonbonded functions. If you want to benefit from others'
>>>> expertise, don't constrain their scope by your assumptions :-)
>>>>
>>>> Mark
>>>> _______________________________________________
>>>> 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.
>>>>
>>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> 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 thewww
>>> interface or send it to gmx-developers-request at gromacs.org.
>>>
>>>
>> _______________________________________________
>> 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.
>>
>>
>>
>> _______________________________________________
>> 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.
>>
>>
>
> _______________________________________________
> 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.
>
>
>
> _______________________________________________
> 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.
>
More information about the gromacs.org_gmx-developers
mailing list