ergo
matrix_typedefs_chtml.h
Go to the documentation of this file.
1/* Ergo, version 3.8.2, a program for linear scaling electronic structure
2 * calculations.
3 * Copyright (C) 2023 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4 * and Anastasia Kruchinina.
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * Primary academic reference:
20 * Ergo: An open-source program for linear-scaling electronic structure
21 * calculations,
22 * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23 * Kruchinina,
24 * SoftwareX 7, 107 (2018),
25 * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26 *
27 * For further information about Ergo, see <http://www.ergoscf.org>.
28 */
29
38#ifndef MATRIX_TYPEDEFS_CHTML_HEADER
39#define MATRIX_TYPEDEFS_CHTML_HEADER
40
41#include "matrix_typedefs.h"
42
43#ifdef USE_CHUNKS_AND_TASKS
44//#define USE_SYMMETRIC // TODO
45#include "CHTMatrix.h"
46#include "CHTGeneralMatrix.h"
47#include "CHTSymmMatrix.h"
48#include "CHTTriangMatrix.h"
49
50#if defined(USE_CHUNKS_AND_TASKS_BSM)
51#include "block_sparse_matrix_lib.h"
52#include "CHTMatrixParamsTypeBlockSparse.h"
53typedef bsm::BlockSparseMatrix<ergo_real> LeafMatrixType;
54typedef chtml::CHTMatrixParamsTypeBlockSparse<ergo_real> ParamsType;
55#endif
56
57#if defined(USE_CHUNKS_AND_TASKS_HBSM)
58#include "hierarchical_block_sparse_lib.h"
59#include "CHTMatrixParamsTypeHierarchicalBlockSparse.h"
60typedef hbsm::HierarchicalBlockSparseMatrix<ergo_real> LeafMatrixType;
61typedef chtml::CHTMatrixParamsTypeHierarchicalBlockSparse<ergo_real> ParamsType;
62#endif
63
64#if !defined(USE_CHUNKS_AND_TASKS_BSM) && !defined(USE_CHUNKS_AND_TASKS_HBSM)
65#include "basic_matrix_lib.h"
66#include "CHTMatrixParamsTypeFull.h"
67typedef bml::FullMatrix<ergo_real> LeafMatrixType;
68typedef chtml::CHTMatrixParamsTypeFull<ergo_real> ParamsType;
69#endif
70#ifdef USE_SYMMETRIC
71typedef chtml::CHTSymmMatrix<ergo_real, ParamsType> symmMatrixWrap;
72#else
73typedef chtml::CHTGeneralMatrix<ergo_real, ParamsType> symmMatrixWrap;
74#endif
75typedef chtml::CHTGeneralMatrix<ergo_real, ParamsType> normalMatrixWrap;
76typedef chtml::CHTTriangMatrix<ergo_real, ParamsType> triangMatrixWrap;
77#else // not CHT
79{
80public:
82};
87#endif
88
89
90
91
92#endif
Definition: matrix_typedefs_chtml.h:79
MatrixParamsType()
Definition: matrix_typedefs_chtml.h:81
Header file with typedefs for matrix and vector types.
symmMatrix symmMatrixWrap
Definition: matrix_typedefs_chtml.h:84
MatrixParamsType ParamsType
Definition: matrix_typedefs_chtml.h:83
triangMatrix triangMatrixWrap
Definition: matrix_typedefs_chtml.h:86
normalMatrix normalMatrixWrap
Definition: matrix_typedefs_chtml.h:85
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71