mmaps with concentration constraint

Dear Axel,

I am trying to perform a structure generation using mmaps for BaZrO3:Y ionic system. As it has a coupled sub-lattice on (Zr,Y) site and (O, Va) site, along with neutral-charge constraint, I defined it in crange.in:

1Y+2O>=1.19
1Y+2O<=1.21
1*O>=0.5

lat.in is:

4.200 4.200 4.200 90 90 90
1 0 0
0 1 0
0 0 1
0.5 0.5 0.5 Ba
0.0 0.0 0.0 Zr, Y
0.5 0.0 0.0 O, Va
0.0 0.5 0.0 O, Va
0.0 0.0 0.5 O, Va

Initial mmaps -d & generates 3 directories, but since then it kind of never generate new structures.

I tried mpimmaps, -c=5 or 6, -mp=135, but none makes structure-generation efficient.

I learned from previous threads in this forum, that people specify chemical potential constraint to enforce structure search along the neutral line BaZrO3-Ba2Y2O5, but I have no clue how to do that.

My three dirs are:

cat 0/str.out
4.200000 0.000000 0.000000
0.000000 4.200000 0.000000
0.000000 0.000000 4.200000
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
-0.000000 -0.000000 1.000000
1.000000 1.000000 1.000000 Zr
0.500000 1.000000 1.000000 O
1.000000 0.500000 1.000000 O
1.000000 1.000000 0.500000 O
0.500000 0.500000 0.500000 Ba

cat 19/str.out
4.200000 0.000000 0.000000
0.000000 4.200000 0.000000
0.000000 0.000000 4.200000
0.000000 -1.000000 0.000000
0.000000 0.000000 -1.000000
2.000000 0.000000 0.000000
1.000000 -1.000000 -1.000000 Y
0.500000 -1.000000 -1.000000 Va
1.000000 -0.500000 -1.000000 O
1.000000 -1.000000 -0.500000 O
0.500000 -0.500000 -0.500000 Ba
2.000000 -1.000000 -1.000000 Y
1.500000 -1.000000 -1.000000 O
2.000000 -0.500000 -1.000000 O
2.000000 -1.000000 -0.500000 O
1.500000 -0.500000 -0.500000 Ba

cat 151/str.out
4.200000 0.000000 0.000000
0.000000 4.200000 0.000000
0.000000 0.000000 4.200000
0.000000 -1.000000 0.000000
0.000000 0.000000 -1.000000
3.000000 0.000000 0.000000
1.000000 -1.000000 -1.000000 Y
0.500000 -1.000000 -1.000000 Va
1.000000 -0.500000 -1.000000 O
1.000000 -1.000000 -0.500000 O
0.500000 -0.500000 -0.500000 Ba
2.000000 -1.000000 -1.000000 Y
1.500000 -1.000000 -1.000000 O
2.000000 -0.500000 -1.000000 O
2.000000 -1.000000 -0.500000 O
1.500000 -0.500000 -0.500000 Ba
3.000000 -1.000000 -1.000000 Zr
2.500000 -1.000000 -1.000000 O
3.000000 -0.500000 -1.000000 O
3.000000 -1.000000 -0.500000 O
2.500000 -0.500000 -0.500000 Ba

Thank you!

The reason for your troubles is that the width of the concentration range in the crange.in file is too narrow:

  1. It is not a good idea to try to fit a cluster expansion (CE) using only charge-balanced structure. The resulting CE has no information about the fact that deviations from charge neutrality are energetically costly. So when you later run simulations with this CE, you may get unexpected unphysical structures.
  2. Another problem is that imposing charge neutrality causes the point correlations in the generated structures to be colinear. The code then tries in vain to generate more and more structure in hopes of finding one structure that would break this colinearity. A solution to this problem is to widen the range of allowed compositions (say 0.95 and 1.45 instead of 1.19 and 1.21 in your example). (Once the code has found 4 structures, you could in principle restart mmaps with your original narrow crange.in and it would work. But this does not solve problem 1, so I wouldn’t recommend it.)
  3. BTW, the option to limit the volume of generated structures is -mv not -mp .

I’ve run your example and the input files are otherwise ok.