tdep-developers/tdep

exit code 4: symmetry error

ganesh028 opened this issue · 24 comments

Hello there,
I am wondering how I could get rid of this symmetry error.

Best regards,
Dr. Ganesh K Nayak

  • The error message is the following. I get them when I try to extract forces for a test run with a few md calculations for my structures.

... reading unitcell
... min cutoff: 2.68274
... max cutoff: 5.60156
analysis.zip

DETERMINING SYMMETRY OF INTERACTION TENSORS
... constructed distance tables (0.01014s)
... built singlets
... built pairs
... built prototype tuplets (0.00019s)
... expanded symmetry operations (0.10744s)
... reducing pairs 100.0% |========================================| 0.00046s

ERROR
exit code 4: symmetry error

Could not locate tuplet

occurs in file: lo_symmetry_of_interactions_tuplets.f90
occurs on line: 730
active rank: 0 out of 1


  • The command I executed is: extract_forceconstants -rc2 1
  • The input files are generated by the generate_structure and tdep_parse_output OUTCAR --temperature 600
flokno commented

Hi @ganesh028 , this is a symmetry error. TDEP does not accept input structures without precise symmetry. There is some documentation here on how to inspect the structure and fix the inputs: https://github.com/tdep-developers/tdep-tutorials/tree/main/00_preparation/refine_symmetry

Hi @flokno, I already used this option, and if you please have look to after the refinement and the file infile.ssposcar, it has perfect cubic symmetry. Am I missing something here?

flokno commented

The infile.ucposcar I checked was space group 1 (P1). I.e. no symmetry

Yes, that is because it is produce from the vasp calculations. However, the symmetry is Fd-3m, 227. Is it able set this manually somehow or how one needs progress from here?

flokno commented

Please make sure to use 100% symmetric structure input files. We do not support a symmetry tolerance like phonopy as this means we basically would guess a structure for you, which is not desirable in a controlled workflow.

Oh, I see. So there is no other wat to treat the non-symmetry structure.

flokno commented

Symmetry is at the core of the TDEP implementation, see e.g. Fig. 4 in O. Hellman et al., Phys Rev B 87, 104111 (2013).

Thank you, Flokno, for the help!

Can I manually change the symmetry tolerance because the default structure has more than 10^10? I guess this would help me to keep the symmetry intact of my structure.

flokno commented

Hi, I am afraid not. We require the input structures to be symmetric.

flokno commented

@ganesh028 does anything stop you from symmetrizing the input structures as suggested in the tutorials?

flokno commented

Let us know if you want to revisit this issue.

Yes, I would like to revisit this issue:
Even if I have symmetry, I get the same error related to the symmetry.

Here is the input file with which I am trying to process tdep properties.
infile.zip

Yes, I would like to revisit this issue: Even if I have symmetry, I get the same error related to the symmetry.

Here is the input file with which I am trying to process tdep properties. infile.zip

This is just a structure file for a supercell. Symmetry is inferred entirely from the unitcell, i.e., infile.ucposcar.

Here is the infile.ucposcar, which retains the symmetry as well. The supercell was created from the unitcell.

infile.zip

Can you please provide a comprehensive error description and complete input files?

There are two kinds of errors:

The system I sent earlier it has the following error (and I can sent OUTCAR because it's to heavy and it generated from the supercell):

  1. Command: extract_forceconstants -rc2 5 --temperature 1723
    Error:
    ... reading unitcell
    ... min cutoff: 2.93707
    ... max cutoff: 6.80208

DETERMINING SYMMETRY OF INTERACTION TENSORS
... constructed distance tables (0.02301s)
... built singlets
... built pairs
... built prototype tuplets (0.00041s)
... expanded symmetry operations (0.03266s)
... reducing pairs 100.0% |========================================| 0.00048s
... mapping pairs 100.0% |========================================| 0.04572s
N singlet shells: 3
shell: 1 4
shell: 2 2
shell: 3 6
N pair shells: 19
shell: 1 6 0.0000000000000000
shell: 2 2 0.0000000000000000
shell: 3 4 0.0000000000000000
shell: 4 24 2.5487458980889879
shell: 5 12 2.5834343262263668
shell: 6 12 2.6528464537734835
shell: 7 24 2.9341314339359337
shell: 8 48 3.0414466911662719
shell: 9 24 3.0625449252991630
shell: 10 4 3.0953754989251614
shell: 11 12 3.1777490887272344
shell: 12 4 4.0744280010455300
shell: 13 24 4.3527954586453061
shell: 14 48 4.4747841469546108
shell: 15 24 4.5348849837795822
shell: 16 24 4.6894632982940179
shell: 17 48 4.7434350601431943
shell: 18 24 4.7726287812920400
shell: 19 24 4.8105557759359900
... determined singlet nullspace
... determined pair nullspace
... determined dielectric tensor nullspace
... determined Born charge nullspace
free(): corrupted unsorted chunks

Program received signal SIGABRT: Process abort signal.

In this system (attached)

  1. Command: same as earlier
    Error:
    ... reading unitcell
    ... min cutoff: 2.75736
    ... max cutoff: 6.31769

DETERMINING SYMMETRY OF INTERACTION TENSORS
... constructed distance tables (0.02549s)
... built singlets
... built pairs
... built prototype tuplets (0.00059s)
... expanded symmetry operations (0.02867s)
... reducing pairs 100.0% |========================================| 0.00062s
... mapping pairs 100.0% |========================================| 0.05897s
N singlet shells: 3
shell: 1 4
shell: 2 2
shell: 3 6
N pair shells: 27
shell: 1 6 0.0000000000000000
shell: 2 2 0.0000000000000000
shell: 3 4 0.0000000000000000
shell: 4 24 2.3892784389429575
shell: 5 12 2.3994639800133979
shell: 6 12 2.4639331628118959
shell: 7 24 2.7546072557681338
shell: 8 48 2.8355462679250714
shell: 9 24 2.8455198433336246
shell: 10 4 2.9167230509867670
shell: 11 12 2.9555542536689186
shell: 12 4 3.8392686361838901
shell: 13 24 4.0943423408877964
shell: 14 48 4.1687165559086568
shell: 15 24 4.2119488239428522
shell: 16 24 4.3926149966612709
shell: 17 48 4.4239062645655363
shell: 18 24 4.4395798114520995
shell: 19 24 4.4747522994771067
shell: 20 24 4.7456365848817672
... and 7 more shells
... determined singlet nullspace

ERROR
exit code 4: symmetry error

Not as invariant as it should be.

 occurs in file: lo_symmetry_of_interactions_nullspace.f90

malloc(): invalid size (unsorted)

Program received signal SIGABRT: Process abort signal.

infile.zip

@ganesh028 it is still a symmetry error. Please apply the symmetry refinement as documented in the tutorials and try again

I used, that's ow I reached the symmetry, if one look at the infile.ucposcar, they are in the perfect symmetry (P63/mmc or 194).

The structure you sent reads:

 cell
        1.000000000000
     4.86339714282529     0.00000014618456     0.00000000000000
    -2.43169869801219     4.21182540128708     0.00000000000000
     0.00000000000000     0.00000000000000     7.67853727236778
  Nb Si Ni
  4 2 6
 Direct coordinates
   0.33333333333333   0.66666666666667   0.43992699700000  site  1 species 1: Nb
   0.66666666666667   0.33333333333333   0.56007300300000  site  2 species 1: Nb
   0.66666666666667   0.33333333333333   0.93992699700000  site  3 species 1: Nb
   0.33333333333333   0.66666666666667   0.06007300300000  site  4 species 1: Nb
   0.00000000000000   0.00000000000000   0.00000000000000  site  5 species 2: Si
   0.00000000000000   0.00000000000000   0.50000000000000  site  6 species 2: Si
   0.16887599966667   0.33775199933333   0.75000000000000  site  7 species 3: Ni
   0.83112400033333   0.66224800066667   0.25000000000000  site  8 species 3: Ni
   0.66224800066667   0.83112400033333   0.75000000000000  site  9 species 3: Ni
   0.33775199933333   0.16887599966667   0.25000000000000  site 10 species 3: Ni
   0.16887599966667   0.83112400033333   0.75000000000000  site 11 species 3: Ni
   0.83112400033333   0.16887599966667   0.25000000000000  site 12 species 3: Ni

after I apply ase_geometry_refine infile.ucposcar -prim I get

Nb Si Ni
 1.0000000000000000
     4.8633971428252938    0.0000000000000000    0.0000000000000000
    -2.4316985714126469    4.2118254743793599    0.0000000000000000
     0.0000000000000000    0.0000000000000000    7.6785372723677803
 Nb  Si  Ni
   4   2   6
Cartesian
 -0.0000000000000004  2.8078836495862398  3.3779958435853277
  2.4316985714126473  1.4039418247931201  4.3005414287824522
  2.4316985714126473  1.4039418247931199  7.2172644797692183
 -0.0000000000000006  2.8078836495862403  0.4612727925985625
  0.0000000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.0000000000000000  3.8392686361838901
  0.0000000000000000  1.4225524748146794  5.7589029542758352
  2.4316985714126473  2.7892729995646803  1.9196343180919451
  1.1997319900067120  3.5005492369720206  5.7589029542758352
  1.2319665814059351  0.7112762374073397  1.9196343180919451
 -1.1997319900067118  3.5005492369720206  5.7589029542758352
  3.6314305614193589  0.7112762374073397  1.9196343180919451

and TDEP has no problem to find the symmetry.

Yes, the structure I sen you, the command "ase_geometry_info infile.ucposcar" give me this:

Read 'infile.ucposcar'
... autodetect format 'vasp' for 'infile.ucposcar'
Geometry info
input geometry: Atoms(symbols='Nb4Si2Ni6', pbc=True, cell=[[4.86339714282529, 1.4618456e-07, 0.0], [-2.43169869801219,
4.21182540128708, 0.0], [0.0, 0.0, 7.67853727236778]])
Symmetry prec.: 1e-10
Number of atoms: 12
Species: Nb (4), Ni (6), Si (2)
Periodicity: [ True True True]
Positions: x (Å) y (Å) z (Å)
0, 'Nb': -0.000000 2.807884 3.377996
1, 'Nb': 2.431699 1.403942 4.300541
2, 'Nb': 2.431699 1.403942 7.217264
3, 'Nb': -0.000000 2.807884 0.461273
4, 'Si': 0.000000 0.000000 0.000000
5, 'Si': 0.000000 0.000000 3.839269
6, 'Ni': -0.000000 1.422552 5.758903
7, 'Ni': 2.431698 2.789273 1.919634
8, 'Ni': 1.199732 3.500549 5.758903
9, 'Ni': 1.231967 0.711276 1.919634
10, 'Ni': -1.199732 3.500549 5.758903
11, 'Ni': 3.631431 0.711276 1.919634
Lattice (Å):
[[ 4.86339714e+00 1.46184560e-07 0.00000000e+00]
[-2.43169870e+00 4.21182540e+00 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 7.67853727e+00]]
Cubicness: 0.475
Largest Cutoff: 2.106 Å
Bounding box rad.: 3.325 Å
Nearest neighbor: 2.389 Å

Cell lengths and angles:
a, b, c (Å): 4.8634 4.8634 7.6785
α, β, γ (°): 90.0000 90.0000 120.0000
Volume: 157.285 Å3
Volume per atom: 13.107 Å
3

Report symmetry information from spglib:
Spacegroup: P6_3/mmc (194)
Wyckoff positions: 2a, 4f, 6h
Equivalent atoms: 4
0, 24, 66

The stuture has symmetry:

Report symmetry information from spglib:
Spacegroup: P6_3/mmc (194)

Then I convert it to supercell, run vasp and when I try to get the forces with "extract_forceconstants -rc2 5", it gave me the error

Yes, and it may sound odd to you, but the off-diagonal tiny value in the lattice matrix throws off TDEP.

I gave advice on how to solve the problem and it works on my end, the issue is therefore solved as far as I am concerned.

I am really sorry, maybe I did not grasp it. Would you please explain me?
A few things what I understood:

  1. do I need to replace the "infile.ucposcar" with "infile.ucposcar.primitive" (from the command "ase_geometry_refine infile.ucposcar -prim")
  2. or I have to do new calculations with "infile.ucposcar.primitive"

Thank you for your patience.