ergo
|
#include <SCF_restricted.h>
SCF_restricted::SCF_restricted | ( | const Molecule & | molecule_, |
const Molecule & | extraCharges_, | ||
const BasisInfoStruct & | basisInfo_, | ||
const BasisInfoStruct & | basisInfoDensFit_, | ||
const IntegralInfo & | integralInfo_, | ||
const char * | guessDmatFileNamePtr, | ||
const JK::Params & | J_K_paramsPtr, | ||
const Dft::GridParams & | gridParams_, | ||
const SCF::Options & | scfopts, | ||
const SCF::MatOptions & | matOpts, | ||
ergo_real | threshold_integrals_1el_input | ||
) |
References SCF_general::DIIS.
SCF_restricted::~SCF_restricted | ( | ) |
References SCF_general::DIIS.
void SCF_restricted::add_random_disturbance_to_starting_guess | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::scfopts, SCF::Options::sg_disturb_specific_elements, SCF::DISTURB_ELEMENT_MAX_COUNT, SCF_general::basisInfo, BasisInfoStruct::noOfBasisFuncs, densityMatrix, add_disturbance_to_matrix(), SCF::Options::starting_guess_disturbance, SCF::Options::disturbedElementIndexVector, SCF_general::matOpts, and SCF::MatOptions::permutationHML.
void SCF_restricted::add_to_DIIS_list | ( | ) | [private, virtual] |
Implements SCF_general.
References FockMatrix, SCF_general::DIIS, ErrorMatrix, do_output(), LOG_CAT_ERROR, and LOG_AREA_SCF.
void SCF_restricted::calculate_energy | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::H_core_Matrix, densityMatrix, SCF_general::energy, mat::MatrixSymmetric::trace_ab(), SCF_general::energy_2el, and SCF_general::nuclearEnergy.
void SCF_restricted::check_params | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::noOfElectrons, do_output(), LOG_CAT_ERROR, and LOG_AREA_SCF.
void SCF_restricted::clear_diis_list | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::DIIS.
void SCF_restricted::clear_error_matrices | ( | ) | [private, virtual] |
Implements SCF_general.
References ErrorMatrix, and mat::MatrixBase::clear().
void SCF_restricted::combine_old_fock_matrices | ( | ergo_real | stepLength | ) | [private, virtual] |
Implements SCF_general.
References bestFockMatrixSoFar, bestFockMatrixSoFar2, and FockMatrix.
void SCF_restricted::compute_dipole_moment | ( | ) | [private, virtual] |
void SCF_restricted::create_gabedit_file | ( | ) | const [private, virtual] |
Implements SCF_general.
References eigVecHOMO, mat::VectorGeneral::is_empty(), eigVecLUMO, do_output(), LOG_CAT_WARNING, LOG_AREA_SCF, SCF_general::basisInfo, BasisInfoStruct::use_6_d_funcs, LOG_CAT_INFO, BasisInfoStruct::noOfBasisFuncs, mat::VectorGeneral::fullvector(), SCF_general::matOpts, SCF::MatOptions::permutationHML, SCF_general::molecule, Molecule::noOfAtoms, get_atom_label_from_charge_int(), Molecule::atoms, Atom::charge, Atom::coords, UNIT_one_Angstrom, BasisInfoStruct::noOfShells, BasisInfoStruct::shellList, ShellSpecStruct_::centerCoords, ShellSpecStruct_::shellType, ShellSpecStruct_::noOfContr, ShellSpecStruct_::exponentList, SquareFuncIntegrator::getShellFactor(), SCF_general::integralInfo, ShellSpecStruct_::coeffList, and output_orbital_coeffs_in_gabedit_order().
void SCF_restricted::create_homo_eigvec_file | ( | ) | const [private, virtual] |
void SCF_restricted::create_lumo_eigvec_file | ( | ) | const [private, virtual] |
void SCF_restricted::create_mtx_files_D | ( | int const | scfIter | ) | [private, virtual] |
void SCF_restricted::create_mtx_files_F | ( | int const | scfIter | ) | [private, virtual] |
void SCF_restricted::disturb_dens_matrix | ( | ergo_real | subspaceError | ) | [private, virtual] |
void SCF_restricted::disturb_dens_matrix_exact | ( | ergo_real | subspaceError | ) | [private, virtual] |
void SCF_restricted::disturb_dens_matrix_exact_try | ( | const symmMatrix & | randomMatrix, |
const symmMatrix & | orgDensMatrix, | ||
ergo_real | disturbanceFactor, | ||
ergo_real & | resultSinTheta, | ||
symmMatrix & | resultDensMatrix | ||
) | [private] |
References transform_with_S(), mat::MatrixBase::resetSizesAndBlocks(), SCF_general::matOpts, SCF::MatOptions::size_block_info, SCF_general::basisInfo, BasisInfoStruct::noOfBasisFuncs, get_dens_from_fock_general(), SCF_general::noOfElectrons, SCF_general::scfopts, SCF::Options::electronic_temperature, SCF_general::S_symm, SCF_general::invCholFactor, SCF_general::invCholFactor_euclnorm, SCF::Options::gap_expected_lower_bound, SCF::Options::purification_eigvalue_err_limit, SCF::Options::purification_subspace_err_limit, SCF::Options::purification_truncation_norm, SCF::Options::purification_maxmul, SCF::Options::purification_create_m_files, SCF::Options::purification_ignore_failure, SCF::Options::purification_use_rand_perturbation_for_alleigsint, SCF::Options::do_sparsity_investigation, SCF::Options::sparsity_plots_resolution_m, SCF::Options::do_comparison_to_simple_purification, transform_with_invChol(), get_machine_epsilon(), and mat::MatrixSymmetric::eucl().
Referenced by disturb_dens_matrix_exact().
void SCF_restricted::disturb_fock_matrix | ( | ergo_real | subspaceError | ) | [private, virtual] |
Implements SCF_general.
References mat::MatrixBase::resetSizesAndBlocks(), SCF_general::matOpts, SCF::MatOptions::size_block_info, SCF_general::basisInfo, BasisInfoStruct::noOfBasisFuncs, get_dens_from_fock_general(), SCF_general::noOfElectrons, SCF_general::scfopts, SCF::Options::electronic_temperature, FockMatrix, SCF_general::S_symm, SCF_general::invCholFactor, SCF_general::invCholFactor_euclnorm, SCF::Options::gap_expected_lower_bound, SCF::Options::purification_eigvalue_err_limit, SCF::Options::purification_subspace_err_limit, SCF::Options::purification_truncation_norm, SCF::Options::purification_maxmul, SCF::Options::purification_create_m_files, SCF::Options::purification_ignore_failure, SCF::Options::purification_use_rand_perturbation_for_alleigsint, SCF::Options::do_sparsity_investigation, SCF::Options::sparsity_plots_resolution_m, SCF::Options::do_comparison_to_simple_purification, do_output(), LOG_CAT_INFO, LOG_AREA_SCF, mat::Interval::upp(), mat::Interval::low(), and get_non_ort_err_mat_normalized_in_ort_basis().
void SCF_restricted::do_electron_dynamics | ( | ) | [private, virtual] |
Implements SCF_general.
References FockMatrix, densityMatrix, SCF_general::S_symm, SCF_general::invCholFactor, do_tdhf_dynamics(), SCF_general::basisInfo, SCF_general::integralInfo, SCF_general::molecule, SCF_general::extraCharges, SCF_general::matOpts, SCF_general::CAM_params, and SCF_general::J_K_params.
void SCF_restricted::do_mulliken_pop_stuff | ( | ) | [private, virtual] |
Implements SCF_general.
References do_output(), LOG_CAT_INFO, LOG_AREA_SCF, densityMatrix, SCF_general::S_symm, do_mulliken_atomic_charges(), SCF_general::basisInfo, SCF_general::matOpts, SCF::MatOptions::size_block_info, SCF::MatOptions::permutationHML, SCF::MatOptions::inversePermutationHML, and SCF_general::molecule.
void SCF_restricted::do_spin_flip | ( | int | atomCount | ) | [private, virtual] |
Implements SCF_general.
void SCF_restricted::get_2e_part_and_energy | ( | ) | [private, virtual] |
Implements SCF_general.
References densityMatrix, SCF_general::scfopts, SCF::Options::scan_do_invcholfactor_transf, SCF::Options::do_acc_scan_J, do_acc_scan_J(), SCF_general::integralInfo, SCF_general::basisInfo, SCF_general::invCholFactor, SCF_general::J_K_params, SCF_general::matOpts, SCF::MatOptions::size_block_info, SCF::MatOptions::permutationHML, SCF::Options::scan_no_of_steps, SCF::Options::scan_start_thresh, SCF::Options::scan_step_factor, SCF::Options::do_acc_scan_K, do_acc_scan_K(), SCF_general::CAM_params, SCF::MatOptions::inversePermutationHML, SCF::Options::do_acc_scan_Vxc, do_acc_scan_Vxc(), SCF_general::molecule, SCF_general::gridParams, SCF_general::noOfElectrons, mat::MatrixBase::resetSizesAndBlocks(), get_2e_matrix_and_energy_sparse(), SCF_general::basisInfoDensFit, SCF::Options::use_dft, SCF_general::energy_2el, SCF_general::densfit_data, SCF::Options::do_sparsity_investigation, J_matrix, K_matrix, Fxc_matrix, SCF_general::curr_cycle_stats, do_output(), LOG_CAT_ERROR, LOG_AREA_SCF, SCF_general::H_core_Matrix, FockMatrix, mat::MatrixBase::clear(), SCF::Options::do_f_thresh_verification, output_distance_vs_magnitude(), SCF::Options::sparsity_plots_resolution_r, SCF::Options::sparsity_plots_resolution_m, lumoInterval_Fprev, mat::Interval::low(), homoInterval_Fprev, mat::Interval::upp(), LOG_CAT_INFO, Fprev, mat::MatrixSymmetric::frob_diff(), get_machine_epsilon(), mat::MatrixSymmetric::mixed_diff(), mat::MatrixSymmetric::eucl_diff(), mat::Interval::increase(), SCF::Options::purification_subspace_err_limit, SCF::Options::gap_expected_lower_bound, BasisInfoStruct::noOfBasisFuncs, mat::MatrixSymmetric::nnz(), mat::MatrixSymmetric::eucl_thresh(), SCF_statistics::add_value(), mat::MatrixSymmetric::eucl(), mat::MatrixBase::is_empty(), output_diff_norm_values(), mat::transpose(), and LOG_AREA_DENSFROMF.
void SCF_restricted::get_error_measure | ( | ) | [private, virtual] |
Implements SCF_general.
References compute_maxabs_sparse(), ErrorMatrix, mat::MatrixGeneral::frob(), do_output(), LOG_CAT_INFO, LOG_AREA_SCF, and SCF_general::errorMeasure.
void SCF_restricted::get_FDSminusSDF | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::basisInfo, BasisInfoStruct::noOfBasisFuncs, do_output(), LOG_CAT_INFO, LOG_AREA_SCF, densityMatrix, SCF_general::S_symm, FockMatrix, compute_FDSminusSDF_sparse(), ErrorMatrix, SCF_general::matOpts, SCF::MatOptions::sparse_threshold, and output_sparsity().
void SCF_restricted::get_new_density_matrix | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::basisInfo, BasisInfoStruct::noOfBasisFuncs, SCF_general::scfopts, SCF::Options::do_sparsity_investigation_reppuri, SCF::Options::shift_using_prev_density_matrix, do_output(), LOG_CAT_INFO, LOG_AREA_SCF, mat::frobNorm, mat::mixedNorm, mat::euclNorm, F_ort_prev, homoInterval_F_ort_prev, lumoInterval_F_ort_prev, get_dens_from_fock_general(), SCF_general::noOfElectrons, SCF::Options::use_diagonalization, SCF::Options::use_diag_on_error, SCF::Options::electronic_temperature, densityMatrix, FockMatrix, homoInterval_Fprev, lumoInterval_Fprev, SCF_general::S_symm, SCF_general::invCholFactor, SCF_general::invCholFactor_euclnorm, SCF::Options::gap_expected_lower_bound, SCF_general::matOpts, SCF::MatOptions::size_block_info, SCF::Options::purification_eigvalue_err_limit, SCF::Options::purification_subspace_err_limit, SCF::Options::purification_maxmul, SCF::Options::purification_create_m_files, SCF::Options::purification_ignore_failure, SCF::Options::purification_use_rand_perturbation_for_alleigsint, mat::getNormTypeString(), SCF::Options::do_sparsity_investigation, SCF::Options::sparsity_plots_resolution_m, output_distance_vs_magnitude(), SCF::MatOptions::inversePermutationHML, SCF::Options::sparsity_plots_resolution_r, SCF_general::curr_cycle_stats, SCF_statistics::add_values(), UNIT_one_eV, transform_with_S(), SCF::Options::purification_truncation_norm, SCF::Options::do_comparison_to_simple_purification, eigVecLUMO, eigVecHOMO, output_sparsity_symm(), and mat::MatrixSymmetric::trace_ab().
void SCF_restricted::get_non_ort_err_mat_normalized_in_ort_basis | ( | symmMatrix & | randomMatrix, |
int | transform_with_S_also | ||
) | [private] |
References mat::MatrixBase::resetSizesAndBlocks(), SCF_general::matOpts, SCF::MatOptions::size_block_info, mat::MatrixSymmetric::random(), transform_with_S(), transform_with_invChol(), get_machine_epsilon(), mat::MatrixSymmetric::eucl(), do_output(), LOG_CAT_INFO, and LOG_AREA_SCF.
Referenced by disturb_dens_matrix(), disturb_dens_matrix_exact(), and disturb_fock_matrix().
void SCF_restricted::get_starting_guess_density | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::basisInfo, BasisInfoStruct::noOfBasisFuncs, SCF_general::guessDmatFileName, do_output(), LOG_CAT_INFO, LOG_AREA_SCF, densityMatrix, load_density_and_project_sparse(), SCF_general::integralInfo, SCF_general::S_symm, SCF_general::noOfElectrons, SCF_general::matOpts, SCF::MatOptions::size_block_info, SCF::MatOptions::permutationHML, SCF::MatOptions::sparse_threshold, SCF_general::invCholFactor, SCF_general::invCholFactor_euclnorm, SCF_general::scfopts, SCF::Options::gap_expected_lower_bound, SCF::Options::purification_eigvalue_err_limit, SCF::Options::puri_eig_acc_factor_for_guess, SCF::Options::purification_subspace_err_limit, SCF::Options::purification_truncation_norm, SCF::Options::purification_maxmul, SCF::Options::purification_create_m_files, SCF::Options::use_diagonalization, SCF::Options::use_diag_on_error_guess, SCF::Options::purification_ignore_failure, SCF::Options::purification_use_rand_perturbation_for_alleigsint, SCF::Options::electronic_temperature, LOG_CAT_ERROR, SCF::Options::use_simple_starting_guess, get_simple_starting_guess_sparse(), SCF::Options::use_diag_guess_from_file, get_diag_matrix_from_file(), mat::MatrixBase::resetSizesAndBlocks(), get_dens_from_fock_general(), SCF_general::H_core_Matrix, SCF::Options::do_sparsity_investigation, SCF::Options::sparsity_plots_resolution_m, SCF::Options::do_comparison_to_simple_purification, and output_sparsity_symm().
void SCF_restricted::initialize_homo_lumo_limits | ( | ) | [private, virtual] |
Implements SCF_general.
References homoInterval_F_ort_prev, lumoInterval_F_ort_prev, homoInterval_Fprev, and lumoInterval_Fprev.
void SCF_restricted::initialize_matrices | ( | ) | [private, virtual] |
Implements SCF_general.
References densityMatrix, mat::MatrixBase::resetSizesAndBlocks(), SCF_general::matOpts, SCF::MatOptions::size_block_info, FockMatrix, Fprev, Dprev, F_ort_prev, bestFockMatrixSoFar, bestFockMatrixSoFar2, and ErrorMatrix.
void SCF_restricted::output_csr_matrices_for_gao | ( | ) | [private, virtual] |
void SCF_restricted::output_density_images | ( | ) | [private, virtual] |
Implements SCF_general.
References do_output(), LOG_CAT_ERROR, and LOG_AREA_SCF.
void SCF_restricted::output_sparsity_S_F_D | ( | SCF_statistics & | stats | ) | [private, virtual] |
void SCF_restricted::report_density_difference | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::scfopts, SCF::Options::do_report_density_diff, do_output(), LOG_CAT_INFO, LOG_AREA_SCF, densityMatrix, Dprev, and SCF_general::GetEuclideanNormOfMatrix().
void SCF_restricted::report_final_results | ( | ) | [private, virtual] |
Implements SCF_general.
void SCF_restricted::save_current_fock_as_fprev | ( | ) | [private, virtual] |
Implements SCF_general.
References FockMatrix, and Fprev.
void SCF_restricted::save_density_as_prevdens | ( | ) | [private, virtual] |
Implements SCF_general.
References densityMatrix, and Dprev.
void SCF_restricted::save_final_potential | ( | ) | [private, virtual] |
Implements SCF_general.
References save_symmetric_matrix(), FockMatrix, SCF_general::basisInfo, SCF_general::matOpts, SCF::MatOptions::inversePermutationHML, do_output(), LOG_CAT_ERROR, and LOG_AREA_SCF.
void SCF_restricted::save_full_matrices_for_matlab | ( | ) | [private, virtual] |
void SCF_restricted::transform_with_invChol | ( | symmMatrix & | A | ) | [private] |
Transform matrix A to invCholT*A*invChol.
References SCF_general::invCholFactor, and mat::transpose().
Referenced by update_subspace_diff(), get_non_ort_err_mat_normalized_in_ort_basis(), and disturb_dens_matrix_exact_try().
void SCF_restricted::transform_with_S | ( | symmMatrix & | A | ) | [private] |
Transform matrix A to S*A*S.
References SCF_general::S_symm.
Referenced by get_new_density_matrix(), update_subspace_diff(), get_non_ort_err_mat_normalized_in_ort_basis(), and disturb_dens_matrix_exact_try().
void SCF_restricted::update_best_fock_so_far | ( | ) | [private, virtual] |
Implements SCF_general.
References Fprev, bestFockMatrixSoFar, FockMatrix, and bestFockMatrixSoFar2.
void SCF_restricted::update_subspace_diff | ( | ) | [private, virtual] |
Implements SCF_general.
References densityMatrix, Dprev, get_machine_epsilon(), transform_with_S(), transform_with_invChol(), mat::MatrixSymmetric::eucl(), do_output(), LOG_CAT_INFO, LOG_AREA_SCF, and SCF_general::curr_subspace_diff.
void SCF_restricted::use_diis_to_get_new_fock_matrix | ( | ) | [private, virtual] |
Implements SCF_general.
References SCF_general::DIIS, do_output(), LOG_CAT_ERROR, LOG_AREA_SCF, and FockMatrix.
void SCF_restricted::write_density_to_file | ( | ) | [private, virtual] |
Implements SCF_general.
References densityMatrix, mat::MatrixSymmetric::nvalues(), mat::MatrixSymmetric::get_all_values(), SCF_general::matOpts, SCF::MatOptions::inversePermutationHML, matrix_description_struct::nvalues, matrix_description_struct::rowind, matrix_description_struct::colind, matrix_description_struct::values, ddf_writeShellListAndDensityMatricesToFile_sparse(), SCF_general::basisInfo, do_output(), LOG_CAT_ERROR, and LOG_AREA_SCF.
void SCF_restricted::write_diag_dens_to_file | ( | ) | [private, virtual] |
void SCF_restricted::write_matrices_to_file | ( | ) | [private, virtual] |
Implements SCF_general.
References FockMatrix, Fprev, Dprev, bestFockMatrixSoFar, bestFockMatrixSoFar2, and F_ort_prev.
Referenced by initialize_matrices(), write_matrices_to_file(), update_best_fock_so_far(), and combine_old_fock_matrices().
Referenced by initialize_matrices(), write_matrices_to_file(), update_best_fock_so_far(), and combine_old_fock_matrices().
symmMatrix SCF_restricted::densityMatrix [private] |
Referenced by initialize_matrices(), get_starting_guess_density(), add_random_disturbance_to_starting_guess(), get_2e_part_and_energy(), output_sparsity_S_F_D(), calculate_energy(), get_FDSminusSDF(), get_new_density_matrix(), write_density_to_file(), save_full_matrices_for_matlab(), do_electron_dynamics(), write_diag_dens_to_file(), save_density_as_prevdens(), report_density_difference(), compute_dipole_moment(), do_mulliken_pop_stuff(), create_mtx_files_D(), update_subspace_diff(), disturb_dens_matrix(), and disturb_dens_matrix_exact().
symmMatrix SCF_restricted::Dprev [private] |
generalVector SCF_restricted::eigVecHOMO [private] |
Referenced by get_new_density_matrix(), create_homo_eigvec_file(), and create_gabedit_file().
generalVector SCF_restricted::eigVecLUMO [private] |
Referenced by get_new_density_matrix(), create_lumo_eigvec_file(), and create_gabedit_file().
normalMatrix SCF_restricted::ErrorMatrix [private] |
Referenced by initialize_matrices(), get_FDSminusSDF(), get_error_measure(), add_to_DIIS_list(), and clear_error_matrices().
symmMatrix SCF_restricted::F_ort_prev [private] |
Referenced by initialize_matrices(), write_matrices_to_file(), and get_new_density_matrix().
symmMatrix SCF_restricted::FockMatrix [private] |
Referenced by initialize_matrices(), write_matrices_to_file(), get_2e_part_and_energy(), output_sparsity_S_F_D(), get_FDSminusSDF(), add_to_DIIS_list(), update_best_fock_so_far(), combine_old_fock_matrices(), use_diis_to_get_new_fock_matrix(), save_current_fock_as_fprev(), get_new_density_matrix(), save_final_potential(), save_full_matrices_for_matlab(), output_csr_matrices_for_gao(), do_electron_dynamics(), create_mtx_files_F(), and disturb_fock_matrix().
symmMatrix SCF_restricted::Fprev [private] |
symmMatrix SCF_restricted::Fxc_matrix [private] |
Referenced by get_2e_part_and_energy().
Referenced by initialize_homo_lumo_limits(), and get_new_density_matrix().
Referenced by initialize_homo_lumo_limits(), get_2e_part_and_energy(), and get_new_density_matrix().
symmMatrix SCF_restricted::J_matrix [private] |
Referenced by get_2e_part_and_energy().
symmMatrix SCF_restricted::K_matrix [private] |
Referenced by get_2e_part_and_energy().
Referenced by initialize_homo_lumo_limits(), and get_new_density_matrix().
Referenced by initialize_homo_lumo_limits(), get_2e_part_and_energy(), and get_new_density_matrix().