Skip to content

Strange bug with enumeration of rock-salt system #85

@shyuep

Description

@shyuep

I am trying to run a simple enumeration of a rocksalt-type system to create 1 vacancy in a 2x2x2 supercell of NaCl (I am aware that this is a trivial problem that does not require enumlib whatsoever, given that all atoms are symmetrically equivalent in this system. But it is part of an automated generation of structures at different concentrations).

I am encountering a strange bug. If I create a vacancy on the Na site, the generated input file is

Na31 Cl32
bulk
8.501033 0.000000 0.000000
0.000000 8.501033 0.000000
0.000000 0.000000 8.501033
2
32
0.000000 0.000000 0.000000 0/1
0.000000 0.000000 4.250517 0/1
0.000000 4.250517 0.000000 0/1
0.000000 4.250517 4.250517 0/1
4.250517 0.000000 0.000000 0/1
4.250517 0.000000 4.250517 0/1
4.250517 4.250517 0.000000 0/1
4.250517 4.250517 4.250517 0/1
2.125258 2.125258 0.000000 0/1
2.125258 2.125258 4.250517 0/1
2.125258 6.375775 0.000000 0/1
2.125258 6.375775 4.250517 0/1
6.375775 2.125258 0.000000 0/1
6.375775 2.125258 4.250517 0/1
6.375775 6.375775 0.000000 0/1
6.375775 6.375775 4.250517 0/1
2.125258 0.000000 2.125258 0/1
2.125258 0.000000 6.375775 0/1
2.125258 4.250517 2.125258 0/1
2.125258 4.250517 6.375775 0/1
6.375775 0.000000 2.125258 0/1
6.375775 0.000000 6.375775 0/1
6.375775 4.250517 2.125258 0/1
6.375775 4.250517 6.375775 0/1
0.000000 2.125258 2.125258 0/1
0.000000 2.125258 6.375775 0/1
0.000000 6.375775 2.125258 0/1
0.000000 6.375775 6.375775 0/1
4.250517 2.125258 2.125258 0/1
4.250517 2.125258 6.375775 0/1
4.250517 6.375775 2.125258 0/1
4.250517 6.375775 6.375775 0/1
1 1
0.001
partial
310 310 320
10 10 320

and the enum.x call will fail with the error message "At line 152 of file ../aux_src/makeStr.f90 (unit = 11, file = 'struct_enum.out')
Fortran runtime error: End of file"

But if the vacancy is on the Cl site, the input file is

Na32 Cl31
bulk
8.672776 0.000000 0.000000
0.000000 8.672776 0.000000
0.000000 0.000000 8.672776
2
32
0.000000 0.000000 2.168194 0/1
0.000000 0.000000 6.504582 0/1
0.000000 4.336388 2.168194 0/1
0.000000 4.336388 6.504582 0/1
4.336388 0.000000 2.168194 0/1
4.336388 0.000000 6.504582 0/1
4.336388 4.336388 2.168194 0/1
4.336388 4.336388 6.504582 0/1
2.168194 0.000000 0.000000 0/1
2.168194 0.000000 4.336388 0/1
2.168194 4.336388 0.000000 0/1
2.168194 4.336388 4.336388 0/1
6.504582 0.000000 0.000000 0/1
6.504582 0.000000 4.336388 0/1
6.504582 4.336388 0.000000 0/1
6.504582 4.336388 4.336388 0/1
0.000000 2.168194 0.000000 0/1
0.000000 2.168194 4.336388 0/1
0.000000 6.504582 0.000000 0/1
0.000000 6.504582 4.336388 0/1
4.336388 2.168194 0.000000 0/1
4.336388 2.168194 4.336388 0/1
4.336388 6.504582 0.000000 0/1
4.336388 6.504582 4.336388 0/1
2.168194 2.168194 2.168194 0/1
2.168194 2.168194 6.504582 0/1
2.168194 6.504582 2.168194 0/1
2.168194 6.504582 6.504582 0/1
6.504582 2.168194 2.168194 0/1
6.504582 2.168194 6.504582 0/1
6.504582 6.504582 2.168194 0/1
6.504582 6.504582 6.504582 0/1
1 1
0.001
partial
310 310 320
10 10 320

and enum.x yields the correct number of enumerated structures, i.e., 1. (Please ignore the lattice parameters, those are dummy values).

Given that NaCl is just two intersecting fcc lattices, I see no reason why a Na vacancy would fail while the Cl vacancy input file would succeed. My eyeballs confirm that the two input files are essentially identical except for the expected (0, 0, 0.5) direct coordinates shift.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions