MEAM emb_lin_neg & bkg_dyn

Greetings Users,

Using lammps Mar-15 release.

Working with the MEAM package and transferring work from DYNAMO to LAMMPS and comparing. We are having issues with developing a proper correlation between the two programs. Two flags are listed in the manual stating DYNAMO usage:

emb_lin_neg = integer value to select embedding function for negative densities
                    0 = F(rho)=0
                    1 = F(rho)=-asub*esub*rho (linear in rho, matches DYNAMO)
                    default = 0
bkg_dyn = integer value to select background density formula
                    0 = rho_bkgd=rho_ref_meam(a) (as in the reference structure)
                    1 = rho_bkgd=rho0_meam(a)*Z_meam(a) (matches DYNAMO)
                    default = 0

However, these flags are apparently no longer recognized, even though they are still listed in the manual.

Are there updated flags? Or workarounds to include this information that matches DYNAMO?

Thank you all.

Benjamin Warren Beeler
Nuclear and Radiological Engineering
Georgia Institute of Technology

Maybe Greg can answer this. Why do
you think they are no longer recognized?

They are in the pair_meam.cpp source code,
though I do see the last one is listed as bkgd_dyn
which could be a typo on the doc page.

Steve

Greetings All,

Downloaded and installed newest version of lammps. It recognizes the emb_lin_neg flag and the bkgd_dyn flag. Therefore, typo in the manual.

However, the results from DYNAMO are not matching that from LAMMPS. My meam library file is below. Is there something else I need to be doing to ensure compatibility between LAMMPS and DYNAMO? Thanks.

rc = 4.5
repuls(1,1) = 0.1
attrac(1,1) = 0.1
Cmin(1,1,1)=1
Cmax(1,1,1)=1.9
emb_lin_neg=1
bkgd_dyn=1
erose_form=0
nn2(1,1)=1
augt1=1

Benjamin Warren Beeler
Nuclear and Radiological Engineering
Georgia Institute of Technology

Hi Ben,

Sorry about the documentation typo -- thanks for catching it. To help answer your question, though, exactly what sort of comparison are you doing with dynamo, i.e. what material and what quantities are you comparing? And where are you getting your parameters from? It looks like you have just a single-element system; for that case, there aren't too many places for the codes to differ, and it's probably just an incorrect parameter (alloys can be trickier because of all of the slightly different forms of the potential that show up in the literature). There's no "magic" parameter to get the two codes to match, but pay special attention to the "augt1" parameter (that's where many problems happen, and usually it should be zero; unfortunately the default is 1 for backward compatibility with old input files).

Also, despite what the manual says, try bkgd_dyn = 0; that's a new parameter that was recently added, and maybe it's not behaving as advertised.

Regards,
Greg

Greg Wagner
Sandia National Laboratories
P.O. Box 969 MS 9409 Livermore, CA 94551
Tel: (925) 294-2180 Fax: (925) 294-3410
Email: [email protected]...

I was doing checks of potential energy versus temperature and volume versus temperature. But, I've simplified by system now. I'm looking at systems of two atoms and a system of three atoms. Just running a pure energy calculation, not allowing for relaxation. The system of two atoms had a correctly predicted energy, and it matches exactly with dynamo. The energy for the three atom system, arranged in such a way that the atoms are partially screened from one another, does not match up. What type of screening parameter differences would we see between DYNAMO and LAMMPS?

Also, we have made some change to the meam library file. augt1=0 and changing our zbl settings.

rc = 4.5
repuls(1,1) = 0.1
attrac(1,1) = 0.1
Cmin(1,1,1)=1
Cmax(1,1,1)=1.9
emb_lin_neg=1
bkgd_dyn=1
erose_form=0
nn2(1,1)=1
augt1=0
gsmooth_factor=99
zbl(1,1)=0.5

Benjamin Warren Beeler
Nuclear and Radiological Engineering
Georgia Institute of Technology

LAMMPS and DYNAMO compute the screening in the same way; the only parameters that I can think of that affect only the screening, and not the 2-body interaction, are Cmin and Cmax, but those are easy enough to compare (and the definitions are the same between the two codes). You might also want to compare the form of the Rose energy function ("erose") on the pair_meam documentation page with whatever is used in DYNAMO; in particular, make sure that the attrac and repuls parameters have exactly the same definition. Finally, pay attention to the values of "rc" and "delr" (which you don't specify, but defaults to 0.1) and make sure those match DYNAMO, in case the difference is caused by atom pairs close to the cutoff radius. Other than that, it's hard to say more based on the information you've sent.

Regards,
Greg

Cmin and Cmax are explicitly specified in both codes, and are the same. Have checked the Rose energy function, and actively chose erose=0 to match with dynamo. The attract and repuls parameters have the same definition this way, and are set equally between the two codes. Delr is specified in DYNAMO as 0.1, which is default for LAMMPS. Rc is same between codes.

We can accurately calculate the energy of a two atom system, but cant properly calculate when a third atom and screening is involved.

Will post again if a solution is found to these issues. Thanks for your help.

Benjamin Warren Beeler
Nuclear and Radiological Engineering
Georgia Institute of Technology

Greetings,

Follow up question relating to MEAM switching to a zbl at small distances. It seems the switch is either zbl on or off. How does this switch take place? At a certain radius? At a certain energy? How is this hard coded into LAMMPS and is it variable of fixed? Thanks.

Benjamin Warren Beeler
Nuclear and Radiological Engineering
Georgia Institute of Technology

The relevant code is at the end of the compute_pair_meam subroutine in the meam_setup_done.F file:

c For Zbl potential:
c if astar <= -3
c potential is zbl potential
c else if -3 < astar < -1
c potential is linear combination with zbl potential
c endif
            if (zbl_meam(a,b).eq.1) then
              astar = alpha_meam(a,b) * (r/re_meam(a,b) - 1.d0)
              if (astar.le.-3.d0) then
                phir(j,nv2) = zbl(r,ielt_meam(a),ielt_meam(b))
              else if (astar.gt.-3.d0.and.astar.lt.-1.d0) then
                call fcut(1-(astar+1.d0)/(-3.d0+1.d0),frac)
                phizbl = zbl(r,ielt_meam(a),ielt_meam(b))
                phir(j,nv2) = frac*phir(j,nv2) + (1-frac)*phizbl
              endif
            endif

The comment sums it up; if the zbl flag is on, for astar < -3 the zbl potential is used, for astar > -1 the standard meam pair potential is used, and in between the two are smoothly blended. Here, astar = alpha*(r/re-1). I think this is also what's done in DYNAMO.
       
Regards,
Greg

Greg Wagner
Sandia National Laboratories
P.O. Box 969 MS 9409 Livermore, CA 94551
Tel: (925) 294-2180 Fax: (925) 294-3410
Email: [email protected]...

Thank you. It seems that DYNAMO and LAMMPS to the switch between MEAM and ZBL the same. However, it seems there is still a discrepancy between pure ZBL sections of DYNAMO and LAMMPS. This seems to point to a different in the input of atomic number. However, the atomic number is input in the meam function as ielement. In DYNAMO, it is the same and there is another atomic number specification in the .atm file.

Is there some way to check what atomic number LAMMPS is reading? Or is there some more explicit way of specifying an atomic number to LAMMPS?

Thank you again.

Benjamin Warren Beeler
Nuclear and Radiological Engineering
Georgia Institute of Technology

Hello Benjamin,

did you try to set ibar=-1 in LAMMPS?

I introduced that as a user-settable option in the same patch in order
to match Dynamo results.

-Bohumir

Benjamin knows already,
but for others also trying to match MEAM implementations in Dynamo and LAMMPS:
  I meant ibar=-5, not -1.

Below is an example LAMMPS MEAM potential showing extra flags to match
MEAM in Dynamo and LAMMPS:
  http://code.google.com/p/ase-atomistic-potential-tests/source/browse/trunk/hofs/examples/lammps_meam/meam.alsimgcufe
  http://code.google.com/p/ase-atomistic-potential-tests/source/browse/trunk/hofs/examples/lammps_meam/meamf

-Bohumir