Example #1
0
def write_FORCE_SETS_vasp(forces_filenames,
                          displacements,
                          filename='FORCE_SETS',
                          is_zero_point=False,
                          verbose=True):
    try:
        from lxml import etree
    except ImportError:
        print "You need to install python-lxml."
        sys.exit(1)

    if verbose:
        print "counter (file index):",
        
    num_atom = displacements['natom']
    count = 0
    are_files_correct = True
        
    if is_zero_point:
        force_files = forces_filenames[1:]
        if vasp.is_version528(forces_filenames[0]):
            zero_forces = vasp.get_forces_vasprun_xml(etree.iterparse(
                vasp.VasprunWrapper(forces_filenames[0]), tag='varray'))
        else:
            zero_forces = vasp.get_forces_vasprun_xml(
                etree.iterparse(forces_filenames[0], tag='varray'))

        if verbose:
            print "%d" % (count + 1),
        count += 1
            
        if not check_forces(zero_forces, num_atom, forces_filenames[0]):
            are_files_correct = False
    else:
        force_files = forces_filenames
        zero_forces = None

    for i, disp in enumerate(displacements['first_atoms']):
        if vasp.is_version528(force_files[i]):
            disp['forces'] = vasp.get_forces_vasprun_xml(etree.iterparse(
                vasp.VasprunWrapper(force_files[i]), tag='varray'))
        else:
            disp['forces'] = vasp.get_forces_vasprun_xml(
                etree.iterparse(force_files[i], tag='varray'))

        if verbose:
            print "%d" % (count + 1),
        count += 1
        
        if not check_forces(disp['forces'], num_atom, force_files[i]):
            are_files_correct = False

    if verbose:
        print
        
    write_FORCE_SETS(displacements,
                     filename=filename,
                     zero_forces=zero_forces)

    return are_files_correct
Example #2
0
def write_FORCE_SETS_vasp(forces_filenames,
                          displacements,
                          filename='FORCE_SETS',
                          is_zero_point=False,
                          verbose=True):

    if verbose:
        print "counter (file index):",

    num_atom = displacements['natom']
    count = 0
    are_files_correct = True

    if is_zero_point:
        force_files = forces_filenames[1:]
        if vasp.is_version528(forces_filenames[0]):
            zero_forces = vasp.get_forces_vasprun_xml(
                iterparse(vasp.VasprunWrapper(forces_filenames[0]),
                          tag='varray'))
        else:
            zero_forces = vasp.get_forces_vasprun_xml(
                iterparse(forces_filenames[0], tag='varray'))

        if verbose:
            print "%d" % (count + 1),
        count += 1

        if not check_forces(zero_forces, num_atom, forces_filenames[0]):
            are_files_correct = False
    else:
        force_files = forces_filenames
        zero_forces = None

    for i, disp in enumerate(displacements['first_atoms']):
        if vasp.is_version528(force_files[i]):
            disp['forces'] = vasp.get_forces_vasprun_xml(
                iterparse(vasp.VasprunWrapper(force_files[i]), tag='varray'))
        else:
            disp['forces'] = vasp.get_forces_vasprun_xml(
                iterparse(force_files[i], tag='varray'))

        if verbose:
            print "%d" % (count + 1),
        count += 1

        if not check_forces(disp['forces'], num_atom, force_files[i]):
            are_files_correct = False

    if verbose:
        print

    write_FORCE_SETS(displacements, filename=filename, zero_forces=zero_forces)

    return are_files_correct
Example #3
0
def read_force_constant_vasprun_xml(filename):

    import sys
    try:
        from lxml import etree
    except ImportError:
        print "You need to install python-lxml."
        sys.exit(1)

    if vasp.is_version528(filename):
        vasprun = etree.iterparse(vasp.VasprunWrapper(filename))
    else:
        vasprun = etree.iterparse(filename)
    return vasp.get_force_constants_vasprun_xml(vasprun)
Example #4
0
def read_force_constant_vasprun_xml(filename):
    if vasp.is_version528(filename):
        vasprun = iterparse(vasp.VasprunWrapper(filename))
    else:
        vasprun = iterparse(filename)
    return vasp.get_force_constants_vasprun_xml(vasprun)
Example #5
0
def read_force_constant_vasprun_xml(filename):
    if vasp.is_version528(filename):
        vasprun = iterparse(vasp.VasprunWrapper(filename))
    else:
        vasprun = iterparse(filename)
    return vasp.get_force_constants_vasprun_xml(vasprun)