MPIze is a NanoTCAD ViDES function, which solve the NEGF problem by means of MPI. As input it requires a NEGF_class (e.g. nanotube or nanoribbon), but it can works with whichever user defined classes. The parallelization is performed along the energies. The only requirements are that the new class must have the following attributes/methods:
- gap (function): returns the energy gap of the material or an estimation.
- n (int): the number of atoms in each slice
- Nc (int) : the number of slices
- Eupper (double): the upper energy level for which NEGF is solved
- Elower (double): the lower energy level for which NEGF is solved
- dE (double): the energy step
- charge_T (function): computes the charge and the transmission coefficient
- rank (int): the rank of the process
- Temp (double): the temperature of the material
- mu1 (double): the Fermi level of the left reservoir
- mu2 (double): the Fermi level of the right reservoir
- Phi (array of double; dimension n*Nc): the potential in correspondence of each atom of the material.
- E : (numpy array) array of the energies for which the transmission coefficient and the free charge is computed in the nanotube by means of the NEGF formalism
- T : (numpy array) array of the transmission coefficient computed in correspondence of the energies stored in the E array
- charge : (numpy array of length n*Nc) free charge computed in correspondence of each atom of the material.
from NanoTCAD ViDES import *