sisl.physics.dynmat module

Dynamical matrix.

class sisl.physics.dynmat.DynamicalMatrix(geom, nnzpr=None, orthogonal=True, spin=1, dtype=None, *args, **kwargs)[source]

Bases: sisl.physics.hamiltonian.Hamiltonian

Dynamical matrix of a geometry

Attributes

D
H
S
dtype Return data type of Hamiltonian (and overlap matrix)
finalized Whether the contained data is finalized and non-used elements have been removed
geom Return the attached geometry
geometry Return the attached geometry
nnz Returns number of non-zero elements in the tight-binding model
no Returns number of orbitals as used when the object was created
orthogonal Return whether the Hamiltonian is orthogonal
spin Return number of spin-components in Hamiltonian

Methods

Dk([k, dtype]) Return the Hamiltonian in a scipy.sparse.csr_matrix at k.
construct(func[, na_iR, method, eta]) Automatically construct the Hamiltonian model based on a function that does the setting up of the Hamiltonian
copy([dtype]) Return a copy of the Hamiltonian object
correct_Newton() Sometimes the dynamical matrix does not obey Newtons laws.
create_construct(dR, param) Returns a simple function for passing to the construct function.
cut(seps, axis, *args, **kwargs) Cuts the tight-binding model into different parts.
eigh([k, atoms, eigvals_only, overwrite_a, ...]) Returns the eigenvalues of the Hamiltonian
eigsh([k, n, atoms, eigvals_only]) Returns a subset of eigenvalues of the Hamiltonian (default 10)
eliminate_zeros() Removes all zero elememts from the sparse matrix
empty([keep]) See SparseCSR.empty for details
finalize() Finalizes the tight-binding model
fromsp(geom, H[, S]) Returns a tight-binding model from a preset H, S and Geometry
iter([local]) Iterations of the orbital space in the geometry, two indices from loop
iter_nnz([atom, orbital]) Iterations of the non-zero elements, returns a tuple of orbital and coupling orbital
read(sile, *args, **kwargs) Reads Hamiltonian from Sile using read_H.
remove(atom) Remove atom from the Hamiltonian.
repeat(reps, axis) Returns a repeated tight-binding model for this, much like the Geometry
reset([nnzpr, orthogonal, spin, dtype]) The sparsity pattern is cleaned and every thing is reset.
spsame(other) Compare two Hamiltonians and check whether they have the same entries.
sub(atom) Returns a subset of atoms from the geometry.
sub_supercell(sc) Creates a new object with only the given supercells
tile(reps, axis) Returns a tiled tight-binding model for this, much like the Geometry
tocsr(index[, isc]) Return a scipy.sparse.csr_matrix from the specified index
write(sile, *args, **kwargs) Writes a tight-binding model to the Sile as implemented in the Sile.write_hamiltonian method

Create tight-binding model from geometry

Initializes a tight-binding model using the geom object as the underlying geometry for the tight-binding parameters.

Attributes

D
H
S
dtype Return data type of Hamiltonian (and overlap matrix)
finalized Whether the contained data is finalized and non-used elements have been removed
geom Return the attached geometry
geometry Return the attached geometry
nnz Returns number of non-zero elements in the tight-binding model
no Returns number of orbitals as used when the object was created
orthogonal Return whether the Hamiltonian is orthogonal
spin Return number of spin-components in Hamiltonian

Methods

Dk([k, dtype]) Return the Hamiltonian in a scipy.sparse.csr_matrix at k.
construct(func[, na_iR, method, eta]) Automatically construct the Hamiltonian model based on a function that does the setting up of the Hamiltonian
copy([dtype]) Return a copy of the Hamiltonian object
correct_Newton() Sometimes the dynamical matrix does not obey Newtons laws.
create_construct(dR, param) Returns a simple function for passing to the construct function.
cut(seps, axis, *args, **kwargs) Cuts the tight-binding model into different parts.
eigh([k, atoms, eigvals_only, overwrite_a, ...]) Returns the eigenvalues of the Hamiltonian
eigsh([k, n, atoms, eigvals_only]) Returns a subset of eigenvalues of the Hamiltonian (default 10)
eliminate_zeros() Removes all zero elememts from the sparse matrix
empty([keep]) See SparseCSR.empty for details
finalize() Finalizes the tight-binding model
fromsp(geom, H[, S]) Returns a tight-binding model from a preset H, S and Geometry
iter([local]) Iterations of the orbital space in the geometry, two indices from loop
iter_nnz([atom, orbital]) Iterations of the non-zero elements, returns a tuple of orbital and coupling orbital
read(sile, *args, **kwargs) Reads Hamiltonian from Sile using read_H.
remove(atom) Remove atom from the Hamiltonian.
repeat(reps, axis) Returns a repeated tight-binding model for this, much like the Geometry
reset([nnzpr, orthogonal, spin, dtype]) The sparsity pattern is cleaned and every thing is reset.
spsame(other) Compare two Hamiltonians and check whether they have the same entries.
sub(atom) Returns a subset of atoms from the geometry.
sub_supercell(sc) Creates a new object with only the given supercells
tile(reps, axis) Returns a tiled tight-binding model for this, much like the Geometry
tocsr(index[, isc]) Return a scipy.sparse.csr_matrix from the specified index
write(sile, *args, **kwargs) Writes a tight-binding model to the Sile as implemented in the Sile.write_hamiltonian method
D
Dk(k=(0, 0, 0), dtype=None)

Return the Hamiltonian in a scipy.sparse.csr_matrix at k.

Parameters:

k: ``array_like``, `[0,0,0]`

k-point

dtype : numpy.dtype

default to numpy.complex128

correct_Newton()[source]

Sometimes the dynamical matrix does not obey Newtons laws.

We correct the dynamical matrix by imposing zero force.

Correcting for Newton forces the matrix to be finalized.