4.11. Germanium solidΒΆ
This example calculates a Germanium solid, utilizing the periodic boundary conditions of the code.
import numpy as np
from eminus import Atoms, SCF
from eminus.units import ang2bohr, ev2ha
Create a germanium crystal with an FCC crystal structure
Here, a
is not only the unit cell size but the lattice constant as well, defining the periodicity
As a reminder, the center
option should not be used when explicitly using periodicity
Since electronvolt and Angstrom are common in solid-state physics convert the units here to atomic units
atom = "Ge8"
a = ang2bohr(5.658)
ecut = ev2ha(500)
pos = a * np.array(
[
[0, 0, 0],
[0, 0.5, 0.5],
[0.25, 0.25, 0.25],
[0.25, 0.75, 0.75],
[0.5, 0, 0.5],
[0.5, 0.5, 0],
[0.75, 0.25, 0.25],
[0.75, 0.75, 0.25],
]
)
atoms = Atoms(atom=atom, pos=pos, a=a, ecut=ecut)
Use the pseudopotential from Tomas Arias (only local and only for germanium)
The GTH pseudopotential will work as well and would include non-local effects
Reduce the convergence tolerance for this example
scf = SCF(atoms, pot="Ge", etol=1e-4)
scf.run()
Save the density as a CUBE file
atoms.write("Ge_solid_density.cube", scf.n)
If you have the viewer extra installed, the following line will plot the unit cell and 20 isosurfaces of the density, such that 50% of the density is contained
# scf.view(plot_n=True, surfaces=20, percent=50)
Download 11_germanium_solid.py