EON -- how to deal with charges on the atom
Moderator: moderators
EON -- how to deal with charges on the atom
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.
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.
Re: EON -- how to deal with charges on the atom
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.
Re: EON -- how to deal with charges on the atom
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
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
Re: EON -- how to deal with charges on the atom
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.
Re: EON -- how to deal with charges on the atom
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.
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 17487 times
-
- in.lammps.ini
- (420 Bytes) Downloaded 17945 times
-
- config.ini
- (468 Bytes) Downloaded 18504 times
Re: EON -- how to deal with charges on the atom
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.
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.
Re: EON -- how to deal with charges on the atom
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.
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.
Re: EON -- how to deal with charges on the atom
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.
Re: EON -- how to deal with charges on the atom
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?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.
Re: EON -- how to deal with charges on the atom
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.
Re: EON -- how to deal with charges on the atom
Excellent sir! It's working now. I ran a much larger system with both EON and LAMMPS and the energies are consistent.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.
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
Re: EON -- how to deal with charges on the atom
In EON you should always specify the job type in the main section (reference manual). For hyperdynamics your config.ini file should look like: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:
Am I doing something wrong here?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
Code: Select all
[Main]
job=hyperdynamics
temperature=300
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 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.
Re: EON -- how to deal with charges on the atom
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.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.
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 19763 times
-
- config.ini
- (696 Bytes) Downloaded 21106 times
Re: EON -- how to deal with charges on the atom
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.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.