fcSileSiesta

class sisl.io.siesta.fcSileSiesta(filename, mode='r', comment=None, *args, **kwargs)

Bases: sisl.io.siesta.SileSiesta

Force constant file

Attributes

__dict__

__doc__

__module__

__weakref__

list of weak references to the object (if defined)

_write_default

_write_default_only

base_file

File of the current Sile

file

File of the current Sile

Methods

_ArgumentParser_args_single()

Default arguments for the Sile

__delattr__

Implement delattr(self, name).

__dir__

Default dir() implementation.

__enter__()

Opens the output file and returns it self

__eq__

Return self==value.

__exit__(type, value, traceback)

__format__

Default object formatter.

__ge__

Return self>=value.

__getattr__(name)

Override to check the handle

__getattribute__

Return getattr(self, name).

__gt__

Return self>value.

__hash__

Return hash(self).

__init__(filename[, mode, comment])

Initialize self.

__init_subclass__

This method is called when a class is subclassed.

__iter__()

Iterator for file

__le__

Return self<=value.

__lt__

Return self<value.

__ne__

Return self!=value.

__new__

Create and return a new object.

__reduce__

Helper for pickle.

__reduce_ex__

Helper for pickle.

__repr__

Return repr(self).

__setattr__

Implement setattr(self, name, value).

__sizeof__

Size of object in memory, in bytes.

__str__()

Return a representation of the Sile

__subclasshook__

Abstract classes can override this to customize issubclass().

_base_file(f)

Make f refer to the file with the appropriate base directory

_base_setup(*args, **kwargs)

Setup the Sile after initialization

_open()

_setup(*args, **kwargs)

Setup the Sile after initialization

_write(*args, **kwargs)

Wrapper to default the write statements

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

property base_file

File of the current Sile

dir_file(filename=None)

File of the current Sile

exist()

Query whether the file exists

property 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 in geometry (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

numpy.ndarray – force constant matrix times the displacement, see read_force_constant for details regarding data layout.

Return type

(displaced atoms, d[xyz], [-+], total atoms, xyz)

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

numpy.ndarray – force constant matrix containing all forces. The 2nd dimension contains contains the directions, 3rd dimension contains -/+ displacements.

Return type

(displacement, d[xyz], [-+], atoms, xyz)

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.