espressomd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ESPResSo-users] Using two different Lennard-Jones potentials for sa


From: Henri Menke
Subject: Re: [ESPResSo-users] Using two different Lennard-Jones potentials for same particles
Date: Sat, 03 Mar 2018 16:50:30 +1300

Hi Reza,

Sorry to hear that it doesn't work.  I must have remembered it incorrectly.

In the tabulated interaction the parameters 'energy' and 'force' take arrays,
i.e. you have to read in the files 'potential.dat' and 'force.dat' first.  On
the other hand you don't even need to save them as files in this case at all
because you can compute the arrays using numpy on the fly.

The Lennard-Jones interaction with the parameters

    system.non_bonded_inter[0,0].lennard_jones.set_params(
        epsilon=0.1, sigma=0.1, cutoff=1.0, shift=0.0)

can be reproduced with a tabulated potential of the form

    import numpy as np

    epsilon = 0.1
    sigma = 0.1
    def V(r):
        return 4*epsilon*((sigma/r)**12 - (sigma/r)**6)
    def F(r):
        return -48*epsilon*((sigma/r)**12 - .5*(sigma/r)**6)/r

    rmin, rmax = 1e-16, 1.0
    r = np.linspace(rmin,rmax,10000)

    system.non_bonded_inter[0,0].tabulated.set_params(
        min=rmin, max=rmax, energy=V(r), force=F(r))

If you need to include shifts and offsets, just modify the functions V(r) and
F(r) according to the documentation at
http://espressomd.org/html/doc/inter_non-bonded.html#lennard-jones-interaction

Kind regards,
Henri

On Fri, 2018-03-02 at 23:54 +0330, Mohammadreza Niknam Hamidabad wrote:
> Hello all,
> 
> I did this for using two different LJ potential for same particles:
> 
> system.non_bonded_inter[1, 2].lennard_jones.set_params(
>     epsilon=ep1, sigma=1.0,
>     cutoff=1.1225, shift="auto", offset=0.0, min=0.0)
> 
> system.non_bonded_inter[2, 1].lennard_jones.set_params(
>     epsilon=ep2, sigma=1.0,
>     cutoff=2.5, shift="auto", offset=0.0, min=1.1225)
> 
> then I used : 
> 
> print (system.non_bonded_inter[1,2].lennard_jones.get_params())
> print (system.non_bonded_inter[2,1].lennard_jones.get_params())
> 
> and I got the same things and this trick didn't work for me (the second
> potential overwrites the first one) so I tried writing a tabulated interaction
> for them sth like this:
> 
> system.non_bonded_inter[1, 2].tabulated.set_params(min=0, max=2.5002,
> energy='potential.dat', force='force.dat')
> 
> Then I got this error: TypeError: a float is required
> Could you help me with this tabulated interaction? I've attached force.dat and
> potential.dat.
> Is it possible I use just one file with couple of columns in it for force and
> potential? Could you help me with its format?
> 
> And the other thing, I use visualization_opengl for visualizing my
> constraints. It's very good But is it possible I can do the same thing with
> VMD. I think in Tcl version, ESPResSo had this feature.
> I know you guys are so busy I appreciate any help you can provide. Thank you
> so much for your time.
> 
> Best regards,
> Reza
>  
> 
> On Tue, Feb 27, 2018 at 3:12 AM, Henri Menke <address@hidden> wrote:
> > Hi Reza,
> > 
> > In your current interaction setup the second one will overwrite the first. 
> > But
> > you can work around it by simply reversing the numbers in the second call.
> > 
> > system.non_bonded_inter[1, 2].lennard_jones.set_params(
> >     epsilon=ep1, sigma=1.0,
> >     cutoff=1.1225, shift="auto", offset=0.0, min=0.0)
> > 
> > system.non_bonded_inter[2, 1].lennard_jones.set_params(
> >     epsilon=ep2, sigma=1.0,
> >     cutoff=2.5, shift="auto", offset=0.0, min=1.1225)
> > 
> > The compiler error is not reproducible for me on Ubuntu 16.04 with libraries
> > and
> > tools from the official repositories.  Do you happen to have a version of
> > FFTW3
> > which you compiled yourself?  In that case it could be that you originally
> > built
> > it without the -fPIC flag but after a system updated (or whatever) your
> > linker
> > is now enforcing position independent executables to mitigate recent Intel
> > processor security bugs.
> > https://en.wikipedia.org/wiki/Position-independent_code
> > 
> > Currently the ESPResSo build system does not have a switch to disable
> > algorithms
> > using FFTW3 because they are an integral part of ESPResSo's feature set. 
> > You
> > could try removing the FFTW3 paths from the CMake configurations file by
> > hand or
> > using the ccmake command line tool.
> > 
> > Kind regards,
> > Henri
> > 
> > On Tue, 2018-02-27 at 01:36 +0330, Mohammadreza Niknam Hamidabad wrote:
> > > Hello all,
> > >
> > > I'm working on behavior of some proteins and I need to use two different
> > LJ
> > > potentials for the same types. some thing like this:
> > >
> > > system.non_bonded_inter[1, 2].lennard_jones.set_params(
> > >     epsilon=ep1, sigma=1.0,
> > >     cutoff=1.1225, shift="auto", offset=0.0, min=0.0)
> > >
> > > system.non_bonded_inter[1, 2].lennard_jones.set_params(
> > >     epsilon=ep2, sigma=1.0,
> > >     cutoff=2.5, shift="auto", offset=0.0, min=1.1225)
> > >
> > > Is it possible? Does the second potential overwrite the first one? If not,
> > > except tabulated interaction, you guys have any suggestion? 
> > >
> > > Also I want to compile newer development version, but every time I
> > encounter
> > > some errors about fftw3 and recompile with -fPIC.
> > >
> > > Do you know how can I solve it? or how can I turn off and disable fftw3?
> > (I
> > > don't need any algorithm for electrostatics or p3m)  
> > > I couldn't find options for make command in installation process to
> > disable
> > > it:
> > > mkdir build
> > > cd build
> > > cmake ..
> > > make
> > >
> > > Best regards, 
> > > Reza
> > >
> > >
> > 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]