principia_materia.phonon_id.lid module

class principia_materia.phonon_id.lid.LoneID_FP(structure, Qpoint, supa=None, pg='C1', full_symmetry=False, hidden_order=1, fdtype='c', tol=1e-06)

Bases: FrozenPhonons

Use Lone Irreducible Derivatives (LID) apporach to compute phonons and their interactions.

Parameters:
  • structure (CrystalFTG object or a structure file of CrystalFTG) – The crystal structure.

  • Qpoint (array of Fraction or a parse_array supported Fraction array.) – The Q-point

  • supa (array of int, shape(dim, dim)) – The supercell matrix.

  • pg (str or PointGroup object, optional, default to "C1") – The point group.

  • full_symmetry (bool, optional, default to False) – If True, use full group analysis (not implemented yet). If False, use little group analysis.

  • hidden_order (int, optional, default to 1) – The order of derivatives from first principles.

  • fdtype (str, choice of ["c", "f", "b"]) – Type of finite displacement.

  • tol (float, optional, default to 1.0E-6) – Error tolerence.

get_irreducible_derivative_names()
get_irreducible_derivatives()
property irreducible_derivatives
set_analytic_tensor(stars=None)

Construct analytic dynamic tensor for the Q-point.

_adt

An AnalyticDynamicTensor subclass object for the system and Q-point.

Type:

a subclass of AnalyticDynamicTensor

set_displacements()

Find displacements that can probe each irreducible derivatives separately.

set_displacements_basis()

Construct the symmetrized reciprocal displacement basis.

The displacement amplitudes follow the convention discussed in the paper Phys. Rev. B 100, 014303 (2019).

\[u_{\textbf{t}}*{\left(b, \beta\right)} = \sum_{\textbf{q} \in \hat{S}_{BZ}} u_{\textbf{q}}*{\left(b, \beta\right)} e^{2\pi\imag \textbf{t} \cdot \textbf{q}}\]
set_dynamic_tensor()

Construct the dynamic tensor after finite displacements result is computed.

_dynamic_tensor

The dynamic tensor at the Q-point.

Type:

array of complex, shape(norbitals, ) * order

set_irreducible_derivatives()

Compute irreducible derivatives.

set_target_irrep_products(irrep_products)
principia_materia.phonon_id.lid.get_LoneID_from_hdf5(h5file, root_directory=None, fdseries_filename='fdseries.hdf5', tol=1e-06)

Read data from HDF5 file and construct a LoneID_FP object.

Parameters:
  • h5file (str or h5py.File/h5py.Group obejct) – Path to a HDF5 file or a h5py.File/h5py.Group object.

  • tol (float, optional, default to 1.0E-6) – Error tolerance.

principia_materia.phonon_id.lid.get_LoneID_hdf5_wrapper()

HDF5 data wrapper for LoneID class.

principia_materia.phonon_id.lid.save_LoneID_to_hdf5(obj, h5file='loneqID_fp.hdf5', include_fdseires=False)

Save data of a LoneID_FP object into a HDF5 file.

Parameters:
  • obj (LoneID_FP) – A LoneID_FP object.

  • h5file (str or h5py.File/h5py.Group obejct, optional, default to "loneqID_fp.hdf5") – Path to a HDF5 file or a h5py.File/h5py.Group object.