from custodian import Custodian from custodian.vasp.handlers import VaspErrorHandler, AliasingErrorHandler, MeshSymmetryErrorHandler, \ UnconvergedErrorHandler, MaxForceErrorHandler, PotimErrorHandler, FrozenJobErrorHandler, \ NonConvergingErrorHandler, PositiveEnergyErrorHandler, WalltimeHandler from custodian.vasp.jobs import VaspJob from custodian.vasp.validators import VasprunXMLValidator from fireworks import explicit_serialize, FireTaskBase from matmethods.utils.utils import env_chk, get_logger __author__ = 'Anubhav Jain <*****@*****.**>' __credits__ = 'Shyue Ping Ong <ong.sp>' logger = get_logger(__name__) @explicit_serialize class RunVaspDirect(FireTaskBase): """ Run VASP directly (no custodian). Required params: vasp_cmd (str): the name of the full executable for running VASP. Supports env_chk. """ required_params = ["vasp_cmd"] def run_task(self, fw_spec):
""" This module defines the workflow to compute the Raman susceptibility tensor. """ from fireworks import Firework, Workflow from matmethods.utils.utils import get_logger from matmethods.vasp.fireworks.core import OptimizeFW, LepsFW from matmethods.vasp.firetasks.parse_outputs import RamanSusceptibilityTensorToDbTask from pymatgen.io.vasp.sets import MPRelaxSet __author__ = 'Kiran Mathew' __email__ = '*****@*****.**' logger = get_logger(__name__) def get_wf_raman_spectra(structure, modes=None, step_size=0.005, vasp_cmd="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: