From 298f7c48fd7d64a5667c9f63c477f623d31d21ce Mon Sep 17 00:00:00 2001 From: Dmitry Ryndyk Date: Sun, 2 Nov 2025 02:13:42 +0100 Subject: [PATCH] NEGF: New method to extract the matrix Hamiltonians for electrodes and minor changes. --- src/negf_alloc_types.F | 2 +- src/negf_atom_map.F | 31 ++ src/negf_control_types.F | 10 +- src/negf_env_types.F | 44 +- src/negf_matrix_utils.F | 195 ++++---- src/negf_methods.F | 86 +++- tests/QS/regtest-negf-1/H28-device-0-1_0.dos | 404 +++++++++++++++++ .../QS/regtest-negf-1/H28-transm-0-1_0.transm | 404 +++++++++++++++++ tests/QS/regtest-negf-1/H28.inp | 238 ++++++++++ .../TEST_FILES.toml | 2 +- .../QS/regtest-negf-2/H28_k-device-0-1_0.dos | 404 +++++++++++++++++ .../regtest-negf-2/H28_k-transm-0-1_0.transm | 404 +++++++++++++++++ tests/QS/regtest-negf-2/H28_k.inp | 427 ++++++++++++++++++ .../TEST_FILES.toml | 2 +- tests/QS/regtest-negf-fft/li_chain_kp.inp | 320 ------------- tests/QS/regtest-negf/li_chain.inp | 199 -------- tests/TEST_DIRS | 4 +- 17 files changed, 2484 insertions(+), 692 deletions(-) create mode 100644 tests/QS/regtest-negf-1/H28-device-0-1_0.dos create mode 100644 tests/QS/regtest-negf-1/H28-transm-0-1_0.transm create mode 100644 tests/QS/regtest-negf-1/H28.inp rename tests/QS/{regtest-negf-fft => regtest-negf-1}/TEST_FILES.toml (87%) create mode 100644 tests/QS/regtest-negf-2/H28_k-device-0-1_0.dos create mode 100644 tests/QS/regtest-negf-2/H28_k-transm-0-1_0.transm create mode 100644 tests/QS/regtest-negf-2/H28_k.inp rename tests/QS/{regtest-negf => regtest-negf-2}/TEST_FILES.toml (87%) delete mode 100644 tests/QS/regtest-negf-fft/li_chain_kp.inp delete mode 100644 tests/QS/regtest-negf/li_chain.inp diff --git a/src/negf_alloc_types.F b/src/negf_alloc_types.F index c2492b23ce..f1d0e2eeb4 100644 --- a/src/negf_alloc_types.F +++ b/src/negf_alloc_types.F @@ -25,7 +25,7 @@ MODULE negf_alloc_types !> \brief Allocatable 1-D integer vector ! ************************************************************************************************** TYPE negf_allocatable_ivector - !> allocatable 1-D real vector + !> allocatable 1-D integer vector INTEGER, ALLOCATABLE, DIMENSION(:) :: vector END TYPE negf_allocatable_ivector diff --git a/src/negf_atom_map.F b/src/negf_atom_map.F index 53d99d7c18..007df75e6b 100644 --- a/src/negf_atom_map.F +++ b/src/negf_atom_map.F @@ -71,6 +71,10 @@ CONTAINS !> \param eps_geometry accuracy in mapping atoms based on their Cartesian coordinates !> \par History !> * 08.2017 created [Sergey Chulkov] +!> * 10.2025 Centering of contact coordinates is added in the end. It is necessary to keep the +!> right order of indices in the real space image matrices. It is made only here, because +!> the mapping is based on the comparison of the coordinates. [Dmitry Ryndyk] +!> \note ! ************************************************************************************************** SUBROUTINE negf_map_atomic_indices(atom_map, atom_list, subsys_device, subsys_contact, eps_geometry) TYPE(negf_atom_map_type), DIMENSION(:), & @@ -144,9 +148,36 @@ CONTAINS CALL qs_kind_groups_release(kind_groups_contact) + CALL centering_contact_coordinates(subsys=subsys_contact) + CALL timestop(handle) END SUBROUTINE negf_map_atomic_indices +! ************************************************************************************************** +!> \brief Centering the atom coordinates of the primary unit cell of the bulk electrode. +!> \param subsys ... +!> \par History +!> * 10.2025 created [Dmitry Ryndyk] +!> \note It is necessary to keep the right order of indices in the real space image matrices. +! ************************************************************************************************** + SUBROUTINE centering_contact_coordinates(subsys) + TYPE(qs_subsys_type), POINTER :: subsys + + REAL(KIND=dp) :: shiftX, shiftY, shiftZ + TYPE(particle_type), DIMENSION(:), POINTER :: particle_set + + CALL qs_subsys_get(subsys, particle_set=particle_set) + + shiftX = (MAXVAL(particle_set(:)%r(1)) + MINVAL(particle_set(:)%r(1)))/2.0 + shiftY = (MAXVAL(particle_set(:)%r(2)) + MINVAL(particle_set(:)%r(2)))/2.0 + shiftZ = (MAXVAL(particle_set(:)%r(3)) + MINVAL(particle_set(:)%r(3)))/2.0 + + particle_set(:)%r(1) = particle_set(:)%r(1) - shiftX + particle_set(:)%r(2) = particle_set(:)%r(2) - shiftY + particle_set(:)%r(3) = particle_set(:)%r(3) - shiftZ + + END SUBROUTINE centering_contact_coordinates + ! ************************************************************************************************** !> \brief Group particles from 'particle_set' according to their atomic (QS) kind. !> \param kind_groups kind groups that will be created diff --git a/src/negf_control_types.F b/src/negf_control_types.F index bee2d9f294..9224f901d5 100644 --- a/src/negf_control_types.F +++ b/src/negf_control_types.F @@ -47,17 +47,17 @@ MODULE negf_control_types TYPE negf_control_contact_type !> atoms belonging to bulk and screening regions INTEGER, ALLOCATABLE, DIMENSION(:) :: atomlist_bulk, atomlist_screening - !> atom belonging to the primary and secondary bulk unit cells + !> atoms belonging to the primary and secondary bulk unit cells TYPE(negf_allocatable_ivector), ALLOCATABLE, & DIMENSION(:) :: atomlist_cell !> index of the sub_force_env which should be used for bulk calculation INTEGER :: force_env_index = -1 !> contact Fermi level needs to be computed prior NEGF run LOGICAL :: compute_fermi_level = .FALSE. - !> when computing contact Fermi level, use the energy given in 'fermi_level' (instead of HOMO) - !> (instead of the HOMO energy) as a starting point + !> to compute contact Fermi level starting from 'fermi_level' + !> (instead of the HOMO energy) LOGICAL :: refine_fermi_level = .FALSE. - !> Fermi level + !> Fermi level or starting Fermi level REAL(kind=dp) :: fermi_level = -1.0_dp !> temperature [in a.u.] REAL(kind=dp) :: temperature = -1.0_dp @@ -493,7 +493,7 @@ CONTAINS CALL section_vals_val_get(input_section, "MOLNAME", i_rep_section=i_rep_section, & n_rep_val=nrep_molname, explicit=is_molname) - ! compute the number of atoms in the NEGF region, and check the validity of giben atomic indices + ! compute the number of atoms in the NEGF region, and check the validity of given atomic indices natoms_total = 0 IF (is_list .AND. nrep_list > 0) THEN DO irep = 1, nrep_list diff --git a/src/negf_env_types.F b/src/negf_env_types.F index 98267c649a..77766c009c 100644 --- a/src/negf_env_types.F +++ b/src/negf_env_types.F @@ -17,8 +17,7 @@ MODULE negf_env_types dbcsr_deallocate_matrix,& dbcsr_init_p,& dbcsr_p_type,& - dbcsr_set,& - dbcsr_type + dbcsr_set USE cp_fm_struct, ONLY: cp_fm_struct_create,& cp_fm_struct_release,& cp_fm_struct_type @@ -45,7 +44,6 @@ MODULE negf_env_types USE negf_matrix_utils, ONLY: invert_cell_to_index,& negf_copy_contact_matrix,& negf_copy_sym_dbcsr_to_fm_submat,& - negf_reference_contact_matrix,& number_of_atomic_orbitals USE negf_subgroup_types, ONLY: negf_subgroup_env_type USE negf_vectors, ONLY: contact_direction_vector,& @@ -260,18 +258,20 @@ CONTAINS DO icontact = 1, ncontacts IF (negf_control%contacts(icontact)%force_env_index > 0) THEN IF (log_unit > 0) & - WRITE (log_unit, '(/,T2,A,T70,I11)') "NEGF| Construct the Kohn-Sham matrix for the contact ", icontact + WRITE (log_unit, '(/,T2,A,T70,I11)') "NEGF| Construct the Kohn-Sham matrix for the contact", icontact CALL force_env_get(sub_force_env(negf_control%contacts(icontact)%force_env_index)%force_env, qs_env=qs_env_contact) CALL qs_energies(qs_env_contact, consistent_energies=.FALSE., calc_forces=.FALSE.) CALL negf_env_contact_init_matrices(contact_env=negf_env%contacts(icontact), sub_env=sub_env, & - qs_env_contact=qs_env_contact, matrix_s_device=matrix_s_kp(1, 1)%matrix) + qs_env_contact=qs_env_contact) END IF END DO ! obtain an initial KS-matrix for the scattering region + IF (log_unit > 0) & + WRITE (log_unit, '(/,T2,A,T70)') "NEGF| Construct the Kohn-Sham matrix for the entire system" CALL qs_energies(qs_env, consistent_energies=.FALSE., calc_forces=.FALSE.) ! *** obtain relevant Kohn-Sham matrix blocks for each contact with no separate FORCE_ENV *** @@ -376,26 +376,26 @@ CONTAINS !> \param contact_env NEGF environment for the contact (modified on exit) !> \param sub_env NEGF parallel (sub)group environment !> \param qs_env_contact QuickStep environment for the contact force environment -!> \param matrix_s_device overlap matrix from device force environment -!> \author Sergey Chulkov +!> \par History +!> * 10.2017 created [Sergey Chulkov] +!> * 10.2025 The subroutine is essentially modified. New functionality of negf_copy_contact_matrix. +!> [Dmitry Ryndyk] ! ************************************************************************************************** - SUBROUTINE negf_env_contact_init_matrices(contact_env, sub_env, qs_env_contact, matrix_s_device) + SUBROUTINE negf_env_contact_init_matrices(contact_env, sub_env, qs_env_contact) TYPE(negf_env_contact_type), INTENT(inout) :: contact_env TYPE(negf_subgroup_env_type), INTENT(in) :: sub_env TYPE(qs_environment_type), POINTER :: qs_env_contact - TYPE(dbcsr_type), POINTER :: matrix_s_device CHARACTER(LEN=*), PARAMETER :: routineN = 'negf_env_contact_init_matrices' INTEGER :: handle, iatom, ispin, nao, natoms, & nimages, nspins INTEGER, ALLOCATABLE, DIMENSION(:) :: atom_list0, atom_list1 - INTEGER, ALLOCATABLE, DIMENSION(:, :) :: index_to_cell, is_same_cell + INTEGER, ALLOCATABLE, DIMENSION(:, :) :: index_to_cell INTEGER, DIMENSION(:, :, :), POINTER :: cell_to_index LOGICAL :: do_kpoints TYPE(cp_fm_struct_type), POINTER :: fm_struct TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_ks_kp, matrix_s_kp, rho_ao_kp - TYPE(dbcsr_type), POINTER :: matrix_s_ref TYPE(dft_control_type), POINTER :: dft_control TYPE(kpoint_type), POINTER :: kpoints TYPE(mp_para_env_type), POINTER :: para_env @@ -470,19 +470,6 @@ CONTAINS CALL cp_fm_struct_release(fm_struct) - NULLIFY (matrix_s_ref) - CALL dbcsr_init_p(matrix_s_ref) - CALL dbcsr_copy(matrix_s_ref, matrix_s_kp(1, 1)%matrix) - CALL dbcsr_set(matrix_s_ref, 0.0_dp) - - ALLOCATE (is_same_cell(natoms, natoms)) - - CALL negf_reference_contact_matrix(matrix_contact=matrix_s_ref, & - matrix_device=matrix_s_device, & - atom_list=contact_env%atomlist_cell0, & - atom_map=contact_env%atom_map_cell0, & - para_env=para_env) - ! extract matrices: s_00, s_01 CALL negf_copy_contact_matrix(fm_cell0=contact_env%s_00, & fm_cell1=contact_env%s_01, & @@ -491,7 +478,7 @@ CONTAINS index_to_cell=index_to_cell, & atom_list0=atom_list0, atom_list1=atom_list1, & subsys=subsys, mpi_comm_global=para_env, & - is_same_cell=is_same_cell, matrix_ref=matrix_s_ref) + kpoints=kpoints) ! extract matrices: h_00, h_01, rho_00, rho_01 DO ispin = 1, nspins @@ -502,7 +489,7 @@ CONTAINS index_to_cell=index_to_cell, & atom_list0=atom_list0, atom_list1=atom_list1, & subsys=subsys, mpi_comm_global=para_env, & - is_same_cell=is_same_cell) + kpoints=kpoints) CALL negf_copy_contact_matrix(fm_cell0=contact_env%rho_00(ispin), & fm_cell1=contact_env%rho_01(ispin), & @@ -511,12 +498,9 @@ CONTAINS index_to_cell=index_to_cell, & atom_list0=atom_list0, atom_list1=atom_list1, & subsys=subsys, mpi_comm_global=para_env, & - is_same_cell=is_same_cell) + kpoints=kpoints) END DO - DEALLOCATE (is_same_cell) - CALL dbcsr_deallocate_matrix(matrix_s_ref) - DEALLOCATE (index_to_cell) DEALLOCATE (atom_list0, atom_list1) CALL timestop(handle) diff --git a/src/negf_matrix_utils.F b/src/negf_matrix_utils.F index de8182d24c..ab1780ddff 100644 --- a/src/negf_matrix_utils.F +++ b/src/negf_matrix_utils.F @@ -8,7 +8,6 @@ ! ************************************************************************************************** !> \brief Helper routines to manipulate with matrices. ! ************************************************************************************************** - MODULE negf_matrix_utils USE cp_dbcsr_api, ONLY: & dbcsr_add, dbcsr_copy, dbcsr_deallocate_matrix, dbcsr_get_block_p, dbcsr_get_info, & @@ -19,6 +18,8 @@ MODULE negf_matrix_utils cp_fm_set_submatrix,& cp_fm_type USE kinds, ONLY: dp + USE kpoint_types, ONLY: get_kpoint_info,& + kpoint_type USE message_passing, ONLY: mp_comm_type,& mp_para_env_type,& mp_request_type @@ -27,6 +28,13 @@ MODULE negf_matrix_utils USE particle_methods, ONLY: get_particle_set USE particle_types, ONLY: particle_type USE qs_kind_types, ONLY: qs_kind_type + USE qs_neighbor_list_types, ONLY: get_iterator_info,& + get_neighbor_list_set_p,& + neighbor_list_iterate,& + neighbor_list_iterator_create,& + neighbor_list_iterator_p_type,& + neighbor_list_iterator_release,& + neighbor_list_set_p_type USE qs_subsys_types, ONLY: qs_subsys_get,& qs_subsys_type #include "./base/base_uses.f90" @@ -285,15 +293,13 @@ CONTAINS !> \param atom_list1 list of atoms which belong to the secondary contact unit cell !> \param subsys QuickStep subsystem !> \param mpi_comm_global global MPI communicator -!> \param is_same_cell for every atomic pair indicates whether or not both atoms are assigned to -!> the same (0) or different (-1) unit cells (initialised when the optional -!> argument 'matrix_ref' is given) -!> \param matrix_ref reference DBCSR matrix +!> \param kpoints ... !> \par History !> * 10.2017 created [Sergey Chulkov] +!> * 10.2025 The subroutine is essentially modified. [Dmitry Ryndyk] ! ************************************************************************************************** SUBROUTINE negf_copy_contact_matrix(fm_cell0, fm_cell1, direction_axis, matrix_kp, index_to_cell, & - atom_list0, atom_list1, subsys, mpi_comm_global, is_same_cell, matrix_ref) + atom_list0, atom_list1, subsys, mpi_comm_global, kpoints) TYPE(cp_fm_type), INTENT(IN) :: fm_cell0, fm_cell1 INTEGER, INTENT(in) :: direction_axis TYPE(dbcsr_p_type), DIMENSION(:), INTENT(in) :: matrix_kp @@ -301,21 +307,23 @@ CONTAINS INTEGER, DIMENSION(:), INTENT(in) :: atom_list0, atom_list1 TYPE(qs_subsys_type), POINTER :: subsys - CLASS(mp_comm_type), INTENT(in) :: mpi_comm_global - INTEGER, DIMENSION(:, :), INTENT(inout) :: is_same_cell - TYPE(dbcsr_type), OPTIONAL, POINTER :: matrix_ref + CLASS(mp_comm_type), INTENT(in) :: mpi_comm_global + TYPE(kpoint_type), POINTER :: kpoints CHARACTER(LEN=*), PARAMETER :: routineN = 'negf_copy_contact_matrix' INTEGER :: direction_axis_abs, handle, iatom_col, & iatom_row, image, natoms, nimages, & - phase, rep - LOGICAL :: found - REAL(kind=dp) :: error_diff, error_same + rep + LOGICAL :: found, do_symmetric REAL(kind=dp), DIMENSION(:, :), POINTER :: block_dest, block_src TYPE(dbcsr_p_type), ALLOCATABLE, DIMENSION(:) :: matrix_cells_raw - TYPE(dbcsr_type), POINTER :: matrix_cell_0, matrix_cell_1, & - matrix_cell_minus1 + TYPE(dbcsr_type), POINTER :: matrix_cell_1, matrix_cell_minus1 + INTEGER, DIMENSION(3) :: cell + TYPE(neighbor_list_set_p_type), DIMENSION(:), & + POINTER :: sab_nl + TYPE(neighbor_list_iterator_p_type), & + DIMENSION(:), POINTER :: nl_iterator CALL timeset(routineN, handle) @@ -325,10 +333,8 @@ CONTAINS direction_axis_abs = ABS(direction_axis) ! 0 -- primary unit cell; - ! +- 1 -- upper- and lower-diagonal matrices for the secondary unit cell; - ! when the distance between two atoms within the unit cell becomes bigger than - ! the distance between the same atoms from different cell replicas, the third - ! unit cell replica (+- 2) is also needed. + ! +- 1 -- upper- and lower-diagonal matrices for neighbor-cell matrix elements; + ! +- 2 -- for control ALLOCATE (matrix_cells_raw(-2:2)) DO rep = -2, 2 NULLIFY (matrix_cells_raw(rep)%matrix) @@ -337,11 +343,14 @@ CONTAINS CALL dbcsr_set(matrix_cells_raw(rep)%matrix, 0.0_dp) END DO - NULLIFY (matrix_cell_0, matrix_cell_1, matrix_cell_minus1) + DO image = 1, nimages + rep = index_to_cell(direction_axis_abs, image) - CALL dbcsr_init_p(matrix_cell_0) - CALL dbcsr_copy(matrix_cell_0, matrix_kp(1)%matrix) - CALL dbcsr_set(matrix_cell_0, 0.0_dp) + IF (ABS(rep) <= 2) & + CALL dbcsr_add(matrix_cells_raw(rep)%matrix, matrix_kp(image)%matrix, 1.0_dp, 1.0_dp) + END DO + + NULLIFY (matrix_cell_1, matrix_cell_minus1) CALL dbcsr_init_p(matrix_cell_1) CALL dbcsr_copy(matrix_cell_1, matrix_kp(1)%matrix) @@ -351,103 +360,55 @@ CONTAINS CALL dbcsr_copy(matrix_cell_minus1, matrix_kp(1)%matrix) CALL dbcsr_set(matrix_cell_minus1, 0.0_dp) - DO image = 1, nimages - rep = index_to_cell(direction_axis_abs, image) + CALL dbcsr_get_info(matrix_cell_1, nblkrows_total=natoms) - IF (ABS(rep) <= 2) & - CALL dbcsr_add(matrix_cells_raw(rep)%matrix, matrix_kp(image)%matrix, 1.0_dp, 1.0_dp) - END DO + CALL get_kpoint_info(kpoints, sab_nl=sab_nl) + CALL get_neighbor_list_set_p(neighbor_list_sets=sab_nl, symmetric=do_symmetric) + CALL neighbor_list_iterator_create(nl_iterator, sab_nl) + DO WHILE (neighbor_list_iterate(nl_iterator) == 0) + CALL get_iterator_info(nl_iterator, iatom=iatom_row, jatom=iatom_col, cell=cell) - CALL dbcsr_get_info(matrix_cell_0, nblkrows_total=natoms) - - IF (PRESENT(matrix_ref)) THEN - ! 0 -- atoms belong to the same cell or absent (zero) matrix block; - ! +1 -- atoms belong to different cells - is_same_cell(:, :) = 0 - - DO iatom_col = 1, natoms - DO iatom_row = 1, iatom_col - CALL dbcsr_get_block_p(matrix=matrix_ref, & - row=iatom_row, col=iatom_col, & - block=block_src, found=found) - - IF (found) THEN - ! it should be much safe to rely on atomic indices (iatom / jatom) obtained using a neighbour list iterator: - ! phase == 1 when iatom <= jatom, and phase == -1 when iatom > jatom - IF (MOD(iatom_col - iatom_row, 2) == 0) THEN - phase = 1 - ELSE - phase = -1 - END IF - - CALL dbcsr_get_block_p(matrix=matrix_cells_raw(0)%matrix, & - row=iatom_row, col=iatom_col, & - block=block_dest, found=found) - CPASSERT(found) - - error_same = MAXVAL(ABS(block_dest(:, :) - block_src(:, :))) - - CALL dbcsr_get_block_p(matrix=matrix_cells_raw(phase)%matrix, & - row=iatom_row, col=iatom_col, & - block=block_dest, found=found) - CPASSERT(found) - error_diff = MAXVAL(ABS(block_dest(:, :) - block_src(:, :))) - - IF (error_same <= error_diff) THEN - is_same_cell(iatom_row, iatom_col) = 0 - ELSE - is_same_cell(iatom_row, iatom_col) = 1 - END IF - END IF - END DO - END DO - END IF - - DO iatom_col = 1, natoms - DO iatom_row = 1, iatom_col - CALL dbcsr_get_block_p(matrix=matrix_cell_0, & + IF (ABS(cell(direction_axis_abs)) == 1) THEN + IF (iatom_row <= iatom_col) THEN + ! secondary unit cell, i <= j: + CALL dbcsr_get_block_p(matrix=matrix_cell_1, & row=iatom_row, col=iatom_col, block=block_dest, found=found) + CPASSERT(found) + CALL dbcsr_get_block_p(matrix=matrix_cells_raw(-cell(direction_axis_abs))%matrix, & + row=iatom_row, col=iatom_col, block=block_src, found=found) + CPASSERT(found) + block_dest(:, :) = block_src(:, :) - IF (found) THEN - ! it should be much safe to rely on a neighbour list iterator - IF (MOD(iatom_col - iatom_row, 2) == 0) THEN - phase = 1 - ELSE - phase = -1 - END IF - rep = phase*is_same_cell(iatom_row, iatom_col) + CALL dbcsr_get_block_p(matrix=matrix_cell_minus1, & + row=iatom_row, col=iatom_col, block=block_dest, found=found) + CPASSERT(found) + CALL dbcsr_get_block_p(matrix=matrix_cells_raw(cell(direction_axis_abs))%matrix, & + row=iatom_row, col=iatom_col, block=block_src, found=found) + CPASSERT(found) + block_dest(:, :) = block_src(:, :) - ! primary unit cell: - ! matrix(i,j) <- [0]%matrix(i,j) when i and j are from the same replica - ! matrix(i,j) <- [phase]%matrix(i,j) when i and j are from different replicas - CALL dbcsr_get_block_p(matrix=matrix_cells_raw(rep)%matrix, & - row=iatom_row, col=iatom_col, block=block_src, found=found) - CPASSERT(found) - block_dest(:, :) = block_src(:, :) + ELSE + ! secondary unit cell, i > j: + CALL dbcsr_get_block_p(matrix=matrix_cell_1, & + row=iatom_col, col=iatom_row, block=block_dest, found=found) + CPASSERT(found) + CALL dbcsr_get_block_p(matrix=matrix_cells_raw(-cell(direction_axis_abs))%matrix, & + row=iatom_col, col=iatom_row, block=block_src, found=found) + CPASSERT(found) + block_dest(:, :) = block_src(:, :) - ! secondary unit cell, i <= j: - ! matrix(i,j) <- [phase]%matrix(i,j) when i and j are from the same replica - ! matrix(i,j) <- [2*phase]%matrix(i,j) when i and j are from different replicas - CALL dbcsr_get_block_p(matrix=matrix_cell_1, & - row=iatom_row, col=iatom_col, block=block_dest, found=found) - CPASSERT(found) - CALL dbcsr_get_block_p(matrix=matrix_cells_raw(rep + phase)%matrix, & - row=iatom_row, col=iatom_col, block=block_src, found=found) - CPASSERT(found) - block_dest(:, :) = block_src(:, :) + CALL dbcsr_get_block_p(matrix=matrix_cell_minus1, & + row=iatom_col, col=iatom_row, block=block_dest, found=found) + CPASSERT(found) + CALL dbcsr_get_block_p(matrix=matrix_cells_raw(cell(direction_axis_abs))%matrix, & + row=iatom_col, col=iatom_row, block=block_src, found=found) + CPASSERT(found) + block_dest(:, :) = block_src(:, :) + + END IF + + END IF - ! secondary unit cell, i > j: - ! matrix(i,j) <- [-phase]%matrix(i,j) when i and j are from the same replica - ! matrix(i,j) <- [-2*phase]%matrix(i,j) when i and j are from different replicas - CALL dbcsr_get_block_p(matrix=matrix_cell_minus1, & - row=iatom_row, col=iatom_col, block=block_dest, found=found) - CPASSERT(found) - CALL dbcsr_get_block_p(matrix=matrix_cells_raw(rep - phase)%matrix, & - row=iatom_row, col=iatom_col, block=block_src, found=found) - CPASSERT(found) - block_dest(:, :) = block_src(:, :) - END IF - END DO END DO IF (direction_axis >= 0) THEN @@ -464,22 +425,20 @@ CONTAINS ! lower-diagonal part of fm_cell1 CALL negf_copy_sym_dbcsr_to_fm_submat(matrix_cell_1, fm_cell0, atom_list0, atom_list1, & subsys, mpi_comm_global, do_upper_diag=.FALSE., do_lower=.TRUE.) - END IF CALL cp_fm_scale_and_add(1.0_dp, fm_cell1, 1.0_dp, fm_cell0) ! symmetric matrix fm_cell0 - CALL negf_copy_sym_dbcsr_to_fm_submat(matrix_cell_0, fm_cell0, atom_list0, atom_list0, & + CALL negf_copy_sym_dbcsr_to_fm_submat(matrix_cells_raw(0)%matrix, fm_cell0, atom_list0, atom_list0, & subsys, mpi_comm_global, do_upper_diag=.TRUE., do_lower=.TRUE.) - CALL dbcsr_deallocate_matrix(matrix_cell_0) - CALL dbcsr_deallocate_matrix(matrix_cell_1) - CALL dbcsr_deallocate_matrix(matrix_cell_minus1) - DO rep = -2, 2 CALL dbcsr_deallocate_matrix(matrix_cells_raw(rep)%matrix) END DO DEALLOCATE (matrix_cells_raw) + CALL neighbor_list_iterator_release(nl_iterator) + CALL dbcsr_deallocate_matrix(matrix_cell_1) + CALL dbcsr_deallocate_matrix(matrix_cell_minus1) CALL timestop(handle) END SUBROUTINE negf_copy_contact_matrix diff --git a/src/negf_methods.F b/src/negf_methods.F index b28caad326..eb943f9270 100644 --- a/src/negf_methods.F +++ b/src/negf_methods.F @@ -8,7 +8,6 @@ ! ************************************************************************************************** !> \brief NEGF based quantum transport calculations ! ************************************************************************************************** - MODULE negf_methods USE bibliography, ONLY: Bailey2006,& Papior2017,& @@ -157,11 +156,13 @@ CONTAINS CHARACTER(LEN=*), PARAMETER :: routineN = 'do_negf' + CHARACTER(len=100) :: sfmt CHARACTER(len=default_string_length) :: contact_id_str - INTEGER :: handle, icontact, ispin, log_unit, & - ncontacts, npoints, nspins, & - print_level, print_unit - LOGICAL :: should_output, verbose_output + INTEGER :: handle, i, icontact, ispin, j, k, & + log_unit, n, ncontacts, npoints, & + nspins, print_level, print_unit + LOGICAL :: debug_output, should_output, & + verbose_output REAL(kind=dp) :: energy_max, energy_min REAL(kind=dp), DIMENSION(2) :: current TYPE(cp_blacs_env_type), POINTER :: blacs_env @@ -198,36 +199,82 @@ CONTAINS NULLIFY (negf_control) CALL negf_control_create(negf_control) CALL read_negf_control(negf_control, root_section, cp_subsys) + CALL get_qs_env(qs_env, dft_control=dft_control) ! print unit, if log_unit > 0, otherwise no output log_unit = cp_print_key_unit_nr(logger, negf_section, "PRINT%PROGRAM_RUN_INFO", extension=".Log") + IF (log_unit > 0) THEN + WRITE (log_unit, '(/,T2,79("-"))') + WRITE (log_unit, '(T27,A,T62)') "NEGF calculation is started" + WRITE (log_unit, '(T2,79("-"))') + END IF + ! print levels, are used if log_unit > 0 IF (log_unit > 0) THEN CALL section_vals_val_get(negf_section, "PRINT%PROGRAM_RUN_INFO%PRINT_LEVEL", i_val=print_level) SELECT CASE (print_level) - CASE (high_print_level, debug_print_level) + CASE (high_print_level) verbose_output = .TRUE. + CASE (debug_print_level) + verbose_output = .TRUE. + debug_output = .TRUE. CASE DEFAULT verbose_output = .FALSE. + debug_output = .FALSE. END SELECT END IF IF (log_unit > 0) THEN - WRITE (log_unit, '(/,T2,A,T62)') "COMPUTE THE RELEVANT HAMILTONIAN MATRICES" + WRITE (log_unit, "(/,' THE RELEVANT HAMILTONIAN AND OVERLAP MATRICES FROM DFT')") + WRITE (log_unit, "( ' ------------------------------------------------------')") END IF CALL negf_sub_env_create(sub_env, negf_control, blacs_env, global_env%blacs_grid_layout, global_env%blacs_repeatable) CALL negf_env_create(negf_env, sub_env, negf_control, force_env, negf_mixing_section, log_unit) - IF (log_unit > 0 .AND. verbose_output) THEN + IF (log_unit > 0) THEN + WRITE (log_unit, "(/,' NEGF| The initial Hamiltonian and Overlap matrices are calculated.')") + END IF + + IF (log_unit > 0) THEN DO icontact = 1, SIZE(negf_control%contacts) - WRITE (log_unit, "(/,' NEGF| Atoms in the contact region',I2,':',I4)") & - icontact, SIZE(negf_control%contacts(icontact)%atomlist_bulk) - WRITE (log_unit, "(16I5)") negf_control%contacts(icontact)%atomlist_bulk + WRITE (log_unit, "(/,' The electrode',I5)") icontact + WRITE (log_unit, "( ' ------------------')") + WRITE (log_unit, "(' From the force environment:',I16)") negf_control%contacts(icontact)%force_env_index + WRITE (log_unit, "(' Number of atoms:',I27)") SIZE(negf_control%contacts(icontact)%atomlist_bulk) + IF (verbose_output) WRITE (log_unit, "(' Atoms belonging to a contact:')") + IF (verbose_output) WRITE (log_unit, "(16I5)") negf_control%contacts(icontact)%atomlist_bulk + WRITE (log_unit, "(' Number of atoms in a primary unit cell:',I4)") SIZE(negf_env%contacts(icontact)%atomlist_cell0) + IF (verbose_output) WRITE (log_unit, "(' Atoms belonging to a primary unit cell:')") + IF (verbose_output) WRITE (log_unit, "(16I5)") negf_env%contacts(icontact)%atomlist_cell0 + n = SIZE(negf_env%contacts(icontact)%h_00(1)%local_data, 1) + WRITE (sfmt, "('(',i0,'(E15.5))')") n + WRITE (log_unit, "(' The number of atomic orbtals:',I14)") n + ! print the electrode Hamiltonians for check and debuging + IF (debug_output) THEN + DO k = 1, dft_control%nspins + WRITE (log_unit, "(' The H_00 electrode Hamiltonian for spin',I2)") k + DO i = 1, n + WRITE (log_unit, sfmt) (negf_env%contacts(icontact)%h_00(k)%local_data(i, j), j=1, n) + END DO + WRITE (log_unit, "(' The H_01 electrode Hamiltonian for spin',I2)") k + DO i = 1, n + WRITE (log_unit, sfmt) (negf_env%contacts(icontact)%h_01(k)%local_data(i, j), j=1, n) + END DO + END DO + WRITE (log_unit, "(' The S_00 overlap matrix')") + DO i = 1, n + WRITE (log_unit, sfmt) (negf_env%contacts(icontact)%s_00%local_data(i, j), j=1, n) + END DO + WRITE (log_unit, "(' The S_01 overlap matrix')") + DO i = 1, n + WRITE (log_unit, sfmt) (negf_env%contacts(icontact)%s_01%local_data(i, j), j=1, n) + END DO + END IF END DO - WRITE (log_unit, "(/,' NEGF| Atoms in the full scattering region:',I4)") SIZE(negf_control%atomlist_S_screening) - WRITE (log_unit, "(16I5)") negf_control%atomlist_S_screening + WRITE (log_unit, "(/,' Atoms in the full scattering region:',I4)") SIZE(negf_control%atomlist_S_screening) + IF (verbose_output) WRITE (log_unit, "(16I5)") negf_control%atomlist_S_screening WRITE (log_unit, *) END IF @@ -344,6 +391,12 @@ CONTAINS END IF + IF (log_unit > 0) THEN + WRITE (log_unit, '(/,T2,79("-"))') + WRITE (log_unit, '(T27,A,T62)') "NEGF calculation is finished" + WRITE (log_unit, '(T2,79("-"))') + END IF + CALL negf_env_release(negf_env) CALL negf_sub_env_release(sub_env) @@ -475,8 +528,9 @@ CONTAINS IF (log_unit > 0) THEN WRITE (temperature_str, '(F11.3)') negf_control%contacts(contact_id)%temperature*kelvin - WRITE (log_unit, '(/,T2,A,I0,A)') "COMPUTE FERMI LEVEL OF CONTACT ", & - contact_id, " AT "//TRIM(ADJUSTL(temperature_str))//" KELVIN" + WRITE (log_unit, '(/,T2,A,I3)') "COMPUTE FERMI LEVEL OF CONTACT ", contact_id + WRITE (log_unit, "( ' ----------------------------------')") + WRITE (log_unit, '(A)') " Temperature "//TRIM(ADJUSTL(temperature_str))//" Kelvin" WRITE (log_unit, '(/,T2,A,T60,F20.10,/)') "Electronic density of the isolated contact unit cell:", & -1.0_dp*(nelectrons_qs_cell0 + nelectrons_qs_cell1) WRITE (log_unit, '(T3,A)') "Step Integration method Time Fermi level Convergence (density)" @@ -746,6 +800,7 @@ CONTAINS IF (log_unit > 0) THEN WRITE (log_unit, '(/,T2,A)') "COMPUTE SHIFT IN HARTREE POTENTIAL" + WRITE (log_unit, "( ' ----------------------------------')") WRITE (log_unit, '(/,T2,A,T55,F25.14,/)') "Initial electronic density of the scattering region:", -1.0_dp*nelectrons_ref WRITE (log_unit, '(T3,A)') "Step Integration method Time V shift Convergence (density)" WRITE (log_unit, '(T3,78("-"))') @@ -1049,6 +1104,7 @@ CONTAINS IF (log_unit > 0) THEN WRITE (log_unit, '(/,T2,A)') "NEGF SELF-CONSISTENT PROCEDURE" + WRITE (log_unit, "( ' ------------------------------')") WRITE (log_unit, '(/,T2,A,T55,F25.14,/)') "Initial electronic density of the scattering region:", -1.0_dp*nelectrons WRITE (log_unit, '(T3,A)') "Step Integration method Time Electronic density Convergence" WRITE (log_unit, '(T3,78("-"))') diff --git a/tests/QS/regtest-negf-1/H28-device-0-1_0.dos b/tests/QS/regtest-negf-1/H28-device-0-1_0.dos new file mode 100644 index 0000000000..e2d2c32285 --- /dev/null +++ b/tests/QS/regtest-negf-1/H28-device-0-1_0.dos @@ -0,0 +1,404 @@ +# Density of states for the scattering region +# Energy (a.u.) Number of states [alpha + beta] +# ------------------------------------------------------------------------------ + -0.55123988 9.29725255992E-004 + -0.54848368 9.51486045544E-004 + -0.54572748 9.74081374121E-004 + -0.54297128 9.97556572903E-004 + -0.54021508 1.02196018946E-003 + -0.53745888 1.04734427130E-003 + -0.53470268 1.07376467940E-003 + -0.53194649 1.10128143555E-003 + -0.52919029 1.12995910768E-003 + -0.52643409 1.15986723812E-003 + -0.52367789 1.19108082042E-003 + -0.52092169 1.22368083103E-003 + -0.51816549 1.25775482356E-003 + -0.51540929 1.29339759399E-003 + -0.51265309 1.33071192691E-003 + -0.50989689 1.36980943444E-003 + -0.50714069 1.41081150129E-003 + -0.50438449 1.45385035178E-003 + -0.50162829 1.49907025740E-003 + -0.49887209 1.54662890668E-003 + -0.49611589 1.59669896305E-003 + -0.49335969 1.64946984114E-003 + -0.49060349 1.70514973768E-003 + -0.48784729 1.76396795996E-003 + -0.48509110 1.82617760338E-003 + -0.48233490 1.89205863999E-003 + -0.47957870 1.96192149239E-003 + -0.47682250 2.03611118337E-003 + -0.47406630 2.11501217092E-003 + -0.47131010 2.19905400276E-003 + -0.46855390 2.28871795481E-003 + -0.46579770 2.38454485673E-003 + -0.46304150 2.48714435646E-003 + -0.46028530 2.59720593774E-003 + -0.45752910 2.71551208517E-003 + -0.45477290 2.84295409448E-003 + -0.45201670 2.98055116110E-003 + -0.44926050 3.12947355713E-003 + -0.44650430 3.29107094157E-003 + -0.44374810 3.46690716216E-003 + -0.44099190 3.65880332903E-003 + -0.43823571 3.86889151509E-003 + -0.43547951 4.09968222757E-003 + -0.43272331 4.35414989326E-003 + -0.42996711 4.63584214415E-003 + -0.42721091 4.94902089203E-003 + -0.42445471 5.29884636089E-003 + -0.42169851 5.69161991255E-003 + -0.41894231 6.13510845754E-003 + -0.41618611 6.63898380315E-003 + -0.41342991 7.21542663165E-003 + -0.41067371 7.87997063929E-003 + -0.40791751 8.65270419411E-003 + -0.40516131 9.56001638813E-003 + -0.40240511 1.06371933393E-002 + -0.39964891 1.19323810817E-002 + -0.39689271 1.35128179751E-002 + -0.39413651 1.54749808133E-002 + -0.39138032 1.79617825871E-002 + -0.38862412 2.11931512244E-002 + -0.38586792 2.55236280111E-002 + -0.38311172 3.15588427186E-002 + -0.38035552 4.04131740799E-002 + -0.37759932 5.43509171817E-002 + -0.37484312 7.86628045505E-002 + -0.37208692 1.28660030032E-001 + -0.36933072 2.69131175708E-001 + -0.36657452 1.23548542843E+000 + -0.36381832 4.54613541459E+002 + -0.36106212 2.46726874553E+002 + -0.35830592 1.88683860875E+002 + -0.35554972 1.58956423992E+002 + -0.35279352 1.39966036834E+002 + -0.35003732 1.26442484680E+002 + -0.34728113 1.16206893724E+002 + -0.34452493 1.08139814739E+002 + -0.34176873 1.01580036044E+002 + -0.33901253 9.61068148960E+001 + -0.33625633 9.14428221357E+001 + -0.33350013 8.74013952310E+001 + -0.33074393 8.38538074626E+001 + -0.32798773 8.07089080770E+001 + -0.32523153 7.78978604624E+001 + -0.32247533 7.53679347851E+001 + -0.31971913 7.30764509728E+001 + -0.31696293 7.09883661848E+001 + -0.31420673 6.90747037346E+001 + -0.31145053 6.73115579461E+001 + -0.30869433 6.56793260981E+001 + -0.30593813 6.41620121357E+001 + -0.30318193 6.27465595365E+001 + -0.30042574 6.14222263614E+001 + -0.29766954 6.01800328741E+001 + -0.29491334 5.90123073404E+001 + -0.29215714 5.79123414261E+001 + -0.28940094 5.68741515000E+001 + -0.28664474 5.58923300265E+001 + -0.28388854 5.49619648469E+001 + -0.28113234 5.40786023640E+001 + -0.27837614 5.32382330855E+001 + -0.27561994 5.24372827287E+001 + -0.27286374 5.16725978437E+001 + -0.27010754 5.09414204791E+001 + -0.26735134 5.02413510221E+001 + -0.26459514 4.95703016087E+001 + -0.26183894 4.89264443442E+001 + -0.25908274 4.83081591506E+001 + -0.25632654 4.77139856506E+001 + -0.25357035 4.71425824549E+001 + -0.25081415 4.65926958572E+001 + -0.24805795 4.60631385506E+001 + -0.24530175 4.55527777604E+001 + -0.24254555 4.50605312681E+001 + -0.23978935 4.45853692459E+001 + -0.23703315 4.41263196173E+001 + -0.23427695 4.36824747767E+001 + -0.23152075 4.32529979224E+001 + -0.22876455 4.28371282206E+001 + -0.22600835 4.24341894769E+001 + -0.22325215 4.20493265000E+001 + -0.22049595 4.16645424710E+001 + -0.21773975 4.12969410741E+001 + -0.21498355 4.09401705225E+001 + -0.21222735 4.05938544751E+001 + -0.20947115 4.02576400821E+001 + -0.20671496 3.99311961692E+001 + -0.20395876 3.96142063842E+001 + -0.20120256 3.93063633529E+001 + -0.19844636 3.90073646811E+001 + -0.19569016 3.87169109389E+001 + -0.19293396 3.84347054941E+001 + -0.19017776 3.81604558969E+001 + -0.18742156 3.78938764176E+001 + -0.18466536 3.76346912908E+001 + -0.18190916 3.73826382074E+001 + -0.17915296 3.71374716460E+001 + -0.17639676 3.68989656831E+001 + -0.17364056 3.66669160217E+001 + -0.17088436 3.64411410763E+001 + -0.16812816 3.62214820332E+001 + -0.16537196 3.60078019323E+001 + -0.16261576 3.57999838563E+001 + -0.15985957 3.55979284164E+001 + -0.15710337 3.54015507334E+001 + -0.15434717 3.52107771604E+001 + -0.15159097 3.50255419795E+001 + -0.14883477 3.48457842980E+001 + -0.14607857 3.46714453371E+001 + -0.14332237 3.45024662602E+001 + -0.14056617 3.43387866530E+001 + -0.13780997 3.41803436968E+001 + -0.13505377 3.40270720408E+001 + -0.13229757 3.38789043260E+001 + -0.12954137 3.37357722960E+001 + -0.12678517 3.35976083179E+001 + -0.12402897 3.34643473028E+001 + -0.12127277 3.33359286739E+001 + -0.11851657 3.32122985154E+001 + -0.11576038 3.30934114392E+001 + -0.11300418 3.29792323617E+001 + -0.11024798 3.28697378092E+001 + -0.10749178 3.27649169563E+001 + -0.10473558 3.26647720825E+001 + -0.10197938 3.25693186398E+001 + -0.09922318 3.24785848494E+001 + -0.09646698 3.23926109165E+001 + -0.09371078 3.23114478945E+001 + -0.09095458 3.22351563132E+001 + -0.08819838 3.21638046594E+001 + -0.08544218 3.20974678159E+001 + -0.08268598 3.20362255658E+001 + -0.07992978 3.19801612643E+001 + -0.07717358 3.19293607683E+001 + -0.07441738 3.18839117037E+001 + -0.07166118 3.18439031288E+001 + -0.06890499 3.18094256354E+001 + -0.06614879 3.17805719063E+001 + -0.06339259 3.17574377255E+001 + -0.06063639 3.17401234139E+001 + -0.05788019 3.17287356396E+001 + -0.05512399 3.17233895095E+001 + -0.05236779 3.17242107708E+001 + -0.04961159 3.17313376371E+001 + -0.04685539 3.17449200174E+001 + -0.04409919 3.17650941238E+001 + -0.04134299 3.17932167981E+001 + -0.03858679 3.18265858586E+001 + -0.03583059 3.18680093758E+001 + -0.03307439 3.19170616822E+001 + -0.03031819 3.19740320586E+001 + -0.02756199 3.20392612645E+001 + -0.02480579 3.21131286277E+001 + -0.02204960 3.21960512638E+001 + -0.01929340 3.22884849581E+001 + -0.01653720 3.23909255128E+001 + -0.01378100 3.25039104227E+001 + -0.01102480 3.26280209754E+001 + -0.00826860 3.27638849464E+001 + -0.00551240 3.29121801072E+001 + -0.00275620 3.30736387980E+001 + 0.00000000 3.32490538487E+001 + 0.00275620 3.34392861631E+001 + 0.00551240 3.36452743177E+001 + 0.00826860 3.38680465784E+001 + 0.01102480 3.41087356649E+001 + 0.01378100 3.43685971226E+001 + 0.01653720 3.46490312031E+001 + 0.01929340 3.49516096793E+001 + 0.02204960 3.52781078999E+001 + 0.02480579 3.56305432479E+001 + 0.02756199 3.60112213182E+001 + 0.03031819 3.64227911585E+001 + 0.03307439 3.68683119079E+001 + 0.03583059 3.73513333656E+001 + 0.03858679 3.78759941648E+001 + 0.04134299 3.84471424524E+001 + 0.04409919 3.90704858893E+001 + 0.04685539 3.97527803819E+001 + 0.04961159 4.05020709542E+001 + 0.05236779 4.13280040069E+001 + 0.05512399 4.22422391081E+001 + 0.05788019 4.32590022828E+001 + 0.06063639 4.43958446237E+001 + 0.06339259 4.56747056905E+001 + 0.06614879 4.71234408942E+001 + 0.06890499 4.87780756597E+001 + 0.07166118 5.06862359497E+001 + 0.07441738 5.29125569777E+001 + 0.07717358 5.55475723179E+001 + 0.07992978 5.87230688764E+001 + 0.08268598 6.26402848912E+001 + 0.08544218 6.76258621746E+001 + 0.08819838 7.42547525137E+001 + 0.09095458 8.36609186243E+001 + 0.09371078 9.85061099523E+001 + 0.09646698 1.27311868398E+002 + 0.09922318 2.32639170571E+002 + 0.10197938 6.44077037392E-001 + 0.10473558 1.42624785572E-001 + 0.10749178 6.85270382717E-002 + 0.11024798 4.21156913044E-002 + 0.11300418 2.92611068846E-002 + 0.11576038 2.18831677247E-002 + 0.11851657 1.71893611384E-002 + 0.12127277 1.39846258022E-002 + 0.12402897 1.16808092857E-002 + 0.12678517 9.95823555530E-003 + 0.12954137 8.62972318721E-003 + 0.13229757 7.57912401549E-003 + 0.13505377 6.73093275435E-003 + 0.13780997 6.03415355952E-003 + 0.14056617 5.45322627939E-003 + 0.14332237 4.96267285719E-003 + 0.14607857 4.54380841883E-003 + 0.14883477 4.18264961408E-003 + 0.15159097 3.86854402491E-003 + 0.15434717 3.59324816883E-003 + 0.15710337 3.35029279868E-003 + 0.15985957 3.13453690263E-003 + 0.16261576 2.94184848665E-003 + 0.16537196 2.76887228533E-003 + 0.16812816 2.61285817640E-003 + 0.17088436 2.47153269574E-003 + 0.17364056 2.34300162060E-003 + 0.17639676 2.22567525998E-003 + 0.17915296 2.11821055356E-003 + 0.18190916 2.01946575945E-003 + 0.18466536 1.92846467311E-003 + 0.18742156 1.84436813537E-003 + 0.19017776 1.76645116715E-003 + 0.19293396 1.69408448583E-003 + 0.19569016 1.62671946138E-003 + 0.19844636 1.56387579375E-003 + 0.20120256 1.50513135843E-003 + 0.20395876 1.45011379129E-003 + 0.20671496 1.39849347741E-003 + 0.20947115 1.34997768030E-003 + 0.21222735 1.30430560231E-003 + 0.21498355 1.26124420987E-003 + 0.21773975 1.22058468988E-003 + 0.22049595 1.18213942951E-003 + 0.22325215 1.14573943223E-003 + 0.22600835 1.11123209864E-003 + 0.22876455 1.07847931412E-003 + 0.23152075 1.04735579508E-003 + 0.23427695 1.01774765446E-003 + 0.23703315 9.89551153332E-004 + 0.23978935 9.62671611463E-004 + 0.24254555 9.37022453751E-004 + 0.24530175 9.12524373414E-004 + 0.24805795 8.89104595664E-004 + 0.25081415 8.66696228200E-004 + 0.25357035 8.45237686899E-004 + 0.25632654 8.24672186805E-004 + 0.25908274 8.04947290000E-004 + 0.26183894 7.86014503122E-004 + 0.26459514 7.67828918336E-004 + 0.26735134 7.50348892428E-004 + 0.27010754 7.33535759411E-004 + 0.27286374 7.17353572667E-004 + 0.27561994 7.01768873168E-004 + 0.27837614 6.86750480765E-004 + 0.28113234 6.72269305953E-004 + 0.28388854 6.58298179794E-004 + 0.28664474 6.44811700027E-004 + 0.28940094 6.31786091598E-004 + 0.29215714 6.19199080063E-004 + 0.29491334 6.07029776531E-004 + 0.29766954 5.95258572918E-004 + 0.30042574 5.83867046485E-004 + 0.30318193 5.72837872704E-004 + 0.30593813 5.62154745627E-004 + 0.30869433 5.51802305020E-004 + 0.31145053 5.41766069613E-004 + 0.31420673 5.32032375866E-004 + 0.31696293 5.22588321743E-004 + 0.31971913 5.13421715016E-004 + 0.32247533 5.04521025692E-004 + 0.32523153 4.95875342174E-004 + 0.32798773 4.87474330839E-004 + 0.33074393 4.79308198708E-004 + 0.33350013 4.71367658951E-004 + 0.33625633 4.63643898981E-004 + 0.33901253 4.56128550903E-004 + 0.34176873 4.48813664133E-004 + 0.34452493 4.41691679995E-004 + 0.34728113 4.34755408139E-004 + 0.35003732 4.27998004623E-004 + 0.35279352 4.21412951534E-004 + 0.35554972 4.14994038011E-004 + 0.35830592 4.08735342578E-004 + 0.36106212 4.02631216665E-004 + 0.36381832 3.96676269236E-004 + 0.36657452 3.90865352436E-004 + 0.36933072 3.85193548181E-004 + 0.37208692 3.79656155615E-004 + 0.37484312 3.74248679378E-004 + 0.37759932 3.68966818617E-004 + 0.38035552 3.63806456691E-004 + 0.38311172 3.58763651516E-004 + 0.38586792 3.53834626508E-004 + 0.38862412 3.49015762080E-004 + 0.39138032 3.44303587652E-004 + 0.39413651 3.39694774143E-004 + 0.39689271 3.35186126908E-004 + 0.39964891 3.30774579088E-004 + 0.40240511 3.26457185353E-004 + 0.40516131 3.22231116002E-004 + 0.40791751 3.18093651404E-004 + 0.41067371 3.14042176752E-004 + 0.41342991 3.10074177113E-004 + 0.41618611 3.06187232756E-004 + 0.41894231 3.02379014732E-004 + 0.42169851 2.98647280702E-004 + 0.42445471 2.94989870992E-004 + 0.42721091 2.91404704852E-004 + 0.42996711 2.87889776925E-004 + 0.43272331 2.84443153897E-004 + 0.43547951 2.81062971323E-004 + 0.43823571 2.77747430618E-004 + 0.44099190 2.74494796207E-004 + 0.44374810 2.71303392817E-004 + 0.44650430 2.68171602908E-004 + 0.44926050 2.65097864229E-004 + 0.45201670 2.62080667507E-004 + 0.45477290 2.59118554237E-004 + 0.45752910 2.56210114591E-004 + 0.46028530 2.53353985425E-004 + 0.46304150 2.50548848380E-004 + 0.46579770 2.47793428078E-004 + 0.46855390 2.45086490405E-004 + 0.47131010 2.42426840871E-004 + 0.47406630 2.39813323047E-004 + 0.47682250 2.37244817083E-004 + 0.47957870 2.34720238280E-004 + 0.48233490 2.32238535744E-004 + 0.48509110 2.29798691088E-004 + 0.48784729 2.27399717198E-004 + 0.49060349 2.25040657059E-004 + 0.49335969 2.22720582625E-004 + 0.49611589 2.20438593741E-004 + 0.49887209 2.18193817120E-004 + 0.50162829 2.15985405353E-004 + 0.50438449 2.13812535973E-004 + 0.50714069 2.11674410548E-004 + 0.50989689 2.09570253824E-004 + 0.51265309 2.07499312899E-004 + 0.51540929 2.05460856426E-004 + 0.51816549 2.03454173864E-004 + 0.52092169 2.01478574746E-004 + 0.52367789 1.99533387983E-004 + 0.52643409 1.97617961200E-004 + 0.52919029 1.95731660093E-004 + 0.53194649 1.93873867813E-004 + 0.53470268 1.92043984380E-004 + 0.53745888 1.90241426114E-004 + 0.54021508 1.88465625093E-004 + 0.54297128 1.86716028632E-004 + 0.54572748 1.84992098776E-004 + 0.54848368 1.83293311825E-004 + 0.55123988 1.81619157865E-004 diff --git a/tests/QS/regtest-negf-1/H28-transm-0-1_0.transm b/tests/QS/regtest-negf-1/H28-transm-0-1_0.transm new file mode 100644 index 0000000000..a4cbd7b978 --- /dev/null +++ b/tests/QS/regtest-negf-1/H28-transm-0-1_0.transm @@ -0,0 +1,404 @@ +# Transmission coefficient (G0 = 2 e^2/h) for the scattering region +# Energy (a.u.) Transmission coefficient [alpha + beta] +# ------------------------------------------------------------------------------ + -0.55123988 3.80877855732E-026 + -0.54848368 3.59764213446E-026 + -0.54572748 3.37854830987E-026 + -0.54297128 3.15006101443E-026 + -0.54021508 2.91072918567E-026 + -0.53745888 2.65920045655E-026 + -0.53470268 2.39441692896E-026 + -0.53194649 2.11594152362E-026 + -0.52919029 1.82449107615E-026 + -0.52643409 1.52279596598E-026 + -0.52367789 1.21697502326E-026 + -0.52092169 9.18723872510E-027 + -0.51816549 6.48789156630E-027 + -0.51540929 4.42479869799E-027 + -0.51265309 3.58414968024E-027 + -0.50989689 4.92429560011E-027 + -0.50714069 9.99735171363E-027 + -0.50438449 2.13034281282E-026 + -0.50162829 4.28589460966E-026 + -0.49887209 8.11122240813E-026 + -0.49611589 1.46425311252E-025 + -0.49335969 2.55484212206E-025 + -0.49060349 4.35240068838E-025 + -0.48784729 7.29390274807E-025 + -0.48509110 1.20910020066E-024 + -0.48233490 1.99085186133E-024 + -0.47957870 3.26635325090E-024 + -0.47682250 5.35300476864E-024 + -0.47406630 8.77966841557E-024 + -0.47131010 1.44335387961E-023 + -0.46855390 2.38136360830E-023 + -0.46579770 3.94719474772E-023 + -0.46304150 6.57877786803E-023 + -0.46028530 1.10339341465E-022 + -0.45752910 1.86356333992E-022 + -0.45477290 3.17149293647E-022 + -0.45201670 5.44192986028E-022 + -0.44926050 9.42041274775E-022 + -0.44650430 1.64616748977E-021 + -0.44374810 2.90557093270E-021 + -0.44099190 5.18347423992E-021 + -0.43823571 9.35273272698E-021 + -0.43547951 1.70805934816E-020 + -0.43272331 3.15980997731E-020 + -0.42996711 5.92642914645E-020 + -0.42721091 1.12802905258E-019 + -0.42445471 2.18128028481E-019 + -0.42169851 4.29034916895E-019 + -0.41894231 8.59523397092E-019 + -0.41618611 1.75663676164E-018 + -0.41342991 3.66892533046E-018 + -0.41067371 7.84731824541E-018 + -0.40791751 1.72293445105E-017 + -0.40516131 3.89406781863E-017 + -0.40240511 9.09029350715E-017 + -0.39964891 2.20059023768E-016 + -0.39689271 5.55161284294E-016 + -0.39413651 1.46845951087E-015 + -0.39138032 4.10403524323E-015 + -0.38862412 1.22403354379E-014 + -0.38586792 3.94791891529E-014 + -0.38311172 1.40241540019E-013 + -0.38035552 5.63341370008E-013 + -0.37759932 2.66435540326E-012 + -0.37484312 1.58689966983E-011 + -0.37208692 1.35168551909E-010 + -0.36933072 2.22062425195E-009 + -0.36657452 2.26637104435E-007 + -0.36381832 9.83724629128E-001 + -0.36106212 9.92278527896E-001 + -0.35830592 9.94045406137E-001 + -0.35554972 9.94980911242E-001 + -0.35279352 9.95599015127E-001 + -0.35003732 9.96034274112E-001 + -0.34728113 9.96355269535E-001 + -0.34452493 9.96604530329E-001 + -0.34176873 9.96807716948E-001 + -0.33901253 9.96979311722E-001 + -0.33625633 9.97127203874E-001 + -0.33350013 9.97255927278E-001 + -0.33074393 9.97368571599E-001 + -0.32798773 9.97467658525E-001 + -0.32523153 9.97555501461E-001 + -0.32247533 9.97634135875E-001 + -0.31971913 9.97705293649E-001 + -0.31696293 9.97770341938E-001 + -0.31420673 9.97830290384E-001 + -0.31145053 9.97885846119E-001 + -0.30869433 9.97937494409E-001 + -0.30593813 9.97985581896E-001 + -0.30318193 9.98030385967E-001 + -0.30042574 9.98072162199E-001 + -0.29766954 9.98111169045E-001 + -0.29491334 9.98147673771E-001 + -0.29215714 9.98181945916E-001 + -0.28940094 9.98214244787E-001 + -0.28664474 9.98244806392E-001 + -0.28388854 9.98273833481E-001 + -0.28113234 9.98301490522E-001 + -0.27837614 9.98327903869E-001 + -0.27561994 9.98353166287E-001 + -0.27286374 9.98377344362E-001 + -0.27010754 9.98400487141E-001 + -0.26735134 9.98422634533E-001 + -0.26459514 9.98443824328E-001 + -0.26183894 9.98464097162E-001 + -0.25908274 9.98483499200E-001 + -0.25632654 9.98502082678E-001 + -0.25357035 9.98519904723E-001 + -0.25081415 9.98537025005E-001 + -0.24805795 9.98553502832E-001 + -0.24530175 9.98569394235E-001 + -0.24254555 9.98584749487E-001 + -0.23978935 9.98599611354E-001 + -0.23703315 9.98614014224E-001 + -0.23427695 9.98627984120E-001 + -0.23152075 9.98641539478E-001 + -0.22876455 9.98654692511E-001 + -0.22600835 9.98667450779E-001 + -0.22325215 9.98675276397E-001 + -0.22049595 9.98691807832E-001 + -0.21773975 9.98703412821E-001 + -0.21498355 9.98714645986E-001 + -0.21222735 9.98725516763E-001 + -0.20947115 9.98736037695E-001 + -0.20671496 9.98746224031E-001 + -0.20395876 9.98756093172E-001 + -0.20120256 9.98765663892E-001 + -0.19844636 9.98774955420E-001 + -0.19569016 9.98783986504E-001 + -0.19293396 9.98792774531E-001 + -0.19017776 9.98801334805E-001 + -0.18742156 9.98809680020E-001 + -0.18466536 9.98817819970E-001 + -0.18190916 9.98825761500E-001 + -0.17915296 9.98833508682E-001 + -0.17639676 9.98841063184E-001 + -0.17364056 9.98848424778E-001 + -0.17088436 9.98855591953E-001 + -0.16812816 9.98862562548E-001 + -0.16537196 9.98869334382E-001 + -0.16261576 9.98875905808E-001 + -0.15985957 9.98882276170E-001 + -0.15710337 9.98888446124E-001 + -0.15434717 9.98894417823E-001 + -0.15159097 9.98900194951E-001 + -0.14883477 9.98905782611E-001 + -0.14607857 9.98911187111E-001 + -0.14332237 9.98916415638E-001 + -0.14056617 9.98921475872E-001 + -0.13780997 9.98926375571E-001 + -0.13505377 9.98931122154E-001 + -0.13229757 9.98935722301E-001 + -0.12954137 9.98940181627E-001 + -0.12678517 9.98944504417E-001 + -0.12402897 9.98948693453E-001 + -0.12127277 9.98952749935E-001 + -0.11851657 9.98956673507E-001 + -0.11576038 9.98960462357E-001 + -0.11300418 9.98964113421E-001 + -0.11024798 9.98967622630E-001 + -0.10749178 9.98970985204E-001 + -0.10473558 9.98974195990E-001 + -0.10197938 9.98977249780E-001 + -0.09922318 9.98980141632E-001 + -0.09646698 9.98982867137E-001 + -0.09371078 9.98985422650E-001 + -0.09095458 9.98987805453E-001 + -0.08819838 9.98990013841E-001 + -0.08544218 9.98992047138E-001 + -0.08268598 9.98993905637E-001 + -0.07992978 9.98995590467E-001 + -0.07717358 9.98997103395E-001 + -0.07441738 9.98998446580E-001 + -0.07166118 9.98999622290E-001 + -0.06890499 9.99000632591E-001 + -0.06614879 9.99001479035E-001 + -0.06339259 9.99002162355E-001 + -0.06063639 9.99002682186E-001 + -0.05788019 9.99003036830E-001 + -0.05512399 9.99003223063E-001 + -0.05236779 9.99003236020E-001 + -0.04961159 9.99003069137E-001 + -0.04685539 9.99002714206E-001 + -0.04409919 9.99002161776E-001 + -0.04134299 9.99001375662E-001 + -0.03858679 9.99000410049E-001 + -0.03583059 9.98999189522E-001 + -0.03307439 9.98997717751E-001 + -0.03031819 9.98995980000E-001 + -0.02756199 9.98993960969E-001 + -0.02480579 9.98991645302E-001 + -0.02204960 9.98989017840E-001 + -0.01929340 9.98986063781E-001 + -0.01653720 9.98982768755E-001 + -0.01378100 9.98979118810E-001 + -0.01102480 9.98975100286E-001 + -0.00826860 9.98970699576E-001 + -0.00551240 9.98965902763E-001 + -0.00275620 9.98960695129E-001 + 0.00000000 9.98955060534E-001 + 0.00275620 9.98948980679E-001 + 0.00551240 9.98942434242E-001 + 0.00826860 9.98935395917E-001 + 0.01102480 9.98927835355E-001 + 0.01378100 9.98919716028E-001 + 0.01653720 9.98910994032E-001 + 0.01929340 9.98901616839E-001 + 0.02204960 9.98891521999E-001 + 0.02480579 9.98880635869E-001 + 0.02756199 9.98868872238E-001 + 0.03031819 9.98856130966E-001 + 0.03307439 9.98842296533E-001 + 0.03583059 9.98827236457E-001 + 0.03858679 9.98810799502E-001 + 0.04134299 9.98792813515E-001 + 0.04409919 9.98773082694E-001 + 0.04685539 9.98751383946E-001 + 0.04961159 9.98727461888E-001 + 0.05236779 9.98701021773E-001 + 0.05512399 9.98671719316E-001 + 0.05788019 9.98639145858E-001 + 0.06063639 9.98602806468E-001 + 0.06339259 9.98562087263E-001 + 0.06614879 9.98516205910E-001 + 0.06890499 9.98464135413E-001 + 0.07166118 9.98404484115E-001 + 0.07441738 9.98335301480E-001 + 0.07717358 9.98253752358E-001 + 0.07992978 9.98155545436E-001 + 0.08268598 9.98033870366E-001 + 0.08544218 9.97877265696E-001 + 0.08819838 9.97664885592E-001 + 0.09095458 9.97354391763E-001 + 0.09371078 9.96843621781E-001 + 0.09646698 9.95795251840E-001 + 0.09922318 9.91590689622E-001 + 0.10197938 1.31180785730E-006 + 0.10473558 4.51464127333E-008 + 0.10749178 6.32536352080E-009 + 0.11024798 1.44416637705E-009 + 0.11300418 4.26252351599E-010 + 0.11576038 1.47557965378E-010 + 0.11851657 5.69143896984E-011 + 0.12127277 2.37112686648E-011 + 0.12402897 1.04502608662E-011 + 0.12678517 4.79903671059E-012 + 0.12954137 2.26897092262E-012 + 0.13229757 1.09311417650E-012 + 0.13505377 5.31388907066E-013 + 0.13780997 2.57985064683E-013 + 0.14056617 1.23578176116E-013 + 0.14332237 5.74756657332E-014 + 0.14607857 2.53403215706E-014 + 0.14883477 1.01646934739E-014 + 0.15159097 3.41001861413E-015 + 0.15434717 7.58319100560E-016 + 0.15710337 2.64452520923E-017 + 0.15985957 1.21406174043E-016 + 0.16261576 5.09031526367E-016 + 0.16537196 9.40672154819E-016 + 0.16812816 1.31168929676E-015 + 0.17088436 1.58808802318E-015 + 0.17364056 1.76869046573E-015 + 0.17639676 1.86592628363E-015 + 0.17915296 1.89636937251E-015 + 0.18190916 1.87633990003E-015 + 0.18466536 1.82009509602E-015 + 0.18742156 1.73930128447E-015 + 0.19017776 1.64310273068E-015 + 0.19293396 1.53843540252E-015 + 0.19569016 1.43041062249E-015 + 0.19844636 1.32268677959E-015 + 0.20120256 1.21779545977E-015 + 0.20395876 1.11741244423E-015 + 0.20671496 1.02257534189E-015 + 0.20947115 9.33854298101E-016 + 0.21222735 8.51483560313E-016 + 0.21498355 7.75461443059E-016 + 0.21773975 7.05625340815E-016 + 0.22049595 6.41707351679E-016 + 0.22325215 5.83375019258E-016 + 0.22600835 5.30260767054E-016 + 0.22876455 4.81982816703E-016 + 0.23152075 4.38159745405E-016 + 0.23427695 3.98420331960E-016 + 0.23703315 3.62409944464E-016 + 0.23978935 3.29794415509E-016 + 0.24254555 3.00262114611E-016 + 0.24530175 2.73524747265E-016 + 0.24805795 2.49317273111E-016 + 0.25081415 2.27397232150E-016 + 0.25357035 2.07543690076E-016 + 0.25632654 1.89555955359E-016 + 0.25908274 1.73252177184E-016 + 0.26183894 1.58467900952E-016 + 0.26459514 1.45054634188E-016 + 0.26735134 1.32878458116E-016 + 0.27010754 1.21818707417E-016 + 0.27286374 1.11766731448E-016 + 0.27561994 1.02624743643E-016 + 0.27837614 9.43047612097E-017 + 0.28113234 8.67276340889E-017 + 0.28388854 7.98221600336E-017 + 0.28664474 7.35242813661E-017 + 0.28940094 6.77763581850E-017 + 0.29215714 6.25265124317E-017 + 0.29491334 5.77280371282E-017 + 0.29766954 5.33388651877E-017 + 0.30042574 4.93210924167E-017 + 0.30318193 4.56405496201E-017 + 0.30593813 4.22664190572E-017 + 0.30869433 3.91708908527E-017 + 0.31145053 3.63288553295E-017 + 0.31420673 3.37176275817E-017 + 0.31696293 3.13167009448E-017 + 0.31971913 2.91075263399E-017 + 0.32247533 2.70733147641E-017 + 0.32523153 2.51988604769E-017 + 0.32798773 2.34703826790E-017 + 0.33074393 2.18753837138E-017 + 0.33350013 2.04025220245E-017 + 0.33625633 1.90414982914E-017 + 0.33901253 1.77829533405E-017 + 0.34176873 1.66183765650E-017 + 0.34452493 1.55400237399E-017 + 0.34728113 1.45408432293E-017 + 0.35003732 1.36144096942E-017 + 0.35279352 1.27548645083E-017 + 0.35554972 1.19568621710E-017 + 0.35830592 1.12155220886E-017 + 0.36106212 1.05263851593E-017 + 0.36381832 9.88537466124E-018 + 0.36657452 9.28876099571E-018 + 0.36933072 8.73312988574E-018 + 0.37208692 8.21535367468E-018 + 0.37484312 7.73256540603E-018 + 0.37759932 7.28213540070E-018 + 0.38035552 6.86165007782E-018 + 0.38311172 6.46889279231E-018 + 0.38586792 6.10182648618E-018 + 0.38862412 5.75857797222E-018 + 0.39138032 5.43742368750E-018 + 0.39413651 5.13677677110E-018 + 0.39689271 4.85517533577E-018 + 0.39964891 4.59127181656E-018 + 0.40240511 4.34382329150E-018 + 0.40516131 4.11168268025E-018 + 0.40791751 3.89379073611E-018 + 0.41067371 3.68916875548E-018 + 0.41342991 3.49691193641E-018 + 0.41618611 3.31618332488E-018 + 0.41894231 3.14620829334E-018 + 0.42169851 2.98626950186E-018 + 0.42445471 2.83570229695E-018 + 0.42721091 2.69389050743E-018 + 0.42996711 2.56026260107E-018 + 0.43272331 2.43428816882E-018 + 0.43547951 2.31547470692E-018 + 0.43823571 2.20336467005E-018 + 0.44099190 2.09753277101E-018 + 0.44374810 1.99758350506E-018 + 0.44650430 1.90314887887E-018 + 0.44926050 1.81388632610E-018 + 0.45201670 1.72947679315E-018 + 0.45477290 1.64962298028E-018 + 0.45752910 1.57404772464E-018 + 0.46028530 1.50249251289E-018 + 0.46304150 1.43471611241E-018 + 0.46579770 1.37049331092E-018 + 0.46855390 1.30961375527E-018 + 0.47131010 1.25188088122E-018 + 0.47406630 1.19711092638E-018 + 0.47682250 1.14513201955E-018 + 0.47957870 1.09578333998E-018 + 0.48233490 1.04891434095E-018 + 0.48509110 1.00438403232E-018 + 0.48784729 9.62060317169E-019 + 0.49060349 9.21819378354E-019 + 0.49335969 8.83545110766E-019 + 0.49611589 8.47128595734E-019 + 0.49887209 8.12467614202E-019 + 0.50162829 7.79466195595E-019 + 0.50438449 7.48034199586E-019 + 0.50714069 7.18086928172E-019 + 0.50989689 6.89544765712E-019 + 0.51265309 6.62332844760E-019 + 0.51540929 6.36380735703E-019 + 0.51816549 6.11622158394E-019 + 0.52092169 5.87994714088E-019 + 0.52367789 5.65439636166E-019 + 0.52643409 5.43901558209E-019 + 0.52919029 5.23328298148E-019 + 0.53194649 5.03670657270E-019 + 0.53470268 4.84882232996E-019 + 0.53745888 4.66919244405E-019 + 0.54021508 4.49740369585E-019 + 0.54297128 4.33306593929E-019 + 0.54572748 4.17581068602E-019 + 0.54848368 4.02528978433E-019 + 0.55123988 3.88117418563E-019 diff --git a/tests/QS/regtest-negf-1/H28.inp b/tests/QS/regtest-negf-1/H28.inp new file mode 100644 index 0000000000..ca7cec1ba4 --- /dev/null +++ b/tests/QS/regtest-negf-1/H28.inp @@ -0,0 +1,238 @@ +@SET Project H28 +@SET V_bias_volt 0.0 +@SET Temperature 10.0 +# The following two parameters are computed automatically during the NEGF run. +# You can use keywords 'FERMI_LEVEL' to give this value and skip calculation +# or 'FERMI_LEVEL'+'REFINE_FERMI_LEVEL' to compute starting from this value. +# If 'FERMI_LEVEL' is not given, it is calculated automatically. +# 'V_SHIFT' is used to give initial value. +@SET Fermi_level -0.22306314 +@SET V_shift 0.00011054 +@SET basis_set_path BASIS_SET +! BASIS_MOLOPT BASIS_SET +@SET potential_path GTH_POTENTIALS +@SET xc_functional pade +!PBE pade +@SET cutoff 300 +@SET added_mos -1 +@SET max_scf 50 +@SET eps_scf 1e-8 +@SET lx 6.0 +@SET ly 6.0 +!--------------------------------------------------------------------------------------------------- +&GLOBAL + EXTENDED_FFT_LENGTHS .true. + PREFERRED_DIAG_LIBRARY SL + PRINT_LEVEL LOW #SILENT #LOW #MEDIUM #HIGH #DEBUG + PROJECT ${Project} + RUN_TYPE NEGF +&END GLOBAL + +&NEGF + # Integration lower bound (in Hartree) + ENERGY_LBOUND -2.0 + !clenshaw-curtis simpson + # Maximum error in each matrix element of the density matrix + EPS_DENSITY 1e-5 + # 'simpson' is slower, but works without FFTW3 library + # clenshaw-curtis is faster, but requires FFTW3 library + INTEGRATION_METHOD simpson + !EPS_SCF 1e-5 + MAX_SCF 100 + # Number of parallel processes per energy point. + # 'NPROC_POINT 1' means that if you run this job using 8 MPI processes, + # than Green's functions at up to 8 (8 / NPROC_POINT) energy points + # will be computed simultaneously. + # + NPROC_POINT 1 + !EPS_GREEN 1e-5 + !ETA 1e-7 + # Boundary conditions define solution of the Poisson equation up to + # an additive constant, which affects Hamiltonian matrix elements within + # the NEGF procedure. The following parameters control evaluation of + # the correct shift in Hartree potential: + # * V_SHIFT -- initial guess for the shift + # * V_SHIFT_MAX_ITERS -- maximal number of iterations + V_SHIFT ${V_shift} + V_SHIFT_MAX_ITERS 100 + &CONTACT + ELECTRIC_POTENTIAL [eV] ${V_bias_volt}/2 + FERMI_LEVEL ${Fermi_level} + REFINE_FERMI_LEVEL + TEMPERATURE [K] ${Temperature} + &BULK_REGION + # Atomic indices (and/or names of molecular fragments) that belong to the electrode contact region. + !MOLNAME L1 L2 + LIST 1..8 + # List of atoms that belong to the primary and secondary unit cells of the 1st contact. + # Primary and secondary unit cells can be defined in any order. + # They should be adjusted to each other and should not overlap. + # + # As matrix blocks should correspond to ones for the electrode contact region, + # in actual calculation you may want to use a longer chain, e.g. + # L1 L2 L3 L4 L5 L6 . + # cell1 cell2 + # Alternatively, instead of the below CELL sections, a separate bulk FORCE_EVAL section + # for the contact can be set up and the keyword FORCE_EVAL_SECTION should be set accordingly + # (see the test file regtest-negf-2/H28_k.inp). + &CELL + !MOLNAME L1 + LIST 1..4 + &END CELL + &CELL + !MOLNAME L2 + LIST 5..8 + &END CELL + &END BULK_REGION + &SCREENING_REGION + !MOLNAME L0 + LIST 9..12 + &END SCREENING_REGION + &END CONTACT + &CONTACT + ELECTRIC_POTENTIAL [eV] -${V_bias_volt}/2 + FERMI_LEVEL ${Fermi_level} + REFINE_FERMI_LEVEL + TEMPERATURE [K] ${Temperature} + # the second semi-infinite electrode + &BULK_REGION + MOLNAME R1 R2 + &CELL + MOLNAME R1 + &END CELL + &CELL + MOLNAME R2 + &END CELL + &END BULK_REGION + &SCREENING_REGION + MOLNAME R0 + &END SCREENING_REGION + &END CONTACT + # Density mixing is not needed in zero-bias case, as NEGF self-consistent + # procedure will converge in one iteration. However, when an external bias + # is applied, a density mixing scheme in inverse space is typically + # much stable then the default direct mixing of new and old density matrices. + &MIXING + ALPHA 0.2 + METHOD broyden_mixing + NBUFFER 8 + &END MIXING + &PRINT + &DOS + FILENAME device + FROM_ENERGY [eV] -15 + N_GRIDPOINTS 401 + TILL_ENERGY [eV] 15 + &END DOS + &PROGRAM_RUN_INFO low + PRINT_LEVEL debug + ! high debug + &END PROGRAM_RUN_INFO + &TRANSMISSION + FILENAME transm + FROM_ENERGY [eV] -15 + N_GRIDPOINTS 401 + TILL_ENERGY [eV] 15 + &END TRANSMISSION + &END PRINT + &SCATTERING_REGION + MOLNAME S + !LIST 13..16 + &END SCATTERING_REGION + #DISABLE_CACHE +&END NEGF + +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME ${basis_set_path} + POTENTIAL_FILE_NAME ${potential_path} + &MGRID + CUTOFF ${cutoff} + &END MGRID + &POISSON + PERIODIC xyz + &END POISSON + &PRINT + &PDOS + COMPONENTS + NLUMO -1 + &END PDOS + &END PRINT + &SCF + !atomic restart + ADDED_MOS ${added_mos} + EPS_SCF ${eps_scf} + MAX_SCF ${max_scf} + SCF_GUESS restart + &MIXING + ALPHA 0.3 + METHOD broyden_mixing + NBUFFER 8 + &END MIXING + &PRINT + &RESTART + FILENAME RESTART + &END RESTART + #&PROGRAM_RUN_INFO silent + #&END + #&DETAILED_ENERGY silent + #&END + &END PRINT + &SMEAR + ELECTRONIC_TEMPERATURE [K] ${Temperature} + METHOD fermi_dirac + &END SMEAR + &END SCF + &XC + &XC_FUNCTIONAL ${xc_functional} + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC ${lx} ${ly} 42. + PERIODIC xyz + &END CELL + &COORD + H 0.00000000 0.00000000 0.00000000 L2 + H 0.00000000 0.00000000 1.50000000 L2 + H 0.00000000 0.00000000 3.00000000 L2 + H 0.00000000 0.00000000 4.50000000 L2 + H 0.00000000 0.00000000 6.00000000 L1 + H 0.00000000 0.00000000 7.50000000 L1 + H 0.00000000 0.00000000 9.00000000 L1 + H 0.00000000 0.00000000 10.50000000 L1 + H 0.00000000 0.00000000 12.00000000 L0 + H 0.00000000 0.00000000 13.50000000 L0 + H 0.00000000 0.00000000 15.00000000 L0 + H 0.00000000 0.00000000 16.50000000 L0 + H 0.00000000 0.00000000 18.00000000 S + H 0.00000000 0.00000000 19.50000000 S + H 0.00000000 0.00000000 21.00000000 S + H 0.00000000 0.00000000 22.50000000 S + H 0.00000000 0.00000000 24.00000000 R0 + H 0.00000000 0.00000000 25.50000000 R0 + H 0.00000000 0.00000000 27.00000000 R0 + H 0.00000000 0.00000000 28.50000000 R0 + H 0.00000000 0.00000000 30.00000000 R1 + H 0.00000000 0.00000000 31.50000000 R1 + H 0.00000000 0.00000000 33.00000000 R1 + H 0.00000000 0.00000000 34.50000000 R1 + H 0.00000000 0.00000000 36.00000000 R2 + H 0.00000000 0.00000000 37.50000000 R2 + H 0.00000000 0.00000000 39.00000000 R2 + H 0.00000000 0.00000000 40.50000000 R2 + # H 0.00000000 0.00000000 42.00000000 R3 + # H 0.00000000 0.00000000 43.50000000 R3 + # H 0.00000000 0.00000000 45.00000000 R3 + # H 0.00000000 0.00000000 46.50000000 R3 + &END COORD + &KIND H + BASIS_SET SZV-GTH-PADE + ! SZV-GTH-PADE DZV-ALL-PADE DZVP-ALL-PADE SZV-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + !GTH-PADE-q1 GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-negf-fft/TEST_FILES.toml b/tests/QS/regtest-negf-1/TEST_FILES.toml similarity index 87% rename from tests/QS/regtest-negf-fft/TEST_FILES.toml rename to tests/QS/regtest-negf-1/TEST_FILES.toml index 90c4a5045f..c4a1c41787 100644 --- a/tests/QS/regtest-negf-fft/TEST_FILES.toml +++ b/tests/QS/regtest-negf-1/TEST_FILES.toml @@ -4,4 +4,4 @@ # 1 compares the last total energy in the file # for details see cp2k/tools/do_regtest # -"li_chain_kp.inp" = [] +"H28.inp" = [] diff --git a/tests/QS/regtest-negf-2/H28_k-device-0-1_0.dos b/tests/QS/regtest-negf-2/H28_k-device-0-1_0.dos new file mode 100644 index 0000000000..94f64b4d95 --- /dev/null +++ b/tests/QS/regtest-negf-2/H28_k-device-0-1_0.dos @@ -0,0 +1,404 @@ +# Density of states for the scattering region +# Energy (a.u.) Number of states [alpha + beta] +# ------------------------------------------------------------------------------ + -0.55123988 9.29725193576E-004 + -0.54848368 9.51485980692E-004 + -0.54572748 9.74081306699E-004 + -0.54297128 9.97556502769E-004 + -0.54021508 1.02196011647E-003 + -0.53745888 1.04734419528E-003 + -0.53470268 1.07376460018E-003 + -0.53194649 1.10128135293E-003 + -0.52919029 1.12995902146E-003 + -0.52643409 1.15986714809E-003 + -0.52367789 1.19108072633E-003 + -0.52092169 1.22368073263E-003 + -0.51816549 1.25775472058E-003 + -0.51540929 1.29339748613E-003 + -0.51265309 1.33071181384E-003 + -0.50989689 1.36980931581E-003 + -0.50714069 1.41081137671E-003 + -0.50438449 1.45385022083E-003 + -0.50162829 1.49907011962E-003 + -0.49887209 1.54662876157E-003 + -0.49611589 1.59669881006E-003 + -0.49335969 1.64946967966E-003 + -0.49060349 1.70514956706E-003 + -0.48784729 1.76396777945E-003 + -0.48509110 1.82617741218E-003 + -0.48233490 1.89205843721E-003 + -0.47957870 1.96192127703E-003 + -0.47682250 2.03611095432E-003 + -0.47406630 2.11501192695E-003 + -0.47131010 2.19905374249E-003 + -0.46855390 2.28871767669E-003 + -0.46579770 2.38454455902E-003 + -0.46304150 2.48714403719E-003 + -0.46028530 2.59720559469E-003 + -0.45752910 2.71551171581E-003 + -0.45477290 2.84295369592E-003 + -0.45201670 2.98055073005E-003 + -0.44926050 3.12947308978E-003 + -0.44650430 3.29107043355E-003 + -0.44374810 3.46690660838E-003 + -0.44099190 3.65880272356E-003 + -0.43823571 3.86889085097E-003 + -0.43547951 4.09968149661E-003 + -0.43272331 4.35414908573E-003 + -0.42996711 4.63584124843E-003 + -0.42721091 4.94901989412E-003 + -0.42445471 5.29884524383E-003 + -0.42169851 5.69161865558E-003 + -0.41894231 6.13510703504E-003 + -0.41618611 6.63898218312E-003 + -0.41342991 7.21542477371E-003 + -0.41067371 7.87996849182E-003 + -0.40791751 8.65270169018E-003 + -0.40516131 9.56001343956E-003 + -0.40240511 1.06371898278E-002 + -0.39964891 1.19323768453E-002 + -0.39689271 1.35128127868E-002 + -0.39413651 1.54749743457E-002 + -0.39138032 1.79617743532E-002 + -0.38862412 2.11931404702E-002 + -0.38586792 2.55236135129E-002 + -0.38311172 3.15588223700E-002 + -0.38035552 4.04131439686E-002 + -0.37759932 5.43508692700E-002 + -0.37484312 7.86627198137E-002 + -0.37208692 1.28659852704E-001 + -0.36933072 2.69130670949E-001 + -0.36657452 1.23548287361E+000 + -0.36381832 4.54615092904E+002 + -0.36106212 2.46727429656E+002 + -0.35830592 1.88684019922E+002 + -0.35554972 1.58956496792E+002 + -0.35279352 1.39966090296E+002 + -0.35003732 1.26442527544E+002 + -0.34728113 1.16206926241E+002 + -0.34452493 1.08139838687E+002 + -0.34176873 1.01580054543E+002 + -0.33901253 9.61068308499E+001 + -0.33625633 9.14428374575E+001 + -0.33350013 8.74014111197E+001 + -0.33074393 8.38538317626E+001 + -0.32798773 8.07089175398E+001 + -0.32523153 7.78978705356E+001 + -0.32247533 7.53679439969E+001 + -0.31971913 7.30764590888E+001 + -0.31696293 7.09883732923E+001 + -0.31420673 6.90747100440E+001 + -0.31145053 6.73115636857E+001 + -0.30869433 6.56793314542E+001 + -0.30593813 6.41620172278E+001 + -0.30318193 6.27465644191E+001 + -0.30042574 6.14222310409E+001 + -0.29766954 6.01800373314E+001 + -0.29491334 5.90123115519E+001 + -0.29215714 5.79123453783E+001 + -0.28940094 5.68741551964E+001 + -0.28664474 5.58923334881E+001 + -0.28388854 5.49619681073E+001 + -0.28113234 5.40786054625E+001 + -0.27837614 5.32382360597E+001 + -0.27561994 5.24372856085E+001 + -0.27286374 5.16726006482E+001 + -0.27010754 5.09414232157E+001 + -0.26735134 5.02413536877E+001 + -0.26459514 4.95703041932E+001 + -0.26183894 4.89264468345E+001 + -0.25908274 4.83081615346E+001 + -0.25632654 4.77139879204E+001 + -0.25357035 4.71425846093E+001 + -0.25081415 4.65926979027E+001 + -0.24805795 4.60631405014E+001 + -0.24530175 4.55527796370E+001 + -0.24254555 4.50605330959E+001 + -0.23978935 4.45853710536E+001 + -0.23703315 4.41263214354E+001 + -0.23427695 4.36824766393E+001 + -0.23152075 4.32529998738E+001 + -0.22876455 4.28371303449E+001 + -0.22600835 4.24341920801E+001 + -0.22325215 4.20495184671E+001 + -0.22049595 4.16645432788E+001 + -0.21773975 4.12969423383E+001 + -0.21498355 4.09401719248E+001 + -0.21222735 4.05938559251E+001 + -0.20947115 4.02576415364E+001 + -0.20671496 3.99311976015E+001 + -0.20395876 3.96142077778E+001 + -0.20120256 3.93063646976E+001 + -0.19844636 3.90073659721E+001 + -0.19569016 3.87169121756E+001 + -0.19293396 3.84347066794E+001 + -0.19017776 3.81604570362E+001 + -0.18742156 3.78938775180E+001 + -0.18466536 3.76346923600E+001 + -0.18190916 3.73826392529E+001 + -0.17915296 3.71374726746E+001 + -0.17639676 3.68989667003E+001 + -0.17364056 3.66669170313E+001 + -0.17088436 3.64411420805E+001 + -0.16812816 3.62214830323E+001 + -0.16537196 3.60078029252E+001 + -0.16261576 3.57999848405E+001 + -0.15985957 3.55979293888E+001 + -0.15710337 3.54015516904E+001 + -0.15434717 3.52107780984E+001 + -0.15159097 3.50255428953E+001 + -0.14883477 3.48457851891E+001 + -0.14607857 3.46714462020E+001 + -0.14332237 3.45024670985E+001 + -0.14056617 3.43387874652E+001 + -0.13780997 3.41803444847E+001 + -0.13505377 3.40270728066E+001 + -0.13229757 3.38789050730E+001 + -0.12954137 3.37357730275E+001 + -0.12678517 3.35976090376E+001 + -0.12402897 3.34643480139E+001 + -0.12127277 3.33359293793E+001 + -0.11851657 3.32122992171E+001 + -0.11576038 3.30934121388E+001 + -0.11300418 3.29792330596E+001 + -0.11024798 3.28697385047E+001 + -0.10749178 3.27649176481E+001 + -0.10473558 3.26647727684E+001 + -0.10197938 3.25693193171E+001 + -0.09922318 3.24785855146E+001 + -0.09646698 3.23926115663E+001 + -0.09371078 3.23114485254E+001 + -0.09095458 3.22351569223E+001 + -0.08819838 3.21638052442E+001 + -0.08544218 3.20974683746E+001 + -0.08268598 3.20362260979E+001 + -0.07992978 3.19801617699E+001 + -0.07717358 3.19293612490E+001 + -0.07441738 3.18839121621E+001 + -0.07166118 3.18439035687E+001 + -0.06890499 3.18094260618E+001 + -0.06614879 3.17805723253E+001 + -0.06339259 3.17574381443E+001 + -0.06063639 3.17401238412E+001 + -0.05788019 3.17287360857E+001 + -0.05512399 3.17233899880E+001 + -0.05236779 3.17242113011E+001 + -0.04961159 3.17313382536E+001 + -0.04685539 3.17449208030E+001 + -0.04409919 3.17650954367E+001 + -0.04134299 3.17932112477E+001 + -0.03858679 3.18265855427E+001 + -0.03583059 3.18680094153E+001 + -0.03307439 3.19170618611E+001 + -0.03031819 3.19740323152E+001 + -0.02756199 3.20392615711E+001 + -0.02480579 3.21131289675E+001 + -0.02204960 3.21960516251E+001 + -0.01929340 3.22884853315E+001 + -0.01653720 3.23909258902E+001 + -0.01378100 3.25039107971E+001 + -0.01102480 3.26280213403E+001 + -0.00826860 3.27638852963E+001 + -0.00551240 3.29121804371E+001 + -0.00275620 3.30736391037E+001 + 0.00000000 3.32490541265E+001 + 0.00275620 3.34392864103E+001 + 0.00551240 3.36452745320E+001 + 0.00826860 3.38680467582E+001 + 0.01102480 3.41087358094E+001 + 0.01378100 3.43685972314E+001 + 0.01653720 3.46490312763E+001 + 0.01929340 3.49516097173E+001 + 0.02204960 3.52781079047E+001 + 0.02480579 3.56305432212E+001 + 0.02756199 3.60112212630E+001 + 0.03031819 3.64227910782E+001 + 0.03307439 3.68683118067E+001 + 0.03583059 3.73513332487E+001 + 0.03858679 3.78759940379E+001 + 0.04134299 3.84471423214E+001 + 0.04409919 3.90704857595E+001 + 0.04685539 3.97527802571E+001 + 0.04961159 4.05020708345E+001 + 0.05236779 4.13280038858E+001 + 0.05512399 4.22422389688E+001 + 0.05788019 4.32590020921E+001 + 0.06063639 4.43958443237E+001 + 0.06339259 4.56747051876E+001 + 0.06614879 4.71234400434E+001 + 0.06890499 4.87780742440E+001 + 0.07166118 5.06862336521E+001 + 0.07441738 5.29125533431E+001 + 0.07717358 5.55475667025E+001 + 0.07992978 5.87230603809E+001 + 0.08268598 6.26402722750E+001 + 0.08544218 6.76258437599E+001 + 0.08819838 7.42547261342E+001 + 0.09095458 8.36608819061E+001 + 0.09371078 9.85060626402E+001 + 0.09646698 1.27311831897E+002 + 0.09922318 2.32639714396E+002 + 0.10197938 6.44074495535E-001 + 0.10473558 1.42624690187E-001 + 0.10749178 6.85270256805E-002 + 0.11024798 4.21156898829E-002 + 0.11300418 2.92611076421E-002 + 0.11576038 2.18831688704E-002 + 0.11851657 1.71893622460E-002 + 0.12127277 1.39846267757E-002 + 0.12402897 1.16808101182E-002 + 0.12678517 9.95823626299E-003 + 0.12954137 8.62972379021E-003 + 0.13229757 7.57912453215E-003 + 0.13505377 6.73093320005E-003 + 0.13780997 6.03415394673E-003 + 0.14056617 5.45322661814E-003 + 0.14332237 4.96267315551E-003 + 0.14607857 4.54380868320E-003 + 0.14883477 4.18264984973E-003 + 0.15159097 3.86854423609E-003 + 0.15434717 3.59324835905E-003 + 0.15710337 3.35029297081E-003 + 0.15985957 3.13453705906E-003 + 0.16261576 2.94184862939E-003 + 0.16537196 2.76887241606E-003 + 0.16812816 2.61285829655E-003 + 0.17088436 2.47153280653E-003 + 0.17364056 2.34300172306E-003 + 0.17639676 2.22567535500E-003 + 0.17915296 2.11821064193E-003 + 0.18190916 2.01946584183E-003 + 0.18466536 1.92846475009E-003 + 0.18742156 1.84436820745E-003 + 0.19017776 1.76645123479E-003 + 0.19293396 1.69408454943E-003 + 0.19569016 1.62671952129E-003 + 0.19844636 1.56387585028E-003 + 0.20120256 1.50513141187E-003 + 0.20395876 1.45011384187E-003 + 0.20671496 1.39849352537E-003 + 0.20947115 1.34997772583E-003 + 0.21222735 1.30430564559E-003 + 0.21498355 1.26124425107E-003 + 0.21773975 1.22058472914E-003 + 0.22049595 1.18213946698E-003 + 0.22325215 1.14573946802E-003 + 0.22600835 1.11123213286E-003 + 0.22876455 1.07847934687E-003 + 0.23152075 1.04735582646E-003 + 0.23427695 1.01774768455E-003 + 0.23703315 9.89551182217E-004 + 0.23978935 9.62671639211E-004 + 0.24254555 9.37022480429E-004 + 0.24530175 9.12524399084E-004 + 0.24805795 8.89104620381E-004 + 0.25081415 8.66696252018E-004 + 0.25357035 8.45237709866E-004 + 0.25632654 8.24672208966E-004 + 0.25908274 8.04947311398E-004 + 0.26183894 7.86014523796E-004 + 0.26459514 7.67828938322E-004 + 0.26735134 7.50348911760E-004 + 0.27010754 7.33535778121E-004 + 0.27286374 7.17353590786E-004 + 0.27561994 7.01768890722E-004 + 0.27837614 6.86750497781E-004 + 0.28113234 6.72269322455E-004 + 0.28388854 6.58298195806E-004 + 0.28664474 6.44811715571E-004 + 0.28940094 6.31786106693E-004 + 0.29215714 6.19199094729E-004 + 0.29491334 6.07029790785E-004 + 0.29766954 5.95258586778E-004 + 0.30042574 5.83867059968E-004 + 0.30318193 5.72837885824E-004 + 0.30593813 5.62154758399E-004 + 0.30869433 5.51802317458E-004 + 0.31145053 5.41766081729E-004 + 0.31420673 5.32032387674E-004 + 0.31696293 5.22588333253E-004 + 0.31971913 5.13421726240E-004 + 0.32247533 5.04521036639E-004 + 0.32523153 4.95875352856E-004 + 0.32798773 4.87474341265E-004 + 0.33074393 4.79308208886E-004 + 0.33350013 4.71367668891E-004 + 0.33625633 4.63643908691E-004 + 0.33901253 4.56128560390E-004 + 0.34176873 4.48813673404E-004 + 0.34452493 4.41691689059E-004 + 0.34728113 4.34755417002E-004 + 0.35003732 4.27998013292E-004 + 0.35279352 4.21412960014E-004 + 0.35554972 4.14994046309E-004 + 0.35830592 4.08735350700E-004 + 0.36106212 4.02631224616E-004 + 0.36381832 3.96676277021E-004 + 0.36657452 3.90865360061E-004 + 0.36933072 3.85193555650E-004 + 0.37208692 3.79656162933E-004 + 0.37484312 3.74248686549E-004 + 0.37759932 3.68966825646E-004 + 0.38035552 3.63806463582E-004 + 0.38311172 3.58763658273E-004 + 0.38586792 3.53834633134E-004 + 0.38862412 3.49015768579E-004 + 0.39138032 3.44303594028E-004 + 0.39413651 3.39694780399E-004 + 0.39689271 3.35186133047E-004 + 0.39964891 3.30774585114E-004 + 0.40240511 3.26457191268E-004 + 0.40516131 3.22231121810E-004 + 0.40791751 3.18093657107E-004 + 0.41067371 3.14042182353E-004 + 0.41342991 3.10074182615E-004 + 0.41618611 3.06187238161E-004 + 0.41894231 3.02379020043E-004 + 0.42169851 2.98647285921E-004 + 0.42445471 2.94989876121E-004 + 0.42721091 2.91404709894E-004 + 0.42996711 2.87889781882E-004 + 0.43272331 2.84443158771E-004 + 0.43547951 2.81062976115E-004 + 0.43823571 2.77747435331E-004 + 0.44099190 2.74494800843E-004 + 0.44374810 2.71303397378E-004 + 0.44650430 2.68171607394E-004 + 0.44926050 2.65097868644E-004 + 0.45201670 2.62080671851E-004 + 0.45477290 2.59118558513E-004 + 0.45752910 2.56210118800E-004 + 0.46028530 2.53353989568E-004 + 0.46304150 2.50548852458E-004 + 0.46579770 2.47793432094E-004 + 0.46855390 2.45086494359E-004 + 0.47131010 2.42426844765E-004 + 0.47406630 2.39813326883E-004 + 0.47682250 2.37244820861E-004 + 0.47957870 2.34720242002E-004 + 0.48233490 2.32238539411E-004 + 0.48509110 2.29798694700E-004 + 0.48784729 2.27399720758E-004 + 0.49060349 2.25040660567E-004 + 0.49335969 2.22720586082E-004 + 0.49611589 2.20438597149E-004 + 0.49887209 2.18193820479E-004 + 0.50162829 2.15985408665E-004 + 0.50438449 2.13812539238E-004 + 0.50714069 2.11674413767E-004 + 0.50989689 2.09570256999E-004 + 0.51265309 2.07499316029E-004 + 0.51540929 2.05460859513E-004 + 0.51816549 2.03454176909E-004 + 0.52092169 2.01478577749E-004 + 0.52367789 1.99533390946E-004 + 0.52643409 1.97617964124E-004 + 0.52919029 1.95731662977E-004 + 0.53194649 1.93873870659E-004 + 0.53470268 1.92043987188E-004 + 0.53745888 1.90241428885E-004 + 0.54021508 1.88465627829E-004 + 0.54297128 1.86716031331E-004 + 0.54572748 1.84992101440E-004 + 0.54848368 1.83293314455E-004 + 0.55123988 1.81619160462E-004 diff --git a/tests/QS/regtest-negf-2/H28_k-transm-0-1_0.transm b/tests/QS/regtest-negf-2/H28_k-transm-0-1_0.transm new file mode 100644 index 0000000000..cafa5e3fab --- /dev/null +++ b/tests/QS/regtest-negf-2/H28_k-transm-0-1_0.transm @@ -0,0 +1,404 @@ +# Transmission coefficient (G0 = 2 e^2/h) for the scattering region +# Energy (a.u.) Transmission coefficient [alpha + beta] +# ------------------------------------------------------------------------------ + -0.55123988 3.80877958658E-026 + -0.54848368 3.59764317765E-026 + -0.54572748 3.37854937265E-026 + -0.54297128 3.15006210296E-026 + -0.54021508 2.91073030650E-026 + -0.53745888 2.65920161634E-026 + -0.53470268 2.39441813406E-026 + -0.53194649 2.11594277923E-026 + -0.52919029 1.82449238498E-026 + -0.52643409 1.52279732603E-026 + -0.52367789 1.21697642422E-026 + -0.52092169 9.18725289901E-027 + -0.51816549 6.48790542536E-027 + -0.51540929 4.42481138020E-027 + -0.51265309 3.58415970426E-027 + -0.50989689 4.92430048816E-027 + -0.50714069 9.99734738928E-027 + -0.50438449 2.13034079524E-026 + -0.50162829 4.28588993198E-026 + -0.49887209 8.11121333485E-026 + -0.49611589 1.46425148565E-025 + -0.49335969 2.55483932352E-025 + -0.49060349 4.35239598661E-025 + -0.48784729 7.29389495557E-025 + -0.48509110 1.20909891883E-024 + -0.48233490 1.99084976014E-024 + -0.47957870 3.26634980907E-024 + -0.47682250 5.35299912351E-024 + -0.47406630 8.77965913068E-024 + -0.47131010 1.44335234638E-023 + -0.46855390 2.38136106394E-023 + -0.46579770 3.94719050117E-023 + -0.46304150 6.57877073494E-023 + -0.46028530 1.10339220803E-022 + -0.45752910 1.86356128322E-022 + -0.45477290 3.17148940213E-022 + -0.45201670 5.44192373364E-022 + -0.44926050 9.42040202884E-022 + -0.44650430 1.64616559595E-021 + -0.44374810 2.90556755172E-021 + -0.44099190 5.18346813697E-021 + -0.43823571 9.35272158094E-021 + -0.43547951 1.70805728702E-020 + -0.43272331 3.15980611499E-020 + -0.42996711 5.92642180590E-020 + -0.42721091 1.12802763622E-019 + -0.42445471 2.18127750727E-019 + -0.42169851 4.29034362626E-019 + -0.41894231 8.59522270014E-019 + -0.41618611 1.75663442257E-018 + -0.41342991 3.66892036722E-018 + -0.41067371 7.84730745546E-018 + -0.40791751 1.72293204202E-017 + -0.40516131 3.89406227933E-017 + -0.40240511 9.09028034607E-017 + -0.39964891 2.20058699374E-016 + -0.39689271 5.55160450845E-016 + -0.39413651 1.46845726564E-015 + -0.39138032 4.10402885463E-015 + -0.38862412 1.22403160578E-014 + -0.38586792 3.94791257124E-014 + -0.38311172 1.40241312293E-013 + -0.38035552 5.63340453839E-013 + -0.37759932 2.66435114619E-012 + -0.37484312 1.58689729390E-011 + -0.37208692 1.35168389347E-010 + -0.36933072 2.22062379755E-009 + -0.36657452 2.26638604399E-007 + -0.36381832 9.83723539301E-001 + -0.36106212 9.92278507553E-001 + -0.35830592 9.94045414168E-001 + -0.35554972 9.94980909768E-001 + -0.35279352 9.95599011629E-001 + -0.35003732 9.96034272128E-001 + -0.34728113 9.96355268823E-001 + -0.34452493 9.96604529786E-001 + -0.34176873 9.96807715913E-001 + -0.33901253 9.96979310136E-001 + -0.33625633 9.97127202006E-001 + -0.33350013 9.97255925392E-001 + -0.33074393 9.97368568745E-001 + -0.32798773 9.97467658237E-001 + -0.32523153 9.97555501265E-001 + -0.32247533 9.97634135853E-001 + -0.31971913 9.97705293709E-001 + -0.31696293 9.97770341990E-001 + -0.31420673 9.97830290375E-001 + -0.31145053 9.97885846035E-001 + -0.30869433 9.97937494264E-001 + -0.30593813 9.97985581717E-001 + -0.30318193 9.98030385784E-001 + -0.30042574 9.98072162035E-001 + -0.29766954 9.98111168910E-001 + -0.29491334 9.98147673665E-001 + -0.29215714 9.98181945830E-001 + -0.28940094 9.98214244709E-001 + -0.28664474 9.98244806311E-001 + -0.28388854 9.98273833390E-001 + -0.28113234 9.98301490416E-001 + -0.27837614 9.98327903749E-001 + -0.27561994 9.98353166159E-001 + -0.27286374 9.98377344232E-001 + -0.27010754 9.98400487016E-001 + -0.26735134 9.98422634420E-001 + -0.26459514 9.98443824229E-001 + -0.26183894 9.98464097078E-001 + -0.25908274 9.98483499128E-001 + -0.25632654 9.98502082613E-001 + -0.25357035 9.98519904657E-001 + -0.25081415 9.98537024932E-001 + -0.24805795 9.98553502746E-001 + -0.24530175 9.98569394130E-001 + -0.24254555 9.98584749359E-001 + -0.23978935 9.98599611203E-001 + -0.23703315 9.98614014050E-001 + -0.23427695 9.98627983924E-001 + -0.23152075 9.98641539262E-001 + -0.22876455 9.98654692268E-001 + -0.22600835 9.98667450465E-001 + -0.22325215 9.98675106782E-001 + -0.22049595 9.98691807846E-001 + -0.21773975 9.98703412776E-001 + -0.21498355 9.98714645936E-001 + -0.21222735 9.98725516722E-001 + -0.20947115 9.98736037666E-001 + -0.20671496 9.98746224013E-001 + -0.20395876 9.98756093164E-001 + -0.20120256 9.98765663891E-001 + -0.19844636 9.98774955423E-001 + -0.19569016 9.98783986507E-001 + -0.19293396 9.98792774532E-001 + -0.19017776 9.98801334801E-001 + -0.18742156 9.98809680009E-001 + -0.18466536 9.98817819951E-001 + -0.18190916 9.98825761474E-001 + -0.17915296 9.98833508650E-001 + -0.17639676 9.98841063147E-001 + -0.17364056 9.98848424738E-001 + -0.17088436 9.98855591911E-001 + -0.16812816 9.98862562506E-001 + -0.16537196 9.98869334342E-001 + -0.16261576 9.98875905771E-001 + -0.15985957 9.98882276136E-001 + -0.15710337 9.98888446094E-001 + -0.15434717 9.98894417798E-001 + -0.15159097 9.98900194929E-001 + -0.14883477 9.98905782592E-001 + -0.14607857 9.98911187094E-001 + -0.14332237 9.98916415621E-001 + -0.14056617 9.98921475854E-001 + -0.13780997 9.98926375551E-001 + -0.13505377 9.98931122131E-001 + -0.13229757 9.98935722275E-001 + -0.12954137 9.98940181598E-001 + -0.12678517 9.98944504383E-001 + -0.12402897 9.98948693416E-001 + -0.12127277 9.98952749895E-001 + -0.11851657 9.98956673466E-001 + -0.11576038 9.98960462316E-001 + -0.11300418 9.98964113380E-001 + -0.11024798 9.98967622591E-001 + -0.10749178 9.98970985167E-001 + -0.10473558 9.98974195956E-001 + -0.10197938 9.98977249750E-001 + -0.09922318 9.98980141606E-001 + -0.09646698 9.98982867114E-001 + -0.09371078 9.98985422631E-001 + -0.09095458 9.98987805436E-001 + -0.08819838 9.98990013825E-001 + -0.08544218 9.98992047122E-001 + -0.08268598 9.98993905620E-001 + -0.07992978 9.98995590446E-001 + -0.07717358 9.98997103368E-001 + -0.07441738 9.98998446546E-001 + -0.07166118 9.98999622247E-001 + -0.06890499 9.99000632538E-001 + -0.06614879 9.99001478970E-001 + -0.06339259 9.99002162277E-001 + -0.06063639 9.99002682093E-001 + -0.05788019 9.99003036720E-001 + -0.05512399 9.99003222935E-001 + -0.05236779 9.99003235869E-001 + -0.04961159 9.99003068952E-001 + -0.04685539 9.99002713959E-001 + -0.04409919 9.99002161336E-001 + -0.04134299 9.99001377857E-001 + -0.03858679 9.99000410231E-001 + -0.03583059 9.98999189579E-001 + -0.03307439 9.98997717768E-001 + -0.03031819 9.98995979999E-001 + -0.02756199 9.98993960960E-001 + -0.02480579 9.98991645292E-001 + -0.02204960 9.98989017832E-001 + -0.01929340 9.98986063777E-001 + -0.01653720 9.98982768757E-001 + -0.01378100 9.98979118818E-001 + -0.01102480 9.98975100300E-001 + -0.00826860 9.98970699597E-001 + -0.00551240 9.98965902790E-001 + -0.00275620 9.98960695162E-001 + 0.00000000 9.98955060572E-001 + 0.00275620 9.98948980720E-001 + 0.00551240 9.98942434285E-001 + 0.00826860 9.98935395961E-001 + 0.01102480 9.98927835399E-001 + 0.01378100 9.98919716072E-001 + 0.01653720 9.98910994073E-001 + 0.01929340 9.98901616877E-001 + 0.02204960 9.98891522033E-001 + 0.02480579 9.98880635898E-001 + 0.02756199 9.98868872261E-001 + 0.03031819 9.98856130983E-001 + 0.03307439 9.98842296545E-001 + 0.03583059 9.98827236464E-001 + 0.03858679 9.98810799505E-001 + 0.04134299 9.98792813518E-001 + 0.04409919 9.98773082701E-001 + 0.04685539 9.98751383964E-001 + 0.04961159 9.98727461926E-001 + 0.05236779 9.98701021843E-001 + 0.05512399 9.98671719434E-001 + 0.05788019 9.98639146043E-001 + 0.06063639 9.98602806744E-001 + 0.06339259 9.98562087656E-001 + 0.06614879 9.98516206449E-001 + 0.06890499 9.98464136121E-001 + 0.07166118 9.98404485007E-001 + 0.07441738 9.98335302546E-001 + 0.07717358 9.98253753540E-001 + 0.07992978 9.98155546583E-001 + 0.08268598 9.98033871149E-001 + 0.08544218 9.97877265438E-001 + 0.08819838 9.97664882894E-001 + 0.09095458 9.97354383572E-001 + 0.09371078 9.96843600494E-001 + 0.09646698 9.95795192094E-001 + 0.09922318 9.91590372678E-001 + 0.10197938 1.31179214827E-006 + 0.10473558 4.51462174815E-008 + 0.10749178 6.32534659709E-009 + 0.11024798 1.44416351364E-009 + 0.11300418 4.26251662637E-010 + 0.11576038 1.47557758721E-010 + 0.11851657 5.69143175477E-011 + 0.12127277 2.37112405216E-011 + 0.12402897 1.04502489267E-011 + 0.12678517 4.79903130477E-012 + 0.12954137 2.26896834727E-012 + 0.13229757 1.09311290004E-012 + 0.13505377 5.31388255144E-013 + 0.13780997 2.57984724633E-013 + 0.14056617 1.23577996594E-013 + 0.14332237 5.74755708091E-014 + 0.14607857 2.53402719978E-014 + 0.14883477 1.01646684663E-014 + 0.15159097 3.41000694698E-015 + 0.15434717 7.58314624193E-016 + 0.15710337 2.64445658253E-017 + 0.15985957 1.21407391028E-016 + 0.16261576 5.09033604006E-016 + 0.16537196 9.40674525385E-016 + 0.16812816 1.31169166067E-015 + 0.17088436 1.58809023200E-015 + 0.17364056 1.76869245542E-015 + 0.17639676 1.86592803627E-015 + 0.17915296 1.89637089442E-015 + 0.18190916 1.87634120928E-015 + 0.18466536 1.82009621541E-015 + 0.18742156 1.73930223772E-015 + 0.19017776 1.64310354042E-015 + 0.19293396 1.53843608938E-015 + 0.19569016 1.43041120474E-015 + 0.19844636 1.32268727312E-015 + 0.20120256 1.21779587824E-015 + 0.20395876 1.11741279929E-015 + 0.20671496 1.02257564340E-015 + 0.20947115 9.33854554413E-016 + 0.21222735 8.51483778454E-016 + 0.21498355 7.75461628945E-016 + 0.21773975 7.05625499424E-016 + 0.22049595 6.41707487195E-016 + 0.22325215 5.83375135203E-016 + 0.22600835 5.30260866390E-016 + 0.22876455 4.81982901927E-016 + 0.23152075 4.38159818621E-016 + 0.23427695 3.98420394944E-016 + 0.23703315 3.62409998717E-016 + 0.23978935 3.29794462303E-016 + 0.24254555 3.00262155021E-016 + 0.24530175 2.73524782206E-016 + 0.24805795 2.49317303357E-016 + 0.25081415 2.27397258363E-016 + 0.25357035 2.07543712818E-016 + 0.25632654 1.89555975111E-016 + 0.25908274 1.73252194355E-016 + 0.26183894 1.58467915895E-016 + 0.26459514 1.45054647203E-016 + 0.26735134 1.32878469462E-016 + 0.27010754 1.21818717315E-016 + 0.27286374 1.11766740090E-016 + 0.27561994 1.02624751193E-016 + 0.27837614 9.43047678102E-017 + 0.28113234 8.67276398624E-017 + 0.28388854 7.98221650863E-017 + 0.28664474 7.35242857899E-017 + 0.28940094 6.77763620595E-017 + 0.29215714 6.25265158261E-017 + 0.29491334 5.77280401026E-017 + 0.29766954 5.33388677944E-017 + 0.30042574 4.93210947011E-017 + 0.30318193 4.56405516220E-017 + 0.30593813 4.22664208112E-017 + 0.30869433 3.91708923890E-017 + 0.31145053 3.63288566746E-017 + 0.31420673 3.37176287588E-017 + 0.31696293 3.13167019741E-017 + 0.31971913 2.91075272391E-017 + 0.32247533 2.70733155489E-017 + 0.32523153 2.51988611609E-017 + 0.32798773 2.34703832744E-017 + 0.33074393 2.18753842311E-017 + 0.33350013 2.04025224728E-017 + 0.33625633 1.90414986791E-017 + 0.33901253 1.77829536748E-017 + 0.34176873 1.66183768522E-017 + 0.34452493 1.55400239857E-017 + 0.34728113 1.45408434385E-017 + 0.35003732 1.36144098712E-017 + 0.35279352 1.27548646570E-017 + 0.35554972 1.19568622949E-017 + 0.35830592 1.12155221906E-017 + 0.36106212 1.05263852421E-017 + 0.36381832 9.88537472722E-018 + 0.36657452 9.28876104694E-018 + 0.36933072 8.73312992406E-018 + 0.37208692 8.21535370171E-018 + 0.37484312 7.73256542323E-018 + 0.37759932 7.28213540934E-018 + 0.38035552 6.86165007904E-018 + 0.38311172 6.46889278710E-018 + 0.38586792 6.10182647542E-018 + 0.38862412 5.75857795671E-018 + 0.39138032 5.43742366792E-018 + 0.39413651 5.13677674806E-018 + 0.39689271 4.85517530981E-018 + 0.39964891 4.59127178816E-018 + 0.40240511 4.34382326108E-018 + 0.40516131 4.11168264817E-018 + 0.40791751 3.89379070271E-018 + 0.41067371 3.68916872103E-018 + 0.41342991 3.49691190118E-018 + 0.41618611 3.31618328908E-018 + 0.41894231 3.14620825715E-018 + 0.42169851 2.98626946547E-018 + 0.42445471 2.83570226050E-018 + 0.42721091 2.69389047104E-018 + 0.42996711 2.56026256485E-018 + 0.43272331 2.43428813286E-018 + 0.43547951 2.31547467131E-018 + 0.43823571 2.20336463485E-018 + 0.44099190 2.09753273629E-018 + 0.44374810 1.99758347086E-018 + 0.44650430 1.90314884524E-018 + 0.44926050 1.81388629307E-018 + 0.45201670 1.72947676074E-018 + 0.45477290 1.64962294852E-018 + 0.45752910 1.57404769354E-018 + 0.46028530 1.50249248246E-018 + 0.46304150 1.43471608267E-018 + 0.46579770 1.37049328186E-018 + 0.46855390 1.30961372690E-018 + 0.47131010 1.25188085353E-018 + 0.47406630 1.19711089938E-018 + 0.47682250 1.14513199323E-018 + 0.47957870 1.09578331433E-018 + 0.48233490 1.04891431598E-018 + 0.48509110 1.00438400800E-018 + 0.48784729 9.62060293497E-019 + 0.49060349 9.21819355319E-019 + 0.49335969 8.83545088355E-019 + 0.49611589 8.47128573937E-019 + 0.49887209 8.12467593005E-019 + 0.50162829 7.79466174985E-019 + 0.50438449 7.48034179551E-019 + 0.50714069 7.18086908698E-019 + 0.50989689 6.89544746786E-019 + 0.51265309 6.62332826367E-019 + 0.51540929 6.36380717832E-019 + 0.51816549 6.11622141030E-019 + 0.52092169 5.87994697218E-019 + 0.52367789 5.65439619776E-019 + 0.52643409 5.43901542287E-019 + 0.52919029 5.23328282681E-019 + 0.53194649 5.03670642246E-019 + 0.53470268 4.84882218401E-019 + 0.53745888 4.66919230228E-019 + 0.54021508 4.49740355814E-019 + 0.54297128 4.33306580551E-019 + 0.54572748 4.17581055607E-019 + 0.54848368 4.02528965809E-019 + 0.55123988 3.88117406299E-019 diff --git a/tests/QS/regtest-negf-2/H28_k.inp b/tests/QS/regtest-negf-2/H28_k.inp new file mode 100644 index 0000000000..c6764e129d --- /dev/null +++ b/tests/QS/regtest-negf-2/H28_k.inp @@ -0,0 +1,427 @@ +@SET Project H28_k +@SET V_bias_volt 0.0 +@SET Temperature 10.0 +# The following two parameters are computed automatically during the NEGF run. +# You can use keywords 'FERMI_LEVEL' to give this value and skip calculation +# or 'FERMI_LEVEL'+'REFINE_FERMI_LEVEL' to compute starting from this value. +# If 'FERMI_LEVEL' is not given, it is calculated automatically. +# 'V_SHIFT' is used to give initial value. +@SET Fermi_level -0.22306350 #-0.23822635 #-0.22306350 # +@SET V_shift 0.00011009 # 0.00010984 # 0.00011009 # +@SET basis_set_path BASIS_SET +! BASIS_MOLOPT BASIS_SET +@SET potential_path GTH_POTENTIALS +@SET xc_functional pade +!PBE pade +@SET cutoff 300 +@SET added_mos -1 +@SET max_scf 100 +@SET eps_scf 1e-9 +@SET lx 6.0 +@SET ly 6.0 +!--------------------------------------------------------------------------------------------------! +&GLOBAL + EXTENDED_FFT_LENGTHS .true. + PREFERRED_DIAG_LIBRARY SL + PRINT_LEVEL LOW #SILENT #LOW #MEDIUM #HIGH #DEBUG + PROJECT ${Project} + RUN_TYPE NEGF +&END GLOBAL + +&MULTIPLE_FORCE_EVALS + # Order in which the input file parser internally stores different force environments. + # + # 'FORCE_EVAL_ORDER 1 2 3' means that the 1st force environment -- + # which holds the entire system -- will have the internal index '0', + # while the 2nd and 3rd force environments -- which correspond to the + # 1st and 2nd semi-infinite electrodes respectively -- will have + # the internal indices '1' and '2'. Note that internal indices start from 0. + # + FORCE_EVAL_ORDER 1 2 3 + # Different force environments contain non-identical molecular structures. + # By default, the input parser ignores 'subsys' sections from all but the force + # environment with the internal index '0'. + MULTIPLE_SUBSYS .true. +&END MULTIPLE_FORCE_EVALS + +&NEGF + # Integration lower bound (in Hartree) + ENERGY_LBOUND -2.0 + !clenshaw-curtis simpson + # Maximum error in each matrix element of the density matrix + EPS_DENSITY 1e-5 + EPS_GREEN 1e-5 + EPS_SCF 1e-5 + ETA 1e-5 + # 'simpson' is slower, but works without FFTW3 library + # clenshaw-curtis is faster, but requires FFTW3 library + INTEGRATION_METHOD simpson + MAX_SCF 100 + # Number of parallel processes per energy point. + # 'NPROC_POINT 1' means that if you run this job using 8 MPI processes, + # than Green's functions at up to 8 (8 / NPROC_POINT) energy points + # will be computed simultaneously. + # + NPROC_POINT 1 + # Boundary conditions define solution of the Poisson equation up to + # an additive constant, which affects Hamiltonian matrix elements within + # the NEGF procedure. The following parameters control evaluation of + # the correct shift in Hartree potential: + # * V_SHIFT -- initial guess for the shift + # * V_SHIFT_MAX_ITERS -- maximal number of iterations + V_SHIFT ${V_shift} + V_SHIFT_MAX_ITERS 100 + &CONTACT + # REFINE_FERMI_LEVEL + ELECTRIC_POTENTIAL [eV] ${V_bias_volt}/2 + FERMI_LEVEL ${Fermi_level} + # the force environment with the internal index '1' should be used + # to compute 'bulk' properties of this (1st) semi-infinite electrode. + FORCE_EVAL_SECTION 1 + TEMPERATURE [K] ${Temperature} + &BULK_REGION + # This section is used to map matrix elements between the primary + # (with index 0) and the 'electrode' (with index 1) force environments. + # + # Atomic indices (and/or names of molecular fragments) are relative + # to the primary force environment. + MOLNAME L1 L2 + !LIST 1..8 + &CELL + MOLNAME L1 + !LIST 5..8 + &END CELL + &CELL + MOLNAME L2 + !LIST 1..4 + &END CELL + &END BULK_REGION + &SCREENING_REGION + MOLNAME L0 + !LIST 9..12 + &END SCREENING_REGION + &END CONTACT + &CONTACT + # REFINE_FERMI_LEVEL + ELECTRIC_POTENTIAL [eV] -${V_bias_volt}/2 + FERMI_LEVEL ${Fermi_level} + # the second semi-infinite electrode + FORCE_EVAL_SECTION 2 + TEMPERATURE [K] ${Temperature} + &BULK_REGION + MOLNAME R1 R2 + &CELL + MOLNAME R1 + &END CELL + &CELL + MOLNAME R2 + &END CELL + &END BULK_REGION + &SCREENING_REGION + MOLNAME R0 + &END SCREENING_REGION + &END CONTACT + # Density mixing is not needed in zero-bias case, as NEGF self-consistent + # procedure will converge in one iteration. However, when an external bias + # is applied, a density mixing scheme in inverse space is typically + # much stable then the default direct mixing of new and old density matrices. + &MIXING + ALPHA 0.2 + METHOD broyden_mixing + NBUFFER 8 + &END MIXING + &PRINT + &DOS + FILENAME device + FROM_ENERGY [eV] -15 + N_GRIDPOINTS 401 + TILL_ENERGY [eV] 15 + &END DOS + &PROGRAM_RUN_INFO low + PRINT_LEVEL debug + ! high debug + &END PROGRAM_RUN_INFO + &TRANSMISSION + FILENAME transm + FROM_ENERGY [eV] -15 + N_GRIDPOINTS 401 + TILL_ENERGY [eV] 15 + &END TRANSMISSION + &END PRINT + &SCATTERING_REGION + MOLNAME S + !LIST 13..16 + &END SCATTERING_REGION + #DISABLE_CACHE +&END NEGF + +# *** Primary force environment *** +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME ${basis_set_path} + POTENTIAL_FILE_NAME ${potential_path} + &MGRID + CUTOFF ${cutoff} + &END MGRID + &POISSON + PERIODIC xyz + &END POISSON + &SCF + !atomic restart + ADDED_MOS ${added_mos} + EPS_SCF ${eps_scf} + MAX_SCF ${max_scf} + SCF_GUESS restart + &MIXING + ALPHA 0.3 + METHOD broyden_mixing + NBUFFER 8 + &END MIXING + &PRINT + &RESTART + FILENAME RESTART_0 + &END RESTART + #&PROGRAM_RUN_INFO silent + #&END + #&DETAILED_ENERGY silent + #&END + &END PRINT + &SMEAR + ELECTRONIC_TEMPERATURE [K] ${Temperature} + METHOD fermi_dirac + &END SMEAR + &END SCF + &XC + &XC_FUNCTIONAL ${xc_functional} + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC ${lx} ${ly} 42. + PERIODIC xyz + &END CELL + &COORD + # H 0.00000000 0.00000000 10.50000000 L1 + # H 0.00000000 0.00000000 9.00000000 L1 + # H 0.00000000 0.00000000 7.50000000 L1 + # H 0.00000000 0.00000000 6.00000000 L1 + # H 0.00000000 0.00000000 4.50000000 L2 + # H 0.00000000 0.00000000 3.00000000 L2 + # H 0.00000000 0.00000000 1.50000000 L2 + # H 0.00000000 0.00000000 0.00000000 L2 + # H 0.00000000 0.00000000 16.50000000 L0 + # H 0.00000000 0.00000000 15.00000000 L0 + # H 0.00000000 0.00000000 13.50000000 L0 + # H 0.00000000 0.00000000 12.00000000 L0 + H 0.00000000 0.00000000 0.00000000 L2 + H 0.00000000 0.00000000 1.50000000 L2 + H 0.00000000 0.00000000 3.00000000 L2 + H 0.00000000 0.00000000 4.50000000 L2 + H 0.00000000 0.00000000 6.00000000 L1 + H 0.00000000 0.00000000 7.50000000 L1 + H 0.00000000 0.00000000 9.00000000 L1 + H 0.00000000 0.00000000 10.50000000 L1 + H 0.00000000 0.00000000 12.00000000 L0 + H 0.00000000 0.00000000 13.50000000 L0 + H 0.00000000 0.00000000 15.00000000 L0 + H 0.00000000 0.00000000 16.50000000 L0 + H 0.00000000 0.00000000 18.00000000 S + H 0.00000000 0.00000000 19.50000000 S + H 0.00000000 0.00000000 21.00000000 S + H 0.00000000 0.00000000 22.50000000 S + H 0.00000000 0.00000000 24.00000000 R0 + H 0.00000000 0.00000000 25.50000000 R0 + H 0.00000000 0.00000000 27.00000000 R0 + H 0.00000000 0.00000000 28.50000000 R0 + H 0.00000000 0.00000000 30.00000000 R1 + H 0.00000000 0.00000000 31.50000000 R1 + H 0.00000000 0.00000000 33.00000000 R1 + H 0.00000000 0.00000000 34.50000000 R1 + H 0.00000000 0.00000000 36.00000000 R2 + H 0.00000000 0.00000000 37.50000000 R2 + H 0.00000000 0.00000000 39.00000000 R2 + H 0.00000000 0.00000000 40.50000000 R2 + # H 0.00000000 0.00000000 42.00000000 R3 + # H 0.00000000 0.00000000 43.50000000 R3 + # H 0.00000000 0.00000000 45.00000000 R3 + # H 0.00000000 0.00000000 46.50000000 R3 + # H 0.00000000 0.00000000 48.00000000 R4 + # H 0.00000000 0.00000000 49.50000000 R4 + # H 0.00000000 0.00000000 51.00000000 R4 + # H 0.00000000 0.00000000 52.50000000 R4 + &END COORD + &KIND H + BASIS_SET SZV-GTH-PADE + ! SZV-GTH-PADE DZV-ALL-PADE DZVP-ALL-PADE SZV-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + !GTH-PADE-q1 GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL + +# *** The 1st (left) semi-infinite electrode *** +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME ${basis_set_path} + POTENTIAL_FILE_NAME ${potential_path} + &KPOINTS + SCHEME MONKHORST-PACK 1 1 14 + &END KPOINTS + &MGRID + CUTOFF ${cutoff} + &END MGRID + &POISSON + PERIODIC xyz + &END POISSON + &SCF + !atomic restart + ADDED_MOS ${added_mos} + EPS_SCF ${eps_scf} + MAX_SCF ${max_scf} + SCF_GUESS restart + &MIXING + ALPHA 0.2 + METHOD broyden_mixing + NBUFFER 8 + &END MIXING + &PRINT + &RESTART + FILENAME RESTART_1 + &END RESTART + &END PRINT + &SMEAR + ELECTRONIC_TEMPERATURE [K] ${Temperature} + METHOD fermi_dirac + &END SMEAR + &END SCF + &XC + &XC_FUNCTIONAL ${xc_functional} + &END XC_FUNCTIONAL + &END XC + # &PRINT + # &S_CSR_WRITE + # REAL_SPACE + # FILENAME=L + # &END + # &KS_CSR_WRITE + # REAL_SPACE + # &END + # &END PRINT + &END DFT + &SUBSYS + # a primary unit cell of the 1st semi-infinite electrode + &CELL + ABC ${lx} ${ly} 6.00000000 + PERIODIC xyz + &END CELL + &COORD + # H 0.00000000 0.00000000 10.50000000 L1 + # H 0.00000000 0.00000000 9.00000000 L1 + # H 0.00000000 0.00000000 7.50000000 L1 + # H 0.00000000 0.00000000 6.00000000 L1 + H 0.00000000 0.00000000 6.00000000 L1 + H 0.00000000 0.00000000 7.50000000 L1 + H 0.00000000 0.00000000 9.00000000 L1 + H 0.00000000 0.00000000 10.50000000 L1 + &END COORD + &KIND H + BASIS_SET SZV-GTH-PADE + ! SZV-GTH-PADE DZV-ALL-PADE DZVP-ALL-PADE SZV-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + !GTH-PADE-q1 GTH-PBE-q1 + &END KIND + &TOPOLOGY + ! COORD_FILE_FORMAT XYZ + ! COORD_FILE_NAME ${COORD_FILE_NAME}.xyz + ! &CENTER_COORDINATES + ! CENTER_POINT 0. 0. 0. + ! &END + &END TOPOLOGY + &END SUBSYS +&END FORCE_EVAL + +# *** The 2nd (right) semi-infinite electrode *** +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME ${basis_set_path} + POTENTIAL_FILE_NAME ${potential_path} + &KPOINTS + SCHEME MONKHORST-PACK 1 1 14 + &END KPOINTS + &MGRID + CUTOFF ${cutoff} + &END MGRID + &POISSON + PERIODIC xyz + &END POISSON + &SCF + !atomic + ADDED_MOS ${added_mos} + EPS_SCF ${eps_scf} + MAX_SCF ${max_scf} + SCF_GUESS restart + &MIXING + ALPHA 0.2 + METHOD broyden_mixing + NBUFFER 8 + &END MIXING + &PRINT + &RESTART + FILENAME RESTART_2 + &END RESTART + &END PRINT + &SMEAR + ELECTRONIC_TEMPERATURE [K] ${Temperature} + METHOD fermi_dirac + &END SMEAR + &END SCF + &XC + &XC_FUNCTIONAL ${xc_functional} + &END XC_FUNCTIONAL + &END XC + # &PRINT + # &S_CSR_WRITE + # REAL_SPACE + # FILENAME=R + # &END + # &KS_CSR_WRITE + # REAL_SPACE + # &END + # &END PRINT + &END DFT + &SUBSYS + # a primary unit cell of the 2st semi-infinite electrode + &CELL + ABC ${lx} ${ly} 6.00000000 + PERIODIC xyz + &END CELL + &COORD + # H 0.00000000 0.00000000 34.50000000 R1 + # H 0.00000000 0.00000000 33.00000000 R1 + # H 0.00000000 0.00000000 31.50000000 R1 + # H 0.00000000 0.00000000 30.00000000 R1 + H 0.00000000 0.00000000 30.00000000 R1 + H 0.00000000 0.00000000 31.50000000 R1 + H 0.00000000 0.00000000 33.00000000 R1 + H 0.00000000 0.00000000 34.50000000 R1 + # H 0.00000000 0.00000000 36.00000000 R2 + # H 0.00000000 0.00000000 37.50000000 R2 + # H 0.00000000 0.00000000 39.00000000 R2 + # H 0.00000000 0.00000000 40.50000000 R2 + # H 0.00000000 0.00000000 42.00000000 R3 + # H 0.00000000 0.00000000 43.50000000 R3 + # H 0.00000000 0.00000000 45.00000000 R3 + # H 0.00000000 0.00000000 46.50000000 R3 + &END COORD + &KIND H + BASIS_SET SZV-GTH-PADE + ! SZV-GTH-PADE DZV-ALL-PADE DZVP-ALL-PADE SZV-MOLOPT-GTH + POTENTIAL GTH-PADE-q1 + !GTH-PADE-q1 GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-negf/TEST_FILES.toml b/tests/QS/regtest-negf-2/TEST_FILES.toml similarity index 87% rename from tests/QS/regtest-negf/TEST_FILES.toml rename to tests/QS/regtest-negf-2/TEST_FILES.toml index e5e34b2af8..7598513fc1 100644 --- a/tests/QS/regtest-negf/TEST_FILES.toml +++ b/tests/QS/regtest-negf-2/TEST_FILES.toml @@ -4,4 +4,4 @@ # 1 compares the last total energy in the file # for details see cp2k/tools/do_regtest # -"li_chain.inp" = [] +"H28_k.inp" = [] diff --git a/tests/QS/regtest-negf-fft/li_chain_kp.inp b/tests/QS/regtest-negf-fft/li_chain_kp.inp deleted file mode 100644 index bf240af354..0000000000 --- a/tests/QS/regtest-negf-fft/li_chain_kp.inp +++ /dev/null @@ -1,320 +0,0 @@ -@SET project li_chain_kp -@SET v_bias_volt 0.0 -@SET temperature 293.0 -# The following two parameters are computed automatically during the NEGF run. -# You can uncomment keywords 'FERMI_LEVEL' and 'V_SHIFT' to skip these stages. -@SET fermi_level -0.08987575 -@SET v_shift 0.00280782 -@SET basis_set_path BASIS_MOLOPT -@SET potential_path GTH_POTENTIALS -@SET basis_set_li SZV-MOLOPT-SR-GTH -@SET potential_li GTH-PADE-q3 -@SET xc_functional pade -@SET cutoff 100 -@SET added_mos 100 -@SET max_scf 50 -@SET eps_scf 1e-4 -@SET lx 5.0 -@SET ly 5.0 -&GLOBAL - EXTENDED_FFT_LENGTHS .true. - PRINT_LEVEL low - PROJECT ${project} - RUN_TYPE negf -&END GLOBAL - -&MULTIPLE_FORCE_EVALS - # Order in which the input file parser internally stores different force environments. - # - # 'FORCE_EVAL_ORDER 1 2 3' means that the 1st force environment -- - # which holds the entire system -- will have the internal index '0', - # while the 2nd and 3rd force environments -- which correspond to the - # 1st and 2nd semi-infinite electrodes respectively -- will have - # the internal indices '1' and '2'. Note that internal indices start from 0. - # - FORCE_EVAL_ORDER 1 2 3 - # Different force environments contain non-identical molecular structures. - # By default, the input parser ignores 'subsys' sections from all but the force - # environment with the internal index '0'. - MULTIPLE_SUBSYS .true. -&END MULTIPLE_FORCE_EVALS - -&NEGF - # Integration lower bound (in Hartree) - ENERGY_LBOUND -2.0 - # Maximum error in each matrix element of the density matrix - EPS_DENSITY 1e-5 - # faster, but requires FFTW3 library - INTEGRATION_METHOD clenshaw-curtis - MAX_SCF 16 - # Number of parallel processes per energy point. - # 'NPROC_POINT 1' means that if you run this job using 8 MPI processes, - # than Green's functions at up to 8 (8 / NPROC_POINT) energy points - # will be computed simultaneously. - # - NPROC_POINT 1 - # Boundary conditions define solution of the Poisson equation up to - # an additive constant, which affects Hamiltonian matrix elements within - # the NEGF procedure. The following parameters control evaluation of - # the correct shift in Hartree potential: - # * V_SHIFT -- initial guess for the shift - # * V_SHIFT_MAX_ITERS -- maximal number of iterations - #V_SHIFT ${v_shift} - V_SHIFT_MAX_ITERS 20 - &CONTACT - # Uncomment the next line to skip refining the Fermi level for this contact - #FERMI_LEVEL ${fermi_level} - ELECTRIC_POTENTIAL [eV] ${v_bias_volt}/2 - # the force environment with the internal index '1' should be used - # to compute 'bulk' properties of this (1st) semi-infinite electrode. - FORCE_EVAL_SECTION 1 - TEMPERATURE [K] ${temperature} - &BULK_REGION - # This section is used to map matrix elements between the primary - # (with index 0) and the 'bulk' (with index 1) force environments. - # - # Atomic indices (and/or names of molecular fragments) are relative - # to the primary force environment. - MOLNAME L1 L2 - &END BULK_REGION - &SCREENING_REGION - MOLNAME L0 - &END SCREENING_REGION - &END CONTACT - &CONTACT - #FERMI_LEVEL ${fermi_level} - ELECTRIC_POTENTIAL [eV] -${v_bias_volt}/2 - # the second semi-infinite electrode - FORCE_EVAL_SECTION 2 - TEMPERATURE [K] ${temperature} - &BULK_REGION - MOLNAME R1 R2 - &END BULK_REGION - &SCREENING_REGION - MOLNAME R0 - &END SCREENING_REGION - &END CONTACT - # Density mixing is not needed in zero-bias case, as NEGF self-consistent - # procedure will converge in one iteration. However, when an external bias - # is applied, a density mixing scheme in inverse space is typically - # much stable then the default direct mixing of new and old density matrices. - &MIXING - ALPHA 0.2 - METHOD broyden_mixing - NBUFFER 8 - &END MIXING - &PRINT - &DOS - FILENAME device - FROM_ENERGY -0.2 - N_GRIDPOINTS 301 - TILL_ENERGY 0.1 - &END DOS - &TRANSMISSION - FILENAME transm - FROM_ENERGY -0.2 - N_GRIDPOINTS 301 - TILL_ENERGY 0.1 - &END TRANSMISSION - &END PRINT - &SCATTERING_REGION - MOLNAME S - &END SCATTERING_REGION -&END NEGF - -# *** Primary force environment *** -&FORCE_EVAL - METHOD Quickstep - &DFT - BASIS_SET_FILE_NAME ${basis_set_path} - POTENTIAL_FILE_NAME ${potential_path} - &MGRID - CUTOFF ${cutoff} - &END MGRID - &POISSON - PERIODIC xyz - &END POISSON - &SCF - ADDED_MOS ${added_mos} - EPS_SCF ${eps_scf} - MAX_SCF ${max_scf} - SCF_GUESS atomic - &MIXING - ALPHA 0.3 - METHOD broyden_mixing - NBUFFER 8 - &END MIXING - &PRINT - &RESTART - FILENAME RESTART_0 - &END RESTART - &END PRINT - &SMEAR - ELECTRONIC_TEMPERATURE [K] ${temperature} - METHOD fermi_dirac - &END SMEAR - &END SCF - &XC - &XC_FUNCTIONAL ${xc_functional} - &END XC_FUNCTIONAL - &END XC - &END DFT - &SUBSYS - &CELL - ABC ${lx} ${ly} 83.720 - PERIODIC xyz - &END CELL - &COORD - Li 0.00000000 0.00000000 0.00000000 L2 - Li 0.00000000 0.00000000 2.99000000 L2 - Li 0.00000000 0.00000000 5.98000000 L2 - Li 0.00000000 0.00000000 8.97000000 L2 - Li 0.00000000 0.00000000 11.96000000 L1 - Li 0.00000000 0.00000000 14.95000000 L1 - Li 0.00000000 0.00000000 17.94000000 L1 - Li 0.00000000 0.00000000 20.93000000 L1 - Li 0.00000000 0.00000000 23.92000000 L0 - Li 0.00000000 0.00000000 26.91000000 L0 - Li 0.00000000 0.00000000 29.90000000 L0 - Li 0.00000000 0.00000000 32.89000000 L0 - Li 0.00000000 0.00000000 35.88000000 S - Li 0.00000000 0.00000000 38.87000000 S - Li 0.00000000 0.00000000 41.86000000 S - Li 0.00000000 0.00000000 44.85000000 S - Li 0.00000000 0.00000000 47.84000000 R0 - Li 0.00000000 0.00000000 50.83000000 R0 - Li 0.00000000 0.00000000 53.82000000 R0 - Li 0.00000000 0.00000000 56.81000000 R0 - Li 0.00000000 0.00000000 59.80000000 R1 - Li 0.00000000 0.00000000 62.79000000 R1 - Li 0.00000000 0.00000000 65.78000000 R1 - Li 0.00000000 0.00000000 68.77000000 R1 - Li 0.00000000 0.00000000 71.76000000 R2 - Li 0.00000000 0.00000000 74.75000000 R2 - Li 0.00000000 0.00000000 77.74000000 R2 - Li 0.00000000 0.00000000 80.73000000 R2 - &END COORD - &KIND Li - BASIS_SET ${basis_set_li} - POTENTIAL ${potential_li} - &END KIND - &END SUBSYS -&END FORCE_EVAL - -# *** The 1st (left) semi-infinite electrode *** -&FORCE_EVAL - METHOD Quickstep - &DFT - BASIS_SET_FILE_NAME ${basis_set_path} - POTENTIAL_FILE_NAME ${potential_path} - &KPOINTS - SCHEME MONKHORST-PACK 4 4 8 - &END KPOINTS - &MGRID - CUTOFF ${cutoff} - &END MGRID - &POISSON - PERIODIC xyz - &END POISSON - &SCF - ADDED_MOS ${added_mos} - EPS_SCF ${eps_scf} - MAX_SCF ${max_scf} - SCF_GUESS atomic - &MIXING - ALPHA 0.3 - METHOD broyden_mixing - NBUFFER 8 - &END MIXING - &PRINT - &RESTART - FILENAME RESTART_1 - &END RESTART - &END PRINT - &SMEAR - ELECTRONIC_TEMPERATURE [K] ${temperature} - METHOD fermi_dirac - &END SMEAR - &END SCF - &XC - &XC_FUNCTIONAL ${xc_functional} - &END XC_FUNCTIONAL - &END XC - &END DFT - &SUBSYS - # a primary unit cell of the 1st semi-infinite electrode - &CELL - ABC ${lx} ${ly} 11.960 - PERIODIC xyz - &END CELL - &COORD - Li 0.00000000 0.00000000 11.96000000 L1 - Li 0.00000000 0.00000000 14.95000000 L1 - Li 0.00000000 0.00000000 17.94000000 L1 - Li 0.00000000 0.00000000 20.93000000 L1 - &END COORD - &KIND Li - BASIS_SET ${basis_set_li} - POTENTIAL ${potential_li} - &END KIND - &END SUBSYS -&END FORCE_EVAL - -# *** The 2nd (right) semi-infinite electrode *** -&FORCE_EVAL - METHOD Quickstep - &DFT - BASIS_SET_FILE_NAME ${basis_set_path} - POTENTIAL_FILE_NAME ${potential_path} - &KPOINTS - SCHEME MONKHORST-PACK 4 4 8 - &END KPOINTS - &MGRID - CUTOFF ${cutoff} - &END MGRID - &POISSON - PERIODIC xyz - &END POISSON - &SCF - ADDED_MOS ${added_mos} - EPS_SCF ${eps_scf} - MAX_SCF ${max_scf} - SCF_GUESS atomic - &MIXING - ALPHA 0.3 - METHOD broyden_mixing - NBUFFER 8 - &END MIXING - &PRINT - &RESTART - FILENAME RESTART_2 - &END RESTART - &END PRINT - &SMEAR - ELECTRONIC_TEMPERATURE [K] ${temperature} - METHOD fermi_dirac - &END SMEAR - &END SCF - &XC - &XC_FUNCTIONAL ${xc_functional} - &END XC_FUNCTIONAL - &END XC - &END DFT - &SUBSYS - # a primary unit cell of the 2nd semi-infinite electrode - &CELL - ABC ${lx} ${ly} 11.960 - PERIODIC xyz - &END CELL - &COORD - Li 0.00000000 0.00000000 59.80000000 R1 - Li 0.00000000 0.00000000 62.79000000 R1 - Li 0.00000000 0.00000000 65.78000000 R1 - Li 0.00000000 0.00000000 68.77000000 R1 - &END COORD - &KIND Li - BASIS_SET ${basis_set_li} - POTENTIAL ${potential_li} - &END KIND - &END SUBSYS -&END FORCE_EVAL diff --git a/tests/QS/regtest-negf/li_chain.inp b/tests/QS/regtest-negf/li_chain.inp deleted file mode 100644 index 5730fdba10..0000000000 --- a/tests/QS/regtest-negf/li_chain.inp +++ /dev/null @@ -1,199 +0,0 @@ -@SET project li_chain -@SET v_bias_volt 0.0 -@SET temperature 293.0 -# The following two parameters are computed automatically during the NEGF run. -# You can uncomment keywords 'FERMI_LEVEL' and 'V_SHIFT' to skip these stages. -@SET fermi_level -0.08987575 -@SET v_shift 0.00280782 -@SET basis_set_path BASIS_MOLOPT -@SET potential_path GTH_POTENTIALS -@SET basis_set_li SZV-MOLOPT-SR-GTH -@SET potential_li GTH-PADE-q3 -@SET xc_functional pade -@SET cutoff 80 -@SET added_mos 100 -@SET max_scf 50 -@SET eps_scf 1e-4 -@SET lx 5.0 -@SET ly 5.0 -&GLOBAL - EXTENDED_FFT_LENGTHS .true. - PRINT_LEVEL low - PROJECT ${project} - RUN_TYPE negf -&END GLOBAL - -&NEGF - # Integration lower bound (in Hartree) - ENERGY_LBOUND -2.0 - # Maximum error in each matrix element of the density matrix - EPS_DENSITY 1e-5 - # slower, but works without FFTW3 library - INTEGRATION_METHOD simpson - MAX_SCF 16 - # Number of parallel processes per energy point. - # 'NPROC_POINT 1' means that if you run this job using 8 MPI processes, - # than Green's functions at up to 8 (8 / NPROC_POINT) energy points - # will be computed simultaneously. - # - NPROC_POINT 1 - # Boundary conditions define solution of the Poisson equation up to - # an additive constant, which affects Hamiltonian matrix elements within - # the NEGF procedure. The following parameters control evaluation of - # the correct shift in Hartree potential: - # * V_SHIFT -- initial guess for the shift - # * V_SHIFT_MAX_ITERS -- maximal number of iterations - #V_SHIFT ${v_shift} - V_SHIFT_MAX_ITERS 20 - &CONTACT - ELECTRIC_POTENTIAL [eV] ${v_bias_volt}/2 - FERMI_LEVEL ${fermi_level} - TEMPERATURE [K] ${temperature} - &BULK_REGION - # Atomic indices (and/or names of molecular fragments) that belong to the bulk contact region. - MOLNAME L1 L2 - # List of atoms that belong to the primary and secondary bulk unit cells - # of the 1st contact. Primary and secondary unit cells can be defined in any order. - # They should be adjusted to each other and should not overlap. - # - # As matrix blocks should correspond to ones for the bulk contact, - # in actual calculation you may want to use a longer chain, e.g. - # L1 L2 L3 L4 L5 L6 . - # cell1 cell2 - # Alternatively, instead of the below CELL sections, a separate bulk FORCE_EVAL section - # for the contact can be set up and the keyword FORCE_EVAL_SECTION should be set accordingly - # (see the test file regtest-negf-fft/li_chain_kp.inp). - &CELL - MOLNAME L1 - &END CELL - &CELL - MOLNAME L2 - &END CELL - &END BULK_REGION - &SCREENING_REGION - MOLNAME L0 - &END SCREENING_REGION - &END CONTACT - &CONTACT - ELECTRIC_POTENTIAL [eV] -${v_bias_volt}/2 - FERMI_LEVEL ${fermi_level} - TEMPERATURE [K] ${temperature} - # the second semi-infinite electrode - &BULK_REGION - MOLNAME R1 R2 - &CELL - MOLNAME R1 - &END CELL - &CELL - MOLNAME R2 - &END CELL - &END BULK_REGION - &SCREENING_REGION - MOLNAME R0 - &END SCREENING_REGION - &END CONTACT - # Density mixing is not needed in zero-bias case, as NEGF self-consistent - # procedure will converge in one iteration. However, when an external bias - # is applied, a density mixing scheme in inverse space is typically - # much stable then the default direct mixing of new and old density matrices. - &MIXING - ALPHA 0.2 - METHOD broyden_mixing - NBUFFER 8 - &END MIXING - &PRINT - &DOS - FILENAME device - FROM_ENERGY -0.2 - N_GRIDPOINTS 301 - TILL_ENERGY 0.1 - &END DOS - &TRANSMISSION - FILENAME transm - FROM_ENERGY -0.2 - N_GRIDPOINTS 301 - TILL_ENERGY 0.1 - &END TRANSMISSION - &END PRINT - &SCATTERING_REGION - MOLNAME S - &END SCATTERING_REGION -&END NEGF - -&FORCE_EVAL - METHOD Quickstep - &DFT - BASIS_SET_FILE_NAME ${basis_set_path} - POTENTIAL_FILE_NAME ${potential_path} - &MGRID - CUTOFF ${cutoff} - &END MGRID - &POISSON - PERIODIC xyz - &END POISSON - &SCF - ADDED_MOS ${added_mos} - EPS_SCF ${eps_scf} - MAX_SCF ${max_scf} - SCF_GUESS atomic - &MIXING - ALPHA 0.3 - METHOD broyden_mixing - NBUFFER 8 - &END MIXING - &PRINT - &RESTART - FILENAME RESTART_0 - &END RESTART - &END PRINT - &SMEAR - ELECTRONIC_TEMPERATURE [K] ${temperature} - METHOD fermi_dirac - &END SMEAR - &END SCF - &XC - &XC_FUNCTIONAL ${xc_functional} - &END XC_FUNCTIONAL - &END XC - &END DFT - &SUBSYS - &CELL - ABC ${lx} ${ly} 83.720 - PERIODIC xyz - &END CELL - &COORD - Li 0.00000000 0.00000000 0.00000000 L2 - Li 0.00000000 0.00000000 2.99000000 L2 - Li 0.00000000 0.00000000 5.98000000 L2 - Li 0.00000000 0.00000000 8.97000000 L2 - Li 0.00000000 0.00000000 11.96000000 L1 - Li 0.00000000 0.00000000 14.95000000 L1 - Li 0.00000000 0.00000000 17.94000000 L1 - Li 0.00000000 0.00000000 20.93000000 L1 - Li 0.00000000 0.00000000 23.92000000 L0 - Li 0.00000000 0.00000000 26.91000000 L0 - Li 0.00000000 0.00000000 29.90000000 L0 - Li 0.00000000 0.00000000 32.89000000 L0 - Li 0.00000000 0.00000000 35.88000000 S - Li 0.00000000 0.00000000 38.87000000 S - Li 0.00000000 0.00000000 41.86000000 S - Li 0.00000000 0.00000000 44.85000000 S - Li 0.00000000 0.00000000 47.84000000 R0 - Li 0.00000000 0.00000000 50.83000000 R0 - Li 0.00000000 0.00000000 53.82000000 R0 - Li 0.00000000 0.00000000 56.81000000 R0 - Li 0.00000000 0.00000000 59.80000000 R1 - Li 0.00000000 0.00000000 62.79000000 R1 - Li 0.00000000 0.00000000 65.78000000 R1 - Li 0.00000000 0.00000000 68.77000000 R1 - Li 0.00000000 0.00000000 71.76000000 R2 - Li 0.00000000 0.00000000 74.75000000 R2 - Li 0.00000000 0.00000000 77.74000000 R2 - Li 0.00000000 0.00000000 80.73000000 R2 - &END COORD - &KIND Li - BASIS_SET ${basis_set_li} - POTENTIAL ${potential_li} - &END KIND - &END SUBSYS -&END FORCE_EVAL diff --git a/tests/TEST_DIRS b/tests/TEST_DIRS index f67b7e7053..e7c6ea6ade 100644 --- a/tests/TEST_DIRS +++ b/tests/TEST_DIRS @@ -356,7 +356,8 @@ QS/regtest-double-hybrid-2 libint !ifx QS/regtest-sccs-2 FE/regtest-3 QS/regtest-properties/resp -QS/regtest-negf-fft fftw3 +QS/regtest-negf-1 fftw3 +QS/regtest-negf-2 fftw3 NEB/regtest-1 QS/regtest-double-hybrid-stress-numer-meta libxc !ifx QS/regtest-elpa-qr elpa mpiranks==1||mpiranks%2==0 @@ -368,7 +369,6 @@ QS/regtest-double-hybrid-stress DFTB/regtest-debug optimize_input/regtest-1 DFTB/regtest-vdw -QS/regtest-negf SWARM/regtest-glbopt-1 QS/regtest-cdft-hirshfeld-3 QS/regtest-linearscaling