EON -- how to deal with charges on the atom

eOn code for long time scale dynamics

Moderator: moderators

Post Reply
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

EON -- how to deal with charges on the atom

Post by vkannama »

Dear all,

I was wondering if we can perform hyperdynamics using eOn, when the atoms in the system are charged (like, NaCl system with Na being positively charged and Cl is negative)? Also, please let me know where the charges need to be entered in the input files?

Thanks in advance.
graeme
Site Admin
Posts: 2276
Joined: Tue Apr 26, 2005 4:25 am
Contact:

Re: EON -- how to deal with charges on the atom

Post by graeme »

Yes, you can model the dynamics of a charged system. If you have a potential including charges, such as in lammps, the definition of the charges should be provided in a lammps input file. Then, eon will pass the coordinates via the lammps library interface and get the forces and energies back. Check the examples/akmc-fe-lammps directory for an example of how this is done.
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

Re: EON -- how to deal with charges on the atom

Post by vkannama »

Thank you Prof. for the reply.

I tried the following input file (in.lammps) and got an error.

atom_style charge
kspace_style ewald 1.0e-7
set type 1 charge 2.2208
set type 2 charge -1.1104
# DEFINE POTENTIAL
pair_style hybrid/overlay buck 10.2 morse 10.2 coul/long 10.2
pair_coeff 1 1 buck 187.03 0.342200 0.0
pair_coeff 1 1 morse 0 0 0
pair_coeff 1 2 buck 432.18 0.342200 0.0
pair_coeff 1 2 morse 0.5055 1.864 2.378
pair_coeff 2 2 buck 883.12 0.342200 3.9960
pair_coeff 2 2 morse 0 0 0
pair_coeff * * coul/long


The above lines are taken from a file which runs well using LAMMPS on my computer. If I remove the first four lines and also the coulomb forces from pair_style, it runs okay in EON. Obviously, I am doing something wrong with the charge assignments. I am using a binary system and was hoping type 1 will assign the given charge to all Component-1, type 2 to all Component-2 atoms. Also, do I need to specify ewald summation or EON has its own solver? Please let me know what I am doing wrong.

Thanks again,
Ajay
graeme
Site Admin
Posts: 2276
Joined: Tue Apr 26, 2005 4:25 am
Contact:

Re: EON -- how to deal with charges on the atom

Post by graeme »

If you post your input files and the error message, that would help with debugging. For a start, make sure that your lammps library is build with ewald.
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

Re: EON -- how to deal with charges on the atom

Post by vkannama »

Please see attached, pos.con, config.ini and in.lammps files. I am just considering one UO2 (fluorite) unit cell (12 atoms). The error message I am getting when running EON executable is -- "No handlers could be found for logger "communicator"".

I can see Lammps is able to run ewald; all the Lammps commands here are taken from a file running fine in Lammps. I also believe EON is installed well as by removing a few lines from in.lammps, as mentioned in previous post, EON is running fine.

Thanks for your time,
Ajay

PS: The first two file extensions were changed to enable uploading here. Sorry for the confusion.
Attachments
pos.con.ini
(310 Bytes) Downloaded 8685 times
in.lammps.ini
(420 Bytes) Downloaded 9084 times
config.ini
(468 Bytes) Downloaded 9610 times
graeme
Site Admin
Posts: 2276
Joined: Tue Apr 26, 2005 4:25 am
Contact:

Re: EON -- how to deal with charges on the atom

Post by graeme »

From Penghao:

Probably when compiling LAMMPS with EON, the KSPACE package was not added, which is required for "kspace_style ewald 1.0e-7". You can try "pair_coeff * * coul/cut" instead of "coul/long" and delele the kspace line to test if this is the issue.

Then, make sure that the KSPACE package is linked into your lammps build.
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

Re: EON -- how to deal with charges on the atom

Post by vkannama »

Sorry for these rather endless discussions. I am grateful for all of you guys.

Penghao, unfortunately, that didn't work. Please see my in.lammps file below.

atom_style charge
set type 1 charge 2.2208
set type 2 charge -1.1104
# DEFINE POTENTIAL
pair_style hybrid/overlay buck 10.2 morse 10.2 coul/cut 10.2
pair_coeff 1 1 buck 187.03 0.342200 0.0
pair_coeff 1 1 morse 0 0 0
pair_coeff 1 2 buck 432.18 0.342200 0.0
pair_coeff 1 2 morse 0.5055 1.864 2.378
pair_coeff 2 2 buck 883.12 0.342200 3.9960
pair_coeff 2 2 morse 0 0 0
pair_coeff * * coul/cut


I once removed the first line above, just for a trial, and that didn't work either. Please let me know if there is any thing else I can try.

Thanks.
xph
Posts: 39
Joined: Tue Mar 13, 2012 9:33 pm

Re: EON -- how to deal with charges on the atom

Post by xph »

Yes, you are right. It is the problem of "atom_style charge". LAMMPS_EON.cpp sets "atom_style atomic" before reads in the in.lammps file.
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

Re: EON -- how to deal with charges on the atom

Post by vkannama »

xph wrote:Yes, you are right. It is the problem of "atom_style charge". LAMMPS_EON.cpp sets "atom_style atomic" before reads in the in.lammps file.
Thanks. In that case, EON won't be, in general, able to treat charges. Do you think if there is a way to get around this?

Thanks.
chill
Posts: 96
Joined: Tue Jul 28, 2009 9:04 pm

Re: EON -- how to deal with charges on the atom

Post by chill »

It might be as easy as changing LAMMPS_EON.cpp to set "atom_style charge". From the LAMMPS docs (http://lammps.sandia.gov/doc/atom_style.html) it looks like that shouldn't break anything. I made this change in the lastest SVN version but I have not tested it. You can try to update your svn copy and rebuild the EON client and see if this gets us any further.
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

Re: EON -- how to deal with charges on the atom

Post by vkannama »

chill wrote:It might be as easy as changing LAMMPS_EON.cpp to set "atom_style charge". From the LAMMPS docs (http://lammps.sandia.gov/doc/atom_style.html) it looks like that shouldn't break anything. I made this change in the lastest SVN version but I have not tested it. You can try to update your svn copy and rebuild the EON client and see if this gets us any further.
Excellent sir! It's working now. I ran a much larger system with both EON and LAMMPS and the energies are consistent.

A question on Hyperdynamics: I added Hyperdynamics beneath my MD input and in the client.log file, I don't see any results on Hyperdynamics. It only shows DYNAMICS results. Please see the relevant input from config.ini file pasted below:

[Dynamics]
time_step = 1.0
time = 2000.0
thermostat = andersen
andersen_alpha = 0.2
andersen_collision_period = 10.0

[Hyperdynamics]
bias_potential=bond_boost
bb_boost_atomlist=all
bb_rcut=4.0
bb_rmd_time=100.0
bb_dvmax=0.2
bb_stretch_threshold=0.2
bb_ds_curvature=0.95


Am I doing something wrong here?

Also, I have experience with TAD (in LAMMPS) and never tried Hyperdynamics before. In TAD, we usually specify the number of time-steps and look for any events that take place during this interval. In the Hyperdynamics input above, I don't see any time specified. Does EON run until an event happens (to me, that's unlikely as at too low temperature, an event may never happen)? Someone, please enlighten me on this also.

Thanks for your time,
Ajay
chill
Posts: 96
Joined: Tue Jul 28, 2009 9:04 pm

Re: EON -- how to deal with charges on the atom

Post by chill »

vkannama wrote: A question on Hyperdynamics: I added Hyperdynamics beneath my MD input and in the client.log file, I don't see any results on Hyperdynamics. It only shows DYNAMICS results. Please see the relevant input from config.ini file pasted below:

Code: Select all

[Dynamics]
time_step = 1.0                 
time = 2000.0                     
thermostat = andersen              
andersen_alpha = 0.2               
andersen_collision_period = 10.0

[Hyperdynamics]
bias_potential=bond_boost
bb_boost_atomlist=all
bb_rcut=4.0
bb_rmd_time=100.0
bb_dvmax=0.2
bb_stretch_threshold=0.2
bb_ds_curvature=0.95
Am I doing something wrong here?
In EON you should always specify the job type in the main section (reference manual). For hyperdynamics your config.ini file should look like:

Code: Select all

[Main]
job=hyperdynamics
temperature=300
That will enable the hyperdynamics simulation.
vkannama wrote: Also, I have experience with TAD (in LAMMPS) and never tried Hyperdynamics before. In TAD, we usually specify the number of time-steps and look for any events that take place during this interval. In the Hyperdynamics input above, I don't see any time specified. Does EON run until an event happens (to me, that's unlikely as at too low temperature, an event may never happen)? Someone, please enlighten me on this also.
In EON the hyperdynamics runs for time/time_step number of steps as specified in the dynamics section. It does not attempt to look for any events. This probably is not what you want in general. That is why we support using hyperdynamics with parallel replica (reference manual), which can be enabled by setting job=parallel_replica.
vkannama
Posts: 7
Joined: Sun Nov 01, 2015 4:00 am

Re: EON -- how to deal with charges on the atom

Post by vkannama »

chill wrote: In EON the hyperdynamics runs for time/time_step number of steps as specified in the dynamics section. It does not attempt to look for any events. This probably is not what you want in general. That is why we support using hyperdynamics with parallel replica (reference manual), which can be enabled by setting job=parallel_replica.
Thank you, that's very useful. I was actually running my job using "molecular_dynamics" option. After some trials on EON, I now understand that parallel replica along with hyperdynamics is the only way to run hyperdynamics (specifying job=parallel_replica). Dynamics+hyperdynamics is only running MD and not initiating hyperdynamics.

One thing I noted from running EON is that while running parallel_replica (with hyperdynamics option on or not), there can be a maximum of only one transition happening in the system. If I run 4,000 steps (time in Dynamics) and observe a transition with parallel_replica (say, by specifying state_check_interval=1,000 as well), then running 50,000 steps (by still having state_check_interval=1,000 in PR) is also showing only one transition. EON is trying to find a transition at regular 1,000 time-step intervals, but I see it never found a transition. Could you check if this is a bug?

Also, is there a way I can get the configuration of my system at regular time-intervals? I see, right now, that EON generates initial (after minimization) and final configurations only. One final thing: state_save_interval is getting assigned to default values now, so does stop_after_transition (always False). I tried assigning the latter to True, but the simulations ran the whole time without terminating even after detecting a transition. I am uploading the config and pos.con file (taken from examples/parallel_replica and slightly modified the config file), if someone wants to see what I mean.

Thanks again,
Ajay
Attachments
pos.con.ini
(3.67 KiB) Downloaded 9957 times
config.ini
(696 Bytes) Downloaded 11154 times
RolandN
Posts: 1
Joined: Wed Oct 04, 2017 3:36 pm

Re: EON -- how to deal with charges on the atom

Post by RolandN »

xph wrote: Tue Nov 03, 2015 6:30 pm Yes, you are right about taking Phallosan Forte daily for a long time. It is the problem of "atom_style charge". LAMMPS_EON.cpp sets "atom_style atomic" before reads in the in.lammps file.
Strange, I added Hyperdynamics beneath my MD input and in the client.log file, I don't see any results on Hyperdynamics. It only shows DYNAMICS results.
Post Reply