DFT-EFE
 
Loading...
Searching...
No Matches
Defaults.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2021. *
3 * The Regents of the University of Michigan and DFT-EFE developers. *
4 * *
5 * This file is part of the DFT-EFE code. *
6 * *
7 * DFT-EFE is free software: you can redistribute it and/or modify *
8 * it under the terms of the Lesser GNU General Public License as *
9 * published by the Free Software Foundation, either version 3 of *
10 * the License, or (at your option) any later version. *
11 * *
12 * DFT-EFE is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
15 * See the Lesser GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License at the top level of DFT-EFE distribution. If not, see *
19 * <https://www.gnu.org/licenses/>. *
20 ******************************************************************************/
21
22/*
23 * @author Bikash Kanungo , Avirup Sircar
24 */
25
26#ifndef dftefeLinearAlgebraDefaults_h
27#define dftefeLinearAlgebraDefaults_h
28
29#include <utils/TypeConfig.h>
31#include <string>
32#include <memory>
33#include "LinAlgOpContext.h"
34#include <utils/MemoryStorage.h>
35
36namespace dftefe
37{
38 namespace linearAlgebra
39 {
41 {
42 public:
43 //
44 // frequency at which to measure wall time of each iteration
45 // of the linear solve
46 //
48
49 //
50 // frequency at which to print residual info
51 //
52 static const size_type PRINT_FREQ;
53
54 //
55 // print final flag. It sets whether to print the final info
56 // (e.g., number of iterations to convergence, ErrorCode, etc)
57 //
58 static const bool PRINT_FINAL;
59
60 //
61 // print total solver wall wall time flag
62 //
63 static const bool PRINT_TOTAL_WALL_TIME;
64
65 //
66 // parallel print type
67 // (e.g., print on all ranks, or just root rank, or all, etc)
68 //
70
71 //
72 // floating point precision to which one should print
73 //
74 static const size_type PRECISION;
75
76 //
77 // delimiter
78 //
79 static const std::string DELIMITER;
80
81 }; // end of class PrintControlDefaults
82
84 {
85 public:
86 //
87 // absolute tolerance on the residual
88 //
89 static const double ABS_TOL;
90
91 //
92 // relative tolerance on the residual (i.e. residual norm divided by
93 // norm of the right hand side vector)
94 //
95 static const double REL_TOL;
96
97 //
98 // Tolerance to abort the linear solver if the
99 // L2 norm of the residual exceeds it
100 static const double DIVERGENCE_TOL;
101 }; // end of class LinearSolverDefaults
102
104 {
105 public:
106 //
107 // maximum pass of lowdin orthonormalizations
108 //
109 static const size_type MAX_PASS;
110
111 //
112 // Min tolerance of min eigenvalue below which to shift the eigenvalue by
113 // this tolerance.
114 //
115 static const double SHIFT_TOL;
116
117 //
118 // calculate frobenus norm |S - I| < this tolerance
119 static const double IDENTITY_TOL;
120 }; // end of class MultiPassOrthoDefaults
121
123 {
124 public:
125 static const std::shared_ptr<
128 }; // end of class LinAlgOpContextHost
129
131 {
132 public:
135 }; // end of class LinAlgOpContextHost
136
137 } // end of namespace linearAlgebra
138} // end of namespace dftefe
139#endif // dftefeLinearAlgebraDefaults_h
static const std::shared_ptr< linearAlgebra::LinAlgOpContext< utils::MemorySpace::HOST > > LINALG_OP_CONTXT_HOST
Definition: Defaults.h:127
Definition: LinAlgOpContext.h:38
static const double DIVERGENCE_TOL
Definition: Defaults.h:100
static const double REL_TOL
Definition: Defaults.h:95
static const double ABS_TOL
Setting all the LinearSolverDefaults.
Definition: Defaults.h:89
static const size_type MAX_PASS
Setting all the MultiPassOrthoDefaults.
Definition: Defaults.h:109
static const double IDENTITY_TOL
Definition: Defaults.h:119
static const double SHIFT_TOL
Definition: Defaults.h:115
static const std::string DELIMITER
Definition: Defaults.h:79
static const ParallelPrintType PARALLEL_PRINT_TYPE
Definition: Defaults.h:69
static const size_type WALL_TIME_FREQ
Setting all the PrintControlDefaults.
Definition: Defaults.h:47
static const size_type PRINT_FREQ
Definition: Defaults.h:52
static const size_type PRECISION
Definition: Defaults.h:74
static const bool PRINT_TOTAL_WALL_TIME
Definition: Defaults.h:63
static const bool PRINT_FINAL
Definition: Defaults.h:58
static const size_type WAVE_FN_BATCH
Definition: Defaults.h:134
static const size_type SUBSPACE_ROT_DOF_BATCH
Setting all the RayleighRitzRDefaults.
Definition: Defaults.h:133
ParallelPrintType
Definition: LinearAlgebraTypes.h:53
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8