DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
MultiVectorMinResSolver.h
Go to the documentation of this file.
1// This file is part of the DFT-FE code.
2//
3// The DFT-FE code is free software; you can use it, redistribute
4// it, and/or modify it under the terms of the GNU Lesser General
5// Public License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7// The full text of the license can be found in the file LICENSE at
8// the top level of the DFT-FE distribution.
9//
10// ---------------------------------------------------------------------
11//
12
13#ifndef DFTFE_MULTIVECTORMINRESSOLVER_H
14#define DFTFE_MULTIVECTORMINRESSOLVER_H
15
17#include "headers.h"
18#include "BLASWrapper.h"
19namespace dftfe
20{
21 /*
22 * @brief The class provides the MinRES algorithm to solve Ax = b
23 * where A is positive semi-definite matrix
24 */
26 {
27 public:
28 MultiVectorMinResSolver(const MPI_Comm &mpi_comm_parent,
29 const MPI_Comm &mpi_comm_domain);
30 template <dftfe::utils::MemorySpace memorySpace>
31 void
34 BLASWrapperPtr,
37 unsigned int locallyOwned,
38 unsigned int blockSize,
39 const double absTolerance,
40 const unsigned int maxNumberIterations,
41 const unsigned int debugLevel = 0,
42 bool distributeFlag = true); // override;
43
44 private:
45 const MPI_Comm mpi_communicator;
46 const unsigned int n_mpi_processes;
47 const unsigned int this_mpi_process;
48 dealii::ConditionalOStream pcout;
49 };
50} // namespace dftfe
51
52#endif // DFTFE_MULTIVECTORMINRESSOLVER_H
Definition MultiVectorLinearSolverProblem.h:31
const unsigned int n_mpi_processes
Definition MultiVectorMinResSolver.h:46
const MPI_Comm mpi_communicator
Definition MultiVectorMinResSolver.h:45
MultiVectorMinResSolver(const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
const unsigned int this_mpi_process
Definition MultiVectorMinResSolver.h:47
void solve(MultiVectorLinearSolverProblem< memorySpace > &problem, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, dftfe::linearAlgebra::MultiVector< double, memorySpace > &xMemSpace, dftfe::linearAlgebra::MultiVector< double, memorySpace > &NDBCVec, unsigned int locallyOwned, unsigned int blockSize, const double absTolerance, const unsigned int maxNumberIterations, const unsigned int debugLevel=0, bool distributeFlag=true)
dealii::ConditionalOStream pcout
Definition MultiVectorMinResSolver.h:48
Definition BLASWrapper.h:35
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition MultiVector.h:127
Definition pseudoPotentialToDftfeConverter.cc:34