Source code for pyiron_atomistics.vasp.structure

# coding: utf-8
# Copyright (c) Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department
# Distributed under the terms of "New BSD License", see the LICENSE file.

__author__ = "Sudarsan Surendralal"
__copyright__ = (
    "Copyright 2021, Max-Planck-Institut für Eisenforschung GmbH - "
    "Computational Materials Design (CM) Department"
)
__version__ = "1.0"
__maintainer__ = "Sudarsan Surendralal"
__email__ = "surendralal@mpie.de"
__status__ = "production"
__date__ = "Sep 1, 2017"

from vaspparser.vasp.structure import (
    atoms_from_string as _atoms_from_string,
)
from vaspparser.vasp.structure import (
    get_poscar_content as _get_poscar_content,
)
from vaspparser.vasp.structure import (
    read_atoms as _read_atoms,
)
from vaspparser.vasp.structure import (
    write_poscar as _write_poscar,
)

from pyiron_atomistics.atomistics.structure.atoms import ase_to_pyiron, pyiron_to_ase


[docs] def read_atoms( filename="CONTCAR", return_velocities=False, species_list=None, species_from_potcar=False, ): """ Routine to read structural static from a POSCAR type file Args: filename (str): Input filename return_velocities (bool): True if the predictor corrector velocities are read (only from MD output) species_list (list/numpy.ndarray): A list of the species (if not present in the POSCAR file or a POTCAR in the same directory) species_from_potcar (bool): True if the species list should be read from the POTCAR file in the same directory Returns: pyiron.atomistics.structure.atoms.Atoms: The generated structure object """ if return_velocities: atoms, velocities = _read_atoms( filename=filename, return_velocities=return_velocities, species_list=species_list, species_from_potcar=species_from_potcar, ) return ase_to_pyiron(atoms), velocities else: atoms = _read_atoms( filename=filename, return_velocities=return_velocities, species_list=species_list, species_from_potcar=species_from_potcar, ) return ase_to_pyiron(atoms)
[docs] def get_poscar_content(structure, write_species=True, cartesian=True): return _get_poscar_content( pyiron_to_ase(structure), write_species=write_species, cartesian=cartesian )
[docs] def atoms_from_string(string, read_velocities=False, species_list=None): """ Routine to convert a string list read from a input/output structure file and convert into Atoms instance Args: string (list): A list of strings (lines) read from the POSCAR/CONTCAR/CHGCAR/LOCPOT file read_velocities (bool): True if the velocities from a CONTCAR file should be read (predictor corrector) species_list (list/numpy.ndarray): A list of species of the atoms Returns: pyiron.atomistics.structure.atoms.Atoms: The required structure object """ if read_velocities: atoms, velocities = _atoms_from_string( string=string, read_velocities=read_velocities, species_list=species_list ) return ase_to_pyiron(atoms), velocities else: return ase_to_pyiron( _atoms_from_string( string=string, read_velocities=read_velocities, species_list=species_list, ) )
[docs] def write_poscar(structure, filename="POSCAR", write_species=True, cartesian=True): _write_poscar( structure=pyiron_to_ase(structure), filename=filename, write_species=write_species, cartesian=cartesian, )