pytopomat.analyzer¶
Compute topological invariants.
This module offers a high level framework for analyzing topological materials in a high-throughput context with VASP, Z2Pack, irrep, irvsp, and Vasp2Trace.
Classes
|
Determine parity of occupied bands at TRIM points with vasp2trace or irvsp output to calculate the Z2 topological invariant for centrosymmetric materials. |
|
This class uses 3 algorithms implemented in pymatgen to automate recognition of low-dimensional materials. |
-
class
pytopomat.analyzer.
BandParity
(calc_output=None, trim_data=None, spin_polarized=None, efermi=None, nelect=None, eigenval_tol=0.03)[source]¶ Bases:
monty.json.MSONable
Determine parity of occupied bands at TRIM points with vasp2trace or irvsp output to calculate the Z2 topological invariant for centrosymmetric materials.
Must give either Vasp2TraceOutput (non-spin-polarized) OR (up & down) for spin-polarized, or IRVSPOutput.
Requires a VASP band structure run over the 8 TRIM points with: ICHARG=11; ISYM=2; LWAVE=.TRUE.
This module depends on the vasp2trace and irvsp script available in the path. Please download at https://github.com/zjwang11/irvsp and consult the README.pdf for further help.
If you use this module please cite: [1] Barry Bradlyn, L. Elcoro, Jennifer Cano, M. G. Vergniory, Zhijun Wang, C. Felser, M. I. Aroyo & B. Andrei Bernevig, Nature volume 547, pages 298–305 (20 July 2017).
[2] M.G. Vergniory, L. Elcoro, C. Felser, N. Regnault, B.A. Bernevig, Z. Wang Nature (2019) 566, 480-485. doi:10.1038/s41586-019-0954-4.
- Parameters
calc_output (dict or IRVSPOutput or IrrepOutput) – Dict of {‘up’: Vasp2TraceOutput object} or {‘up’: v2to, ‘down’: v2to}, or IRVSPOutput object.
trim_data (dict) – Maps TRIM point labels to band eigenvals and energies. Contains dict of {“energies”: List, “iden”: List, “parity”: List}
spin_polarized (bool) – Spin-polarized or not.
efermi (float) – Fermi level. Only necessary if IrrepOutput or IRVSPOutput objectis given.
nelect (int) – Total number of electrons.
eigenval_tol (float) – Tolerance (eV) on rounding for fractional parity eigenvalues.
-
static
get_trim_data_irrep
(irrep_output)[source]¶ Tabulate parity and identity eigenvals, as well as energies for all occupied bands over all TRIM points.
- Parameters
irvsp_output (obj) – IrrepOutput object.
- Returns
Maps TRIM label to band parities.
- Return type
trim_parities (dict)
-
static
get_trim_data_irvsp
(irvsp_output)[source]¶ Tabulate parity and identity eigenvals, as well as energies for all occupied bands over all TRIM points.
- Parameters
irvsp_output (obj) – IRVSPOutput object.
- Returns
Maps TRIM label to band parities.
- Return type
trim_parities (dict)
-
static
get_trim_data_v2t
(parity_op_index, v2t_output)[source]¶ Tabulate parity and identity eigenvals, as well as energies for all occupied bands over all TRIM points.
-
compute_z2
(tol=2)[source]¶ Compute Z2 topological indices (index) in 3D (2D) from TRIM band parities.
-
screen_magnetic_parity
()[source]¶ Screen candidate inversion-symmetric magnetic topological materials from band parity criteria.
Returns a dictionary of allowed magnetic topological properties where their bool values indicate if the property is allowed.
Requires a spin-polarized VASP calculation and trace_up and trace_dn from vasp2trace v2.
REF: Turner et al., PRB 85, 165120 (2012).
-
class
pytopomat.analyzer.
StructureDimensionality
(structure, structure_graph=None, larsen_dim=None, cheon_dim=None, gorai_dim=None)[source]¶ Bases:
monty.json.MSONable
This class uses 3 algorithms implemented in pymatgen to automate recognition of low-dimensional materials.
- Parameters
structure (object) – pmg Structure object.
structure_graph (object) – pmg StructureGraph object.
larsen_dim (int) – As defined in P. M. Larsen et al., Phys. Rev. Materials 3, 034003 (2019).
cheon_dim (int) – As defined in Cheon, G. et al., Nano Lett. 2017.
gorai_dim (int) – As defined in Gorai, P. et al., J. Mater. Chem. A 2, 4136 (2016).