fcSileSiesta¶
-
class
sisl.io.siesta.
fcSileSiesta
(filename, mode='r', comment=None, *args, **kwargs)[source]¶ Force constant file
Attributes
base_file
File of the current Sile file
File 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**kwargs
as 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
**kwargs
as arguments.
-