pyprocar icon indicating copy to clipboard operation
pyprocar copied to clipboard

fermi2d have problem after rotation

Open chouyoudou opened this issue 3 years ago • 1 comments

Dear Sir/Madam,

I used pyprocar to plot fermi2d spin texture.

In the beginning, everything works well.

However, after I rotate the structure, some errors came out.





| _ \ _ | _ \ _ __ ___ ___ __ _ _ __ | |) | | | | |) | '__/ _ \ / / _` | '| | __/| || | /| | | () | (| (| | |
|
| _, || |_| _
/ __,|| |/ A Python library for electronic structure pre/post-processing.

Version 5.6.6 created on March 6th, 2022

Please cite: Uthpala Herath, Pedram Tavadze, Xu He, Eric Bousquet, Sobhit Singh, Francisco Muñoz and Aldo Romero., PyProcar: A Python library for electronic structure pre/post-processing., Computer Physics Communications 251 (2020):107080.

Developers:

  • Francisco Muñoz
  • Aldo Romero
  • Sobhit Singh
  • Uthpala Herath
  • Pedram Tavadze
  • Eric Bousquet
  • Xu He
  • Reese Boucher
  • Logan Lang
  • Freddy Farah

PROCAR repaired. Run with repair=False next time. file : PROCAR outcar : OUTCAR Abinit output : None atoms : [-1] orbitals : [-1] spin comp. : 3 energy : -0.3 fermi energy : None Rec. basis : None rot. symmetry : 1 origin (trasl.) : [0, 0, 0] rotation : [0, 0, 0, 1] masking thres. : None save figure : None st : True no_arrows : True Fermi energy found in outcar file = 3.8681 spd shape : (100, 99, 4, 13, 11) [kpoints, bands, spins, atoms+1, orbitals+2] spd shape : (100, 99, 4, 13, 11) [kpoints, bands, spins, atoms+1, orbitals+2] spd shape : (100, 99, 4, 13, 11) [kpoints, bands, spins, atoms+1, orbitals+2] Bands will be shifted by the Fermi energy = 3.8681 Traceback (most recent call last): File "", line 1, in File "/home/k0171/k017113/deepmd-kit/envs/pyprocar/lib/python3.8/site-packages/pyprocar/scriptFermi2D.py", line 187, in fermi2D fs.st(sx=symm.sx, sy=symm.sy, sz=symm.sz, noarrow=noarrow, spin=spin) File "/home/k0171/k017113/deepmd-kit/envs/pyprocar/lib/python3.8/site-packages/pyprocar/fermisurface/fermisurface.py", line 143, in st bnew.append(griddata((x, y), band, (xnew, ynew), method="cubic")) File "/home/k0171/k017113/.local/lib/python3.8/site-packages/scipy/interpolate/ndgriddata.py", line 264, in griddata ip = CloughTocher2DInterpolator(points, values, fill_value=fill_value, File "interpnd.pyx", line 908, in scipy.interpolate.interpnd.CloughTocher2DInterpolator.init File "qhull.pyx", line 1839, in scipy.spatial.qhull.Delaunay.init File "qhull.pyx", line 355, in scipy.spatial.qhull._Qhull.init scipy.spatial.qhull.QhullError: QH6154 Qhull precision error: Initial simplex is flat (facet 1 is coplanar with the interior point)

While executing: | qhull d Q12 Qz Qt Qc Qbb Options selected for Qhull 2019.1.r 2019/06/21: run-id 305317147 delaunay Q12-allow-wide Qz-infinity-point Qtriangulate Qcoplanar-keep Qbbound-last _pre-merge _zero-centrum Qinterior-keep Pgood _max-width 0.058 Error-roundoff 4e-17 _one-merge 2.8e-16 Visible-distance 8e-17 U-max-coplanar 8e-17 Width-outside 1.6e-16 _wide-facet 4.8e-16 _maxoutside 3.2e-16

The input to qhull appears to be less than 3 dimensional, or a computation has overflowed.

Qhull could not construct a clearly convex simplex from points:

  • p50(v4): 0.0032 0.0018 0
  • p20(v3): -0.016 -0.009 0.0078
  • p90(v2): 0.029 0.016 0.026
  • p0(v1): -0.029 -0.016 0.026

The center point is coplanar with a facet, or a vertex is coplanar with a neighboring facet. The maximum round off error for computing distances is 4e-17. The center point, facets and distances to the center point are as follows:

center point -0.003196 -0.001795 0.01502

facet p20 p90 p0 distance= 2.4e-19 facet p50 p90 p0 distance= -6.5e-19 facet p50 p20 p0 distance= -3.7e-18 facet p50 p20 p90 distance= -1.2e-18

These points either have a maximum or minimum x-coordinate, or they maximize the determinant for k coordinates. Trial points are first selected from points that maximize a coordinate.

The min and max coordinates for each dimension are: 0: -0.02876 0.02876 difference= 0.05753 1: -0.01615 0.01615 difference= 0.0323 2: 0 0.02876 difference= 0.02876

If the input should be full dimensional, you have several options that may determine an initial simplex:

  • use 'QJ' to joggle the input and make it full dimensional
  • use 'QbB' to scale the points to the unit cube
  • use 'QR0' to randomly rotate the input for different maximum points
  • use 'Qs' to search all points for the initial simplex
  • use 'En' to specify a maximum roundoff error less than 4e-17.
  • trace execution with 'T3' to see the determinant for each point.

If the input is lower dimensional:

  • use 'QJ' to joggle the input and make it full dimensional
  • use 'Qbk:0Bk:0' to delete coordinate k from the input. You should pick the coordinate with the least range. The hull will have the correct topology.
  • determine the flat containing the points, rotate the points into a coordinate plane, and delete the other coordinates.
  • add one or more points to make the input full dimensional.



pyprocar.zip Here is the PROCAR, OUTCAR and POSCAR of the two structures.

The command I used to plot is

pyprocar.fermi2D('PROCAR', outcar='OUTCAR', st=True, energy=0.65, noarrow=True, spin=1, code='vasp')

Every suggestion would be helpful.

Regards

chouyoudou avatar Apr 14 '22 16:04 chouyoudou

Hi,

Have you solved the problem yet? I met the same issue.

PolyuWeldingSpock avatar Aug 03 '23 10:08 PolyuWeldingSpock