diff --git a/src/almo_scf_qs.F b/src/almo_scf_qs.F index 0ab360b886..21e110d6eb 100644 --- a/src/almo_scf_qs.F +++ b/src/almo_scf_qs.F @@ -23,12 +23,12 @@ MODULE almo_scf_qs pbc USE cp_control_types, ONLY: dft_control_type USE cp_dbcsr_api, ONLY: & - dbcsr_complete_redistribute, dbcsr_copy, dbcsr_copy_into_existing, dbcsr_create, & - dbcsr_desymmetrize, dbcsr_distribution_get, dbcsr_distribution_new, & - dbcsr_distribution_release, dbcsr_distribution_type, dbcsr_filter, dbcsr_finalize, & - dbcsr_get_block_p, dbcsr_get_info, dbcsr_get_num_blocks, dbcsr_get_stored_coordinates, & - dbcsr_multiply, dbcsr_nblkcols_total, dbcsr_nblkrows_total, dbcsr_p_type, dbcsr_release, & - dbcsr_reserve_block2d, dbcsr_set, dbcsr_type, dbcsr_type_no_symmetry, dbcsr_work_create + dbcsr_complete_redistribute, dbcsr_copy, dbcsr_create, dbcsr_desymmetrize, & + dbcsr_distribution_get, dbcsr_distribution_new, dbcsr_distribution_release, & + dbcsr_distribution_type, dbcsr_filter, dbcsr_finalize, dbcsr_get_block_p, dbcsr_get_info, & + dbcsr_get_num_blocks, dbcsr_get_stored_coordinates, dbcsr_multiply, dbcsr_nblkcols_total, & + dbcsr_nblkrows_total, dbcsr_p_type, dbcsr_release, dbcsr_reserve_block2d, dbcsr_set, & + dbcsr_type, dbcsr_type_no_symmetry, dbcsr_work_create USE cp_dbcsr_cp2k_link, ONLY: cp_dbcsr_alloc_block_from_nbl USE cp_dbcsr_operations, ONLY: dbcsr_allocate_matrix_set USE cp_fm_struct, ONLY: cp_fm_struct_create,& @@ -486,7 +486,7 @@ CONTAINS SELECT CASE (mat_distr_aos) CASE (almo_mat_distr_atomic) - CALL dbcsr_copy_into_existing(matrix_qs, matrix_almo) + CALL dbcsr_copy(matrix_qs, matrix_almo, keep_sparsity=.TRUE.) CASE (almo_mat_distr_molecular) CALL dbcsr_set(matrix_qs, 0.0_dp) CALL dbcsr_complete_redistribute(matrix_almo, matrix_qs, keep_sparsity=.TRUE.) diff --git a/src/dbx/cp_dbcsr_api.F b/src/dbx/cp_dbcsr_api.F index a80ae3b200..c76dfd52f9 100644 --- a/src/dbx/cp_dbcsr_api.F +++ b/src/dbx/cp_dbcsr_api.F @@ -22,7 +22,6 @@ MODULE cp_dbcsr_api dbcsr_convert_offsets_to_sizes, & dbcsr_convert_sizes_to_offsets, & dbcsr_copy_prv => dbcsr_copy, & - dbcsr_copy_into_existing_prv => dbcsr_copy_into_existing, & dbcsr_create_prv => dbcsr_create, & dbcsr_csr_create, & dbcsr_csr_create_from_dbcsr_prv => dbcsr_csr_create_from_dbcsr, & @@ -157,7 +156,6 @@ MODULE cp_dbcsr_api PUBLIC :: dbcsr_transposed PUBLIC :: dbcsr_multiply PUBLIC :: dbcsr_copy - PUBLIC :: dbcsr_copy_into_existing PUBLIC :: dbcsr_desymmetrize PUBLIC :: dbcsr_add_on_diag PUBLIC :: dbcsr_get_block_diag @@ -506,16 +504,6 @@ CONTAINS keep_imaginary=keep_imaginary) END SUBROUTINE dbcsr_copy -! ************************************************************************************************** -!> \brief ... -! ************************************************************************************************** - SUBROUTINE dbcsr_copy_into_existing(matrix_b, matrix_a) - TYPE(dbcsr_type), INTENT(INOUT) :: matrix_b - TYPE(dbcsr_type), INTENT(IN) :: matrix_a - - CALL dbcsr_copy_into_existing_prv(matrix_b%prv, matrix_a%prv) - END SUBROUTINE dbcsr_copy_into_existing - ! ************************************************************************************************** !> \brief ... ! ************************************************************************************************** diff --git a/src/dm_ls_scf_qs.F b/src/dm_ls_scf_qs.F index d5892f09ba..2f369046b8 100644 --- a/src/dm_ls_scf_qs.F +++ b/src/dm_ls_scf_qs.F @@ -16,11 +16,11 @@ MODULE dm_ls_scf_qs USE atomic_kind_types, ONLY: atomic_kind_type USE cp_control_types, ONLY: dft_control_type USE cp_dbcsr_api, ONLY: & - dbcsr_complete_redistribute, dbcsr_copy, dbcsr_copy_into_existing, dbcsr_create, & - dbcsr_desymmetrize, dbcsr_distribution_get, dbcsr_distribution_hold, & - dbcsr_distribution_new, dbcsr_distribution_release, dbcsr_distribution_type, & - dbcsr_finalize, dbcsr_get_info, dbcsr_multiply, dbcsr_nblkrows_total, dbcsr_p_type, & - dbcsr_release, dbcsr_set, dbcsr_type, dbcsr_type_real_8 + dbcsr_complete_redistribute, dbcsr_copy, dbcsr_create, dbcsr_desymmetrize, & + dbcsr_distribution_get, dbcsr_distribution_hold, dbcsr_distribution_new, & + dbcsr_distribution_release, dbcsr_distribution_type, dbcsr_finalize, dbcsr_get_info, & + dbcsr_multiply, dbcsr_nblkrows_total, dbcsr_p_type, dbcsr_release, dbcsr_set, dbcsr_type, & + dbcsr_type_real_8 USE cp_dbcsr_cp2k_link, ONLY: cp_dbcsr_alloc_block_from_nbl USE cp_dbcsr_operations, ONLY: dbcsr_allocate_matrix_set USE cp_log_handling, ONLY: cp_get_default_logger,& @@ -297,7 +297,7 @@ CONTAINS !> \param matrix_ls ... !> \param ls_mstruct ... !> \param covariant ... -!> \param keep_sparsity If set dbcsr_copy_into_existing will be used, by default set to .TRUE. +!> \param keep_sparsity will be passed on to dbcsr_copy, by default set to .TRUE. !> \par History !> 2010.10 created [Joost VandeVondele] !> 2015.09 add support for PAO [Ole Schuett] @@ -327,11 +327,7 @@ CONTAINS IF (.NOT. ls_mstruct%do_pao) THEN CALL dbcsr_create(matrix_declustered, template=matrix_qs) CALL matrix_decluster(matrix_declustered, matrix_ls, ls_mstruct) - IF (my_keep_sparsity) THEN - CALL dbcsr_copy_into_existing(matrix_qs, matrix_declustered) ! preserve sparsity of matrix_qs - ELSE - CALL dbcsr_copy(matrix_qs, matrix_declustered) ! overwrite sparsity of matrix_qs - END IF + CALL dbcsr_copy(matrix_qs, matrix_declustered, keep_sparsity=my_keep_sparsity) CALL dbcsr_release(matrix_declustered) ELSE ! using pao @@ -349,11 +345,7 @@ CONTAINS CALL dbcsr_create(matrix_tmp2, template=matrix_qs) CALL dbcsr_multiply("N", "N", 1.0_dp, matrix_trafo, matrix_declustered, 0.0_dp, matrix_tmp1) CALL dbcsr_multiply("N", "T", 1.0_dp, matrix_tmp1, matrix_trafo, 0.0_dp, matrix_tmp2) - IF (my_keep_sparsity) THEN - CALL dbcsr_copy_into_existing(matrix_qs, matrix_tmp2) ! preserve sparsity of matrix_qs - ELSE - CALL dbcsr_copy(matrix_qs, matrix_tmp2) ! overwrite sparsity of matrix_qs - END IF + CALL dbcsr_copy(matrix_qs, matrix_tmp2, keep_sparsity=my_keep_sparsity) CALL dbcsr_release(matrix_declustered) CALL dbcsr_release(matrix_tmp1) CALL dbcsr_release(matrix_tmp2) diff --git a/src/emd/rt_propagation_utils.F b/src/emd/rt_propagation_utils.F index 34e300fe84..379a845bd3 100644 --- a/src/emd/rt_propagation_utils.F +++ b/src/emd/rt_propagation_utils.F @@ -17,9 +17,9 @@ MODULE rt_propagation_utils USE cp_control_types, ONLY: dft_control_type,& rtp_control_type USE cp_dbcsr_api, ONLY: & - dbcsr_add, dbcsr_binary_read, dbcsr_checksum, dbcsr_copy, dbcsr_copy_into_existing, & - dbcsr_create, dbcsr_deallocate_matrix, dbcsr_desymmetrize, dbcsr_distribution_type, & - dbcsr_filter, dbcsr_get_info, dbcsr_iterator_blocks_left, dbcsr_iterator_next_block, & + dbcsr_add, dbcsr_binary_read, dbcsr_checksum, dbcsr_copy, dbcsr_create, & + dbcsr_deallocate_matrix, dbcsr_desymmetrize, dbcsr_distribution_type, dbcsr_filter, & + dbcsr_get_info, dbcsr_iterator_blocks_left, dbcsr_iterator_next_block, & dbcsr_iterator_start, dbcsr_iterator_stop, dbcsr_iterator_type, dbcsr_p_type, dbcsr_scale, & dbcsr_set, dbcsr_type USE cp_dbcsr_operations, ONLY: cp_dbcsr_plus_fm_fm_t,& @@ -547,9 +547,9 @@ CONTAINS IF (rtp%track_imag_density) CALL qs_rho_get(rho_struct=rho, rho_ao_im=rho_ao_im) DO ispin = 1, SIZE(rho_ao) CALL dbcsr_set(rho_ao(ispin)%matrix, zero) - CALL dbcsr_copy_into_existing(rho_ao(ispin)%matrix, rho_new(ispin*2 - 1)%matrix) + CALL dbcsr_copy(rho_ao(ispin)%matrix, rho_new(ispin*2 - 1)%matrix, keep_sparsity=.TRUE.) IF (rtp%track_imag_density) THEN - CALL dbcsr_copy_into_existing(rho_ao_im(ispin)%matrix, rho_new(ispin*2)%matrix) + CALL dbcsr_copy(rho_ao_im(ispin)%matrix, rho_new(ispin*2)%matrix, keep_sparsity=.TRUE.) END IF END DO diff --git a/src/mp2_ri_grad.F b/src/mp2_ri_grad.F index 8d11b28b5b..fd1780e554 100644 --- a/src/mp2_ri_grad.F +++ b/src/mp2_ri_grad.F @@ -17,9 +17,8 @@ MODULE mp2_ri_grad USE cp_blacs_env, ONLY: cp_blacs_env_type USE cp_control_types, ONLY: dft_control_type USE cp_dbcsr_api, ONLY: & - dbcsr_add, dbcsr_copy, dbcsr_copy_into_existing, dbcsr_create, dbcsr_multiply, & - dbcsr_p_type, dbcsr_release, dbcsr_set, dbcsr_transposed, dbcsr_type, & - dbcsr_type_no_symmetry, dbcsr_type_symmetric + dbcsr_add, dbcsr_copy, dbcsr_create, dbcsr_multiply, dbcsr_p_type, dbcsr_release, & + dbcsr_set, dbcsr_transposed, dbcsr_type, dbcsr_type_no_symmetry, dbcsr_type_symmetric USE cp_dbcsr_operations, ONLY: copy_dbcsr_to_fm,& dbcsr_deallocate_matrix_set USE cp_eri_mme_interface, ONLY: cp_eri_mme_param @@ -521,7 +520,7 @@ CONTAINS CALL dbcsr_add(G_P_munu, G_P_munu_nosym, & alpha_scalar=2.0_dp, beta_scalar=2.0_dp) ! this is a trick to avoid that integrate_v_rspace starts to cry - CALL dbcsr_copy_into_existing(mat_munu, G_P_munu) + CALL dbcsr_copy(mat_munu, G_P_munu, keep_sparsity=.TRUE.) CALL dbcsr_copy(G_P_munu, mat_munu) CALL timestop(handle) diff --git a/src/pao_methods.F b/src/pao_methods.F index 3f0aa5a4af..cb1dd357e4 100644 --- a/src/pao_methods.F +++ b/src/pao_methods.F @@ -19,12 +19,12 @@ MODULE pao_methods cite_reference USE cp_control_types, ONLY: dft_control_type USE cp_dbcsr_api, ONLY: & - dbcsr_add, dbcsr_binary_read, dbcsr_checksum, dbcsr_complete_redistribute, & - dbcsr_copy_into_existing, dbcsr_create, dbcsr_desymmetrize, dbcsr_distribution_get, & - dbcsr_distribution_new, dbcsr_distribution_type, dbcsr_dot, dbcsr_filter, & - dbcsr_get_block_p, dbcsr_get_info, dbcsr_iterator_blocks_left, dbcsr_iterator_next_block, & - dbcsr_iterator_start, dbcsr_iterator_stop, dbcsr_iterator_type, dbcsr_p_type, & - dbcsr_release, dbcsr_reserve_diag_blocks, dbcsr_scale, dbcsr_set, dbcsr_type + dbcsr_add, dbcsr_binary_read, dbcsr_checksum, dbcsr_complete_redistribute, dbcsr_copy, & + dbcsr_create, dbcsr_desymmetrize, dbcsr_distribution_get, dbcsr_distribution_new, & + dbcsr_distribution_type, dbcsr_dot, dbcsr_filter, dbcsr_get_block_p, dbcsr_get_info, & + dbcsr_iterator_blocks_left, dbcsr_iterator_next_block, dbcsr_iterator_start, & + dbcsr_iterator_stop, dbcsr_iterator_type, dbcsr_p_type, dbcsr_release, & + dbcsr_reserve_diag_blocks, dbcsr_scale, dbcsr_set, dbcsr_type USE cp_log_handling, ONLY: cp_get_default_logger,& cp_logger_type,& cp_to_string @@ -584,7 +584,7 @@ CONTAINS cs_pos = dbcsr_checksum(matrix_tmp, pos=.TRUE.) IF (pao%iw > 0) WRITE (pao%iw, *) "PAO| Read restart DM "// & TRIM(pao%preopt_dm_file)//" with checksum: ", cs_pos - CALL dbcsr_copy_into_existing(rho_ao(ispin)%matrix, matrix_tmp) + CALL dbcsr_copy(rho_ao(ispin)%matrix, matrix_tmp, keep_sparsity=.TRUE.) CALL dbcsr_release(matrix_tmp) END DO diff --git a/src/pexsi_methods.F b/src/pexsi_methods.F index c6085b9922..6034e9cbe1 100644 --- a/src/pexsi_methods.F +++ b/src/pexsi_methods.F @@ -23,12 +23,12 @@ MODULE pexsi_methods set_arnoldi_initial_vector,& setup_arnoldi_data USE cp_dbcsr_api, ONLY: & - dbcsr_convert_csr_to_dbcsr, dbcsr_convert_dbcsr_to_csr, dbcsr_copy, & - dbcsr_copy_into_existing, dbcsr_create, dbcsr_csr_create, dbcsr_csr_create_from_dbcsr, & - dbcsr_csr_destroy, dbcsr_csr_eqrow_floor_dist, dbcsr_csr_print_sparsity, & - dbcsr_desymmetrize, dbcsr_distribution_get, dbcsr_distribution_type, dbcsr_get_info, & - dbcsr_has_symmetry, dbcsr_p_type, dbcsr_release, dbcsr_scale, dbcsr_set, dbcsr_type, & - dbcsr_type_no_symmetry, dbcsr_type_real_8 + dbcsr_convert_csr_to_dbcsr, dbcsr_convert_dbcsr_to_csr, dbcsr_copy, dbcsr_create, & + dbcsr_csr_create, dbcsr_csr_create_from_dbcsr, dbcsr_csr_destroy, & + dbcsr_csr_eqrow_floor_dist, dbcsr_csr_print_sparsity, dbcsr_desymmetrize, & + dbcsr_distribution_get, dbcsr_distribution_type, dbcsr_get_info, dbcsr_has_symmetry, & + dbcsr_p_type, dbcsr_release, dbcsr_scale, dbcsr_set, dbcsr_type, dbcsr_type_no_symmetry, & + dbcsr_type_real_8 USE cp_dbcsr_cp2k_link, ONLY: cp_dbcsr_to_csr_screening USE cp_dbcsr_operations, ONLY: dbcsr_allocate_matrix_set USE cp_log_handling, ONLY: cp_get_default_logger,& @@ -360,12 +360,11 @@ CONTAINS ! Convert DBCSR matrices to PEXSI CSR format. Intermediate step to template matrix ! needed in order to retain the initial sparsity pattern that is required for the ! conversion to CSR format. - CALL dbcsr_copy_into_existing(pexsi_env%dbcsr_template_matrix_sym, matrix_s) + CALL dbcsr_copy(pexsi_env%dbcsr_template_matrix_sym, matrix_s, keep_sparsity=.TRUE.) CALL dbcsr_convert_dbcsr_to_csr(pexsi_env%dbcsr_template_matrix_sym, & pexsi_env%csr_mat_s) - CALL dbcsr_copy_into_existing(pexsi_env%dbcsr_template_matrix_sym, & - matrix_ks) + CALL dbcsr_copy(pexsi_env%dbcsr_template_matrix_sym, matrix_ks, keep_sparsity=.TRUE.) CALL dbcsr_convert_dbcsr_to_csr(pexsi_env%dbcsr_template_matrix_sym, & pexsi_env%csr_mat_ks) diff --git a/src/qs_energy_window.F b/src/qs_energy_window.F index 93ba199da0..f8a877bc4d 100644 --- a/src/qs_energy_window.F +++ b/src/qs_energy_window.F @@ -15,9 +15,8 @@ MODULE qs_energy_window USE cp_blacs_env, ONLY: cp_blacs_env_type USE cp_dbcsr_api, ONLY: & - dbcsr_add, dbcsr_copy, dbcsr_copy_into_existing, dbcsr_create, dbcsr_desymmetrize, & - dbcsr_frobenius_norm, dbcsr_get_info, dbcsr_multiply, dbcsr_p_type, dbcsr_release, & - dbcsr_type + dbcsr_add, dbcsr_copy, dbcsr_create, dbcsr_desymmetrize, dbcsr_frobenius_norm, & + dbcsr_get_info, dbcsr_multiply, dbcsr_p_type, dbcsr_release, dbcsr_type USE cp_dbcsr_operations, ONLY: copy_dbcsr_to_fm,& copy_fm_to_dbcsr USE cp_fm_basic_linalg, ONLY: cp_fm_trace @@ -203,7 +202,7 @@ CONTAINS !ensure the correct sparsity CALL copy_fm_to_dbcsr(P_window_fm, tmp) CALL dbcsr_copy(window, matrix_ks(1)%matrix) - CALL dbcsr_copy_into_existing(window, tmp) + CALL dbcsr_copy(window, tmp, keep_sparsity=.TRUE.) CALL calculate_rho_elec(matrix_p=window, & rho=rho_r, & rho_gspace=rho_g, & @@ -270,7 +269,7 @@ CONTAINS CALL copy_fm_to_dbcsr(P_window_fm, tmp) !ensure the correct sparsity CALL dbcsr_copy(window, matrix_ks(1)%matrix) - CALL dbcsr_copy_into_existing(window, tmp) + CALL dbcsr_copy(window, tmp, keep_sparsity=.TRUE.) CALL calculate_rho_elec(matrix_p=window, & rho=rho_r, & rho_gspace=rho_g, & diff --git a/src/transport.F b/src/transport.F index 84d106e308..78509cf04d 100644 --- a/src/transport.F +++ b/src/transport.F @@ -31,11 +31,10 @@ MODULE transport cite_reference USE cp_control_types, ONLY: dft_control_type USE cp_dbcsr_api, ONLY: & - dbcsr_convert_csr_to_dbcsr, dbcsr_convert_dbcsr_to_csr, dbcsr_copy, & - dbcsr_copy_into_existing, dbcsr_create, dbcsr_csr_create, dbcsr_csr_create_from_dbcsr, & - dbcsr_csr_dbcsr_blkrow_dist, dbcsr_csr_print_sparsity, dbcsr_csr_type, & - dbcsr_deallocate_matrix, dbcsr_desymmetrize, dbcsr_has_symmetry, dbcsr_set, dbcsr_type, & - dbcsr_type_no_symmetry, dbcsr_type_real_8 + dbcsr_convert_csr_to_dbcsr, dbcsr_convert_dbcsr_to_csr, dbcsr_copy, dbcsr_create, & + dbcsr_csr_create, dbcsr_csr_create_from_dbcsr, dbcsr_csr_dbcsr_blkrow_dist, & + dbcsr_csr_print_sparsity, dbcsr_csr_type, dbcsr_deallocate_matrix, dbcsr_desymmetrize, & + dbcsr_has_symmetry, dbcsr_set, dbcsr_type, dbcsr_type_no_symmetry, dbcsr_type_real_8 USE cp_dbcsr_cp2k_link, ONLY: cp_dbcsr_to_csr_screening USE cp_log_handling, ONLY: cp_get_default_logger,& cp_logger_get_default_unit_nr,& @@ -405,16 +404,16 @@ CONTAINS CALL csr_interop_nullify(p_mat) CALL csr_interop_nullify(imagp_mat) - CALL dbcsr_copy_into_existing(transport_env%template_matrix_sym, matrix_s) + CALL dbcsr_copy(transport_env%template_matrix_sym, matrix_s, keep_sparsity=.TRUE.) CALL convert_dbcsr_to_csr_interop(transport_env%template_matrix_sym, transport_env%s_matrix, s_mat) - CALL dbcsr_copy_into_existing(transport_env%template_matrix_sym, matrix_ks) + CALL dbcsr_copy(transport_env%template_matrix_sym, matrix_ks, keep_sparsity=.TRUE.) CALL convert_dbcsr_to_csr_interop(transport_env%template_matrix_sym, transport_env%ks_matrix, ks_mat) - CALL dbcsr_copy_into_existing(transport_env%template_matrix_sym, matrix_p) + CALL dbcsr_copy(transport_env%template_matrix_sym, matrix_p, keep_sparsity=.TRUE.) CALL convert_dbcsr_to_csr_interop(transport_env%template_matrix_sym, transport_env%p_matrix, p_mat) - CALL dbcsr_copy_into_existing(transport_env%template_matrix_sym, matrix_s) + CALL dbcsr_copy(transport_env%template_matrix_sym, matrix_s, keep_sparsity=.TRUE.) CALL convert_dbcsr_to_csr_interop(transport_env%template_matrix_sym, transport_env%imagp_matrix, imagp_mat) CALL c_method(transport_env%params, s_mat, ks_mat, p_mat, imagp_mat)