ergo
|
00001 /* Ergo, version 3.2, a program for linear scaling electronic structure 00002 * calculations. 00003 * Copyright (C) 2012 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek. 00004 * 00005 * This program is free software: you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation, either version 3 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 * 00018 * Primary academic reference: 00019 * KohnâSham Density Functional Theory Electronic Structure Calculations 00020 * with Linearly Scaling Computational Time and Memory Usage, 00021 * Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek, 00022 * J. Chem. Theory Comput. 7, 340 (2011), 00023 * <http://dx.doi.org/10.1021/ct100611z> 00024 * 00025 * For further information about Ergo, see <http://www.ergoscf.org>. 00026 */ 00027 00028 #ifndef DENSITY_DESC_FILE 00029 #define DENSITY_DESC_FILE 1 00030 00031 #include "basisinfo.h" 00032 00033 00034 int ddf_writeShellListAndDensityMatricesToFile(const BasisInfoStruct* basisInfo, 00035 int noOfDensityMatrices, 00036 ergo_real** densityMatrixList, 00037 const char* fileName); 00038 00039 typedef struct 00040 { 00041 long nvalues; 00042 int* rowind; 00043 int* colind; 00044 ergo_real* values; 00045 } matrix_description_struct; 00046 00051 int ddf_writeShellListAndDensityMatricesToFile_sparse(const BasisInfoStruct* basisInfo, 00052 int noOfDensityMatrices, 00053 matrix_description_struct* densityMatrixList, 00054 const char* fileName); 00055 00056 00062 int ddf_load_density(const char *densityFileName, 00063 int noOfDensityMatrices, 00064 const IntegralInfo& integralInfo, 00065 BasisInfoStruct **basisInfo, 00066 ergo_real **densityMatrixList); 00067 00073 int ddf_load_density_sparse(const char *densityFileName, 00074 const IntegralInfo& integralInfo, 00075 BasisInfoStruct **basisInfo, 00076 int *noOfDensitiesRead, 00077 int** rowindList, 00078 int** colindList, 00079 ergo_real** valuesList, 00080 long* nvaluesList); 00081 00082 00083 #endif /* DENSITY_DESC_FILE */