fcSileSiesta¶
-
class
sisl.io.siesta.fcSileSiesta(filename, mode='r', comment=None, *args, **kwargs)[source]¶ Force constant file
Attributes
base_fileFile of the current Sile fileFile of the current Sile Methods
__init__(filename[, mode, comment])Initialize self. dir_file([filename])File of the current Sile exist()Query whether the file exists read(*args, **kwargs)Generic read method which should be overloaded in child-classes read_force([displacement, na])Reads all displacement forces by multiplying with the displacement value read_force_constant([na])Reads the force-constant stored in the FC file write(*args, **kwargs)Generic write method which should be overloaded in child-classes -
base_file¶ File of the current Sile
-
dir_file(filename=None)¶ File of the current Sile
-
exist()¶ Query whether the file exists
-
file¶ File of the current Sile
-
read(*args, **kwargs)¶ Generic read method which should be overloaded in child-classes
Parameters: - kwargs :
keyword arguments will try and search for the attribute
read_<>and call it with the remaining**kwargsas arguments.
-
read_force(displacement=None, na=None)[source]¶ Reads all displacement forces by multiplying with the displacement value
Since the force constant file does not contain the non-displaced configuration this will only return forces on the displaced configurations minus the forces from the non-displaced configuration.
This may be used in conjunction with phonopy by noticing that Siesta FC-runs does the displacements in reverse order (-x/+x vs. +x/-x). In this case one should reorder the elements like this:
>>> fc = np.roll(fc, 1, axis=2)
Parameters: - displacement : float, optional
the used displacement in the calculation, since Siesta 4.1-b4 this value is written in the FC file and hence not required. If prior Siesta versions are used and this is not supplied the 0.04 Bohr displacement will be assumed.
- na : int, optional
number of atoms (for returning correct number of atoms), since Siesta 4.1-b4 this value is written in the FC file and hence not required. If prior Siesta versions are used then the file is expected to only contain 1-atom displacement.
Returns: - forces : numpy.ndarray with 5 dimensions containing all the forces. The 2nd dimensions contains
contains the directions, and 3rd dimensions contains -/+ displacements.
-
read_force_constant(na=None)[source]¶ Reads the force-constant stored in the FC file
Parameters: - na : int, optional
number of atoms in the unit-cell, if not specified it will guess on only one atom displacement.
Returns: - force constants : numpy.ndarray with 5 dimensions containing all the forces. The 2nd dimensions contains
contains the directions, and 3rd dimensions contains -/+ displacements.
-
write(*args, **kwargs)¶ Generic write method which should be overloaded in child-classes
Parameters: - **kwargs :
keyword arguments will try and search for the attribute write_ and call it with the remaining
**kwargsas arguments.
-