00001 /* Ergo, version 3.7, a program for linear scaling electronic structure 00002 * calculations. 00003 * Copyright (C) 2018 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, 00004 * and Anastasia Kruchinina. 00005 * 00006 * This program is free software: you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation, either version 3 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 * 00019 * Primary academic reference: 00020 * Ergo: An open-source program for linear-scaling electronic structure 00021 * calculations, 00022 * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia 00023 * Kruchinina, 00024 * SoftwareX 7, 107 (2018), 00025 * <http://dx.doi.org/10.1016/j.softx.2018.03.005> 00026 * 00027 * For further information about Ergo, see <http://www.ergoscf.org>. 00028 */ 00029 00039 #ifndef DENSITY_PROJECTION 00040 #define DENSITY_PROJECTION 00041 00042 #include "basisinfo.h" 00043 #include "matrix_typedefs.h" 00044 #include "GetDensFromFock.h" 00045 00066 int load_density_and_project_full(const char *densityFileName, 00067 int noOfDensityMatrices, 00068 const IntegralInfo* integralInfo, 00069 const BasisInfoStruct & basisInfo, 00070 ergo_real** densityMatrixList, 00071 int do_purification, 00072 const int* noOfElectronsList, 00073 ergo_real electronic_temperature); 00074 00075 00110 int 00111 load_density_and_project_sparse(GetDensFromFock &DensFromFock, 00112 const char *densityFileName, 00113 int noOfDensityMatrices, 00114 const IntegralInfo* integralInfo, 00115 const BasisInfoStruct & basisInfo, 00116 symmMatrix & S_symm, 00117 symmMatrix** densityMatrixList, 00118 const int* noOfElectronsList, 00119 mat::SizesAndBlocks matrix_size_block_info, 00120 std::vector<int> const & matrixPermutationVec, 00121 ergo_real sparse_threshold); 00122 00123 00124 00125 00126 #endif /* DENSITY_PROJECTION */