Manually control clusters used by maps for structure choice

Good afternoon:

I want to manually specify the cluster pool used by maps. Normally, maps finds the cluster pool using a CV scheme.

The documentation for maps says:

I am worried about the "the file can change" part. I need maps to find the next structure to be added based on a fixed pool of my own choosing.

My question is:
If I say touch ready
(assuming nbclusters.in is present as well) does maps choose the best structure based on its own cluster pool found internally or from the one I specify in nbclusters.in?

Thank you

Maps won’t change the cluster choice you specified. The help file was meant to say that you can change the cluster choices but then you need to type touch refresh. Maps Will select the best structures based on your cluster choices. If there are colinearities maps may have to force some Eci to zero.

Thank you; sounds good, that is the behavior I expected, but wanted to make sure.

In addition to this:

  • In nbclusters.in I specify how many clusters I want of each orbit

Can I also force maps to read a particular clusters file (i.e., choose ECI only among those clusters)?

sorry not implemented. BTW using the commands
corrdump -2=… -3=… -clus
editing clusters.out
and using
clusterexpand energy
gives you full control over the cluster expansion. But it does not search for optimal structures to propose…

Dear Prof. van de Walle,

For the procedure using clusterexpand you mentioned above, how could I get a comparison between the exact energy and predicted one? Something like the fit.out from maps.

Best,
Penghao Xiao

Try:

lsfit -x=allcorr.out -y=allenergy.out -ty -p -e

Thank you. It works perfectly.

I find both "cv" and "lsfit" can read in a weight file, but "clusterexpand" cannot. The advantage of "lsfit" is with the same data set, the "cv -d" command may give an error of
"No pure A or Pure B structure found in calc_formation", but lsfit runs without any problem.

To summarize the procedure to run a fully customized fitting:

  1. edit clusters.out to select the clusters wanted
  2. run command "clusterexpand" to generate the allcorr.out and allenergy.out file
    (or you can loop over folders and run "corrdump -c -s ‘+path_of_clusters.out +’ >> corr.in" by your own script)
  3. "lsfit -x=corr.in -y=energy.in -w weight.in" to print the eci
  4. "lsfit -x=corr.in -y=energy.in -w weight.in -ty -p -e" to compare the energies and print the errors

The proposed procedure looks correct. Thanks for sharing your findings!
Sorry the cv code is a bit underdeveloped (it can’t handle all that maps or mmaps can). I have not changed it for years, because I assumed that users would use maps or mmaps.