Beispiel #1
0
def create_incar(xsdname, args):
    """"""
    if os.path.exists('INCAR'):
        return 'INCAR already exists, not changed.\n'

    incar = InCar()
    if args.task:
        task = args.task
        incar.quickgen(args.task)
    else:
        task = 'SC'
    content = 'INCAR -->\n'
    content += '     Task is %s\n' %task

    if PY2:
        pname_value_pairs = args.__dict__.iteritems()
    else:
        pname_value_pairs = args.__dict__.items()

    for pname, value in pname_value_pairs :
        if (value is not None):
            if pname in incar.pnames:
                incar.set(pname, value)
            else:
                if (pname in INCAR_PARAMETERS.keys()):
                    incar.add(pname, value)
            content += "     {} -> {}\n".format(pname, value)
    #incar.set('SYSTEM', xsdname)

    incar.tofile(verbos=False)

    content += '\n'

    return content
Beispiel #2
0
        distance = np.linalg.norm(b)
        # Create fort.188
        content = '1\n3\n6\n4\n0.04\n%-5d%-5d%f\n0\n' % \
            (atom_idxs[0]+1, atom_idxs[1]+1, distance)
        with open('fort.188', 'w') as f:
            f.write(content)
        _logger.info("fort.188 has been created.")
        _logger.info('-' * 20)
        _logger.info("atom number: {:<5d}{:<5d}".format(
            atom_idxs[0] + 1, atom_idxs[1] + 1))
        _logger.info("atom name: {} {}".format(*atom_names))
        _logger.info("distance: {:f}".format(distance))
        _logger.info('-' * 20)

        # Set IBRION = 1
        incar.set('IBRION', 1)
        _logger.info("{} -> {}".format("IBRION", "1"))

    if PY2:
        pname_value_pairs = args.__dict__.iteritems()
    else:
        pname_value_pairs = args.__dict__.items()

    for pname, value in pname_value_pairs:
        if (value is not None) and (pname in incar.pnames):
            incar.set(pname, value)
            _logger.info("{} -> {}".format(pname, value))

    # Generate new INCAR file.
    incar.tofile()
Beispiel #3
0
        distance = np.linalg.norm(b)
        # Create fort.188
        content = '1\n3\n6\n4\n0.04\n%-5d%-5d%f\n0\n' % \
            (atom_idxs[0]+1, atom_idxs[1]+1, distance)
        with open('fort.188', 'w') as f:
            f.write(content)
        _logger.info("fort.188 has been created.")
        _logger.info('-'*20)
        _logger.info("atom number: {:<5d}{:<5d}".format(atom_idxs[0]+1, atom_idxs[1]+1))
        _logger.info("atom name: {} {}".format(*atom_names))
        _logger.info("distance: {:f}".format(distance))
        _logger.info('-'*20)

        # Set IBRION = 1
        incar.set('IBRION', 1)
        _logger.info("{} -> {}".format("IBRION", "1"))

    if PY2:
        pname_value_pairs = args.__dict__.iteritems()
    else:
        pname_value_pairs = args.__dict__.items()

    for pname, value in pname_value_pairs :
        if (value is not None) and (pname in incar.pnames):
            incar.set(pname, value)
            _logger.info("{} -> {}".format(pname, value))

    # Generate new INCAR file.
    incar.tofile()