pymatgen.io.feff.inputs module

class Atoms(struct, absorbing_atom, radius)[source]

Bases: monty.json.MSONable

Atomic cluster centered around the absorbing atom.

Parameters:
  • struct (Structure) – input structure
  • absorbing_atom (str/int) – Symbol for absorbing atom or site index
  • radius (float) – radius of the atom cluster in Angstroms.
static atoms_string_from_file(filename)[source]

Reads atomic shells from file such as feff.inp or ATOMS file The lines are arranged as follows:

x y z ipot Atom Symbol Distance Number

with distance being the shell radius and ipot an integer identifying the potential used.

Parameters:filename – File name containing atomic coord data.
Returns:Atoms string.
cluster

Returns the atomic cluster as a Molecule object.

static cluster_from_file(filename)[source]

Parse the feff input file and return the atomic cluster as a Molecule object.

Parameters:filename (str) – path the feff input file
Returns:
the atomic cluster as Molecule object. The absorbing atom
is the one at the origin.
Return type:Molecule
get_lines()[source]

Returns a list of string representations of the atomic configuration information(x, y, z, ipot, atom_symbol, distance, id).

Returns:
list of strings, sorted by the distance from the absorbing
atom.
Return type:list
write_file(filename='ATOMS')[source]

Write Atoms list to file.

Parameters:filename – path for file to be written
exception FeffParserError(msg)[source]

Bases: Exception

Exception class for Structure. Raised when the structure has problems, e.g., atoms that are too close.

class Header(struct, source='', comment='')[source]

Bases: monty.json.MSONable

Creates Header for the FEFF input file.

Has the following format:

* This feff.inp file generated by pymatgen, www.materialsproject.org
TITLE comment:
TITLE Source: CoO19128.cif
TITLE Structure Summary: (Co2 O2)
TITLE Reduced formula: CoO
TITLE space group: P1,   space number: 1
TITLE abc: 3.297078 3.297078 5.254213
TITLE angles: 90.0 90.0 120.0
TITLE sites: 4
* 1 Co     0.666666     0.333332     0.496324
* 2 Co     0.333333     0.666667     0.996324
* 3 O     0.666666     0.333332     0.878676
* 4 O     0.333333     0.666667     0.378675
Parameters:
  • struct – Structure object, See pymatgen.core.structure.Structure.
  • source – User supplied identifier, i.e. for Materials Project this would be the material ID number
  • comment – Comment for first header line
formula

Formula of structure

static from_cif_file(cif_file, source='', comment='')[source]

Static method to create Header object from cif_file

Parameters:
  • cif_file – cif_file path and name
  • source – User supplied identifier, i.e. for Materials Project this would be the material ID number
  • comment – User comment that goes in header
Returns:

Header Object

static from_file(filename)[source]

Returns Header object from file

static from_string(header_str)[source]

Reads Header string and returns Header object if header was generated by pymatgen. Note: Checks to see if generated by pymatgen, if not it is impossible

to generate structure object so it is not possible to generate header object and routine ends
Parameters:header_str – pymatgen generated feff.inp header
Returns:Structure object.
static header_string_from_file(filename='feff.inp')[source]

Reads Header string from either a HEADER file or feff.inp file Will also read a header from a non-pymatgen generated feff.inp file

Parameters:filename – File name containing the Header data.
Returns:Reads header string.
structure_symmetry

Returns space number and space group

Returns:Space number and space group list
write_file(filename='HEADER')[source]

Writes Header into filename on disk.

Parameters:filename – Filename and path for file to be written to disk
class Paths(atoms, paths, degeneracies=None)[source]

Bases: monty.json.MSONable

Set FEFF scattering paths(‘paths.dat’ file used by the ‘genfmt’ module).

Parameters:
  • atoms (Atoms) – Atoms object
  • paths (list(list)) – list of paths. Each path is a list of atom indices in the atomic cluster(the molecular cluster created by Atoms class). e.g. [[0, 1, 2], [5, 9, 4, 1]] -> 2 paths: one with 3 legs and the other with 4 legs.
  • degeneracies (list) – list of degeneracies, one for each path. Set to 1 if not specified.
write_file(filename='paths.dat')[source]

Write paths.dat.

class Potential(struct, absorbing_atom)[source]

Bases: monty.json.MSONable

FEFF atomic potential.

Parameters:
  • struct (Structure) – Structure object.
  • absorbing_atom (str/int) – Absorbing atom symbol or site index
static pot_dict_from_string(pot_data)[source]

Creates atomic symbol/potential number dictionary forward and reverse

Arg:
pot_data: potential data in string format
Returns:forward and reverse atom symbol and potential number dictionaries.
static pot_string_from_file(filename='feff.inp')[source]

Reads Potential parameters from a feff.inp or FEFFPOT file. The lines are arranged as follows:

ipot Z element lmax1 lmax2 stoichometry spinph
Parameters:filename – file name containing potential data.
Returns:FEFFPOT string.
write_file(filename='POTENTIALS')[source]

Write to file.

Parameters:filename – filename and path to write potential file to.
class Tags(params=None)[source]

Bases: dict

FEFF control parameters.

Parameters:params – A set of input parameters as a dictionary.
as_dict()[source]

Dict representation.

Returns:Dictionary of parameters from fefftags object
diff(other)[source]

Diff function. Compares two PARAMETER files and indicates which parameters are the same and which are not. Useful for checking whether two runs were done using the same parameters.

Parameters:other – The other PARAMETER dictionary to compare to.
Returns:parameters_that_are_the_same, “Different”: parameters_that_are_different} Note that the parameters are return as full dictionaries of values.
Return type:Dict of the format {“Same”
static from_dict(d)[source]

Creates Tags object from a dictionary.

Parameters:d – Dict of feff parameters and values.
Returns:Tags object
static from_file(filename='feff.inp')[source]

Creates a Feff_tag dictionary from a PARAMETER or feff.inp file.

Parameters:filename – Filename for either PARAMETER or feff.inp file
Returns:Feff_tag object
get_string(sort_keys=False, pretty=False)[source]

Returns a string representation of the Tags. The reason why this method is different from the __str__ method is to provide options for pretty printing.

Parameters:
  • sort_keys – Set to True to sort the Feff parameters alphabetically. Defaults to False.
  • pretty – Set to True for pretty aligned output. Defaults to False.
Returns:

String representation of Tags.

static proc_val(key, val)[source]

Static helper method to convert Feff parameters to proper types, e.g. integers, floats, lists, etc.

Parameters:
  • key – Feff parameter key
  • val – Actual value of Feff parameter.
write_file(filename='PARAMETERS')[source]

Write Tags to a Feff parameter tag file.

Parameters:filename – filename and path to write to.
get_absorbing_atom_symbol_index(absorbing_atom, structure)[source]

Return the absorbing atom symboll and site index in the given structure.

Parameters:
  • absorbing_atom (str/int) – symbol or site index
  • structure (Structure) –
Returns:

symbol and site index

Return type:

str, int

get_atom_map(structure)[source]

Returns a dict that maps each atomic symbol to a unique integer starting from 1.

Parameters:structure (Structure) –
Returns:dict