Author Topic: "processes_per_contour_point=2" not working!  (Read 3651 times)

0 Members and 1 Guest are viewing this topic.

Offline Alireza

  • Regular QuantumATK user
  • **
  • Posts: 13
  • Country: de
  • Reputation: 0
    • View Profile
"processes_per_contour_point=2" not working!
« on: December 10, 2021, 12:04 »
Dear Experts, I am running an electronic transport calculation for twisted bilayer MoS2 at the DFTB level of theory. The unit cell contains approx 2700 atom, building the DeviceConfiguration lead to approx 7800 atoms. I am using QATK v2021.06 on Debian GNU/Linux 9 / Kernel 4.9.0-14-amd64  / CPU Core(TM) i7-6700 /16BG Memory /16 GB swap Here is part of my script:
Code
# Set up configuration
central_region = BulkConfiguration(
    bravais_lattice=central_region_lattice,
    elements=central_region_elements,
    cartesian_coordinates=central_region_coordinates
    )

device_configuration = DeviceConfiguration(
    central_region,
    [left_electrode, right_electrode],
    equivalent_electrode_lengths=[46.9136, 46.9136]*Angstrom,
    transverse_electrode_repetitions=[[1, 1], [1, 1]],
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Hamiltonian Parametrization
#----------------------------------------
hamiltonian_parametrization = SlaterKosterHamiltonianParametrization(
    basis_set=DFTBDirectory(r"/home/h0/algh988c/QN13"))

#----------------------------------------
# Pair Potentials
#----------------------------------------
pair_potentials = DFTBDirectory(r"/home/h0/algh988c/QN13")

#----------------------------------------
# Numerical Accuracy Settings
#----------------------------------------
device_k_point_sampling = MonkhorstPackGrid(
    nc=98,
    )
device_numerical_accuracy_parameters = NumericalAccuracyParameters(
    k_point_sampling=device_k_point_sampling,
    density_mesh_cutoff=10.0*Hartree,
    )

#----------------------------------------
# Device Algorithm Settings
#----------------------------------------
self_energy_calculator_real = KrylovSelfEnergy()
non_equilibrium_method = GreensFunction(
    processes_per_contour_point=2,
    )
equilibrium_method = GreensFunction(
    processes_per_contour_point=2,
    )
device_algorithm_parameters = DeviceAlgorithmParameters(
    self_energy_calculator_real=self_energy_calculator_real,
    non_equilibrium_method=non_equilibrium_method,
    equilibrium_method=equilibrium_method,
    store_basis_on_grid=True,
    )

#----------------------------------------
# Device Calculator
#----------------------------------------
calculator = DeviceSemiEmpiricalCalculator(
    hamiltonian_parametrization=hamiltonian_parametrization,
    pair_potentials=pair_potentials,
    numerical_accuracy_parameters=device_numerical_accuracy_parameters,
    device_algorithm_parameters=device_algorithm_parameters,
    )

device_configuration.setCalculator(calculator)
nlprint(device_configuration)
device_configuration.update()
nlsave('389.rigid.hdf5', device_configuration)

# -------------------------------------------------------------
# Transmission Spectrum
# -------------------------------------------------------------
kpoint_grid = MonkhorstPackGrid()

transmission_spectrum = TransmissionSpectrum(
    configuration=device_configuration,
    energies=numpy.linspace(1.5, 2.5, 150)*eV,
    kpoints=kpoint_grid,
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    self_energy_calculator=KrylovSelfEnergy(),
    enforce_zero_in_band_gap=True,
    )
nlsave('389.rigid.hdf5', transmission_spectrum)
nlprint(transmission_spectrum)
K-point grid is 1 x 1 x 98, and number of irreducible k-points are 50. Also the total number of contour points are 150. I specified the following Slurm setting
Code
#SBATCH --nodes=1
#SBATCH --ntasks=300
#SBATCH --cpus-per-task=1
#SBATCH --mem=32000000 	
Despite writting processes_per_contour_point=2 in the manuscript, the calculation ran into idle. Please take a look at the log file The reason I am trying to use processes_per_contour_point=2 is to speed up my calculation! For the past month all of my try ran into either out-of-time limit error(after 7 days) or out-of-memory error. That's why I am using KrylovSelfEnergy. Suggestions are appreciated, Cheers, A