Hi,
I am trying to generate SQS structures for a AB2O4 spinel. I come across with the following the value error when I try to put the same element in both A and B sublattices in the target concentrations;
Symbols {‘X’} found on multiple active sublattices.
Mind you that the sublattice letters A and B are different then the ones in AB2O4 spinel structure.
Thanking you in advance for your help.
Could you share the code you’re running so we can reproduce the error, and share the full error message?
I dont remember now, but possibly SQS generation doesnt let you have the same atom-type on two sublattices, is that what you’re trying to do?
Yes, I am trying to have the same atom type on two sublattices in SQS generation. Is code still needed?
Thanks for your interest.
Ok yea I think this is not possible to have when running MC in icet.
One suggestion to make it work could be to change the atom-type of the duplicated atom-type on of the sublattices to something else, then run SQS and then change it back afterwards.
I am trying to make SQS by replacing aluminium with Mg in the MgAl2O4 spinel structure. So this is not possible, is that correct?
Thanks again for your effort.
No that sounds like it should be doable, but I’m guessing you are only swapping Mg onto certain Al sites not all of the Al sites? And that is why you have Al on two sublattices?
I am sending the code I used below:
from ase.io import read
from icet import ClusterSpace, StructureContainer
from icet.tools.structure_generation import generate_sqs_from_supercells
from random import seed
Read the structure from a file
ss=read(‘MgAl2O4.vasp’, format=‘vasp’)
Define the chemical symbols list
chem_symb = [[‘Mg’,‘Al’]]*8+[[‘Al’,‘X’]]*16+[[‘O’]]*32
Set up the cluster space for the supercell slab
cs = ClusterSpace(structure=ss,
cutoffs=[3.70, 3.70, 0.0],
chemical_symbols=chem_symb)
print(cs)
Set up the concentrations for substitution
tc = {
“A”: {“Mg”: 7/8, “Al”: 1/8},
“B”: {“Al”: 16/16, “X”: 0/16}
}
Generate the special quasi random structure
sqs = generate_sqs_from_supercells(cluster_space=cs,
supercells=[ss],
target_concentrations=tc,
n_steps=1000,
random_seed=seed(54321))
To run this code, the file “MgAl2O4.vasp” is needed. However, since I am a new member to the forum, it does not allow me to upload files. Therefore, I am sending it below:
Mg8 Al16 O32
1.0
8.0803911888284503 0.0000000000000000 0.0000000000000005
-0.0000000000000005 8.0803911888284503 0.0000000000000005
0.0000000000000000 0.0000000000000000 8.0803911888284503
Mg Al O
8 16 32
direct
0.2500000000000000 0.7500000000000000 0.7500000000000000 Mg2+
0.0000000000000000 0.5000000000000000 0.5000000000000000 Mg2+
0.2500000000000000 0.2500000000000000 0.2500000000000000 Mg2+
0.0000000000000000 0.0000000000000000 0.0000000000000000 Mg2+
0.7500000000000000 0.7500000000000000 0.2500000000000000 Mg2+
0.5000000000000000 0.5000000000000000 0.0000000000000000 Mg2+
0.7500000000000000 0.2500000000000000 0.7500000000000000 Mg2+
0.5000000000000000 0.0000000000000000 0.5000000000000000 Mg2+
0.6250000000000000 0.3750000000000000 0.3750000000000000 Al3+
0.6250000000000000 0.1250000000000000 0.1250000000000000 Al3+
0.3750000000000000 0.1250000000000000 0.8750000000000000 Al3+
0.3750000000000000 0.8750000000000000 0.1250000000000000 Al3+
0.6250000000000000 0.8750000000000000 0.8750000000000000 Al3+
0.6250000000000000 0.6250000000000000 0.6250000000000000 Al3+
0.3750000000000000 0.6250000000000000 0.3750000000000000 Al3+
0.3750000000000000 0.3750000000000000 0.6250000000000000 Al3+
0.1250000000000000 0.3750000000000000 0.8750000000000000 Al3+
0.1250000000000000 0.1250000000000000 0.6250000000000000 Al3+
0.8750000000000000 0.1250000000000000 0.3750000000000000 Al3+
0.8750000000000000 0.8750000000000000 0.6250000000000000 Al3+
0.1250000000000000 0.8750000000000000 0.3750000000000000 Al3+
0.1250000000000000 0.6250000000000000 0.1250000000000000 Al3+
0.8750000000000000 0.6250000000000000 0.8750000000000000 Al3+
0.8750000000000000 0.3750000000000000 0.1250000000000000 Al3+
0.8612793400000001 0.3612793400000000 0.3612793400000000 O2-
0.3887206599999991 0.1112793400000000 0.1112793400000000 O2-
0.6112793400000001 0.1112793400000000 0.8887206599999991 O2-
0.6112793400000001 0.8887206599999991 0.1112793400000000 O2-
0.6387206599999991 0.1387206599999990 0.3612793400000000 O2-
0.6387206599999991 0.3612793400000000 0.1387206599999990 O2-
0.3887206599999991 0.8887206599999991 0.8887206599999991 O2-
0.8612793400000001 0.1387206599999990 0.1387206599999990 O2-
0.8612793400000001 0.8612793400000001 0.8612793400000001 O2-
0.3887206599999991 0.6112793400000001 0.6112793400000001 O2-
0.6112793400000001 0.6112793400000001 0.3887206599999991 O2-
0.6112793400000001 0.3887206599999991 0.6112793400000001 O2-
0.6387206599999991 0.6387206599999991 0.8612793400000001 O2-
0.6387206599999991 0.8612793400000001 0.6387206599999991 O2-
0.3887206599999991 0.3887206599999991 0.3887206599999991 O2-
0.8612793400000001 0.6387206599999991 0.6387206599999991 O2-
0.3612793400000000 0.3612793400000000 0.8612793400000001 O2-
0.8887206599999991 0.1112793400000000 0.6112793400000001 O2-
0.1112793400000000 0.1112793400000000 0.3887206599999991 O2-
0.1112793400000000 0.8887206599999991 0.6112793400000001 O2-
0.1387206599999990 0.1387206599999990 0.8612793400000001 O2-
0.1387206599999990 0.3612793400000000 0.6387206599999991 O2-
0.8887206599999991 0.8887206599999991 0.3887206599999991 O2-
0.3612793400000000 0.1387206599999990 0.6387206599999991 O2-
0.3612793400000000 0.8612793400000001 0.3612793400000000 O2-
0.8887206599999991 0.6112793400000001 0.1112793400000000 O2-
0.1112793400000000 0.6112793400000001 0.8887206599999991 O2-
0.1112793400000000 0.3887206599999991 0.1112793400000000 O2-
0.1387206599999990 0.6387206599999991 0.3612793400000000 O2-
0.1387206599999990 0.8612793400000001 0.1387206599999990 O2-
0.8887206599999991 0.3887206599999991 0.8887206599999991 O2-
0.3612793400000000 0.6387206599999991 0.1387206599999990 O2-
Thank you for getting back to me and taking the time to address the matter.
Since the X-concentration is zero, you can just use
chem_symb = [['Mg','Al']]*8+[['Al']]*16+[['O']]*32
tc = {
'A': {'Mg': 7/8, 'Al': 1/8},
}
and then I think code should run fine.
(Also for future, note that matsci forum supports nice code formatting that one can use)