import numpy as np
[docs]
def fcc(ele_name="ele", a=4.05):
from pymatgen.core.structure import Structure
box = np.array([[0.0, 0.5, 0.5], [0.5, 0.0, 0.5], [0.5, 0.5, 0.0]])
box *= a
return Structure(box, [ele_name], [[0, 0, 0]])
[docs]
def fcc1(ele_name="ele", a=4.05):
from pymatgen.core.lattice import Lattice
from pymatgen.core.structure import Structure
latt = Lattice.cubic(a)
return Structure(
latt,
[ele_name, ele_name, ele_name, ele_name],
[[0, 0, 0], [0, 0.5, 0.5], [0.5, 0, 0.5], [0.5, 0.5, 0]],
)
[docs]
def sc(ele_name="ele", a=2.551340126037118):
from pymatgen.core.lattice import Lattice
from pymatgen.core.structure import Structure
latt = Lattice.cubic(a)
return Structure(latt, [ele_name], [[0, 0, 0]])
[docs]
def bcc(ele_name="ele", a=3.2144871302356037):
from pymatgen.core.lattice import Lattice
from pymatgen.core.structure import Structure
latt = Lattice.cubic(a)
return Structure(
latt,
[ele_name, ele_name],
[
[0, 0, 0],
[0.5, 0.5, 0.5],
],
)
[docs]
def hcp(
ele_name="ele", a=4.05 / np.sqrt(2), c=4.05 / np.sqrt(2) * 2.0 * np.sqrt(2.0 / 3.0)
):
from pymatgen.core.lattice import Lattice
from pymatgen.core.structure import Structure
box = np.array([[1, 0, 0], [0.5, 0.5 * np.sqrt(3), 0], [0, 0, 1]])
box[0] *= a
box[1] *= a
box[2] *= c
latt = Lattice(box)
return Structure(
latt, [ele_name, ele_name], [[0, 0, 0], [1.0 / 3, 1.0 / 3, 1.0 / 2]]
)
[docs]
def dhcp(
ele_name="ele", a=4.05 / np.sqrt(2), c=4.05 / np.sqrt(2) * 4.0 * np.sqrt(2.0 / 3.0)
):
from pymatgen.core.lattice import Lattice
from pymatgen.core.structure import Structure
box = np.array([[1, 0, 0], [0.5, 0.5 * np.sqrt(3), 0], [0, 0, 1]])
box[0] *= a
box[1] *= a
box[2] *= c
latt = Lattice(box)
return Structure(
latt,
[ele_name, ele_name, ele_name, ele_name],
[
[0, 0, 0],
[1.0 / 3.0, 1.0 / 3.0, 1.0 / 4.0],
[0, 0, 1.0 / 2.0],
[2.0 / 3.0, 2.0 / 3.0, 3.0 / 4.0],
],
)
[docs]
def diamond(ele_name="ele", a=2.551340126037118):
from pymatgen.core.lattice import Lattice
from pymatgen.core.structure import Structure
box = np.array([[0.0, 1.0, 1.0], [1.0, 0.0, 1.0], [1.0, 1.0, 0.0]])
box *= a
latt = Lattice(box)
return Structure(
latt,
[ele_name, ele_name],
[
[0.12500000000000, 0.12500000000000, 0.12500000000000],
[0.87500000000000, 0.87500000000000, 0.87500000000000],
],
)