1 /* 2 CheMPS2: a spin-adapted implementation of DMRG for ab initio quantum chemistry 3 Copyright (C) 2013-2018 Sebastian Wouters 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License along 16 with this program; if not, write to the Free Software Foundation, Inc., 17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 */ 19 20 #ifndef OPTIONS_CHEMPS2_H 21 #define OPTIONS_CHEMPS2_H 22 23 #include <stdlib.h> 24 #include <string> 25 26 using std::string; 27 28 namespace CheMPS2{ 29 30 const int DMRGSCF_maxIterations = 100; 31 const double DMRGSCF_gradientNormThreshold = 1e-6; 32 const bool DMRGSCF_storeUnitary = true; 33 const string DMRGSCF_unitary_storage_name = "CheMPS2_CASSCF.h5"; 34 const string DMRGSCF_eri_storage_name = "CheMPS2_eri_temp.h5"; 35 const string DMRGSCF_f4rdm_name = "CheMPS2_f4rdm.h5"; 36 const int DMRGSCF_max_mem_eri_tfo = 100 * 100 * 100 * 100; // Measured in number of doubles 37 const bool DMRGSCF_debugPrint = false; 38 const bool DMRGSCF_stateAveraged = true; 39 40 const int DMRGSCF_whichActiveSpace = 0; 41 const bool DMRGSCF_dumpCorrelations = false; 42 const bool DMRGSCF_startLocRandom = false; 43 44 const bool DMRGSCF_doDIIS = false; 45 const double DMRGSCF_DIISgradientBranch = 1e-2; 46 const int DMRGSCF_numDIISvecs = 7; 47 const bool DMRGSCF_storeDIIS = true; 48 const string DMRGSCF_diis_storage_name = "CheMPS2_DIIS.h5"; 49 50 const double CASPT2_OVLP_CUTOFF = 1e-8; 51 52 const double CONJ_GRADIENT_RTOL = 1e-10; 53 const double CONJ_GRADIENT_PRECOND_CUTOFF = 1e-12; 54 55 const string defaultTMPpath = "/tmp"; 56 const bool DMRG_storeRenormOptrOnDisk = true; 57 const bool DMRG_storeMpsOnDisk = false; 58 const string DMRG_MPS_storage_prefix = "CheMPS2_MPS"; 59 const string DMRG_OPERATOR_storage_prefix = "CheMPS2_Operators_"; 60 61 const bool HAMILTONIAN_debugPrint = false; 62 const string HAMILTONIAN_TmatStorageName = "CheMPS2_Ham_Tmat.h5"; 63 const string HAMILTONIAN_VmatStorageName = "CheMPS2_Ham_Vmat.h5"; 64 const string HAMILTONIAN_ParentStorageName = "CheMPS2_Ham_parent.h5"; 65 66 const string TWO_RDM_storagename = "CheMPS2_2DM.h5"; 67 const string THREE_RDM_storage_prefix = "CheMPS2_3DM_"; 68 69 const bool HEFF_debugPrint = true; 70 const int DAVIDSON_NUM_VEC = 32; 71 const int DAVIDSON_NUM_VEC_KEEP = 3; 72 const double DAVIDSON_PRECOND_CUTOFF = 1e-12; 73 const double DAVIDSON_FCI_RTOL = 1e-10; // Base value for FCI and augmented Hessian diagonalization 74 const double DAVIDSON_DMRG_RTOL = 1e-5; // Block's Davidson tolerance would correspond to HEFF_DAVIDSON_DMRG_RTOL^2 75 76 const int SYBK_dimensionCutoff = 262144; 77 78 const double TENSORT_orthoComparison = 1e-13; 79 80 const bool CORRELATIONS_debugPrint = false; 81 const double CORRELATIONS_discardEig = 1e-100; 82 83 const double EDMISTONRUED_gradThreshold = 1e-8; 84 const int EDMISTONRUED_maxIter = 1000; 85 const int EDMISTONRUED_maxIterBackTfo = 15; 86 87 } 88 89 #endif 90 91