# pymatgen.ext.matproj module

This module provides classes to interface with the Materials Project REST API v2 to enable the creation of data structures and pymatgen objects using Materials Project data.

To make use of the Materials API, you need to be a registered user of the Materials Project, and obtain an API key by going to your dashboard at https://www.materialsproject.org/dashboard.

exception MPRestError

  Bases: `Exception`

  Exception class for MPRestAdaptor. Raised when the query has problems, e.g., bad query format.

class MPRester(api_key=None, endpoint=None, notify_db_version=True, include_user_agent=True)

  Bases: `object`

  A class to conveniently interface with the Materials Project REST interface. The recommended way to use MPRester is with the “with” context manager to ensure that sessions are properly closed after usage:

      with MPRester("API_KEY") as m:
          do_something

  MPRester uses the “requests” package, which provides for HTTP connection pooling. All connections are made via https for security.

  For more advanced uses of the Materials API, please consult the API documentation at https://github.com/materialsproject/mapidoc.

  Parameters

    - api_key (str) – A String API key for accessing the MaterialsProject REST interface. Please obtain your API key at https://www.materialsproject.org/dashboard. If this is None, the code will check if there is a “PMG_MAPI_KEY” setting. If so, it will use that environment variable. This makes easier for heavy users to simply add this environment variable to their setups and MPRester can then be called without any arguments.

    - endpoint (str) – Url of endpoint to access the MaterialsProject REST interface. Defaults to the standard Materials Project REST address at “https://materialsproject.org/rest/v2”, but can be changed to other urls implementing a similar interface.

    - notify_db_version (bool) – If True, the current MP database version will be retrieved and logged locally in the ~/.pmgrc.yaml. If the database version changes, you will be notified. The current database version is also printed on instantiation. These local logs are not sent to materialsproject.org and are not associated with your API key, so be aware that a notification may not be presented if you run MPRester from multiple computing environments.

    - include_user_agent (bool) – If True, will include a user agent with the HTTP request including information on pymatgen and system version making the API request. This helps MP support pymatgen users, and is similar to what most web browsers send with each page request. Set to False to disable the user agent.

  delete_snl(snl_ids)

    Delete earlier submitted SNLs.

    Note

    As of now, this MP REST feature is open only to a select group of users. Opening up submissions to all users is being planned for the future.

    Parameters

      snl_ids – List of SNL ids.

    Raises

      MPRestError –

  find_structure(filename_or_structure)

    Finds matching structures on the Materials Project site.

    Parameters

      filename_or_structure – filename or Structure object

    Returns

      A list of matching materials project ids for structure.

    Raises

      MPRestError –

  get_all_substrates()

    Gets the list of all possible substrates considered in the Materials Project substrate database

    Returns

      list of material_ids corresponding to possible substrates

  get_bandstructure_by_material_id(material_id, line_mode=True)

    Get a BandStructure corresponding to a material_id.

    REST Endpoint: https://www.materialsproject.org/rest/v2/materials/<mp-id>/vasp/bandstructure or https://www.materialsproject.org/rest/v2/materials/<mp-id>/vasp/bandstructure_uniform

    Parameters

      - material_id (str) – Materials Project material_id.

      - line_mode (bool) – If True, fetch a BandStructureSymmLine object (default). If False, return the uniform band structure.

    Returns

      A BandStructure object.

  get_cohesive_energy(material_id, per_atom=False)
    Gets the cohesive for a material (eV per formula unit). Cohesive energy

      is defined as the difference between the bulk energy and the sum of total DFT energy of isolated atoms for atom elements in the bulk.

    Parameters

      - material_id (str) – Materials Project material_id, e.g. ‘mp-123’.

      - per_atom (bool) – Whether or not to return cohesive energy per atom

    Returns

      Cohesive energy (eV).

  get_data(chemsys_formula_id, data_type='vasp', prop='')

    Flexible method to get any data using the Materials Project REST interface. Generally used by other methods for more specific queries.

    Format of REST return is always a list of dict (regardless of the number of pieces of data returned. The general format is as follows:

    [{“material_id”: material_id, “property_name” : value}, …]

    This is generally a call to https://www.materialsproject.org/rest/v2/materials/vasp/<prop>. See https://github.com/materialsproject/mapidoc for details.

    Parameters

      - chemsys_formula_id (str) – A chemical system (e.g., Li-Fe-O), or formula (e.g., Fe2O3) or materials_id (e.g., mp-1234).

      - data_type (str) – Type of data to return. Currently can either be “vasp” or “exp”.

      - prop (str) – Property to be obtained. Should be one of the MPRester.supported_task_properties. Leave as empty string for a general list of useful properties.

  get_database_version()

    The Materials Project database is periodically updated and has a database version associated with it. When the database is updated, consolidated data (information about “a material”) may and does change, while calculation data about a specific calculation task remains unchanged and available for querying via its task_id.

    The database version is set as a date in the format YYYY-MM-DD, where “-DD” may be optional. An additional numerical suffix might be added if multiple releases happen on the same day.

    Returns: database version as a string

  get_doc(materials_id)

    Get the entire data document for one materials id. Use this judiciously.

    REST Endpoint: https://www.materialsproject.org/materials/<mp-id>/doc.

    Parameters

      materials_id (str) – E.g., mp-1143 for Al2O3

    Returns

      Dict of json document of all data that is displayed on a materials details page.

  get_dos_by_material_id(material_id)

    Get a Dos corresponding to a material_id.

    REST Endpoint: https://www.materialsproject.org/rest/v2/materials/<mp-id>/vasp/dos

    Parameters

      material_id (str) – Materials Project material_id (a string, e.g., mp-1234).

    Returns

      A Dos object.

  get_download_info(material_ids, task_types=None, file_patterns=None)

    get a list of URLs to retrieve raw VASP output files from the NoMaD repository

    Parameters

      - material_ids (list) – list of material identifiers (mp-id’s)

      - task_types (list) – list of task types to include in download (see TaskType Enum class)

      - file_patterns (list) – list of wildcard file names to include for each task

    Returns

      a tuple of 1) a dictionary mapping material_ids to task_ids and task_types, and 2) a list of URLs to download zip archives from NoMaD repository. Each zip archive will contain a manifest.json with metadata info, e.g. the task/external_ids that belong to a directory

  get_entries(chemsys_formula_id_criteria, compatible_only=True, inc_structure=None, property_data=None, conventional_unit_cell=False, sort_by_e_above_hull=False)

    Get a list of ComputedEntries or ComputedStructureEntries corresponding to a chemical system, formula, or materials_id or full criteria.

    Parameters

      - chemsys_formula_id_criteria (str/dict) – A chemical system (e.g., Li-Fe-O), or formula (e.g., Fe2O3) or materials_id (e.g., mp-1234) or full Mongo-style dict criteria.

      - compatible_only (bool) – Whether to return only “compatible” entries. Compatible entries are entries that have been processed using the MaterialsProject2020Compatibility class, which performs adjustments to allow mixing of GGA and GGA+U calculations for more accurate phase diagrams and reaction energies.

      - inc_structure (str) – If None, entries returned are ComputedEntries. If inc_structure=”initial”, ComputedStructureEntries with initial structures are returned. Otherwise, ComputedStructureEntries with final structures are returned.

      - property_data (list) – Specify additional properties to include in entry.data. If None, no data. Should be a subset of supported_properties.

      - conventional_unit_cell (bool) – Whether to get the standard conventional unit cell

      - sort_by_e_above_hull (bool) – Whether to sort the list of entries by e_above_hull (will query e_above_hull as a property_data if True).

    Returns

      List of ComputedEntry or ComputedStructureEntry objects.

  get_entries_in_chemsys(elements, compatible_only=True, inc_structure=None, property_data=None, conventional_unit_cell=False)

    Helper method to get a list of ComputedEntries in a chemical system. For example, elements = [“Li”, “Fe”, “O”] will return a list of all entries in the Li-Fe-O chemical system, i.e., all LixOy, FexOy, LixFey, LixFeyOz, Li, Fe and O phases. Extremely useful for creating phase diagrams of entire chemical systems.

    Parameters

      - elements (str or [str]) – Chemical system string comprising element symbols separated by dashes, e.g., “Li-Fe-O” or List of element symbols, e.g., [“Li”, “Fe”, “O”].

      - compatible_only (bool) – Whether to return only “compatible” entries. Compatible entries are entries that have been processed using the MaterialsProject2020Compatibility class, which performs adjustments to allow mixing of GGA and GGA+U calculations for more accurate phase diagrams and reaction energies.

      - inc_structure (str) – If None, entries returned are ComputedEntries. If inc_structure=”final”, ComputedStructureEntries with final structures are returned. Otherwise, ComputedStructureEntries with initial structures are returned.

      - property_data (list) – Specify additional properties to include in entry.data. If None, no data. Should be a subset of supported_properties.

      - conventional_unit_cell (bool) – Whether to get the standard conventional unit cell

    Returns

      List of ComputedEntries.

  get_entry_by_material_id(material_id, compatible_only=True, inc_structure=None, property_data=None, conventional_unit_cell=False)

    Get a ComputedEntry corresponding to a material_id.

    Parameters

      - material_id (str) – Materials Project material_id (a string, e.g., mp-1234).

      - compatible_only (bool) – Whether to return only “compatible” entries. Compatible entries are entries that have been processed using the MaterialsProject2020Compatibility class, which performs adjustments to allow mixing of GGA and GGA+U calculations for more accurate phase diagrams and reaction energies.

      - inc_structure (str) – If None, entries returned are ComputedEntries. If inc_structure=”final”, ComputedStructureEntries with final structures are returned. Otherwise, ComputedStructureEntries with initial structures are returned.

      - property_data (list) – Specify additional properties to include in entry.data. If None, no data. Should be a subset of supported_properties.

      - conventional_unit_cell (bool) – Whether to get the standard conventional unit cell

    Returns

      ComputedEntry or ComputedStructureEntry object.

  get_exp_entry(formula)

    Returns an ExpEntry object, which is the experimental equivalent of a ComputedEntry and can be used for analyses using experimental data.

    Parameters

      formula (str) – A formula to search for.

    Returns

      An ExpEntry object.

  get_exp_thermo_data(formula)

    Get a list of ThermoData objects associated with a formula using the Materials Project REST interface.

    Parameters

      formula (str) – A formula to search for.

    Returns

      List of ThermoData objects.

  get_gb_data(material_id=None, pretty_formula=None, chemsys=None, sigma=None, gb_plane=None, rotation_axis=None, include_work_of_separation=False)

    Gets grain boundary data for a material.

    Parameters

      - material_id (str) – Materials Project material_id, e.g., ‘mp-129’.

      - pretty_formula (str) – The formula of metals. e.g., ‘Fe’

      - sigma (int) – The sigma value of a certain type of grain boundary

      - gb_plane (list of integer) – The Miller index of grain

      - e.g. (axis.) –

      - [1 (and) –

      - 1 –

      - 1] –

      - rotation_axis (list of integer) – The Miller index of rotation

      - e.g. –

      - [1 –

      - 0 –

      - 0] –

      - [1 –

      - 1 –

      - 0] –

      - [1 –

      - 1 –

      - 1] –

      - and (Sigma value is determined by the combination of rotation axis) –

      - freedom (rotation angle. The five degrees of) –

      - include – rotation axis (2 DOFs), rotation angle (1 DOF), and grain

      - plane (boundary) –

      - include_work_of_separation (bool) – whether to include the work of separation

      - of ((in unit) –

      - material_id. (specify the) –

    Returns

      A list of grain boundaries that satisfy the query conditions (sigma, gb_plane). Energies are given in SI units (J/m^2).

  get_interface_reactions(reactant1, reactant2, open_el=None, relative_mu=None, use_hull_energy=False)

    Gets critical reactions between two reactants.

    Get critical reactions (“kinks” in the mixing ratio where reaction products change) between two reactants. See the pymatgen.analysis.interface_reactions module for more info.

    Parameters

      - reactant1 (str) – Chemical formula for reactant

      - reactant2 (str) – Chemical formula for reactant

      - open_el (str) – Element in reservoir available to system

      - relative_mu (float) – Relative chemical potential of element in reservoir with respect to pure substance. Must be non-positive.

      - use_hull_energy (bool) – Whether to use the convex hull energy for a

      - false (given composition for the reaction energy calculation. If) –

    :param : :param the energy of the ground state structure will be preferred; if a: :param ground state can not be found for a composition: :param the convex hull: :param energy will be used with a warning message.:

    Returns

      list of dicts of form {ratio,energy,rxn} where ratio is the

        reactant mixing ratio, energy is the reaction energy in eV/atom, and rxn is a pymatgen.analysis.reaction_calculator.Reaction.

    Return type

      list

  get_materials_id_from_task_id(task_id)

    Returns a new MP materials id from a task id (which can be equivalent to an old materials id)

    Parameters

      task_id (str) – A task id.

    Returns

      materials_id (str)

  get_materials_id_references(material_id)

    Returns all references for a materials id.

    Parameters

      material_id (str) – A material id.

    Returns

      BibTeX (str)

  get_materials_ids(chemsys_formula)

    Get all materials ids for a formula or chemsys.

    Parameters

      chemsys_formula (str) – A chemical system (e.g., Li-Fe-O), or formula (e.g., Fe2O3).

    Returns

      ([str]) List of all materials ids.

  get_phonon_bandstructure_by_material_id(material_id)

    Get phonon dispersion data corresponding to a material_id.

    Parameters

      material_id (str) – Materials Project material_id.

    Returns

      A phonon band structure.

    Return type

      PhononBandStructureSymmLine

  get_phonon_ddb_by_material_id(material_id)

    Get ABINIT Derivative Data Base (DDB) output for phonon calculations.

    Parameters

      material_id (str) – Materials Project material_id.

    Returns

      ABINIT DDB file as a string.

    Return type

      str

  get_phonon_dos_by_material_id(material_id)

    Get phonon density of states data corresponding to a material_id.

    Parameters

      material_id (str) – Materials Project material_id.

    Returns

      A phonon DOS object.

    Return type

      CompletePhononDos

  get_pourbaix_entries(chemsys, solid_compat='MaterialsProject2020Compatibility')

    A helper function to get all entries necessary to generate a pourbaix diagram from the rest interface.

    Parameters

      - chemsys (str or [str]) – Chemical system string comprising element symbols separated by dashes, e.g., “Li-Fe-O” or List of element symbols, e.g., [“Li”, “Fe”, “O”].

      - solid_compat – Compatiblity scheme used to pre-process solid DFT energies prior to applying aqueous energy adjustments. May be passed as a class (e.g. MaterialsProject2020Compatibility) or an instance (e.g., MaterialsProject2020Compatibility()). If None, solid DFT energies are used as-is. Default: MaterialsProject2020Compatibility

  get_reaction(reactants, products)

    Gets a reaction from the Materials Project.

    Parameters

      - reactants ([str]) – List of formulas

      - products ([str]) – List of formulas

    Returns

      rxn

  get_stability(entries)

    Returns the stability of all entries.

  get_structure_by_material_id(material_id, final=True, conventional_unit_cell=False)

    Get a Structure corresponding to a material_id.

    Parameters

      - material_id (str) – Materials Project material_id (a string, e.g., mp-1234).

      - final (bool) – Whether to get the final structure, or the initial (pre-relaxation) structure. Defaults to True.

      - conventional_unit_cell (bool) – Whether to get the standard conventional unit cell

    Returns

      Structure object.

  get_structures(chemsys_formula_id, final=True)

    Get a list of Structures corresponding to a chemical system, formula, or materials_id.

    Parameters

      - chemsys_formula_id (str) – A chemical system (e.g., Li-Fe-O), or formula (e.g., Fe2O3) or materials_id (e.g., mp-1234).

      - final (bool) – Whether to get the final structure, or the initial (pre-relaxation) structure. Defaults to True.

    Returns

      List of Structure objects.

  get_substrates(material_id, number=50, orient=None)

    Get a substrate list for a material id. The list is in order of increasing elastic energy if a elastic tensor is available for the material_id. Otherwise the list is in order of increasing matching area.

    Parameters

      - material_id (str) – Materials Project material_id, e.g. ‘mp-123’.

      - orient (list) – substrate orientation to look for

      - number (int) – number of substrates to return n=0 returns all available matches

    Returns

      list of dicts with substrate matches

  get_surface_data(material_id, miller_index=None, inc_structures=False)

    Gets surface data for a material. Useful for Wulff shapes.

    Reference for surface data:

    Tran, R., Xu, Z., Radhakrishnan, B., Winston, D., Sun, W., Persson, K. A., & Ong, S. P. (2016). Data Descripter: Surface energies of elemental crystals. Scientific Data, 3(160080), 1–13. https://doi.org/10.1038/sdata.2016.80

    Parameters

      - material_id (str) – Materials Project material_id, e.g. ‘mp-123’.

      - miller_index (list of integer) – The miller index of the surface.

      - e.g. –

      - [3 –

      - 2 –

      - provided (1] If miller_index is) –

      - dictionary (only one) –

      - returned. (of this specific plane will be) –

      - inc_structures (bool) – Include final surface slab structures. These are unnecessary for Wulff shape construction.

    Returns

      Surface data for material. Energies are given in SI units (J/m^2).

  get_task_data(chemsys_formula_id, prop='')

    Flexible method to get any data using the Materials Project REST interface. Generally used by other methods for more specific queries. Unlike the :func:`get_data`_, this method queries the task collection for specific run information.

    Format of REST return is always a list of dict (regardless of the number of pieces of data returned. The general format is as follows:

    [{“material_id”: material_id, “property_name” : value}, …]

    Parameters

      - chemsys_formula_id (str) – A chemical system (e.g., Li-Fe-O), or formula (e.g., Fe2O3) or materials_id (e.g., mp-1234).

      - prop (str) – Property to be obtained. Should be one of the MPRester.supported_properties. Leave as empty string for a general list of useful properties.

  get_wulff_shape(material_id)

    Constructs a Wulff shape for a material.

    Parameters

      material_id (str) – Materials Project material_id, e.g. ‘mp-123’.

    Returns

      pymatgen.analysis.wulff.WulffShape

  get_xas_data(material_id, absorbing_element)

    Get X-ray absorption spectroscopy data for absorbing element in the structure corresponding to a material_id. Only X-ray Absorption Near Edge Structure (XANES) for K-edge is supported.

    REST Endpoint: https://www.materialsproject.org/materials/<mp-id>/xas/<absorbing_element>.

    Parameters

      - material_id (str) – E.g., mp-1143 for Al2O3

      - absorbing_element (str) – The absorbing element in the corresponding structure. E.g., Al in Al2O3

  static parse_criteria(criteria_string)

    Parses a powerful and simple string criteria and generates a proper mongo syntax criteria.

    Parameters

      criteria_string (str) –

      A string representing a search criteria. Also supports wild cards. E.g., something like “*2O” gets converted to {‘pretty_formula’: {‘$in’: [u’B2O’, u’Xe2O’, u”Li2O”, …]}}

      Other syntax examples:

        mp-1234: Interpreted as a Materials ID. Fe2O3 or *2O3: Interpreted as reduced formulas. Li-Fe-O or *-Fe-O: Interpreted as chemical systems.

      You can mix and match with spaces, which are interpreted as “OR”. E.g., “mp-1234 FeO” means query for all compounds with reduced formula FeO or with materials_id mp-1234.

    Returns

      A mongo query dict.

  query(criteria, properties, chunk_size=500, max_tries_per_chunk=5, mp_decode=True)

    Performs an advanced query using MongoDB-like syntax for directly querying the Materials Project database. This allows one to perform queries which are otherwise too cumbersome to perform using the standard convenience methods.

    Please consult the Materials API documentation at https://github.com/materialsproject/mapidoc, which provides a comprehensive explanation of the document schema used in the Materials Project (supported criteria and properties) and guidance on how best to query for the relevant information you need.

    For queries that request data on more than CHUNK_SIZE materials at once, this method will chunk a query by first retrieving a list of material IDs that satisfy CRITERIA, and then merging the criteria with a restriction to one chunk of materials at a time of size CHUNK_SIZE. You can opt out of this behavior by setting CHUNK_SIZE=0. To guard against intermittent server errors in the case of many chunks per query, possibly-transient server errors will result in re-trying a give chunk up to MAX_TRIES_PER_CHUNK times.

    Parameters

      - criteria (str/dict) –

        Criteria of the query as a string or mongo-style dict.

        If string, it supports a powerful but simple string criteria. E.g., “Fe2O3” means search for materials with reduced_formula Fe2O3. Wild cards are also supported. E.g., “\*2O” means get all materials whose formula can be formed as \*2O, e.g., Li2O, K2O, etc.

        Other syntax examples: mp-1234: Interpreted as a Materials ID. Fe2O3 or *2O3: Interpreted as reduced formulas. Li-Fe-O or *-Fe-O: Interpreted as chemical systems.

        You can mix and match with spaces, which are interpreted as “OR”. E.g. “mp-1234 FeO” means query for all compounds with reduced formula FeO or with materials_id mp-1234.

        Using a full dict syntax, even more powerful queries can be constructed. For example, {“elements”:{“$in”:[“Li”, “Na”, “K”], “$all”: [“O”]}, “nelements”:2} selects all Li, Na and K oxides. {“band_gap”: {“$gt”: 1}} selects all materials with band gaps greater than 1 eV.

      - properties (list) – Properties to request for as a list. For example, [“formula”, “formation_energy_per_atom”] returns the formula and formation energy per atom.

      - chunk_size (int) – Number of materials for which to fetch data at a time. More data-intensive properties may require smaller chunk sizes. Use chunk_size=0 to force no chunking – this is useful when fetching only properties such as ‘material_id’.

      - max_tries_per_chunk (int) – How many times to re-try fetching a given chunk when the server gives a 5xx error (e.g. a timeout error).

      - mp_decode (bool) – Whether to do a decoding to a Pymatgen object where possible. In some cases, it might be useful to just get the raw python dict, i.e., set to False.

    Returns

      List of results. E.g., [{u’formula’: {u’O’: 1, u’Li’: 2.0}}, {u’formula’: {u’Na’: 2.0, u’O’: 2.0}}, {u’formula’: {u’K’: 1, u’O’: 3.0}}, …]

  query_snl(criteria)

    Query for submitted SNLs.

    Note

    As of now, this MP REST feature is open only to a select group of users. Opening up submissions to all users is being planned for the future.

    Parameters

      criteria (dict) – Query criteria.

    Returns

      A dict, with a list of submitted SNLs in the “response” key.

    Raises

      MPRestError –

  submit_snl(snl)

    Submits a list of StructureNL to the Materials Project site.

    Note

    As of now, this MP REST feature is open only to a select group of users. Opening up submissions to all users is being planned for the future.

    Parameters

      - snl (StructureNL/[StructureNL]) – A single StructureNL, or a list

      - objects (of StructureNL) –

    Returns

      A list of inserted submission ids.

    Raises

      MPRestError –

  submit_structures(structures, authors, projects=None, references='', remarks=None, data=None, histories=None, created_at=None)

    Submits a list of structures to the Materials Project as SNL files. The argument list mirrors the arguments for the StructureNL object, except that a list of structures with the same metadata is used as an input.

    Note

    As of now, this MP REST feature is open only to a select group of users. Opening up submissions to all users is being planned for the future.

    Parameters

      - structures – A list of Structure objects

      - authors (list) – List of {“name”:’’, “email”:’’} dicts, list of Strings as ‘John Doe <johndoe@gmail.com>’, or a single String with commas separating authors

      - projects ([str]) – List of Strings [‘Project A’, ‘Project B’]. This applies to all structures.

      - references (str) – A String in BibTeX format. Again, this applies to all structures.

      - remarks ([str]) – List of Strings [‘Remark A’, ‘Remark B’]

      - data ([dict]) – A list of free form dict. Namespaced at the root level with an underscore, e.g. {“_materialsproject”:<custom data>}. The length of data should be the same as the list of structures if not None.

      - histories – List of list of dicts - [[{‘name’:’’, ‘url’:’’, ‘description’:{}}], …] The length of histories should be the same as the list of structures if not None.

      - created_at (datetime) – A datetime object

    Returns

      A list of inserted submission ids.

  submit_vasp_directory(rootdir, authors, projects=None, references='', remarks=None, master_data=None, master_history=None, created_at=None, ncpus=None)

    Assimilates all vasp run directories beneath a particular directory using BorgQueen to obtain structures, and then submits thhem to the Materials Project as SNL files. VASP related meta data like initial structure and final energies are automatically incorporated.

    Note

    As of now, this MP REST feature is open only to a select group of users. Opening up submissions to all users is being planned for the future.

    Parameters

      - rootdir (str) – Rootdir to start assimilating VASP runs from.

      - authors – List of {“name”:’’, “email”:’’} dicts, list of Strings as ‘John Doe <johndoe@gmail.com>’, or a single String with commas separating authors. The same list of authors should apply to all runs.

      - projects ([str]) – List of Strings [‘Project A’, ‘Project B’]. This applies to all structures.

      - references (str) – A String in BibTeX format. Again, this applies to all structures.

      - remarks ([str]) – List of Strings [‘Remark A’, ‘Remark B’]

      - master_data (dict) – A free form dict. Namespaced at the root level with an underscore, e.g. {“_materialsproject”:<custom data>}. This data is added to all structures detected in the directory, in addition to other vasp data on a per structure basis.

      - master_history – A master history to be added to all entries.

      - created_at (datetime) – A datetime object

      - ncpus (int) – Number of cpus to use in using BorgQueen to assimilate. Defaults to None, which means serial.

  supported_properties = ('energy', 'energy_per_atom', 'volume', 'formation_energy_per_atom', 'nsites', 'unit_cell_formula', 'pretty_formula', 'is_hubbard', 'elements', 'nelements', 'e_above_hull', 'hubbards', 'is_compatible', 'spacegroup', 'task_ids', 'band_gap', 'density', 'icsd_id', 'icsd_ids', 'cif', 'total_magnetization', 'material_id', 'oxide_type', 'tags', 'elasticity')
  supported_task_properties = ('energy', 'energy_per_atom', 'volume', 'formation_energy_per_atom', 'nsites', 'unit_cell_formula', 'pretty_formula', 'is_hubbard', 'elements', 'nelements', 'e_above_hull', 'hubbards', 'is_compatible', 'spacegroup', 'band_gap', 'density', 'icsd_id', 'cif')

class TaskType(value)

  Bases: `enum.Enum`

  task types available in MP

  GGAU_DEF = 'GGA+U Deformation'
  GGAU_LINE = 'GGA+U NSCF Line'
  GGAU_OPT = 'GGA+U Structure Optimization'
  GGAU_STATIC = 'GGA+U Static'
  GGAU_STATIC_DIEL = 'GGA+U Static Dielectric'
  GGAU_UNIFORM = 'GGA+U NSCF Uniform'
  GGA_DEF = 'GGA Deformation'
  GGA_LINE = 'GGA NSCF Line'
  GGA_OPT = 'GGA Structure Optimization'
  GGA_STATIC = 'GGA Static'
  GGA_STATIC_DIEL = 'GGA Static Dielectric'
  GGA_UNIFORM = 'GGA NSCF Uniform'
  LDA_STATIC_DIEL = 'LDA Static Dielectric'
  SCAN_OPT = 'SCAN Structure Optimization'