Exemplo n.º 1
0
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):
Exemplo n.º 2
0
"""
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: