atomate.vasp.workflows.base package¶
Submodules¶
atomate.vasp.workflows.base.adsorption module¶
-
atomate.vasp.workflows.base.adsorption.get_wf_adsorption(structure, adsorbate_config, vasp_input_set=None, slab_gen_params=None, vasp_cmd=u'vasp', db_file=None, conventional=True, slab_incar_params=None, ads_incar_params=None, auto_dipole=True, use_bulk_coordination=False, optimize_slab=True, optimize_bulk=True, find_ads_params=None)¶ Returns a workflow to calculate adsorption structures and surfaces.
- Firework 1 : write vasp input set for structural relaxation,
- run vasp, pass run location, database insertion.
Firework 2 - N: Optimize Slab and Adsorbate Structures
- Args:
structure (Structure): input structure to be optimized and run adsorbate_config (dict): configuration dictionary, keys are strings
corresponding to the miller index, values are molecules to be placed as adsorbates via the adsorption_site_finder e. g. {“111”:Molecule(“CO”, [[0, 0, 0], [0, 0, 1.23]])}vasp_input_set (DictVaspInputSet): vasp input set. slab_gen_params vasp_cmd (str): command to run db_file (str): path to file containing the database credentials. conventional slab_incar_params ads_incar_params auto_dipole use_bulk_coordination optimize_slab optimize_bulk find_ads_params
- Returns:
- Workflow
-
atomate.vasp.workflows.base.adsorption.get_wf_adsorption_from_slab(slab, molecules, vasp_input_set=None, vasp_cmd=u'vasp', db_file=None, auto_dipole=True, slab_incar_params=None, ads_incar_params=None, optimize_slab=False, find_ads_params=None, name=u'')¶ This workflow function generates a workflow starting from a slab, rather than a bulk structure. It’s intended use is for workflows that begin from optimized slabs or that begin from previous calculations that have already optimized structures.
- Args:
- slab (Slab or structure): molecules (Molecule): vasp_input_set vasp_cmd db_file auto_dipole slab_incar_params ads_incar_params optimize_slab find_ads_params name
-
atomate.vasp.workflows.base.adsorption.get_wf_molecules(molecules, vasp_input_sets=None, vibrations=False, min_vacuum_size=15.0, vasp_cmd=u'vasp', db_file=None)¶ Returns a workflow to calculate molecular energies as references for the surface workflow.
- Firework 1 : write vasp input set for structural relaxation,
- run vasp, pass run location, database insertion.
- Args:
- molecules (list of molecules): input structure to be optimized and run vasp_input_sets (DictVaspInputSet): vasp input set. vibrations min_vacuum_size vasp_cmd (str): command to run db_file (str): path to file containing the database credentials.
- Returns:
- Workflow
atomate.vasp.workflows.base.bulk_modulus module¶
-
atomate.vasp.workflows.base.bulk_modulus.get_wf_bulk_modulus(structure, deformations, vasp_input_set=None, vasp_cmd=u'vasp', db_file=None, user_kpoints_settings=None, eos=u'vinet')¶ Returns the workflow that computes the bulk modulus by fitting to the given equation of state.
- Args:
structure (Structure): input structure. deformations (list): list of deformation matrices(list of lists). vasp_input_set (VaspInputSet) vasp_cmd (str): vasp command to run. db_file (str): path to the db file. user_kpoints_settings (dict): example: {“grid_density”: 7000} eos (str): equation of state used for fitting the energies and the volumes.
supported equation of states: “quadratic”, “murnaghan”, “birch”, “birch_murnaghan”, “pourier_tarantola”, “vinet”, “deltafactor”. See pymatgen.analysis.eos.py- Returns:
- Workflow
atomate.vasp.workflows.base.core module¶
-
atomate.vasp.workflows.base.core.get_wf(structure, wf_filename, params=None, common_params=None, vis=None, wf_metadata=None)¶ Get a workflow given a structure and a name of file from the workflow library.
Possible options for wf_filename are listed in: atomate.vasp.workflows.base.library and include band structure, dielectric constant, NEB, and more.
You can also override some of the parameters via the function arguments.
- Args:
structure: (Structure) structure to run wf_filename: filename in library subdir, e.g. “band_structure.yaml” params: (list of dicts) set params for each Firework; format is list
that is same length as # of fws in the workflowcommon_params: (dict) set common params vis: (VaspInputSet) A VaspInputSet to use for the first FW wf_metadata: (dict) workflow metadata
- Returns:
- A Workflow
atomate.vasp.workflows.base.deformations module¶
-
atomate.vasp.workflows.base.deformations.get_wf_deformations(structure, deformations, name=u'deformation', vasp_input_set=None, lepsilon=False, vasp_cmd=u'vasp', db_file=None, user_kpoints_settings=None, pass_stress_strain=False, tag=u'', relax_deformed=False, optimize_structure=True, metadata=None)¶ Returns a structure deformation workflow.
Firework 1 : structural relaxation Firework 2 - len(deformations): Deform the optimized structure and run static calculations.
- Args:
structure (Structure): input structure to be optimized and run deformations (list of 3x3 array-likes): list of deformations name (str): some appropriate name for the transmuter fireworks. vasp_input_set (DictVaspInputSet): vasp input set. lepsilon (bool): whether or not compute static dielectric constant/normal modes vasp_cmd (str): command to run db_file (str): path to file containing the database credentials. user_kpoints_settings (dict): example: {“grid_density”: 7000} pass_stress_strain (bool): if True, stress and strain will be parsed and passed on. tag (str): some unique string that will be appended to the names of the fireworks so that
the data from those tagged fireworks can be queried later during the analysis.metadata (dict): meta data
- Returns:
- Workflow
atomate.vasp.workflows.base.elastic module¶
-
atomate.vasp.workflows.base.elastic.get_wf_elastic_constant(structure, vasp_input_set=None, vasp_cmd=u'vasp', norm_deformations=None, shear_deformations=None, additional_deformations=None, db_file=None, user_kpoints_settings=None, add_analysis_task=True, conventional=True, optimize_structure=True)¶ Returns a workflow to calculate elastic constants.
- Firework 1 : write vasp input set for structural relaxation,
- run vasp, pass run location, database insertion.
Firework 2 - number of total deformations: Static runs on the deformed structures
last Firework : Analyze Stress/Strain data and fit the elastic tensor
- Args:
- structure (Structure): input structure to be optimized and run. norm_deformations (list): list of values to for normal deformations. shear_deformations (list): list of values to for shear deformations. additional_deformations (list of 3x3 array-likes): list of additional deformations. vasp_input_set (DictVaspInputSet): vasp input set. vasp_cmd (str): command to run. db_file (str): path to file containing the database credentials. user_kpoints_settings (dict): example: {“grid_density”: 7000} add_analysis_task (bool): boolean indicating whether to add analysis
- Returns:
- Workflow
atomate.vasp.workflows.base.gibbs module¶
-
atomate.vasp.workflows.base.gibbs.get_wf_gibbs_free_energy(structure, deformations, vasp_input_set=None, vasp_cmd=u'vasp', db_file=None, user_kpoints_settings=None, t_step=10, t_min=0, t_max=1000, mesh=(20, 20, 20), eos=u'vinet', qha_type=u'debye_model', pressure=0.0, poisson=0.25, metadata=None)¶ Returns quasi-harmonic gibbs free energy workflow. Note: phonopy package is required for the final analysis step if qha_type=”phonopy”
- Args:
structure (Structure): input structure. deformations (list): list of deformation matrices(list of lists). vasp_input_set (VaspInputSet) vasp_cmd (str): vasp command to run. db_file (str): path to the db file. user_kpoints_settings (dict): example: {“grid_density”: 7000} t_step (float): temperature step (in K) t_min (float): min temperature (in K) t_max (float): max temperature (in K) mesh (list/tuple): reciprocal space density eos (str): equation of state used for fitting the energies and the volumes.
options supported by phonopy: “vinet”, “murnaghan”, “birch_murnaghan”. Note: pymatgen supports more options than phonopy. see pymatgen.analysis.eos.py- qha_type(str): quasi-harmonic approximation type: “debye_model” or “phonopy”,
- default is “debye_model”
pressure (float): in GPa poisson (float): poisson ratio metadata (dict): meta data
- Returns:
- Workflow
atomate.vasp.workflows.base.neb module¶
This module defines the Nudged Elastic Band (NEB) workflow.
-
atomate.vasp.workflows.base.neb.get_wf_neb_from_endpoints(parent, endpoints, user_incar_settings=None, additional_spec=None, user_kpoints_settings=None, additional_cust_args=None)¶ Get a CI-NEB workflow from given endpoints. Workflow: (Endpoints relax – ) NEB_1 – NEB_2 - ... - NEB_r
endpoints not optimized: ep–neb(r) endpoints are optimized: neb(r)- Args:
parent (Structure): parent structure. endpoints (list[Structure]): The endpoint structures. user_incar_settings([dict]): Additional user_incar_settings. Note that the order of the
list is set as: “parent”, “ep_relax”, “neb1”, “neb2” etc., which contains at least three elements. The first dict is for parent structure relaxation, the second dict is for endpoints relaxation, and the rest are for NEB calculations. For example, [{}, {}, {“IOPT”: 7}, {“IOPT”: 1}]. Besides, user_incar_settings is used to determine how many NEB rounds will be. Default is [{}, {}, {}].additional_spec (dict): User spec settings to overwrite default_spec. user_kpoints_settings ([dict]): Additional user_kpoints_settings, which contains at at
least three elements, which is similar to user_incar_settings. For example, [{}, {}, {“grid_density”: 100}] for the workflow from the parent structure relaxation, then the endpoint relaxation followed by one-round NEB simulation. Default values depend on the selected VaspInputSet.- additional_cust_args ([dict]): Optional parameters for RunVaspCustodian, same structure
- with user_incar_settings and user_kpoints_settings.
- Returns:
- Workflow
-
atomate.vasp.workflows.base.neb.get_wf_neb_from_images(parent, images, user_incar_settings, additional_spec=None, user_kpoints_settings=None, additional_cust_args=None)¶ Get a CI-NEB workflow from given images. Workflow: NEB_1 – NEB_2 - ... - NEB_n
- Args:
parent (Structure): parent structure. images ([Structure]): All images and two endpoints. user_incar_settings([dict]): Additional user_incar_settings. Note that the order of the
list is set as: “parent”, “ep_relax”, “neb1”, “neb2” etc., which contains at least three elements. The first dict is for parent structure relaxation, the second dict is for endpoints relaxation, and the rest are for NEB calculations. For example, [{}, {}, {“IOPT”: 7}, {“IOPT”: 1}]. Besides, user_incar_settings is used to determine how many NEB rounds will be. Default is [{}, {}, {}].additional_spec (dict): User spec settings to overwrite default_spec. user_kpoints_settings ([dict]): Additional user_kpoints_settings, which contains at at
least three elements, which is similar to user_incar_settings. For example, [{}, {}, {“grid_density”: 100}] for the workflow from the parent structure relaxation, then the endpoint relaxation followed by one-round NEB simulation. Default values depend on the selected VaspInputSet.- additional_cust_args ([dict]): Optional parameters for RunVaspCustodian, same structure
- with user_incar_settings and user_kpoints_settings.
- Returns:
- Workflow
-
atomate.vasp.workflows.base.neb.get_wf_neb_from_structure(structure, user_incar_settings=None, additional_spec=None, user_kpoints_settings=None, additional_cust_args=None)¶ Obtain the CI-NEB workflow staring with a parent structure. This works only under the single vacancy diffusion mechanism.
- Workflow: (parent relaxation) –> Endpoints relaxation –> NEB_1 –> NEB_2 –> ... –> NEB_r
- If parent is not relaxed: then parent relaxation–ep–neb(r)
(r rounds of NEB)
If parent is relaxed: ep–neb(r) (r rounds of NEB)
- Args:
structure (Structure): The parent structure. user_incar_settings([dict]): Additional user_incar_settings. Note that the order of the
list is set as: “parent”, “ep_relax”, “neb1”, “neb2” etc., which contains at least three elements. The first dict is for parent structure relaxation, the second dict is for endpoints relaxation, and the rest are for NEB calculations. For example, [{}, {}, {“IOPT”: 7}, {“IOPT”: 1}]. Besides, user_incar_settings is used to determine how many NEB rounds will be. Default is [{}, {}, {}].additional_spec (dict): User spec settings to overwrite default_spec. user_kpoints_settings ([dict]): Additional user_kpoints_settings, which contains at at
least three elements, which is similar to user_incar_settings. For example, [{}, {}, {“grid_density”: 100}] for the workflow from the parent structure relaxation, then the endpoint relaxation followed by one-round NEB simulation. Default values depend on the selected VaspInputSet.- additional_cust_args ([dict]): Optional parameters for RunVaspCustodian, same structure
- with user_incar_settings and user_kpoints_settings.
- Returns:
- Workflow
atomate.vasp.workflows.base.raman module¶
-
atomate.vasp.workflows.base.raman.get_wf_raman_spectra(structure, modes=None, step_size=0.005, vasp_cmd=u'vasp', db_file=None)¶ - Raman susceptibility tensor workflow:
- Calculation of phonon normal modes followed by the computation of dielectric tensor for structures displaced along the normal modes. Finally the dielectric tensors corresponding to each mode are used to compute the Raman susceptibility tensor using finite difference (central difference scheme).
- Args:
structure (Structure): Input structure. modes (tuple/list): list of modes for which the Raman spectra need to be calculated.
The default is to use all the 3N modes.- step_size (float): site displacement along the normal mode in Angstroms. Used to compute
- the finite difference(central difference scheme) first derivative of the dielectric constant along the normal modes.
vasp_cmd (str): vasp command to run. db_file (str): path to file containing the database credentials.
- Returns:
- Workflow
atomate.vasp.workflows.base.thermal_expansion module¶
-
atomate.vasp.workflows.base.thermal_expansion.get_wf_thermal_expansion(structure, deformations, vasp_input_set=None, vasp_cmd=u'vasp', db_file=None, user_kpoints_settings=None, t_step=10, t_min=0, t_max=1000, mesh=(20, 20, 20), eos=u'vinet', pressure=0.0)¶ Returns quasi-harmonic thermal expansion workflow. Note: phonopy package is required for the final analysis step.
- Args:
structure (Structure): input structure. deformations (list): list of deformation matrices(list of lists). vasp_input_set (VaspInputSet) vasp_cmd (str): vasp command to run. db_file (str): path to the db file. user_kpoints_settings (dict): example: {“grid_density”: 7000} t_step (float): temperature step (in K) t_min (float): min temperature (in K) t_max (float): max temperature (in K) mesh (list/tuple): reciprocal space density eos (str): equation of state used for fitting the energies and the volumes.
options supported by phonopy: “vinet”, “murnaghan”, “birch_murnaghan”. Note: pymatgen supports more options than phonopy. see pymatgen.analysis.eos.pypressure (float): in GPa
- Returns:
- Workflow