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

BandParity([calc_output, trim_data, …])

Determine parity of occupied bands at TRIM points with vasp2trace or irvsp output to calculate the Z2 topological invariant for centrosymmetric materials.

StructureDimensionality(structure[, …])

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.

Parameters
  • parity_op_index (int) – Index of parity op in list of SymmOps.

  • v2t_output (obj) – V2TO object.

Returns

Maps TRIM label to band parities.

Return type

trim_parities (dict)

compute_z2(tol=2)[source]

Compute Z2 topological indices (index) in 3D (2D) from TRIM band parities.

Parameters

tol (float) – Tolerance for average energy difference between bands at TRIM points to define independent band group.

Returns

List of integer Z2 indices (index) in 3D (2D).

Return type

Z2 (list)

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).

Parameters

trim_parities (dict) – ‘up’ and ‘down’ spin channel occupied band parities at TRIM points.

Returns

Magnetic topological properties from band parities.

Return type

mag_screen (dict)

compute_z4()[source]

Compute Z4 topological index from TRIM band parities.

Returns

Z4 index

Return type

Z4 (int)

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).

get_cheon_gorai_dim()[source]

Convenience method for getting Cheon and Gorai dims. These algorithms take some time.

Returns

(sets instance variables).

Return type

None